@tanstack/table-core 8.0.0-alpha.64 → 8.0.0-alpha.68

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 (149) hide show
  1. package/build/cjs/aggregationFns.js +25 -37
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/core.js +167 -47
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js +24 -40
  6. package/build/cjs/createTable.js.map +1 -1
  7. package/build/cjs/features/Cells.js +29 -35
  8. package/build/cjs/features/Cells.js.map +1 -1
  9. package/build/cjs/features/ColumnSizing.js +126 -218
  10. package/build/cjs/features/ColumnSizing.js.map +1 -1
  11. package/build/cjs/features/Columns.js +59 -86
  12. package/build/cjs/features/Columns.js.map +1 -1
  13. package/build/cjs/features/Expanding.js +78 -125
  14. package/build/cjs/features/Expanding.js.map +1 -1
  15. package/build/cjs/features/Filters.js +143 -218
  16. package/build/cjs/features/Filters.js.map +1 -1
  17. package/build/cjs/features/Grouping.js +70 -116
  18. package/build/cjs/features/Grouping.js.map +1 -1
  19. package/build/cjs/features/Headers.js +125 -205
  20. package/build/cjs/features/Headers.js.map +1 -1
  21. package/build/cjs/features/Ordering.js +31 -43
  22. package/build/cjs/features/Ordering.js.map +1 -1
  23. package/build/cjs/features/Pagination.js +64 -72
  24. package/build/cjs/features/Pagination.js.map +1 -1
  25. package/build/cjs/features/Pinning.js +96 -177
  26. package/build/cjs/features/Pinning.js.map +1 -1
  27. package/build/cjs/features/RowSelection.js +134 -205
  28. package/build/cjs/features/RowSelection.js.map +1 -1
  29. package/build/cjs/features/Rows.js +32 -22
  30. package/build/cjs/features/Rows.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +62 -131
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +53 -120
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +52 -133
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/index.js +13 -13
  38. package/build/cjs/sortingFns.js +21 -21
  39. package/build/cjs/sortingFns.js.map +1 -1
  40. package/build/cjs/utils/filterRowsUtils.js +56 -41
  41. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  42. package/build/cjs/utils/getCoreRowModel.js +98 -0
  43. package/build/cjs/utils/getCoreRowModel.js.map +1 -0
  44. package/build/cjs/utils/getExpandedRowModel.js +18 -22
  45. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  46. package/build/cjs/utils/getFacetedMinMaxValues.js +48 -0
  47. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
  48. package/build/cjs/utils/getFacetedRowModel.js +50 -0
  49. package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
  50. package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
  51. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
  52. package/build/cjs/utils/getFilteredRowModel.js +130 -0
  53. package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
  54. package/build/cjs/utils/getGroupedRowModel.js +126 -136
  55. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  56. package/build/cjs/utils/getPaginationRowModel.js +39 -39
  57. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  58. package/build/cjs/utils/getSortedRowModel.js +112 -0
  59. package/build/cjs/utils/getSortedRowModel.js.map +1 -0
  60. package/build/cjs/utils.js +36 -211
  61. package/build/cjs/utils.js.map +1 -1
  62. package/build/esm/index.js +1970 -2956
  63. package/build/esm/index.js.map +1 -1
  64. package/build/stats-html.html +1 -1
  65. package/build/stats-react.json +390 -482
  66. package/build/types/core.d.ts +3 -5
  67. package/build/types/features/Cells.d.ts +1 -1
  68. package/build/types/features/ColumnSizing.d.ts +2 -13
  69. package/build/types/features/Columns.d.ts +1 -1
  70. package/build/types/features/Expanding.d.ts +1 -6
  71. package/build/types/features/Filters.d.ts +42 -30
  72. package/build/types/features/Grouping.d.ts +4 -10
  73. package/build/types/features/Pinning.d.ts +0 -4
  74. package/build/types/features/RowSelection.d.ts +1 -7
  75. package/build/types/features/Rows.d.ts +4 -3
  76. package/build/types/features/Sorting.d.ts +3 -14
  77. package/build/types/features/Visibility.d.ts +0 -4
  78. package/build/types/filterFns.d.ts +10 -52
  79. package/build/types/index.d.ts +6 -5
  80. package/build/types/types.d.ts +5 -17
  81. package/build/types/utils/filterRowsUtils.d.ts +3 -2
  82. package/build/types/utils/getCoreRowModel.d.ts +2 -0
  83. package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
  84. package/build/types/utils/getFacetedRowModel.d.ts +2 -0
  85. package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
  86. package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
  87. package/build/types/utils/getGroupedRowModel.d.ts +1 -1
  88. package/build/types/utils/getSortedRowModel.d.ts +2 -0
  89. package/build/types/utils.d.ts +2 -18
  90. package/build/umd/index.development.js +1948 -2935
  91. package/build/umd/index.development.js.map +1 -1
  92. package/build/umd/index.production.js +1 -1
  93. package/build/umd/index.production.js.map +1 -1
  94. package/package.json +2 -1
  95. package/src/core.ts +197 -46
  96. package/src/features/Cells.ts +10 -12
  97. package/src/features/ColumnSizing.ts +72 -129
  98. package/src/features/Columns.ts +16 -15
  99. package/src/features/Expanding.ts +58 -105
  100. package/src/features/Filters.ts +223 -226
  101. package/src/features/Grouping.ts +51 -79
  102. package/src/features/Headers.ts +18 -40
  103. package/src/features/Ordering.ts +1 -1
  104. package/src/features/Pagination.ts +1 -1
  105. package/src/features/Pinning.ts +73 -92
  106. package/src/features/RowSelection.ts +71 -120
  107. package/src/features/Rows.ts +21 -6
  108. package/src/features/Sorting.ts +39 -99
  109. package/src/features/Visibility.ts +21 -50
  110. package/src/filterFns.ts +74 -147
  111. package/src/index.ts +12 -5
  112. package/src/sortingFns.ts +11 -11
  113. package/src/types.ts +5 -18
  114. package/src/utils/filterRowsUtils.ts +59 -56
  115. package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +3 -9
  116. package/src/utils/getExpandedRowModel.ts +2 -2
  117. package/src/utils/getFacetedMinMaxValues.ts +37 -0
  118. package/src/utils/getFacetedRowModel.ts +50 -0
  119. package/src/utils/getFacetedUniqueValues.ts +37 -0
  120. package/src/utils/getFilteredRowModel.ts +150 -0
  121. package/src/utils/getGroupedRowModel.ts +53 -62
  122. package/src/utils/getPaginationRowModel.ts +1 -1
  123. package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +7 -7
  124. package/src/utils.ts +29 -239
  125. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  126. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  127. package/build/cjs/utils/getColumnFilteredRowModelSync.js +0 -115
  128. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +0 -1
  129. package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
  130. package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
  131. package/build/cjs/utils/getCoreRowModelSync.js +0 -102
  132. package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
  133. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +0 -91
  134. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +0 -1
  135. package/build/cjs/utils/getSortedRowModelSync.js +0 -118
  136. package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
  137. package/build/types/utils/getColumnFilteredRowModelAsync.d.ts +0 -4
  138. package/build/types/utils/getColumnFilteredRowModelSync.d.ts +0 -2
  139. package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
  140. package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +0 -4
  141. package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +0 -2
  142. package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
  143. package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
  144. package/src/utils/getColumnFilteredRowModelAsync.ts +0 -118
  145. package/src/utils/getColumnFilteredRowModelSync.ts +0 -102
  146. package/src/utils/getCoreRowModelAsync.ts +0 -104
  147. package/src/utils/getGlobalFilteredRowModelAsync.ts +0 -96
  148. package/src/utils/getGlobalFilteredRowModelSync.ts +0 -79
  149. package/src/utils/getSortedRowModelAsync.ts +0 -200
@@ -2,7 +2,7 @@ import { TableInstance, Row, RowModel, TableGenerics } from '../types'
2
2
  import { SortingFn } from '../features/Sorting'
3
3
  import { memo } from '../utils'
4
4
 
5
- export function getSortedRowModelSync<TGenerics extends TableGenerics>(): (
5
+ export function getSortedRowModel<TGenerics extends TableGenerics>(): (
6
6
  instance: TableInstance<TGenerics>
7
7
  ) => () => RowModel<TGenerics> {
8
8
  return instance =>
@@ -19,7 +19,7 @@ export function getSortedRowModelSync<TGenerics extends TableGenerics>(): (
19
19
 
20
20
  // Filter out sortings that correspond to non existing columns
21
21
  const availableSorting = sortingState.filter(sort =>
22
- instance.getColumnCanSort(sort.id)
22
+ instance.getColumn(sort.id).getCanSort()
23
23
  )
24
24
 
25
25
  const columnInfoById: Record<
@@ -32,12 +32,12 @@ export function getSortedRowModelSync<TGenerics extends TableGenerics>(): (
32
32
  > = {}
33
33
 
34
34
  availableSorting.forEach(sortEntry => {
35
- const column = instance.getColumn(sortEntry.id)!
35
+ const column = instance.getColumn(sortEntry.id)
36
36
 
37
37
  columnInfoById[sortEntry.id] = {
38
38
  sortUndefined: column.sortUndefined,
39
39
  invertSorting: column.invertSorting,
40
- sortingFn: instance.getColumnSortingFn(sortEntry.id)!,
40
+ sortingFn: column.getSortingFn(),
41
41
  }
42
42
  })
43
43
 
@@ -53,8 +53,8 @@ export function getSortedRowModelSync<TGenerics extends TableGenerics>(): (
53
53
  const isDesc = sortEntry?.desc ?? false
54
54
 
55
55
  if (columnInfo.sortUndefined) {
56
- const aValue = rowA.values[sortEntry.id]
57
- const bValue = rowB.values[sortEntry.id]
56
+ const aValue = rowA.getValue(sortEntry.id)
57
+ const bValue = rowB.getValue(sortEntry.id)
58
58
 
59
59
  const aUndefined = typeof aValue === 'undefined'
60
60
  const bUndefined = typeof bValue === 'undefined'
@@ -106,7 +106,7 @@ export function getSortedRowModelSync<TGenerics extends TableGenerics>(): (
106
106
  }
107
107
  },
108
108
  {
109
- key: 'getSortedRowModel',
109
+ key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',
110
110
  debug: () => instance.options.debugAll ?? instance.options.debugTable,
111
111
  onChange: () => {
112
112
  instance.queue(() => {
package/src/utils.ts CHANGED
@@ -21,35 +21,6 @@ export function noop() {
21
21
  //
22
22
  }
23
23
 
24
- export function getBatchGroups<T>(arr: T[], count: number) {
25
- const groups: { start: number; end: number; items: T[] }[] = [
26
- {
27
- start: 0,
28
- end: count - 1,
29
- items: [],
30
- },
31
- ]
32
-
33
- let groupIndex = 0
34
- let group = groups[groupIndex]
35
-
36
- for (let i = 0; i < arr.length; i++) {
37
- if (i > group.end) {
38
- groupIndex++
39
- groups[groupIndex] = {
40
- start: i,
41
- end: i + count - 1,
42
- items: [],
43
- }
44
- }
45
- group = groups[groupIndex]
46
- const item = arr[i]
47
- group.items.push(item)
48
- }
49
-
50
- return groups
51
- }
52
-
53
24
  export function makeStateUpdater(key: keyof TableState, instance: unknown) {
54
25
  return (updater: Updater<any>) => {
55
26
  ;(instance as any).setState(<TTableState>(old: TTableState) => {
@@ -92,9 +63,9 @@ export function memo<TDeps extends readonly any[], TResult>(
92
63
  getDeps: () => [...TDeps],
93
64
  fn: (...args: NoInfer<[...TDeps]>) => TResult,
94
65
  opts: {
95
- key: string
66
+ key: any
96
67
  debug?: () => any
97
- onChange?: (result: TResult, previousResult?: TResult) => void
68
+ onChange?: (result: TResult) => void
98
69
  }
99
70
  ): () => TResult {
100
71
  let deps: any[] = []
@@ -110,227 +81,46 @@ export function memo<TDeps extends readonly any[], TResult>(
110
81
  newDeps.length !== deps.length ||
111
82
  newDeps.some((dep: any, index: number) => deps[index] !== dep)
112
83
 
113
- if (depsChanged) {
114
- let oldResult = result
115
- let resultTime: number
116
- if (opts.key && opts.debug) resultTime = Date.now()
117
- result = fn(...newDeps)
118
- deps = newDeps
119
- opts?.onChange?.(result, oldResult)
84
+ if (!depsChanged) {
85
+ return result!
86
+ }
87
+
88
+ deps = newDeps
89
+
90
+ let resultTime: number
91
+ if (opts.key && opts.debug) resultTime = Date.now()
92
+
93
+ result = fn(...newDeps)
94
+ opts?.onChange?.(result)
120
95
 
121
- if (opts.key && opts.debug) {
122
- if (opts?.debug()) {
123
- const depEndTime = Math.round((Date.now() - depTime!) * 100) / 100
124
- const resultEndTime =
125
- Math.round((Date.now() - resultTime!) * 100) / 100
126
- const resultFpsPercentage = resultEndTime / 16
96
+ if (opts.key && opts.debug) {
97
+ if (opts?.debug()) {
98
+ const depEndTime = Math.round((Date.now() - depTime!) * 100) / 100
99
+ const resultEndTime = Math.round((Date.now() - resultTime!) * 100) / 100
100
+ const resultFpsPercentage = resultEndTime / 16
127
101
 
128
- const pad = (str: number | string, num: number) => {
129
- str = String(str)
130
- while (str.length < num) {
131
- str = ' ' + str
132
- }
133
- return str
102
+ const pad = (str: number | string, num: number) => {
103
+ str = String(str)
104
+ while (str.length < num) {
105
+ str = ' ' + str
134
106
  }
107
+ return str
108
+ }
135
109
 
136
- console.info(
137
- `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,
138
- `
110
+ console.info(
111
+ `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,
112
+ `
139
113
  font-size: .6rem;
140
114
  font-weight: bold;
141
115
  color: hsl(${Math.max(
142
116
  0,
143
117
  Math.min(120 - 120 * resultFpsPercentage, 120)
144
118
  )}deg 100% 31%);`,
145
- opts?.key,
146
- {
147
- length: `${deps.length} -> ${newDeps.length}`,
148
- ...newDeps
149
- .map((_, index) => {
150
- if (deps[index] !== newDeps[index]) {
151
- return [index, deps[index], newDeps[index]]
152
- }
153
-
154
- return false
155
- })
156
- .filter(Boolean)
157
- .reduce(
158
- (accu, [a, b]: any) => ({
159
- ...accu,
160
- [a]: b,
161
- }),
162
- {}
163
- ),
164
- parent,
165
- }
166
- )
167
- }
119
+ opts?.key
120
+ )
168
121
  }
169
-
170
- oldResult = undefined
171
122
  }
172
123
 
173
124
  return result!
174
125
  }
175
126
  }
176
-
177
- type WorkFn = () => void
178
-
179
- export function incrementalMemo<TDeps extends readonly any[], TResult>(
180
- getDeps: () => [...TDeps],
181
- getInitialValue: (...args: NoInfer<[...TDeps]>) => TResult,
182
- schedule: (
183
- ...args: NoInfer<[...TDeps]>
184
- ) => (resultRef: {
185
- current: TResult
186
- }) => (scheduler: (workFn: WorkFn) => void) => void,
187
- opts: {
188
- key: string
189
- onProgress: (
190
- progress: number,
191
- nextResult: TResult,
192
- result?: TResult
193
- ) => void
194
- onChange: (result: TResult, previousResult?: TResult) => void
195
- initialSync?: boolean
196
- timeout?: number
197
- debug?: () => any
198
- }
199
- ): () => TResult {
200
- let oldDeps: any[]
201
- let deps: any[]
202
- let result: TResult | undefined
203
- let nextResultRef: { current: TResult }
204
- let tasks: WorkFn[] = []
205
- let totalTaskCount = 0
206
- let resultStartTime: number
207
- let batchIndex = 0
208
- let progress = 0
209
- let working = false
210
- let callback: ReturnType<typeof requestIdleCallback>
211
-
212
- const timeout = opts.timeout ?? 100
213
-
214
- const onProgress = (latestResult: TResult, previousResult?: TResult) => {
215
- progress = 1 - tasks.length / totalTaskCount
216
- opts.onProgress(progress, latestResult, previousResult)
217
- }
218
-
219
- return () => {
220
- const scheduleFn = (workFn: WorkFn) => {
221
- totalTaskCount++
222
- tasks.push(workFn)
223
- }
224
-
225
- const newDeps = getDeps()
226
-
227
- let first = false
228
-
229
- if (!deps) {
230
- first = true
231
- deps = []
232
- result = getInitialValue(...newDeps)
233
- }
234
-
235
- const depsChanged =
236
- newDeps.length !== deps.length ||
237
- newDeps.some((dep: any, index: number) => deps[index] !== dep)
238
-
239
- if (depsChanged) {
240
- cancelIdleCallback(callback)
241
- oldDeps = deps
242
- deps = newDeps
243
- totalTaskCount = 0
244
- tasks = []
245
- nextResultRef = { current: getInitialValue(...newDeps) }
246
- resultStartTime = Date.now()
247
- schedule(...newDeps)(nextResultRef)(scheduleFn)
248
- }
249
-
250
- const commitResult = () => {
251
- cancelIdleCallback(callback)
252
-
253
- if (opts.key && opts.debug) {
254
- if (opts?.debug()) {
255
- const resultEndTime =
256
- Math.round((Date.now() - resultStartTime!) * 100) / 100
257
- const resultFpsPercentage = resultEndTime / batchIndex / 16
258
-
259
- console.info(
260
- `%c⏱ ${resultEndTime} ms / ${batchIndex} tasks = ${Math.round(
261
- resultEndTime / batchIndex
262
- )} ms/task`,
263
- `
264
- font-size: .6rem;
265
- font-weight: bold;
266
- color: hsl(${Math.max(
267
- 0,
268
- Math.min(120 - 120 * resultFpsPercentage, 120)
269
- )}deg 100% 31%);`,
270
- opts?.key,
271
- {
272
- length: `${oldDeps.length} -> ${deps.length}`,
273
- ...deps
274
- .map((_, index) => {
275
- if (oldDeps[index] !== deps[index]) {
276
- return [index, oldDeps[index], deps[index]]
277
- }
278
-
279
- return false
280
- })
281
- .filter(Boolean)
282
- .reduce(
283
- (accu, [a, b]: any) => ({
284
- ...accu,
285
- [a]: b,
286
- }),
287
- {}
288
- ),
289
- parent,
290
- }
291
- )
292
- }
293
- }
294
-
295
- working = false
296
- let previousResult = result
297
- result = nextResultRef.current
298
- onProgress(result, previousResult)
299
- opts.onChange(result, previousResult)
300
- }
301
-
302
- if (opts.initialSync && first) {
303
- batchIndex = 1
304
- first = false
305
- for (let i = 0; i < tasks.length; i++) {
306
- tasks[i]()
307
- }
308
- tasks = []
309
- commitResult()
310
- } else if (!working && tasks.length) {
311
- cancelIdleCallback(callback)
312
- working = true
313
- batchIndex = 0
314
-
315
- const workLoop = (deadline: any) => {
316
- while (tasks.length && deadline.timeRemaining() > 0) {
317
- tasks.shift()!()
318
- }
319
-
320
- if (!tasks.length) {
321
- commitResult()
322
- } else {
323
- ++batchIndex
324
- onProgress(nextResultRef.current, result)
325
- callback = requestIdleCallback(workLoop, { timeout })
326
- }
327
- }
328
-
329
- callback = requestIdleCallback(workLoop, { timeout })
330
- }
331
-
332
- return result!
333
- }
334
- }
335
-
336
- // opts?.onChange?.(result, oldResult)
@@ -1,112 +0,0 @@
1
- /**
2
- * table-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- function _extends() {
16
- _extends = Object.assign || function (target) {
17
- for (var i = 1; i < arguments.length; i++) {
18
- var source = arguments[i];
19
-
20
- for (var key in source) {
21
- if (Object.prototype.hasOwnProperty.call(source, key)) {
22
- target[key] = source[key];
23
- }
24
- }
25
- }
26
-
27
- return target;
28
- };
29
-
30
- return _extends.apply(this, arguments);
31
- }
32
-
33
- function _objectWithoutPropertiesLoose(source, excluded) {
34
- if (source == null) return {};
35
- var target = {};
36
- var sourceKeys = Object.keys(source);
37
- var key, i;
38
-
39
- for (i = 0; i < sourceKeys.length; i++) {
40
- key = sourceKeys[i];
41
- if (excluded.indexOf(key) >= 0) continue;
42
- target[key] = source[key];
43
- }
44
-
45
- return target;
46
- }
47
-
48
- function _unsupportedIterableToArray(o, minLen) {
49
- if (!o) return;
50
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
51
- var n = Object.prototype.toString.call(o).slice(8, -1);
52
- if (n === "Object" && o.constructor) n = o.constructor.name;
53
- if (n === "Map" || n === "Set") return Array.from(o);
54
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
55
- }
56
-
57
- function _arrayLikeToArray(arr, len) {
58
- if (len == null || len > arr.length) len = arr.length;
59
-
60
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
61
-
62
- return arr2;
63
- }
64
-
65
- function _createForOfIteratorHelperLoose(o, allowArrayLike) {
66
- var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
67
- if (it) return (it = it.call(o)).next.bind(it);
68
-
69
- if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
70
- if (it) o = it;
71
- var i = 0;
72
- return function () {
73
- if (i >= o.length) return {
74
- done: true
75
- };
76
- return {
77
- done: false,
78
- value: o[i++]
79
- };
80
- };
81
- }
82
-
83
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
84
- }
85
-
86
- function _toPrimitive(input, hint) {
87
- if (typeof input !== "object" || input === null) return input;
88
- var prim = input[Symbol.toPrimitive];
89
-
90
- if (prim !== undefined) {
91
- var res = prim.call(input, hint || "default");
92
- if (typeof res !== "object") return res;
93
- throw new TypeError("@@toPrimitive must return a primitive value.");
94
- }
95
-
96
- return (hint === "string" ? String : Number)(input);
97
- }
98
-
99
- function _toPropertyKey(arg) {
100
- var key = _toPrimitive(arg, "string");
101
-
102
- return typeof key === "symbol" ? key : String(key);
103
- }
104
-
105
- exports.arrayLikeToArray = _arrayLikeToArray;
106
- exports.createForOfIteratorHelperLoose = _createForOfIteratorHelperLoose;
107
- exports["extends"] = _extends;
108
- exports.objectWithoutPropertiesLoose = _objectWithoutPropertiesLoose;
109
- exports.toPrimitive = _toPrimitive;
110
- exports.toPropertyKey = _toPropertyKey;
111
- exports.unsupportedIterableToArray = _unsupportedIterableToArray;
112
- //# sourceMappingURL=_rollupPluginBabelHelpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,115 +0,0 @@
1
- /**
2
- * table-core
3
- *
4
- * Copyright (c) TanStack
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- var utils = require('../utils.js');
16
- var filterRowsUtils = require('./filterRowsUtils.js');
17
-
18
- function getColumnFilteredRowModelSync() {
19
- return function (instance) {
20
- return utils.memo(function () {
21
- return [instance.getState().columnFilters, instance.getPreColumnFilteredRowModel()];
22
- }, function (columnFilters, rowModel) {
23
- var columnFilteredRowModel = function () {
24
- if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length)) {
25
- return rowModel;
26
- }
27
-
28
- var filterFromLeafRows = instance.options.filterFromLeafRows;
29
-
30
- var filterRows = function filterRows(rowsToFilter, depth) {
31
- for (var i = 0; i < columnFilters.length; i++) {
32
- var _columnFilters$i = columnFilters[i],
33
- columnId = _columnFilters$i.id,
34
- filterValue = _columnFilters$i.value; // Find the columnFilters column
35
-
36
- var column = instance.getColumn(columnId);
37
-
38
- if (!column) {
39
- if (process.env.NODE_ENV !== 'production') {
40
- console.warn("Table: Could not find a column with id: " + columnId);
41
- }
42
-
43
- throw new Error();
44
- }
45
-
46
- if (depth === 0) {
47
- (function () {
48
- var preFilteredRows = [].concat(rowsToFilter);
49
-
50
- column.getPreFilteredRows = function () {
51
- return preFilteredRows;
52
- };
53
- })();
54
- }
55
-
56
- var filterFn = instance.getColumnFilterFn(column.id);
57
-
58
- if (!filterFn) {
59
- if (process.env.NODE_ENV !== 'production') {
60
- console.warn("Could not find a valid 'column.filterFn' for column with the ID: " + column.id + ".");
61
- }
62
-
63
- continue;
64
- } // Pass the rows, id, filterValue and column to the filterFn
65
- // to get the filtered rows back
66
-
67
-
68
- rowsToFilter = filterFn(rowsToFilter, [columnId], filterValue);
69
- }
70
-
71
- return rowsToFilter;
72
- };
73
-
74
- if (filterFromLeafRows) {
75
- return filterRowsUtils.filterRowModelFromLeafs(rowModel.rows, filterRows, instance);
76
- }
77
-
78
- return filterRowsUtils.filterRowModelFromRoot(rowModel.rows, filterRows, instance);
79
- }(); // Now that each filtered column has it's partially filtered rows,
80
- // lets assign the final filtered rows to all of the other columns
81
-
82
-
83
- var nonFilteredColumns = instance.getAllLeafColumns().filter(function (column) {
84
- var _instance$getState$co;
85
-
86
- return !((_instance$getState$co = instance.getState().columnFilters) != null && _instance$getState$co.find(function (d) {
87
- return d.id === column.id;
88
- }));
89
- }); // This essentially enables faceted filter options to be built easily
90
- // using every column's preFilteredRows value
91
-
92
- nonFilteredColumns.forEach(function (column) {
93
- column.getPreFilteredRows = function () {
94
- return columnFilteredRowModel.rows;
95
- };
96
- });
97
- return columnFilteredRowModel;
98
- }, {
99
- key: 'getColumnFilteredRowModelSync',
100
- debug: function debug() {
101
- var _instance$options$deb;
102
-
103
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
104
- },
105
- onChange: function onChange() {
106
- instance.queue(function () {
107
- instance._autoResetPageIndex();
108
- });
109
- }
110
- });
111
- };
112
- }
113
-
114
- exports.getColumnFilteredRowModelSync = getColumnFilteredRowModelSync;
115
- //# sourceMappingURL=getColumnFilteredRowModelSync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getColumnFilteredRowModelSync.js","sources":["../../../src/utils/getColumnFilteredRowModelSync.ts"],"sourcesContent":["import { TableInstance, RowModel, TableGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport {\n filterRowModelFromLeafs,\n filterRowModelFromRoot,\n} from './filterRowsUtils'\n\nexport function getColumnFilteredRowModelSync<\n TGenerics extends TableGenerics\n>(): (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [\n instance.getState().columnFilters,\n instance.getPreColumnFilteredRowModel(),\n ],\n (columnFilters, rowModel) => {\n const columnFilteredRowModel: RowModel<TGenerics> = (() => {\n if (!rowModel.rows.length || !columnFilters?.length) {\n return rowModel\n }\n\n const filterFromLeafRows = instance.options.filterFromLeafRows\n\n const filterRows = (\n rowsToFilter: Row<TGenerics>[],\n depth: number\n ) => {\n for (let i = 0; i < columnFilters.length; i++) {\n const { id: columnId, value: filterValue } = columnFilters[i]\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 `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.filterFn' for column with the ID: ${column.id}.`\n )\n }\n continue\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 (filterFromLeafRows) {\n return filterRowModelFromLeafs(rowModel.rows, filterRows, instance)\n }\n\n return filterRowModelFromRoot(rowModel.rows, filterRows, instance)\n })()\n\n // Now that each filtered column has it's partially filtered rows,\n // lets assign the final filtered rows to all of the other columns\n const nonFilteredColumns = instance\n .getAllLeafColumns()\n .filter(\n column =>\n !instance.getState().columnFilters?.find(d => d.id === column.id)\n )\n\n // This essentially enables faceted filter options to be built easily\n // using every column's preFilteredRows value\n\n nonFilteredColumns.forEach(column => {\n column.getPreFilteredRows = () => columnFilteredRowModel.rows\n })\n\n return columnFilteredRowModel\n },\n {\n key: 'getColumnFilteredRowModelSync',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance._autoResetPageIndex()\n })\n },\n }\n )\n}\n"],"names":["getColumnFilteredRowModelSync","instance","memo","getState","columnFilters","getPreColumnFilteredRowModel","rowModel","columnFilteredRowModel","rows","length","filterFromLeafRows","options","filterRows","rowsToFilter","depth","i","columnId","id","filterValue","value","column","getColumn","process","env","NODE_ENV","console","warn","Error","preFilteredRows","getPreFilteredRows","filterFn","getColumnFilterFn","filterRowModelFromLeafs","filterRowModelFromRoot","nonFilteredColumns","getAllLeafColumns","filter","find","d","forEach","key","debug","debugAll","debugTable","onChange","queue","_autoResetPageIndex"],"mappings":"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"}