{"version":3,"file":"../normes_ul.js","names":["currentOpenMenu","closeMainMenu","document","querySelector","classList","remove","innerText","setAttribute","body","closeMainSearch","removeEventListener","detectBackTabOnSearchBar","closeMenuSousUnite","closeToolMenu","getElementById","list","hidden","button","currentlyFocusedLang","toolMenuKeyUp","preventScrollOnNavKeyDowns","detectClickOutside","querySelectorAll","forEach","item","blurSwitcherItems","openToolMenu","menu","trigger","triggerButton","getAttribute","closeOtherElements","focus","addEventListener","this","add","searchBarButton","languageSwitcher","secureMenu","sousUniteTrigger","activeElement","blur","e","parentElement","contains","target","keyCode","preventDefault","shiftKey","currentFocus","currentIndex","children","indexOf","previousElementSibling","length","nextElementSibling","animationName"],"sources":["normes_ul.js"],"sourcesContent":["let currentOpenMenu = null;\n\n// Fermeture du menu\nvar closeMainMenu = function() {\n document.querySelector(\".ulaval-header-mobile-menu\").classList.remove(\"open\");\n document.querySelector(\".ulaval-header-menu-trigger\").querySelector(\"span.screen-reader-text\").innerText = \"Ouvrir le menu principal\";\n document.querySelector(\".ulaval-header-menu-trigger\").setAttribute(\"aria-expanded\", \"false\");\n document.body.classList.remove(\"ulaval-nav-mobile-open\");\n}\n\n\n// Fermeture du moteur de recherche\nvar closeMainSearch = function() {\n document.querySelector(\".ulaval-header-search\").classList.remove(\"open\");\n document.removeEventListener(\"keydown\",detectBackTabOnSearchBar);\n document.querySelector(\".ulaval-header-search-trigger\").setAttribute(\"aria-expanded\", \"false\");\n}\n\n// Fermeture du moteur de recherche\nvar closeMenuSousUnite = function() {\n document.querySelector(\".ulaval-header-menu-sous-unite\").classList.remove(\"open\");\n document.querySelector(\".ulaval-header-menu-sous-unite-trigger\").setAttribute(\"aria-expanded\", \"false\");\n document.querySelector(\".ulaval-header-menu-sous-unite-trigger\").setAttribute(\"aria-label\",\"Ouvrir le menu\");\n}\n\n// Fermeture d'un menu d'outil\nvar closeToolMenu = function() {\n if(currentOpenMenu) {\n document.getElementById(currentOpenMenu.list).hidden = true;\n document.querySelector(currentOpenMenu.button).setAttribute(\"aria-expanded\", \"false\");\n if(currentlyFocusedLang = document.querySelector(\"#\" + currentOpenMenu.list + \">li[aria-selected=true]\")) {\n currentlyFocusedLang.setAttribute(\"aria-selected\", \"false\");\n }\n document.removeEventListener('keyup', toolMenuKeyUp);\n document.removeEventListener('keydown', preventScrollOnNavKeyDowns);\n document.removeEventListener('click', detectClickOutside);\n const switcherItems = document.querySelectorAll(\"#\" + currentOpenMenu.list + \">li a\");\n switcherItems.forEach(item => {\n item.removeEventListener(\"mouseover\",blurSwitcherItems);\n });\n }\n currentOpenMenu = null;\n}\n\n// Ouverture d'un menu d'outil\nvar openToolMenu = function(menu, trigger) {\n triggerButton=document.querySelector(trigger);\n if(triggerButton.getAttribute(\"aria-expanded\") == \"false\") {\n closeOtherElements();\n currentOpenMenu = {\n list:menu,\n button:trigger\n };\n document.getElementById(menu).hidden = false;\n triggerButton.setAttribute(\"aria-expanded\", \"true\");\n document.querySelector(\"#\" + menu + \">li:first-child a\").focus();\n document.querySelector(\"#\" + menu + \">li:first-child\").setAttribute(\"aria-selected\", \"true\");\n document.addEventListener('keyup', toolMenuKeyUp);\n document.addEventListener('keydown', preventScrollOnNavKeyDowns);\n document.addEventListener('click', detectClickOutside);\n const menuItems = document.querySelectorAll(\"#\" + menu + \">li a\");\n menuItems.forEach(item => {\n item.addEventListener(\"mouseover\",blurSwitcherItems);\n });\n } else{\n closeToolMenu();\n }\n}\n\n// Comportement du bouton de menu mobile\ndocument.querySelector(\".ulaval-header-menu-trigger\").addEventListener(\"click\", function() {\n if(this.getAttribute(\"aria-expanded\") == \"false\") {\n closeOtherElements();\n document.querySelector(\".ulaval-header-mobile-menu\").classList.add(\"open\");\n this.querySelector(\"span.screen-reader-text\").innerText = \"Fermer le menu principal\";\n this.setAttribute(\"aria-expanded\", \"true\");\n document.body.classList.add(\"ulaval-nav-mobile-open\");\n } else {\n closeMainMenu();\n }\n});\n\n// Comportement du bouton du moteur de recherche principal\nif(searchBarButton = document.querySelector(\".ulaval-header-search-trigger\")) {\n searchBarButton.addEventListener(\"click\", function() {\n if(this.getAttribute(\"aria-expanded\") == \"false\") {\n closeOtherElements();\n document.querySelector(\".ulaval-header-search\").classList.add(\"open\");\n document.querySelector(\".champ-recherche\").focus();\n document.addEventListener(\"keydown\",detectBackTabOnSearchBar);\n this.setAttribute(\"aria-expanded\", \"true\");\n } else {\n closeMainSearch();\n }\n });\n}\n\n// Activation du sélecteur de langue si disponible\nif(languageSwitcher = document.querySelector(\".ulaval-language-switcher-trigger\")) {\n languageSwitcher.addEventListener(\"click\", function(){\n openToolMenu(\"ulaval-language-switcher-list\", \".ulaval-language-switcher-trigger\");\n });\n}\n\n// Activation du menu sécurisé si disponible\nif(secureMenu = document.querySelector(\".ulaval-secure-menu-trigger\")) {\n secureMenu.addEventListener(\"click\", function(){\n openToolMenu(\"ulaval-secure-menu\", \".ulaval-secure-menu-trigger\");\n });\n}\n\n// Activation du menu sous-unité si disponible\nif(sousUniteTrigger = document.querySelector(\".ulaval-header-menu-sous-unite-trigger\")) {\n sousUniteTrigger.addEventListener(\"click\", function() {\n if(this.getAttribute(\"aria-expanded\") == \"false\") {\n closeOtherElements();\n document.querySelector(\".ulaval-header-menu-sous-unite\").classList.add(\"open\");\n this.setAttribute(\"aria-label\",\"Fermer le menu\");\n this.setAttribute(\"aria-expanded\", \"true\");\n } else {\n closeMenuSousUnite();\n }\n });\n}\n\nvar blurSwitcherItems = function() {\n const menuItems = document.querySelectorAll(\"#\" + currentOpenMenu.list + \">li a\");\n menuItems.forEach(item => {\n if(item == document.activeElement) {\n item.blur();\n }\n });\n}\n\nvar detectClickOutside = function(e) {\n if(!document.querySelector(currentOpenMenu.button).parentElement.contains(e.target)) {\n closeToolMenu();\n }\n}\n\n// Prévient le scroll down lorsque nous sommes en train de sélectionner une langue avec les flèches\nvar preventScrollOnNavKeyDowns = function(e) {\n if (e.keyCode == 38 || e.keyCode == 40) {\n e.preventDefault();\n }\n}\n\n// Retourne le focus directement sur le bouton trigger de la barre de recherche\nvar detectBackTabOnSearchBar = function(e) {\n if(document.activeElement == document.querySelector(\".champ-recherche\") && e.shiftKey && e.keyCode == 9) { \n document.querySelector(\".ulaval-header-search-trigger\").focus();\n e.preventDefault();\n }\n}\n\n// Détection des touches pour la navigation du sélecteur de langue par clavier\nvar toolMenuKeyUp = function(e) {\n const currentFocus = document.activeElement.parentElement;\n const currentIndex=[...currentFocus.parentElement.children].indexOf(currentFocus);\n switch(e.keyCode) {\n case 38: // Up\n currentFocus.setAttribute(\"aria-selected\", \"false\");\n if(currentIndex == 0) {\n document.querySelector(\"#\" + currentOpenMenu.list + \" li:last-child a\").focus();\n document.querySelector(\"#\" + currentOpenMenu.list + \" li:last-child\").setAttribute(\"aria-selected\", \"true\");\n } else {\n currentFocus.previousElementSibling.querySelector(\"a\").focus();\n currentFocus.previousElementSibling.setAttribute(\"aria-selected\", \"true\");\n }\n break;\n case 40: // Down\n currentFocus.setAttribute(\"aria-selected\", \"false\");\n if(currentIndex == ([...currentFocus.parentElement.children].length-1)) {\n document.querySelector(\"#\" + currentOpenMenu.list + \" li:first-child a\").focus();\n document.querySelector(\"#\" + currentOpenMenu.list + \" li:first-child\").setAttribute(\"aria-selected\", \"true\");\n } else {\n currentFocus.nextElementSibling.querySelector(\"a\").focus();\n currentFocus.nextElementSibling.setAttribute(\"aria-selected\", \"true\");\n }\n break;\n case 27: // Escape\n case 9: // Tab\n document.querySelector(currentOpenMenu.button).focus();\n closeToolMenu();\n break;\n }\n}\n\nvar closeOtherElements = function() {\n closeMainMenu();\n closeToolMenu();\n if(document.querySelector(\".ulaval-header-search-trigger\")) {\n closeMainSearch();\n }\n if(document.querySelector(\".ulaval-header-menu-sous-unite\")){\n closeMenuSousUnite();\n }\n}\n\n// Ajout/retrait de certaines classes durant les périodes d'animation pour aider à la fluidité\ndocument.addEventListener('animationstart', function (e) {\n if (e.animationName === 'ulaval-header-search-fadeIn' || e.animationName === 'ulaval-header-mobile-fadeIn' || e.animationName === 'ulaval-header-sous-unite-fadeIn') {\n e.target.classList.add('remove');\n }\n});\ndocument.addEventListener('animationend', function (e) {\n if (e.animationName === 'ulaval-header-search-fadeOut' || e.animationName === 'ulaval-header-mobile-fadeOut' || e.animationName === 'ulaval-header-sous-unite-fadeOut') {\n e.target.classList.remove('remove');\n }\n});"],"mappings":"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"}