403Webshell
Server IP : 198.38.94.13  /  Your IP : 216.73.217.33
Web Server : Apache
System : Linux d4744.dxb1.stableserver.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
User : revivere ( 1140)
PHP Version : 8.2.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/revivere/www/wp-content/uploads/ac_assets/fullscreen_navigation_menu/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/revivere/www/wp-content/uploads/ac_assets/fullscreen_navigation_menu/menu.js
function UCFullscreenMenu(menuWrapperID){
  
  var t = this;
  
  //classes / ids
  var g_menuWrapperID, g_subMenuClass, g_collapsedClass, g_expandedClass, g_noTransitionClass, g_listMenuClass, g_menuItemPointerClass, g_menuOpenedClass, g_isActiveCLass, g_menuItemHasChildrenClass;
  
  //selectors
  var g_subMenuSelector, g_expandedSelector, g_menuItemPointerSelector, g_checkboxToggleSelector, g_objBody, g_objHTML, g_objWindow, g_innerMenuExpandIconSelector, g_innerMenuCollapseIconSelector;
  
  //obj
  var g_objWidget, g_objInnerMenu, g_objMenuLinks, g_objListMenu, g_objMenuItemPointers, g_objMenuItemHasChildren, g_objHamburgerMenu, g_objCheckboxToggle, g_objUCHamburger, g_objUCHamburgerLink;
  
  //helpers
  var g_isIconClicked = false, g_isCloseOnOpen = false, g_isLoaded = false, g_isClickable, g_dataOpenOnHover, g_isDesktopViewport;
  
  /**
  * collapse inner section
  */
  function collapseInnerSection(element, link){    
    var sectionHeight = element.scrollHeight;    
    var elementTransition = element.style.transition;
    element.style.transition = '';    
    
    requestAnimationFrame(function() {
      element.style.height = sectionHeight + 'px';
      element.style.transition = elementTransition;      
      
      requestAnimationFrame(function() {	
        element.style.height = 0 + 'px';        
      });
    });
    
    element.setAttribute('data-collapsed', 'true');
  }
  
  /**
  * expand the inner of the section
  */
  function expandSectionInner(element){
    var sectionHeight = element.scrollHeight;
    
    element.style.height = sectionHeight + 'px';
    
    element.addEventListener('transitionend', function(e) {
      element.removeEventListener('transitionend', arguments.callee);
      element.style.height = null;
    });
    
    element.setAttribute('data-collapsed', 'false');    
  }
  
  /**
  * expand section
  */
  function expandSection(section, objLink){    
    expandSectionInner(section);
    
    section.setAttribute('data-collapsed', 'false')
    objLink.removeClass(g_collapsedClass);
    objLink.addClass(g_expandedClass);    
  }
  
  /**
  * collapse the section
  */
  function collapseSection(section, objLink){    
    collapseInnerSection(section, objLink);
    
    objLink.addClass(g_collapsedClass);
    objLink.removeClass(g_expandedClass);
  }
  
  /**
  * collapse all expanded sections
  */
  function collapseAllExpanded(clickedItem){
    var clickedParentExpanded = jQuery(clickedItem).parents(g_subMenuSelector).prev();    
    var clickedChildrenExpanded = jQuery(clickedItem).next().find(g_expandedSelector);     
    var objAllExpanded = g_objInnerMenu.find(g_expandedSelector).not(clickedChildrenExpanded).not(clickedParentExpanded);
    
    if(objAllExpanded.length == false)
      return(false);
    
    jQuery.each(objAllExpanded, function(index, link){
      var objLink = jQuery(link);
      var section = link.nextElementSibling;
      
      collapseSection(section, objLink);      
    });
  }
  
  /**
  * close or open link
  */
  function toggleSection(objLink){    
    var link = objLink[0];
    var section = link.nextElementSibling;    
    var isCollapsed = section.getAttribute('data-collapsed') === 'true';
    
    if (isCollapsed) {		//expend current      
      if(g_isCloseOnOpen == true)
        collapseAllExpanded(link);
      
      expandSection(section, objLink);      
    } else {		//collapse current      
      collapseSection(section,objLink);
    }    
  }
  
  /**
  * open or close some item
  */
  function openCloseItem(link, event){    
    var section = link.nextElementSibling;
    
    if(!section)
      return(true);
    
    var objSection = jQuery(section);
    if(objSection.hasClass(g_subMenuClass) == false)
      return(true);
    
    if(event)
      event.preventDefault();
    
    var objLink = jQuery(link);    
    var isCollapsed = section.getAttribute('data-collapsed') === 'true';
    
    if (isCollapsed) {		//expend current      
      if(g_isCloseOnOpen == true)
        collapseAllExpanded(link);
      
      expandSection(section, objLink);      
    } else {		//collapse current      
      collapseSection(section,objLink);
    }    
  }
  
  /**
  * got to item
  */
  function showExpandCollapseIcons(e, objLink){   
    toggleIcon(objLink);
    
    var url = objLink.attr("href");
    url = jQuery.trim(url);
    
    if(!url)
      return(true);
    
    var objLinkParent = objLink.parent();    
    var expandCollapsed = g_objListMenu.find(g_menuItemPointerSelector)
    var target = e.target
    
    if(expandCollapsed && expandCollapsed.length > 0 && target.className == expandCollapsed[0].className)
      return(true);
    
    if(g_isClickable == false){
      
      if(objLinkParent.hasClass(g_menuItemHasChildrenClass) == true)
        return(true)
      else
        resetMenuState();      
      
    }else{
      resetMenuState();
    }
    
    return(true);
  }
  
  /**
  * on menu item click, if sub menu, open or close
  */
  function onMenuItemClick(event){   
    openCloseItem(this, event);    
    
    var objLink = jQuery(this);
    
    showExpandCollapseIcons(event, objLink);    
  }
  
  /**
  * expand current item tree
  */
  function expandCurrentItemTree(){    
    //disable transition    
    var objCurrentItem = g_objInnerMenu.find(".current-menu-item");
    
    if(objCurrentItem.length == 0)
      return(false);
    
    g_objInnerMenu.addClass(g_noTransitionClass);
    
    setTimeout(function(){
      g_objInnerMenu.removeClass(g_noTransitionClass);
    },300);
    
    var objParents = objCurrentItem.parents("li");
    
    if(objParents.length == 0)
      return(false);
    
    jQuery.each(objParents, function(index, parent){      
      var objParent = jQuery(parent);
      var objLink = objParent.children("a");      
      var link = objLink[0];
      
      openCloseItem(link);      
    });    
  }
  
  // collapse all except the current	
  this.collapseAll = function(){    
    g_objMenuLinks.each((i, item) => {
      var objLink = jQuery(item);
      
      collapseAllExpanded(objLink[0]);		    
    });
  }  
  
  /**
  * expand all
  */
  this.expandAllAfterPageLoad = function(){
    var dataExpandAll = g_objInnerMenu.data("expandall");
    
    if(dataExpandAll == false)
      return(false);
    
    if(!g_objMenuItemHasChildren || g_objMenuItemHasChildren.length == 0)
      return(false);
    
    //disable transition temporarely
    g_objInnerMenu.addClass(g_noTransitionClass);
    setTimeout(function(){
      g_objInnerMenu.removeClass(g_noTransitionClass);
    },300);
    
    g_objMenuItemHasChildren.each(function(){
      var objItem = jQuery(this);
      var objLink = objItem.children("a");      
      var link = objLink[0];
      
      openCloseItem(link); 
    });
  }
  
  /*
  * open current page menu item
  */
  this.openCurrentPageMenuItem = function(){
    var currentLocation =  window.location.href;
    
    g_objMenuLinks.each((i, item) => {
      
      var objLink = jQuery(item);
      var section = item.nextElementSibling;  
      var objLinkItemHref = objLink.attr('href');
      
      if(currentLocation == objLinkItemHref){
        
        if(jQuery(section) && jQuery(section).length > 0)
          expandSection(section, objLink); 
        
        var objParentSection = objLink.parents(g_subMenuSelector);
        
        if(!objParentSection)
          return(true)
        
        var objParentLink = objParentSection.prev();
        
        if(!objParentLink)
          return(true)
        
        if(objParentSection && objParentSection.length > 0)
          expandSection(objParentSection[0], objParentLink);
      }    
    });    
  }  
  
  /*
  * position fixed protection from parents transform rules
  */
  function protectForFixed(){    
    //find element with position fixed css rule
    var objFixedElement = g_objInnerMenu.parents('.ue_menu');
    
    //find all parents and look at each one
    var objFixedParents = objFixedElement.parents();
    
    objFixedParents.each(function(){      
      var objFixedParent = jQuery(this);
      
      //check if parent has one of issued css rules
      var transformRule = objFixedParent.css('transform');
      
      //if transform is epsent then skip and move to another css rule
      if(transformRule == 'none')
        return(true);
      
      //if finds transform then remove it
      objFixedParent.css('transform', '');
      
      //animation-fill-mode
      var fillmodeRule = objFixedParent.css('animation-fill-mode');
      
      if(fillmodeRule == 'none')
        return(true);
      
      objFixedParent.css('animation-fill-mode', 'none');
      
      //perspective
      var perspectiveRule = objFixedParent.css('perspective');
      
      if(perspectiveRule == 'none')
        return(true);
      
      objFixedParent.css('perspective', 'none');
      
      //filter
      var filterRule = objFixedParent.css('filter');
      
      if(filterRule == 'none')
        return(true);
      
      objFixedParent.css('filter', 'none');      
    });    
  }  
  
  /**
  * on hamburger menu icon keydown
  */
  function onHamburgerKeydown(event){
    var keyCode =  event.keyCode;
    
    if(keyCode == 13 && g_objHamburgerMenu.is(":focus")){
      
      g_objCheckboxToggle.trigger("click");
    }
  }
  
  /**
  * close menu
  */
  function closeMenu(){
    g_objBody.removeClass(g_menuOpenedClass);
    g_objHTML.removeClass(g_menuOpenedClass);
    g_objWidget.removeClass(g_menuOpenedClass);
    g_objHamburgerMenu.attr("aria-expanded", false);
  }
  
  /**
  * reset menu state
  */
  function resetMenuState(){    
    g_objCheckboxToggle.prop('checked',false);    
    
    closeMenu();
    
    if(g_objUCHamburger && g_objUCHamburger.length > 0){
      g_objUCHamburger.removeClass(g_isActiveCLass);
      g_objUCHamburgerLink.removeClass(g_isActiveCLass);
    }
  }
  
  /**
  * toggle icons
  */
  function toggleIcons() {
    var objExpandIconHTML = g_objWidget.find(g_innerMenuExpandIconSelector).html();
    var objCollapseIconHTML = g_objWidget.find(g_innerMenuCollapseIconSelector).html();
    
    g_objMenuLinks.each(function() {
      var objLink = jQuery(this);
      var isLinkOpened = objLink.hasClass(g_expandedClass);
      var objLinkContainer = objLink.find(g_menuItemPointerSelector);
      
      // Update icon based on the state of the menu item
      if (isLinkOpened == true) {
        objLinkContainer.html(objCollapseIconHTML);
      } else {
        objLinkContainer.html(objExpandIconHTML);
      }
    });
  }
  
  /**
  * toggle icon for a specific link
  */
  function toggleIcon(objLink) {
    var isLinkOpened = objLink.hasClass(g_expandedClass);
    var objLinkContainer = objLink.find(g_menuItemPointerSelector);
    var objExpandIconHTML = g_objWidget.find(g_innerMenuExpandIconSelector).html();
    var objCollapseIconHTML = g_objWidget.find(g_innerMenuCollapseIconSelector).html();
    
    // Update icon based on the state of the menu item
    if (isLinkOpened) {
      objLinkContainer.html(objCollapseIconHTML);
    } else {
      objLinkContainer.html(objExpandIconHTML);
    }
    
    // Update all icons
    toggleIcons();
  }
  
  /**
  * open menu
  */
  function openMenu(){
    var dataOpenCurrentOnLoad = g_objInnerMenu.data("open-current-menu");
    
    g_objBody.addClass(g_menuOpenedClass);
    g_objHTML.addClass(g_menuOpenedClass);
    g_objWidget.addClass(g_menuOpenedClass);
    t.collapseAll();
    g_objHamburgerMenu.attr("aria-expanded", true);
    
    if(dataOpenCurrentOnLoad == true)
      objMenu.openCurrentPageMenuItem();
    
    if(g_isLoaded == false){
      t.expandAllAfterPageLoad();
    }
    
    g_isLoaded = true;                                                                                       
    
    g_objMenuLinks.each(function(){
      var objLink = jQuery(this);
      
      toggleIcon(objLink);
    });
    
    if(g_objUCHamburger && g_objUCHamburger.length > 0){
      g_objUCHamburger.addClass(g_isActiveCLass);
      g_objUCHamburgerLink.addClass(g_isActiveCLass);
    } 
  }
  
  /**
  * on checkbox toggle click
  */
  function onCheckboxToggleClick(){
    var isChecked = g_objCheckboxToggle.is(":checked");
    
    if(isChecked == true){
      openMenu();      
    }else{
      resetMenuState();      
    }  
  }
  
  /**
  * on window keydown 
  */
  function onWindowKeydown(event) {
    if(event.key == "Escape"){   
      resetMenuState();
    } 
  }
  
  /**
  * init close icon position
  */
  function initCloseIconPosition(){
    var closeIconPosition = g_objInnerMenu.data('close-position');
    
    if(closeIconPosition == 'top'){
      var scrolledDistance;
      
      g_objInnerMenu.on('scroll', function(e){          
        scrolledDistance = g_objInnerMenu.scrollTop();
        
        g_objCheckboxToggle.css({
          'transform': 'translate(0, -' + scrolledDistance + 'px)',
          'transition': 'unset'
        });
        g_objHamburgerMenu.css({
          'transform': 'translate(0, -' + scrolledDistance + 'px)',
          'transition': 'unset'
        });
      });
      
      g_objWidget.delegate(g_checkboxToggleSelector, 'click', function(){
        
        g_objCheckboxToggle.css({
          'transform': 'translate(0, 0)',
          'transition': ''
        });
        
        g_objHamburgerMenu.css({
          'transform': 'translate(0, 0)',
          'transition': ''
        });
      });
    }
  }
  
  /**
  * on mouse hover
  */
  function onMouseHover(){
    if(g_dataOpenOnHover == false)
      return(true);
    
    if(g_isDesktopViewport == false)
      return(true);
    
    var objLink = jQuery(this);
    var objLinkParent = objLink.parent();
    
    if(objLinkParent.hasClass(g_menuItemHasChildrenClass) == false)
      return(true);
    
    if(g_isClickable == true){
      if(objLink.hasClass(g_expandedClass) == true)
        return(true);
      
      var objLinkIcon = objLink.find(g_menuItemPointerSelector);
      
      objLinkIcon.trigger("click");
    }else{
      if(objLink.hasClass(g_expandedClass) == true)
        return(true);
      
      objLink.trigger("click");
    }
  } 
  
  /**
  * init exp / collase icons
  */
  function initExpandCollapseIcons(){
    var dataShowIcons = g_objInnerMenu.data("show-menuicons");
    
    if(dataShowIcons == false)
      return(false);
    
    g_objMenuLinks.each(function(){
      objLink = jQuery(this);
      
      toggleIcon(objLink);
    }); 
  }
  
  /**
  * on mouse leave
  */
  function onMouseLeave(){        
    if(g_dataOpenOnHover == false)
      return(true);
    
    if(g_isDesktopViewport == false)
      return(true);
    
    var objLinkParent = jQuery(this);
    var objLink = objLinkParent.find('> a');    
    
    if(g_isClickable == true){
      
      if(objLink.hasClass(g_collapsedClass) == true)
        return(false);
      
      var objLinkIcon = objLink.find(g_menuItemPointerSelector);
      
      setTimeout(function(){
        objLinkIcon.trigger("click");
      }, 600);
      
    }else{
      if(objLink.hasClass(g_collapsedClass) == true)
        return(false);
      
      setTimeout(function(){
        objLink.trigger("click");
      }, 600);
    }    
  }
  
  /**
  * fix for sticky parent section
  */
  function initFixForStickyParent(){
    var objParents = g_objWidget.parents();
    var ucVisibleClass = "uc-visible";
    var ucHiddenClass = "uc-hidden";
    
    objParents.each(function(){
      var objParent = jQuery(this); 
      
      if(objParent.hasClass("elementor-sticky") == true){
        var isParentVisible = objParent.is(":visible");
        
        if(isParentVisible == true){
          objParent.addClass(ucVisibleClass);
          objParent.removeClass(ucHiddenClass);
        } else{
          objParent.addClass(ucHiddenClass);
          objParent.removeClass(ucVisibleClass);
        }        
      }	      
    });
  }
  
  /**
  * init fix for safari browser
  */
  function initFixForSafari(){
    var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
    
    if (isSafari) 
      g_objWidget.closest(".e-flex.e-con-boxed.e-con.e-parent").css("overflow", "visible");    
  }
  
  /**
  * outer button click func
  */
  this.ueOpenFullscreenMenu = function(){
    openMenu(); 
  }
  
  /**
  * outer button click func
  */
  this.ueCloseFullscreenMenu = function(){
    resetMenuState(); 
  }
  
  /**
  * run the menu, init
  */
  function runMenu(menuWrapperID){    
    //classes / ids
    g_menuWrapperID = menuWrapperID;
    g_subMenuClass = "sub-menu";
    g_collapsedClass = "collapsed";
    g_expandedClass = "expanded";
    g_noTransitionClass = "uc-no-transition";
    g_listMenuClass = "uc-list-menu";
    g_menuItemPointerClass = "uc-menu-item-pointer";
    g_menuOpenedClass = "menu-opened";
    g_isActiveCLass = "is-active";
    g_menuItemHasChildrenClass = "menu-item-has-children";
    
    //selectors
    g_subMenuSelector = "."+g_subMenuClass;
    g_expandedSelector = "."+g_expandedClass;
    g_menuItemPointerSelector = "."+g_menuItemPointerClass;
    g_checkboxToggleSelector = ".checkbox-toggle";
    g_innerMenuExpandIconSelector = ".ue_inner_menu_expand_icon";
    g_innerMenuCollapseIconSelector = ".ue_inner_menu_collapse_icon";
    
    //init globals
    g_objWindow = jQuery(window);
    g_objHTML = jQuery("html");
    g_objBody = jQuery("body");
    g_objWidget = jQuery("#"+g_menuWrapperID);    
    g_objInnerMenu = g_objWidget.find(".ue_inner_menu");
    g_objListMenu = g_objWidget.find(".uc-list-menu");
    g_objMenuLinks = g_objListMenu.find("a");
    g_objHamburgerMenu = g_objWidget.find(".ue_hamburger");
    g_objCheckboxToggle = g_objWidget.find(g_checkboxToggleSelector);
    g_objUCHamburger = g_objWidget.find(".uc_hamburger");
    g_objUCHamburgerLink = g_objWidget.find(".uc_animated_hamburger_icon");    
    g_objMenuItemHasChildren = g_objListMenu.find("."+g_menuItemHasChildrenClass);
    
    //helpers
    g_isCloseOnOpen = g_objInnerMenu.data("closeothers");
    g_isCloseOnOpen = (g_isCloseOnOpen == "yes");    
    g_isClickable = g_objInnerMenu.data("clickable");
    g_dataOpenOnHover = g_objInnerMenu.data("openonhover");
    g_isDesktopViewport = window.matchMedia("(min-width: 1024px)");
    
    if(g_objWidget.length == 0){
      console.log("menu with ID: "+g_menuWrapperID+" not found!");
      
      return(false);
    }
    
    resetMenuState();
    initCloseIconPosition();
    initExpandCollapseIcons();
    initFixForSafari();
    setTimeout(initFixForStickyParent,300);
    
    jQuery(window).on("scroll", function(){
      //init fix for sticky
      setTimeout(initFixForStickyParent,100);
    });
    
    //collapse all except the current    
    g_objMenuLinks.each((i, item) => {
      //add area haspopup
      var objHasChildrenLinks = g_objMenuItemHasChildren.find("> a");
      
      if(objHasChildrenLinks && objHasChildrenLinks.length > 0){
        objHasChildrenLinks.attr("aria-haspopup", "true");
      }
      
      if(item.nextElementSibling){        
        var objItem = jQuery(item);
        var iconPosition = g_objInnerMenu.data('icon-position');
        
        if(iconPosition == 'start')
          objItem.prepend("<span class='"+g_menuItemPointerClass+"'></span>");
        
        if(iconPosition == 'end')
          objItem.append("<span class='"+g_menuItemPointerClass+"'></span>");
        
        collapseInnerSection(item.nextElementSibling, item);
        
        item.nextElementSibling.style.display = "block";
        
        jQuery(item).addClass(g_collapsedClass);
        jQuery(item).removeClass(g_expandedClass);
      }      
    });
    
    g_objMenuItemPointers = g_objListMenu.find(g_menuItemPointerSelector);
    
    //init events
    
    if(g_isClickable == false){      
      g_objMenuLinks.on("click", onMenuItemClick);      
    }else{      
      //pointer click - toggle section      
      g_objMenuItemPointers.on("click", function(event){       
        g_isIconClicked = true;
        
        var objLink = jQuery(this).parent();
        
        toggleSection(objLink);
      });
      
      g_objMenuLinks.on("click", function(e){
        
        //check if icon was clicked if not make sure that no icon found in clicked link
        if(g_isIconClicked == true){
          var objIcon = jQuery(this).find(g_menuItemPointerSelector);
          
          if(objIcon && objIcon.length > 0){
            e.preventDefault();
            
            g_isIconClicked = false;
          }
        }
        
        showExpandCollapseIcons(e, jQuery(this));
      });
    }
    
    g_objHamburgerMenu.on("keydown", function(event){
      onHamburgerKeydown(event);
    });
    
    g_objWidget.delegate(g_checkboxToggleSelector, "click", onCheckboxToggleClick);
    
    g_objWindow.on("keydown", function(e) {
      onWindowKeydown(e);
    });
    
    g_objMenuLinks.on("mouseover", onMouseHover);
    g_objMenuItemHasChildren.on("mouseleave", onMouseLeave);
    
    //open the section with current item    
    setTimeout(expandCurrentItemTree,100);
    
    //protection for elements with position fixed rule    
    setTimeout(protectForFixed,2000);    
  }  
  
  this.initFullscreenMenu = function(id){
    runMenu(id);
  }
}

Youez - 2016 - github.com/yon3zu
LinuXploit