@@ -52,6 +52,11 @@ type CarouselNavigateEventDetail = {
5252 selectedIndex : number ;
5353}
5454
55+ type ChangeSlideOptions = {
56+ fireEvent ?: boolean ;
57+ moveFocus ?: boolean ;
58+ }
59+
5560type ItemsInfo = {
5661 id : string ,
5762 item : HTMLElement & { _individualSlot ?: string } ,
@@ -343,7 +348,7 @@ class Carousel extends UI5Element {
343348
344349 this . _currentSlideIndex = clamp ( this . _currentSlideIndex , 0 , Math . max ( 0 , this . items . length - this . effectiveItemsPerPage ) ) ;
345350 this . _focusedItemIndex = clamp ( this . _focusedItemIndex , this . _currentSlideIndex , this . items . length - 1 ) ;
346- this . _changeSlideIndex ( this . _currentSlideIndex , false ) ;
351+ this . _changeSlideIndex ( this . _currentSlideIndex , { fireEvent : false } ) ;
347352 } ) ;
348353
349354 this . _scrollEnablement = new ScrollEnablement ( this ) ;
@@ -552,28 +557,28 @@ class Carousel extends UI5Element {
552557
553558 async _handleHome ( e : KeyboardEvent ) {
554559 e . preventDefault ( ) ;
555- this . _changeSlideIndex ( 0 , true , true ) ;
560+ this . _changeSlideIndex ( 0 , { moveFocus : true } ) ;
556561 await renderFinished ( ) ;
557562 this . focusItem ( ) ;
558563 }
559564
560565 async _handleEnd ( e : KeyboardEvent ) {
561566 e . preventDefault ( ) ;
562- this . _changeSlideIndex ( this . items . length - 1 , true , true ) ;
567+ this . _changeSlideIndex ( this . items . length - 1 , { moveFocus : true } ) ;
563568 await renderFinished ( ) ;
564569 this . focusItem ( ) ;
565570 }
566571
567572 async _handlePageUp ( e : KeyboardEvent ) {
568573 e . preventDefault ( ) ;
569- this . _changeSlideIndex ( this . _currentSlideIndex + this . _pageStep , true , true ) ;
574+ this . _changeSlideIndex ( this . _currentSlideIndex + this . _pageStep , { moveFocus : true } ) ;
570575 await renderFinished ( ) ;
571576 this . focusItem ( ) ;
572577 }
573578
574579 async _handlePageDown ( e : KeyboardEvent ) {
575580 e . preventDefault ( ) ;
576- this . _changeSlideIndex ( this . _currentSlideIndex - this . _pageStep , true , true ) ;
581+ this . _changeSlideIndex ( this . _currentSlideIndex - this . _pageStep , { moveFocus : true } ) ;
577582 await renderFinished ( ) ;
578583 this . focusItem ( ) ;
579584 }
@@ -659,13 +664,14 @@ class Carousel extends UI5Element {
659664 * @public
660665 */
661666 navigateTo ( itemIndex : number ) : void {
662- this . _changeSlideIndex ( itemIndex , false ) ;
667+ this . _changeSlideIndex ( itemIndex , { fireEvent : false } ) ;
663668 }
664669
665- _changeSlideIndex ( itemIndex : number , fireEvent = true , moveFocusToNewIndex = false ) : void {
670+ _changeSlideIndex ( itemIndex : number , options : ChangeSlideOptions = { } ) : void {
671+ const { fireEvent = true , moveFocus = false } = options ;
666672 const newSlideIndex = clamp ( itemIndex , 0 , this . items . length - this . effectiveItemsPerPage ) ;
667673
668- if ( moveFocusToNewIndex || ( this . _focusedItemIndex < newSlideIndex || this . _focusedItemIndex > newSlideIndex + this . effectiveItemsPerPage - 1 ) ) {
674+ if ( moveFocus || ( this . _focusedItemIndex < newSlideIndex || this . _focusedItemIndex > newSlideIndex + this . effectiveItemsPerPage - 1 ) ) {
669675 this . _focusedItemIndex = clamp ( itemIndex , 0 , this . items . length - 1 ) ;
670676 }
671677
0 commit comments