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