@tanstack/table-core 8.0.0-alpha.67 → 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 (126) 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 -46
  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 +28 -34
  8. package/build/cjs/features/Cells.js.map +1 -1
  9. package/build/cjs/features/ColumnSizing.js +90 -107
  10. package/build/cjs/features/ColumnSizing.js.map +1 -1
  11. package/build/cjs/features/Columns.js +52 -79
  12. package/build/cjs/features/Columns.js.map +1 -1
  13. package/build/cjs/features/Expanding.js +48 -57
  14. package/build/cjs/features/Expanding.js.map +1 -1
  15. package/build/cjs/features/Filters.js +96 -191
  16. package/build/cjs/features/Filters.js.map +1 -1
  17. package/build/cjs/features/Grouping.js +52 -70
  18. package/build/cjs/features/Grouping.js.map +1 -1
  19. package/build/cjs/features/Headers.js +109 -165
  20. package/build/cjs/features/Headers.js.map +1 -1
  21. package/build/cjs/features/Ordering.js +30 -42
  22. package/build/cjs/features/Ordering.js.map +1 -1
  23. package/build/cjs/features/Pagination.js +63 -71
  24. package/build/cjs/features/Pagination.js.map +1 -1
  25. package/build/cjs/features/Pinning.js +65 -121
  26. package/build/cjs/features/Pinning.js.map +1 -1
  27. package/build/cjs/features/RowSelection.js +92 -111
  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 +49 -68
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +43 -87
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +48 -72
  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 +49 -55
  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 +17 -21
  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 -207
  61. package/build/cjs/utils.js.map +1 -1
  62. package/build/esm/index.js +1729 -2313
  63. package/build/esm/index.js.map +1 -1
  64. package/build/stats-html.html +1 -1
  65. package/build/stats-react.json +421 -481
  66. package/build/types/core.d.ts +3 -5
  67. package/build/types/features/Cells.d.ts +1 -1
  68. package/build/types/features/Columns.d.ts +1 -1
  69. package/build/types/features/Filters.d.ts +10 -5
  70. package/build/types/features/Grouping.d.ts +4 -3
  71. package/build/types/features/Rows.d.ts +4 -3
  72. package/build/types/index.d.ts +6 -4
  73. package/build/types/types.d.ts +3 -13
  74. package/build/types/utils/filterRowsUtils.d.ts +3 -3
  75. package/build/types/utils/getCoreRowModel.d.ts +2 -0
  76. package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
  77. package/build/types/utils/getFacetedRowModel.d.ts +2 -0
  78. package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
  79. package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
  80. package/build/types/utils/getGroupedRowModel.d.ts +1 -1
  81. package/build/types/utils/getSortedRowModel.d.ts +2 -0
  82. package/build/types/utils.d.ts +1 -17
  83. package/build/umd/index.development.js +1730 -2316
  84. package/build/umd/index.development.js.map +1 -1
  85. package/build/umd/index.production.js +1 -1
  86. package/build/umd/index.production.js.map +1 -1
  87. package/package.json +1 -1
  88. package/src/core.ts +197 -45
  89. package/src/features/Cells.ts +7 -11
  90. package/src/features/ColumnSizing.ts +6 -5
  91. package/src/features/Columns.ts +4 -8
  92. package/src/features/Filters.ts +95 -156
  93. package/src/features/Grouping.ts +16 -20
  94. package/src/features/Rows.ts +21 -6
  95. package/src/features/Sorting.ts +2 -2
  96. package/src/filterFns.ts +9 -9
  97. package/src/index.ts +12 -4
  98. package/src/sortingFns.ts +11 -11
  99. package/src/types.ts +3 -16
  100. package/src/utils/filterRowsUtils.ts +47 -68
  101. package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +2 -8
  102. package/src/utils/getFacetedMinMaxValues.ts +37 -0
  103. package/src/utils/getFacetedRowModel.ts +50 -0
  104. package/src/utils/getFacetedUniqueValues.ts +37 -0
  105. package/src/utils/{getFilteredRowModelSync.ts → getFilteredRowModel.ts} +29 -20
  106. package/src/utils/getGroupedRowModel.ts +52 -61
  107. package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +3 -3
  108. package/src/utils.ts +28 -236
  109. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  110. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  111. package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
  112. package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
  113. package/build/cjs/utils/getCoreRowModelSync.js +0 -102
  114. package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
  115. package/build/cjs/utils/getFilteredRowModelSync.js +0 -125
  116. package/build/cjs/utils/getFilteredRowModelSync.js.map +0 -1
  117. package/build/cjs/utils/getSortedRowModelSync.js +0 -118
  118. package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
  119. package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
  120. package/build/types/utils/getFilteredRowModelAsync.d.ts +0 -4
  121. package/build/types/utils/getFilteredRowModelSync.d.ts +0 -2
  122. package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
  123. package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
  124. package/src/utils/getCoreRowModelAsync.ts +0 -104
  125. package/src/utils/getFilteredRowModelAsync.ts +0 -157
  126. package/src/utils/getSortedRowModelAsync.ts +0 -200
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) => {
@@ -94,7 +65,7 @@ export function memo<TDeps extends readonly any[], TResult>(
94
65
  opts: {
95
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,225 +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
- }
165
- )
166
- }
167
- }
168
-
169
- oldResult = undefined
170
- }
171
-
172
- return result!
173
- }
174
- }
175
-
176
- type WorkFn = () => void
177
-
178
- export function incrementalMemo<TDeps extends readonly any[], TResult>(
179
- getDeps: () => [...TDeps],
180
- getInitialValue: (...args: NoInfer<[...TDeps]>) => TResult,
181
- schedule: (
182
- ...args: NoInfer<[...TDeps]>
183
- ) => (resultRef: {
184
- current: TResult
185
- }) => (scheduler: (workFn: WorkFn) => void) => void,
186
- opts: {
187
- key: any
188
- onProgress: (
189
- progress: number,
190
- nextResult: TResult,
191
- result?: TResult
192
- ) => void
193
- onChange: (result: TResult, previousResult?: TResult) => void
194
- initialSync?: boolean
195
- timeout?: number
196
- debug?: () => any
197
- }
198
- ): () => TResult {
199
- let oldDeps: any[]
200
- let deps: any[]
201
- let result: TResult | undefined
202
- let nextResultRef: { current: TResult }
203
- let tasks: WorkFn[] = []
204
- let totalTaskCount = 0
205
- let resultStartTime: number
206
- let batchIndex = 0
207
- let progress = 0
208
- let working = false
209
- let callback: ReturnType<typeof requestIdleCallback>
210
-
211
- const timeout = opts.timeout ?? 100
212
-
213
- const onProgress = (latestResult: TResult, previousResult?: TResult) => {
214
- progress = 1 - tasks.length / totalTaskCount
215
- opts.onProgress(progress, latestResult, previousResult)
216
- }
217
-
218
- return () => {
219
- const scheduleFn = (workFn: WorkFn) => {
220
- totalTaskCount++
221
- tasks.push(workFn)
222
- }
223
-
224
- const newDeps = getDeps()
225
-
226
- let first = false
227
-
228
- if (!deps) {
229
- first = true
230
- deps = []
231
- result = getInitialValue(...newDeps)
232
- }
233
-
234
- const depsChanged =
235
- newDeps.length !== deps.length ||
236
- newDeps.some((dep: any, index: number) => deps[index] !== dep)
237
-
238
- if (depsChanged) {
239
- cancelIdleCallback(callback)
240
- oldDeps = deps
241
- deps = newDeps
242
- totalTaskCount = 0
243
- tasks = []
244
- nextResultRef = { current: getInitialValue(...newDeps) }
245
- resultStartTime = Date.now()
246
- schedule(...newDeps)(nextResultRef)(scheduleFn)
247
- }
248
-
249
- const commitResult = () => {
250
- cancelIdleCallback(callback)
251
-
252
- if (opts.key && opts.debug) {
253
- if (opts?.debug()) {
254
- const resultEndTime =
255
- Math.round((Date.now() - resultStartTime!) * 100) / 100
256
- const resultFpsPercentage = resultEndTime / batchIndex / 16
257
-
258
- console.info(
259
- `%c⏱ ${resultEndTime} ms / ${batchIndex} tasks = ${Math.round(
260
- resultEndTime / batchIndex
261
- )} ms/task`,
262
- `
263
- font-size: .6rem;
264
- font-weight: bold;
265
- color: hsl(${Math.max(
266
- 0,
267
- Math.min(120 - 120 * resultFpsPercentage, 120)
268
- )}deg 100% 31%);`,
269
- opts?.key,
270
- {
271
- length: `${oldDeps.length} -> ${deps.length}`,
272
- ...deps
273
- .map((_, index) => {
274
- if (oldDeps[index] !== deps[index]) {
275
- return [index, oldDeps[index], deps[index]]
276
- }
277
-
278
- return false
279
- })
280
- .filter(Boolean)
281
- .reduce(
282
- (accu, [a, b]: any) => ({
283
- ...accu,
284
- [a]: b,
285
- }),
286
- {}
287
- ),
288
- }
289
- )
290
- }
291
- }
292
-
293
- working = false
294
- let previousResult = result
295
- result = nextResultRef.current
296
- onProgress(result, previousResult)
297
- opts.onChange(result, previousResult)
298
- }
299
-
300
- if (opts.initialSync && first) {
301
- batchIndex = 1
302
- first = false
303
- for (let i = 0; i < tasks.length; i++) {
304
- tasks[i]()
305
- }
306
- tasks = []
307
- commitResult()
308
- } else if (!working && tasks.length) {
309
- cancelIdleCallback(callback)
310
- working = true
311
- batchIndex = 0
312
-
313
- const workLoop = (deadline: any) => {
314
- while (tasks.length && deadline.timeRemaining() > 0) {
315
- tasks.shift()!()
316
- }
317
-
318
- if (!tasks.length) {
319
- commitResult()
320
- } else {
321
- ++batchIndex
322
- onProgress(nextResultRef.current, result)
323
- callback = requestIdleCallback(workLoop, { timeout })
324
- }
119
+ opts?.key
120
+ )
325
121
  }
326
-
327
- callback = requestIdleCallback(workLoop, { timeout })
328
122
  }
329
123
 
330
124
  return result!
331
125
  }
332
126
  }
333
-
334
- // 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,125 +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 _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
16
- var utils = require('../utils.js');
17
-
18
- function getCoreRowModelAsync(opts) {
19
- return function (instance) {
20
- return utils.incrementalMemo(function () {
21
- return [instance.options.data, instance.getAllLeafColumns()];
22
- }, function () {
23
- var rows = [];
24
- var flatRows = [];
25
- var rowsById = {};
26
- return {
27
- rows: rows,
28
- flatRows: flatRows,
29
- rowsById: rowsById
30
- };
31
- }, function (data, leafColumns) {
32
- return function (rowModelRef) {
33
- return function (scheduleTask) {
34
- var accessRows = function accessRows(originalRows, depth, parent) {
35
- if (depth === void 0) {
36
- depth = 0;
37
- }
38
-
39
- var batchGroups = utils.getBatchGroups(originalRows, 2000);
40
-
41
- var _loop = function _loop(i) {
42
- var batchGroup = batchGroups[i];
43
- scheduleTask(function () {
44
- for (var _i = 0; _i < batchGroup.items.length; _i++) {
45
- var originalRow = batchGroup.items[_i];
46
- var rowIndex = batchGroup.start + _i;
47
- var id = instance.getRowId(originalRow, rowIndex, parent);
48
-
49
- if (!id) {
50
- if (process.env.NODE_ENV !== 'production') {
51
- throw new Error("getRowId expected an ID, but got " + id);
52
- }
53
- }
54
-
55
- var values = {};
56
-
57
- for (var _i2 = 0; _i2 < leafColumns.length; _i2++) {
58
- var column = leafColumns[_i2];
59
-
60
- if (column && column.accessorFn) {
61
- values[column.id] = column.accessorFn(originalRow, rowIndex);
62
- }
63
- } // Make the row
64
-
65
-
66
- var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
67
-
68
- if (parent) {
69
- parent.subRows.push(row);
70
- } else {
71
- rowModelRef.current.rows.push(row);
72
- } // Keep track of every row in a flat array
73
-
74
-
75
- rowModelRef.current.flatRows.push(row); // Also keep track of every row by its ID
76
-
77
- rowModelRef.current.rowsById[id] = row; // Get the original subrows
78
-
79
- if (instance.options.getSubRows) {
80
- var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
81
-
82
- if (originalSubRows != null && originalSubRows.length) {
83
- row.originalSubRows = originalSubRows;
84
- row.subRows = [];
85
- accessRows(row.originalSubRows, depth + 1, row);
86
- }
87
- }
88
- }
89
- });
90
- };
91
-
92
- for (var i = 0; i < batchGroups.length; i++) {
93
- _loop(i);
94
- }
95
- };
96
-
97
- accessRows(data);
98
- };
99
- };
100
- }, {
101
- key: process.env.NODE_ENV === 'development' && 'getRowModel',
102
- initialSync: opts == null ? void 0 : opts.initialSync,
103
- onProgress: function onProgress(progress) {
104
- instance.setState(function (old) {
105
- return _rollupPluginBabelHelpers["extends"]({}, old, {
106
- coreProgress: progress
107
- });
108
- });
109
- },
110
- debug: function debug() {
111
- var _instance$options$deb;
112
-
113
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
114
- },
115
- onChange: function onChange() {
116
- instance.queue(function () {
117
- instance._autoResetPageIndex();
118
- });
119
- }
120
- });
121
- };
122
- }
123
-
124
- exports.getCoreRowModelAsync = getCoreRowModelAsync;
125
- //# sourceMappingURL=getCoreRowModelAsync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getCoreRowModelAsync.js","sources":["../../../src/utils/getCoreRowModelAsync.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { getBatchGroups, incrementalMemo } from '../utils'\n\nexport function getCoreRowModelAsync<TGenerics extends TableGenerics>(opts?: {\n initialSync: boolean\n}): (instance: TableInstance<TGenerics>) => () => RowModel<TGenerics> {\n return instance =>\n incrementalMemo(\n () => [instance.options.data, instance.getAllLeafColumns()],\n () => {\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n return { rows, flatRows, rowsById }\n },\n (data, leafColumns) => rowModelRef => scheduleTask => {\n const accessRows = (\n originalRows: TGenerics['Row'][],\n depth = 0,\n parent?: Row<TGenerics>\n ) => {\n const batchGroups = getBatchGroups(originalRows, 2000)\n\n for (let i = 0; i < batchGroups.length; i++) {\n const batchGroup = batchGroups[i]\n scheduleTask(() => {\n for (let i = 0; i < batchGroup.items.length; i++) {\n const originalRow = batchGroup.items[i]\n const rowIndex = batchGroup.start + i\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n if (parent) {\n parent.subRows.push(row)\n } else {\n rowModelRef.current.rows.push(row)\n }\n // Keep track of every row in a flat array\n rowModelRef.current.flatRows.push(row)\n // Also keep track of every row by its ID\n rowModelRef.current.rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n row.subRows = []\n\n accessRows(row.originalSubRows, depth + 1, row)\n }\n }\n }\n })\n }\n }\n\n accessRows(data)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n initialSync: opts?.initialSync,\n onProgress: progress => {\n instance.setState(old => ({ ...old, coreProgress: progress }))\n },\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance._autoResetPageIndex()\n })\n },\n }\n )\n}\n"],"names":["getCoreRowModelAsync","opts","instance","incrementalMemo","options","data","getAllLeafColumns","rows","flatRows","rowsById","leafColumns","rowModelRef","scheduleTask","accessRows","originalRows","depth","parent","batchGroups","getBatchGroups","i","batchGroup","items","length","originalRow","rowIndex","start","id","getRowId","process","env","NODE_ENV","Error","values","column","accessorFn","row","createRow","subRows","push","current","getSubRows","originalSubRows","key","initialSync","onProgress","progress","setState","old","_extends","coreProgress","debug","debugAll","debugTable","onChange","queue","_autoResetPageIndex"],"mappings":"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"}
@@ -1,102 +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
-
17
- function getCoreRowModelSync() {
18
- return function (instance) {
19
- return utils.memo(function () {
20
- return [instance.options.data];
21
- }, function (data) {
22
- // Access the row model using initial columns
23
- var rows = [];
24
- var flatRows = [];
25
- var rowsById = {};
26
- var leafColumns = instance.getAllLeafColumns();
27
-
28
- var accessRow = function accessRow(originalRow, rowIndex, depth, parentRows, parent) {
29
- if (depth === void 0) {
30
- depth = 0;
31
- }
32
-
33
- var id = instance.getRowId(originalRow, rowIndex, parent);
34
-
35
- if (!id) {
36
- if (process.env.NODE_ENV !== 'production') {
37
- throw new Error("getRowId expected an ID, but got " + id);
38
- }
39
- }
40
-
41
- var values = {};
42
-
43
- for (var i = 0; i < leafColumns.length; i++) {
44
- var column = leafColumns[i];
45
-
46
- if (column && column.accessorFn) {
47
- values[column.id] = column.accessorFn(originalRow, rowIndex);
48
- }
49
- } // Make the row
50
-
51
-
52
- var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
53
-
54
- parentRows.push(row); // Keep track of every row in a flat array
55
-
56
- flatRows.push(row); // Also keep track of every row by its ID
57
-
58
- rowsById[id] = row; // Get the original subrows
59
-
60
- if (instance.options.getSubRows) {
61
- var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
62
-
63
- if (originalSubRows != null && originalSubRows.length) {
64
- row.originalSubRows = originalSubRows;
65
- var subRows = [];
66
-
67
- for (var _i = 0; _i < row.originalSubRows.length; _i++) {
68
- accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
69
- }
70
-
71
- row.subRows = subRows;
72
- }
73
- }
74
- };
75
-
76
- for (var i = 0; i < data.length; i++) {
77
- accessRow(data[i], i, 0, rows);
78
- }
79
-
80
- return {
81
- rows: rows,
82
- flatRows: flatRows,
83
- rowsById: rowsById
84
- };
85
- }, {
86
- key: process.env.NODE_ENV === 'development' && 'getRowModel',
87
- debug: function debug() {
88
- var _instance$options$deb;
89
-
90
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
91
- },
92
- onChange: function onChange() {
93
- instance.queue(function () {
94
- instance._autoResetPageIndex();
95
- });
96
- }
97
- });
98
- };
99
- }
100
-
101
- exports.getCoreRowModelSync = getCoreRowModelSync;
102
- //# sourceMappingURL=getCoreRowModelSync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getCoreRowModelSync.js","sources":["../../../src/utils/getCoreRowModelSync.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModelSync<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n // Access the row model using initial columns\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TGenerics['Row'],\n rowIndex: number,\n depth = 0,\n parentRows: Row<TGenerics>[],\n parent?: Row<TGenerics>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<TGenerics>[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TGenerics['Row'],\n i,\n depth + 1,\n subRows,\n row\n )\n }\n row.subRows = subRows\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TGenerics['Row'], i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance._autoResetPageIndex()\n })\n },\n }\n )\n}\n"],"names":["getCoreRowModelSync","instance","memo","options","data","rows","flatRows","rowsById","leafColumns","getAllLeafColumns","accessRow","originalRow","rowIndex","depth","parentRows","parent","id","getRowId","process","env","NODE_ENV","Error","values","i","length","column","accessorFn","row","createRow","push","getSubRows","originalSubRows","subRows","key","debug","debugAll","debugTable","onChange","queue","_autoResetPageIndex"],"mappings":"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"}