@tanstack/table-core 8.9.9 → 8.9.11
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.
- package/build/lib/features/RowSelection.js +27 -13
- package/build/lib/features/RowSelection.js.map +1 -1
- package/build/lib/index.esm.js +27 -13
- package/build/lib/index.esm.js.map +1 -1
- package/build/lib/index.mjs +27 -13
- package/build/lib/index.mjs.map +1 -1
- package/build/lib/utils.d.ts +1 -1
- package/build/lib/utils.js.map +1 -1
- package/build/umd/index.development.js +27 -13
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/features/RowSelection.ts +27 -14
- package/src/utils.ts +3 -3
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tanstack/table-core",
|
|
3
3
|
"author": "Tanner Linsley",
|
|
4
|
-
"version": "8.9.
|
|
4
|
+
"version": "8.9.11",
|
|
5
5
|
"description": "Headless UI for building powerful tables & datagrids for TS/JS.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://github.com/tanstack/table#readme",
|
|
@@ -348,7 +348,7 @@ export const RowSelection: TableFeature = {
|
|
|
348
348
|
table.setRowSelection(old => {
|
|
349
349
|
value = typeof value !== 'undefined' ? value : !isSelected
|
|
350
350
|
|
|
351
|
-
if (isSelected === value) {
|
|
351
|
+
if (row.getCanSelect() && isSelected === value) {
|
|
352
352
|
return old
|
|
353
353
|
}
|
|
354
354
|
|
|
@@ -496,25 +496,38 @@ export function isSubRowSelected<TData extends RowData>(
|
|
|
496
496
|
selection: Record<string, boolean>,
|
|
497
497
|
table: Table<TData>
|
|
498
498
|
): boolean | 'some' | 'all' {
|
|
499
|
-
if (row.subRows
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
499
|
+
if (!row.subRows?.length) return false
|
|
500
|
+
|
|
501
|
+
let allChildrenSelected = true
|
|
502
|
+
let someSelected = false
|
|
503
|
+
|
|
504
|
+
row.subRows.forEach(subRow => {
|
|
505
|
+
// Bail out early if we know both of these
|
|
506
|
+
if (someSelected && !allChildrenSelected) {
|
|
507
|
+
return
|
|
508
|
+
}
|
|
508
509
|
|
|
510
|
+
if (subRow.getCanSelect()) {
|
|
509
511
|
if (isRowSelected(subRow, selection)) {
|
|
510
512
|
someSelected = true
|
|
511
513
|
} else {
|
|
512
514
|
allChildrenSelected = false
|
|
513
515
|
}
|
|
514
|
-
}
|
|
516
|
+
}
|
|
515
517
|
|
|
516
|
-
|
|
517
|
-
|
|
518
|
+
// Check row selection of nested subrows
|
|
519
|
+
if (subRow.subRows && subRow.subRows.length) {
|
|
520
|
+
const subRowChildrenSelected = isSubRowSelected(subRow, selection, table)
|
|
521
|
+
if (subRowChildrenSelected === 'all') {
|
|
522
|
+
someSelected = true
|
|
523
|
+
} else if (subRowChildrenSelected === 'some') {
|
|
524
|
+
someSelected = true
|
|
525
|
+
allChildrenSelected = false
|
|
526
|
+
} else {
|
|
527
|
+
allChildrenSelected = false
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
})
|
|
518
531
|
|
|
519
|
-
return false
|
|
532
|
+
return allChildrenSelected ? 'all' : someSelected ? 'some' : false
|
|
520
533
|
}
|
package/src/utils.ts
CHANGED
|
@@ -43,16 +43,16 @@ type AllowedIndexes<
|
|
|
43
43
|
? AllowedIndexes<Tail, Keys | Tail['length']>
|
|
44
44
|
: Keys
|
|
45
45
|
|
|
46
|
-
export type DeepKeys<T, TDepth extends any[] = []> = TDepth['length'] extends
|
|
46
|
+
export type DeepKeys<T, TDepth extends any[] = []> = TDepth['length'] extends 5
|
|
47
47
|
? never
|
|
48
48
|
: unknown extends T
|
|
49
|
-
?
|
|
49
|
+
? string
|
|
50
50
|
: object extends T
|
|
51
51
|
? string
|
|
52
52
|
: T extends readonly any[] & IsTuple<T>
|
|
53
53
|
? AllowedIndexes<T> | DeepKeysPrefix<T, AllowedIndexes<T>, TDepth>
|
|
54
54
|
: T extends any[]
|
|
55
|
-
?
|
|
55
|
+
? DeepKeys<T[number], [...TDepth, any]>
|
|
56
56
|
: T extends Date
|
|
57
57
|
? never
|
|
58
58
|
: T extends object
|