{"version":3,"file":"mega-menu.536e35cc455a6f81d0b0.min.js","mappings":"+IAAe,MAAMA,EACjBC,WAAAA,CAAYC,GACRC,KAAKD,UAAYA,EAEjBC,KAAKC,YAAcC,SAASC,cAAc,mBAAmBJ,EAAUK,QAEvEJ,KAAKK,SAAWL,KAAKD,UAAUO,iBAAiB,mBAEhDN,KAAKO,MACT,CAEAC,mBAAAA,CAAoBC,EAAOC,EAAMC,GAC7BF,EAAMG,SAASC,IACXA,EAAKC,aAAaJ,EAAMC,EAAM,GAEtC,CAEAI,cAAAA,GACqBC,MAAMC,KAAKjB,KAAKD,UAAUO,iBAAiB,4BAEnDM,SAASM,IACdlB,KAAKD,UAAUoB,MAAMC,UACjBpB,KAAKD,UAAUsB,aAAeH,EAAQG,aAChC,GAAGH,EAAQG,iBACX,GAAGrB,KAAKD,UAAUsB,iBAC5BH,EAAQI,UAAUC,IAAI,aAAa,GAE3C,CAEAC,cAAAA,GACqB,IAAIC,kBAAiB,KAClC,GAAuD,SAAnDzB,KAAKC,YAAYyB,aAAa,iBAA6B,CACzC1B,KAAKD,UAAUI,cAAc,oBACrCW,aAAa,gBAAiB,OAC5C,KAAO,CACcd,KAAKD,UAAUO,iBAAiB,oBACxCM,SAASe,IACdA,EAAKb,aAAa,gBAAiB,QAAQ,GAEnD,KAGKc,QAAQ5B,KAAKC,YAAa,CAC/B4B,gBAAiB,CAAC,kBAE1B,CAEAtB,IAAAA,GAEIP,KAAKK,SAASO,SAASkB,IACnBA,EAAQC,iBAAiB,SAAUC,IAC/BA,EAAEC,kBAEF,MAAMC,EAASJ,GAASJ,aAAa,iBAEjCQ,IAEAlC,KAAKQ,oBAAoBR,KAAKK,SAAU,iBAAiB,GAEzDyB,EAAQhB,aAAa,gBAAiB,QAC1C,GACF,IAGNd,KAAKwB,iBACLxB,KAAKe,gBACT,E","sources":["webpack://intracto-deheus/./Frontend/js/components/mega-menu/index.js"],"sourcesContent":["export default class MegaMenu {\r\n    constructor(component) {\r\n        this.component = component;\r\n        // Get container for scope\r\n        this.menuTrigger = document.querySelector(`[aria-controls=\"${component.id}\"]`);\r\n        // Get all elements with aria-expanded\r\n        this.triggers = this.component.querySelectorAll('[aria-expanded]');\r\n\r\n        this.init();\r\n    }\r\n\r\n    _setAttributeForAll(items, name, value) {\r\n        items.forEach((item) => {\r\n            item.setAttribute(name, value);\r\n        });\r\n    }\r\n\r\n    _setMenuHeight() {\r\n        const submenus = Array.from(this.component.querySelectorAll('.bu-header-nav__submenu'));\r\n\r\n        submenus.forEach((submenu) => {\r\n            this.component.style.minHeight =\r\n                this.component.scrollHeight < submenu.scrollHeight\r\n                    ? `${submenu.scrollHeight}px`\r\n                    : `${this.component.scrollHeight}px`;\r\n            submenu.classList.add('height-100');\r\n        });\r\n    }\r\n\r\n    _observeChange() {\r\n        const observer = new MutationObserver(() => {\r\n            if (this.menuTrigger.getAttribute('aria-expanded') === 'true') {\r\n                const firstLink = this.component.querySelector('.bu-header__link');\r\n                firstLink.setAttribute('aria-expanded', 'true');\r\n            } else {\r\n                const allLinks = this.component.querySelectorAll('.bu-header__link');\r\n                allLinks.forEach((link) => {\r\n                    link.setAttribute('aria-expanded', 'false');\r\n                });\r\n            }\r\n        });\r\n\r\n        observer.observe(this.menuTrigger, {\r\n            attributeFilter: ['aria-expanded'],\r\n        });\r\n    }\r\n\r\n    init() {\r\n        // Set eventhandler for every trigger\r\n        this.triggers.forEach((trigger) => {\r\n            trigger.addEventListener('click', (e) => {\r\n                e.stopPropagation();\r\n                // Check expanded status\r\n                const status = trigger?.getAttribute('aria-expanded');\r\n                // If aria-expanded=false\r\n                if (status) {\r\n                    // Set all other triggers to aria-expanded=false\r\n                    this._setAttributeForAll(this.triggers, 'aria-expanded', false);\r\n                    // Set current trigger to aria-expanded=true\r\n                    trigger.setAttribute('aria-expanded', 'true');\r\n                }\r\n            });\r\n        });\r\n\r\n        this._observeChange();\r\n        this._setMenuHeight();\r\n    }\r\n}\r\n"],"names":["MegaMenu","constructor","component","this","menuTrigger","document","querySelector","id","triggers","querySelectorAll","init","_setAttributeForAll","items","name","value","forEach","item","setAttribute","_setMenuHeight","Array","from","submenu","style","minHeight","scrollHeight","classList","add","_observeChange","MutationObserver","getAttribute","link","observe","attributeFilter","trigger","addEventListener","e","stopPropagation","status"],"sourceRoot":""}