1class MobileMenu { 2 constructor() { 3 this.mobileMenuOpener = '#modules-mobile-menu-opener'; 4 this.mainMenuID = '#modules-mobile-menu'; 5 this.overlayID = '#modules-mobile-menu-overlay'; 6 this.init(); 7 } 8 9 init() { 10 this.menu = $(this.mainMenuID); 11 this.initControls(); 12 this.initAutocomplete(); 13 this.initCurrencySelect(); 14 this.initLanguageselect(); 15 this.element = $(this.mainMenuID); 16 if (this.element.length) { 17 this.element.find('.modules-mobile-menu-item.has-children').each(function () { 18 $(this).find('.modules-mobile-menu-show-more').click(function (e) { 19 // OtevÅeme .modules-mobile-menu-selection 20 e.preventDefault(); 21 var menu = $(this).next('.modules-mobile-menu-selection'); 22 23 if (menu.length) { 24 if (menu.hasClass('open')) { 25 menu.css('max-height', menu[0].scrollHeight + 'px'); // pro jistotu 26 setTimeout(() => { 27 menu.css('max-height', '0'); 28 }, 10); 29 menu.removeClass('open'); 30 $(this).addClass('fa-plus').removeClass('fa-minus'); 31 } else { 32 menu.addClass('open'); 33 menu.css('max-height', menu[0].scrollHeight + 'px'); 34 $(this).addClass('fa-minus').removeClass('fa-plus'); 35 } 36 } 37 }); 38 }); 39 } 40 this.initListeners(); 41 } 42 43 initListeners() { 44 document.addEventListener('nodyEvent_cart_add_success', function (event) { 45 // Jen zvýšÃme badge o 1 46 var _now = 0; 47 if (parseInt($('.modules-mobile-menu-badge-cart').html()) > 0) { 48 _now = parseInt($('.modules-mobile-menu-badge-cart').html()); 49 } 50 $('.modules-mobile-menu-badge-cart').html((_now + 1) + ''); 51 }); 52 document.addEventListener('nodyEvent_compare_add_success', function (event) { 53 // Jen zvýšÃme badge o 1 54 var _now = 0; 55 if (parseInt($('.modules-mobile-menu-badge-compare').html()) > 0) { 56 _now = parseInt($('.modules-mobile-menu-badge-compare').html()); 57 } 58 $('.modules-mobile-menu-badge-compare').html((_now + 1) + ''); 59 }); 60 document.addEventListener('nodyEvent_wishlist_add_success', function (event) { 61 // Jen zvýšÃme badge o 1 62 var _now = 0; 63 if (parseInt($('.modules-mobile-menu-badge-wishlist').html()) > 0) { 64 _now = parseInt($('.modules-mobile-menu-badge-wishlist').html()); 65 } 66 $('.modules-mobile-menu-badge-wishlist').html((_now + 1) + ''); 67 }); 68 } 69 70 initControls() { 71 this.menuOpened = false; 72 this.menuOpener = $(this.mobileMenuOpener); 73 this.menuOverlay = $(this.overlayID); 74 if (this.menuOpener.length) { 75 $(this.menuOpener).click(function () { 76 nody.modules.MobileMenu.runOpener(); 77 }); 78 } 79 $('.modules-mobile-menu-close').find('i').click(function () { 80 nody.modules.MobileMenu.runOpener(); 81 }); 82 this.menuOverlay.click(function () { 83 nody.modules.MobileMenu.runOpener(); 84 }); 85 } 86 87 runOpener() { 88 if (this.menuOpened === false) { 89 // Open 90 $('body').addClass('modules-mobile-menu-opened'); 91 this.menu.addClass('active'); 92 this.menuOverlay.css('pointer-events', "auto"); 93 this.menuOverlay.show(); 94 this.menuOpened = true; 95 } else { 96 // Close 97 $('body').removeClass('modules-mobile-menu-opened'); 98 this.menu.removeClass('active'); 99 this.menuOverlay.css('pointer-events', "none"); 100 this.menuOverlay.hide(); 101 this.menuOpened = false; 102 } 103 } 104 105 closeLanguage() { 106 this.LanguageOpened = false; 107 $('#modules-mobile-menu-select-language').slideUp('slow', function () { 108 $(this).hide(); 109 }); 110 } 111 openLanguage() { 112 this.LanguageOpened = true; 113 $('#modules-mobile-menu-select-language').slideDown('slow', function () { 114 $(this).show(); 115 116 }); 117 } 118 closeCurrency() { 119 console.log('closeCurrency'); 120 this.CurrencyOpened = false;
121 $('#modules-mobile-menu-select-currecny').slideUp('slow', function () { 122 $(this).hide(); 123 }); 124 } 125 openCurrency() { 126 console.log('openCurrency'); 127 this.CurrencyOpened = true; 128 $('#modules-mobile-menu-select-currecny').slideDown('slow', function () { 129 $(this).show(); 130 131 }); 132 } 133 134 initCurrencySelect() { 135 var a = $('#modules-mobile-menu-select-currecny'); 136 if (a.length) { 137 a.find('.set-currency').each(function () { 138 $(this).click(function (e) { 139 e.preventDefault(); 140 DefinedCurrencyClick($(this)); 141 }); 142 }); 143 } 144 145 this.CurrencyOpened = false; 146 $('#modules-mobile-menu .modules-mobile-menu-select-currency').click(function () { 147 if (nody.modules.MobileMenu.LanguageOpened === true) { 148 nody.modules.MobileMenu.closeLanguage(); 149 } 150 if (nody.modules.MobileMenu.CurrencyOpened === false) { 151 nody.modules.MobileMenu.openCurrency(); 152 } else { 153 nody.modules.MobileMenu.closeCurrency(); 154 } 155 }); 156 } 157 158 initLanguageselect() { 159 this.LanguageOpened = false; 160 $('#modules-mobile-menu .modules-mobile-menu-select-language').click(function () { 161 if (nody.modules.MobileMenu.CurrencyOpened === true) { 162 nody.modules.MobileMenu.closeCurrency(); 163 } 164 if (nody.modules.MobileMenu.LanguageOpened === false) { 165 nody.modules.MobileMenu.openLanguage(); 166 } else { 167 nody.modules.MobileMenu.closeLanguage(); 168 } 169 }); 170 } 171 172 initAutocomplete() { 173 this.timeout = false; 174 $('.modules-mobile-menu-search-wrapper .modules-mobile-menu-search-input').on('keydown', function () { 175 if (this.timeout !== false) { 176 clearTimeout(this.timeout); 177 } 178 this.timeout = setTimeout(function () { 179 $('.modules-mobile-menu-search-wrapper .autocomplete').load(nody.functions.append_url('/get/autocomplete/?term=' + encodeURIComponent($('.modules-mobile-menu-search-wrapper:visible .modules-mobile-menu-search-input[type=text]').val())), function (e) { 180 $(this).css('width', $('.modules-mobile-menu-search-wrapper:visible .modules-mobile-menu-search-input[type=text]').outerWidth()).show(); 181 $(this).find('.show_all a').on('click', function () { 182 $(this).closest('.modules-mobile-menu-search-wrapper').submit(); 183 }); 184 }); 185 timeout = false; 186 }, 500); 187 }); 188 } 189} 190 191nody.modules.MobileMenu = new MobileMenu();
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.