1"use strict"; 2 3$(document).ready(function () { 4 $('.main-menu__areas-item').css('display', 'none'); // ------ DESKTOP ----- 5 6 if ($(window).innerWidth() > 768) { 7 // set min-height to flyout 8 var setFlyoutHeight = function setFlyoutHeight(items) { 9 if (items.length === 0) return; 10 var highestCount = 0; 11 var subMenus = items.find('ul'); 12 subMenus.each(function (i, e) { 13 var count = $(e).find('> li').length; 14 if (count > highestCount) highestCount = count; 15 }); 16 var itemHeight = items.first().innerHeight(); 17 var minHeight = itemHeight * highestCount + 150; 18 $('.flyout__wrapper').css('min-height', "".concat(minHeight, "px")); 19 }; // Level 1 20 21 22 $('.level-1 > li.has-children > .main-menu__item-list-anchor').on('click', function (e) { 23 var li = $(e.target).closest('li'); 24 25 if (li.hasClass('has-children')) { 26 e.preventDefault(); 27 $('.level-1 > li.has-children').removeClass('open'); 28 $('.level-3, .level-4').removeClass('open'); 29 $('.main-menu__item-list-anchor').removeClass('main-menu__item-list-anchor--active'); 30 $('.main-menu__item-list-anchor, li.has-children > .main-menu__areas-item-link[aria-haspopup=true]').attr('aria-expanded', false); 31 var flyout = li.find('.flyout'); 32 $('.flyout').not(flyout).removeClass('open'); 33 34 if (flyout.hasClass('open')) { 35 flyout.removeClass('open'); 36 $('li.has-children').removeClass('has-children--expanded'); 37 } else { 38 flyout.addClass('open'); 39 $(e.target).addClass('main-menu__item-list-anchor--active'); 40 setFlyoutHeight(li.find('.menu').first().find('ul').first().find('> li')); 41 $(e.target).attr('aria-expanded', true); 42 } 43 44 if ($('.main-menu .menu.open').length > 0) { 45 $('.main-menu').addClass('main-menu--active'); 46 } else { 47 $('.main-menu').removeClass('main-menu--active'); 48 } 49 } 50 }); // Levels below 51 52 $('.level-2 > div > div > ul > li.has-children > .main-menu__areas-item-link').on('click', function (e) { 53 var li = $(e.target).closest('li').first(); 54 55 if (li.hasClass('has-children')) { 56 e.preventDefault(); 57 $('.level-3, .level-4').removeClass('open'); 58 $('li.has-children').removeClass('has-children--expanded'); 59 $('li.has-children > .main-menu__areas-item-link[aria-haspopup=true]').attr('aria-expanded', false); 60 var flyout = li.find('.menu').first(); 61 62 if (flyout.hasClass('open')) { 63 flyout.removeClass('open'); 64 $(e.target).attr('aria-expanded', false); 65 } else { 66 flyout.addClass('open'); 67 $('.level-2 > .row > div > ul > li.has-children').removeClass('has-children--expanded'); 68 li.addClass('has-children--expanded'); 69 $(e.target).attr('aria-expanded', true); 70 } 71 72 if ($('.main-menu .menu.open').length > 0) { 73 $('.main-menu').addClass('main-menu--active'); 74 } else { 75 $('.main-menu').removeClass('main-menu--active'); 76 } 77 } 78 }); 79 $('.level-3 li.has-children > .main-menu__areas-item-link').on('click', function (e) { 80 var li = $(e.target).closest('li').first(); 81 82 if (li.hasClass('has-children')) { 83 e.preventDefault(); 84 $('.level-4').removeClass('open'); 85 var flyout = li.find('.menu').first(); 86 $('.level-3 .main-menu__areas-item-link[aria-haspopup=true]').attr('aria-expanded', false); 87 88 if (flyout.hasClass('open')) { 89 flyout.removeClass('open'); 90 $('li.has-children').removeClass('has-children--expanded'); 91 $(e.target).attr('aria-expanded', false); 92 } else { 93 flyout.addClass('open'); 94 $('.level-3 > ul > li.has-children').removeClass('has-children--expanded'); 95 li.addClass('has-children--expanded'); 96 $(e.target).attr('aria-expanded', true); 97 } 98 99 if ($('.main-menu .menu.open').length > 0) { 100 $('.main-menu').addClass('main-menu--active'); 101 } else { 102 $('.main-menu').removeClass('main-menu--active'); 103 } 104 } 105 }); // Keyboard 106 107 $('.main-menu').on('keydown', function (e) { 108 if (e.which === 13) {// enter 109 } else if (e.which === 27) { 110 // esc 111 var activeLvl1 = $('.level-1 .main-menu__item-list-anchor--active'); 112 var activeLvl2, activeLvl3; 113 114 if (activeLvl1) { 115 activeLvl2 = activeLvl1.parent().find('.level-2 li.has-children.has-children--expanded').first(); 116 117 if (activeLvl2) { 118 activeLvl3 = activeLvl2.find('.level-3 ul li.has-children.has-children--expanded').first(); 119 } 120 } // Close current active sub-menu 121 122 123 if (activeLvl3.length) { 124 activeLvl3.removeClass('has-children--expanded'); 125 activeLvl3.find('.menu').removeClass('open'); 126 activeLvl3.find('.main-menu__areas-item-link').focus(); 127 } else if (activeLvl2.length && activeLvl3.length === 0) { 128 activeLvl2.removeClass('has-children--expanded'); 129 activeLvl2.find('.menu').removeClass('open'); 130 activeLvl2.find('.main-menu__areas-item-link').focus(); 131 } else if (activeLvl2.length === 0) { 132 $('.main-menu').removeClass('main-menu--active'); 133 $('.level-3, .level-4').removeClass('open'); 134 $('li.has-children').removeClass('has-children--expanded'); 135 $('.main-menu__item-list-anchor').removeClass('main-menu__item-list-anchor--active'); 136 $('.flyout').removeClass('open'); 137 } 138 } 139 }); 140 } else { 141 // ------ MOBILE ----- 142 // mobile menu toggle 143 var mobileMenuOpened = false;
144 var lastOpenedSubmenu; 145 $('.main-menu__mobile-toggle').on('click', function () { 146 var nav = $('#main-menu'); 147 var toggle = $('#main-menu-toggle'); 148 var menu = $('.main-menu__item-list-wrapper'); 149 mobileMenuOpened = !mobileMenuOpened; 150 151 if (mobileMenuOpened) { 152 menu.css('display', 'flex').hide().fadeIn(); 153 toggle.find('span').html(window.t('closeMenu')); 154 toggle.find('i').removeClass('fa-bars'); 155 toggle.find('i').addClass('fa-times'); 156 nav.addClass('main-menu--active'); 157 } else { 158 menu.fadeOut(); 159 toggle.find('span').html(window.t('menu')); 160 toggle.find('i').removeClass('fa-times'); 161 toggle.find('i').addClass('fa-bars'); 162 nav.removeClass('main-menu--active'); 163 } 164 }); // mobile accordion arrow / highlighting logic 165 166 $('#main-menu-accordion').on('show.bs.collapse', function (e) { 167 var head = $(e.target).parent(); 168 var icon = head.find('i'); 169 lastOpenedSubmenu = $(e.target).closest('.main-menu__item-list-anchor-container'); 170 icon.removeClass('fa-angle-down fa-angle-up'); 171 icon.addClass('fa-angle-up'); 172 }).on('hide.bs.collapse', function (e) { 173 var head = $(e.target).parent(); 174 var icon = head.find('i'); 175 icon.removeClass('fa-angle-down fa-angle-up'); 176 icon.addClass('fa-angle-down'); 177 }); 178 $('#main-menu-accordion').on('keydown', function (e) { 179 if (e.which === 27) { 180 if ($('.main-menu__item-list-anchor-container.show').length) { 181 var parentMenu = lastOpenedSubmenu.closest('.main-menu__item-list-anchor-container').parent().find('> .main-menu__item-list-anchor-head'); 182 lastOpenedSubmenu.collapse('hide'); 183 lastOpenedSubmenu = $(e.target).closest('.main-menu__item-list-anchor-container.show'); 184 parentMenu.focus(); 185 } else { 186 var menu = $('.main-menu__item-list-wrapper'); 187 var toggle = $('#main-menu-toggle'); 188 var nav = $('#main-menu'); 189 menu.fadeOut(); 190 toggle.find('span').html(window.t('menu')); 191 toggle.find('i').removeClass('fa-times'); 192 toggle.find('i').addClass('fa-bars'); 193 nav.removeClass('main-menu--active'); 194 toggle.focus(); 195 mobileMenuOpened = false; 196 } 197 } 198 }); 199 } 200});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.