{"version":3,"sources":["webpack:///./src/feature/toggle-menu/toggle-menu.js"],"names":["ToggleMenu","element","_this","_classCallCheck","this","_possibleConstructorReturn","_getPrototypeOf","call","initDomCache","el","ticking","toggleMenu","body","window","features","dom","mobileCloseBtn","document","querySelector","serviceMenu","headerContainer","mobileNavArrow","addClick","addTheme","BaseFeature","_this2","menu","Mmenu","navbar","title","offCanvas","blockUI","api","API","addEventListener","classList","remove","clearAllBodyScrollLocks","setAttribute","mq","matchMedia","matches","setTimeout","appendChild","prepend","activePanel","closest","currentItem","openPanel","setSelected","node","add"],"mappings":"y+BAIMA,cACL,SAAAA,EAAYC,GAAS,IAAAC,EAAA,mGAAAC,CAAAC,KAAAJ,IACpBE,EAAAG,EAAAD,KAAAE,EAAAN,GAAAO,KAAAH,KAAMH,KAEDO,eAELN,EAAKO,GAAKR,EACVC,EAAKQ,SAAU,EACfR,EAAKS,WAAaT,EAAKO,GACvBP,EAAKU,KAAOC,OAAOC,SAASC,IAAIH,KAChCV,EAAKc,eAAiBC,SAASC,cAAc,8BAC7ChB,EAAKiB,YAAcF,SAASC,cAAc,2BAC1ChB,EAAKkB,gBAAkBH,SAASC,cAAc,uCAC9ChB,EAAKmB,eAAiBJ,SAASC,cAAc,gBAG7ChB,EAAKoB,WACLpB,EAAKqB,WAhBerB,wPADGsB,iDAoBb,IAAAC,EAAArB,KAmBV,GAjBAA,KAAKsB,KAAO,IAAIC,IAAMvB,KAAKK,GAAI,CAC9BmB,OAAQ,CAAEC,MAAO,KACjBC,UAAW,CACVC,SAAS,KAGX3B,KAAK4B,IAAM5B,KAAKsB,KAAKO,IAErBhB,SAASC,cAAc,gCAAgCgB,iBAAiB,QAAS,WAChFT,EAAKhB,GAAG0B,UAAUC,OAAO,WACzBC,sCAEGpB,SAASC,cAAc,iBAC1BD,SAASC,cAAc,gBAAgBoB,aAAa,WAAY,MAI7DlC,KAAKe,YAAa,CACrB,IAAMoB,EAAK1B,OAAO2B,WAAW,uBACzBD,EAAGE,QACNC,WAAW,WACVjB,EAAKhB,GAAGkC,YAAYlB,EAAKN,cACvB,KAEHf,KAAKgB,gBAAgBwB,QAAQxC,KAAKe,aAGnCN,OAAOqB,iBAAiB,SAAU,WAC7BK,EAAGE,QACNC,WAAW,WACVjB,EAAKhB,GAAGkC,YAAYlB,EAAKN,cACvB,KAEHM,EAAKL,gBAAgBwB,QAAQnB,EAAKN,eAQrCf,KAAKyC,YAAczC,KAAKK,GAAGS,cAAc,cAAgBd,KAAKK,GAAGS,cAAc,cAAc4B,QAAQ,aAAe,KACpH1C,KAAK2C,YAAc3C,KAAKK,GAAGS,cAAc,eAErCd,KAAKyC,aACRzC,KAAK4B,IAAIgB,UAAU5C,KAAKyC,aAGrBzC,KAAK2C,aACR3C,KAAK4B,IAAIiB,YAAY7C,KAAK2C,aAE3BL,WAAW,WACVzB,SAASC,cAAc,aACrB,wCAIHd,KAAKsB,KAAKwB,KAAKxB,KAAKS,UAAUgB,IAAI,2DAIrBnD","file":"45-13ceeec0.pkg.js","sourcesContent":["import Mmenu from 'mmenu-js';\r\nimport { clearAllBodyScrollLocks } from 'body-scroll-lock';\r\nimport BaseFeature from '../../foundation/base/base';\r\n\r\nclass ToggleMenu extends BaseFeature {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis.initDomCache();\r\n\r\n\t\tthis.el = element;\r\n\t\tthis.ticking = false;\r\n\t\tthis.toggleMenu = this.el;\r\n\t\tthis.body = window.features.dom.body;\r\n\t\tthis.mobileCloseBtn = document.querySelector('[data-js=\"mobileCloseBtn\"]');\r\n\t\tthis.serviceMenu = document.querySelector('[data-js=\"serviceMenu\"]');\r\n\t\tthis.headerContainer = document.querySelector('.o-header--top .o-header--container');\r\n\t\tthis.mobileNavArrow = document.querySelector('.mm-btn_next');\r\n\r\n\r\n\t\tthis.addClick();\r\n\t\tthis.addTheme();\r\n\t}\r\n\r\n\taddClick() {\r\n\t\t// Initilizing the plugin\r\n\t\tthis.menu = new Mmenu(this.el, {\r\n\t\t\tnavbar: { title: ' ' },\r\n\t\t\toffCanvas: {\r\n\t\t\t\tblockUI: false\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.api = this.menu.API;\r\n\r\n\t\tdocument.querySelector('.m-menu-list__close-btn-link').addEventListener('click', () => {\r\n\t\t\tthis.el.classList.remove('is-open');\r\n\t\t\tclearAllBodyScrollLocks();\r\n\t\t});\r\n\t\tif (document.querySelector('.mm-btn_next')) {\r\n\t\t\tdocument.querySelector('.mm-btn_next').setAttribute('tabindex', '-1');\r\n\t\t}\r\n\r\n\t\t// Appending service menu into mobile menu\r\n\t\tif (this.serviceMenu) {\r\n\t\t\tconst mq = window.matchMedia('(max-width: 1247px)');\r\n\t\t\tif (mq.matches) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.el.appendChild(this.serviceMenu);\r\n\t\t\t\t}, 300);\r\n\t\t\t} else {\r\n\t\t\t\tthis.headerContainer.prepend(this.serviceMenu);\r\n\t\t\t}\r\n\t\t\t// RESIZE Appending service menu into mobile menu\r\n\t\t\twindow.addEventListener('resize', () => {\r\n\t\t\t\tif (mq.matches) {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tthis.el.appendChild(this.serviceMenu);\r\n\t\t\t\t\t}, 300);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.headerContainer.prepend(this.serviceMenu);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Open the active panel and select current menu item\r\n\t\t */\r\n\t\tthis.activePanel = this.el.querySelector('.is-active') ? this.el.querySelector('.is-active').closest('.mm-panel') : null;\r\n\t\tthis.currentItem = this.el.querySelector('.is-current');\r\n\r\n\t\tif (this.activePanel) {\r\n\t\t\tthis.api.openPanel(this.activePanel);\r\n\t\t}\r\n\r\n\t\tif (this.currentItem) {\r\n\t\t\tthis.api.setSelected(this.currentItem);\r\n\t\t}\r\n\t\tsetTimeout(() => {\r\n\t\t\tdocument.querySelector('.mm-menu');\r\n\t\t}, 300);\r\n\t}\r\n\r\n\taddTheme() {\r\n\t\tthis.menu.node.menu.classList.add('mm-menu_theme-dark');\r\n\t}\r\n}\r\n\r\nexport default ToggleMenu;\r\n"],"sourceRoot":""}