1(function ($, window, document) { 2 var breakpoints = { 3 sm: 544, // Small screen / phone 4 md: 768, // Medium screen / tablet 5 lg: 992, // Large screen / desktop 6 xl: 1200, // Extra large screen / wide desktop 7 }; 8 9 var _getViewPort = function () { 10 var e = window, a = 'inner'; 11 if (!('innerWidth' in window)) { 12 a = 'client'; 13 e = document.documentElement || document.body; 14 } 15 return { 16 width: e[a + 'Width'], 17 height: e[a + 'Height'], 18 }; 19 }; 20 21 var _isInResponsiveRange = function (mode) { 22 var breakpoint = _getViewPort().width; 23 if (mode === 'general') { 24 return true; 25 } else if (mode === 'desktop' && breakpoint >= breakpoints.lg + 1) { 26 return true; 27 } else if (mode === 'tablet' && breakpoint >= breakpoints.md + 1 && breakpoint < breakpoints.lg) { 28 return true; 29 } else if (mode === 'mobile' && breakpoint <= breakpoints.md) { 30 return true; 31 } else if (mode === 'desktop-and-tablet' && breakpoint >= breakpoints.md + 1) { 32 return true; 33 } else if (mode === 'tablet-and-mobile' && breakpoint <= breakpoints.lg) { 34 return true; 35 } 36 return false; 37 }; 38 39 var _isMainMenuMinimized = function () { 40 return $('body').hasClass('e8-primary-menu--minimize'); 41 }; 42 43 var popper; 44 var active; 45 46 function _initMenuPopper($el) { 47 var togglerIcon = $el.find('> .e8-primary-menu__toggle >.e8-primary-menu__link-icon').first().get(0); 48 var submenu = $el.find('> .e8-primary-menu__submenu').first().get(0); 49 50 if (togglerIcon && submenu) { 51 popper = new Popper( 52 togglerIcon, 53 submenu, 54 { 55 placement: 'right-start', 56 positionFixed: 'true', 57 modifiers: { 58 flip: { 59 enabled: true, 60 flipVariations: true, 61 flipVariationsByContent: true, 62 }, 63 }, 64 }, 65 ); 66 67 $el.addClass('e8-primary-menu__item--hover'); 68 69 $el.on('mouseleave', function () { 70 $el.removeClass('e8-primary-menu__item--hover'); 71 if (popper) { 72 popper.destroy(); 73 popper = null; 74 } 75 }); 76 } 77 } 78 79 $(document).ready(function () { 80 $('.e8-primary-menu__toggle').on('click', function (e) { 81 e.stopPropagation(); 82 var $submenu = $(this).siblings('.e8-primary-menu__submenu'); 83 84 var $opened = $submenu 85 .closest('.e8-primary-menu__item--submenu') 86 .toggleClass('e8-primary-menu__item--open'); 87 88 if (_isMainMenuMinimized()) { 89 if ($opened.closest('.e8-primary-menu__subnav').length) { 90 $submenu.slideToggle('fast', function () { 91 if (popper) { 92 popper.update(); 93 } 94 }); 95 } 96 } else { 97 $submenu.slideToggle('fast'); 98 } 99 100 $submenu 101 .closest('.e8-primary-menu__nav') 102 .find('.e8-primary-menu__item--submenu.e8-primary-menu__item--open') 103 .not($submenu.parents('.e8-primary-menu__item--submenu')) 104 .removeClass('e8-primary-menu__item--open') 105 .find('.e8-primary-menu__submenu') 106 .slideUp('fast'); 107 }); 108 109 $('.e8-primary-menu__nav > .e8-primary-menu__item--submenu') 110 .on('mouseenter', function () { 111 var $elem = $(this); 112 if (_isInResponsiveRange('desktop') && _isMainMenuMinimized()) { 113 _initMenuPopper($elem); 114 active = $elem; 115 } 116 }) 117 .on('mouseleave', function () { 118 $(this).removeClass('e8-primary-menu__item--hover'); 119 }); 120 121 $('.e8-primary-menu--minimize_toggle') 122 .on('click', function (e) { 123 e.preventDefault(); 124 $('.e8-primary-menu--offcanvas_toggle').toggleClass('e8-toggler--active'); 125 $('body').toggleClass('e8-primary-menu--minimize'); 126 if (_isMainMenuMinimized()) { 127 Cookies.set('minimizeSidebar', 1, { expires: 365 }); 128 } else { 129 Cookies.remove('minimizeSidebar'); 130 $('.e8-primary-menu__item--submenu').removeClass('e8-primary-menu__item--hover'); 131 if (popper) { 132 popper.destroy(); 133 popper = null; 134 } 135 } 136 }); 137 138 $('.e8-primary-menu--offcanvas_toggle').on('click', function (e) { 139 e.preventDefault(); 140 $('.e8-primary-menu--offcanvas_toggle').toggleClass('e8-toggler--active'); 141 $('body').toggleClass('e8-primary-menu--on'); 142 }); 143 144 $(document).on('click', '.e8-primary-menu__overlay', function () { 145 $('.e8-primary-menu--offcanvas_toggle').first().trigger('click'); 146 }); 147 148 $(document).on('click', '[data-core-action=submit]', function () { 149 var $elem = $(this); 150 var target = $elem.attr('data-core-target'); 151 if (target) { 152 var $form = $(target); 153 if ($form.length) { 154 if ($elem.attr('name')) {
155 $form.prepend($('<input>', { 156 type: 'hidden', 157 name: $elem.attr('name'), 158 value: $elem.val(), 159 })); 160 } 161 $form.trigger('submit'); 162 } 163 } 164 return true; 165 }).on('click', '[data-toggle=\'e8-modal\']', function (e) { 166 var $elem = $(this); 167 if (window.E8Modal) { 168 e.stopPropagation(); 169 e.preventDefault(); 170 window.E8Modal.show($elem.data('e8-modal-src'), $elem.data('e8-modal-options')); 171 return false; 172 } 173 }); 174 175 $('.e8-primary-menu__item:not(.e8-primary-menu__item--submenu) > .e8-primary-menu__link').on('click', function () { 176 $(this).closest('.dropdown-menu').removeClass('show'); 177 }); 178 179 $('.e8-custom_menu__toggle').on('click', function (e) { 180 e.stopPropagation(); 181 const $self = $(this); 182 const $toggler = $self.closest('.dropdown').find('[data-toggle=dropdown]') 183 const $submenu = $self.siblings('.e8-custom_menu__submenu'); 184 $submenu.closest('.e8-custom_menu__item--submenu').toggleClass('e8-custom_menu__item--open'); 185 $submenu.slideToggle('fast', 'swing', () => $toggler.dropdown('update')); 186 187 $submenu 188 .closest('.e8-custom_menu') 189 .find('.e8-custom_menu__item--submenu.e8-custom_menu__item--open') 190 .not($submenu.parents('.e8-custom_menu__item--submenu')) 191 .removeClass('e8-custom_menu__item--open') 192 .find('.e8-custom_menu__submenu') 193 .slideUp('fast', () => $toggler.dropdown('update')); 194 }); 195 196 setTimeout(() => { 197 const activeMenuItem = document.querySelector('.e8-primary-menu__item--active'); 198 const scrollable = activeMenuItem?.closest('.simplebar-content-wrapper'); 199 200 if (!activeMenuItem || !scrollable) { 201 return; 202 } 203 204 const containerRect = scrollable.getBoundingClientRect(); 205 const elRect = activeMenuItem.getBoundingClientRect(); 206 207 const isAbove = elRect.top < containerRect.top; 208 const isBelow = elRect.bottom > containerRect.bottom; 209 210 if (isAbove || isBelow) { 211 activeMenuItem.scrollIntoView({ behavior: 'smooth', block: 'end' }); 212 } 213 214 }, 100); 215 }); 216 217}(window.jQuery, window, document));
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.