@@ -20,7 +20,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
2020
2121 // Method to sort nodes by their level
2222 private sortNodesByLevel ( nodes : LayoutNode [ ] ) : LayoutNode [ ] {
23- return nodes . sort ( ( a , b ) => {
23+ return ( nodes || [ ] ) . sort ( ( a , b ) => {
2424 const aLevel = a ?. element ?. getData ( ) ?. level ;
2525 const bLevel = b ?. element ?. getData ( ) ?. level ;
2626 return aLevel - bLevel ;
@@ -30,7 +30,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
3030 // Method to count nodes per level
3131 private countNodesPerLevel ( nodes : LayoutNode [ ] ) : { [ level : number ] : number } {
3232 const levelCounts : { [ level : number ] : number } = { } ;
33- nodes . forEach ( ( node ) => {
33+ ( nodes || [ ] ) . forEach ( ( node ) => {
3434 const level = node ?. element ?. getData ( ) ?. level ;
3535 if ( ! levelCounts [ level ] ) {
3636 levelCounts [ level ] = 0 ;
@@ -65,7 +65,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
6565 let padX = 0 ;
6666 let padY = 0 ;
6767
68- groupNodes . forEach ( ( node ) => {
68+ ( groupNodes || [ ] ) . forEach ( ( node ) => {
6969 if ( padX < node . width ) {
7070 padX = node . width ;
7171 }
@@ -94,7 +94,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
9494 let maxX = x ;
9595 let maxY = y ;
9696
97- sortedNodes . forEach ( ( node ) => {
97+ ( sortedNodes || [ ] ) . forEach ( ( node ) => {
9898 if ( node ?. element ?. getData ( ) ?. level !== currentLevel ) {
9999 // Move to the next level when the level changes
100100 currentLevel = node ?. element ?. getData ( ) ?. level ;
@@ -143,7 +143,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
143143 // Method to group nodes by their parent group
144144 private groupNodesByParent ( ) : { [ groupId : string ] : LayoutNode [ ] } {
145145 const groups : { [ groupId : string ] : LayoutNode [ ] } = { } ;
146- this . nodes . forEach ( ( node ) => {
146+ ( this . nodes || [ ] ) . forEach ( ( node ) => {
147147 const parentGroupId = node . element . getParent ( ) ?. getId ( ) ;
148148 if ( parentGroupId ) {
149149 if ( ! groups [ parentGroupId ] ) {
@@ -160,7 +160,7 @@ export class LevelsLayout extends BaseLayout implements Layout {
160160 maxGroupWidth : number ;
161161 maxGroupHeight : number ;
162162 } {
163- const groupDimensions = Object . keys ( groups ) . map ( ( key ) =>
163+ const groupDimensions = Object . keys ( groups || { } ) . map ( ( key ) =>
164164 this . positionGroupNodes ( groups [ key ] , 0 , 0 ) ,
165165 ) ;
166166 const maxGroupWidth = Math . max ( ...groupDimensions . map ( ( dim ) => dim . width ) ) ;
0 commit comments