You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
707 lines
27 KiB
JavaScript
707 lines
27 KiB
JavaScript
( function( $ ) {
|
|
|
|
/**
|
|
* Search widget JS
|
|
*/
|
|
|
|
var WidgethfeSearchButton = function( $scope, $ ){
|
|
|
|
if ( 'undefined' == typeof $scope )
|
|
return;
|
|
|
|
var $input = $scope.find( "input.hfe-search-form__input" );
|
|
var $clear = $scope.find( "button#clear" );
|
|
var $clear_with_button = $scope.find( "button#clear-with-button" );
|
|
var $search_button = $scope.find( ".hfe-search-submit" );
|
|
var $toggle_search = $scope.find( ".hfe-search-icon-toggle input" );
|
|
|
|
$scope.find( '.hfe-search-icon-toggle' ).on( 'click', function( ){
|
|
$scope.find( ".hfe-search-form__input" ).trigger( 'focus' );
|
|
});
|
|
|
|
$scope.find( ".hfe-search-form__input" ).on( 'focus', function(){
|
|
$scope.find( ".hfe-search-button-wrapper" ).addClass( "hfe-input-focus" );
|
|
});
|
|
|
|
$scope.find( ".hfe-search-form__input" ).blur( function() {
|
|
$scope.find( ".hfe-search-button-wrapper" ).removeClass( "hfe-input-focus" );
|
|
});
|
|
|
|
|
|
$search_button.on( 'touchstart click', function(){
|
|
$input.submit();
|
|
});
|
|
|
|
$toggle_search.css( 'padding-right', $toggle_search.next().outerWidth() + 'px' );
|
|
|
|
|
|
$input.on( 'keyup', function(){
|
|
$clear.style = (this.value.length) ? $clear.css('visibility','visible'): $clear.css('visibility','hidden');
|
|
$clear_with_button.style = (this.value.length) ? $clear_with_button.css('visibility','visible'): $clear_with_button.css('visibility','hidden');
|
|
$clear_with_button.css( 'right', $search_button.outerWidth() + 'px' );
|
|
});
|
|
|
|
$clear.on("click",function(){
|
|
this.style = $clear.css('visibility','hidden');
|
|
$input.value = "";
|
|
});
|
|
$clear_with_button.on("click",function(){
|
|
this.style = $clear_with_button.css('visibility','hidden');
|
|
$input.value = "";
|
|
});
|
|
|
|
};
|
|
/**
|
|
* Nav Menu handler Function.
|
|
*
|
|
*/
|
|
var WidgethfeNavMenuHandler = function( $scope, $ ) {
|
|
|
|
if ( 'undefined' == typeof $scope )
|
|
return;
|
|
|
|
var id = $scope.data( 'id' );
|
|
var wrapper = $scope.find('.elementor-widget-hfe-nav-menu ');
|
|
var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
|
|
var flyout_data = $( '.elementor-element-' + id + ' .hfe-flyout-wrapper' ).data( 'flyout-class' );
|
|
var last_item = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'last-item' );
|
|
var last_item_flyout = $( '.elementor-element-' + id + ' .hfe-flyout-wrapper' ).data( 'last-item' );
|
|
|
|
var menu_items_links = $( '.elementor-element-' + id + ' .hfe-nav-menu nav li a' );
|
|
var menu_items_links_flyout = $( '.elementor-element-' + id + ' .hfe-flyout-wrapper li a' );
|
|
if (menu_items_links.length > 0) {
|
|
_handle_current_menu_item_class( menu_items_links );
|
|
}
|
|
|
|
if (menu_items_links_flyout.length > 0) {
|
|
_handle_current_menu_item_class( menu_items_links_flyout );
|
|
}
|
|
|
|
$( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
|
|
|
|
_toggleClick( id );
|
|
|
|
_handlePolylangSwitcher( $scope );
|
|
|
|
_handleSinglePageMenu( id, layout );
|
|
|
|
if( 'horizontal' !== layout ){
|
|
|
|
_eventClick( id );
|
|
}else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches ) {
|
|
|
|
_eventClick( id );
|
|
}else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches ) {
|
|
|
|
_eventClick( id );
|
|
}
|
|
|
|
$( '.elementor-element-' + id + ' .hfe-flyout-trigger .hfe-nav-menu-icon' ).off( 'click keyup' ).on( 'click keyup', function() {
|
|
|
|
_openMenu( id );
|
|
} );
|
|
|
|
$( '.elementor-element-' + id + ' .hfe-flyout-close' ).off( 'click keyup' ).on( 'click keyup', function() {
|
|
|
|
_closeMenu( id );
|
|
} );
|
|
|
|
$( '.elementor-element-' + id + ' .hfe-flyout-overlay' ).off( 'click' ).on( 'click', function() {
|
|
|
|
_closeMenu( id );
|
|
} );
|
|
|
|
|
|
$scope.find( '.sub-menu' ).each( function() {
|
|
|
|
var parent = $( this ).closest( '.menu-item' );
|
|
|
|
$scope.find( parent ).addClass( 'parent-has-child' );
|
|
$scope.find( parent ).removeClass( 'parent-has-no-child' );
|
|
});
|
|
|
|
if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().addClass( 'elementor-button-wrapper' );
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).addClass( 'elementor-button' );
|
|
}
|
|
|
|
_borderClass( id );
|
|
|
|
$( window ).on( 'resize', function(){
|
|
|
|
if( 'horizontal' !== layout ) {
|
|
|
|
_eventClick( id );
|
|
}else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches ) {
|
|
|
|
_eventClick( id );
|
|
}else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches ) {
|
|
|
|
_eventClick( id );
|
|
}
|
|
|
|
if( 'horizontal' == layout && window.matchMedia( "( min-width: 977px )" ).matches){
|
|
|
|
$( '.elementor-element-' + id + ' div.hfe-has-submenu-container' ).next().css( 'position', 'absolute');
|
|
}
|
|
|
|
if( 'expandible' == layout || 'flyout' == layout ){
|
|
|
|
_toggleClick( id );
|
|
}else if ( 'vertical' == layout || 'horizontal' == layout ) {
|
|
if( window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))){
|
|
|
|
_toggleClick( id );
|
|
}else if ( window.matchMedia( "( max-width: 1024px )" ).matches && $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
|
|
|
|
_toggleClick( id );
|
|
}
|
|
}
|
|
|
|
_borderClass( id );
|
|
|
|
});
|
|
|
|
// Acessibility functions
|
|
|
|
$scope.find( '.parent-has-child .hfe-has-submenu-container a').attr( 'aria-haspopup', 'true' );
|
|
$scope.find( '.parent-has-child .hfe-has-submenu-container a').attr( 'aria-expanded', 'false' );
|
|
|
|
var hef_navmenu_toggle = $scope.find( '.hfe-nav-menu__toggle' );
|
|
hef_navmenu_toggle.attr( 'aria-haspopup', 'true' );
|
|
hef_navmenu_toggle.attr( 'aria-expanded', 'false' );
|
|
|
|
if ( window.matchMedia( "( max-width: 1024px )" ).matches && $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
|
|
hef_navmenu_toggle.find('i').attr('aria-hidden', 'false');
|
|
}
|
|
if ( window.matchMedia( "( max-width: 768px )" ).matches && $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') ) {
|
|
hef_navmenu_toggle.find('i').attr('aria-hidden', 'false');
|
|
}
|
|
|
|
// End of accessibility functions
|
|
|
|
$( document ).trigger( 'hfe_nav_menu_init', id );
|
|
|
|
$( '.elementor-element-' + id + ' div.hfe-has-submenu-container' ).on( 'keyup', function(e){
|
|
|
|
var $this = $( this );
|
|
|
|
if( $this.parent().hasClass( 'menu-active' ) ) {
|
|
|
|
$this.parent().removeClass( 'menu-active' );
|
|
|
|
$this.parent().next().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
|
|
$this.parent().prev().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
|
|
|
|
$this.parent().next().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
|
|
$this.parent().prev().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
|
|
}else {
|
|
|
|
$this.parent().next().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
|
|
$this.parent().prev().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
|
|
|
|
$this.parent().next().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
|
|
$this.parent().prev().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
|
|
|
|
$this.parent().siblings().find( '.hfe-has-submenu-container a' ).attr( 'aria-expanded', 'false' );
|
|
|
|
$this.parent().next().removeClass( 'menu-active' );
|
|
$this.parent().prev().removeClass( 'menu-active' );
|
|
|
|
event.preventDefault();
|
|
|
|
$this.parent().addClass( 'menu-active' );
|
|
|
|
if( 'horizontal' !== layout ){
|
|
$this.addClass( 'sub-menu-active' );
|
|
}
|
|
|
|
$this.find( 'a' ).attr( 'aria-expanded', 'true' );
|
|
|
|
$this.next().css( { 'visibility': 'visible', 'opacity': '1', 'height': 'auto' } );
|
|
|
|
if ( 'horizontal' !== layout ) {
|
|
|
|
$this.next().css( 'position', 'relative');
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
|
|
|
|
$this.next().css( 'position', 'relative');
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches ) {
|
|
|
|
if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
|
|
|
|
$this.next().css( 'position', 'relative');
|
|
} else if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-none') ) {
|
|
|
|
$this.next().css( 'position', 'absolute');
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
$( '.elementor-element-' + id + ' li.menu-item' ).on( 'keyup', function(e){
|
|
var $this = $( this );
|
|
|
|
$this.next().find( 'a' ).attr( 'aria-expanded', 'false' );
|
|
$this.prev().find( 'a' ).attr( 'aria-expanded', 'false' );
|
|
|
|
$this.next().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
|
|
$this.prev().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
|
|
|
|
$this.siblings().removeClass( 'menu-active' );
|
|
$this.next().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
|
|
$this.prev().find( 'div.hfe-has-submenu-container' ).removeClass( 'sub-menu-active' );
|
|
|
|
});
|
|
};
|
|
|
|
function _handle_current_menu_item_class( layout_links ) {
|
|
layout_links.each(
|
|
function () {
|
|
var $this = $( this );
|
|
if ($this.is( '[href*="#"]' )) {
|
|
var menu_item_parent = $this.parent();
|
|
menu_item_parent.removeClass( 'current-menu-item current-menu-ancestor' );
|
|
$this.click(
|
|
function () {
|
|
var current_index = menu_item_parent.index(),
|
|
parent_element = $this.closest( 'ul' );
|
|
parent_element.find( 'li' ).not( ':eq(' + current_index + ')' ).removeClass( 'current-menu-item current-menu-ancestor' );
|
|
menu_item_parent.addClass( 'current-menu-item current-menu-ancestor' );
|
|
}
|
|
)
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
function _openMenu( id ) {
|
|
|
|
var flyout_content = $( '#hfe-flyout-content-id-' + id );
|
|
var layout = $( '#hfe-flyout-content-id-' + id ).data( 'layout' );
|
|
var layout_type = $( '#hfe-flyout-content-id-' + id ).data( 'flyout-type' );
|
|
var wrap_width = flyout_content.width() + 'px';
|
|
var container = $( '.elementor-element-' + id + ' .hfe-flyout-container .hfe-side.hfe-flyout-' + layout );
|
|
|
|
$( '.elementor-element-' + id + ' .hfe-flyout-overlay' ).fadeIn( 100 );
|
|
|
|
if( 'left' == layout ) {
|
|
|
|
$( 'body' ).css( 'margin-left' , '0' );
|
|
container.css( 'left', '0' );
|
|
|
|
if( 'push' == layout_type ) {
|
|
|
|
$( 'body' ).addClass( 'hfe-flyout-animating' ).css({
|
|
position: 'absolute',
|
|
width: '100%',
|
|
'margin-left' : wrap_width,
|
|
'margin-right' : 'auto'
|
|
});
|
|
}
|
|
|
|
container.addClass( 'hfe-flyout-show' );
|
|
} else {
|
|
|
|
$( 'body' ).css( 'margin-right', '0' );
|
|
container.css( 'right', '0' );
|
|
|
|
if( 'push' == layout_type ) {
|
|
|
|
$( 'body' ).addClass( 'hfe-flyout-animating' ).css({
|
|
position: 'absolute',
|
|
width: '100%',
|
|
'margin-left' : '-' + wrap_width,
|
|
'margin-right' : 'auto',
|
|
});
|
|
}
|
|
|
|
container.addClass( 'hfe-flyout-show' );
|
|
}
|
|
}
|
|
|
|
function _closeMenu( id ) {
|
|
|
|
var flyout_content = $( '#hfe-flyout-content-id-' + id );
|
|
var layout = $( '#hfe-flyout-content-id-' + id ).data( 'layout' );
|
|
var wrap_width = flyout_content.width() + 'px';
|
|
var layout_type = $( '#hfe-flyout-content-id-' + id ).data( 'flyout-type' );
|
|
var container = $( '.elementor-element-' + id + ' .hfe-flyout-container .hfe-side.hfe-flyout-' + layout );
|
|
|
|
$( '.elementor-element-' + id + ' .hfe-flyout-overlay' ).fadeOut( 100 );
|
|
|
|
if( 'left' == layout ) {
|
|
|
|
container.css( 'left', '-' + wrap_width );
|
|
|
|
if( 'push' == layout_type ) {
|
|
|
|
$( 'body' ).css({
|
|
position: '',
|
|
'margin-left' : '',
|
|
'margin-right' : '',
|
|
});
|
|
|
|
setTimeout( function() {
|
|
$( 'body' ).removeClass( 'hfe-flyout-animating' ).css({
|
|
width: '',
|
|
});
|
|
});
|
|
}
|
|
|
|
container.removeClass( 'hfe-flyout-show' );
|
|
} else {
|
|
container.css( 'right', '-' + wrap_width );
|
|
|
|
if( 'push' == layout_type ) {
|
|
|
|
$( 'body' ).css({
|
|
position: '',
|
|
'margin-right' : '',
|
|
'margin-left' : '',
|
|
});
|
|
|
|
setTimeout( function() {
|
|
$( 'body' ).removeClass( 'hfe-flyout-animating' ).css({
|
|
width: '',
|
|
});
|
|
});
|
|
}
|
|
container.removeClass( 'hfe-flyout-show' );
|
|
}
|
|
}
|
|
|
|
function _eventClick( id ){
|
|
|
|
var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
|
|
|
|
$( '.elementor-element-' + id + ' div.hfe-has-submenu-container' ).off( 'click' ).on( 'click', function( event ) {
|
|
|
|
var $this = $( this );
|
|
|
|
if( $( '.elementor-element-' + id ).hasClass( 'hfe-link-redirect-child' ) ) {
|
|
|
|
if( $this.hasClass( 'sub-menu-active' ) ) {
|
|
|
|
if( ! $this.next().hasClass( 'sub-menu-open' ) ) {
|
|
|
|
$this.find( 'a' ).attr( 'aria-expanded', 'false' );
|
|
|
|
if( 'horizontal' !== layout ){
|
|
|
|
event.preventDefault();
|
|
|
|
$this.next().css( 'position', 'relative' );
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
|
|
|
|
event.preventDefault();
|
|
|
|
$this.next().css( 'position', 'relative' );
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches && ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
|
|
|
|
event.preventDefault();
|
|
|
|
$this.next().css( 'position', 'relative' );
|
|
}
|
|
|
|
$this.removeClass( 'sub-menu-active' );
|
|
$this.nextAll('.sub-menu').removeClass( 'sub-menu-open' );
|
|
$this.nextAll('.sub-menu').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
|
|
$this.nextAll('.sub-menu').css( { 'transition': 'none'} );
|
|
} else{
|
|
|
|
$this.find( 'a' ).attr( 'aria-expanded', 'false' );
|
|
|
|
$this.removeClass( 'sub-menu-active' );
|
|
$this.nextAll('.sub-menu').removeClass( 'sub-menu-open' );
|
|
$this.nextAll('.sub-menu').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
|
|
$this.nextAll('.sub-menu').css( { 'transition': 'none'} );
|
|
|
|
if ( 'horizontal' !== layout ){
|
|
|
|
$this.next().css( 'position', 'relative' );
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
|
|
|
|
$this.next().css( 'position', 'relative' );
|
|
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches && ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
|
|
|
|
$this.next().css( 'position', 'absolute' );
|
|
}
|
|
}
|
|
} else {
|
|
|
|
$this.find( 'a' ).attr( 'aria-expanded', 'true' );
|
|
if ( 'horizontal' !== layout ) {
|
|
|
|
event.preventDefault();
|
|
$this.next().css( 'position', 'relative');
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
|
|
|
|
event.preventDefault();
|
|
$this.next().css( 'position', 'relative');
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches ) {
|
|
event.preventDefault();
|
|
|
|
if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
|
|
|
|
$this.next().css( 'position', 'relative');
|
|
} else if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-none') ) {
|
|
|
|
$this.next().css( 'position', 'absolute');
|
|
}
|
|
}
|
|
|
|
$this.addClass( 'sub-menu-active' );
|
|
$this.nextAll('.sub-menu').addClass( 'sub-menu-open' );
|
|
$this.nextAll('.sub-menu').css( { 'visibility': 'visible', 'opacity': '1', 'height': 'auto' } );
|
|
$this.nextAll('.sub-menu').css( { 'transition': '0.3s ease'} );
|
|
}
|
|
}
|
|
});
|
|
|
|
$( '.elementor-element-' + id + ' .hfe-menu-toggle' ).off( 'click keyup' ).on( 'click keyup',function( event ) {
|
|
|
|
var $this = $( this );
|
|
|
|
if( $this.parent().parent().hasClass( 'menu-active' ) ) {
|
|
|
|
event.preventDefault();
|
|
|
|
$this.parent().parent().removeClass( 'menu-active' );
|
|
$this.parent().parent().next().css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
|
|
|
|
if ( 'horizontal' !== layout ) {
|
|
|
|
$this.parent().parent().next().css( 'position', 'relative');
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
|
|
|
|
$this.parent().parent().next().css( 'position', 'relative');
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches ) {
|
|
|
|
if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
|
|
|
|
$this.parent().parent().next().css( 'position', 'relative');
|
|
} else if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-none') ) {
|
|
|
|
$this.parent().parent().next().css( 'position', 'absolute');
|
|
}
|
|
}
|
|
}else {
|
|
|
|
event.preventDefault();
|
|
|
|
$this.parent().parent().addClass( 'menu-active' );
|
|
|
|
$this.parent().parent().next().css( { 'visibility': 'visible', 'opacity': '1', 'height': 'auto' } );
|
|
|
|
if ( 'horizontal' !== layout ) {
|
|
|
|
$this.parent().parent().next().css( 'position', 'relative');
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile'))) {
|
|
|
|
$this.parent().parent().next().css( 'position', 'relative');
|
|
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches ) {
|
|
|
|
if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
|
|
|
|
$this.parent().parent().next().css( 'position', 'relative');
|
|
} else if ( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-none') ) {
|
|
|
|
$this.parent().parent().next().css( 'position', 'absolute');
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function _borderClass( id ){
|
|
|
|
var last_item = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'last-item' );
|
|
var last_item_flyout = $( '.elementor-element-' + id + ' .hfe-flyout-wrapper' ).data( 'last-item' );
|
|
var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
|
|
|
|
$( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
|
|
|
|
if ( window.matchMedia( "( max-width: 767px )" ).matches ) {
|
|
|
|
if( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet')){
|
|
|
|
$( '.elementor-element-' + id + ' nav').addClass('hfe-dropdown');
|
|
if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().removeClass( 'elementor-button-wrapper' );
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).removeClass( 'elementor-button' );
|
|
}
|
|
}else{
|
|
|
|
$( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
|
|
if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().addClass( 'elementor-button-wrapper' );
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).addClass( 'elementor-button' );
|
|
}
|
|
}
|
|
}else if ( window.matchMedia( "( max-width: 1024px )" ).matches ) {
|
|
|
|
if( $( '.elementor-element-' + id ).hasClass('hfe-nav-menu__breakpoint-tablet') ) {
|
|
|
|
$( '.elementor-element-' + id + ' nav').addClass('hfe-dropdown');
|
|
if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().removeClass( 'elementor-button-wrapper' );
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).removeClass( 'elementor-button' );
|
|
}
|
|
}else{
|
|
|
|
$( '.elementor-element-' + id + ' nav').removeClass('hfe-dropdown');
|
|
if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().addClass( 'elementor-button-wrapper' );
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).addClass( 'elementor-button' );
|
|
}
|
|
}
|
|
}else {
|
|
var $parent_element = $( '.elementor-element-' + id );
|
|
$parent_element.find( 'nav').removeClass( 'hfe-dropdown' );
|
|
if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
|
|
$parent_element.find( 'li.menu-item:last-child a.hfe-menu-item' ).parent().addClass( 'elementor-button-wrapper' );
|
|
$parent_element.find( 'li.menu-item:last-child a.hfe-menu-item' ).addClass( 'elementor-button' );
|
|
}
|
|
}
|
|
|
|
var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
|
|
if( 'expandible' == layout ){
|
|
if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).parent().removeClass( 'elementor-button-wrapper' );
|
|
$( '.elementor-element-' + id + ' li.menu-item:last-child a.hfe-menu-item' ).removeClass( 'elementor-button' );
|
|
}
|
|
}
|
|
}
|
|
|
|
function _toggleClick( id ){
|
|
|
|
if ( $( '.elementor-element-' + id + ' .hfe-nav-menu__toggle' ).hasClass( 'hfe-active-menu-full-width' ) ){
|
|
|
|
$( '.elementor-element-' + id + ' .hfe-nav-menu__toggle' ).next().css( 'left', '0' );
|
|
|
|
var width = $( '.elementor-element-' + id ).closest('.elementor-section').outerWidth();
|
|
var sec_pos = $( '.elementor-element-' + id ).closest('.elementor-section').offset().left - $( '.elementor-element-' + id + ' .hfe-nav-menu__toggle' ).next().offset().left;
|
|
$( '.elementor-element-' + id + ' .hfe-nav-menu__toggle' ).next().css( 'width', width + 'px' );
|
|
$( '.elementor-element-' + id + ' .hfe-nav-menu__toggle' ).next().css( 'left', sec_pos + 'px' );
|
|
}
|
|
|
|
$( '.elementor-element-' + id + ' .hfe-nav-menu__toggle' ).off( 'click keyup' ).on( 'click keyup', function( event ) {
|
|
|
|
var $this = $( this );
|
|
var $selector = $this.next();
|
|
|
|
if ( $this.hasClass( 'hfe-active-menu' ) ) {
|
|
|
|
var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
|
|
var full_width = $selector.data( 'full-width' );
|
|
var toggle_icon = $( '.elementor-element-' + id + ' nav' ).data( 'toggle-icon' );
|
|
|
|
$( '.elementor-element-' + id).find( '.hfe-nav-menu-icon' ).html( toggle_icon );
|
|
|
|
$this.removeClass( 'hfe-active-menu' );
|
|
$this.attr( 'aria-expanded', 'false' );
|
|
|
|
if ( 'yes' == full_width ){
|
|
|
|
$this.removeClass( 'hfe-active-menu-full-width' );
|
|
|
|
$selector.css( 'width', 'auto' );
|
|
$selector.css( 'left', '0' );
|
|
$selector.css( 'z-index', '0' );
|
|
}
|
|
} else {
|
|
|
|
var layout = $( '.elementor-element-' + id + ' .hfe-nav-menu' ).data( 'layout' );
|
|
var full_width = $selector.data( 'full-width' );
|
|
var close_icon = $( '.elementor-element-' + id + ' nav' ).data( 'close-icon' );
|
|
|
|
$( '.elementor-element-' + id).find( '.hfe-nav-menu-icon' ).html( close_icon );
|
|
|
|
$this.addClass( 'hfe-active-menu' );
|
|
$this.attr( 'aria-expanded', 'true' );
|
|
|
|
if ( 'yes' == full_width ){
|
|
|
|
$this.addClass( 'hfe-active-menu-full-width' );
|
|
|
|
var width = $( '.elementor-element-' + id ).closest('.elementor-section').outerWidth();
|
|
var sec_pos = $( '.elementor-element-' + id ).closest('.elementor-section').offset().left - $selector.offset().left;
|
|
|
|
$selector.css( 'width', width + 'px' );
|
|
$selector.css( 'left', sec_pos + 'px' );
|
|
$selector.css( 'z-index', '9999' );
|
|
}
|
|
}
|
|
|
|
if( $( '.elementor-element-' + id + ' nav' ).hasClass( 'menu-is-active' ) ) {
|
|
|
|
$( '.elementor-element-' + id + ' nav' ).removeClass( 'menu-is-active' );
|
|
}else {
|
|
|
|
$( '.elementor-element-' + id + ' nav' ).addClass( 'menu-is-active' );
|
|
}
|
|
} );
|
|
}
|
|
|
|
function _handleSinglePageMenu( id, layout ) {
|
|
$( '.elementor-element-' + id + ' ul.hfe-nav-menu li a' ).on(
|
|
'click',
|
|
function () {
|
|
var $this = $( this );
|
|
var link = $this.attr( 'href' );
|
|
var linkValue = '';
|
|
if ( link.includes( '#' ) ) {
|
|
var index = link.indexOf( '#' );
|
|
linkValue = link.slice( index + 1 );
|
|
}
|
|
if ( linkValue.length > 0 ) {
|
|
if ( 'expandible' == layout ) {
|
|
$( '.elementor-element-' + id + ' .hfe-nav-menu__toggle' ).trigger( "click" );
|
|
if ($this.hasClass( 'hfe-sub-menu-item' )) {
|
|
$( '.elementor-element-' + id + ' .hfe-menu-toggle' ).trigger( "click" );
|
|
}
|
|
} else {
|
|
if ( window.matchMedia( '(max-width: 1024px)' ).matches && ( 'horizontal' == layout || 'vertical' == layout ) ) {
|
|
$( '.elementor-element-' + id + ' .hfe-nav-menu__toggle' ).trigger( "click" );
|
|
if ($this.hasClass( 'hfe-sub-menu-item' )) {
|
|
$( '.elementor-element-' + id + ' .hfe-menu-toggle' ).trigger( "click" );
|
|
}
|
|
} else {
|
|
if ($this.hasClass( 'hfe-sub-menu-item' )) {
|
|
_closeMenu( id );
|
|
$( '.elementor-element-' + id + ' .hfe-menu-toggle' ).trigger( "click" );
|
|
}
|
|
_closeMenu( id );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
/**
|
|
* This function handles polylang plugin's lang switcher if present in the menu.
|
|
*
|
|
* @param {Object} $scope The current element(hfe nav menu) wrapped with jQuery.
|
|
*/
|
|
function _handlePolylangSwitcher( $scope ) {
|
|
var polylangSwitcher = $scope.find( '.hfe-nav-menu nav .pll-parent-menu-item a.hfe-menu-item' );
|
|
var hrefProperty = polylangSwitcher.prop( 'href' );
|
|
if ( undefined !== hrefProperty && hrefProperty.includes( '#' ) ) {
|
|
var index = hrefProperty.indexOf( '#' );
|
|
var value = hrefProperty.slice( index );
|
|
if ( value === '#pll_switcher' ) {
|
|
polylangSwitcher.prop( 'href', '#' );
|
|
}
|
|
}
|
|
}
|
|
|
|
$( window ).on( 'elementor/frontend/init', function () {
|
|
|
|
elementorFrontend.hooks.addAction( 'frontend/element_ready/navigation-menu.default', WidgethfeNavMenuHandler );
|
|
elementorFrontend.hooks.addAction( 'frontend/element_ready/hfe-search-button.default', WidgethfeSearchButton );
|
|
});
|
|
} )( jQuery );
|