File: /home/deshuvsd/www/wp-content/plugins/ultimate-elementor/assets/js/uael-nav-menu.js
( function( $ ) {
/**
* Nav Menu handler Function.
*
*/
var WidgetUAELNavMenuHandler = function( $scope, $ ) {
if ( 'undefined' == typeof $scope )
return;
var id = $scope.data( 'id' );
var parent = $( '.elementor-element-' + id );
var wrapper = $scope.find('.elementor-widget-uael-nav-menu ');
var layout = $( '.elementor-element-' + id + ' .uael-nav-menu' ).data( 'layout' );
var flyout_data = $( '.uael-flyout-wrapper' ).data( 'flyout-class' );
var url = window.location.href;
var custom_menu = $scope.find( '.uael-nav-menu-custom li' );
var saved_content = $scope.find( '.saved-content' );
var last_item = parent.find('.uael-nav-menu' ).data( 'last-item' );
var last_item_flyout = parent.find('.uael-flyout-wrapper' ).data( 'last-item' );
var last_menu_item = parent.find('li.menu-item:last-child a.uael-menu-item' );
var cta_classes = {
_addClassesCta: function (){
last_menu_item.parent().addClass( 'uael-button-wrapper elementor-widget-button' );
last_menu_item.addClass( 'elementor-button' );
},
_removeClassesCta: function (){
last_menu_item.parent().removeClass( 'uael-button-wrapper elementor-widget-button' );
last_menu_item.removeClass( 'elementor-button' );
}
}
$( 'div.uael-has-submenu-container' ).removeClass( 'sub-menu-active' );
_sizeCal( id );
_toggleClick( id );
_handleSinglePageMenu( id, layout );
if( 'horizontal' !== layout ||
(
'horizontal' === layout &&
(
window.matchMedia( "( max-width: 767px )" ).matches ||
window.matchMedia( "( max-width: 1024px )" ).matches ||
( $( '.elementor-element-' + id ).hasClass( 'uael-submenu-open-click' ) && window.matchMedia( "( min-width: 1025px )" ).matches )
)
)
){
_eventClick( id );
}
_borderClass( id, cta_classes );
$( '.elementor-element-' + id + ' .uael-nav-menu-icon' ).off( 'click keyup' ).on( 'click keyup', function() {
_openMenu( id );
} );
$( '.elementor-element-' + id + ' .uael-flyout-close' ).off( 'click keyup' ).on( 'click keyup', function() {
_closeMenu( id );
} );
$( '.elementor-element-' + id + ' .uael-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 ){
cta_classes._addClassesCta();
}
saved_content.each( function() {
var parent_content = $( this ).closest( '.sub-menu' );
$scope.find( parent_content ).addClass( 'parent-has-template' );
$scope.find( parent_content ).removeClass( 'parent-do-not-have-template' );
});
if( 'horizontal' == $( '.uael-nav-menu' ).data( 'menu-layout' ) ) {
saved_content.each( function() {
var parent_css = $( this ).data( 'left-pos' );
$( this ).closest( '.sub-menu' ).css( 'left', parent_css + '%' );
});
}
custom_menu.each( function(){
var $this = $( this );
var href = $this.find( 'a' ).attr( 'href' );
if( url.replace(/\/+$/, '') === href.replace(/\/+$/, '') ) {
var parentClass = $this.parent( 'ul' ).hasClass( 'sub-menu' );
if( parentClass ) {
$this.addClass( 'custom-submenu-active' );
$this.parents( '.uael-nav-menu-custom li' ).addClass( 'custom-menu-active' );
}else {
$this.addClass( 'custom-menu-active' );
}
}
});
$( window ).on( 'resize', function(){
_sizeCal( id );
if( 'horizontal' !== layout ||
( 'horizontal' === layout &&
(
window.matchMedia( "( max-width: 767px )" ).matches ||
window.matchMedia( "( max-width: 1024px )" ).matches ||
( $( '.elementor-element-' + id ).hasClass( 'uael-submenu-open-click' ) && window.matchMedia( "( min-width: 1025px )" ).matches )
)
)
) {
_eventClick( id );
}
if( 'horizontal' == layout && window.matchMedia( "( min-width: 977px )" ).matches){
$( '.elementor-element-' + id + ' div.uael-has-submenu-container' ).next().css( 'position', 'absolute');
}
if( 'expandible' == layout || 'flyout' == layout ){
_toggleClick( id );
}else if ( 'vertical' == layout || 'horizontal' == layout ) {
const element = $( '.elementor-element-' + id );
const isMobile = window.matchMedia( "( max-width: 767px )" ).matches;
const isTablet = window.matchMedia( "( max-width: 1024px )" ).matches;
if( ( isMobile && ( element.hasClass('uael-nav-menu__breakpoint-tablet') || element.hasClass('uael-nav-menu__breakpoint-mobile')) ) || ( isTablet && element.hasClass('uael-nav-menu__breakpoint-tablet') ) ){
_toggleClick( id );
}
}
_borderClass( id, cta_classes );
});
var submenu_parent_template = $scope.find( '.sub-menu.parent-has-template' );
submenu_parent_template.css( 'box-shadow', 'none' );
submenu_parent_template.css( 'border', 'none' );
submenu_parent_template.css( 'border-radius', '0' );
var padd = $( '.elementor-element-' + id + ' ul.sub-menu li a' ).css( 'paddingLeft' );
padd = parseFloat( padd );
padd = padd + 20;
$( '.elementor-element-' + id + ' ul.sub-menu li a.uael-sub-menu-item' ).css( 'paddingLeft', padd + 'px' );
//Top Distance functionality
var parent_settings = parent.data('settings');
if ( parent_settings && parent_settings.distance_from_menu ) {
var top_value = parent_settings.distance_from_menu.size + 'px';
var style_tag = document.createElement('style');
style_tag.innerHTML = `
nav ul li.menu-item ul.sub-menu::before {
height: ${top_value};
top: -${top_value};
}
`;
document.head.appendChild(style_tag);
}
// Acessibility functions
var submenu_container = $scope.find( '.parent-has-child .uael-has-submenu-container a' );
var nav_toggle = $scope.find( '.uael-nav-menu__toggle' );
submenu_container.attr( 'aria-haspopup', 'true' );
submenu_container.attr( 'aria-expanded', 'false' );
nav_toggle.attr( 'aria-haspopup', 'true' );
nav_toggle.attr( 'aria-expanded', 'false' );
if ( window.matchMedia( "( max-width: 1024px )" ).matches && $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-tablet') ) {
nav_toggle.find('i').attr('aria-hidden', 'false');
}
if ( window.matchMedia( "( max-width: 767px )" ).matches && $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile') ) {
nav_toggle.find('i').attr('aria-hidden', 'false');
}
// End of accessibility functions
$( document ).trigger( 'uael_nav_menu_init', id );
$( '.elementor-element-' + id + ' div.uael-has-submenu-container' ).on( 'keyup', function(e){
var $this = $( this );
var $parent_div = $this.parent();
if( $parent_div.hasClass( 'menu-active' ) ) {
$parent_div.removeClass( 'menu-active' );
$parent_div.next().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
$parent_div.prev().find('ul').css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
$parent_div.next().find( 'div.uael-has-submenu-container' ).removeClass( 'sub-menu-active' );
$parent_div.prev().find( 'div.uael-has-submenu-container' ).removeClass( 'sub-menu-active' );
}else {
$parent_div.next().find('ul').css( { 'height': '0', 'opacity': '0', 'visibility': 'hidden' } );
$parent_div.prev().find('ul').css( { 'height': '0', 'opacity': '0', 'visibility': 'hidden' } );
$parent_div.next().find( 'div.uael-has-submenu-container' ).removeClass( 'sub-menu-active' );
$parent_div.prev().find( 'div.uael-has-submenu-container' ).removeClass( 'sub-menu-active' );
$parent_div.siblings().find( '.uael-has-submenu-container a' ).attr( 'aria-expanded', 'false' );
$parent_div.next().removeClass( 'menu-active' );
$parent_div.prev().removeClass( 'menu-active' );
event.preventDefault();
$parent_div.addClass( 'menu-active' );
if( 'horizontal' !== layout || ( 'horizontal' == layout && $( '.elementor-element-' + id ).hasClass( 'uael-submenu-open-click' ) && window.matchMedia( "( min-width: 1025px )" ).matches ) ){
$this.addClass( 'sub-menu-active' );
}
$this.find( 'a' ).attr( 'aria-expanded', 'true' );
$this.next().css( { 'visibility': 'visible', 'height': 'auto', 'opacity': '1' } );
if ( 'horizontal' !== layout || ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile')) ) ) {
$this.next().css( 'position', 'relative');
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches ) {
if ( $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-tablet') ) {
$this.next().css( 'position', 'relative');
} else if ( $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-none') ) {
$this.next().css( 'position', 'absolute');
}
} else if( 'horizontal' == layout && $( '.elementor-element-' + id ).hasClass( 'uael-submenu-open-click' ) && window.matchMedia( "( min-width: 1025px )" ).matches ){
$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.siblings().removeClass( 'menu-active' );
$this.next().find( 'div.uael-has-submenu-container' ).removeClass( 'sub-menu-active' );
$this.prev().find( 'div.uael-has-submenu-container' ).removeClass( 'sub-menu-active' );
$this.next().find('ul').css( { 'height': '0', 'opacity': '0', 'visibility': 'hidden' } );
$this.prev().find('ul').css( { 'height': '0', 'opacity': '0', 'visibility': 'hidden' } );
});
};
function _openMenu( id ) {
var $flyout_content = $( '#uael-flyout-content-id-' + id );
var layout = $( '#uael-flyout-content-id-' + id ).data( 'layout' );
var layout_type = $( '#uael-flyout-content-id-' + id ).data( 'flyout-type' );
var wrap_width = $flyout_content.width() + 'px';
var container = $( '.elementor-element-' + id + ' .uael-flyout-container .uael-side.uael-flyout-' + layout );
$( '.elementor-element-' + id + ' .uael-flyout-overlay' ).fadeIn( 100 );
if( 'left' == layout ) {
$( 'body' ).css( 'margin-left' , '0' );
container.css( 'left', '0' );
if( 'push' == layout_type ) {
$( 'body' ).addClass( 'uael-flyout-animating' ).css({
position: 'absolute',
width: '100%',
'margin-left' : wrap_width,
'margin-right' : 'auto'
});
}
} else {
$( 'body' ).css( 'margin-right', '0' );
container.css( 'right', '0' );
if( 'push' == layout_type ) {
$( 'body' ).addClass( 'uael-flyout-animating' ).css({
position: 'absolute',
width: '100%',
'margin-left' : '-' + wrap_width,
'margin-right' : 'auto',
});
}
}
}
function _closeMenu( id ) {
var $flyout_content = $( '#uael-flyout-content-id-' + id );
var layout = $flyout_content.data( 'layout' );
var wrap_width = $flyout_content.width() + 'px';
var layout_type = $flyout_content.data( 'flyout-type' );
var container = $( '.elementor-element-' + id + ' .uael-flyout-container .uael-side.uael-flyout-' + layout );
$( '.elementor-element-' + id + ' .uael-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( 'uael-flyout-animating' ).css({
width: '',
});
});
}
} else {
container.css( 'right', '-' + wrap_width );
if( 'push' == layout_type ) {
$( 'body' ).css({
position: '',
'margin-right' : '',
'margin-left' : '',
});
setTimeout( function() {
$( 'body' ).removeClass( 'uael-flyout-animating' ).css({
width: '',
});
});
}
}
}
function _eventClick( id ){
var layout = $( '.elementor-element-' + id + ' .uael-nav-menu' ).data( 'layout' );
$( '.elementor-element-' + id + ' div.uael-has-submenu-container' ).off( 'click' ).on( 'click', function( event ) {
var $this = $( this );
var $next_item = $this.next();
if( $( '.elementor-element-' + id ).hasClass( 'uael-link-redirect-child' ) ) {
if( $this.hasClass( 'sub-menu-active' ) ) {
if( ! $next_item.hasClass( 'sub-menu-open' ) ) {
$this.find( 'a' ).attr( 'aria-expanded', 'false' );
if( 'horizontal' !== layout ){
event.preventDefault();
$next_item.css( 'position', 'relative' );
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile'))) {
event.preventDefault();
$next_item.css( 'position', 'relative' );
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches && ( $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile'))) {
event.preventDefault();
$next_item.css( 'position', 'relative' );
} else if( 'horizontal' == layout && $( '.elementor-element-' + id ).hasClass( 'uael-submenu-open-click' ) && window.matchMedia( "( min-width: 1025px )" ).matches ){
event.preventDefault();
$next_item.css( 'position', 'absolute' );
}
$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 ){
$next_item.css( 'position', 'relative' );
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile'))) {
$next_item.css( 'position', 'relative' );
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches && ( $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile'))) {
$next_item.css( 'position', 'absolute' );
} else if( 'horizontal' == layout && $( '.elementor-element-' + id ).hasClass( 'uael-submenu-open-click' ) && window.matchMedia( "( min-width: 1025px )" ).matches ) {
$next_item.css( 'position', 'absolute' );
}
}
} else {
var siblings = $( '.elementor-element-' + id ).find( 'div.uael-has-submenu-container' );
if( $( this ).parent().parent().hasClass( 'uael-nav-menu' ) && 'horizontal' == layout && (
( window.matchMedia( "( min-width: 1025px )" ).matches && $( '.elementor-element-' + id ).hasClass( 'uael-submenu-open-click' ) ) ||
( window.matchMedia( "( min-width: 768px )" ).matches && ( $( '.elementor-element-' + id ).hasClass( 'uael-nav-menu__breakpoint-mobile' ) || $( '.elementor-element-' + id ).hasClass( 'uael-nav-menu__breakpoint-none' ) ) ) ||
( window.matchMedia( "( max-width: 767px )" ).matches && $( '.elementor-element-' + id ).hasClass( 'uael-nav-menu__breakpoint-none' ) )
) ){
siblings.find( 'a' ).attr( 'aria-expanded', 'false' );
siblings.removeClass( 'sub-menu-active' );
siblings.next().removeClass( 'sub-menu-open' );
siblings.next().css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
}
$this.find( 'a' ).attr( 'aria-expanded', 'true' );
if ( 'horizontal' !== layout ) {
event.preventDefault();
$next_item.css( 'position', 'relative');
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 767px )" ).matches && ($( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile'))) {
event.preventDefault();
$next_item.css( 'position', 'relative');
} else if ( 'horizontal' === layout && window.matchMedia( "( max-width: 1024px )" ).matches ) {
event.preventDefault();
if ( $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-tablet') ) {
$next_item.css( 'position', 'relative');
} else if ( $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-none') ) {
$next_item.css( 'position', 'absolute');
}
} else if( 'horizontal' == layout && $( '.elementor-element-' + id ).hasClass( 'uael-submenu-open-click' ) && window.matchMedia( "( min-width: 1025px )" ).matches ){
$next_item.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 + ' .uael-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('uael-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('uael-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('uael-nav-menu__breakpoint-tablet') ) {
$this.parent().parent().next().css( 'position', 'relative');
} else if ( $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-none') ) {
$this.parent().parent().next().css( 'position', 'absolute');
}
} else if( 'horizontal' == layout && $( '.elementor-element-' + id ).hasClass( 'uael-submenu-open-click' ) && window.matchMedia( "( min-width: 1025px )" ).matches ){
$this.parent().parent().next().css( 'position', 'absolute');
}
}else {
event.preventDefault();
var siblings = $( '.elementor-element-' + id ).find( 'div.uael-has-submenu-container' );
if( $( this ).parent().parent().hasClass( 'uael-nav-menu' ) && 'horizontal' == layout && (
( window.matchMedia( "( min-width: 1025px )" ).matches && $( '.elementor-element-' + id ).hasClass( 'uael-submenu-open-click' ) ) ||
( window.matchMedia( "( min-width: 768px )" ).matches && ( $( '.elementor-element-' + id ).hasClass( 'uael-nav-menu__breakpoint-mobile' ) || $( '.elementor-element-' + id ).hasClass( 'uael-nav-menu__breakpoint-none' ) ) ) ||
( window.matchMedia( "( max-width: 767px )" ).matches && $( '.elementor-element-' + id ).hasClass( 'uael-nav-menu__breakpoint-none' ) )
) ){
siblings.removeClass( 'menu-active' );
siblings.next().css( { 'visibility': 'hidden', 'opacity': '0', 'height': '0' } );
}
$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('uael-nav-menu__breakpoint-tablet') || $( '.elementor-element-' + id ).hasClass('uael-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('uael-nav-menu__breakpoint-tablet') ) {
$this.parent().parent().next().css( 'position', 'relative');
} else if ( $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-none') ) {
$this.parent().parent().next().css( 'position', 'absolute');
}
} else if( 'horizontal' == layout && $( '.elementor-element-' + id ).hasClass( 'uael-submenu-open-click' ) && window.matchMedia( "( min-width: 1025px )" ).matches ){
$this.parent().parent().next().css( 'position', 'absolute');
}
}
});
}
function _sizeCal( id ){
$( '.elementor-element-' + id + ' li.menu-item' ).each( function() {
var $this = $( this );
var sub_menu = $this.find( 'ul.sub-menu' );
var dropdown_width = $this.data('dropdown-width');
var dropdown_pos = $this.data('dropdown-pos');
var win_width = $( window ).width();
if ( 'column' == dropdown_width ){
var closeset_column = $( '.elementor-element-' + id).closest('.elementor-column');
if ( 0 == closeset_column.length ) {
var closeset_column = $( '.elementor-element-' + id).closest('.e-con--column');
if ( 0 == closeset_column.length ) {
var closeset_column = $( '.elementor-element-' + id).closest('.e-con');
}
}
var width = closeset_column.outerWidth();
if( $( 'body' ).hasClass( 'rtl' ) ) {
var column_right = ( win_width - ( closeset_column.offset().left + closeset_column.outerWidth() ) );
var template_right = ( win_width - ( $this.offset().left + $this.outerWidth() ) );
var col_pos = column_right - template_right;
sub_menu.css( 'right', col_pos + 'px' );
} else {
var col_pos = closeset_column.offset().left - $this.offset().left;
sub_menu.css('left', col_pos + 'px' );
}
sub_menu.css('width', width + 'px' );
}else if ('section' == dropdown_width) {
var closest_section = $( '.elementor-element-' + id).closest('.elementor-section');
if ( 0 == closest_section.length ) {
$('div[data-elementor-type="header"] > div[data-element_type="container"]:first-child').addClass('elementor-section');
var closest_section = $( '.elementor-element-' + id).closest('.elementor-section');
}
var width = closest_section.outerWidth();
sub_menu.css('width', width + 'px' );
if ( closest_section && $this ) {
if ( $( 'body' ).hasClass( 'rtl' ) ) {
var sec_right = closest_section.offset() ? (win_width - (closest_section.offset().left + closest_section.outerWidth())) : 0;
var template_right = $this.offset() ? (win_width - ($this.offset().left + $this.outerWidth())) : 0;
var sec_pos = sec_right - template_right;
sub_menu.css( 'right', sec_pos + 'px' );
} else {
var sec_pos = closest_section.offset() && $this.offset() ? (closest_section.offset().left - $this.offset().left) : 0;
sub_menu.css( 'left', sec_pos + 'px' );
}
}
}else if ( 'widget' == dropdown_width ){
var nav_widget = $('.elementor-element-' + id + '.elementor-widget-uael-nav-menu');
var width = nav_widget.outerWidth();
if( $( 'body' ).hasClass( 'rtl' ) ) {
var widget_right = ( win_width - ( nav_widget.offset().left + nav_widget.outerWidth() ) );
var template_right = ( win_width - ( $this.offset().left + $this.outerWidth() ) );
var widget_pos = widget_right - template_right;
sub_menu.css( 'right', widget_pos + 'px' );
} else {
var widget_pos = nav_widget.offset().left - $this.offset().left;
sub_menu.css( 'left', widget_pos + 'px' );
}
sub_menu.css('width', width + 'px' );
}else if ('container' == dropdown_width) {
var container = $( '.elementor-element-' + id).closest('.elementor-container');
if ( 0 == container.length ) {
$('div[data-elementor-type="header"] > div[data-element_type="container"]:first-child').addClass('elementor-container');
var container = $( '.elementor-element-' + id).closest('.elementor-container');
}
var width = container.outerWidth();
if ( container && $this ){
if( $( 'body' ).hasClass( 'rtl' ) ) {
var container_right = container.offset() ? ( win_width - ( container.offset().left + container.outerWidth() ) ) : 0;
var template_right = $this.offset() ? ( win_width - ( $this.offset().left + $this.outerWidth() ) ) : 0;
var widget_pos = container_right - template_right;
sub_menu.css( 'right', widget_pos + 'px' );
} else {
var cont_pos = container.offset() && $this.offset() ? ( container.offset().left - $this.offset().left ) : 0;
sub_menu.css( 'left', cont_pos + 'px' );
}
sub_menu.css( 'width', width + 'px' );
}
}
if('center' == dropdown_pos && ( 'default' == dropdown_width || 'custom' == dropdown_width) ) {
var parent = $this.find('.uael-has-submenu-container').outerWidth();
var section_width = sub_menu.outerWidth();
var left_pos = ( section_width - parent );
left_pos = left_pos / 2;
if( $( 'body' ).hasClass( 'rtl' ) ) {
sub_menu.css('right', '-' + left_pos + 'px');
} else {
sub_menu.css('left', '-' + left_pos + 'px');
}
}else if ('right' == dropdown_pos && ( 'default' == dropdown_width || 'custom' == dropdown_width) ) {
sub_menu.css('left', 'auto');
sub_menu.css('right', '0');
}
else if ('left' == dropdown_pos && ( 'default' == dropdown_width || 'custom' == dropdown_width) && $( 'body' ).hasClass( 'rtl' ) ) {
sub_menu.css('right', 'auto');
sub_menu.css('left', '0');
}
});
}
function _borderClass( id, cta_classes ){
var parent = $( '.elementor-element-' + id );
var last_item = parent.find('.uael-nav-menu' ).data( 'last-item' );
var last_item_flyout = parent.find('.uael-flyout-wrapper' ).data( 'last-item' );
var layout = parent.find('.uael-nav-menu' ).data( 'layout' );
var last_menu_item = parent.find('li.menu-item:last-child a.uael-menu-item' );
var nav_element = $( '.elementor-element-' + id + ' nav');
nav_element.removeClass('uael-dropdown');
if ( window.matchMedia( "( max-width: 767px )" ).matches ) {
if( $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-mobile') || $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-tablet')){
nav_element.addClass('uael-dropdown');
if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
cta_classes._removeClassesCta();
}
}else{
nav_element.removeClass('uael-dropdown');
if( ( 'cta' == last_item || 'cta' == last_item_flyout ) && 'expandible' != layout ){
cta_classes._addClassesCta();
}
}
}else if ( window.matchMedia( "( max-width: 1024px )" ).matches ) {
if( $( '.elementor-element-' + id ).hasClass('uael-nav-menu__breakpoint-tablet') ) {
nav_element.addClass('uael-dropdown');
if (('cta' == last_item || 'cta' == last_item_flyout) && 'expandible' != layout) {
cta_classes._removeClassesCta();
}
} else {
nav_element.removeClass('uael-dropdown');
if (('cta' == last_item || 'cta' == last_item_flyout) && 'expandible' != layout) {
cta_classes._addClassesCta();
}
}
} else {
if (('cta' == last_item || 'cta' == last_item_flyout) && 'expandible' != layout) {
cta_classes._addClassesCta();
}
}
}
function _toggleClick( id ){
var nav_toggle = $( '.elementor-element-' + id + ' .uael-nav-menu__toggle' );
var nav_toggle_next = nav_toggle.next();
var element = $( '.elementor-element-' + id );
if ( nav_toggle.hasClass( 'uael-active-menu-full-width' ) ) {
nav_toggle_next.css( 'left', '0' );
var closestSection = element.closest('.elementor-section');
if ( 0 == closestSection.length ) {
var width = closestSection.outerWidth();
var sectionOffset = closestSection.offset();
var navToggleNextOffset = nav_toggle_next.offset().left;
if ( sectionOffset && navToggleNextOffset ) {
var sec_pos = sectionOffset.left - navToggleNextOffset.left;
nav_toggle_next.css( 'width', width + 'px' );
nav_toggle_next.css( 'left', sec_pos + 'px' );
}
}
}
nav_toggle.off( 'click keyup' ).on( 'click keyup', function( event ) {
var $this = $( this );
var $selector = $this.next();
var $element = $( '.elementor-element-' + id );
var $nav_element = $( '.elementor-element-' + id + ' nav' );
if ( $this.hasClass( 'uael-active-menu' ) ) {
var full_width = $selector.data( 'full-width' );
var toggle_icon = $nav_element.data( 'toggle-icon' );
$element.find( '.uael-nav-menu-icon' ).html( toggle_icon );
$this.removeClass( 'uael-active-menu' );
$this.attr( 'aria-expanded', 'false' );
if ( 'yes' == full_width ){
$this.removeClass( 'uael-active-menu-full-width' );
$selector.css( 'width', 'auto' );
$selector.css( 'left', '0' );
$selector.css( 'z-index', '0' );
}
} else {
var full_width = $selector.data( 'full-width' );
var close_icon = $nav_element.data( 'close-icon' );
$element.find( '.uael-nav-menu-icon' ).html( close_icon );
$this.addClass( 'uael-active-menu' );
$this.attr( 'aria-expanded', 'true' );
if ( 'yes' == full_width ){
$this.addClass( 'uael-active-menu-full-width' );
var $element_section_cont = $element.closest('.elementor-section, .e-con-boxed');
if (0 == $element_section_cont.length){
$element_section_cont = $element.closest('.e-con');
}
var width = $element_section_cont.outerWidth();
var sec_pos = $element_section_cont.offset().left - $selector.offset().left;
$selector.css( 'width', width + 'px' );
$selector.css( 'left', sec_pos + 'px' );
$selector.css( 'z-index', '9999' );
}
}
if( $nav_element.hasClass( 'menu-is-active' ) ) {
$nav_element.removeClass( 'menu-is-active' );
}else {
$nav_element.addClass( 'menu-is-active' );
}
} );
}
function _handleSinglePageMenu( id, layout ) {
$( '.elementor-element-' + id + ' ul.uael-nav-menu li a' ).on(
'click',
function ( event ) {
var $this = $( this );
var link = $this.attr( 'href' );
var linkValue = '';
var menuToggle = $( '.elementor-element-' + id + ' .uael-nav-menu__toggle' );
var subToggle = $( '.elementor-element-' + id + ' .uael-menu-toggle' );
if ( link.includes( '#' ) && link.charAt(0) === '#' ) { // Check if the link is an anchor link.
event.preventDefault(); // Prevent page refresh for anchor links.
var index = link.indexOf( '#' );
linkValue = link.slice( index + 1 );
}
if ( linkValue.length > 0 ) {
var targetSection = $( '#' + linkValue );
if ( targetSection.length ) { // Check if the target section exists.
$('html, body').animate({
scrollTop: targetSection.offset().top
}, 800);
}
if ( 'expandible' == layout ) {
menuToggle.trigger( "click" );
if ($this.hasClass( 'uael-sub-menu-item' )) {
subToggle.trigger( "click" );
}
} else {
if ( window.matchMedia( '(max-width: 1024px)' ).matches && ( 'horizontal' == layout || 'vertical' == layout ) ) {
menuToggle.trigger( "click" );
if ($this.hasClass( 'uael-sub-menu-item' )) {
subToggle.trigger( "click" );
}
} else {
if ($this.hasClass( 'uael-sub-menu-item' )) {
_closeMenu( id );
subToggle.trigger( "click" );
}
_closeMenu( id );
}
}
}
}
);
}
$( document ).on( 'uael_nav_menu_init', function( e, id ){
_sizeCal( id );
});
$( window ).on( 'elementor/frontend/init', function () {
elementorFrontend.hooks.addAction( 'frontend/element_ready/uael-nav-menu.default', WidgetUAELNavMenuHandler );
});
} )( jQuery );