{"version":3,"file":"TabbedNav-cdd2fed6.js","names":["define","Moduler","create","defaults","parentSelector","childSelector","init","off","element","style","display","self","this","allSubs","document","querySelectorAll","options","forEach","parent","addEventListener","e","sub","window","key","target","matches","querySelector","currentMenu","closest","focus"],"sources":["TabbedNav.js"],"mappings":"AAAAA,OAAO,CAAC,YAAY,SAAUC,GAC1B,aAIA,OAAOA,EAAQC,OAAO,CAClBC,SAAU,CACNC,eAAgB,sBAChBC,cAAe,gBAEnBC,KAAM,WAEF,SAASC,EAAIC,GACLA,IACAA,EAAQC,MAAMC,QAAU,KAEhC,CAUA,IAAIC,EAAOC,KAEX,SAASC,IACL,OAAOC,SAASC,iBAAiBJ,EAAKK,QAAQX,cAClD,CAEAS,SAASC,iBAAiBJ,EAAKK,QAAQZ,gBAAgBa,SAAQC,IAC3DA,EAAOC,iBAAiB,aAAa,SAAUC,GAC3CP,IAAUI,SAAQI,IACdd,EAAIc,EAAI,GAEhB,GAAE,IAGNC,OAAOH,iBAAiB,SAAS,SAAUC,GAvB3C,IAAgBZ,EA+BZ,GANa,SAATY,EAAEG,KACEH,EAAEI,OAAOC,QAAQd,EAAKK,QAAQZ,kBA1B1BI,EA2BGY,EAAEI,OAAOE,cAAcf,EAAKK,QAAQX,kBAzBlB,SAAzBG,EAAQC,MAAMC,QACdF,EAAQC,MAAMC,QAAU,KAExBF,EAAQC,MAAMC,QAAU,SA0BnB,UAATU,EAAEG,IAAiB,CACnB,IAAII,EAAcP,EAAEI,OAAOI,QAAQjB,EAAKK,QAAQX,eAChD,GAAIsB,EAAa,CACbpB,EAAIoB,GACJ,IAAIT,EAASE,EAAEI,OAAOI,QAAQjB,EAAKK,QAAQZ,gBACvCc,GACAA,EAAOW,OAEf,CACIT,EAAEI,OAAOC,QAAQd,EAAKK,QAAQZ,iBAC9BG,EAAIa,EAAEI,OAAOE,cAAcf,EAAKK,QAAQX,eAEhD,CAEa,OAATe,EAAEG,MACGH,EAAEI,OAAOI,QAAQjB,EAAKK,QAAQX,gBAC/BQ,IAAUI,SAAQI,IACdd,EAAIc,EAAI,IAKxB,GACJ,GAER","sourcesContent":["define(['moduler'], function (Moduler) {\r\n    'use strict';\r\n    /*\r\n        helps navigate through a two-level navigation with the keyboard\r\n    */\r\n    return Moduler.create({\r\n        defaults: {\r\n            parentSelector: '.PageNavItem-parent',\r\n            childSelector: '.PageNav-sub'\r\n        },\r\n        init: function () {\r\n\r\n            function off(element) {\r\n                if (element) {\r\n                    element.style.display = null;\r\n                }\r\n            }\r\n            function toggle(element) {\r\n                if (element) {\r\n                    if (element.style.display == 'block') {\r\n                        element.style.display = null;\r\n                    } else {\r\n                        element.style.display = 'block';\r\n                    }\r\n                }\r\n            }\r\n            let self = this;\r\n\r\n            function allSubs() {\r\n                return document.querySelectorAll(self.options.childSelector);\r\n            }\r\n\r\n            document.querySelectorAll(self.options.parentSelector).forEach(parent => {\r\n                parent.addEventListener('mouseover', function (e) {\r\n                    allSubs().forEach(sub => {\r\n                        off(sub);\r\n                    });\r\n                });\r\n            });\r\n\r\n            window.addEventListener('keyup', function (e) {\r\n                \r\n                if (e.key == 'Enter') {\r\n                    if (e.target.matches(self.options.parentSelector)) {\r\n                        toggle(e.target.querySelector(self.options.childSelector));\r\n                    }\r\n                }\r\n\r\n                if (e.key == 'Escape') {\r\n                    let currentMenu = e.target.closest(self.options.childSelector);\r\n                    if (currentMenu) {\r\n                        off(currentMenu);\r\n                        let parent = e.target.closest(self.options.parentSelector);\r\n                        if (parent) {\r\n                            parent.focus();\r\n                        }   \r\n                    }\r\n                    if (e.target.matches(self.options.parentSelector)) {\r\n                        off(e.target.querySelector(self.options.childSelector));\r\n                    }\r\n                }\r\n\r\n                if (e.key == 'Tab') {\r\n                    if (!e.target.closest(self.options.childSelector)) {\r\n                        allSubs().forEach(sub => {\r\n                            off(sub);\r\n                        });\r\n                    }\r\n                }\r\n\r\n            });\r\n        }\r\n    });\r\n});\r\n"]}