@@ -436,25 +436,39 @@ class FlexibleColumnLayout extends UI5Element {
436
436
437
437
// hide column: 33% to 0, 25% to 0, etc .
438
438
if ( currentlyHidden ) {
439
- // animate the width
440
- columnDOM . style . width = typeof columnWidth === "number" ? `${ columnWidth } px` : columnWidth ;
441
-
442
- // hide column with delay to allow the animation runs entirely
443
- columnDOM . addEventListener ( "transitionend" , this . columnResizeHandler ) ;
444
-
439
+ this . collapseColumn ( columnDOM ) ;
445
440
return ;
446
441
}
447
442
448
443
// show column: from 0 to 33%, from 0 to 25%, etc.
449
444
if ( previouslyHidden ) {
450
- columnDOM . removeEventListener ( "transitionend" , this . columnResizeHandler ) ;
451
- columnDOM . classList . remove ( "ui5-fcl-column--hidden" ) ;
452
- columnDOM . style . width = typeof columnWidth === "number" ? `${ columnWidth } px` : columnWidth ;
445
+ this . expandColumn ( columnDOM , columnWidth ) ;
446
+ }
447
+ }
448
+
449
+ expandColumn ( columnDOM : HTMLElement , columnWidth : string | number ) {
450
+ columnDOM . classList . remove ( "ui5-fcl-column--hidden" ) ;
451
+ columnDOM . style . width = typeof columnWidth === "number" ? `${ columnWidth } px` : columnWidth ;
452
+ }
453
+
454
+ collapseColumn ( columnDOM : HTMLElement ) {
455
+ const hasAnimation = getAnimationMode ( ) !== AnimationMode . None && ! this . initialRendering ;
456
+ columnDOM . style . width = "0px" ;
457
+
458
+ if ( hasAnimation ) {
459
+ // hide column with delay to allow the animation runs entirely
460
+ columnDOM . classList . add ( "ui5-fcl-column-collapse-animation" ) ;
461
+ columnDOM . addEventListener ( "transitionend" , this . onColumnCollapseAnimationEnd ) ;
462
+ } else {
463
+ columnDOM . classList . add ( "ui5-fcl-column--hidden" ) ;
453
464
}
454
465
}
455
466
456
- columnResizeHandler = ( e : Event ) => {
457
- ( e . target as HTMLElement ) . classList . add ( "ui5-fcl-column--hidden" ) ;
467
+ onColumnCollapseAnimationEnd = ( e : Event ) => {
468
+ const columnDOM = e . target as HTMLElement ;
469
+ columnDOM . classList . add ( "ui5-fcl-column--hidden" ) ;
470
+ columnDOM . classList . remove ( "ui5-fcl-column-collapse-animation" ) ;
471
+ columnDOM . removeEventListener ( "transitionend" , this . onColumnCollapseAnimationEnd ) ;
458
472
}
459
473
460
474
nextColumnLayout ( layout : `${FCLLayout } `) {
0 commit comments