@@ -80,8 +80,16 @@ export function layoutGraph(
80
80
81
81
const middleNodes = nodes . filter ( ( node ) => node !== start && node !== end ) ;
82
82
83
- const visibleNodes = middleNodes . slice ( 0 , maxColumnsWhenCollapsed ) ;
84
- const hiddenNodes = middleNodes . slice ( maxColumnsWhenCollapsed ) ;
83
+ const middleStages = middleNodes . flatMap ( ( node ) =>
84
+ node . rows . flatMap ( ( row ) =>
85
+ row . flatMap ( ( e ) => ( e as StageNodeInfo ) . stage ) ,
86
+ ) ,
87
+ ) ;
88
+
89
+ const newMiddleNodes = createNodeColumns ( middleStages , collapsed ) ;
90
+
91
+ const visibleNodes = newMiddleNodes . slice ( 0 , maxColumnsWhenCollapsed ) ;
92
+ const hiddenNodes = newMiddleNodes . slice ( maxColumnsWhenCollapsed ) ;
85
93
86
94
const result = [ start , ...visibleNodes ] ;
87
95
@@ -184,7 +192,7 @@ export function createNodeColumns(
184
192
185
193
for ( const nodeStage of stagesForColumn ) {
186
194
const rowNodes : Array < NodeInfo > = [ ] ;
187
- if ( ! collapsed && ! willRecurse && stageHasChildren ( nodeStage ) ) {
195
+ if ( ! willRecurse && stageHasChildren ( nodeStage ) ) {
188
196
column . hasBranchLabels = true ;
189
197
forEachChildStage ( nodeStage , ( parentStage , childStage , _ ) =>
190
198
rowNodes . push ( makeNodeForStage ( childStage , parentStage . name ) ) ,
@@ -193,9 +201,6 @@ export function createNodeColumns(
193
201
rowNodes . push ( makeNodeForStage ( nodeStage ) ) ;
194
202
}
195
203
column . rows . push ( rowNodes ) ;
196
- if ( collapsed ) {
197
- break ;
198
- }
199
204
}
200
205
201
206
nodeColumns . push ( column ) ;
0 commit comments