{"version":3,"file":"responsiveNavigation.73953811.js","sources":["../../../src/js/modules/responsive-navigation.js"],"sourcesContent":["// NOTE TO SELF\n// Found better example code to reference for improved a11y on drop menus...\n// https://www.w3.org/TR/wai-aria-practices/examples/menubar/menubar-1/menubar-1.html\n//\n// More at\n// https://www.w3.org/TR/wai-aria-practices/\n// https://www.w3.org/TR/wai-aria-practices/examples/\n\nlet mainNav = document.querySelector('.nav_main');\n\nfunction doMobileNavigation() {\n\t// document.querySelector('html').classList.remove('desktop-nav');\n\t// we only need to do the rest once\n\tif (document.querySelector('#mainNavToggle')) {\n\t\tconsole.info('The toggle already exists, exiting');\n\t\treturn;\n\t}\n\n\tdocument.querySelector('html').classList.add('mobile-nav');\n\n\t// create the navigation toggle button\n\t\tlet templateToggleNav = `\n\t\t\t\n\t\t`;\n\t\tdocument.querySelector('body').insertAdjacentHTML('afterbegin', templateToggleNav);\n\t\tlet navToggle = document.querySelector('#mainNavToggle');\n\n\t// Accessilbity enhancements for the dynamic toggling control\n\t\tlet theMenu = document.querySelector('#site_navigation');\n\t\ttheMenu.setAttribute(\"aria-labelledby\", \"mainNavToggle\");\n\n\t// handle clicks on the menu toggle button\n\t\tnavToggle.addEventListener(\"click\", function (e) {\n\t\t\tlet newNavStatus;\n\t\t\tlet navIsOpen = document.querySelector('html').classList.contains(\"nav-active\"); // returns true|false\n\t\t\tnewNavStatus = !navIsOpen; // inverts the value\n\t\t\tnavToggle.setAttribute(\"aria-expanded\", newNavStatus); // applies new value\n\n\t\t\tdocument.querySelector('html').classList.toggle(\"nav-active\");\n\t\t});\n\n\t// handle keyboard focussing inside the nav\n\t// NOTE: this could be done in CSS with :focus-within, but then you lose ARIA status updates\n\t// \tdocument.querySelector('.site_context').addEventListener('focusin', function(e){\n\t// \t\tnavToggle.setAttribute(\"aria-expanded\", 'true');\n\t// \t\tdocument.querySelector('html').classList.add(\"nav-active\");\n\t// \t});\n\t// \tdocument.querySelector('.site_context').addEventListener('focusout', function(e){\n\t// \t\tnavToggle.setAttribute(\"aria-expanded\", 'false');\n\t// \t\tdocument.querySelector('html').classList.remove(\"nav-active\");\n\t// \t});\n}\n\nfunction undoMobileNavigation() {\n\t// if (!document.querySelector('#mainNavToggle')) {\n\t// \tconsole.log('nothing to remove');\n\t// \treturn;\n\t// }\n\n\tdocument.querySelector('html').classList.remove('mobile-nav');\n\n\tlet navMenuToggle = document.querySelector('#mainNavToggle');\n\tif( navMenuToggle ) {\n\t\tdocument.querySelector('html').classList.remove(\"nav-active\");\n\t\tdocument.querySelector('#mainNavToggle').remove();\n\t\tdocument.querySelector('#site_navigation').removeAttribute('aria-labelledby');\n\t}\n}\n\nconst resizeObserver = new ResizeObserver(entries => {\n\tentries.forEach(entry => {\n\t\tif (entry.target.classList.contains('nav_main')) {\n\t\t\tif (entry.target.offsetWidth < 1024) {\n\t\t\t\tdoMobileNavigation();\n\t\t\t} else {\n\t\t\t\tundoMobileNavigation();\n\t\t\t}\n\t\t}\n\t});\n});\n\nresizeObserver.observe(mainNav);\n"],"names":["mainNav","doMobileNavigation","templateToggleNav","navToggle","e","newNavStatus","undoMobileNavigation","resizeObserver","entries","entry"],"mappings":"AAQA,IAAIA,EAAU,SAAS,cAAc,WAAW,EAEhD,SAASC,GAAqB,CAG7B,GAAI,SAAS,cAAc,gBAAgB,EAAG,CAC7C,QAAQ,KAAK,oCAAoC,EACjD,MACA,CAED,SAAS,cAAc,MAAM,EAAE,UAAU,IAAI,YAAY,EAGxD,IAAIC,EAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOxB,SAAS,cAAc,MAAM,EAAE,mBAAmB,aAAcA,CAAiB,EACjF,IAAIC,EAAY,SAAS,cAAc,gBAAgB,EAGzC,SAAS,cAAc,kBAAkB,EAC/C,aAAa,kBAAmB,eAAe,EAGvDA,EAAU,iBAAiB,QAAS,SAAUC,EAAG,CAChD,IAAIC,EAEJA,EAAgB,CADA,SAAS,cAAc,MAAM,EAAE,UAAU,SAAS,YAAY,EAE9EF,EAAU,aAAa,gBAAiBE,CAAY,EAEpD,SAAS,cAAc,MAAM,EAAE,UAAU,OAAO,YAAY,CAC/D,CAAG,CAYH,CAEA,SAASC,GAAuB,CAM/B,SAAS,cAAc,MAAM,EAAE,UAAU,OAAO,YAAY,EAExC,SAAS,cAAc,gBAAgB,IAE1D,SAAS,cAAc,MAAM,EAAE,UAAU,OAAO,YAAY,EAC5D,SAAS,cAAc,gBAAgB,EAAE,OAAM,EAC/C,SAAS,cAAc,kBAAkB,EAAE,gBAAgB,iBAAiB,EAE9E,CAEA,MAAMC,EAAiB,IAAI,eAAeC,GAAW,CACpDA,EAAQ,QAAQC,GAAS,CACpBA,EAAM,OAAO,UAAU,SAAS,UAAU,IACzCA,EAAM,OAAO,YAAc,KAC9BR,IAEAK,IAGJ,CAAE,CACF,CAAC,EAEDC,EAAe,QAAQP,CAAO"}