@@ -227,7 +227,7 @@ function _getPrototypeOf(o) {
227227 return ;
228228 }
229229
230- if ( this . findAncestor ( this , 'joomla-tab' ) ) {
230+ if ( this . parentNode . closest ( 'joomla-tab' ) ) {
231231 this . isNested = true ;
232232 }
233233
@@ -259,11 +259,10 @@ function _getPrototypeOf(o) {
259259 var element = this . querySelector ( "#" . concat ( hash ) ) ; // Add the parent tab to the array for activation
260260
261261 if ( element ) {
262- var currentTabSet = this . findAncestor ( element , 'joomla-tab' ) ;
263- var parentTabSet = this . findAncestor ( currentTabSet , 'joomla-tab' ) ;
262+ var currentTabSet = element . closest ( 'joomla-tab' ) ;
264263
265- if ( parentTabSet ) {
266- var parentTab = this . findAncestor ( currentTabSet , 'section' ) ;
264+ if ( this . isNested ) {
265+ var parentTab = currentTabSet . closest ( 'section' ) ;
267266
268267 if ( parentTab ) {
269268 tabLinkHash . push ( "#tab-" . concat ( parentTab . id ) ) ;
@@ -344,15 +343,14 @@ function _getPrototypeOf(o) {
344343
345344 if ( _element ) {
346345 // Activate any parent tabs (nested tables)
347- var _currentTabSet = this . findAncestor ( _element , 'joomla-tab' ) ;
346+ var _currentTabSet = _element . closest ( 'joomla-tab' ) ;
348347
349- var _parentTabSet = this . findAncestor ( _currentTabSet , 'joomla-tab' ) ;
348+ if ( this . isNested ) {
349+ var parentTabSet = _currentTabSet . closest ( 'joomla-tab' ) ;
350350
351- if ( _parentTabSet ) {
352- var _parentTab = this . findAncestor ( _currentTabSet , 'section' ) ;
353-
354- _parentTabSet . showTab ( _parentTab ) ; // Now activate the given tab
351+ var _parentTab = _currentTabSet . closest ( 'section' ) ;
355352
353+ parentTabSet . showTab ( _parentTab ) ; // Now activate the given tab
356354
357355 this . show ( _element ) ;
358356 } else {
@@ -597,22 +595,6 @@ function _getPrototypeOf(o) {
597595 }
598596 }
599597 }
600- } , {
601- key : "findAncestor" ,
602- value : function findAncestor ( el , tagName ) {
603- var element = el ;
604-
605- while ( element . nodeName . toLowerCase ( ) !== tagName ) {
606- // Ensure we haven't reached the top of the dom tree
607- if ( element . parentElement === null ) {
608- return false ;
609- }
610-
611- element = element . parentElement ;
612- }
613-
614- return element ;
615- }
616598 /* Method to dispatch events */
617599
618600 } , {
0 commit comments