mmenu-js
Version:
The best javascript plugin for app look-alike on- and off-canvas menus with sliding submenus for your website and webapp.
116 lines (100 loc) • 3.36 kB
JavaScript
/*!
* mmenu.js
* mmenujs.com
*
* Copyright (c) Fred Heusschen
* frebsite.nl
*
* License: CC-BY-NC-4.0
* http://creativecommons.org/licenses/by-nc/4.0/
*/
// Core
import Mmenu from '../dist/core/oncanvas/mmenu.oncanvas';
// Core add-ons
import offcanvas from '../dist/core/offcanvas/mmenu.offcanvas';
import screenReader from '../dist/core/screenreader/mmenu.screenreader';
import scrollBugFix from '../dist/core/scrollbugfix/mmenu.scrollbugfix';
// Add-ons
import autoHeight from '../dist/addons/autoheight/mmenu.autoheight';
import backButton from '../dist/addons/backbutton/mmenu.backbutton';
import columns from '../dist/addons/columns/mmenu.columns';
import counters from '../dist/addons/counters/mmenu.counters';
import dividers from '../dist/addons/dividers/mmenu.dividers';
import drag from '../dist/addons/drag/mmenu.drag';
import dropdown from '../dist/addons/dropdown/mmenu.dropdown';
import fixedElements from '../dist/addons/fixedelements/mmenu.fixedelements';
import iconbar from '../dist/addons/iconbar/mmenu.iconbar';
import iconPanels from '../dist/addons/iconpanels/mmenu.iconpanels';
import keyboardNavigation from '../dist/addons/keyboardnavigation/mmenu.keyboardnavigation';
import lazySubmenus from '../dist/addons/lazysubmenus/mmenu.lazysubmenus';
import navbars from '../dist/addons/navbars/mmenu.navbars';
import pageScroll from '../dist/addons/pagescroll/mmenu.pagescroll';
import searchfield from '../dist/addons/searchfield/mmenu.searchfield';
import sectionIndexer from '../dist/addons/sectionindexer/mmenu.sectionindexer';
import setSelected from '../dist/addons/setselected/mmenu.setselected';
import sidebar from '../dist/addons/sidebar/mmenu.sidebar';
import toggles from '../dist/addons/toggles/mmenu.toggles';
// Wrappers
import angular from '../dist/wrappers/angular/mmenu.angular';
import bootstrap from '../dist/wrappers/bootstrap/mmenu.bootstrap';
import olark from '../dist/wrappers/olark/mmenu.olark';
import turbolinks from '../dist/wrappers/turbolinks/mmenu.turbolinks';
import wordpress from '../dist/wrappers/wordpress/mmenu.wordpress';
Mmenu.addons = {
// Core add-ons
offcanvas,
screenReader,
scrollBugFix,
// Add-ons
autoHeight,
backButton,
columns,
counters,
dividers,
drag,
dropdown,
fixedElements,
iconbar,
iconPanels,
keyboardNavigation,
lazySubmenus,
navbars,
pageScroll,
searchfield,
sectionIndexer,
setSelected,
sidebar,
toggles
};
// Wrappers
Mmenu.wrappers = {
angular,
bootstrap,
olark,
turbolinks,
wordpress
};
// Export module
export default Mmenu;
// Global namespace
window.Mmenu = Mmenu;
// jQuery plugin
(function($) {
if ($) {
$.fn.mmenu = function(options, configs) {
var $result = $();
this.each(function(e, element) {
// Don't proceed if the element already is a mmenu.
if (element['mmApi']) {
return;
}
let menu = new Mmenu(element, options, configs),
$menu = $(menu.node.menu);
// Store the API.
$menu.data('mmenu', menu.API);
$result = $result.add($menu);
});
return $result;
};
}
})(window.jQuery || window.Zepto || null);