@@ -187,7 +187,6 @@ class Nav extends BaseComponent {
187187 e . target . closest ( 'pl-toggle-layout' ) === null
188188 ) {
189189 if ( this . layoutMode !== 'vertical' && window . innerWidth > 670 ) {
190- console . log ( 'handlePageClick + cleaning up...' ) ;
191190 this . cleanupActiveNav ( true ) ;
192191 }
193192 }
@@ -294,6 +293,14 @@ class Nav extends BaseComponent {
294293 this . navAccordionPanels . forEach ( panel => {
295294 panel . classList . remove ( 'pl-is-active' ) ;
296295 } ) ;
296+ } else if ( this . layoutMode === 'vertical' && window . innerWidth <= 670 ) {
297+ this . navContainer . classList . remove ( 'pl-is-active' ) ;
298+ this . navAccordionTriggers . forEach ( trigger => {
299+ trigger . classList . remove ( 'pl-is-active' ) ;
300+ } ) ;
301+ this . navAccordionPanels . forEach ( panel => {
302+ panel . classList . remove ( 'pl-is-active' ) ;
303+ } ) ;
297304 } else {
298305 this . navContainer . classList . remove ( 'pl-is-active' ) ;
299306 }
@@ -326,24 +333,13 @@ class Nav extends BaseComponent {
326333 activeLink . classList . add ( 'pl-is-active' ) ;
327334 this . previousActiveLinks . push ( activeLink ) ;
328335
329- // handle overview links vs nested links
330- if ( activeLink . classList . contains ( 'pl-js-link-overview' ) ) {
331- const childDropdownTrigger = activeLink . nextSibling ;
332- const childDropdown = activeLink . parentNode . nextSibling ;
333-
334- if ( childDropdown && shouldAutoOpenNav ) {
335- if ( childDropdown . tagName ) {
336- childDropdown . classList . add ( 'pl-is-active' ) ;
337- this . previousActiveLinks . push ( childDropdown ) ;
338- }
339- }
340-
341- if ( childDropdownTrigger && shouldAutoOpenNav ) {
342- if ( childDropdownTrigger . tagName ) {
343- childDropdownTrigger . classList . add ( 'pl-is-active' ) ;
344- this . previousActiveLinks . push ( childDropdownTrigger ) ;
345- }
346- }
336+ if (
337+ activeLink . parentNode . classList . contains (
338+ 'pl-c-nav__link--overview-wrapper'
339+ )
340+ ) {
341+ activeLink . parentNode . classList . add ( 'pl-is-active' ) ;
342+ this . previousActiveLinks . push ( activeLink . parentNode ) ;
347343 }
348344
349345 const parentDropdown = activeLink . closest ( '.pl-js-acc-panel' ) ;
@@ -359,8 +355,8 @@ class Nav extends BaseComponent {
359355 ) &&
360356 shouldAutoOpenNav
361357 ) {
362- this . previousActiveLinks . push ( parentDropdown . previousSibling ) ;
363358 parentDropdown . previousSibling . classList . add ( 'pl-is-active' ) ;
359+ this . previousActiveLinks . push ( parentDropdown . previousSibling ) ;
364360 parentDropdownTrigger = parentDropdown . previousSibling . querySelector (
365361 '.pl-js-acc-handle'
366362 ) ;
@@ -372,31 +368,6 @@ class Nav extends BaseComponent {
372368 const grandparentDropdownTrigger =
373369 grandparentDropdown . previousSibling ;
374370
375- if ( parentDropdown && shouldAutoOpenNav ) {
376- parentDropdown . classList . add ( 'pl-is-active' ) ;
377- this . previousActiveLinks . push ( parentDropdown ) ;
378- }
379-
380- // don't auto-open
381- if ( parentDropdownTrigger ) {
382- if (
383- shouldAutoOpenNav === true ||
384- parentDropdownTrigger . classList . contains (
385- 'pl-c-nav__link--title'
386- ) === false
387- ) {
388- parentDropdownTrigger . classList . add ( 'pl-is-active' ) ;
389- this . previousActiveLinks . push ( parentDropdownTrigger ) ;
390- }
391- }
392-
393- if ( grandparentDropdown && shouldAutoOpenNav ) {
394- if ( shouldAutoOpenNav ) {
395- grandparentDropdown . classList . add ( 'pl-is-active' ) ;
396- }
397- this . previousActiveLinks . push ( grandparentDropdown ) ;
398- }
399-
400371 if ( grandparentDropdownTrigger && shouldAutoOpenNav ) {
401372 if ( shouldAutoOpenNav ) {
402373 grandparentDropdownTrigger . classList . add ( 'pl-is-active' ) ;
@@ -425,72 +396,12 @@ class Nav extends BaseComponent {
425396
426397 toggleSpecialNavPanel ( e ) {
427398 const target = e . target ;
428- const panel = target . parentNode . nextSibling ;
429- const subnav = panel . parentNode . parentNode . classList . contains (
430- 'pl-js-acc-panel'
431- ) ;
432-
433- if ( ! subnav ) {
434- const navTriggers = document . querySelectorAll (
435- `.pl-js-acc-handle.pl-is-active`
436- ) ;
437- const navPanels = document . querySelectorAll (
438- `.pl-js-acc-panel.pl-is-active`
439- ) ;
440-
441- navTriggers . forEach ( navTrigger => {
442- if ( navTrigger !== target ) {
443- navTrigger . classList . remove ( 'pl-is-active' ) ;
444- }
445- } ) ;
446-
447- navPanels . forEach ( navPanel => {
448- if ( navPanel !== target ) {
449- navPanel . classList . remove ( 'pl-is-active' ) ;
450- }
451- } ) ;
452- }
453-
454- if ( target . classList . contains ( 'pl-is-active' ) ) {
455- target . classList . remove ( 'pl-is-active' ) ;
456- panel . classList . remove ( 'pl-is-active' ) ;
457- } else {
458- target . classList . add ( 'pl-is-active' ) ;
459- panel . classList . add ( 'pl-is-active' ) ;
460- }
399+ target . parentNode . classList . toggle ( 'pl-is-active' ) ;
461400 }
462401
463402 toggleNavPanel ( e ) {
464403 const target = e . target ;
465- const panel = target . nextSibling ;
466- const subnav = target . parentNode . parentNode . classList . contains (
467- 'pl-js-acc-panel'
468- ) ;
469-
470- if ( ! subnav ) {
471- const navTriggers = document . querySelectorAll ( '.pl-js-acc-handle' ) ;
472- const navPanels = document . querySelectorAll ( '.pl-js-acc-panel' ) ;
473-
474- navTriggers . forEach ( navTrigger => {
475- if ( navTrigger !== target ) {
476- navTrigger . classList . remove ( 'pl-is-active' ) ;
477- }
478- } ) ;
479-
480- navPanels . forEach ( navPanel => {
481- if ( navPanel !== target ) {
482- navPanel . classList . remove ( 'pl-is-active' ) ;
483- }
484- } ) ;
485- }
486-
487- if ( target . classList . contains ( 'pl-is-active' ) ) {
488- target . classList . remove ( 'pl-is-active' ) ;
489- panel . classList . remove ( 'pl-is-active' ) ;
490- } else {
491- target . classList . add ( 'pl-is-active' ) ;
492- panel . classList . add ( 'pl-is-active' ) ;
493- }
404+ target . classList . toggle ( 'pl-is-active' ) ;
494405 }
495406
496407 rendered ( ) {
0 commit comments