1
1
import { createRow } from '../core/row'
2
- import { Table , Row , RowModel , RowData } from '../types'
2
+ import { Row , RowData , RowModel , Table } from '../types'
3
3
import { flattenBy , getMemoOptions , memo } from '../utils'
4
+ import { GroupingState } from '../features/ColumnGrouping'
4
5
5
6
export function getGroupedRowModel < TData extends RowData > ( ) : (
6
7
table : Table < TData >
@@ -10,6 +11,10 @@ export function getGroupedRowModel<TData extends RowData>(): (
10
11
( ) => [ table . getState ( ) . grouping , table . getPreGroupedRowModel ( ) ] ,
11
12
( grouping , rowModel ) => {
12
13
if ( ! rowModel . rows . length || ! grouping . length ) {
14
+ rowModel . rows . forEach ( row => {
15
+ row . depth = 0
16
+ row . parentId = undefined
17
+ } )
13
18
return rowModel
14
19
}
15
20
@@ -53,7 +58,7 @@ export function getGroupedRowModel<TData extends RowData>(): (
53
58
// Group the rows together for this level
54
59
const rowGroupsMap = groupBy ( rows , columnId )
55
60
56
- // Peform aggregations for each group
61
+ // Perform aggregations for each group
57
62
const aggregatedGroupedRows = Array . from ( rowGroupsMap . entries ( ) ) . map (
58
63
( [ groupingValue , groupedRows ] , index ) => {
59
64
let id = `${ columnId } :${ groupingValue } `
@@ -62,6 +67,10 @@ export function getGroupedRowModel<TData extends RowData>(): (
62
67
// First, Recurse to group sub rows before aggregation
63
68
const subRows = groupUpRecursively ( groupedRows , depth + 1 , id )
64
69
70
+ subRows . forEach ( subRow => {
71
+ subRow . parentId = id
72
+ } )
73
+
65
74
// Flatten the leaf rows of the rows in this group
66
75
const leafRows = depth
67
76
? flattenBy ( groupedRows , row => row . subRows )
0 commit comments