{"version":3,"sources":["priory.navigation.js"],"names":["Navigation","[object Object]","el","navigation","this","scope","links","querySelectorAll","openLink","bindClick","e","target","closest","closeMegaNav","document","removeEventListener","bindTab","key","bindEvents","forEach","detail","listItem","parentElement","querySelector","addEventListener","mouseenter","preventDefault","classList","contains","add","setTimeout","openMegaNav","viewport","remove","style","setProperty","offsetHeight","openNavEvent","Event","dispatchEvent","ControlBinders","register"],"mappings":"AAAA,MAAMA,WACJC,YAAYC,GACVA,EAAGC,WAAaC,KAChBA,KAAKC,MAAQH,EACbE,KAAKE,MAAQJ,EAAGK,iBAAiB,kBACjCH,KAAKI,SAAW,KAChBJ,KAAKK,UAAYC,CAAAA,IAC6B,OAAxCA,EAAEC,OAAOC,QAAQ,qBACnBR,KAAKS,eACLC,SAASC,oBAAoB,QAASX,KAAKK,cAG/CL,KAAKY,QAAUN,CAAAA,IAC+B,OAAxCA,EAAEC,OAAOC,QAAQ,oBAAyC,QAAVF,EAAEO,MACpDb,KAAKS,eACLC,SAASC,oBAAoB,QAASX,KAAKY,YAG/CZ,KAAKc,aAEPjB,aACEG,KAAKE,MAAMa,QAAQC,IACjB,MAAMC,EAAWD,EAAOE,cACxBF,EAAOG,cAAc,kBAAkBC,iBAAiB,QAASd,IAC1DW,EAASI,WAWZJ,EAASI,YAAa,GAVtBf,EAAEgB,iBACEN,EAAOR,QAAQ,4BAA4Be,UAAUC,SAAS,iCAChExB,KAAKS,gBAELO,EAAOR,QAAQ,4BAA4Be,UAAUE,IAAI,iCACzDC,WAAW,KACT1B,KAAK2B,YAAYX,IAChB,SAMTC,EAASG,iBAAiB,aAAcd,IAClCsB,WAAa,IACfX,EAASI,YAAa,EACtBf,EAAEgB,iBACFN,EAAOR,QAAQ,4BAA4Be,UAAUE,IAAI,iCACzDzB,KAAK2B,YAAYX,MAGrBC,EAASG,iBAAiB,aAAcd,IAClCsB,WAAa,IACfZ,EAAOR,QAAQ,4BAA4Be,UAAUM,OAAO,iCAC5DvB,EAAEgB,iBACFtB,KAAKS,kBAGTO,EAAOG,cAAc,eAAeC,iBAAiB,QAAS,KAC5DJ,EAAOR,QAAQ,4BAA4Be,UAAUM,OAAO,iCAC5D7B,KAAKS,mBAIXZ,YAAYmB,GACVhB,KAAKC,MAAM6B,MAAMC,YAAY,8BAA+B/B,KAAKC,MAAMkB,cAAc,mBAAmBa,kBACxG,IAAIC,EAAe,IAAIC,MAAM,QAC7BlC,KAAKC,MAAMkC,cAAcF,GACrBL,WAAa,IACflB,SAASS,cAAc,QAAQI,UAAUE,IAAI,WAC7Cf,SAASS,cAAc,QAAQI,UAAUE,IAAI,aAE/CzB,KAAKC,MAAMsB,UAAUE,IAAI,oBACzBzB,KAAKI,SAAWY,EAChBU,WAAW,KACThB,SAASU,iBAAiB,QAASpB,KAAKK,WACxCK,SAASU,iBAAiB,QAASpB,KAAKY,UACvC,KAELf,eACwB,OAAlBG,KAAKI,WACPM,SAASS,cAAc,QAAQI,UAAUM,OAAO,WAChD7B,KAAKC,MAAMsB,UAAUM,OAAO,oBAC5B7B,KAAKI,SAASI,QAAQ,4BAA4Be,UAAUM,OAAO,iCACnE7B,KAAKI,SAAW,KAChBM,SAASS,cAAc,QAAQI,UAAUM,OAAO,YAChDnB,SAASS,cAAc,QAAQI,UAAUE,IAAI,eAC7CC,WAAW,KACThB,SAASS,cAAc,QAAQI,UAAUM,OAAO,gBAC/C,OAITO,eAAeC,SAAS,oBAAqBvC,GAAM,IAAIF,WAAWE","sourcesContent":["class Navigation {\r\n constructor(el) {\r\n el.navigation = this;\r\n this.scope = el;\r\n this.links = el.querySelectorAll(\"[data-details]\");\r\n this.openLink = null;\r\n this.bindClick = e => {\r\n if (e.target.closest(\"[data-mega-nav]\") === null) {\r\n this.closeMegaNav();\r\n document.removeEventListener(\"click\", this.bindClick);\r\n }\r\n };\r\n this.bindTab = (e) => {\r\n if (e.target.closest(\"[data-mega-nav]\") === null && e.key === \"Tab\") {\r\n this.closeMegaNav();\r\n document.removeEventListener(\"keyup\", this.bindTab);\r\n }\r\n };\r\n this.bindEvents();\r\n }\r\n\r\n bindEvents(){\r\n this.links.forEach(detail =>{\r\n\r\n const listItem = detail.parentElement;\r\n\r\n detail.querySelector(\"[data-summary]\").addEventListener(\"click\", e=>{\r\n if(!listItem.mouseenter){\r\n\r\n e.preventDefault();\r\n\r\n if(detail.closest(\".navigation__items__item\").classList.contains(\"navigation__items__item--open\")){\r\n this.closeMegaNav();\r\n }else{\r\n detail.closest(\".navigation__items__item\").classList.add(\"navigation__items__item--open\");\r\n setTimeout(()=>{\r\n this.openMegaNav(detail);\r\n }, 100)\r\n } \r\n }else{\r\n listItem.mouseenter = false; \r\n }\r\n })\r\n \r\n listItem.addEventListener('mouseenter', e => {\r\n if(viewport() > 1){\r\n listItem.mouseenter = true;\r\n e.preventDefault();\r\n detail.closest(\".navigation__items__item\").classList.add(\"navigation__items__item--open\");\r\n this.openMegaNav(detail);\r\n } \r\n });\r\n listItem.addEventListener('mouseleave', (e) => {\r\n if(viewport() > 1){\r\n detail.closest(\".navigation__items__item\").classList.remove(\"navigation__items__item--open\");\r\n e.preventDefault();\r\n this.closeMegaNav();\r\n }\r\n });\r\n \r\n detail.querySelector(\"[data-back]\").addEventListener(\"click\", ()=>{\r\n detail.closest(\".navigation__items__item\").classList.remove(\"navigation__items__item--open\");\r\n this.closeMegaNav();\r\n });\r\n \r\n })\r\n }\r\n\r\n openMegaNav(detail){\r\n this.scope.style.setProperty('--mega-nav-offset-height', `${this.scope.querySelector(\"[data-mega-nav]\").offsetHeight}px`);\r\n\r\n let openNavEvent = new Event(\"open\");\r\n this.scope.dispatchEvent(openNavEvent);\r\n if(viewport() > 2){\r\n document.querySelector(\"html\").classList.add(\"overlay\");\r\n document.querySelector(\"html\").classList.add(\"nav-open\");\r\n }\r\n this.scope.classList.add(\"navigation--open\");\r\n \r\n this.openLink = detail;\r\n\r\n setTimeout(()=>{\r\n document.addEventListener(\"click\", this.bindClick);\r\n document.addEventListener(\"keyup\", this.bindTab);\r\n }, 100);\r\n }\r\n\r\n closeMegaNav(){\r\n if(this.openLink !== null){\r\n document.querySelector(\"html\").classList.remove(\"overlay\");\r\n this.scope.classList.remove(\"navigation--open\");\r\n this.openLink.closest(\".navigation__items__item\").classList.remove(\"navigation__items__item--open\");\r\n this.openLink = null;\r\n document.querySelector(\"html\").classList.remove(\"nav-open\");\r\n document.querySelector(\"html\").classList.add(\"nav-closing\");\r\n setTimeout(()=>{\r\n document.querySelector(\"html\").classList.remove(\"nav-closing\");\r\n }, 500)\r\n }\r\n }\r\n\r\n}\r\n\r\nControlBinders.register(`[data-navigation]`, el => new Navigation(el));"],"file":"priory.navigation-min.js"}