from gitlab
This commit is contained in:
610
common/resources/node_modules/patternfly/dist/js/patternfly-functions-vertical-nav.js
generated
vendored
Normal file
610
common/resources/node_modules/patternfly/dist/js/patternfly-functions-vertical-nav.js
generated
vendored
Normal file
@ -0,0 +1,610 @@
|
||||
// Util: PatternFly Vertical Navigation
|
||||
// Must have navbar-toggle in navbar-pf-vertical for expand/collapse
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
$.fn.setupVerticalNavigation = function (handleItemSelections, ignoreDrawer, userOptions) {
|
||||
|
||||
var options = $.extend({
|
||||
hoverDelay: 500,
|
||||
hideDelay: 700,
|
||||
rememberOpenState: true,
|
||||
storage: 'localStorage',
|
||||
}, userOptions || {}),
|
||||
|
||||
navElement = $('.nav-pf-vertical'),
|
||||
bodyContentElement = $('.container-pf-nav-pf-vertical'),
|
||||
toggleNavBarButton = $('.navbar-toggle'),
|
||||
handleResize = true,
|
||||
explicitCollapse = false,
|
||||
subDesktop = false,
|
||||
storageLocation = options.storage === 'sessionStorage' ? 'sessionStorage' : 'localStorage',
|
||||
|
||||
inMobileState = function () {
|
||||
return bodyContentElement.hasClass('hidden-nav');
|
||||
},
|
||||
|
||||
forceResize = function (delay) {
|
||||
setTimeout(function () {
|
||||
$(window).trigger('resize');
|
||||
}, delay);
|
||||
},
|
||||
|
||||
showSecondaryMenu = function () {
|
||||
if (inMobileState() || !subDesktop) {
|
||||
navElement.addClass('secondary-visible-pf');
|
||||
bodyContentElement.addClass('secondary-visible-pf');
|
||||
}
|
||||
|
||||
// Dispatch a resize event when showing the secondary menu in non-subdesktop state to
|
||||
// allow content to adjust to the secondary menu sizing
|
||||
if (!subDesktop) {
|
||||
forceResize(100);
|
||||
}
|
||||
},
|
||||
|
||||
hideSecondaryMenu = function () {
|
||||
navElement.removeClass('secondary-visible-pf');
|
||||
bodyContentElement.removeClass('secondary-visible-pf');
|
||||
|
||||
if (navElement.find('.secondary-nav-item-pf.is-hover').length <= 1) {
|
||||
navElement.removeClass('hover-secondary-nav-pf');
|
||||
}
|
||||
|
||||
navElement.find('.mobile-nav-item-pf').each(function (index, item) {
|
||||
$(item).removeClass('mobile-nav-item-pf');
|
||||
});
|
||||
|
||||
navElement.find('.is-hover').each(function (index, item) {
|
||||
$(item).removeClass('is-hover');
|
||||
});
|
||||
},
|
||||
|
||||
hideTertiaryMenu = function () {
|
||||
navElement.removeClass('tertiary-visible-pf');
|
||||
bodyContentElement.removeClass('tertiary-visible-pf');
|
||||
|
||||
if (navElement.find('.tertiary-nav-item-pf.is-hover').length <= 1) {
|
||||
navElement.removeClass('hover-tertiary-nav-pf');
|
||||
}
|
||||
|
||||
navElement.find('.mobile-nav-item-pf').each(function (index, item) {
|
||||
$(item).removeClass('mobile-nav-item-pf');
|
||||
});
|
||||
|
||||
navElement.find('.is-hover').each(function (index, item) {
|
||||
$(item).removeClass('is-hover');
|
||||
});
|
||||
},
|
||||
|
||||
setActiveItem = function (item) {
|
||||
// remove all .active
|
||||
$('.nav-pf-vertical .list-group-item.active').removeClass('active');
|
||||
|
||||
// add .active to item and its parents
|
||||
item.addClass('active').parents('.list-group-item').addClass('active');
|
||||
},
|
||||
|
||||
updateSecondaryMenuDisplayAfterSelection = function () {
|
||||
if (inMobileState()) {
|
||||
navElement.removeClass('show-mobile-nav');
|
||||
hideSecondaryMenu();
|
||||
navElement.find('.mobile-nav-item-pf').each(function (index, item) {
|
||||
$(item).removeClass('mobile-nav-item-pf');
|
||||
});
|
||||
} else {
|
||||
showSecondaryMenu();
|
||||
}
|
||||
},
|
||||
|
||||
updateSecondaryCollapsedState = function (setCollapsed, collapsedItem) {
|
||||
if (setCollapsed) {
|
||||
collapsedItem.addClass('collapsed');
|
||||
navElement.addClass('collapsed-secondary-nav-pf');
|
||||
bodyContentElement.addClass('collapsed-secondary-nav-pf');
|
||||
} else {
|
||||
if (collapsedItem) {
|
||||
collapsedItem.removeClass('collapsed');
|
||||
} else {
|
||||
// Remove any collapsed secondary menus
|
||||
navElement.find('[data-toggle="collapse-secondary-nav"]').each(function (index, element) {
|
||||
var $e = $(element);
|
||||
$e.removeClass('collapsed');
|
||||
});
|
||||
}
|
||||
navElement.removeClass('collapsed-secondary-nav-pf');
|
||||
bodyContentElement.removeClass('collapsed-secondary-nav-pf');
|
||||
}
|
||||
},
|
||||
|
||||
updateTertiaryCollapsedState = function (setCollapsed, collapsedItem) {
|
||||
if (setCollapsed) {
|
||||
collapsedItem.addClass('collapsed');
|
||||
navElement.addClass('collapsed-tertiary-nav-pf');
|
||||
bodyContentElement.addClass('collapsed-tertiary-nav-pf');
|
||||
updateSecondaryCollapsedState(false);
|
||||
} else {
|
||||
if (collapsedItem) {
|
||||
collapsedItem.removeClass('collapsed');
|
||||
} else {
|
||||
// Remove any collapsed tertiary menus
|
||||
navElement.find('[data-toggle="collapse-tertiary-nav"]').each(function (index, element) {
|
||||
var $e = $(element);
|
||||
$e.removeClass('collapsed');
|
||||
});
|
||||
}
|
||||
navElement.removeClass('collapsed-tertiary-nav-pf');
|
||||
bodyContentElement.removeClass('collapsed-tertiary-nav-pf');
|
||||
}
|
||||
},
|
||||
|
||||
updateMobileMenu = function (selected, secondaryItem) {
|
||||
$(document).find('.list-group-item.mobile-nav-item-pf').each(function (index, item) {
|
||||
$(item).removeClass('mobile-nav-item-pf');
|
||||
});
|
||||
$(document).find('.list-group-item.mobile-secondary-item-pf').each(function (index, item) {
|
||||
$(item).removeClass('mobile-secondary-item-pf');
|
||||
});
|
||||
if (selected) {
|
||||
selected.addClass('mobile-nav-item-pf');
|
||||
if (secondaryItem) {
|
||||
secondaryItem.addClass('mobile-secondary-item-pf');
|
||||
navElement.removeClass('show-mobile-secondary');
|
||||
navElement.addClass('show-mobile-tertiary');
|
||||
} else {
|
||||
navElement.addClass('show-mobile-secondary');
|
||||
navElement.removeClass('show-mobile-tertiary');
|
||||
}
|
||||
} else {
|
||||
navElement.removeClass('show-mobile-secondary');
|
||||
navElement.removeClass('show-mobile-tertiary');
|
||||
}
|
||||
},
|
||||
|
||||
enterMobileState = function () {
|
||||
if (!navElement.hasClass('hidden')) {
|
||||
//Set the nav to being hidden
|
||||
navElement.addClass('hidden');
|
||||
navElement.removeClass('collapsed');
|
||||
|
||||
//Set the body class to the correct state
|
||||
bodyContentElement.removeClass('collapsed-nav');
|
||||
bodyContentElement.addClass('hidden-nav');
|
||||
|
||||
// Reset the collapsed states
|
||||
updateSecondaryCollapsedState(false);
|
||||
updateTertiaryCollapsedState(false);
|
||||
|
||||
explicitCollapse = false;
|
||||
}
|
||||
},
|
||||
|
||||
exitMobileState = function () {
|
||||
// Always remove the hidden & peek class
|
||||
navElement.removeClass('hidden show-mobile-nav');
|
||||
|
||||
// Set the body class back to the default
|
||||
bodyContentElement.removeClass('hidden-nav');
|
||||
},
|
||||
|
||||
checkNavState = function () {
|
||||
var width = $(window).width(), makeSecondaryVisible;
|
||||
if (!handleResize) {
|
||||
return;
|
||||
}
|
||||
// Check to see if we need to enter/exit the mobile state
|
||||
if (width < $.pfBreakpoints.tablet && !explicitCollapse) {
|
||||
enterMobileState();
|
||||
} else if (navElement.hasClass('hidden')) {
|
||||
exitMobileState();
|
||||
}
|
||||
|
||||
// Check to see if we need to enter/exit the sub desktop state
|
||||
if (width < $.pfBreakpoints.desktop) {
|
||||
if (!subDesktop) {
|
||||
// Collapse the navigation bars when entering sub desktop mode
|
||||
navElement.addClass('collapsed');
|
||||
bodyContentElement.addClass('collapsed-nav');
|
||||
}
|
||||
if (width >= $.pfBreakpoints.tablet) {
|
||||
hideSecondaryMenu();
|
||||
}
|
||||
subDesktop = true;
|
||||
} else {
|
||||
makeSecondaryVisible = subDesktop && (navElement.find('.secondary-nav-item-pf.active').length > 0);
|
||||
subDesktop = false;
|
||||
if (makeSecondaryVisible) {
|
||||
|
||||
showSecondaryMenu();
|
||||
}
|
||||
}
|
||||
|
||||
if (explicitCollapse) {
|
||||
navElement.addClass('collapsed');
|
||||
bodyContentElement.addClass('collapsed-nav');
|
||||
} else {
|
||||
navElement.removeClass('collapsed');
|
||||
bodyContentElement.removeClass('collapsed-nav');
|
||||
}
|
||||
},
|
||||
|
||||
collapseMenu = function () {
|
||||
//Make sure this is expanded
|
||||
navElement.addClass('collapsed');
|
||||
//Set the body class to the correct state
|
||||
bodyContentElement.addClass('collapsed-nav');
|
||||
|
||||
if (subDesktop) {
|
||||
hideSecondaryMenu();
|
||||
}
|
||||
|
||||
explicitCollapse = true;
|
||||
},
|
||||
|
||||
enableTransitions = function () {
|
||||
// enable transitions only when toggleNavBarButton is clicked or window is resized
|
||||
$('html').addClass('transitions');
|
||||
},
|
||||
|
||||
expandMenu = function () {
|
||||
//Make sure this is expanded
|
||||
navElement.removeClass('collapsed');
|
||||
//Set the body class to the correct state
|
||||
bodyContentElement.removeClass('collapsed-nav');
|
||||
|
||||
explicitCollapse = false;
|
||||
|
||||
// Dispatch a resize event when showing the expanding then menu to
|
||||
// allow content to adjust to the menu sizing
|
||||
if (!subDesktop) {
|
||||
forceResize(100);
|
||||
}
|
||||
},
|
||||
|
||||
bindMenuBehavior = function () {
|
||||
toggleNavBarButton.on('click', function (e) {
|
||||
var $drawer;
|
||||
|
||||
enableTransitions();
|
||||
|
||||
if (inMobileState()) {
|
||||
// Toggle the mobile nav
|
||||
if (navElement.hasClass('show-mobile-nav')) {
|
||||
navElement.removeClass('show-mobile-nav');
|
||||
} else {
|
||||
// Always start at the primary menu
|
||||
updateMobileMenu();
|
||||
navElement.addClass('show-mobile-nav');
|
||||
|
||||
// If the notification drawer is shown, hide it
|
||||
if (!ignoreDrawer) {
|
||||
$drawer = $('.drawer-pf');
|
||||
if ($drawer.length) {
|
||||
$('.drawer-pf-trigger').removeClass('open');
|
||||
$drawer.addClass('hide');
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (navElement.hasClass('collapsed')) {
|
||||
if (options.rememberOpenState) {
|
||||
window[storageLocation].setItem('patternfly-navigation-primary', 'expanded');
|
||||
}
|
||||
expandMenu();
|
||||
} else {
|
||||
if (options.rememberOpenState) {
|
||||
window[storageLocation].setItem('patternfly-navigation-primary', 'collapsed');
|
||||
}
|
||||
collapseMenu();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
forceHideSecondaryMenu = function () {
|
||||
navElement.addClass('force-hide-secondary-nav-pf');
|
||||
setTimeout(function () {
|
||||
navElement.removeClass('force-hide-secondary-nav-pf');
|
||||
}, 500);
|
||||
},
|
||||
|
||||
bindMenuItemsBehavior = function (handleSelection) {
|
||||
$(document).find('.nav-pf-vertical .list-group-item').each(function (index, item) {
|
||||
var onClickFn,
|
||||
$item = $(item),
|
||||
$nav = $item.closest('[class*="nav-pf-"]');
|
||||
|
||||
if ($nav.hasClass('nav-pf-vertical')) {
|
||||
// Set main nav active item on click or show secondary nav if it has a secondary nav bar and we are in the mobile state
|
||||
onClickFn = function (event) {
|
||||
var $this = $(this), $secondaryItem, $tertiaryItem, $activeItem;
|
||||
|
||||
if (!$this.hasClass('secondary-nav-item-pf')) {
|
||||
hideSecondaryMenu();
|
||||
if (inMobileState()) {
|
||||
updateMobileMenu();
|
||||
navElement.removeClass('show-mobile-nav');
|
||||
}
|
||||
if (handleSelection) {
|
||||
setActiveItem($this);
|
||||
// Don't process the click on the item
|
||||
event.stopImmediatePropagation();
|
||||
}
|
||||
} else if (inMobileState()) {
|
||||
updateMobileMenu($this);
|
||||
} else if (handleSelection) {
|
||||
$activeItem = $secondaryItem = $item.find('.nav-pf-secondary-nav > .list-group > .list-group-item').eq(0);
|
||||
|
||||
if ($secondaryItem.hasClass('tertiary-nav-item-pf')) {
|
||||
$activeItem = $secondaryItem.find('.nav-pf-tertiary-nav > .list-group > .list-group-item').eq(0);
|
||||
}
|
||||
|
||||
setActiveItem($activeItem);
|
||||
event.stopImmediatePropagation();
|
||||
}
|
||||
};
|
||||
|
||||
} else if ($nav.hasClass('nav-pf-secondary-nav')) {
|
||||
// Set secondary nav active item on click or show tertiary nav if it has a tertiary nav bar and we are in the mobile state
|
||||
onClickFn = function (event) {
|
||||
var $this = $(this), $tertiaryItem, $primaryItem;
|
||||
if (!$this.hasClass('tertiary-nav-item-pf')) {
|
||||
if (inMobileState()) {
|
||||
updateMobileMenu();
|
||||
navElement.removeClass('show-mobile-nav');
|
||||
}
|
||||
updateSecondaryMenuDisplayAfterSelection();
|
||||
if (handleSelection) {
|
||||
setActiveItem($item);
|
||||
hideSecondaryMenu();
|
||||
event.stopImmediatePropagation();
|
||||
}
|
||||
} else if (inMobileState()) {
|
||||
$primaryItem = $item.parents('.list-group-item');
|
||||
updateMobileMenu($this, $primaryItem);
|
||||
event.stopImmediatePropagation();
|
||||
} else if (handleSelection) {
|
||||
$tertiaryItem = $item.find('.nav-pf-tertiary-nav > .list-group > .list-group-item').eq(0);
|
||||
setActiveItem($tertiaryItem);
|
||||
event.stopImmediatePropagation();
|
||||
}
|
||||
};
|
||||
|
||||
} else if ($nav.hasClass('nav-pf-tertiary-nav')) {
|
||||
// Set tertiary nav active item on click
|
||||
onClickFn = function (event) {
|
||||
if (inMobileState()) {
|
||||
updateMobileMenu();
|
||||
navElement.removeClass('show-mobile-nav');
|
||||
}
|
||||
updateSecondaryMenuDisplayAfterSelection();
|
||||
if (handleSelection) {
|
||||
setActiveItem($item);
|
||||
hideTertiaryMenu();
|
||||
hideSecondaryMenu();
|
||||
event.stopImmediatePropagation();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// register event handler
|
||||
$item.on('click.pf.secondarynav.data-api', onClickFn);
|
||||
});
|
||||
|
||||
$(document).find('.secondary-nav-item-pf').each(function (index, secondaryItem) {
|
||||
var $secondaryItem = $(secondaryItem);
|
||||
|
||||
// Collapse the secondary nav bar when the toggle is clicked
|
||||
$secondaryItem.on('click.pf.secondarynav.data-api', '[data-toggle="collapse-secondary-nav"]', function (e) {
|
||||
var $this = $(this);
|
||||
if (inMobileState()) {
|
||||
updateMobileMenu();
|
||||
e.stopImmediatePropagation();
|
||||
} else {
|
||||
if ($this.hasClass('collapsed')) {
|
||||
if (options.rememberOpenState) {
|
||||
window[storageLocation].setItem('patternfly-navigation-secondary', 'expanded');
|
||||
window[storageLocation].setItem('patternfly-navigation-tertiary', 'expanded');
|
||||
}
|
||||
updateSecondaryCollapsedState(false, $this);
|
||||
forceHideSecondaryMenu();
|
||||
} else {
|
||||
if (options.rememberOpenState) {
|
||||
window[storageLocation].setItem('patternfly-navigation-secondary', 'collapsed');
|
||||
}
|
||||
updateSecondaryCollapsedState(true, $this);
|
||||
}
|
||||
}
|
||||
navElement.removeClass('hover-secondary-nav-pf');
|
||||
if (handleSelection) {
|
||||
// Don't process the click on the parent item
|
||||
e.stopImmediatePropagation();
|
||||
}
|
||||
});
|
||||
|
||||
$secondaryItem.find('.tertiary-nav-item-pf').each(function (index, primaryItem) {
|
||||
var $primaryItem = $(primaryItem);
|
||||
// Collapse the tertiary nav bar when the toggle is clicked
|
||||
$primaryItem.on('click.pf.tertiarynav.data-api', '[data-toggle="collapse-tertiary-nav"]', function (e) {
|
||||
var $this = $(this);
|
||||
if (inMobileState()) {
|
||||
updateMobileMenu($secondaryItem);
|
||||
e.stopImmediatePropagation();
|
||||
} else {
|
||||
if ($this.hasClass('collapsed')) {
|
||||
if (options.rememberOpenState) {
|
||||
window[storageLocation].setItem('patternfly-navigation-secondary', 'expanded');
|
||||
window[storageLocation].setItem('patternfly-navigation-tertiary', 'expanded');
|
||||
}
|
||||
updateTertiaryCollapsedState(false, $this);
|
||||
forceHideSecondaryMenu();
|
||||
} else {
|
||||
if (options.rememberOpenState) {
|
||||
window[storageLocation].setItem('patternfly-navigation-tertiary', 'collapsed');
|
||||
}
|
||||
updateTertiaryCollapsedState(true, $this);
|
||||
}
|
||||
}
|
||||
navElement.removeClass('hover-secondary-nav-pf');
|
||||
navElement.removeClass('hover-tertiary-nav-pf');
|
||||
if (handleSelection) {
|
||||
// Don't process the click on the parent item
|
||||
e.stopImmediatePropagation();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Show secondary nav bar on hover of secondary nav items
|
||||
$(document).on('mouseenter.pf.tertiarynav.data-api', '.secondary-nav-item-pf', function (e) {
|
||||
var $this = $(this);
|
||||
if (!inMobileState()) {
|
||||
if ($this[0].navUnHoverTimeout !== undefined) {
|
||||
clearTimeout($this[0].navUnHoverTimeout);
|
||||
$this[0].navUnHoverTimeout = undefined;
|
||||
} else if ($this[0].navHoverTimeout === undefined) {
|
||||
$this[0].navHoverTimeout = setTimeout(function () {
|
||||
navElement.addClass('hover-secondary-nav-pf');
|
||||
$this.addClass('is-hover');
|
||||
$this[0].navHoverTimeout = undefined;
|
||||
}, options.hoverDelay);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('mouseleave.pf.tertiarynav.data-api', '.secondary-nav-item-pf', function (e) {
|
||||
var $this = $(this);
|
||||
if ($this[0].navHoverTimeout !== undefined) {
|
||||
clearTimeout($this[0].navHoverTimeout);
|
||||
$this[0].navHoverTimeout = undefined;
|
||||
} else if ($this[0].navUnHoverTimeout === undefined &&
|
||||
navElement.find('.secondary-nav-item-pf.is-hover').length > 0) {
|
||||
$this[0].navUnHoverTimeout = setTimeout(function () {
|
||||
if (navElement.find('.secondary-nav-item-pf.is-hover').length <= 1) {
|
||||
navElement.removeClass('hover-secondary-nav-pf');
|
||||
}
|
||||
$this.removeClass('is-hover');
|
||||
$this[0].navUnHoverTimeout = undefined;
|
||||
}, options.hideDelay);
|
||||
}
|
||||
});
|
||||
|
||||
// Show tertiary nav bar on hover of secondary nav items
|
||||
$(document).on('mouseover.pf.tertiarynav.data-api', '.tertiary-nav-item-pf', function (e) {
|
||||
var $this = $(this);
|
||||
if (!inMobileState()) {
|
||||
if ($this[0].navUnHoverTimeout !== undefined) {
|
||||
clearTimeout($this[0].navUnHoverTimeout);
|
||||
$this[0].navUnHoverTimeout = undefined;
|
||||
} else if ($this[0].navHoverTimeout === undefined) {
|
||||
$this[0].navHoverTimeout = setTimeout(function () {
|
||||
navElement.addClass('hover-tertiary-nav-pf');
|
||||
$this.addClass('is-hover');
|
||||
$this[0].navHoverTimeout = undefined;
|
||||
}, options.hoverDelay);
|
||||
}
|
||||
}
|
||||
});
|
||||
$(document).on('mouseout.pf.tertiarynav.data-api', '.tertiary-nav-item-pf', function (e) {
|
||||
var $this = $(this);
|
||||
if ($this[0].navHoverTimeout !== undefined) {
|
||||
clearTimeout($this[0].navHoverTimeout);
|
||||
$this[0].navHoverTimeout = undefined;
|
||||
} else if ($this[0].navUnHoverTimeout === undefined) {
|
||||
$this[0].navUnHoverTimeout = setTimeout(function () {
|
||||
if (navElement.find('.tertiary-nav-item-pf.is-hover').length <= 1) {
|
||||
navElement.removeClass('hover-tertiary-nav-pf');
|
||||
}
|
||||
$this.removeClass('is-hover');
|
||||
$this[0].navUnHoverTimeout = undefined;
|
||||
}, options.hideDelay);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
loadFromLocalStorage = function () {
|
||||
if (inMobileState()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (window[storageLocation].getItem('patternfly-navigation-primary') === 'collapsed') {
|
||||
collapseMenu();
|
||||
}
|
||||
|
||||
if ($('.nav-pf-vertical.nav-pf-vertical-collapsible-menus').length > 0) {
|
||||
if (window[storageLocation].getItem('patternfly-navigation-secondary') === 'collapsed') {
|
||||
updateSecondaryCollapsedState(true, $('.secondary-nav-item-pf.active [data-toggle=collapse-secondary-nav]'));
|
||||
}
|
||||
|
||||
if (window[storageLocation].getItem('patternfly-navigation-tertiary') === 'collapsed') {
|
||||
updateTertiaryCollapsedState(true, $('.tertiary-nav-item-pf.active [data-toggle=collapse-tertiary-nav]'));
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
setTooltips = function () {
|
||||
var tooltipOptions = {
|
||||
container: 'body',
|
||||
placement: 'bottom',
|
||||
delay: { 'show': '500', 'hide': '200' },
|
||||
template: '<div class="nav-pf-vertical-tooltip tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
||||
};
|
||||
$('.nav-pf-vertical [data-toggle="tooltip"]').tooltip(tooltipOptions);
|
||||
|
||||
$('.nav-pf-vertical').on("show.bs.tooltip", function (e) {
|
||||
return $(this).hasClass("collapsed");
|
||||
});
|
||||
},
|
||||
|
||||
init = function (handleItemSelections) {
|
||||
// Hide the nav menus during initialization
|
||||
navElement.addClass('hide-nav-pf');
|
||||
bodyContentElement.addClass('hide-nav-pf');
|
||||
|
||||
//Set correct state on load
|
||||
checkNavState();
|
||||
|
||||
// Bind Top level hamburger menu with menu behavior;
|
||||
bindMenuBehavior();
|
||||
|
||||
// Bind menu items
|
||||
bindMenuItemsBehavior(handleItemSelections);
|
||||
|
||||
//Set tooltips
|
||||
setTooltips();
|
||||
|
||||
if (options.rememberOpenState) {
|
||||
loadFromLocalStorage();
|
||||
}
|
||||
|
||||
// Show the nav menus
|
||||
navElement.removeClass('hide-nav-pf');
|
||||
bodyContentElement.removeClass('hide-nav-pf');
|
||||
forceResize(250);
|
||||
},
|
||||
|
||||
self = {
|
||||
hideMenu: function () {
|
||||
handleResize = false;
|
||||
enterMobileState();
|
||||
},
|
||||
showMenu: function () {
|
||||
handleResize = true;
|
||||
exitMobileState();
|
||||
},
|
||||
isVisible: function () {
|
||||
return handleResize;
|
||||
}
|
||||
};
|
||||
|
||||
if (!$.fn.setupVerticalNavigation.self) {
|
||||
$.fn.setupVerticalNavigation.self = self;
|
||||
//Listen for the window resize event and collapse/hide as needed
|
||||
$(window).on('resize', function () {
|
||||
checkNavState();
|
||||
enableTransitions();
|
||||
});
|
||||
|
||||
init(handleItemSelections);
|
||||
}
|
||||
return $.fn.setupVerticalNavigation.self;
|
||||
};
|
||||
}(jQuery));
|
Reference in New Issue
Block a user