@@ -284,20 +284,22 @@ class TabContainer extends UI5Element {
284
284
}
285
285
286
286
_onHeaderClick ( event ) {
287
- if ( ! tabIsClicked ( event . target ) ) {
287
+ const tab = getTab ( event . target ) ;
288
+ if ( ! tab ) {
288
289
return ;
289
290
}
290
291
291
- this . _onHeaderItemSelect ( event ) ;
292
+ this . _onHeaderItemSelect ( tab ) ;
292
293
}
293
294
294
295
_onHeaderKeyDown ( event ) {
295
- if ( ! tabIsClicked ( event . target ) ) {
296
+ const tab = getTab ( event . target ) ;
297
+ if ( ! tab ) {
296
298
return ;
297
299
}
298
300
299
301
if ( isEnter ( event ) ) {
300
- this . _onHeaderItemSelect ( event ) ;
302
+ this . _onHeaderItemSelect ( tab ) ;
301
303
}
302
304
303
305
// Prevent Scrolling
@@ -307,12 +309,13 @@ class TabContainer extends UI5Element {
307
309
}
308
310
309
311
_onHeaderKeyUp ( event ) {
310
- if ( ! tabIsClicked ( event . target ) ) {
312
+ const tab = getTab ( event . target ) ;
313
+ if ( ! tab ) {
311
314
return ;
312
315
}
313
316
314
317
if ( isSpace ( event ) ) {
315
- this . _onHeaderItemSelect ( event ) ;
318
+ this . _onHeaderItemSelect ( tab ) ;
316
319
}
317
320
}
318
321
@@ -321,9 +324,9 @@ class TabContainer extends UI5Element {
321
324
this . _itemNavigation . getItemsCallback = ( ) => this . _getTabs ( ) ;
322
325
}
323
326
324
- _onHeaderItemSelect ( event ) {
325
- if ( ! event . target . hasAttribute ( "disabled" ) ) {
326
- this . _onItemSelect ( event . target ) ;
327
+ _onHeaderItemSelect ( tab ) {
328
+ if ( ! tab . hasAttribute ( "disabled" ) ) {
329
+ this . _onItemSelect ( tab ) ;
327
330
}
328
331
}
329
332
@@ -499,8 +502,18 @@ class TabContainer extends UI5Element {
499
502
}
500
503
}
501
504
502
- const tabIsClicked = el => {
503
- return el . localName === "li" && el . getAttribute ( "role" ) === "tab" ;
505
+ const isTabLi = el => el . localName === "li" && el . getAttribute ( "role" ) === "tab" ;
506
+
507
+ const getTab = el => {
508
+ while ( el ) {
509
+ if ( isTabLi ( el ) ) {
510
+ return el ;
511
+ }
512
+
513
+ el = el . parentElement ;
514
+ }
515
+
516
+ return false ;
504
517
} ;
505
518
506
519
const findIndex = ( arr , predicate ) => {
0 commit comments