@tanstack/table-core 8.0.0-beta.4 → 8.0.0-beta.5

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tanstack/table-core",
3
3
  "author": "Tanner Linsley",
4
- "version": "8.0.0-beta.4",
4
+ "version": "8.0.0-beta.5",
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",
@@ -58,8 +58,8 @@ export type RowSelectionInstance<TGenerics extends TableGenerics> = {
58
58
  getIsAllPageRowsSelected: () => boolean
59
59
  getIsSomeRowsSelected: () => boolean
60
60
  getIsSomePageRowsSelected: () => boolean
61
- toggleAllRowsSelected: (value: boolean) => void
62
- toggleAllPageRowsSelected: (value: boolean) => void
61
+ toggleAllRowsSelected: (value?: boolean) => void
62
+ toggleAllPageRowsSelected: (value?: boolean) => void
63
63
  getPreSelectedRowModel: () => RowModel<TGenerics>
64
64
  getSelectedRowModel: () => RowModel<TGenerics>
65
65
  getFilteredSelectedRowModel: () => RowModel<TGenerics>
@@ -128,7 +128,7 @@ export const RowSelection: TableFeature = {
128
128
  },
129
129
  toggleAllPageRowsSelected: value =>
130
130
  instance.setRowSelection(old => {
131
- const selectAll =
131
+ const resolvedValue =
132
132
  typeof value !== 'undefined'
133
133
  ? value
134
134
  : !instance.getIsAllPageRowsSelected()
@@ -136,7 +136,7 @@ export const RowSelection: TableFeature = {
136
136
  const rowSelection: RowSelectionState = { ...old }
137
137
 
138
138
  instance.getRowModel().rows.forEach(row => {
139
- mutateRowIsSelected(rowSelection, row.id, value, instance)
139
+ mutateRowIsSelected(rowSelection, row.id, resolvedValue, instance)
140
140
  })
141
141
 
142
142
  return rowSelection
@@ -325,7 +325,9 @@ export const RowSelection: TableFeature = {
325
325
  const paginationFlatRows = instance.getPaginationRowModel().flatRows
326
326
  return instance.getIsAllPageRowsSelected()
327
327
  ? false
328
- : !!paginationFlatRows?.length
328
+ : paginationFlatRows.some(
329
+ d => d.getIsSelected() || d.getIsSomeSelected()
330
+ )
329
331
  },
330
332
 
331
333
  getToggleAllRowsSelectedHandler: () => {
@@ -1,4 +1,4 @@
1
- import { TableInstance, RowModel, TableGenerics } from '../types'
1
+ import { TableInstance, RowModel, TableGenerics, Row } from '../types'
2
2
  import { memo } from '../utils'
3
3
  import { expandRows } from './getExpandedRowModel'
4
4
 
@@ -23,8 +23,10 @@ export function getPaginationRowModel<TGenerics extends TableGenerics>(opts?: {
23
23
 
24
24
  rows = rows.slice(pageStart, pageEnd)
25
25
 
26
+ let paginatedRowModel: RowModel<TGenerics>
27
+
26
28
  if (!instance.options.paginateExpandedRows) {
27
- return expandRows(
29
+ paginatedRowModel = expandRows(
28
30
  {
29
31
  rows,
30
32
  flatRows,
@@ -32,13 +34,26 @@ export function getPaginationRowModel<TGenerics extends TableGenerics>(opts?: {
32
34
  },
33
35
  instance
34
36
  )
37
+ } else {
38
+ paginatedRowModel = {
39
+ rows,
40
+ flatRows,
41
+ rowsById,
42
+ }
35
43
  }
36
44
 
37
- return {
38
- rows,
39
- flatRows,
40
- rowsById,
45
+ paginatedRowModel.flatRows = []
46
+
47
+ const handleRow = (row: Row<TGenerics>) => {
48
+ paginatedRowModel.flatRows.push(row)
49
+ if (row.subRows.length) {
50
+ row.subRows.forEach(handleRow)
51
+ }
41
52
  }
53
+
54
+ paginatedRowModel.rows.forEach(handleRow)
55
+
56
+ return paginatedRowModel
42
57
  },
43
58
  {
44
59
  key: process.env.NODE_ENV === 'development' && 'getPaginationRowModel',