{"version":3,"sources":["webpack:///./pericles/node_modules/ui-core/plugins/drawer/js/menu-accessability.js","webpack:///./pericles/node_modules/ui-core/plugins/drawer/js/drawer.js","webpack:///./pericles/widgets/menu/js/menu.js"],"names":["menubar","e","t","this","$id","$","$rootItems","children","$items","find","$parents","$allItems","add","$activeItem","vmenu","bChildOpen","keys","tab","enter","esc","space","left","up","right","down","bindHandlers","prototype","keydown","handleKeyDown","keypress","handleKeyPress","focus","handleFocus","document","click","handleDocumentClick","i","parentsUntil","filter","removeClass","is","addClass","parent","attr","altKey","ctrlKey","keyCode","UX","menu","$toggle","length","first","stopPropagation","on","hide","processMenuChoice","not","moveUp","moveToPrevious","moveDown","moveToNext","a","s","r","index","n","next","h","o","last","prev","u","eq","html","charAt","toLowerCase","shiftKey","String","fromCharCode","which","data","indexOf","window","open","location","href","$body","$window","$target","revers","lastItem","items","vPort","isMobile","menuHeaderMainTitle","redirectPath","displayedNestedItems","nestedMenu","undefined","listPositionVars","mainScrollingList","inTimeoutTiming","outTimeoutTiming","mainScrollingListHeight","mobileTransitionTime","bodyTransitionPropertyName","bodyTransitionElapsedTime","init","each","$header","text","check","viewPort","responsive","control","additionalControl","rebuild","original","preventDefault","show","target","closest","hasClass","parents","nested","hideNested","tabRevers","get","addEventListener","listPosition","handleHeightSet","handleResize","tabDesktop","escDesktop","controller","css","scrollTop","height","showAdditional","showNested","start","toggleClass","siblings","$menuTitle","showNestedExtra","$parenNestedMenu","shouldNavigate","arguments","$menuHeader","hideNestedExtra","removeAttr","reset","escape","off","$parentMenu","$dropdownToggle","direction","$firstNestedMenu","$prevMenu","$nextMenu","handle","sub","addDataOnly","menuElements","timing","timeoutTime","addDataToElem","handleScrollBarHide","lastScrollVal","getLastPosition","setTimeout","scrollTo","$elem","rect","getBoundingClientRect","JSON","stringify","bottom","Math","floor","scrollVal","parse","elemsArr","forEach","value","parentHeightVal","innerHeight","subHeightVal","utils","isSafari","animate","duration","abs","skipCheck","options","elapsedTime","propertyName","outerHeight","top","controlSelector","elements","querySelectorAll","isOpen","$menubar","menuIcon","querySelector","remove","menuItem","menuLink","removeAttribute","tabReversDesktop","prepare","switchMobileFlag","accessibility","_flagReverseOrder","$this","menuId","flagOpen","flagChangeFocus","isNested","isControl","action","params","isSub","event","forceOpen","$controller","findTarget","$container","originalEvent","itemsCollection","_menubarContext_itemsCollection","_currentContext_isSub","_currentContext_itemsCollection","_currentIndex","keyCodes","DOWN","END","HOME","LEFT","RIGHT","UP","RETURN","SPACE","TAB","ESCAPE","isPrintableCharacter","str","match","Object","values","key","menuitem","relatedTarget","$item","currentIndex","actions","goTo","home","end","closeInactiveSubMenu","trigger","close","TypeError","navclass","$nested","$section","$parentSection","_menubar$_menubarCont","_menubar$_menubarCont2","_menubar$$controller","element","getComputedStyle","display","Array","from","map","item","_item$querySelector","menuRoleButton"],"mappings":"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","file":"js/menu-9c7995a67ff04429e66d.js","sourcesContent":["function menubar(e, t) {\n (this.$id = $('#' + e)),\n (this.$rootItems = this.$id.children('li')),\n (this.$items = this.$id.find('.menu-item')),\n (this.$parents = this.$id.find('.menu-parent')),\n (this.$allItems = this.$parents.add(this.$items)),\n (this.$activeItem = null),\n (this.vmenu = t),\n (this.bChildOpen = !1),\n (this.keys = {\n tab: 9,\n enter: 13,\n esc: 27,\n space: 32,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n }),\n this.bindHandlers();\n}\nmenubar.prototype.bindHandlers = function () {\n var e = this;\n\n this.$allItems.keydown(function (t) {\n return e.handleKeyDown($(this), t);\n }),\n this.$allItems.keypress(function (t) {\n return e.handleKeyPress($(this), t);\n }),\n this.$allItems.focus(function (t) {\n return e.handleFocus($(this), t);\n }),\n $(document).click(function (t) {\n return e.handleDocumentClick(t);\n });\n};\n\nmenubar.prototype.handleFocus = function (e, t) {\n if (null == this.$activeItem) this.$activeItem = e;\n else if (e[0] !== this.$activeItem[0]) return !0;\n const i = this.$activeItem.parentsUntil('div').filter('li');\n if (\n (this.$allItems.removeClass('menu-focus menu-focus-checked'),\n this.$activeItem.is('.checked')\n ? this.$activeItem.addClass('menu-focus-checked')\n : this.$activeItem.addClass('menu-focus'),\n i.addClass('menu-focus'),\n 1 === this.vmenu)\n )\n if (1 === this.bChildOpen) {\n const s = e.parent();\n s.is('#menubar') &&\n 'true' === e.attr('aria-haspopup') &&\n e.addClass('hover').children('ul').attr('aria-hidden', 'false');\n } else this.vmenu = !1;\n return !0;\n};\n\nmenubar.prototype.handleKeyDown = function (e, t) {\n const i = e.parent();\n if (t.altKey || t.ctrlKey) return !0;\n /*eslint-disable*/\n switch (t.keyCode) {\n case this.keys.tab:\n this.$id.find('ul').attr('aria-hidden', 'true'),\n this.$allItems.removeClass('menu-focus hover'),\n (this.$activeItem = null),\n 0 === this.bChildOpen;\n break;\n case this.keys.esc:\n if (UX.menu.$toggle.length > 0) {\n //if (e.keyCode === escKey) {\n\n //e.preventDefault();\n UX.menu.on.hide();\n UX.menu.$toggle.focus();\n //}\n } else {\n return (\n i.is('#menubar')\n ? (e.removeClass('hover').children('ul').first().attr('aria-hidden', 'true'), e.focus())\n : ((this.$activeItem = i.parent()),\n e.removeClass('hover'),\n (this.bChildOpen = !1),\n this.$activeItem.focus(),\n i.attr('aria-hidden', 'true')),\n t.stopPropagation(),\n !1\n );\n }\n\n case this.keys.enter:\n case this.keys.space:\n const s = e.parent();\n return (\n s.is('#menubar')\n ? (e.addClass('hover').children('ul').first().attr('aria-hidden', 'false'),\n (this.bChildOpen = !0),\n this.processMenuChoice(e),\n e.find('ul > li:first').find('a').focus())\n : (this.processMenuChoice(e),\n this.$allItems.removeClass('menu-hover menu-hover-checked hover'),\n this.$allItems.removeClass('menu-focus menu-focus-checked hover'),\n this.$id.find('ul').not('#menubar').attr('aria-hidden', 'true'),\n (this.$activeItem = null)),\n t.stopPropagation(),\n !1\n );\n case this.keys.left:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveUp(e))\n : (this.$activeItem = this.moveToPrevious(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n case this.keys.right:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveDown(e))\n : (this.$activeItem = this.moveToNext(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n case this.keys.up:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveToPrevious(e))\n : (this.$activeItem = this.moveUp(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n case this.keys.down:\n return (\n 1 === this.vmenu && i.is('#menubar')\n ? (this.$activeItem = this.moveToNext(e))\n : (this.$activeItem = this.moveDown(e)),\n this.$activeItem.focus(),\n t.stopPropagation(),\n !1\n );\n }\n /*eslint-enable*/\n return !0;\n};\n\nmenubar.prototype.moveToNext = function (e) {\n let a;\n let t = e.parent(),\n i = t.children('li'),\n s = i.length,\n r = i.index(e),\n n = null;\n if (t.is('#menubar')) {\n if (((n = s - 1 > r ? e.next() : i.first()), 'true' === e.attr('aria-haspopup'))) {\n e.removeClass('hover');\n a = e.children('ul').first();\n 'false' === a.attr('aria-hidden') && (a.attr('aria-hidden', 'true'), (this.bChildOpen = !0));\n }\n if ((e.removeClass('menu-focus'), 'true' === n.attr('aria-haspopup') && 1 === this.bChildOpen)) {\n n.addClass('hover');\n a = n.children('ul').first();\n a.attr('aria-hidden', 'false');\n }\n } else if ('true' === e.attr('aria-haspopup')) {\n e.addClass('hover');\n a = e.children('ul').first();\n (n = a.children('li').first()), a.attr('aria-hidden', 'false'), (this.bChildOpen = !0);\n } else {\n if (1 === this.vmenu) return e;\n let h = null,\n o = null;\n if (\n ((h = e.parentsUntil('div').filter('ul').not('#menubar')),\n h.attr('aria-hidden', 'true'),\n h.find('li').removeClass('menu-focus hover'),\n h.last().parent().removeClass('menu-focus hover'),\n (o = h.last().parent()),\n (r = this.$rootItems.index(o)),\n (n = r < this.$rootItems.length - 1 ? o.next() : this.$rootItems.first()),\n 'true' === n.attr('aria-haspopup') && n.children('ul').length > 0)\n ) {\n n.addClass('hover');\n a = n.children('ul').first();\n (n = a.children('li').first()), a.attr('aria-hidden', 'false'), (this.bChildOpen = !0);\n }\n }\n return n;\n};\n\nmenubar.prototype.moveToPrevious = function (e) {\n let n;\n let t = e.parent(),\n i = t.children('li'),\n s = (i.length, i.index(e)),\n r = null;\n if (t.is('#menubar')) {\n if (((r = s > 0 ? e.prev() : i.last()), 'true' === e.attr('aria-haspopup'))) {\n n = e.removeClass('hover').children('ul').first();\n 'false' === n.attr('aria-hidden') && (n.attr('aria-hidden', 'true'), (this.bChildOpen = !0));\n }\n if ((e.removeClass('menu-focus hover'), 'true' === r.attr('aria-haspopup') && 1 === this.bChildOpen)) {\n r.addClass('hover');\n n = r.children('ul').first();\n n.attr('aria-hidden', 'false');\n }\n } else {\n const a = t.parent(),\n h = a.parent();\n\n if (1 !== this.vmenu && h.is('#menubar')) {\n if (\n (t.attr('aria-hidden', 'true'),\n e.removeClass('menu-focus hover'),\n a.removeClass('menu-focus hover'),\n (s = this.$rootItems.index(a)),\n (r = s > 0 ? a.prev() : this.$rootItems.last()),\n r.addClass('menu-focus hover'),\n 'true' === r.attr('aria-haspopup'))\n ) {\n n = null;\n r.children('ul').length > 0 &&\n ((n = r.addClass('hover').children('ul').first()),\n n.attr('aria-hidden', 'false'),\n (this.bChildOpen = !0),\n (r = n.children('li').first()));\n }\n } else\n (r = t.parent()),\n t.attr('aria-hidden', 'true'),\n e.removeClass('menu-focus hover'),\n r.removeClass('hover'),\n 1 === this.vmenu && (this.bChildOpen = !1);\n }\n return r;\n};\n\nmenubar.prototype.moveDown = function (e, t) {\n let i = e.parent(),\n s = i.children('li').not('.separator'),\n r = s.length,\n n = s.index(e),\n a = null,\n h = null;\n if (i.is('#menubar'))\n return 'true' !== e.attr('aria-haspopup')\n ? e\n : ((h = e.addClass('hover').children('ul').first()),\n (a = h.children('li').first()),\n h.attr('aria-hidden', 'false'),\n (this.bChildOpen = !0),\n a);\n if (t) {\n let o = !1,\n u = n + 1;\n for (u === r && (u = 0); u !== n; ) {\n const l = s.eq(u).html().charAt(0);\n if (l.toLowerCase() === t) {\n o = !0;\n break;\n }\n (u += 1), u === r && (u = 0);\n }\n return 1 === o ? ((a = s.eq(u)), e.removeClass('menu-focus menu-focus-checked'), a) : e;\n }\n return (a = r - 1 > n ? s.eq(n + 1) : s.first()), e.removeClass('menu-focus menu-focus-checked'), a;\n};\n\nmenubar.prototype.moveUp = function (e) {\n let t = e.parent(),\n i = t.children('li').not('.separator'),\n s = (i.length, i.index(e)),\n r = null;\n return t.is('#menubar')\n ? e\n : ((r = s > 0 ? i.eq(s - 1) : i.last()), e.removeClass('menu-focus menu-focus-checked'), r);\n};\n\nmenubar.prototype.handleKeyPress = function (e, t) {\n if (t.altKey || t.ctrlKey || t.shiftKey) return !0;\n /*eslint-disable*/\n switch (t.keyCode) {\n case this.keys.tab:\n return !0;\n case this.keys.esc:\n case this.keys.enter:\n case this.keys.space:\n case this.keys.up:\n case this.keys.down:\n case this.keys.left:\n case this.keys.right:\n return t.stopPropagation(), !1;\n default:\n var i = String.fromCharCode(t.which);\n return (this.$activeItem = this.moveDown(e, i)), this.$activeItem.focus(), t.stopPropagation(), !1;\n }\n return !0;\n /*eslint-enable*/\n};\n\nmenubar.prototype.handleDocumentClick = function (e) {\n var t = this.$id.find('ul').not('#menubar');\n return (\n t.attr('aria-hidden', 'true'),\n this.$allItems.removeClass('menu-focus menu-focus-checked hover'),\n (this.$activeItem = null),\n !0\n );\n};\n\nmenubar.prototype.processMenuChoice = function (e) {\n var t = (e.parent().attr('id'), e.attr('id'), e.data('href'));\n if (null != t)\n if (t.toLowerCase().indexOf('legacy.') > 0) {\n const i = window.open(t, '_blank');\n i.focus();\n } else window.location.href = t;\n const s = e.find('a');\n null != s && (window.location.href = s[0].href);\n};\nwindow.menubar = menubar;\n","import './menu-accessability.js';\n\n(function () {\n //document.activeElement\n\n var $body = $('body'),\n $window = $(window),\n tabKey = 9,\n escKey = 27,\n enterKey = 13;\n\n var menu = {\n $toggle: $('[data-toggle=\"nav\"]'),\n $target: null,\n revers: false,\n lastItem: null,\n items: null,\n vPort: ['screen-sm'],\n isMobile: false, // variable use to determine if responsive mode is on or off\n menuHeaderMainTitle: '',\n redirectPath: false,\n displayedNestedItems: false,\n nestedMenu: undefined,\n listPositionVars: {\n mainScrollingList: $('#menubar'),\n inTimeoutTiming: null, // override these if you want a custom listPosition.handle in or out timeout time\n outTimeoutTiming: null,\n mainScrollingListHeight: false,\n mobileTransitionTime: 400, // should usually keep it the same as the transition time for `.main-nav.menu--res li`'s that's in drawer.scss,\n bodyTransitionPropertyName: 'transform', // this one,\n bodyTransitionElapsedTime: 0.25, // and this one depend on the type and duration of the sidebar `show` transition (currently under `.lock-screen[data-active='menu']` in drawer.scss)\n },\n\n init: function () {\n $('.main-nav').each(function (index) {\n menu.$target = $(this);\n const $header = menu.$target.find('.menu-header');\n menu.menuHeaderMainTitle = $header.text();\n menu.redirectPath = $header.data('redirect-to');\n menu.check.viewPort(index);\n menu.responsive(index);\n });\n $('.main-nav__toggle__controller').attr('aria-expanded', 'false');\n menu.items = $('.main-nav').find('a, button, input'); //$(\".header__nav a, .header__nav button, .header__nav input\");\n menu.control();\n menu.additionalControl();\n },\n\n responsive: function (index) {\n $(document).on(menu.vPort[index] + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n menu.isMobile = true;\n $('.main-nav').each(function () {\n if ($(this).find('.drawer__nav').data('ctrl-res') === menu.vPort[index]) {\n $(this).addClass('menu--res'); // class will be used in our scss (to replace media queries)\n $('.main-nav__toggle__controller').addClass('main-nav__toggle__controller__res'); // class will be used in our scss (to replace media queries)\n menu.on.rebuild.responsive(); // rebuild menu to be responsive - drawer\n }\n });\n });\n\n $(document).on(menu.vPort[index] + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n menu.isMobile = false;\n $('.main-nav').each(function () {\n if ($(this).find('.drawer__nav').data('ctrl-res') === menu.vPort[index]) {\n $(this).removeClass('menu--res'); // class will be used in our scss (to replace media queries)\n $('.main-nav__toggle__controller').removeClass('main-nav__toggle__controller__res'); // class will be used in our scss (to replace media queries)\n menu.on.rebuild.original(); // return menu as default\n }\n });\n });\n },\n\n control: function () {\n $body.on('click', '[data-toggle=\"nav\"]', function (e) {\n e.preventDefault();\n menu.$toggle = $(this);\n menu.$target = $('#' + menu.$toggle.data('target'));\n\n menu.items = menu.$target.find('a, button, input'); //$(\".header__nav a, .header__nav button, .header__nav input\");\n menu.items.each(function (index) {\n if (index === menu.items.length - 1) {\n menu.lastItem = $(this);\n }\n });\n\n menu.on.show(e);\n });\n\n $body.on('click', '.js--open[data-toggle=\"nav\"]', function (e) {\n e.preventDefault();\n menu.on.hide(e);\n });\n\n $body.on('click', function (e) {\n if (!$(e.target).closest('.dropdown__toggle').length) {\n $('a.dropdown__toggle.hover').removeClass('hover');\n }\n if (\n !$(e.target).hasClass('icon-arrow_r') &&\n !$(e.target).parents('.main-nav__toggle__controller') &&\n !$(e.target).parents('.main-nav.menu--res').length &&\n $('.lock-screen[data-active=\"menu\"]').length\n ) {\n menu.on.hide(e);\n }\n });\n\n $body.on('click', '.main-nav a', function (e) {\n if ($(this).attr('href') === '#') {\n e.preventDefault();\n }\n });\n\n $body.on('click touchend', '[data-toggle=\"dropdown\"]', function (e) {\n e.preventDefault();\n menu.nestedMenu = $(this);\n menu.on.nested(e);\n });\n $body.on('click', '.menu-header', function (e) {\n e.preventDefault();\n\n if (menu.isMobile) {\n menu.on.hideNested(true);\n }\n e.stopPropagation(); // prevent closing menu when getting back from nested menu\n });\n $body.on('keydown', '.drawer__nav, [data-toggle=\"nav\"]', function (e) {\n if (menu.isMobile) {\n if ((e.keyCode || e.which) === tabKey) {\n if (!menu.revers) {\n menu.on.tab();\n } else {\n menu.on.tabRevers();\n }\n }\n }\n });\n\n // without .get(0) e.elapsedTime and e.propertyName are undefined\n $body.get(0).addEventListener('transitionend', menu.on.listPosition.handleHeightSet);\n $window.on('resize', menu.on.listPosition.handleResize);\n\n $window.on('keyup', function (e) {\n menu.revers = !!(e.shiftKey && e.keyCode === tabKey);\n if (!menu.isMobile) {\n if ((e.keyCode || e.which) === tabKey || enterKey) {\n menu.on.tabDesktop(e, menu.revers, e.keyCode);\n }\n\n if ((e.keyCode || e.which) === escKey) {\n menu.on.escDesktop(e);\n }\n }\n });\n },\n additionalControl: function () {},\n on: {\n show: function () {\n if (typeof UX.controller != 'undefined') {\n UX.controller.check();\n }\n $body.addClass('lock-screen').attr('data-active', 'menu');\n menu.$toggle.addClass('js--open');\n\n menu.$target.closest('.main-nav').css('top', $window.scrollTop());\n $('.coolBar--res')\n .removeClass('trans')\n .css('top', $window.scrollTop() + $('header').height());\n $('.loi__banner.loi--res').css('top', $window.scrollTop() + $('header').height());\n $('.main-nav__toggle__controller').attr('aria-expanded', 'true');\n menu.$target.attr('style', 'display: block !important');\n menu.$toggle.focus();\n menu.on.showAdditional();\n },\n showAdditional: function () {},\n showNested: function () {\n menu.on.listPosition.start('in');\n menu.nestedMenu.next('.dropdown__menu').toggleClass('sub-menu__opened');\n menu.nestedMenu.parent().toggleClass('menu-parent__opened');\n menu.nestedMenu.find('i').toggleClass('opposite-arrow');\n menu.nestedMenu.parent().siblings('li').toggleClass('prev-items');\n menu.nestedMenu.toggleClass('prev-items');\n $(\"[data-toggle='nav']\").addClass('js--nested-open'); // replace Close button with back button after nested menu get opened\n const $menuTitle = menu.nestedMenu.html();\n\n if ($('.menu-header').length) {\n $('.menu-header').html($menuTitle);\n }\n menu.displayedNestedItems = true;\n\n menu.on.showNestedExtra();\n },\n showNestedExtra: function () {},\n hideNested: function (shouldNavigate = false) {\n var $menuHeader = $('.menu-header');\n var $parenNestedMenu;\n\n if (typeof menu.nestedMenu != 'undefined') {\n menu.on.listPosition.start('out');\n $parenNestedMenu = menu.nestedMenu.parent().parent(); // first parent list\n menu.nestedMenu = $parenNestedMenu.parent().find('.dropdown__toggle'); // first parent dropdown toggle link\n\n $parenNestedMenu.find('.sub-menu__opened').removeClass('sub-menu__opened');\n $parenNestedMenu.find('.menu-parent__opened').removeClass('menu-parent__opened');\n $parenNestedMenu.find('.prev-items').removeClass('prev-items');\n $(\"[data-toggle='nav']\").removeClass('js--nested-open');\n\n if ($parenNestedMenu.hasClass('sub-menu__opened')) {\n $menuHeader.find('span').html(menu.nestedMenu.find('span').html());\n } else {\n if (menu.redirectPath && shouldNavigate && !menu.displayedNestedItems) {\n document.location = menu.redirectPath;\n } else {\n $menuHeader.html(menu.menuHeaderMainTitle);\n menu.displayedNestedItems = false;\n }\n }\n } else {\n menu.nestedMenu = $menuHeader;\n }\n\n menu.on.hideNestedExtra();\n },\n hideNestedExtra: function () {},\n hide: function () {\n if (menu.isMobile) {\n // hide nested menu before closing\n menu.on.hideNested();\n }\n menu.$toggle.removeClass('js--open');\n $('.main-nav, header').css('top', 0);\n $('.coolBar--res').addClass('trans').css('top', $('header').height()); // The magic number contains 1px of border and\n $('.loi__banner.loi--res').css('top', $('header').height());\n $body.removeAttr('data-active').removeClass('lock-screen');\n $('.main-nav__toggle__controller').attr('aria-expanded', 'false');\n menu.on.listPosition.reset();\n },\n escape: function () {\n menu.on.hide();\n menu.$toggle.focus();\n },\n tab: function () {\n menu.$toggle.off();\n menu.lastItem.off().on('focusout', function () {\n menu.$toggle.focus();\n });\n },\n tabRevers: function () {\n menu.lastItem.off();\n menu.$toggle.off().on('focusout', function () {\n menu.lastItem.focus();\n });\n },\n tabDesktop: function (e, revers, keyCode) {\n var $target = $(e.target);\n var $parentMenu = $target.closest('.dropdown__menu');\n var $dropdownToggle = $('.dropdown__toggle');\n var dropdownMenu = '.dropdown__menu';\n\n if (!$target.closest('ul').length) {\n $dropdownToggle.removeClass('hover');\n $('.dropdown').removeClass('js--open');\n }\n\n if ($target.hasClass('dropdown__toggle')) {\n if (\n $parentMenu.length === 0 ||\n (!$parentMenu.hasClass('js--open') && $parentMenu.find('.js--open').length === 0)\n ) {\n $dropdownToggle.removeClass('hover');\n $(dropdownMenu).removeClass('js--open');\n $target.closest('a').addClass('hover');\n $target.siblings(dropdownMenu).addClass('js--open');\n } else {\n $parentMenu.find('.hover').removeClass('hover');\n $parentMenu.find('.js--open').removeClass('js--open');\n $target.closest('a').addClass('hover');\n $target.siblings(dropdownMenu).addClass('js--open');\n }\n if (keyCode == enterKey) {\n $(e.target).closest('a').addClass('hover');\n }\n } else {\n $target.closest('ul').find('.hover').removeClass('hover');\n }\n },\n escDesktop: function (e) {\n $(e.target).closest('.dropdown__toggle').removeClass('hover');\n },\n rebuild: {\n responsive: function () {\n menu.on.hide();\n },\n original: function () {\n menu.on.hide();\n menu.$target.show();\n },\n },\n nested: function (e) {\n //e.preventDefault();\n if (menu.isMobile) {\n menu.on.showNested();\n }\n },\n listPosition: {\n start: function (direction) {\n if (!menu.nestedMenu || !direction || !menu.isMobile) return;\n let $firstNestedMenu = menu.nestedMenu.first();\n if (!$firstNestedMenu.closest('#menubar').length) return; // this function should only work inside #menubar\n\n switch (direction) {\n case 'in': {\n let $prevMenu = $firstNestedMenu.closest('.dropdown__menu, #menubar'),\n $nextMenu = $firstNestedMenu.next('.dropdown__menu');\n menu.on.listPosition.handle(\n {prev: $prevMenu, next: $nextMenu, parent: $prevMenu, sub: $nextMenu},\n 'in'\n );\n\n break;\n }\n case 'out': {\n let addDataOnly = $firstNestedMenu.hasClass('menu-header'),\n $prevMenu = $firstNestedMenu.next('.dropdown__menu'),\n $nextMenu = $firstNestedMenu.closest('.dropdown__menu, #menubar');\n menu.on.listPosition.handle(\n {prev: $prevMenu, next: $nextMenu, parent: $nextMenu, sub: $prevMenu},\n 'out',\n addDataOnly\n );\n\n break;\n }\n }\n },\n handle: function (menuElements, direction = {}, addDataOnly) {\n let timing = direction === 'in' ? 0 : menu.listPositionVars.mobileTransitionTime / 3, // 0 timing is good for in direction, looks bad for out\n timeoutTime =\n direction === 'in' && menu.listPositionVars.inTimeoutTiming\n ? menu.listPositionVars.inTimeoutTiming\n : direction === 'out' && menu.listPositionVars.outTimeoutTiming\n ? menu.listPositionVars.outTimeoutTiming\n : menu.listPositionVars.mobileTransitionTime / 3;\n\n menu.on.listPosition.addDataToElem(menuElements.prev);\n if (addDataOnly === true) return;\n\n menu.on.listPosition.handleScrollBarHide([menuElements.prev, menuElements.next]);\n\n if (menuElements.next.length) {\n let lastScrollVal = menu.on.listPosition.getLastPosition(menuElements.next);\n\n setTimeout(() => {\n menu.on.listPosition.scrollTo(\n menuElements,\n direction,\n lastScrollVal ? lastScrollVal : 0,\n timing\n );\n }, timeoutTime); // a timeout so the transition happens just before the next list enters the viewport\n }\n },\n addDataToElem: function ($elem) {\n if ($elem.length) {\n let rect = $elem.get(0).getBoundingClientRect();\n\n $elem.attr(\n 'data-last-pos',\n JSON.stringify({\n bottom: Math.floor(rect.bottom),\n scrollVal: Math.floor($elem.first().scrollTop()),\n })\n );\n }\n },\n getLastPosition: function ($elem) {\n return $elem.attr('data-last-pos') && JSON.parse($elem.attr('data-last-pos')).scrollVal;\n },\n handleScrollBarHide: function (elemsArr) {\n elemsArr.forEach($elem => {\n $elem.addClass('scrollbar-hidden');\n\n if (!$elem.attr('data-transitionend-listener-added')) {\n $elem.attr('data-transitionend-listener-added', 'true');\n $elem.on('transitionend', e => {\n $elem.removeClass('scrollbar-hidden');\n });\n }\n });\n },\n scrollTo: function (menuElements, direction, value, timing = 0) {\n let parentHeightVal =\n menu.listPositionVars.mainScrollingListHeight -\n (menuElements.parent.innerHeight() - menuElements.parent.height()), // height minus padding\n subHeightVal =\n menu.listPositionVars.mainScrollingListHeight -\n (menuElements.sub.innerHeight() - menuElements.sub.height()); // height minus padding\n\n if (UX.utils.isSafari()) {\n subHeightVal = subHeightVal - 180;\n }\n\n if (direction === 'in') {\n menuElements.parent\n .css({'max-height': parentHeightVal, height: parentHeightVal, 'overflow-y': 'hidden'})\n .attr('data-list-pos-corrected', 'true');\n menuElements.sub\n .css({'max-height': subHeightVal, height: subHeightVal, 'overflow-y': 'auto'})\n .attr('data-list-pos-corrected', 'true');\n\n menuElements.parent.length &&\n menuElements.parent.animate(\n {\n scrollTop: 0, // if we don't scroll the parent to the top, the sub will sometimes be cut off\n },\n {\n duration: Math.abs(value - menuElements.parent.scrollTop()) > 125 ? 0 : timing,\n }\n );\n\n menuElements.sub.animate(\n {\n scrollTop: value,\n },\n {\n duration: Math.abs(value - menuElements.parent.scrollTop()) > 125 ? 0 : timing,\n }\n );\n } else if (direction === 'out') {\n menuElements.parent.css({\n 'max-height': parentHeightVal,\n height: parentHeightVal,\n 'overflow-y': 'auto',\n });\n menuElements.sub\n .css({'max-height': '', height: '', 'overflow-y': ''})\n .removeAttr('data-list-pos-corrected');\n\n menuElements.parent.length &&\n menuElements.parent.animate(\n {\n scrollTop: value,\n },\n {\n duration: Math.abs(value - menuElements.parent.scrollTop()) > 125 ? 0 : timing,\n }\n );\n }\n },\n handleResize: function (e) {\n if (menu.$toggle.hasClass('js--open')) {\n menu.on.listPosition.handleHeightSet({}, {skipCheck: true});\n }\n },\n handleHeightSet: function (e = {}, options = {}) {\n if (\n (menu.$toggle.hasClass('js--open') &&\n e.elapsedTime === menu.listPositionVars.bodyTransitionElapsedTime &&\n e.propertyName === menu.listPositionVars.bodyTransitionPropertyName) ||\n options.skipCheck === true\n ) {\n // not using $window.outerHeight() because it's return value doesn't change with the resize event\n menu.listPositionVars.mainScrollingListHeight =\n window.outerHeight - menu.listPositionVars.mainScrollingList[0].getBoundingClientRect().top;\n menu.listPositionVars.mainScrollingList\n .find('[data-list-pos-corrected=\"true\"]')\n .add(menu.listPositionVars.mainScrollingList)\n .css({\n height: menu.listPositionVars.mainScrollingListHeight,\n 'max-height': menu.listPositionVars.mainScrollingListHeight,\n });\n }\n },\n reset: function () {\n menu.listPositionVars.mainScrollingList\n .find('[data-last-pos], [data-list-pos-corrected]')\n .add(menu.listPositionVars.mainScrollingList)\n .removeAttr('data-last-pos data-list-pos-corrected')\n .css({'max-height': '', height: '', 'overflow-y': ''})\n .animate(\n {\n scrollTop: 0,\n },\n 0\n );\n },\n },\n },\n check: {\n viewPort: function (index) {\n if (menu.$target.find('.drawer__nav').attr('data-ctrl-res')) {\n menu.vPort[index] = menu.$target.find('.drawer__nav').attr('data-ctrl-res');\n }\n },\n },\n };\n\n UX.menu = menu; // add to global namespace\n})();\n","// @fixme this should be renamed all-together - main functionality is MENU, which is separate script ... etc. Fun stuff\n// PS: this is basically same functionality ad Drop-block.js ...\n// @todo merge those two into one component\n// @todo handle closing sub-submenus maybe differently\n\nimport 'ui-core/plugins/drawer/js/drawer';\n\n(function (UX) {\n var $body = $('body'),\n isMobile = false,\n elements = document.querySelectorAll('.menu-item'),\n controlSelector = null,\n menubar = null,\n isOpen = null;\n\n var menu = UX.menu;\n\n menu.init = function () {\n // removing old Menubar basically\n // rest of this should be refactored\n\n var $menubar = $('.main-nav');\n $menubar.each(function (index) {\n menu.$target = $(this);\n menu.check.viewPort(index);\n menu.responsive(index);\n });\n menu.items = $menubar.find('a, button, input'); //$(\".header__nav a, .header__nav button, .header__nav input\");\n menu.control();\n menu.additionalControl();\n menubar.init();\n\n const menuIcon = document.querySelector('.main-nav a[href=\"#menuBook\"]');\n menuIcon?.remove();\n\n elements?.forEach(menuItem => {\n const menuLink = menuItem?.querySelector('a[href$=\"-pane\"]');\n menuLink?.removeAttribute('aria-selected');\n });\n };\n\n // remove UX lvl functions\n menu.on.tabDesktop = function () {};\n menu.on.tabReversDesktop = function () {};\n menu.on.escDesktop = function () {};\n\n // menubar control selector constant\n controlSelector = '[data-toggle=\"dropdown\"]:not(.expandable-list__toggle)';\n\n menubar = {\n vPort: 'screen-sm',\n\n init: function () {\n menubar.prepare();\n menubar.switchMobileFlag();\n menubar.accessibility.control();\n },\n prepare: function () {\n $('nav').data('flag-open', false);\n },\n\n /**\n * Accessibility for menubar\n * @namespace\n */\n accessibility: {\n /**\n *\n */\n _flagReverseOrder: false,\n\n control: function () {\n // Focusout for closing menu is handled by controller.js\n // ESC key is handled by controller.js\n\n var $this = null,\n menuId = null,\n preventDefault = null,\n flagOpen = null,\n flagChangeFocus = null,\n isNested = null,\n isControl = null,\n action = null,\n params = null,\n isSub = null;\n\n $(document)\n .on('click', controlSelector, function (event, forceOpen) {\n if (isMobile) {\n return;\n }\n\n $this = $(this);\n isOpen = $this.hasClass('js--open');\n\n // Controller - save component state\n menubar.$controller = $this;\n menubar.findTarget();\n // show current menu on focus when allowed by flag\n if (isOpen && !forceOpen) {\n menubar.on.hide(event);\n } else {\n menubar.on.show(event);\n }\n\n // Reset flags\n menubar.$container.data('flag-open', false);\n menubar.$container.data('flag-change-focus', false);\n\n // Change focus if triggered by JS\n if (!event.originalEvent) {\n $this.focus();\n }\n })\n .on('focus', '[role=\"menuitem\"]', function (event, forceOpen) {\n $this = $(this);\n\n menubar.$container = $(this).closest('nav');\n menubar.itemsCollection = menubar.$container.find('[role=\"menuitem\"]');\n\n menuId = $this.closest('[role=menu]').attr('id');\n\n // collection based on type form [role=menuitem] collection for this menu\n menubar._menubarContext_itemsCollection = menubar.itemsCollection.filter(\n '[role=menubar] > li > [role=menuitem]'\n ); // lvl0\n // Default selection of context - can be changed in SWITCH for some cases to menubar context\n\n menubar._currentContext_isSub = menubar._menubarContext_itemsCollection.index($this) < 0;\n\n if (menubar._currentContext_isSub && $(this).closest('.hubpage-menu__nav').length) {\n menubar._currentContext_itemsCollection = menubar.itemsCollection.filter(\n '#' + menuId + ' li [role=menuitem]'\n );\n } else if (menubar._currentContext_isSub) {\n menubar._currentContext_itemsCollection = menubar.itemsCollection.filter(\n '#' + menuId + ' > li > [role=menuitem]'\n ); // lvl1-...\n } else {\n menubar._currentContext_itemsCollection = menubar._menubarContext_itemsCollection;\n }\n\n menubar._currentIndex = menubar._currentContext_itemsCollection.index($this);\n\n // reverse order\n menubar.accessibility._flagReverseOrder = $this.css('direction') === 'rtl';\n })\n .on('focus', controlSelector, function () {\n // if (menubar.$container.data('flag-open')) {\n // $(this).click();\n // }\n //@todo: this event causing infinite code calling (Maximum call stack size exceeded error) and need to re-check.\n })\n .on('keydown', '[role=\"menuitem\"]', function (event) {\n var keyCodes = {\n DOWN: 40,\n END: 35,\n HOME: 36,\n LEFT: 37,\n RIGHT: 39,\n UP: 38,\n RETURN: 13,\n SPACE: 32,\n TAB: 9,\n ESCAPE: 27,\n };\n\n // don't prevent default for not allowed keys (exception here is printable Characters for searching, so flag is reset later)\n preventDefault = true;\n if (!(Object.values(keyCodes).indexOf(event.keyCode) > -1)) preventDefault = false;\n\n // Flags for opening menu\n flagOpen = false;\n flagChangeFocus = false;\n\n $this = $(this);\n\n isNested = false;\n\n isControl = $this.is(controlSelector);\n\n if ($this.parents('[role=menu]').length > 1) {\n isNested = true;\n }\n\n action = null;\n params = null;\n\n isSub = menubar._currentContext_isSub;\n\n function isPrintableCharacter(str) {\n return str.length === 1 && str.match(/\\S/);\n }\n\n if (isMobile) {\n switch (event.keyCode) {\n case keyCodes.LEFT:\n case keyCodes.ESCAPE:\n flagChangeFocus = false;\n $this.parents('li').last().find('[role=menuitem]').focus();\n action = 'close';\n preventDefault = true;\n break;\n case keyCodes.RETURN:\n case keyCodes.SPACE:\n // leave opening and closing to default click event\n action = 'open';\n // change focus if it was control element - it will be ignored otherwise\n flagChangeFocus = true;\n break;\n case keyCodes.TAB:\n // reset flags on TAB for current menubar and do nothing else - leave that to default focus handler\n preventDefault = false;\n break;\n // Arrows - here we go with keyboard logic\n case keyCodes.UP:\n if (!isControl && isSub) {\n $this.parents('li').last().find('[role=menuitem]').focus();\n } else {\n menubar._currentContext_itemsCollection =\n menubar._menubarContext_itemsCollection;\n menubar._currentIndex = UX.menubar._menubarContext_itemsCollection.index(\n $this.parents('li').last().find('[role=menuitem]')\n );\n }\n action = 'prev';\n break;\n case keyCodes.END:\n action = 'end';\n break;\n case keyCodes.HOME:\n action = 'home';\n break;\n case keyCodes.DOWN:\n if (!isControl && isSub) {\n $this.parents('li').last().find('[role=menuitem]').focus();\n } else {\n menubar._currentContext_itemsCollection =\n menubar._menubarContext_itemsCollection;\n menubar._currentIndex = UX.menubar._menubarContext_itemsCollection.index(\n $this.parents('li').last().find('[role=menuitem]')\n );\n }\n action = 'next';\n\n break;\n case keyCodes.RIGHT:\n if (isControl && !isSub) {\n flagChangeFocus = true;\n action = 'open';\n }\n break;\n default:\n if (isPrintableCharacter(event.key)) {\n action = 'find';\n params = [event.key];\n preventDefault = true;\n }\n }\n // return;\n } // @fixme this will be removed after adding support for vertical menus too\n else {\n // Navigation switch\n // @todo change behavior for isMobile - because mainmenu becomes horizontal ...\n switch (event.keyCode) {\n case keyCodes.RETURN:\n case keyCodes.SPACE:\n // leave opening and closing to default click event\n action = 'open';\n // change focus if it was control element - it will be ignored otherwise\n flagChangeFocus = true;\n break;\n case keyCodes.TAB:\n // reset flags on TAB for current menubar and do nothing else - leave that to default focus handler\n preventDefault = false;\n break;\n // Arrows - here we go with keyboard logic\n case keyCodes.UP:\n // Key UP doesn't have any difference in design pattern\n action = 'prev';\n break;\n case keyCodes.LEFT:\n if ((!isControl && isNested && isSub) || (isSub && !isNested && !isControl)) {\n menubar._currentContext_itemsCollection =\n menubar._menubarContext_itemsCollection;\n menubar._currentIndex = UX.menubar._menubarContext_itemsCollection.index(\n $this.parents('li').last().find('[role=menuitem]')\n );\n action = 'prev';\n } else {\n // we move to parent control\n menubar._currentContext_itemsCollection =\n menubar._menubarContext_itemsCollection;\n menubar._currentIndex = UX.menubar._menubarContext_itemsCollection.index(\n $this.parents('li').last().find('[role=menuitem]')\n );\n action = 'prev';\n }\n if ((!isControl && isSub && isNested) || (isSub && isNested && isControl)) {\n action = 'close';\n }\n break;\n case keyCodes.END:\n action = 'end';\n break;\n case keyCodes.HOME:\n action = 'home';\n break;\n case keyCodes.RIGHT:\n if (isControl && isSub) {\n // open submenu\n flagChangeFocus = true;\n action = 'open';\n } else {\n menubar._currentContext_itemsCollection =\n menubar._menubarContext_itemsCollection;\n menubar._currentIndex = UX.menubar._menubarContext_itemsCollection.index(\n $this.parents('li').last().find('[role=menuitem]')\n );\n action = 'next';\n }\n if (isSub && !isControl) {\n flagOpen = true;\n flagChangeFocus = true;\n }\n break;\n case keyCodes.DOWN:\n if (isControl && !isSub) {\n flagChangeFocus = true;\n action = 'open';\n } else {\n action = 'next';\n }\n break;\n default:\n if (isPrintableCharacter(event.key)) {\n action = 'find';\n params = [event.key];\n preventDefault = true;\n }\n }\n }\n\n // prevent menu from opening or allow it to open on focus based on flag\n menubar.$container.data('flag-open', flagOpen);\n menubar.$container.data('flag-change-focus', flagChangeFocus);\n\n // call action\n if (action) menubar.accessibility.menuitem($this, action, params);\n\n // stop page from scrolling, while we handle navigation by keys\n if (preventDefault) {\n event.stopPropagation();\n event.preventDefault();\n }\n });\n $('#menubar').on('focusout', function (e, index) {\n if (!$(e.relatedTarget).parents().is($(this))) {\n $(this)\n .find('.dropdown__toggle.js--open.hover')\n .removeClass('js--open hover')\n .attr('tabindex', '-1')\n .next('.dropdown__menu.js--open')\n .attr('aria-hidden', 'true')\n .removeClass('js--open');\n }\n });\n\n $body.off('touchend', '[data-toggle=\"dropdown\"]');\n },\n\n /**\n * Handle menu item - mixed methods\n * @param {jQuery} $item\n * @param {('next'|'prev'|'home'|'end'|'find'|'close'|'open')} [action] - available methods\n * @param {Array} params\n * @public\n */\n menuitem: function ($item, action, params) {\n var length = menubar._currentContext_itemsCollection.length;\n var currentIndex = menubar._currentIndex;\n\n var actions = {\n /**\n * Next\n * @param {jQuery} $item\n * @private\n */\n next: function ($item) {\n this.goTo(currentIndex + 1);\n },\n prev: function ($item) {\n this.goTo(currentIndex - 1);\n },\n find: function ($item, params) {\n // @todo search for item start with character and go to it in current context\n },\n home: function () {\n this.goTo(0);\n },\n end: function () {\n this.goTo(length - 1);\n },\n goTo: function (index) {\n // circle\n if (index < 0) {\n index = length - 1;\n }\n if (index >= length) {\n index = 0;\n }\n $('.main-nav').find('.is--current').removeClass('is--current');\n // focus to target\n menubar._currentContext_itemsCollection.eq(index).focus().parent('li').addClass('is--current');\n menubar.closeInactiveSubMenu(index);\n },\n open: function ($item) {\n if ($item.is(controlSelector)) {\n $item.trigger('click', true);\n } else {\n // real click on items that are not controls, to avoid issues with default prevented\n $item[0].click();\n }\n\n $item.next().find('li:first-child a').focus();\n },\n close: function ($item) {\n // @todo maybe selector would be better than .prev() method\n $item.closest('[role=menu]').prev().focus().click();\n },\n };\n\n // Reverse order\n if (this._flagReverseOrder) {\n switch (action) {\n case 'prev':\n action = 'next';\n break;\n case 'next':\n action = 'prev';\n break;\n case 'home':\n action = 'end';\n break;\n case 'end':\n action = 'home';\n break;\n }\n }\n\n // actions logic\n if (typeof action === 'string') {\n if (typeof actions[action] === 'undefined') {\n throw new TypeError('No method named \"' + action + '\" found.');\n }\n actions[action]($item, params);\n }\n },\n },\n switchMobileFlag: function () {\n $(document).on(menubar.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n isMobile = true;\n });\n $(document).on(menubar.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n isMobile = false;\n });\n },\n closeInactiveSubMenu: function (index) {\n let navclass = 'main-nav';\n if (menubar._currentContext_itemsCollection.eq(index).parent().parent().parent().is('.hubpage-menu__nav')) {\n navclass = 'hubpage-menu__nav';\n }\n if (\n (menubar._currentContext_itemsCollection.eq(index).parent().parent().is('.menubar') ||\n menubar._currentContext_itemsCollection\n .eq(index)\n .parent()\n .parent()\n .parent()\n .is('.hubpage-menu__nav')) &&\n $('.' + navclass).find('.dropdown__toggle.js--open.hover').length\n ) {\n $('.' + navclass)\n .find('.dropdown__toggle.js--open.hover')\n .removeClass('js--open hover')\n .attr('tabindex', '-1')\n .next('.dropdown__menu.js--open')\n .attr('aria-hidden', 'true')\n .removeClass('js--open');\n }\n },\n findTarget: function () {\n var $target = $('#' + menubar.$controller.attr('data-target')),\n $nested = null;\n\n if (!$target.length) {\n $target = $(menubar.$controller.attr('href'));\n }\n if (!menubar.$controller.attr('data-target') && menubar.$controller.attr('data-slide-target')) {\n $target = $(menubar.$controller.attr('data-slide-target'));\n }\n menubar.$section = $target;\n\n menubar.$container = menubar.$section.closest('nav');\n\n $nested = menubar.$section.parents('[role=\"menu\"]');\n\n // Controller closing handling of children\n if ($nested.length) {\n menubar.$parentSection = $nested;\n } else {\n menubar.$parentSection = null;\n }\n },\n on: {\n show: function (event) {\n // Controller handling START:\n // @todo refactor this behavior too ...\n if (!menubar.$controller.closest('[role=menu]').length) {\n if (typeof UX.controller !== 'undefined') {\n UX.controller.check();\n }\n }\n // --- :END\n\n if (menubar.$section) {\n menubar.$section.addClass('js--open');\n menubar.$controller.addClass('js--open');\n // @todo refactor this behavior too ...\n menubar.$controller.addClass('hover');\n // Controller handling active component save\n $body.attr('data-active', 'menubar');\n if (isMobile) {\n $body.addClass('lock-screen');\n }\n\n // @see https://www.w3.org/TR/wai-aria-practices/#kbd_roving_tabindex\n if (menubar._currentContext_itemsCollection === menubar._menubarContext_itemsCollection) {\n // remove tabindexes\n menubar._menubarContext_itemsCollection?.attr('tabindex', -1);\n menubar._menubarContext_itemsCollection?.eq(0).attr('tabindex', 0);\n // set tabindex for new item and move focus to target\n menubar.$controller?.attr('tabindex', 0);\n }\n\n // Change focus to fist item in list\n if (menubar.$container.data('flag-change-focus')) {\n // HAS TO USE TIMEOUT DOU TO MENU TRANSITION\n setTimeout(function () {\n menubar.$section.find('[role=menuitem]').first().focus();\n }, 15);\n }\n\n // Accessibility\n menubar.$controller.attr({'aria-expanded': 'true'});\n menubar.$section.removeAttr('aria-hidden');\n }\n },\n hide: function () {\n var $target = null;\n\n if (menubar.$section) {\n // Close current target\n menubar.$controller.removeClass('js--open');\n menubar.$section.removeClass('js--open');\n // @todo refactor this behavior too ...\n menubar.$controller.removeClass('hover');\n\n // Accessibility - Inform screen readers\n menubar.$controller.attr({'aria-expanded': 'false'});\n menubar.$section.attr({'aria-hidden': 'true'});\n\n // Controller handling\n // Nested dropBlocks close handling\n if (menubar.$parentSection && menubar.$parentSection.length) {\n // Nested ones - set parent after closing self - will close parent in second round\n $target = $('[data-target=' + menubar.$parentSection.attr('id') + ']');\n if (!$target.length) {\n $target = $('[href=' + '#' + menubar.$parentSection.attr('id') + ']');\n }\n menubar.$controller = $target;\n menubar.findTarget();\n } else {\n // If we want to close last menu, than there is no more active component\n if ($body.attr('data-active') === 'menubar') {\n $body.removeAttr('data-active');\n if (isMobile) {\n $body.removeClass('lock-screen');\n }\n }\n }\n }\n },\n },\n };\n\n UX.menubar = menubar;\n\n elements.forEach(function (element) {\n if (getComputedStyle(element).display === 'none') {\n element.remove();\n }\n });\n})(UX);\n\nUX.menu.additionalControl = function () {\n const menuParentList = Array.from(document.querySelectorAll('.menu-parent'));\n menuParentList.map(item => {\n item.querySelector('ul')?.addEventListener('mousedown', e => {\n e.preventDefault();\n });\n });\n //commented these lines because additionalControl already wasn't called\n // var isOpen = null;\n //\n // $('body').on('click', 'li.dropdown', function (e) {\n // if (!UX.menu.isMobile) {\n // isOpen = false;\n //\n // if ($(this).hasClass('js--open')) {\n // isOpen = true;\n // }\n //\n // $('li.dropdown').removeClass('js--open');\n // $('.dropdown__toggle').removeClass('hover');\n //\n // if (!isOpen) {\n // $(this).addClass('js--open').children('.dropdown__toggle').addClass('hover');\n // }\n // }\n // });\n //\n // $(document).on('click', function (e) {\n // if (\n // !$(e.target).is('.dropdown.menu-parent') &&\n // !$(e.target).closest().is('.dropdown.menu-parent') &&\n // $('.dropdown.menu-parent').hasClass('js--open')\n // ) {\n // $('.dropdown.menu-parent').removeClass('js--open');\n // }\n // });\n UX.utils.menuRoleButton();\n};\n\nUX.menu.on.showAdditional = function () {\n var isMenuOpen = $('body').data('active') === 'menu' ? true : false;\n if (isMenuOpen) {\n $('html').css('overflow', 'visible');\n }\n};\n"],"sourceRoot":""}