1(function($) { 2 "use strict"; 3 4 /* -------------------------------------------------- 5 * side panel 6 * --------------------------------------------------*/ 7 var element = $('#panel-btn'), 8 sidebar = $('#side-panel'); 9 10 function panel_handler() { 11 var isActive = !element.hasClass('active'); 12 13 element.toggleClass('active', isActive); 14 sidebar.toggleClass('side-panel-open', isActive); 15 $('body').toggleClass('side-panel-active', isActive); 16 return false; 17 } 18 19 $('#panel-btn, .side-panel-close, .panel-overlay').on('click', panel_handler); 20 21 /* -------------------------------------------------- 22 * toggle search 23 * --------------------------------------------------*/ 24 var tgSearch = function($scope, $){ 25 $scope.find('.octf-search').each( function(){ 26 var btn = $(this).find('.toggle_search'), 27 form = $(this).find('.h-search-form-field'); 28 function search_handler() { 29 var isActive = !btn.hasClass('active'); 30 31 btn.toggleClass('active', isActive); 32 form.toggleClass('show', isActive); 33 return false; 34 } 35 $('.search-overlay, .h-search-form-inner > i, .toggle_search').on('click', search_handler); 36 }); 37 }; 38 39 /* -------------------------------------------------- 40 * mobile menu 41 * --------------------------------------------------*/ 42 var mmenuPanel = function(){ 43 var element = $('#mmenu-toggle'), 44 mmenu = $('#mmenu-wrapper'); 45 46 function mmenu_handler() { 47 var isActive = !element.hasClass('active'); 48 49 element.toggleClass('active', isActive); 50 mmenu.toggleClass('mmenu-open', isActive); 51 $('body').toggleClass('mmenu-active', isActive); 52 return false; 53 } 54 55 $('#mmenu-toggle, .mmenu-close, .mmenu-overlay').on('click', mmenu_handler); 56 57 $('.mmenu-wrapper li:has(ul)').prepend('<span class="arrow">+</span>'); 58 $(".mmenu-wrapper .mobile_mainmenu > li span.arrow").on('click',function() { 59 $(this).parent().find("> ul").stop(true, true).slideToggle() 60 $(this).toggleClass( "active" ); 61 }); 62 }; 63 64 /* -------------------------------------------------- 65 * menu vertical 66 * --------------------------------------------------*/ 67 var menuVertical = function($scope, $){ 68 if( $scope.find('.vertical-main-navigation').length ){ 69 $scope.find('.vertical-main-navigation').each( function(){ 70 var selector = $(this), 71 itemHasChildren = selector.find('> ul > li.menu-item-has-children > a'), 72 nItemHasChildren = selector.find('ul ul > li.menu-item-has-children > a'); 73 74 itemHasChildren.prepend('<span class="arrow"><svg viewBox="0 0 448 448" xmlns="http://www.w3.org/2000/svg"><path d="m272 184c-4.417969 0-8-3.582031-8-8v-176h-80v176c0 4.417969-3.582031 8-8 8h-176v80h176c4.417969 0 8 3.582031 8 8v176h80v-176c0-4.417969 3.582031-8 8-8h176v-80zm0 0"/></svg></span>'); 75 nItemHasChildren.prepend('<span class="arrow"><svg viewBox="0 0 448 448" xmlns="http://www.w3.org/2000/svg"><path d="m272 184c-4.417969 0-8-3.582031-8-8v-176h-80v176c0 4.417969-3.582031 8-8 8h-176v80h176c4.417969 0 8 3.582031 8 8v176h80v-176c0-4.417969 3.582031-8 8-8h176v-80zm0 0"/></svg></span>'); 76 itemHasChildren.find('span.arrow').on('click',function() { 77 itemHasChildren.parent().not($(this).parents('li.menu-item-has-children')).find('>ul').stop(true, true).slideUp(); 78 nItemHasChildren.parent().find('>ul').stop(true, true).slideUp(); 79 nItemHasChildren.find('span.arrow').removeClass('active'); 80 itemHasChildren.find('span.arrow').not($(this)).removeClass('active'); 81 $(this).parents('li.menu-item-has-children').find('>ul').stop(true, true).slideToggle(); 82 $(this).toggleClass( 'active' ); 83 }); 84 nItemHasChildren.find('span.arrow').on('click',function() { 85 $(this).parents('sub-menu').eq(0).find('li.menu-item-has-children').not($(this).parents('li.menu-item-has-children').eq(0)).find('>
85ul').stop(true, true).slideUp(); 86 $(this).parents('sub-menu').eq(0).find('li.menu-item-has-children').find('>a span.arrow').not($(this)).removeClass('active'); 87 $(this).parents('li.menu-item-has-children').eq(0).find('>ul').stop(true, true).slideToggle(); 88 $(this).toggleClass( 'active' ); 89 }); 90 }); 91 } 92 }; 93 94 /* -------------------------------------------------- 95 * Hamburger menu 96 * --------------------------------------------------*/ 97 var hamburgerMenu = function($scope, $){ 98 $scope.find('.menu-hamburger-toggle').each( function(){ 99 var selector = $(this), 100 menuHamburger = selector.next('.octf-menu-hamburger'), 101 mainNav = menuHamburger.find('.main-navigation'), 102 btnClose = menuHamburger.find('#menu-hamburger-close'); 103 selector.on('click', function() { 104 menuHamburger.addClass('open-menu'); 105 }); 106 btnClose.on('click', function() { 107 menuHamburger.removeClass('open-menu'); 108 }); 109 document.addEventListener('keydown', function(event){ 110 if(event.key === "Escape"){ 111 menuHamburger.removeClass('open-menu'); 112 } 113 }); 114 }); 115 }; 116 117 /** 118 * Elementor JS Hooks 119 */ 120 $(window).on("elementor/frontend/init", function () { 121 /*toggle search*/ 122 elementorFrontend.hooks.addAction( 123 "frontend/element_ready/isearch.default", 124 tgSearch 125 ); 126 /*mmenu*/ 127 elementorFrontend.hooks.addAction( 128 "frontend/element_ready/imenu_mobile.default", 129 mmenuPanel 130 ); 131 /*menu vertical*/ 132 elementorFrontend.hooks.addAction( 133 "frontend/element_ready/imenu.default", 134 menuVertical 135 ); 136 /*menu hamburger*/ 137 elementorFrontend.hooks.addAction( 138 "frontend/element_ready/imenu_hamburger.default", 139 hamburgerMenu 140 ); 141 }); 142 143 })(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.