{"version":3,"file":"assets/js/414.dd913f39d4741aebc013.js","mappings":"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","sources":["webpack://ssen-transmission/./src/ui/templates/02-components/subcomponents/header/_nav/mando-ui.nav-submenu.js","webpack://ssen-transmission/./src/ui/templates/02-components/subcomponents/header/_nav/mando-ui.nav.js"],"sourcesContent":["class navSubmenu {\r\n constructor(settings) {\r\n this.container = settings.container;\r\n this.expandedDesktop = settings.expandedDesktop;\r\n this.expandedMobile = settings.expandedMobile;\r\n this.expanded = false;\r\n this.mediaQuery = window.matchMedia('(min-width: 61.25em)');\r\n this.toggleEvent = null;\r\n this.trigger = settings.trigger;\r\n this.isSubmenu = [...settings.container.classList].includes('js-nav__submenu-inner');\r\n }\r\n\r\n bindEvents() {\r\n this.trigger.addEventListener('click', this.toggleVisibility.bind(this));\r\n this.mediaQuery.addEventListener('change', this.resetState.bind(this, true));\r\n }\r\n\r\n openSearchbar() {\r\n const isMobile = !this.mediaQuery.matches;\r\n\r\n if (this.expanded && isMobile) {\r\n this.toggleVisibility(this, false);\r\n }\r\n }\r\n\r\n resetState(dispatch) {\r\n this.setExpandedDefault();\r\n this.setState(dispatch);\r\n document.body.classList.remove('is-menu');\r\n }\r\n setExpandedDefault() {\r\n this.expanded = this.mediaQuery.matches ? this.expandedDesktop : this.expandedMobile;\r\n }\r\n setState(dispatch = true) {\r\n this.trigger.setAttribute('aria-expanded', this.expanded);\r\n this.container.hidden = !this.expanded;\r\n if (dispatch === true) {\r\n this.trigger.dispatchEvent(this.toggleEvent);\r\n }\r\n }\r\n toggleVisibility() {\r\n this.expanded = !this.expanded;\r\n this.container.classList.toggle('is-active');\r\n this.setState();\r\n\r\n if ((!this.mediaQuery.matches && this.isSubmenu) || this.expanded) {\r\n // submenu item is expanded or mobile nav is now expanded\r\n document.body.classList.add('is-menu');\r\n } else {\r\n // close mobile menu toggle OR close desktop subnav items\r\n document.body.classList.remove('is-menu');\r\n }\r\n\r\n this.setState(false);\r\n\r\n if (this.expanded) {\r\n document.querySelector('.js-searchbar').classList.remove('is-active');\r\n document.body.classList.remove('is-search');\r\n }\r\n }\r\n init() {\r\n this.toggleEvent = new CustomEvent('toggle', {\r\n detail: this,\r\n });\r\n this.setExpandedDefault();\r\n this.setState();\r\n this.bindEvents();\r\n }\r\n}\r\n\r\nexport default navSubmenu;\r\n","import navSubmenu from './mando-ui.nav-submenu';\r\n\r\nconst mediaQuery = window.matchMedia('(min-width: 61.25em)');\r\nconst navigation = document.querySelector('.js-nav');\r\nconst searchbar = document.querySelector('.js-search-toggle');\r\nconst submenus = [];\r\n\r\nlet activeNav = false;\r\nlet mobile = null;\r\n\r\nfunction catchClicks(event) {\r\n if (activeNav === true && containsCssClass(event.target.classList)) {\r\n closeMenus(true);\r\n }\r\n}\r\n\r\nfunction closeMenus(reset, id = '') {\r\n submenus.forEach((submenu) => {\r\n if (submenu.expanded === true && submenu.container.id !== id) {\r\n submenu.resetState(reset);\r\n }\r\n });\r\n}\r\n\r\nfunction containsCssClass(classList) {\r\n return (\r\n classList.contains('c-header') ||\r\n classList.contains('is-active') ||\r\n classList.contains('js-search-toggle') ||\r\n classList.contains('is-menu')\r\n );\r\n}\r\n\r\nfunction instantiateMobileMenu(hasEventListener) {\r\n if (mediaQuery.matches === false && mobile === null) {\r\n mobile = new navSubmenu({\r\n container: navigation,\r\n expandedDesktop: true,\r\n expandedMobile: false,\r\n mediaQuery,\r\n trigger: document.querySelector('.js-nav-toggle'),\r\n });\r\n mobile.init();\r\n if (hasEventListener === true) {\r\n mediaQuery.removeEventListener('change', instantiateMobileMenu.bind(this, true));\r\n }\r\n searchbar.addEventListener('click', () => mobile.openSearchbar());\r\n }\r\n}\r\n\r\nfunction instantiateSubmenus() {\r\n const submenuNodes = [...navigation.getElementsByClassName('js-nav__submenu')];\r\n if (submenuNodes.length > 0) {\r\n submenuNodes.forEach((node) => {\r\n const submenu = new navSubmenu({\r\n container: node.querySelector('.js-nav__submenu-inner'),\r\n expandedDesktop: false,\r\n expandedMobile: false,\r\n mediaQuery,\r\n trigger: node.querySelector('.js-nav__trigger'),\r\n });\r\n submenu.init();\r\n submenu.trigger.addEventListener('toggle', submenuHandler);\r\n\r\n const firstLink = submenu.container.querySelector('a');\r\n submenu.container.addEventListener('focusout', handleFocus);\r\n if (firstLink) firstLink.addEventListener('focus', handleFocus);\r\n\r\n submenus.push(submenu);\r\n });\r\n }\r\n}\r\n\r\nfunction submenuHandler(event) {\r\n activeNav = event.detail.expanded;\r\n closeMenus(false, event.detail.container.id);\r\n}\r\n\r\nfunction handleFocus(event) {\r\n if (\r\n !this.contains(event.relatedTarget) &&\r\n document.activeElement !== this &&\r\n mediaQuery.matches === true\r\n ) {\r\n closeMenus(true);\r\n }\r\n}\r\n\r\nfunction init() {\r\n if (!navigation) {\r\n return;\r\n }\r\n\r\n instantiateSubmenus();\r\n\r\n mediaQuery.addEventListener('change', () => {\r\n document.body.classList.remove('is-menu');\r\n navigation.classList.remove('is-active');\r\n closeMenus(true);\r\n });\r\n\r\n if (mediaQuery.matches === true) {\r\n mediaQuery.addEventListener('change', instantiateMobileMenu.bind(this, true));\r\n } else {\r\n instantiateMobileMenu();\r\n }\r\n\r\n document.addEventListener('click', catchClicks, false);\r\n}\r\n\r\nexport default init;\r\n"],"names":["constructor","settings","this","container","expandedDesktop","expandedMobile","expanded","mediaQuery","window","matchMedia","toggleEvent","trigger","isSubmenu","classList","includes","bindEvents","addEventListener","toggleVisibility","bind","resetState","openSearchbar","isMobile","matches","dispatch","setExpandedDefault","setState","document","body","remove","arguments","length","undefined","setAttribute","hidden","dispatchEvent","toggle","add","querySelector","init","CustomEvent","detail","navigation","searchbar","submenus","activeNav","mobile","catchClicks","event","target","contains","closeMenus","reset","id","forEach","submenu","instantiateMobileMenu","hasEventListener","navSubmenu","removeEventListener","submenuHandler","handleFocus","relatedTarget","activeElement","submenuNodes","getElementsByClassName","node","firstLink","push","instantiateSubmenus"],"sourceRoot":""}