1(function ($) { 2 3 "use strict"; 4 5 $.fn.mobileMenu = function (options) { 6 var settings = $.extend({ 7 targetWrapper: '.navbar-we-mega-menu', 8 accordionMenu: 'true', 9 toggledClass: 'toggled', 10 pageSelector: 'body' 11 }, options); 12 13 if ($(window).width() <= 991) { 14 $(settings.targetWrapper).addClass('mobile-main-menu'); 15 } 16 17 var toggleButton = this; 18 19 $(window).resize(function () { 20 if ($(window).width() <= 991) { 21 $(settings.targetWrapper).addClass('mobile-main-menu'); 22 } else { 23 $(settings.targetWrapper).removeClass('mobile-main-menu'); 24 $('body').css('overflow', ''); 25 $('body').css('height', ''); 26 $('body').css('position', ''); 27 $(settings.pageSelector).removeClass(settings.toggledClass); 28 $(settings.pageSelector).find('.overlay').remove(); 29 $(settings.pageSelector).css('position', ''); 30 item.removeClass('open'); 31 item.find('ul').css('display', ''); 32 } 33 }); 34 35 function _weMegaMenuClear() { 36 var wrapper = $(settings.pageSelector); 37 var overlay = wrapper.find('.overlay'); 38 overlay.remove(); 39 wrapper.css({ 40 'width': '', 41 'position': '' 42 }); 43 wrapper.removeClass(settings.toggledClass); 44 wrapper.find('div.region-we-mega-menu nav').removeClass('we-mobile-megamenu-active'); 45 46 if (overlay.length > 0) { 47 wrapper.find('.btn-close').remove(); 48 overlay.remove(); 49 $('body').css('overflow', ''); 50 $('body').css('height', ''); 51 $('body').css('position', ''); 52 } 53 } 54 55 this.off('click.mobileMenu'); 56 this.on('click.mobileMenu', function (e) { 57 var targetWrapper = $(this).closest('div.region-we-mega-menu').find('nav.navbar-we-mega-menu'); 58 var wrapper = $(settings.pageSelector); 59 if (!wrapper.hasClass(settings.toggledClass)) { 60 wrapper.addClass(settings.toggledClass).css('position', 'relative'); 61 $(settings.targetWrapper).addClass('mobile-main-menu'); 62 targetWrapper.addClass('we-mobile-megamenu-active'); 63 if (wrapper.find('.overlay').length == 0) { 64 var overlay = $('<div class="overlay"></div>'); 65 overlay.prependTo(wrapper); 66 overlay.click(function () { 67 _weMegaMenuClear(); 68 }); 69 $('body').css('overflow', 'hidden'); 70 $('body').css('btn-close', 'hidden'); 71 $('body').css('height', '100%'); 72 $('body').css('position', 'relative'); 73 } 74 if (wrapper.find('.btn-close').length == 0) { 75 var btnClose = $('<span class="btn-close"></span>'); 76 btnClose.prependTo(wrapper); 77 78 $('.btn-close').on('click', function (e) { 79 _weMegaMenuClear(); 80 e.preventDefault(); 81 return false; 82 }); 83 } 84 85 } else { 86 _weMegaMenuClear(); 87 } 88 e.preventDefault(); 89 e.stopPropagation(); 90 }); 91 92 if (settings.accordionMenu == 'true') { 93 var targetWrapper = $(this).closest('div.region-we-mega-menu').find('nav.navbar-we-mega-menu'); 94 var menu = $(targetWrapper).find('ul.we-mega-menu-ul').first(); 95 var item = menu.find('> li[data-submenu=1]'); 96 var item_active = menu.find('> li[data-submenu=1].active'); 97 if ($(window).width() <= 991) { 98 item_active.addClass('open'); 99 item_active.find('> ul').css('display', 'block'); 100 } 101 item.click(function (e) { 102 if ($(window).width() <= 991) { 103 var $this = $(this); 104 var $sub_menu_inner = $this.find('> .we-mega-menu-submenu'); 105 if (!$this.hasClass('open')) { 106 $(item).not($this).removeClass('open'); 107 item.find('> .we-mega-menu-submenu').slideUp(); 108 $this.toggleClass('open'); 109 if ($this.hasClass('open')) { 110 $sub_menu_inner.slideDown(); 111 setTimeout(function () { 112 $(targetWrapper).animate({ 113 scrollTop: $this.offset().top 114 }, 700); 115 }, 500); 116 117 } else { 118 $sub_menu_inner.slideUp(); 119 } 120 return false;
121 } 122 } 123 }); 124 } 125 } 126 127}(jQuery));
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.