{ "version": 3, "sources": ["../../src/js/navigation.js", "../../src/js/accessibility.js", "../../src/js/helpers.js", "../../src/js/global.js"], "sourcesContent": ["// Navigation\r\nexport function mainNavigation() {\r\n\tconst menuToggle = document.getElementById('menu-toggle');\r\n\tconst siteNavigation = document.querySelector('.primary-nav-menu');\r\n\tconst subMenuToggle = document.querySelectorAll('.dropdown');\r\n\tconst dropdownParent = document.querySelectorAll('.nav-menu-item-has-children');\r\n\tconst dropdownTarget = document.querySelectorAll('.nav-menu-item-has-children > a');\r\n\tconst subMenus = document.getElementsByClassName('sub-menu');\r\n\tconst breakPoint = 1025;\r\n\r\n\tconst screenReaderText = {\r\n\t\t\"expand\": \"Expand Sub Menu\",\r\n\t\t\"collapse\": \"Collapse Sub Menu\"\r\n\t};\r\n\r\n\t// Add mobile dropdown toggles\r\n\tif (window.innerWidth < breakPoint) {\r\n\t\tfor (let i = 0; i < dropdownTarget.length; i++) {\r\n\t\t\t// Create mobile dropdown toggle\r\n\t\t\tlet ddBtn = document.createElement('button');\r\n\t\t\tddBtn.type = 'button';\r\n\t\t\tddBtn.className = 'dropdown-toggle';\r\n\t\t\tddBtn.setAttribute('aria-expanded', false)\r\n\t\t\tlet btnSpan = document.createElement('span');\r\n\t\t\tbtnSpan.className = 'screen-reader-text';\r\n\t\t\tbtnSpan.innerHTML = screenReaderText.expand;\r\n\t\t\tddBtn.append(btnSpan);\r\n\t\t\tdropdownTarget[i].after(ddBtn);\r\n\r\n\t\t\t// Button clicked to expand subnav\r\n\t\t\tddBtn.addEventListener('click', function () {\r\n\t\t\t\t// Toggle aria-expanded on button\r\n\t\t\t\tconst smBtnOpen = JSON.parse(ddBtn.getAttribute('aria-expanded'));\r\n\t\t\t\tddBtn.setAttribute('aria-expanded', !smBtnOpen);\r\n\t\t\t\tddBtn.classList.toggle('toggled-on');\r\n\t\t\t\t// Toggle screen-reader-text button text\r\n\t\t\t\tif (btnSpan.innerHTML == screenReaderText.expand) {\r\n\t\t\t\t\tbtnSpan.innerHTML = screenReaderText.collapse\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbtnSpan.innerHTML = screenReaderText.expand\r\n\t\t\t\t}\r\n\t\t\t\t// Toggle toggled-on class to sub-menu\r\n\t\t\t\tlet subMenu = ddBtn.nextElementSibling;\r\n\t\t\t\tsubMenu.classList.toggle('toggled-on');\r\n\t\t\t})\r\n\t\t}\r\n\t\tfor (let i = 0; i < dropdownParent.length; i++) {\r\n\t\t\tdropdownParent[i].setAttribute('aria-haspopup', true);\r\n\t\t}\r\n\r\n\t\t// Mobile menu\r\n\t\tsiteNavigation.setAttribute('aria-expanded', false);\r\n\r\n\t\t// Mobile nav button clicked to expand nav\r\n\t\tmenuToggle.addEventListener('click', function () {\r\n\t\t\t// Toggle aria-expanded on button\r\n\t\t\tconst open = JSON.parse(menuToggle.getAttribute('aria-expanded'));\r\n\t\t\tmenuToggle.setAttribute('aria-expanded', !open);\r\n\t\t\tmenuToggle.classList.toggle('toggled-on');\r\n\r\n\t\t\t// Toggle scrolling on body\r\n\t\t\tdocument.body.classList.toggle('modal-visible');\r\n\r\n\t\t\t// Open/close nav menu\r\n\t\t\tsiteNavigation.classList.toggle('toggled-on');\r\n\t\t\t// Toggle aria-expanded on nav menu\r\n\t\t\tconst openNav = JSON.parse(siteNavigation.getAttribute('aria-expanded'));\r\n\t\t\tsiteNavigation.setAttribute('aria-expanded', !openNav);\r\n\r\n\t\t\t// Close all submenus if main nav is closed\r\n\t\t\tif (siteNavigation.classList.contains('toggled-on') === false) {\r\n\t\t\t\tfor (const sm of subMenus) {\r\n\t\t\t\t\tsm.classList.remove('toggled-on');\r\n\t\t\t\t\tlet prevBtn = sm.previousElementSibling;\r\n\t\t\t\t\tprevBtn.classList.remove('toggled-on');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\telse {\r\n\t\t// Toggle aria-expanded on parent a elements\r\n\t\tfor (let i = 0; i < dropdownParent.length; i++) {\r\n\t\t\tdropdownTarget[i].setAttribute('aria-expanded', false);\r\n\t\t\tdropdownParent[i].addEventListener('mouseover focusin', function () {\r\n\t\t\t\tdropdownTarget[i].setAttribute('aria-expanded', true);\r\n\t\t\t})\r\n\t\t\tdropdownParent[i].addEventListener('mouseout focusout', function () {\r\n\t\t\t\tdropdownTarget[i].setAttribute('aria-expanded', false);\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}", "export function accessibility() {\r\n /* Tab navigation skip to content */\r\n const skipLink = document.querySelector('.skip-link');\r\n const skipTo = skipLink.hash.replace(/#/, '');\r\n const skipToElement = document.getElementById(skipTo);\r\n skipLink.addEventListener('click', function () {\r\n // Add focus to element\r\n skipToElement.setAttribute('tabindex', -1);\r\n skipToElement.focus();\r\n // Remove focus on focus lost\r\n skipToElement.addEventListener('focusout', function () {\r\n skipToElement.removeAttribute('tabindex');\r\n })\r\n });\r\n\r\n /* Enable focusring on keyboard navigation */\r\n document.body.addEventListener('keydown', function (event) {\r\n if (event.key == 'Tab') {\r\n document.body.className = 'keyboard-nav';\r\n }\r\n });\r\n\r\n /* Disable focusring on mouse click */\r\n document.body.addEventListener('click', function () {\r\n let curBodyClass = document.body.className;\r\n if (curBodyClass == 'keyboard-nav') {\r\n document.body.classList.remove('keyboard-nav');\r\n }\r\n });\r\n\r\n /* New window to external link warning */\r\n document.querySelectorAll('a[target=_blank]').forEach(function (e) {\r\n e.insertAdjacentHTML('beforeend', ' (opens in a new window)');\r\n });\r\n}", "export function helpers() {\r\n\t/* Copyright year */\r\n\tconst d = new Date();\r\n\tconst copyRightYr = d.getFullYear();\r\n\tdocument.getElementById('copyright-year').innerHTML = copyRightYr;\r\n\r\n\t/* New window to external link */\r\n\tdocument.querySelectorAll('a[href^=\"http\"][target=_blank]').forEach(function (e) {\r\n\t\te.setAttribute('rel', 'nofollow noreferrer');\r\n\t});\r\n\r\n}", "import {mainNavigation} from './navigation';\r\nimport {accessibility} from './accessibility';\r\nimport {helpers} from './helpers';\r\n\r\nmainNavigation();\r\naccessibility();\r\nhelpers();"], "mappings": "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", "names": [] }