File tree Expand file tree Collapse file tree 1 file changed +18
-2
lines changed
packages/tree-base/src/js Expand file tree Collapse file tree 1 file changed +18
-2
lines changed Original file line number Diff line number Diff line change 1086
1086
*/
1087
1087
createTree : function ( grid , renderableRows ) {
1088
1088
var currentLevel = - 1 ,
1089
+ parentsCache = { } ,
1089
1090
parents = [ ] ,
1090
1091
currentState ;
1091
1092
1116
1117
}
1117
1118
}
1118
1119
1120
+ // If row header as parent exists in parentsCache
1121
+ if (
1122
+ typeof row . treeLevel !== 'undefined' &&
1123
+ row . treeLevel !== null &&
1124
+ row . treeLevel >= 0 &&
1125
+ parentsCache . hasOwnProperty ( row . uid )
1126
+ ) {
1127
+ parents . push ( parentsCache [ row . uid ] ) ;
1128
+ }
1129
+
1119
1130
// aggregate if this is a leaf node
1120
1131
if ( ( typeof ( row . treeLevel ) === 'undefined' || row . treeLevel === null || row . treeLevel < 0 ) && row . visible ) {
1121
1132
service . aggregate ( grid , row , parents ) ;
1122
1133
}
1123
1134
1124
1135
// add this node to the tree
1125
- service . addOrUseNode ( grid , row , parents , aggregations ) ;
1136
+ if ( ! parentsCache . hasOwnProperty ( row . uid ) ) {
1137
+ service . addOrUseNode ( grid , row , parents , aggregations ) ;
1138
+ }
1126
1139
1127
1140
if ( typeof ( row . treeLevel ) !== 'undefined' && row . treeLevel !== null && row . treeLevel >= 0 ) {
1128
- parents . push ( row ) ;
1141
+ if ( ! parentsCache . hasOwnProperty ( row . uid ) ) {
1142
+ parentsCache [ row . uid ] = row ;
1143
+ parents . push ( row ) ;
1144
+ }
1129
1145
currentLevel ++ ;
1130
1146
currentState = service . setCurrentState ( parents ) ;
1131
1147
}
You can’t perform that action at this time.
0 commit comments