{"version":3,"file":"menu.98ac9d33c95409153f22.min.js","mappings":"gJAAA,MAAMA,EAAcC,OAAOC,WAAW,uBAChCC,EAAcF,OAAOC,WAAW,uBAEvB,MAAME,EACjBC,WAAAA,CAAYC,GACRC,KAAKD,UAAYA,EACjBC,KAAKC,YAAcD,KAAKD,UAAUG,cAAc,oBAChDF,KAAKG,aAAeH,KAAKD,UAAUG,cAAc,qBACjDF,KAAKI,IAAMJ,KAAKD,UAAUG,cAAc,mBACxCF,KAAKK,aAAeL,KAAKD,UAAUG,cAAc,6BACjDF,KAAKM,YAAcN,KAAKD,UAAUG,cAAc,4BAChDF,KAAKO,UAAYC,SAASC,iBAAiB,+CAC3CT,KAAKU,SAAWF,SAASC,iBACrB,6DAEJT,KAAKW,kBAAoBH,SAASN,cAC9B,yEAEJF,KAAKY,gBAAkBZ,KAAKO,UAAU,GACtCP,KAAKa,eAAiBb,KAAKU,SAAS,GAEpCV,KAAKc,MACT,CAEAC,UAAAA,CAAWC,EAAaC,GACpB,GAAKD,EAIL,OAFAA,EAAYE,UAAUC,IAAI,kBAEtBF,GACAA,EAAYC,UAAUE,OAAO,kBACtBJ,GAEJC,CACX,CAEAI,UAAAA,CAAWC,GACP,MAAMC,EAAcD,EAAKE,aAAa,sBACtC,IAAKD,EAAa,OAElB,MAAME,EAAkBF,EAAYG,MAAM,KAAKC,MAAMC,GAAMA,EAAEC,SAAS,kBACtE,OAAKJ,EAEEjB,SAASN,cAAc,GAAGuB,sCAFjC,CAGJ,CAEAX,IAAAA,GACId,KAAKC,YAAY6B,iBAAiB,SAAS,KACvCtB,SAASuB,KAAKC,MAAMC,UAAY,SAE5BrC,EAAYsC,UACRlC,KAAKO,WAAWP,KAAKO,UAAU,GAAG4B,QAClCnC,KAAKW,mBAAmBX,KAAKW,kBAAkBwB,QACvD,IAGJnC,KAAKK,aAAayB,iBAAiB,SAAS,KACpCrC,EAAYyC,SAAWlC,KAAKM,aAC5BN,KAAKM,YAAY8B,OACrB,IAGJpC,KAAKG,aAAa2B,iBAAiB,SAAS,KACxCtB,SAASuB,KAAKC,MAAMC,UAAY,OAEhCjC,KAAKD,UAAUU,iBAAiB,kBAAkB4B,SAASC,IACvDA,EAAWpB,UAAUE,OAAO,iBAAiB,IAG7C3B,EAAYyC,SACZ1B,SACKC,iBAAiB,2DACjB4B,SAASE,IACNA,EAAQrB,UAAUE,OAAO,YAAY,GAEjD,IAGJpB,KAAKD,UAAU+B,iBAAiB,SAAUU,IACtC,MAAMC,EAAUD,EAAME,OAAOC,QAAQ,+BAGjC3C,KAAKI,IAAIc,UAAU0B,SAAS,eAC3BJ,EAAME,OAAOC,QAAQ,wBAEtB3C,KAAKG,aAAagC,QAGlBM,IACIA,EAAQE,QAAQ,qBAChB3C,KAAKY,gBAAkBZ,KAAKe,WAAW0B,EAASzC,KAAKY,iBACrDZ,KAAKa,eAAiBb,KAAKe,WACvBf,KAAKqB,WAAWoB,GAChBzC,KAAKa,iBAIT4B,EAAQE,QAAQ,oBAChB3C,KAAKa,eAAiBb,KAAKe,WAAW0B,EAASzC,KAAKa,iBAE5D,GAER,E","sources":["webpack://intracto-deheus/./Frontend/js/components/menu/index.js"],"sourcesContent":["const smallScreen = window.matchMedia('(max-width: 1279px)');\r\nconst largeScreen = window.matchMedia('(min-width: 1280px)');\r\n\r\nexport default class Menu {\r\n constructor(component) {\r\n this.component = component;\r\n this.triggerOpen = this.component.querySelector('[data-menu-open]');\r\n this.triggerClose = this.component.querySelector('[data-menu-close]');\r\n this.nav = this.component.querySelector('[data-menu-nav]');\r\n this.searchButton = this.component.querySelector('[data-menu-search-button]');\r\n this.searchInput = this.component.querySelector('[data-menu-search-input]');\r\n this.mainLinks = document.querySelectorAll('[data-nav-main] [data-component=\"showhide\"]');\r\n this.subLinks = document.querySelectorAll(\r\n '[data-nav-sub] [data-submenu] [data-component=\"showhide\"]'\r\n );\r\n this.subLinkFirstLevel = document.querySelector(\r\n '[data-nav-sub] [data-submenu]:first-child [data-component=\"showhide\"]'\r\n );\r\n this.currentMainLink = this.mainLinks[0];\r\n this.currentSubLink = this.subLinks[0];\r\n\r\n this.init();\r\n }\r\n\r\n switchLink(clickedLink, currentLink) {\r\n if (!clickedLink) return;\r\n\r\n clickedLink.classList.add('is-highlighted');\r\n\r\n if (currentLink) {\r\n currentLink.classList.remove('is-highlighted');\r\n return clickedLink;\r\n }\r\n return currentLink;\r\n }\r\n\r\n getSubLink(link) {\r\n const showTargets = link.getAttribute('data-showhide-show');\r\n if (!showTargets) return;\r\n\r\n const submenuSelector = showTargets.split(',').find((x) => x.includes('data-submenu'));\r\n if (!submenuSelector) return;\r\n\r\n return document.querySelector(`${submenuSelector} [data-component=\"showhide\"]`);\r\n }\r\n\r\n init() {\r\n this.triggerOpen.addEventListener('click', () => {\r\n document.body.style.overflowY = 'hidden';\r\n\r\n if (largeScreen.matches) {\r\n if (this.mainLinks) this.mainLinks[0].click();\r\n if (this.subLinkFirstLevel) this.subLinkFirstLevel.click();\r\n }\r\n });\r\n\r\n this.searchButton.addEventListener('click', () => {\r\n if (smallScreen.matches && this.searchInput) {\r\n this.searchInput.focus();\r\n }\r\n });\r\n\r\n this.triggerClose.addEventListener('click', () => {\r\n document.body.style.overflowY = 'auto';\r\n\r\n this.component.querySelectorAll('is-highlighted').forEach((activeLink) => {\r\n activeLink.classList.remove('is-highlighted');\r\n });\r\n\r\n if (smallScreen.matches) {\r\n document\r\n .querySelectorAll('[data-nav-sub].is-active, [data-nav-supersub].is-active')\r\n .forEach((element) => {\r\n element.classList.remove('is-active');\r\n });\r\n }\r\n });\r\n\r\n this.component.addEventListener('click', (event) => {\r\n const trigger = event.target.closest('[data-component=\"showhide\"]');\r\n\r\n if (\r\n this.nav.classList.contains('is-active') &&\r\n !event.target.closest('[data-menu-element]')\r\n ) {\r\n this.triggerClose.click();\r\n }\r\n\r\n if (trigger) {\r\n if (trigger.closest('[data-nav-main]')) {\r\n this.currentMainLink = this.switchLink(trigger, this.currentMainLink);\r\n this.currentSubLink = this.switchLink(\r\n this.getSubLink(trigger),\r\n this.currentSubLink\r\n );\r\n }\r\n\r\n if (trigger.closest('[data-nav-sub]')) {\r\n this.currentSubLink = this.switchLink(trigger, this.currentSubLink);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n"],"names":["smallScreen","window","matchMedia","largeScreen","Menu","constructor","component","this","triggerOpen","querySelector","triggerClose","nav","searchButton","searchInput","mainLinks","document","querySelectorAll","subLinks","subLinkFirstLevel","currentMainLink","currentSubLink","init","switchLink","clickedLink","currentLink","classList","add","remove","getSubLink","link","showTargets","getAttribute","submenuSelector","split","find","x","includes","addEventListener","body","style","overflowY","matches","click","focus","forEach","activeLink","element","event","trigger","target","closest","contains"],"sourceRoot":""}