{"version":3,"file":"critical.js","mappings":"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","sources":["webpack://CNHS/./js/utilities/dom-toolkit.js","webpack://CNHS/./js/components/Navigation.js","webpack://CNHS/./js/components/Search.js","webpack://CNHS/./js/components/MobileMenu.js","webpack://CNHS/./js/components/A11y.js","webpack://CNHS/./js/app-critical.js"],"sourcesContent":["function findParentClass(element, classname) {\r\n if (element.className.split(\" \").indexOf(classname) >= 0) {\r\n return true;\r\n }\r\n return element.parentNode && findParentClass(element.parentNode, classname);\r\n}\r\n\r\nfunction hasClass(el, className) {\r\n if (el.classList) {\r\n return el.classList.contains(className);\r\n } else {\r\n return !!el.className.match(new RegExp(\"(\\\\s|^)\" + className + \"(\\\\s|$)\"));\r\n }\r\n}\r\n\r\nfunction addClass(el, className) {\r\n if (el.classList) {\r\n el.classList.add(className);\r\n } else if (!hasClass(el, className)) {\r\n el.className += \" \" + className;\r\n }\r\n}\r\n\r\nfunction removeClass(el, className) {\r\n if (el.classList) {\r\n el.classList.remove(className);\r\n } else if (hasClass(el, className)) {\r\n var reg = new RegExp(\"(\\\\s|^)\" + className + \"(\\\\s|$)\");\r\n el.className = el.className.replace(reg, \" \");\r\n }\r\n}\r\n\r\nexport { findParentClass, hasClass, addClass, removeClass };\r\n","import {\r\n findParentClass,\r\n hasClass,\r\n addClass,\r\n removeClass,\r\n} from \"../utilities/dom-toolkit\";\r\n\r\nexport default class App__Navigation {\r\n constructor() {\r\n this.firstLevelNav = document.querySelectorAll(\".first-level\");\r\n\r\n this.secondLevelNav = document.querySelectorAll(\".second-level\");\r\n\r\n this.thirdLevelNav = document.querySelectorAll(\".third-level\");\r\n\r\n this.secondLevelMenu = document.querySelectorAll(\r\n \".primary-nav .second-level-menu\"\r\n );\r\n\r\n this.thirdLevelMenu = document.querySelectorAll(\r\n \".primary-nav .third-level-menu\"\r\n );\r\n\r\n this.toggleThirdLevel = document.querySelectorAll(\r\n \".primary-nav .third-level-toggle\"\r\n );\r\n\r\n this.body = document.querySelector(\"body\");\r\n\r\n this.utilityNavItems = document.querySelectorAll(\".utility-nav ul li a\");\r\n\r\n this.searchControl = document.querySelector(\"#search-control a\");\r\n }\r\n\r\n // Reset all submenus on focus of first level link by default\r\n resetMenu() {\r\n let menu;\r\n // Reset first level menu\r\n for (let i = this.firstLevelNav.length - 1; i >= 0; i--) {\r\n menu = this.firstLevelNav[i];\r\n }\r\n // Close Second Level Menus\r\n for (let i = this.secondLevelMenu.length - 1; i >= 0; i--) {\r\n menu = this.secondLevelMenu[i];\r\n removeClass(menu, \"open\");\r\n }\r\n // Close Third Level Menus\r\n for (let i = this.thirdLevelMenu.length - 1; i >= 0; i--) {\r\n menu = this.thirdLevelMenu[i];\r\n removeClass(menu, \"open\");\r\n }\r\n // Reset all Third Level Links Tabindex\r\n for (let i = this.thirdLevelNav.length - 1; i >= 0; i--) {\r\n const element = this.thirdLevelNav[i];\r\n element.setAttribute(\"tabindex\", \"-1\");\r\n }\r\n // Reset all Third Menu Toggles\r\n for (let i = this.toggleThirdLevel.length - 1; i >= 0; i--) {\r\n const toggle = this.toggleThirdLevel[i];\r\n removeClass(toggle.parentElement, \"isActive\");\r\n }\r\n }\r\n\r\n init() {\r\n // Reset on last utility nav item focus or search focus\r\n this.utilityNavItems[this.utilityNavItems.length - 1].onfocus = () => {\r\n this.resetMenu();\r\n };\r\n\r\n if (this.searchControl) {\r\n this.searchControl.onfocus = () => {\r\n this.resetMenu();\r\n };\r\n }\r\n\r\n // Hide menu on click of body\r\n this.body.onclick = (event) => {\r\n if (hasClass(event.target, \"third-level-toggle\") == false) {\r\n this.resetMenu();\r\n }\r\n };\r\n\r\n this.initAllLevelsMenu();\r\n }\r\n\r\n initAllLevelsMenu() {\r\n this.initFirstLevelNav();\r\n this.initSecondLevelNav();\r\n this.initSecondLevelMenu();\r\n this.initThirdLevelNav();\r\n this.initToggleThirdLevel();\r\n this.initThirdLevelMenu();\r\n }\r\n\r\n // Loop through First level nav items\r\n initFirstLevelNav() {\r\n for (let i = this.firstLevelNav.length - 1; i >= 0; i--) {\r\n const element = this.firstLevelNav[i];\r\n let firstLevelFocused = false;\r\n element.onfocus = () => {\r\n this.resetMenu();\r\n if (hasClass(element.parentElement, \"children\")) {\r\n firstLevelFocused = true;\r\n addClass(\r\n element.parentElement.querySelector(\".second-level-menu\"),\r\n \"open\"\r\n );\r\n element.setAttribute(\"aria-expanded\", true);\r\n }\r\n };\r\n element.onblur = () => {\r\n firstLevelFocused = false;\r\n element.setAttribute(\"aria-expanded\", false);\r\n };\r\n element.onmouseover = () => {\r\n this.resetMenu();\r\n element.setAttribute(\"aria-expanded\", true);\r\n if (firstLevelFocused == true) {\r\n this.resetMenu();\r\n }\r\n };\r\n element.onmouseleave = () => {\r\n element.setAttribute(\"aria-expanded\", false);\r\n };\r\n // Apply active class if child page is active\r\n\r\n if (element.parentElement.querySelectorAll(\"ul .selected\").length == 1) {\r\n addClass(element, \"hasActiveChild\");\r\n }\r\n }\r\n }\r\n\r\n // Loop through second level nav items and show the parent when on focus\r\n initSecondLevelNav() {\r\n for (let i = this.secondLevelNav.length - 1; i >= 0; i--) {\r\n const element = this.secondLevelNav[i];\r\n element.onfocus = () => {\r\n const parent = element.parentElement;\r\n const grandParent = parent.parentElement;\r\n if (findParentClass(parent, \"children\") == true) {\r\n addClass(grandParent, \"open\");\r\n }\r\n };\r\n }\r\n }\r\n\r\n // Apply id to second level menus for aria-labelledby\r\n initSecondLevelMenu() {\r\n for (let i = this.secondLevelMenu.length - 1; i >= 0; i--) {\r\n const navItem = this.secondLevelMenu[i];\r\n const navItemParentAria = navItem.parentElement\r\n .querySelector(\".first-level\")\r\n .getAttribute(\"aria-controls\");\r\n navItem.setAttribute(\"id\", navItemParentAria);\r\n }\r\n }\r\n\r\n // Keep Menu Open when sub menu is\r\n initThirdLevelNav() {\r\n for (let i = this.thirdLevelNav.length - 1; i >= 0; i--) {\r\n const element = this.thirdLevelNav[i];\r\n element.onfocus = () => {\r\n const parent = element.parentElement;\r\n const grandParent = parent.parentElement;\r\n const greatParent = grandParent.parentElement;\r\n const greatGreatParent = greatParent.parentElement;\r\n if (findParentClass(parent, \"children\") == true) {\r\n addClass(grandParent, \"open\");\r\n }\r\n if (findParentClass(parent, \"children\") == true) {\r\n addClass(greatGreatParent, \"open\");\r\n }\r\n };\r\n }\r\n }\r\n\r\n // Open up third level menu on click of \"toggle\" button\r\n initToggleThirdLevel() {\r\n for (let i = this.toggleThirdLevel.length - 1; i >= 0; i--) {\r\n const element = this.toggleThirdLevel[i];\r\n element.onclick = () => {\r\n const thirdLevelMenu =\r\n element.parentElement.querySelector(\".third-level-menu\");\r\n if (hasClass(thirdLevelMenu, \"open\")) {\r\n removeClass(element.parentElement, \"isActive\");\r\n removeClass(thirdLevelMenu, \"open\");\r\n element.setAttribute(\"aria-expanded\", false);\r\n // Add tab index-1 to all child menu items (so keyboard users can skip hidden menus)\r\n for (let i = this.thirdLevelNav.length - 1; i >= 0; i--) {\r\n const element = this.thirdLevelNav[i];\r\n element.setAttribute(\"tabindex\", \"-1\");\r\n }\r\n } else {\r\n addClass(element.parentElement, \"isActive\");\r\n addClass(thirdLevelMenu, \"open\");\r\n element.setAttribute(\"aria-expanded\", true);\r\n\r\n // Remove the tab-index-1 so users can now access the child menu via keyboard\r\n for (let i = this.thirdLevelNav.length - 1; i >= 0; i--) {\r\n const element = this.thirdLevelNav[i];\r\n element.removeAttribute(\"tabindex\");\r\n }\r\n }\r\n };\r\n\r\n element.onfocus = () => {\r\n const parent = element.parentElement;\r\n const grandParent = parent.parentElement;\r\n if (findParentClass(grandParent, \"children\") == true) {\r\n addClass(grandParent, \"open\");\r\n }\r\n };\r\n }\r\n }\r\n\r\n // Add id to third level menu for aria-controls\r\n initThirdLevelMenu() {\r\n for (let i = this.thirdLevelMenu.length - 1; i >= 0; i--) {\r\n const element = this.thirdLevelMenu[i];\r\n const navItemParentAria = element.parentElement\r\n .querySelector(\".third-level-toggle\")\r\n .getAttribute(\"aria-controls\");\r\n element.setAttribute(\"id\", navItemParentAria);\r\n }\r\n }\r\n}\r\n","import { hasClass, addClass, removeClass } from \"../utilities/dom-toolkit\";\r\n\r\nexport default class App__Search {\r\n constructor() {\r\n this.searchControl = document.querySelector(\"#search-control > a\");\r\n this.searchComponent = document.querySelector(\"#search-component\");\r\n }\r\n\r\n init() {\r\n const searchControl = this.searchControl;\r\n const searchComponent = this.searchComponent;\r\n\r\n if (!searchControl || !searchComponent) {\r\n return;\r\n }\r\n\r\n searchControl.onclick = (evt) => {\r\n evt.preventDefault();\r\n if (hasClass(searchComponent, \"active\")) {\r\n searchControl.setAttribute(\"aria-expanded\", false);\r\n searchComponent.setAttribute(\"aria-hidden\", true);\r\n removeClass(searchControl.parentElement, \"active\");\r\n removeClass(searchComponent, \"active\");\r\n } else {\r\n searchControl.setAttribute(\"aria-expanded\", true);\r\n searchComponent.setAttribute(\"aria-hidden\", false);\r\n addClass(searchControl.parentElement, \"active\");\r\n addClass(searchComponent, \"active\");\r\n }\r\n };\r\n }\r\n}\r\n","import { hasClass, addClass, removeClass } from \"../utilities/dom-toolkit\";\r\n\r\nexport default class App__MobileMenu {\r\n constructor() {\r\n this.closeMobileMenu = document.querySelector(\r\n \".mobile-menu .close-mobile-menu\"\r\n );\r\n this.mobileMenuControl = document.querySelector(\"#mobile-menu-toggle\");\r\n this.mobileMenuComponent = document.querySelector(\".mobile-menu\");\r\n this.mobileMenuCollapseFirstLevel = document.querySelectorAll(\r\n \".mobile-primary-nav .first-level\"\r\n );\r\n this.mobileMenuCollapseSecondLevel = document.querySelectorAll(\r\n \".mobile-primary-nav .third-level-toggle\"\r\n );\r\n this.secondLevelMenu = document.querySelectorAll(\r\n \".mobile-menu .second-level-menu\"\r\n );\r\n this.thirdLevelMenu = document.querySelectorAll(\r\n \".mobile-menu .third-level-menu\"\r\n );\r\n this.html = document.querySelector(\"html\");\r\n }\r\n\r\n init() {\r\n this.initMenuControlClickListener();\r\n this.initCloseMobileMenuListener();\r\n this.initCollapseFirstLevel();\r\n this.initCollapseSecondLevel();\r\n }\r\n\r\n resetMobileMenu() {\r\n // Close Second Level Menus\r\n this.secondLevelMenu.forEach((menu) => {\r\n removeClass(menu, \"open\");\r\n removeClass(menu.parentElement, \"isActive\");\r\n menu.setAttribute(\"aria-expanded\", false);\r\n });\r\n\r\n // Close Third Level Menus\r\n this.thirdLevelMenu.forEach((menu) => {\r\n removeClass(menu, \"open\");\r\n removeClass(\r\n menu.parentElement.querySelector(\".third-level-toggle\"),\r\n \"isActive\"\r\n );\r\n menu.setAttribute(\"aria-expanded\", false);\r\n });\r\n }\r\n\r\n // Open First level menu onclick of Nav buttons\r\n initMenuControlClickListener() {\r\n this.mobileMenuControl.onclick = () => {\r\n if (hasClass(this.mobileMenuComponent, \"open\")) {\r\n this.mobileMenuComponent.setAttribute(\"aria-hidden\", true);\r\n removeClass(this.mobileMenuComponent, \"open\");\r\n removeClass(this.html, \"menuOpen\");\r\n } else {\r\n this.mobileMenuComponent.setAttribute(\"aria-hidden\", false);\r\n addClass(this.mobileMenuComponent, \"open\");\r\n addClass(this.html, \"menuOpen\");\r\n }\r\n };\r\n }\r\n\r\n // Close mobile menu\r\n initCloseMobileMenuListener() {\r\n if (this.closeMobileMenu) {\r\n this.closeMobileMenu.onclick = () => {\r\n this.resetMobileMenu();\r\n this.mobileMenuComponent.setAttribute(\"aria-hidden\", true);\r\n removeClass(this.mobileMenuComponent, \"open\");\r\n removeClass(this.html, \"menuOpen\");\r\n };\r\n }\r\n }\r\n\r\n // Open Second level menu onclick of first level buttons\r\n initCollapseFirstLevel() {\r\n this.mobileMenuCollapseFirstLevel.forEach((element) => {\r\n element.onclick = function () {\r\n //resetMobileMenu();\r\n const secondLevelNav =\r\n element.parentElement.querySelector(\".second-level-menu\");\r\n if (hasClass(element.parentElement, \"isActive\")) {\r\n removeClass(element.parentElement, \"isActive\");\r\n removeClass(secondLevelNav, \"open\");\r\n secondLevelNav.setAttribute(\"aria-expanded\", false);\r\n } else {\r\n addClass(element.parentElement, \"isActive\");\r\n addClass(secondLevelNav, \"open\");\r\n secondLevelNav.setAttribute(\"aria-expanded\", true);\r\n }\r\n //let secondLevelNav = element.parentElement.querySelector('.second-level-menu');\r\n //addClass(secondLevelNav, \"open\");\r\n };\r\n });\r\n }\r\n\r\n // Open Third level menu onclick of second level buttons\r\n initCollapseSecondLevel() {\r\n this.mobileMenuCollapseSecondLevel.forEach((element) => {\r\n element.onclick = () => {\r\n const thirdLevelNav =\r\n element.parentElement.querySelector(\".third-level-menu\");\r\n if (hasClass(thirdLevelNav, \"open\")) {\r\n removeClass(element, \"isActive\");\r\n removeClass(element.parentElement, \"isActive\");\r\n removeClass(thirdLevelNav, \"open\");\r\n thirdLevelNav.setAttribute(\"aria-expanded\", false);\r\n } else {\r\n addClass(element, \"isActive\");\r\n addClass(element.parentElement, \"isActive\");\r\n addClass(thirdLevelNav, \"open\");\r\n thirdLevelNav.setAttribute(\"aria-expanded\", true);\r\n }\r\n };\r\n });\r\n }\r\n}\r\n","export default class App__A11y {\r\n constructor() {\r\n this.extLinks = document.querySelectorAll('a[target=\"_blank\"]');\r\n this.lang = document.documentElement.getAttribute(\"lang\");\r\n this.isFrench = this.lang == \"fr\";\r\n }\r\n\r\n init() {\r\n this.extLinks.forEach((link) => {\r\n // Add rel=noopener attribute\r\n link.setAttribute(\"rel\", \"noopener\");\r\n\r\n // create span with show-for-sr class\r\n const extLinkSpan = document.createElement(\"span\");\r\n extLinkSpan.classList.add(\"show-for-sr\");\r\n\r\n // add text to span\r\n const extLinkTxt = document.createTextNode(\r\n this.isFrench\r\n ? \"Le lien s'ouvre dans un nouvel onglet\"\r\n : \"link opens in new window\"\r\n );\r\n extLinkSpan.appendChild(extLinkTxt);\r\n\r\n // append span to link\r\n link.appendChild(extLinkSpan);\r\n });\r\n }\r\n}\r\n","/*\r\n * 3rd Party Dependencies\r\n * =========================================================================== */\r\n\r\n/*\r\n * Custom Dependencies\r\n * =========================================================================== */\r\n\r\n// Import Critical JS Components\r\nimport App__Navigation from \"./components/Navigation\";\r\nimport App__Search from \"./components/Search\";\r\nimport App__MobileMenu from \"./components/MobileMenu\";\r\nimport App__A11y from \"./components/A11y\";\r\n\r\n// Import Critical JS Utilities\r\n// import App__responsiveImage from \"./utilities/responsive-image\";\r\n\r\n/*\r\n * Setup the global App object\r\n * =========================================================================== */\r\nlet App = (window.App = {});\r\n\r\n// Add Critical JS Components to App\r\nApp.Navigation = new App__Navigation();\r\nApp.Search = new App__Search();\r\nApp.MobileMenu = new App__MobileMenu();\r\nApp.A11y = new App__A11y();\r\n\r\n// Add Critical JS Utils to App\r\nApp.utils = {};\r\n\r\n// Media queries\r\nApp.mediaQueries = {\r\n lg: \"screen and (min-width: 992px)\",\r\n isLargeUp: \"\",\r\n};\r\n// Setup media query and listener for large screens\r\nconst mediaQueryList__lg = window.matchMedia(App.mediaQueries.lg);\r\n// Call listener function explicitly at run time\r\nApp.mediaQueries.isLargeUp = mediaQueryList__lg.matches ? true : false;\r\n// Attach listener function to listen in on state changes\r\nmediaQueryList__lg.addListener((mediaQuery__lg) => {\r\n // Screen is Large or greater\r\n if (mediaQueryList__lg.matches) {\r\n App.mediaQueries.isLargeUp = true;\r\n\r\n // Screen is less than Large\r\n } else {\r\n App.mediaQueries.isLargeUp = false;\r\n }\r\n});\r\n\r\n// Build Critical JS initializer\r\nApp.criticalInit = function () {\r\n App.Navigation.init();\r\n App.Search.init();\r\n App.MobileMenu.init();\r\n App.A11y.init();\r\n};\r\n\r\n// Initialize Critical JS\r\nApp.criticalInit();\r\n"],"names":["findParentClass","element","classname","className","split","indexOf","parentNode","hasClass","el","classList","contains","match","RegExp","addClass","add","removeClass","remove","reg","replace","App__Navigation","_classCallCheck","this","firstLevelNav","document","querySelectorAll","secondLevelNav","thirdLevelNav","secondLevelMenu","thirdLevelMenu","toggleThirdLevel","body","querySelector","utilityNavItems","searchControl","key","value","i","length","setAttribute","parentElement","_this","onfocus","resetMenu","onclick","event","target","initAllLevelsMenu","initFirstLevelNav","initSecondLevelNav","initSecondLevelMenu","initThirdLevelNav","initToggleThirdLevel","initThirdLevelMenu","_this2","_loop","firstLevelFocused","onblur","onmouseover","onmouseleave","_this3","_loop2","parent","grandParent","navItem","navItemParentAria","getAttribute","_this4","_loop3","greatGreatParent","_this5","_loop4","removeAttribute","App__Search","searchComponent","evt","preventDefault","App__MobileMenu","closeMobileMenu","mobileMenuControl","mobileMenuComponent","mobileMenuCollapseFirstLevel","mobileMenuCollapseSecondLevel","html","initMenuControlClickListener","initCloseMobileMenuListener","initCollapseFirstLevel","initCollapseSecondLevel","forEach","menu","resetMobileMenu","App__A11y","extLinks","lang","documentElement","isFrench","link","extLinkSpan","createElement","extLinkTxt","createTextNode","appendChild","App","window","Navigation","Search","MobileMenu","A11y","utils","mediaQueries","lg","isLargeUp","mediaQueryList__lg","matchMedia","matches","addListener","mediaQuery__lg","criticalInit","init"],"sourceRoot":""}