Jake Vanderwerf
2026-01-20 7a9054bb3f033c98067b3196378311dae54c5fbf
assets/js/concise/navigation.js
@@ -44,10 +44,6 @@
      });
   }
   navIDs() {
      return Array.from(this.navs.keys()).map((nav) => `#${nav}`);
   }
   initListeners() {
      this.clickListener = this.handleClick.bind(this);
      this.escapeListener = this.handleEscape.bind(this);
@@ -60,12 +56,15 @@
      if (this.navs.size === 0) {
         return;
      }
      if (this.openNav && !e.target.closest(this.openNav)) {
         this.toggleNav(false);
      if (this.openNav && e.target.closest(`#${this.openNav}`) === null) {
         this.toggleNav(false, this.openNav);
      }
      if (!e.target.closest(... this.navIDs())) {
         return;
      }
      // if (!e.target.closest(this.openNav)) {
      //    console.log('Not closest nav ids');
      //    console.log(this.navIDs());
      //    return;
      // }
      let toggle = e.target.closest('.toggle.main');
      if (toggle) {
@@ -73,7 +72,7 @@
         this.toggleNav(!nav.classList.contains('open'), nav.id);
      }
      let submenuToggle = e.target.closest('[data-action="toggle-submenu"]')
      let submenuToggle = e.target.closest('[data-action="toggle-submenu"], .has-submenu .a')
      if (submenuToggle) {
         let li = submenuToggle.closest('li');
         this.toggleSubmenu(!li.classList.contains('open'), li);
@@ -82,7 +81,6 @@
   }
   handleHoverOn(e) {
      console.log(e.target);
      let nav =  e.target.closest('nav');
      if (nav) {
         this.toggleNav(true, nav.id);
@@ -94,7 +92,6 @@
   }
   handleHoverOff(e) {
      console.log(e.target);
      let nav =  e.target.closest('nav');
      if (nav) {
         this.toggleNav(false, nav.id);
@@ -128,11 +125,13 @@
            this.openNav = null;
         }
         document.removeEventListener('keydown', this.escapeListener);
         Array.from(nav.submenus).forEach(submenu => {
            if(submenu.classList.contains('open')) {
               this.toggleSubmenu(false, submenu);
            }
         });
         if (!nav.nav.classList.contains('sidebar')) {
            Array.from(nav.submenus).forEach(submenu => {
               if(submenu.classList.contains('open')) {
                  this.toggleSubmenu(false, submenu);
               }
            });
         }
      }
      nav.nav.ariaExpanded = on;