{"version":3,"file":"Src_Scripts_components_top-navigation_js.2c27d6616cb86cabaf40.js","sources":["webpack://Boerneraadet/./Src/Scripts/components/top-navigation.js"],"sourcesContent":["export default class TopNavigation {\r\n\r\n constructor(elm) {\r\n this.didScroll = false;\r\n this.lastScrollTop = 0;\r\n this.delta = 5;\r\n this.header = elm;\r\n this.offset = this.header.offsetHeight;\r\n\r\n window.onscroll = () => {\r\n this.didScroll = true;\r\n };\r\n\r\n document.onmouseover = function (evt) {\r\n // evt = evt || window.event;\r\n if (evt.target.closest('.navbar-nav') == null) {\r\n document.querySelectorAll('.dropdown-menu.active').forEach(item => {\r\n item.classList.remove('active');\r\n });\r\n }\r\n };\r\n\r\n setInterval(() => {\r\n if (this.didScroll) {\r\n this.hasScrolled();\r\n this.didScroll = false;\r\n }\r\n }, 250);\r\n \r\n const elements = this.header.querySelectorAll('.nav-item.dropdown');\r\n elements.forEach(element => {\r\n const dropdownToggle = element.querySelector('.dropdown-toggle');\r\n const dropdownMenu = element.querySelector('.dropdown-menu');\r\n const dropdownItems = dropdownMenu.querySelectorAll('.dropdown-item-knowledge-headline');\r\n\r\n element.addEventListener('mouseover', () => {\r\n openDropdownMenu(element);\r\n });\r\n\r\n element.addEventListener('focusin', () => {\r\n openDropdownMenu(element);\r\n });\r\n\r\n element.addEventListener('focusout', () => {\r\n closeDropdownMenu(element);\r\n });\r\n\r\n dropdownItems.forEach(item => {\r\n item.addEventListener('keydown', event => {\r\n if (event.key === 'Tab') {\r\n event.preventDefault();\r\n // Handle focus on the next item or additional behavior if needed\r\n const nextItem = item.nextElementSibling;\r\n if (nextItem) {\r\n nextItem.focus();\r\n } else {\r\n // If the last item is reached, close the dropdown\r\n closeDropdownMenu(element);\r\n }\r\n }\r\n });\r\n });\r\n });\r\n\r\n function openDropdownMenu(element) {\r\n if (!element.querySelector('.dropdown-menu').classList.contains('active')) {\r\n closeAllDropdownMenus();\r\n element.querySelector('.dropdown-menu').classList.add('active');\r\n }\r\n }\r\n\r\n function closeDropdownMenu(element) {\r\n element.querySelector('.dropdown-menu').classList.remove('active');\r\n }\r\n\r\n function closeAllDropdownMenus() {\r\n document.querySelectorAll('.dropdown-menu.active').forEach(item => {\r\n item.classList.remove('active');\r\n });\r\n }\r\n }\r\n\r\n hasScrolled() {\r\n const st = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;\r\n\r\n if (Math.abs(this.lastScrollTop - st) <= this.delta) return;\r\n\r\n this.header.classList.toggle('scrolled', st > this.offset);\r\n this.header.classList.toggle('nav-down', (st > this.lastScrollTop && st));\r\n this.header.classList.toggle('nav-up', (st > this.lastScrollTop && st));\r\n\r\n this.lastScrollTop = st;\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AAEA;AACA;AACA;AA7FA;AACA;A;;A;;A","sourceRoot":""}