Current state

This commit is contained in:
2026-02-07 08:23:18 +01:00
commit 0a4372c40d
22479 changed files with 1553543 additions and 0 deletions

6
public/js/mmenu/.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
# Ignore Mac system files.
._*
# Ignore sass-cache files.
*.sass-cache*
*.scssc

123
public/js/mmenu/Guardfile Normal file
View File

@@ -0,0 +1,123 @@
# Guardfile for the jQuery mmenu plugin javascript files.
# Basically, all non-minified files in the "src/js" directory are minified in the "dist/js" directory.
# For some reason, uglify only seems to work if the input and output is the same file.
# Therefor, we need to copy the contents from the original files to the minified files (using concat) before they can be minified.
# IMHO, this is pretty idiotic.
# Minify core functionality (on canvas)
guard :concat, type: "js", files: %w(jquery.mmenu.oncanvas), input_dir: "src/js", output: "dist/js/jquery.mmenu.oncanvas.min"
guard 'uglify', :destination_file => "dist/js/jquery.mmenu.oncanvas.min.js" do
watch ('dist/js/jquery.mmenu.oncanvas.min.js')
end
# Minify addons
guard :concat, type: "js", files: %w(jquery.mmenu.autoheight), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.autoheight.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.autoheight.min.js" do
watch ('dist/js/addons/jquery.mmenu.autoheight.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.backbutton), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.backbutton.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.backbutton.min.js" do
watch ('dist/js/addons/jquery.mmenu.backbutton.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.buttonbars), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.buttonbars.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.buttonbars.min.js" do
watch ('dist/js/addons/jquery.mmenu.buttonbars.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.counters), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.counters.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.counters.min.js" do
watch ('dist/js/addons/jquery.mmenu.counters.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.dividers), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.dividers.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.dividers.min.js" do
watch ('dist/js/addons/jquery.mmenu.dividers.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.dragopen), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.dragopen.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.dragopen.min.js" do
watch ('dist/js/addons/jquery.mmenu.dragopen.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.fixedelements), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.fixedelements.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.fixedelements.min.js" do
watch ('dist/js/addons/jquery.mmenu.fixedelements.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.footer), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.footer.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.footer.min.js" do
watch ('dist/js/addons/jquery.mmenu.footer.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.header), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.header.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.header.min.js" do
watch ('dist/js/addons/jquery.mmenu.header.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.offcanvas), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.offcanvas.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.offcanvas.min.js" do
watch ('dist/js/addons/jquery.mmenu.offcanvas.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.searchfield), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.searchfield.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.searchfield.min.js" do
watch ('dist/js/addons/jquery.mmenu.searchfield.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.sectionindexer), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.sectionindexer.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.sectionindexer.min.js" do
watch ('dist/js/addons/jquery.mmenu.sectionindexer.min.js')
end
guard :concat, type: "js", files: %w(jquery.mmenu.toggles), input_dir: "src/js/addons", output: "dist/js/addons/jquery.mmenu.toggles.min"
guard 'uglify', :destination_file => "dist/js/addons/jquery.mmenu.toggles.min.js" do
watch ('dist/js/addons/jquery.mmenu.toggles.min.js')
end
# Concatenate core functionality + off canvas
guard :concat, type: "js", files: %w(jquery.mmenu.oncanvas.min addons/jquery.mmenu.offcanvas.min), input_dir: "dist/js", output: "dist/js/jquery.mmenu.min"
# Concatenate core functionality + off canvas + addons
guard :concat, type: "js", files: %w(jquery.mmenu.min addons/jquery.mmenu.autoheight.min addons/jquery.mmenu.backbutton.min addons/jquery.mmenu.buttonbars.min addons/jquery.mmenu.counters.min addons/jquery.mmenu.dividers.min addons/jquery.mmenu.dragopen.min addons/jquery.mmenu.fixedelements.min addons/jquery.mmenu.footer.min addons/jquery.mmenu.header.min addons/jquery.mmenu.searchfield.min addons/jquery.mmenu.sectionindexer.min addons/jquery.mmenu.toggles.min), input_dir: "dist/js", output: "dist/js/jquery.mmenu.min.all"
# Umd all minified files
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/jquery.mmenu.oncanvas.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/jquery.mmenu.oncanvas.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/jquery.mmenu.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/jquery.mmenu.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/jquery.mmenu.min.all js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/jquery.mmenu.umd.all"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.autoheight.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.autoheight.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.backbutton.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.backbutton.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.buttonbars.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.buttonbars.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.counters.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.counters.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.dividers.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.dividers.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.dragopen.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.dragopen.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.fixedelements.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.fixedelements.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.footer.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.footer.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.header.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.header.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.offcanvas.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.offcanvas.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.searchfield.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.searchfield.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.sectionindexer.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.searchfield.umd"
guard :concat, type: "js", files: %w(js_umd/_inc/prefix js/addons/jquery.mmenu.toggles.min js_umd/_inc/affix), input_dir: "dist", output: "dist/js_umd/addons/jquery.mmenu.toggles.umd"

36
public/js/mmenu/README.md Normal file
View File

@@ -0,0 +1,36 @@
jQuery.mmenu
================
The best jQuery plugin for app look-alike on- and off-canvas menus with sliding submenus for your website and webapp. It is very customizable through a wide range of options, extensions and add-ons and it will always fit your needs.<br />
Demos, a tutorial, documentation and support: http://mmenu.frebsite.nl
<img src="http://mmenu.frebsite.nl/img/preview-3.png" alt="jQuery mmenu" width="100%" />
**Position and z-position**<br />
The menu can be positioned at the top, right, bottom or left, at the back, front or next to the page.
**Submenus**<br />
Use sliding horizontal or expanding vertical submenus.
**Touch-ready**<br />
Optionally reveal the menu by dragging the page out of the viewport.
**Add-ons**<br />
Add a search field, headers, labels, counters, toggles and more.
**Extensions**<br />
Easily add opening and closing effects, change the color scheme or change the size and position.
**Support**<br />
Plays nicely with jQuery Mobile and works well on all major desktop and mobile browsers.
### Learn more
+ [Tutorial](http://mmenu.frebsite.nl/tutorial/)
+ [Options](http://mmenu.frebsite.nl/documentation/options/)
+ [Custom events](http://mmenu.frebsite.nl/documentation/custom-events.html)
+ [Extensions](http://mmenu.frebsite.nl/documentation/extensions/)
+ [Add-ons](http://mmenu.frebsite.nl/documentation/addons/)
### Licence
The jQuery.mmenu plugin is dual licensed under the MIT license:
+ http://en.wikipedia.org/wiki/MIT_License

View File

@@ -0,0 +1,24 @@
{
"name" : "jQuery.mmenu",
"version" : "5.0.4",
"authors" : "Fred Heusschen <info@frebsite.nl>",
"description" : "The best jQuery plugin for app look-alike on- and off-canvas menus with sliding submenus for your website and webapp.",
"keywords" : [
"app",
"list",
"listview",
"megamenu",
"menu",
"mmenu",
"mobile",
"navigation",
"off-canvas",
"on-canvas",
"panels",
"submenu"
],
"license": "MIT",
"dependencies" : {
"jquery" : ">= 1.7.0"
}
}

View File

@@ -0,0 +1,21 @@
{
"name" : "jQuery.mmenu",
"version" : "5.0.4",
"authors" : "Fred Heusschen <info@frebsite.nl>",
"description" : "The best jQuery plugin for app look-alike on- and off-canvas menus with sliding submenus for your website and webapp.",
"keywords" : [
"app",
"list",
"listview",
"megamenu",
"menu",
"mmenu",
"mobile",
"navigation",
"off-canvas",
"on-canvas",
"panels",
"submenu"
],
"license": "MIT"
}

View File

@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="author" content="www.frebsite.nl" />
<meta name="viewport" content="width=device-width initial-scale=1.0 maximum-scale=1.0 user-scalable=yes" />
<title>jQuery.mmenu demo</title>
<link type="text/css" rel="stylesheet" href="css/demo.css" />
<link type="text/css" rel="stylesheet" href="../dist/css/jquery.mmenu.all.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="../dist/js/jquery.mmenu.min.all.js"></script>
<script type="text/javascript">
$(function() {
$('nav#menu').mmenu({
extensions : [ 'effect-slide', 'pageshadow' ],
header : true,
searchfield : true,
counters : true,
footer : {
add : true,
content : '<a href="mmenu.frebsite.nl">Visit website &rsaquo;</a>'
}
});
});
</script>
</head>
<body>
<div id="page">
<div class="header">
<a href="#menu"></a>
Demo
</div>
<div class="content">
<p><strong>This is an advanced demo.</strong><br />
Click the menu icon to open the menu.</p>
<p>For more demos, a tutorial, documentation and support, please visit <a href="http://mmenu.frebsite.nl" target="_blank">mmenu.frebsite.nl</a></p>
</div>
<nav id="menu">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#about">About us</a>
<ul>
<li><a href="#about/history">History</a></li>
<li><a href="#about/team">The team</a>
<ul>
<li><a href="#about/team/management">Management</a></li>
<li><a href="#about/team/sales">Sales</a></li>
<li><a href="#about/team/development">Development</a></li>
</ul>
</li>
<li><a href="#about/address">Our address</a></li>
</ul>
</li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</div>
</body>
</html>

View File

@@ -0,0 +1,98 @@
html, body
{
padding: 0;
margin: 0;
}
body
{
background-color: #fff;
font-family: Arial, Helvetica, Verdana;
font-size: 14px;
line-height: 22px;
color: #666;
position: relative;
-webkit-text-size-adjust: none;
}
body *
{
text-shadow: none;
}
h1, h2, h3, h4, h5, h6
{
line-height: 1;
font-weight: bold;
margin: 20px 0 10px 0;
}
h1, h2, h3
{
font-size: 18px;
}
h4, h5, h6
{
font-size: 16px;
}
p
{
margin: 0 0 10px 0;
}
a, a:link, a:active, a:visited, a:hover
{
color: inherit;
text-decoration: underline;
}
nav:not(.mm-menu)
{
display: none;
}
.header,
.content,
.footer
{
text-align: center;
}
.header,
.footer
{
background: #777;
font-size: 16px;
font-weight: bold;
color: #fff;
line-height: 40px;
-moz-box-sizing: border-box;
box-sizing: border-box;
width: 100%;
height: 40px;
padding: 0 50px;
}
.header.fixed
{
position: fixed;
top: 0;
left: 0;
}
.footer.fixed
{
position: fixed;
bottom: 0;
left: 0;
}
.header a
{
background: center center no-repeat transparent;
background-image: url( data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADhJREFUeNpi/P//PwOtARMDHQBdLGFBYtMq3BiHT3DRPU4YR4NrNAmPJuHRJDyahEeT8Ii3BCDAAF0WBj5Er5idAAAAAElFTkSuQmCC );
display: block;
width: 40px;
height: 40px;
position: absolute;
top: 0;
left: 10px;
}
.content
{
padding: 150px 50px 50px 50px;
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,53 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="author" content="www.frebsite.nl" />
<meta name="viewport" content="width=device-width initial-scale=1.0 maximum-scale=1.0 user-scalable=yes" />
<title>jQuery.mmenu demo</title>
<link type="text/css" rel="stylesheet" href="css/demo.css" />
<link type="text/css" rel="stylesheet" href="../dist/css/jquery.mmenu.all.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="../dist/js/jquery.mmenu.min.all.js"></script>
<script type="text/javascript">
$(function() {
$('nav#menu').mmenu();
});
</script>
</head>
<body>
<div id="page">
<div class="header">
<a href="#menu"></a>
Demo
</div>
<div class="content">
<p><strong>This is a demo.</strong><br />
Click the menu icon to open the menu.</p>
<p>For more demos, a tutorial, documentation and support, please visit <a href="http://mmenu.frebsite.nl" target="_blank">mmenu.frebsite.nl</a></p>
</div>
<nav id="menu">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#about">About us</a>
<ul>
<li><a href="#about/history">History</a></li>
<li><a href="#about/team">The team</a>
<ul>
<li><a href="#about/team/management">Management</a></li>
<li><a href="#about/team/sales">Sales</a></li>
<li><a href="#about/team/development">Development</a></li>
</ul>
</li>
<li><a href="#about/address">Our address</a></li>
</ul>
</li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</div>
</body>
</html>

View File

@@ -0,0 +1,143 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="author" content="www.frebsite.nl" />
<meta name="viewport" content="width=device-width initial-scale=1.0 maximum-scale=1.0 user-scalable=yes" />
<title>jQuery.mmenu demo</title>
<link type="text/css" rel="stylesheet" href="css/demo.css" />
<link type="text/css" rel="stylesheet" href="../dist/css/jquery.mmenu.css" />
<link type="text/css" rel="stylesheet" href="../dist/css/addons/jquery.mmenu.dragopen.css" />
<!-- for the one page layout -->
<style type="text/css">
#intro,
#first,
#second,
#third
{
height: 400px;
}
#intro
{
padding-top: 0;
}
#first,
#second,
#third
{
border-top: 1px solid #ccc;
padding-top: 150px;
}
</style>
<!-- for the fixed header -->
<style type="text/css">
.header,
.footer
{
box-sizing: border-box;
width: 100%;
position: fixed;
}
.header
{
top: 0;
}
.footer
{
bottom: 0;
}
</style>
<script type="text/javascript" src="http://hammerjs.github.io/dist/hammer.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="../dist/js/jquery.mmenu.min.js"></script>
<script type="text/javascript" src="../dist/js/addons/jquery.mmenu.dragopen.min.js"></script>
<script type="text/javascript" src="../dist/js/addons/jquery.mmenu.fixedelements.min.js"></script>
<script type="text/javascript">
$(function() {
var $menu = $('nav#menu'),
$html = $('html, body');
$menu.mmenu({
dragOpen: true
});
var $anchor = false;
$menu.find( 'li > a' ).on(
'click',
function( e )
{
$anchor = $(this);
}
);
var api = $menu.data( 'mmenu' );
api.bind( 'closed',
function()
{
if ( $anchor )
{
var href = $anchor.attr( 'href' );
$anchor = false;
// if the clicked link is linked to an anchor, scroll the page to that anchor
if ( href.slice( 0, 1 ) == '#' )
{
$html.animate({
scrollTop: $( href ).offset().top
});
}
}
}
);
});
</script>
</head>
<body>
<div id="page">
<div class="header Fixed">
<a href="#menu"></a>
Demo
</div>
<div class="content" id="content">
<div id="intro">
<p><strong>This is a demo.</strong><br />
Click the menu icon to open the menu.</p>
<p>The links in the menu link to a section on the same page, some small javascript makes the page scroll smoothly.</p>
</div>
<div id="first">
<p><strong>This is the first section.</strong><br />
Notice how the fixed header and footer slide out along with the page.</p>
<p><a href="#menu">Open the menu.</a></p>
</div>
<div id="second">
<p><strong>This is the second section.</strong><br />
You can also drag the page to the right to open the menu.</p>
<p><a href="#menu">Open the menu.</a></p>
</div>
<div id="third">
<p><strong>This is the third section.</strong><br />
<a href="#menu">Open the menu.</a></p>
</div>
</div>
<div class="footer Fixed">
Fixed footer :-)
</div>
<nav id="menu">
<ul>
<li><a href="#content">Introduction</a></li>
<li><a href="#first">First section</a></li>
<li><a href="#second">Second section</a></li>
<li><a href="#third">Third section</a></li>
</ul>
</nav>
</div>
</body>
</html>

View File

@@ -0,0 +1,10 @@
/*
jQuery.mmenu autoHeight addon CSS
*/
.mm-menu.mm-top.mm-autoheight, .mm-menu.mm-bottom.mm-autoheight {
max-height: 80%; }
.mm-menu.mm-top.mm-autoheight.mm-fullscreen, .mm-menu.mm-bottom.mm-autoheight.mm-fullscreen {
max-height: 100%; }
.mm-menu.mm-measureheight > .mm-panel {
bottom: auto !important;
height: auto !important; }

View File

@@ -0,0 +1,71 @@
/*
jQuery.mmenu buttonbars addon CSS
*/
.mm-buttonbar {
border: 1px solid transparent;
border-radius: 5px;
text-align: center;
line-height: 20px;
overflow: hidden;
display: block;
padding: 0;
margin: 0;
position: relative; }
.mm-buttonbar:after {
content: '';
display: block;
clear: both; }
.mm-buttonbar > * {
border-left: 1px solid transparent;
box-sizing: border-box;
display: block;
width: 100%;
height: 100%;
float: left;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden; }
.mm-buttonbar > a {
text-decoration: none; }
.mm-buttonbar > input {
position: absolute;
left: -1000px;
top: -1000px; }
.mm-buttonbar > input:checked + label {
border-color: transparent !important; }
.mm-buttonbar > *:first-child,
.mm-buttonbar > input:first-child + * {
border-left: none; }
.mm-buttonbar.mm-buttonbar-2 > * {
width: 50%; }
.mm-buttonbar.mm-buttonbar-3 > * {
width: 33.33%; }
.mm-buttonbar.mm-buttonbar-4 > * {
width: 25%; }
.mm-buttonbar.mm-buttonbar-5 > * {
width: 20%; }
.mm-header .mm-buttonbar {
margin-top: 0px;
margin-left: -30px;
margin-right: -30px; }
.mm-footer .mm-buttonbar {
border: none;
border-radius: none;
line-height: 40px;
margin: -10px -10px 0 -20px; }
.mm-footer .mm-buttonbar > * {
border-left: none; }
.mm-listview > li > .mm-buttonbar {
margin: 10px 20px; }
.mm-menu .mm-buttonbar {
border-color: rgba(0, 0, 0, 0.7);
background: #f3f3f3; }
.mm-menu .mm-buttonbar > * {
border-color: rgba(0, 0, 0, 0.7); }
.mm-menu .mm-buttonbar > input:checked + label {
background: rgba(0, 0, 0, 0.7);
color: #f3f3f3; }

View File

@@ -0,0 +1,33 @@
/*
jQuery.mmenu counters addon CSS
*/
em.mm-counter {
font: inherit;
font-size: 14px;
font-style: normal;
text-indent: 0;
line-height: 20px;
display: block;
margin-top: -10px;
position: absolute;
right: 50px;
top: 50%; }
em.mm-counter + a.mm-next {
padding-left: 40px; }
em.mm-counter + a.mm-next + a,
em.mm-counter + a.mm-next + span {
margin-right: 90px; }
em.mm-counter + a.mm-fullsubopen {
padding-left: 0; }
.mm-vertical > .mm-counter {
top: 12px;
margin-top: 0; }
.mm-vertical.mm-spacer > .mm-counter {
margin-top: 40px; }
.mm-nosubresults > .mm-counter {
display: none; }
.mm-menu em.mm-counter {
color: rgba(0, 0, 0, 0.3); }

View File

@@ -0,0 +1,41 @@
/*
jQuery.mmenu dividers addon CSS
*/
.mm-divider > span {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
padding: 0;
line-height: 25px; }
.mm-divider.mm-opened a.mm-next:after {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg); }
.mm-collapsed:not(.mm-uncollapsed) {
display: none; }
.mm-fixeddivider {
background: inherit;
display: none;
position: absolute;
top: 0;
left: 0;
right: 0;
z-index: 2;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
.mm-fixeddivider:after {
content: none !important;
display: none !important; }
.mm-hasdividers .mm-fixeddivider {
display: block; }
.mm-menu .mm-fixeddivider span {
background: rgba(0, 0, 0, 0.05); }

View File

@@ -0,0 +1,13 @@
/*
jQuery.mmenu dragOpen addon CSS
*/
html.mm-opened.mm-dragging .mm-menu,
html.mm-opened.mm-dragging .mm-page,
html.mm-opened.mm-dragging .mm-fixed-top,
html.mm-opened.mm-dragging .mm-fixed-bottom,
html.mm-opened.mm-dragging #mm-blocker {
-webkit-transition-duration: 0s;
-moz-transition-duration: 0s;
-ms-transition-duration: 0s;
-o-transition-duration: 0s;
transition-duration: 0s; }

View File

@@ -0,0 +1,28 @@
/*
jQuery.mmenu footer addon CSS
*/
.mm-footer {
background: inherit;
border-top: 1px solid transparent;
text-align: center;
line-height: 20px;
box-sizing: border-box;
width: 100%;
height: 40px;
padding: 10px 20px;
position: absolute;
z-index: 3;
bottom: 0;
left: 0;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
.mm-menu.mm-hasfooter > .mm-panel {
bottom: 40px; }
.mm-menu .mm-footer {
border-color: rgba(0, 0, 0, 0.1);
color: rgba(0, 0, 0, 0.3); }

View File

@@ -0,0 +1,25 @@
/*
jQuery.mmenu header addon CSS
*/
.mm-menu > .mm-header {
background: inherit;
z-index: 3;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
.mm-menu > .mm-header .mm-close:after {
content: 'x'; }
.mm-menu.mm-hassearch > .mm-header {
top: 40px; }
.mm-menu.mm-hasheader .mm-panel .mm-header {
display: none; }
.mm-menu.mm-hasheader .mm-panel,
.mm-menu.mm-hasheader .mm-fixeddivider {
top: 40px; }
.mm-menu.mm-hasheader.mm-hassearch .mm-panel,
.mm-menu.mm-hasheader.mm-hassearch .mm-fixeddivider {
top: 80px; }

View File

@@ -0,0 +1,10 @@
/*
jQuery.mmenu height addon CSS
*/
.mm-menu.mm-top.mm-customheight, .mm-menu.mm-bottom.mm-customheight {
max-height: 80%; }
.mm-menu.mm-top.mm-customheight.mm-fullscreen, .mm-menu.mm-bottom.mm-customheight.mm-fullscreen {
max-height: 100%; }
.mm-menu.mm-measureheight > .mm-panel {
bottom: auto !important;
height: auto !important; }

View File

@@ -0,0 +1,69 @@
/*
jQuery.mmenu offcanvas addon CSS
*/
.mm-page {
box-sizing: border-box;
position: relative; }
.mm-slideout {
-webkit-transition: -webkit-transform 0.4s ease;
-ms-transition: -ms-transform 0.4s ease;
transition: transform 0.4s ease; }
html.mm-opened {
overflow: hidden;
position: relative; }
html.mm-opened body {
overflow: hidden; }
html.mm-opened .mm-page {
min-height: 100vh; }
html.mm-background .mm-page {
background: inherit; }
#mm-blocker {
background: rgba(3, 2, 1, 0);
display: none;
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 999999; }
html.mm-opened #mm-blocker,
html.mm-blocking #mm-blocker {
display: block; }
.mm-menu.mm-offcanvas {
display: none;
position: fixed; }
.mm-menu.mm-current {
display: block; }
.mm-menu {
width: 80%;
min-width: 140px;
max-width: 440px; }
html.mm-opening .mm-slideout {
-webkit-transform: translate(80%, 0);
-moz-transform: translate(80%, 0);
-ms-transform: translate(80%, 0);
-o-transform: translate(80%, 0);
transform: translate(80%, 0); }
@media all and (max-width: 175px) {
html.mm-opening .mm-slideout {
-webkit-transform: translate(140px, 0);
-moz-transform: translate(140px, 0);
-ms-transform: translate(140px, 0);
-o-transform: translate(140px, 0);
transform: translate(140px, 0); } }
@media all and (min-width: 550px) {
html.mm-opening .mm-slideout {
-webkit-transform: translate(440px, 0);
-moz-transform: translate(440px, 0);
-ms-transform: translate(440px, 0);
-o-transform: translate(440px, 0);
transform: translate(440px, 0); } }

View File

@@ -0,0 +1,70 @@
/*
jQuery.mmenu searchfield addon CSS
*/
.mm-search,
.mm-search input {
box-sizing: border-box; }
.mm-menu > .mm-search {
background: inherit;
z-index: 3;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
.mm-search {
height: 40px;
width: 100%;
padding: 10px 10px 0 10px;
position: absolute;
top: 0;
left: 0; }
.mm-search input {
border: none;
border-radius: 25px;
font: inherit;
font-size: 14px;
line-height: 25px;
outline: none;
display: block;
width: 100%;
height: 25px;
margin: 0;
padding: 0 10px; }
.mm-search input::-ms-clear {
display: none; }
.mm-panel.mm-hassearch {
padding-top: 40px; }
.mm-panel.mm-hassearch.mm-hasheader {
padding-top: 80px; }
.mm-panel.mm-hassearch.mm-hasheader .mm-search {
top: 40px; }
.mm-noresultsmsg {
text-align: center;
font-size: 21px;
display: none;
padding: 40px 0; }
.mm-noresults .mm-noresultsmsg {
display: block; }
.mm-noresults .mm-indexer {
display: none !important; }
.mm-menu li.mm-nosubresults > a.mm-next {
display: none; }
.mm-menu li.mm-nosubresults > a.mm-next + a,
.mm-menu li.mm-nosubresults > a.mm-next + span {
padding-right: 10px; }
.mm-menu.mm-hassearch .mm-panel,
.mm-menu.mm-hassearch .mm-fixeddivider {
top: 40px; }
.mm-menu .mm-search input {
background: rgba(0, 0, 0, 0.05);
color: rgba(0, 0, 0, 0.7); }
.mm-menu .mm-noresultsmsg {
color: rgba(0, 0, 0, 0.3); }

View File

@@ -0,0 +1,50 @@
/*
jQuery.mmenu sectionIndexer addon CSS
*/
.mm-indexer {
background: inherit;
text-align: center;
font-size: 12px;
box-sizing: border-box;
width: 20px;
position: absolute;
top: 10px;
bottom: 10px;
right: -100px;
z-index: 3;
-webkit-transition: right 0.4s ease;
-moz-transition: right 0.4s ease;
-ms-transition: right 0.4s ease;
-o-transition: right 0.4s ease;
transition: right 0.4s ease;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
.mm-indexer a {
text-decoration: none;
display: block;
height: 3.71%; }
.mm-indexer ~ .mm-panel.mm-hasindexer {
padding-right: 40px; }
.mm-hasindexer .mm-indexer {
right: 0; }
.mm-hasindexer .mm-fixeddivider {
right: 20px; }
.mm-hasheader .mm-indexer {
top: 50px; }
.mm-hasfooter .mm-indexer {
bottom: 50px; }
.mm-hassearch .mm-indexer {
top: 50px; }
.mm-hassearch.mm-hasheader .mm-indexer {
top: 90px; }
.mm-menu .mm-indexer a {
color: rgba(0, 0, 0, 0.3); }

View File

@@ -0,0 +1,91 @@
/*
jQuery.mmenu toggles addon CSS
*/
input.mm-toggle,
input.mm-check {
position: absolute;
left: -10000px; }
label.mm-toggle,
label.mm-check {
margin: 0;
position: absolute;
bottom: 50%;
z-index: 2; }
label.mm-toggle:before,
label.mm-check:before {
content: '';
display: block; }
label.mm-toggle {
border-radius: 30px;
width: 50px;
height: 30px;
margin-bottom: -15px; }
label.mm-toggle:before {
border-radius: 30px;
width: 28px;
height: 28px;
margin: 1px; }
input.mm-toggle:checked ~ label.mm-toggle:before {
float: right; }
label.mm-check {
width: 30px;
height: 30px;
margin-bottom: -15px; }
label.mm-check:before {
border-left: 3px solid;
border-bottom: 3px solid;
width: 40%;
height: 20%;
margin: 25% 0 0 20%;
opacity: 0.1;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
transform: rotate(-45deg); }
input.mm-check:checked ~ label.mm-check:before {
opacity: 1; }
label.mm-toggle, label.mm-check {
right: 20px; }
label.mm-toggle + a,
label.mm-toggle + span {
padding-right: 80px; }
label.mm-check + a,
label.mm-check + span {
padding-right: 60px; }
a.mm-next + label.mm-toggle, a.mm-next + label.mm-check {
right: 60px; }
a.mm-next + label.mm-toggle + a,
a.mm-next + label.mm-toggle + span, a.mm-next + label.mm-check + a,
a.mm-next + label.mm-check + span {
margin-right: 50px; }
a.mm-next + label.mm-toggle + a,
a.mm-next + label.mm-toggle + span {
padding-right: 70px; }
a.mm-next + label.mm-check + a,
a.mm-next + label.mm-check + span {
padding-right: 50px; }
em.mm-counter + a.mm-next + label.mm-toggle, em.mm-counter + a.mm-next + label.mm-check {
right: 100px; }
em.mm-counter + a.mm-next + label.mm-toggle + a,
em.mm-counter + a.mm-next + label.mm-toggle + span, em.mm-counter + a.mm-next + label.mm-check + a,
em.mm-counter + a.mm-next + label.mm-check + span {
margin-right: 90px; }
.mm-menu label.mm-toggle {
background: rgba(0, 0, 0, 0.1); }
.mm-menu label.mm-toggle:before {
background: #f3f3f3; }
.mm-menu input.mm-toggle:checked ~ label.mm-toggle {
background: #4bd963; }
.mm-menu label.mm-check:before {
border-color: rgba(0, 0, 0, 0.7); }

View File

@@ -0,0 +1,10 @@
/*
jQuery.mmenu borderstyle extension CSS
*/
.mm-menu.mm-border-none .mm-listview > li:after,
.mm-listview.mm-border-none > li:after {
content: none; }
.mm-menu.mm-border-full .mm-listview > li:after,
.mm-listview.mm-border-full > li:after {
left: 0 !important; }

View File

@@ -0,0 +1,100 @@
/*
jQuery.mmenu effects extension CSS
*/
html.mm-effect-slide .mm-menu.mm-offcanvas {
-webkit-transition: -webkit-transform 0.4s ease;
transition: transform 0.4s ease; }
html.mm-effect-slide.mm-opened .mm-menu.mm-offcanvas {
-webkit-transform: translate3d(-30%, 0, 0);
-moz-transform: translate3d(-30%, 0, 0);
-ms-transform: translate3d(-30%, 0, 0);
-o-transform: translate3d(-30%, 0, 0);
transform: translate3d(-30%, 0, 0); }
html.mm-effect-slide.mm-opening .mm-menu.mm-offcanvas {
-webkit-transform: translate3d(0%, 0, 0);
-moz-transform: translate3d(0%, 0, 0);
-ms-transform: translate3d(0%, 0, 0);
-o-transform: translate3d(0%, 0, 0);
transform: translate3d(0%, 0, 0); }
html.mm-effect-slide.mm-right.mm-opened .mm-menu.mm-offcanvas {
-webkit-transform: translate3d(30%, 0, 0);
-moz-transform: translate3d(30%, 0, 0);
-ms-transform: translate3d(30%, 0, 0);
-o-transform: translate3d(30%, 0, 0);
transform: translate3d(30%, 0, 0); }
html.mm-effect-slide.mm-right.mm-opening .mm-menu.mm-offcanvas {
-webkit-transform: translate3d(0%, 0, 0);
-moz-transform: translate3d(0%, 0, 0);
-ms-transform: translate3d(0%, 0, 0);
-o-transform: translate3d(0%, 0, 0);
transform: translate3d(0%, 0, 0); }
html.mm-effect-zoom-menu .mm-menu.mm-offcanvas {
-webkit-transition: -webkit-transform 0.4s ease;
-moz-transition: -moz-transform 0.4s ease;
-ms-transition: -ms-transform 0.4s ease;
-o-transition: -o-transform 0.4s ease;
transition: transform 0.4s ease; }
html.mm-effect-zoom-menu.mm-opened .mm-menu.mm-offcanvas {
-webkit-transform: scale(0.7, 0.7) translate3d(-30%, 0, 0);
-moz-transform: scale(0.7, 0.7) translate3d(-30%, 0, 0);
-ms-transform: scale(0.7, 0.7) translate3d(-30%, 0, 0);
-o-transform: scale(0.7, 0.7) translate3d(-30%, 0, 0);
transform: scale(0.7, 0.7) translate3d(-30%, 0, 0);
-webkit-transform-origin: left center;
-moz-transform-origin: left center;
-ms-transform-origin: left center;
-o-transform-origin: left center;
transform-origin: left center; }
html.mm-effect-zoom-menu.mm-opening .mm-menu.mm-offcanvas {
-webkit-transform: scale(1, 1) translate3d(0%, 0, 0);
-moz-transform: scale(1, 1) translate3d(0%, 0, 0);
-ms-transform: scale(1, 1) translate3d(0%, 0, 0);
-o-transform: scale(1, 1) translate3d(0%, 0, 0);
transform: scale(1, 1) translate3d(0%, 0, 0); }
html.mm-effect-zoom-menu.mm-right.mm-opened .mm-menu.mm-offcanvas {
-webkit-transform: scale(0.7, 0.7) translate3d(30%, 0, 0);
-moz-transform: scale(0.7, 0.7) translate3d(30%, 0, 0);
-ms-transform: scale(0.7, 0.7) translate3d(30%, 0, 0);
-o-transform: scale(0.7, 0.7) translate3d(30%, 0, 0);
transform: scale(0.7, 0.7) translate3d(30%, 0, 0);
-webkit-transform-origin: right center;
-moz-transform-origin: right center;
-ms-transform-origin: right center;
-o-transform-origin: right center;
transform-origin: right center; }
html.mm-effect-zoom-menu.mm-right.mm-opening .mm-menu.mm-offcanvas {
-webkit-transform: scale(1, 1) translate3d(0%, 0, 0);
-moz-transform: scale(1, 1) translate3d(0%, 0, 0);
-ms-transform: scale(1, 1) translate3d(0%, 0, 0);
-o-transform: scale(1, 1) translate3d(0%, 0, 0);
transform: scale(1, 1) translate3d(0%, 0, 0); }
html.mm-effect-zoom-panels .mm-menu .mm-panel {
-webkit-transform: scale(1.5, 1.5) translate3d(100%, 0, 0);
-moz-transform: scale(1.5, 1.5) translate3d(100%, 0, 0);
-ms-transform: scale(1.5, 1.5) translate3d(100%, 0, 0);
-o-transform: scale(1.5, 1.5) translate3d(100%, 0, 0);
transform: scale(1.5, 1.5) translate3d(100%, 0, 0);
-webkit-transform-origin: left center;
-moz-transform-origin: left center;
-ms-transform-origin: left center;
-o-transform-origin: left center;
transform-origin: left center;
-webkit-transition-property: -webkit-transform, left;
-moz-transition-property: -moz-transform, left;
-ms-transition-property: -ms-transform, left;
-o-transition-property: -o-transform, left;
transition-property: transform, left; }
html.mm-effect-zoom-panels .mm-menu .mm-panel.mm-opened {
-webkit-transform: scale(1, 1) translate3d(0%, 0, 0);
-moz-transform: scale(1, 1) translate3d(0%, 0, 0);
-ms-transform: scale(1, 1) translate3d(0%, 0, 0);
-o-transform: scale(1, 1) translate3d(0%, 0, 0);
transform: scale(1, 1) translate3d(0%, 0, 0); }
html.mm-effect-zoom-panels .mm-menu .mm-panel.mm-opened.mm-subopened {
-webkit-transform: scale(0.7, 0.7) translate3d(-30%, 0, 0);
-moz-transform: scale(0.7, 0.7) translate3d(-30%, 0, 0);
-ms-transform: scale(0.7, 0.7) translate3d(-30%, 0, 0);
-o-transform: scale(0.7, 0.7) translate3d(-30%, 0, 0);
transform: scale(0.7, 0.7) translate3d(-30%, 0, 0); }

View File

@@ -0,0 +1,57 @@
/*
jQuery.mmenu fullscreen extension CSS
*/
.mm-menu.mm-fullscreen {
width: 100%;
min-width: 140px;
max-width: 10000px; }
html.mm-opening.mm-fullscreen .mm-slideout {
-webkit-transform: translate(100%, 0);
-moz-transform: translate(100%, 0);
-ms-transform: translate(100%, 0);
-o-transform: translate(100%, 0);
transform: translate(100%, 0); }
@media all and (max-width: 140px) {
html.mm-opening.mm-fullscreen .mm-slideout {
-webkit-transform: translate(140px, 0);
-moz-transform: translate(140px, 0);
-ms-transform: translate(140px, 0);
-o-transform: translate(140px, 0);
transform: translate(140px, 0); } }
@media all and (min-width: 10000px) {
html.mm-opening.mm-fullscreen .mm-slideout {
-webkit-transform: translate(10000px, 0);
-moz-transform: translate(10000px, 0);
-ms-transform: translate(10000px, 0);
-o-transform: translate(10000px, 0);
transform: translate(10000px, 0); } }
html.mm-right.mm-opening.mm-fullscreen .mm-slideout {
-webkit-transform: translate(-100%, 0);
-moz-transform: translate(-100%, 0);
-ms-transform: translate(-100%, 0);
-o-transform: translate(-100%, 0);
transform: translate(-100%, 0); }
@media all and (max-width: 140px) {
html.mm-right.mm-opening.mm-fullscreen .mm-slideout {
-webkit-transform: translate(-140px, 0);
-moz-transform: translate(-140px, 0);
-ms-transform: translate(-140px, 0);
-o-transform: translate(-140px, 0);
transform: translate(-140px, 0); } }
@media all and (min-width: 10000px) {
html.mm-right.mm-opening.mm-fullscreen .mm-slideout {
-webkit-transform: translate(-10000px, 0);
-moz-transform: translate(-10000px, 0);
-ms-transform: translate(-10000px, 0);
-o-transform: translate(-10000px, 0);
transform: translate(-10000px, 0); } }
.mm-menu.mm-fullscreen.mm-top, .mm-menu.mm-fullscreen.mm-bottom {
height: 100%;
min-height: 140px;
max-height: 10000px; }
html.mm-opened.mm-fullscreen .mm-page {
box-shadow: none !important; }

View File

@@ -0,0 +1,21 @@
/*
jQuery.mmenu iconbar extension CSS
*/
body {
overflow-x: hidden; }
.mm-menu.mm-iconbar {
display: block; }
.mm-page {
background: inherit;
min-height: 100vh; }
.mm-slideout {
box-sizing: border-box;
padding-right: 60px;
-webkit-transform: translate3d(60px, 0, 0);
-moz-transform: translate3d(60px, 0, 0);
-ms-transform: translate3d(60px, 0, 0);
-o-transform: translate3d(60px, 0, 0);
transform: translate3d(60px, 0, 0); }

View File

@@ -0,0 +1,11 @@
/*
jQuery.mmenu multiline extension CSS
*/
.mm-menu.mm-multiline .mm-listview > li > a,
.mm-menu.mm-multiline .mm-listview > li > span,
.mm-listview.mm-multiline > li
.mm-listview > li.mm-multiline > a,
.mm-listview.mm-multiline > li
.mm-listview > li.mm-multiline > span {
text-overflow: clip;
white-space: normal; }

View File

@@ -0,0 +1,21 @@
/*
jQuery.mmenu pageshadow extension CSS
*/
.mm-menu.mm-pageshadow:after {
content: "";
display: block;
width: 20px;
height: 120%;
position: absolute;
left: 100%;
top: -10%;
z-index: 99; }
.mm-menu.mm-pageshadow.mm-right:after {
left: auto;
right: 100%; }
.mm-menu.mm-pageshadow.mm-next:after, .mm-menu.mm-pageshadow.mm-front:after {
content: none;
display: none; }
.mm-menu.mm-pageshadow:after {
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); }

View File

@@ -0,0 +1,91 @@
/*
jQuery.mmenu position extension CSS
*/
.mm-menu.mm-top,
.mm-menu.mm-bottom {
width: 100%;
min-width: 100%;
max-width: 100%; }
.mm-menu.mm-right {
left: auto;
right: 0; }
.mm-menu.mm-bottom {
top: auto;
bottom: 0; }
html.mm-right.mm-opening .mm-slideout {
-webkit-transform: translate(-80%, 0);
-moz-transform: translate(-80%, 0);
-ms-transform: translate(-80%, 0);
-o-transform: translate(-80%, 0);
transform: translate(-80%, 0); }
@media all and (max-width: 175px) {
html.mm-right.mm-opening .mm-slideout {
-webkit-transform: translate(-140px, 0);
-moz-transform: translate(-140px, 0);
-ms-transform: translate(-140px, 0);
-o-transform: translate(-140px, 0);
transform: translate(-140px, 0); } }
@media all and (min-width: 550px) {
html.mm-right.mm-opening .mm-slideout {
-webkit-transform: translate(-440px, 0);
-moz-transform: translate(-440px, 0);
-ms-transform: translate(-440px, 0);
-o-transform: translate(-440px, 0);
transform: translate(-440px, 0); } }
/*
jQuery.mmenu z-position extension CSS
*/
html.mm-front .mm-slideout {
-webkit-transform: none !important;
-moz-transform: none !important;
-ms-transform: none !important;
-o-transform: none !important;
transform: none !important;
z-index: 0 !important; }
.mm-menu.mm-front {
z-index: 1; }
.mm-menu.mm-front, .mm-menu.mm-next {
-webkit-transition: -webkit-transform 0.4s ease;
-ms-transition: -ms-transform 0.4s ease;
transition: transform 0.4s ease;
-webkit-transform: translate3d(-100%, 0, 0);
-moz-transform: translate3d(-100%, 0, 0);
-ms-transform: translate3d(-100%, 0, 0);
-o-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0); }
.mm-menu.mm-front.mm-right, .mm-menu.mm-next.mm-right {
-webkit-transform: translate3d(100%, 0, 0);
-moz-transform: translate3d(100%, 0, 0);
-ms-transform: translate3d(100%, 0, 0);
-o-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0); }
.mm-menu.mm-top {
-webkit-transform: translate3d(0, -100%, 0);
-moz-transform: translate3d(0, -100%, 0);
-ms-transform: translate3d(0, -100%, 0);
-o-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0); }
.mm-menu.mm-bottom {
-webkit-transform: translate3d(0, 100%, 0);
-moz-transform: translate3d(0, 100%, 0);
-ms-transform: translate3d(0, 100%, 0);
-o-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0); }
html.mm-opening .mm-menu.mm-front, html.mm-opening .mm-menu.mm-next {
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0); }
.mm-menu.mm-top, .mm-menu.mm-bottom {
height: 80%;
min-height: 140px;
max-height: 880px; }

View File

@@ -0,0 +1,213 @@
/*
jQuery.mmenu themes extension CSS
*/
.mm-menu.mm-theme-dark {
background: #333333;
color: rgba(255, 255, 255, 0.8); }
.mm-menu.mm-theme-dark .mm-header {
border-color: rgba(0, 0, 0, 0.15); }
.mm-menu.mm-theme-dark .mm-header > a {
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-dark .mm-header .mm-btn:before,
.mm-menu.mm-theme-dark .mm-header .mm-btn:after {
border-color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-dark .mm-listview > li:after {
border-color: rgba(0, 0, 0, 0.15); }
.mm-menu.mm-theme-dark .mm-listview > li > a.mm-prev, .mm-menu.mm-theme-dark .mm-listview > li > a.mm-next {
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-dark .mm-listview > li > a.mm-prev:before, .mm-menu.mm-theme-dark .mm-listview > li > a.mm-next:after {
border-color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-dark .mm-listview > li > a.mm-prev:after, .mm-menu.mm-theme-dark .mm-listview > li > a.mm-next:before {
border-color: rgba(0, 0, 0, 0.15); }
.mm-menu.mm-theme-dark .mm-listview > li.mm-selected > a:not(.mm-next),
.mm-menu.mm-theme-dark .mm-listview > li.mm-selected > span {
background: rgba(0, 0, 0, 0.1); }
.mm-menu.mm-theme-dark.mm-vertical .mm-listview li.mm-opened > a.mm-next,
.mm-menu.mm-theme-dark.mm-vertical .mm-listview li.mm-opened > .mm-panel,
.mm-menu.mm-theme-dark .mm-listview li.mm-opened.mm-vertical > a.mm-next,
.mm-menu.mm-theme-dark .mm-listview li.mm-opened.mm-vertical > .mm-panel {
background: rgba(255, 255, 255, 0.05); }
.mm-menu.mm-theme-dark .mm-divider {
background: rgba(255, 255, 255, 0.05); }
.mm-menu.mm-theme-dark .mm-buttonbar {
border-color: rgba(255, 255, 255, 0.8);
background: #333333; }
.mm-menu.mm-theme-dark .mm-buttonbar > * {
border-color: rgba(255, 255, 255, 0.8); }
.mm-menu.mm-theme-dark .mm-buttonbar > input:checked + label {
background: rgba(255, 255, 255, 0.8);
color: #333333; }
.mm-menu.mm-theme-dark label.mm-check:before {
border-color: rgba(255, 255, 255, 0.8); }
.mm-menu.mm-theme-dark em.mm-counter {
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-dark .mm-footer {
border-color: rgba(0, 0, 0, 0.15);
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-dark .mm-fixeddivider span {
background: rgba(255, 255, 255, 0.05); }
.mm-menu.mm-pageshadow.mm-theme-dark:after {
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); }
.mm-menu.mm-theme-dark .mm-search input {
background: rgba(255, 255, 255, 0.3);
color: rgba(255, 255, 255, 0.8); }
.mm-menu.mm-theme-dark .mm-noresultsmsg {
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-dark .mm-indexer a {
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-dark label.mm-toggle {
background: rgba(0, 0, 0, 0.15); }
.mm-menu.mm-theme-dark label.mm-toggle:before {
background: #333333; }
.mm-menu.mm-theme-dark input.mm-toggle:checked ~ label.mm-toggle {
background: #4bd963; }
.mm-menu.mm-theme-white {
background: white;
color: rgba(0, 0, 0, 0.6); }
.mm-menu.mm-theme-white .mm-header {
border-color: rgba(0, 0, 0, 0.1); }
.mm-menu.mm-theme-white .mm-header > a {
color: rgba(0, 0, 0, 0.3); }
.mm-menu.mm-theme-white .mm-header .mm-btn:before,
.mm-menu.mm-theme-white .mm-header .mm-btn:after {
border-color: rgba(0, 0, 0, 0.3); }
.mm-menu.mm-theme-white .mm-listview > li:after {
border-color: rgba(0, 0, 0, 0.1); }
.mm-menu.mm-theme-white .mm-listview > li > a.mm-prev, .mm-menu.mm-theme-white .mm-listview > li > a.mm-next {
color: rgba(0, 0, 0, 0.3); }
.mm-menu.mm-theme-white .mm-listview > li > a.mm-prev:before, .mm-menu.mm-theme-white .mm-listview > li > a.mm-next:after {
border-color: rgba(0, 0, 0, 0.3); }
.mm-menu.mm-theme-white .mm-listview > li > a.mm-prev:after, .mm-menu.mm-theme-white .mm-listview > li > a.mm-next:before {
border-color: rgba(0, 0, 0, 0.1); }
.mm-menu.mm-theme-white .mm-listview > li.mm-selected > a:not(.mm-next),
.mm-menu.mm-theme-white .mm-listview > li.mm-selected > span {
background: rgba(0, 0, 0, 0.05); }
.mm-menu.mm-theme-white.mm-vertical .mm-listview li.mm-opened > a.mm-next,
.mm-menu.mm-theme-white.mm-vertical .mm-listview li.mm-opened > .mm-panel,
.mm-menu.mm-theme-white .mm-listview li.mm-opened.mm-vertical > a.mm-next,
.mm-menu.mm-theme-white .mm-listview li.mm-opened.mm-vertical > .mm-panel {
background: rgba(0, 0, 0, 0.03); }
.mm-menu.mm-theme-white .mm-divider {
background: rgba(0, 0, 0, 0.03); }
.mm-menu.mm-theme-white .mm-buttonbar {
border-color: rgba(0, 0, 0, 0.6);
background: white; }
.mm-menu.mm-theme-white .mm-buttonbar > * {
border-color: rgba(0, 0, 0, 0.6); }
.mm-menu.mm-theme-white .mm-buttonbar > input:checked + label {
background: rgba(0, 0, 0, 0.6);
color: white; }
.mm-menu.mm-theme-white label.mm-check:before {
border-color: rgba(0, 0, 0, 0.6); }
.mm-menu.mm-theme-white em.mm-counter {
color: rgba(0, 0, 0, 0.3); }
.mm-menu.mm-theme-white .mm-footer {
border-color: rgba(0, 0, 0, 0.1);
color: rgba(0, 0, 0, 0.3); }
.mm-menu.mm-theme-white .mm-fixeddivider span {
background: rgba(0, 0, 0, 0.03); }
.mm-menu.mm-pageshadow.mm-theme-white:after {
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); }
.mm-menu.mm-theme-white .mm-search input {
background: rgba(0, 0, 0, 0.05);
color: rgba(0, 0, 0, 0.6); }
.mm-menu.mm-theme-white .mm-noresultsmsg {
color: rgba(0, 0, 0, 0.3); }
.mm-menu.mm-theme-white .mm-indexer a {
color: rgba(0, 0, 0, 0.3); }
.mm-menu.mm-theme-white label.mm-toggle {
background: rgba(0, 0, 0, 0.1); }
.mm-menu.mm-theme-white label.mm-toggle:before {
background: white; }
.mm-menu.mm-theme-white input.mm-toggle:checked ~ label.mm-toggle {
background: #4bd963; }
.mm-menu.mm-theme-black {
background: black;
color: rgba(255, 255, 255, 0.6); }
.mm-menu.mm-theme-black .mm-header {
border-color: rgba(255, 255, 255, 0.2); }
.mm-menu.mm-theme-black .mm-header > a {
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-black .mm-header .mm-btn:before,
.mm-menu.mm-theme-black .mm-header .mm-btn:after {
border-color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-black .mm-listview > li:after {
border-color: rgba(255, 255, 255, 0.2); }
.mm-menu.mm-theme-black .mm-listview > li > a.mm-prev, .mm-menu.mm-theme-black .mm-listview > li > a.mm-next {
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-black .mm-listview > li > a.mm-prev:before, .mm-menu.mm-theme-black .mm-listview > li > a.mm-next:after {
border-color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-black .mm-listview > li > a.mm-prev:after, .mm-menu.mm-theme-black .mm-listview > li > a.mm-next:before {
border-color: rgba(255, 255, 255, 0.2); }
.mm-menu.mm-theme-black .mm-listview > li.mm-selected > a:not(.mm-next),
.mm-menu.mm-theme-black .mm-listview > li.mm-selected > span {
background: rgba(255, 255, 255, 0.3); }
.mm-menu.mm-theme-black.mm-vertical .mm-listview li.mm-opened > a.mm-next,
.mm-menu.mm-theme-black.mm-vertical .mm-listview li.mm-opened > .mm-panel,
.mm-menu.mm-theme-black .mm-listview li.mm-opened.mm-vertical > a.mm-next,
.mm-menu.mm-theme-black .mm-listview li.mm-opened.mm-vertical > .mm-panel {
background: rgba(255, 255, 255, 0.2); }
.mm-menu.mm-theme-black .mm-divider {
background: rgba(255, 255, 255, 0.2); }
.mm-menu.mm-theme-black .mm-buttonbar {
border-color: rgba(255, 255, 255, 0.6);
background: black; }
.mm-menu.mm-theme-black .mm-buttonbar > * {
border-color: rgba(255, 255, 255, 0.6); }
.mm-menu.mm-theme-black .mm-buttonbar > input:checked + label {
background: rgba(255, 255, 255, 0.6);
color: black; }
.mm-menu.mm-theme-black label.mm-check:before {
border-color: rgba(255, 255, 255, 0.6); }
.mm-menu.mm-theme-black em.mm-counter {
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-black .mm-footer {
border-color: rgba(255, 255, 255, 0.2);
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-black .mm-fixeddivider span {
background: rgba(255, 255, 255, 0.2); }
.mm-menu.mm-pageshadow.mm-theme-black:after {
content: none;
display: none; }
.mm-menu.mm-theme-black .mm-search input {
background: rgba(255, 255, 255, 0.3);
color: rgba(255, 255, 255, 0.6); }
.mm-menu.mm-theme-black .mm-noresultsmsg {
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-black .mm-indexer a {
color: rgba(255, 255, 255, 0.4); }
.mm-menu.mm-theme-black label.mm-toggle {
background: rgba(255, 255, 255, 0.2); }
.mm-menu.mm-theme-black label.mm-toggle:before {
background: black; }
.mm-menu.mm-theme-black input.mm-toggle:checked ~ label.mm-toggle {
background: #4bd963; }

View File

@@ -0,0 +1,36 @@
/*
jQuery.mmenu widescreen extension CSS
To use on widescreens only, include it using a mediaquery:
<link type="text/css" href="mmenu-widescreen.css" media="all and (min-width: 900px)"/>
*/
html,
body {
overflow: auto !important; }
body {
position: relative; }
#mm-blocker {
display: none !important; }
.mm-slideout {
-webkit-transform: none !important;
-moz-transform: none !important;
-ms-transform: none !important;
-o-transform: none !important;
transform: none !important;
width: 70% !important;
margin-left: 30% !important; }
.mm-page {
background: inherit;
box-sizing: border-box;
min-height: 100vh; }
.mm-menu.mm-widescreen {
display: block;
width: 30% !important;
min-width: none !important;
max-width: none !important;
z-index: 0; }

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,353 @@
/*
jQuery.mmenu CSS
*/
/*
jQuery.mmenu oncanvas CSS
*/
.mm-hidden {
display: none !important; }
.mm-wrapper {
overflow-x: hidden;
position: relative; }
.mm-menu,
.mm-menu > .mm-panel {
margin: 0;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 0; }
.mm-menu {
background: inherit;
display: block;
overflow: hidden;
padding: 0; }
.mm-panel {
-webkit-transition: -webkit-transform 0.4s ease;
-moz-transition: -moz-transform 0.4s ease;
-ms-transition: -ms-transform 0.4s ease;
-o-transition: -o-transform 0.4s ease;
transition: transform 0.4s ease;
-webkit-transform: translate3d(100%, 0, 0);
-moz-transform: translate3d(100%, 0, 0);
-ms-transform: translate3d(100%, 0, 0);
-o-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0); }
.mm-panel.mm-opened {
-webkit-transform: translate3d(0%, 0, 0);
-moz-transform: translate3d(0%, 0, 0);
-ms-transform: translate3d(0%, 0, 0);
-o-transform: translate3d(0%, 0, 0);
transform: translate3d(0%, 0, 0); }
.mm-panel.mm-subopened {
-webkit-transform: translate3d(-30%, 0, 0);
-moz-transform: translate3d(-30%, 0, 0);
-ms-transform: translate3d(-30%, 0, 0);
-o-transform: translate3d(-30%, 0, 0);
transform: translate3d(-30%, 0, 0); }
.mm-panel.mm-highest {
z-index: 1; }
.mm-menu > .mm-panel {
background: inherit;
-webkit-overflow-scrolling: touch;
overflow: scroll;
overflow-x: hidden;
overflow-y: auto;
box-sizing: border-box;
padding: 0 20px; }
.mm-menu > .mm-panel.mm-hasheader {
padding-top: 40px; }
.mm-menu > .mm-panel:before, .mm-menu > .mm-panel:after {
content: '';
display: block;
height: 20px; }
.mm-vertical .mm-panel {
-webkit-transform: none !important;
-moz-transform: none !important;
-ms-transform: none !important;
-o-transform: none !important;
transform: none !important; }
.mm-vertical .mm-listview .mm-panel,
.mm-listview .mm-vertical .mm-panel {
display: none;
padding: 10px 0 10px 10px; }
.mm-vertical .mm-listview .mm-panel .mm-listview > li:last-child:after,
.mm-listview .mm-vertical .mm-panel .mm-listview > li:last-child:after {
border-color: transparent; }
.mm-vertical li.mm-opened > .mm-panel,
li.mm-vertical.mm-opened > .mm-panel {
display: block; }
.mm-vertical .mm-listview > li > .mm-next,
.mm-listview > li.mm-vertical > .mm-next {
height: 40px;
bottom: auto; }
.mm-vertical .mm-listview > li > .mm-next:after,
.mm-listview > li.mm-vertical > .mm-next:after {
top: 16px;
bottom: auto; }
.mm-vertical .mm-listview > li.mm-opened > .mm-next:after,
.mm-listview > li.mm-vertical.mm-opened > .mm-next:after {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg); }
.mm-header {
border-bottom: 1px solid transparent;
text-align: center;
line-height: 20px;
height: 40px;
padding: 0 40px;
margin: 0;
position: absolute;
top: 0;
left: 0;
right: 0; }
.mm-header > a {
text-decoration: none;
display: block;
padding: 10px 0; }
.mm-header .mm-title {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden; }
.mm-header .mm-btn {
box-sizing: border-box;
width: 40px;
height: 40px;
position: absolute;
top: 0;
z-index: 1; }
.mm-header .mm-btn:first-child {
padding-left: 20px;
left: 0; }
.mm-header .mm-btn:last-child {
padding-right: 20px;
right: 0; }
.mm-listview,
.mm-listview > li {
list-style: none;
display: block;
padding: 0;
margin: 0; }
.mm-listview {
font: inherit;
font-size: 14px; }
.mm-listview a,
.mm-listview a:hover {
text-decoration: none; }
.mm-listview > li {
position: relative; }
.mm-listview > li > a,
.mm-listview > li > span {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
color: inherit;
line-height: 20px;
display: block;
padding: 10px 10px 10px 20px;
margin: 0; }
.mm-listview > li:not(.mm-divider):after {
content: '';
border-bottom-width: 1px;
border-bottom-style: solid;
display: block;
position: absolute;
left: 0;
right: 0;
bottom: 0; }
.mm-listview > li:not(.mm-divider):after {
left: 20px; }
.mm-listview .mm-next {
background: rgba(3, 2, 1, 0);
width: 50px;
padding: 0;
position: absolute;
right: 0;
top: 0;
bottom: 0;
z-index: 2; }
.mm-listview .mm-next:before {
content: '';
border-left-width: 1px;
border-left-style: solid;
display: block;
position: absolute;
top: 0;
bottom: 0;
left: 0; }
.mm-listview .mm-next + a,
.mm-listview .mm-next + span {
margin-right: 50px; }
.mm-listview .mm-next.mm-fullsubopen {
width: 100%; }
.mm-listview .mm-next.mm-fullsubopen:before {
border-left: none; }
.mm-listview .mm-next.mm-fullsubopen + a,
.mm-listview .mm-next.mm-fullsubopen + span {
padding-right: 50px;
margin-right: 0; }
.mm-menu > .mm-panel > .mm-listview {
margin-left: -20px;
margin-right: -20px; }
.mm-menu > .mm-panel > .mm-listview.mm-first {
margin-top: -20px; }
.mm-menu > .mm-panel > .mm-listview.mm-last {
padding-bottom: 20px; }
.mm-prev:before,
.mm-next:after {
content: '';
border: 2px solid transparent;
display: inline-block;
width: 8px;
height: 8px;
margin: auto;
position: absolute;
top: 0;
bottom: 0;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
transform: rotate(-45deg); }
.mm-prev:before {
border-right: none;
border-bottom: none;
left: 20px; }
.mm-next:after {
border-top: none;
border-left: none;
right: 20px; }
.mm-divider {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-size: 10px;
text-transform: uppercase;
text-indent: 20px;
line-height: 25px; }
.mm-listview > li.mm-spacer {
padding-top: 40px; }
.mm-listview > li.mm-spacer > .mm-next {
top: 40px; }
.mm-listview > li.mm-spacer.mm-divider {
padding-top: 25px; }
.mm-menu {
background: #f3f3f3;
color: rgba(0, 0, 0, 0.7); }
.mm-menu .mm-header {
border-color: rgba(0, 0, 0, 0.1); }
.mm-menu .mm-header > a {
color: rgba(0, 0, 0, 0.3); }
.mm-menu .mm-header .mm-btn:before,
.mm-menu .mm-header .mm-btn:after {
border-color: rgba(0, 0, 0, 0.3); }
.mm-menu .mm-listview > li:after {
border-color: rgba(0, 0, 0, 0.1); }
.mm-menu .mm-listview > li > a.mm-prev, .mm-menu .mm-listview > li > a.mm-next {
color: rgba(0, 0, 0, 0.3); }
.mm-menu .mm-listview > li > a.mm-prev:before, .mm-menu .mm-listview > li > a.mm-next:after {
border-color: rgba(0, 0, 0, 0.3); }
.mm-menu .mm-listview > li > a.mm-prev:after, .mm-menu .mm-listview > li > a.mm-next:before {
border-color: rgba(0, 0, 0, 0.1); }
.mm-menu .mm-listview > li.mm-selected > a:not(.mm-next),
.mm-menu .mm-listview > li.mm-selected > span {
background: rgba(255, 255, 255, 0.5); }
.mm-menu.mm-vertical .mm-listview li.mm-opened > a.mm-next,
.mm-menu.mm-vertical .mm-listview li.mm-opened > .mm-panel,
.mm-menu .mm-listview li.mm-opened.mm-vertical > a.mm-next,
.mm-menu .mm-listview li.mm-opened.mm-vertical > .mm-panel {
background: rgba(0, 0, 0, 0.05); }
.mm-menu .mm-divider {
background: rgba(0, 0, 0, 0.05); }
/*
jQuery.mmenu offcanvas addon CSS
*/
.mm-page {
box-sizing: border-box;
position: relative; }
.mm-slideout {
-webkit-transition: -webkit-transform 0.4s ease;
-ms-transition: -ms-transform 0.4s ease;
transition: transform 0.4s ease; }
html.mm-opened {
overflow: hidden;
position: relative; }
html.mm-opened body {
overflow: hidden; }
html.mm-opened .mm-page {
min-height: 100vh; }
html.mm-background .mm-page {
background: inherit; }
#mm-blocker {
background: rgba(3, 2, 1, 0);
display: none;
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 999999; }
html.mm-opened #mm-blocker,
html.mm-blocking #mm-blocker {
display: block; }
.mm-menu.mm-offcanvas {
display: none;
position: fixed; }
.mm-menu.mm-current {
display: block; }
.mm-menu {
width: 80%;
min-width: 140px;
max-width: 440px; }
html.mm-opening .mm-slideout {
-webkit-transform: translate(80%, 0);
-moz-transform: translate(80%, 0);
-ms-transform: translate(80%, 0);
-o-transform: translate(80%, 0);
transform: translate(80%, 0); }
@media all and (max-width: 175px) {
html.mm-opening .mm-slideout {
-webkit-transform: translate(140px, 0);
-moz-transform: translate(140px, 0);
-ms-transform: translate(140px, 0);
-o-transform: translate(140px, 0);
transform: translate(140px, 0); } }
@media all and (min-width: 550px) {
html.mm-opening .mm-slideout {
-webkit-transform: translate(440px, 0);
-moz-transform: translate(440px, 0);
-ms-transform: translate(440px, 0);
-o-transform: translate(440px, 0);
transform: translate(440px, 0); } }

View File

@@ -0,0 +1,280 @@
/*
jQuery.mmenu oncanvas CSS
*/
.mm-hidden {
display: none !important; }
.mm-wrapper {
overflow-x: hidden;
position: relative; }
.mm-menu,
.mm-menu > .mm-panel {
margin: 0;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 0; }
.mm-menu {
background: inherit;
display: block;
overflow: hidden;
padding: 0; }
.mm-panel {
-webkit-transition: -webkit-transform 0.4s ease;
-moz-transition: -moz-transform 0.4s ease;
-ms-transition: -ms-transform 0.4s ease;
-o-transition: -o-transform 0.4s ease;
transition: transform 0.4s ease;
-webkit-transform: translate3d(100%, 0, 0);
-moz-transform: translate3d(100%, 0, 0);
-ms-transform: translate3d(100%, 0, 0);
-o-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0); }
.mm-panel.mm-opened {
-webkit-transform: translate3d(0%, 0, 0);
-moz-transform: translate3d(0%, 0, 0);
-ms-transform: translate3d(0%, 0, 0);
-o-transform: translate3d(0%, 0, 0);
transform: translate3d(0%, 0, 0); }
.mm-panel.mm-subopened {
-webkit-transform: translate3d(-30%, 0, 0);
-moz-transform: translate3d(-30%, 0, 0);
-ms-transform: translate3d(-30%, 0, 0);
-o-transform: translate3d(-30%, 0, 0);
transform: translate3d(-30%, 0, 0); }
.mm-panel.mm-highest {
z-index: 1; }
.mm-menu > .mm-panel {
background: inherit;
-webkit-overflow-scrolling: touch;
overflow: scroll;
overflow-x: hidden;
overflow-y: auto;
box-sizing: border-box;
padding: 0 20px; }
.mm-menu > .mm-panel.mm-hasheader {
padding-top: 40px; }
.mm-menu > .mm-panel:before, .mm-menu > .mm-panel:after {
content: '';
display: block;
height: 20px; }
.mm-vertical .mm-panel {
-webkit-transform: none !important;
-moz-transform: none !important;
-ms-transform: none !important;
-o-transform: none !important;
transform: none !important; }
.mm-vertical .mm-listview .mm-panel,
.mm-listview .mm-vertical .mm-panel {
display: none;
padding: 10px 0 10px 10px; }
.mm-vertical .mm-listview .mm-panel .mm-listview > li:last-child:after,
.mm-listview .mm-vertical .mm-panel .mm-listview > li:last-child:after {
border-color: transparent; }
.mm-vertical li.mm-opened > .mm-panel,
li.mm-vertical.mm-opened > .mm-panel {
display: block; }
.mm-vertical .mm-listview > li > .mm-next,
.mm-listview > li.mm-vertical > .mm-next {
height: 40px;
bottom: auto; }
.mm-vertical .mm-listview > li > .mm-next:after,
.mm-listview > li.mm-vertical > .mm-next:after {
top: 16px;
bottom: auto; }
.mm-vertical .mm-listview > li.mm-opened > .mm-next:after,
.mm-listview > li.mm-vertical.mm-opened > .mm-next:after {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg); }
.mm-header {
border-bottom: 1px solid transparent;
text-align: center;
line-height: 20px;
height: 40px;
padding: 0 40px;
margin: 0;
position: absolute;
top: 0;
left: 0;
right: 0; }
.mm-header > a {
text-decoration: none;
display: block;
padding: 10px 0; }
.mm-header .mm-title {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden; }
.mm-header .mm-btn {
box-sizing: border-box;
width: 40px;
height: 40px;
position: absolute;
top: 0;
z-index: 1; }
.mm-header .mm-btn:first-child {
padding-left: 20px;
left: 0; }
.mm-header .mm-btn:last-child {
padding-right: 20px;
right: 0; }
.mm-listview,
.mm-listview > li {
list-style: none;
display: block;
padding: 0;
margin: 0; }
.mm-listview {
font: inherit;
font-size: 14px; }
.mm-listview a,
.mm-listview a:hover {
text-decoration: none; }
.mm-listview > li {
position: relative; }
.mm-listview > li > a,
.mm-listview > li > span {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
color: inherit;
line-height: 20px;
display: block;
padding: 10px 10px 10px 20px;
margin: 0; }
.mm-listview > li:not(.mm-divider):after {
content: '';
border-bottom-width: 1px;
border-bottom-style: solid;
display: block;
position: absolute;
left: 0;
right: 0;
bottom: 0; }
.mm-listview > li:not(.mm-divider):after {
left: 20px; }
.mm-listview .mm-next {
background: rgba(3, 2, 1, 0);
width: 50px;
padding: 0;
position: absolute;
right: 0;
top: 0;
bottom: 0;
z-index: 2; }
.mm-listview .mm-next:before {
content: '';
border-left-width: 1px;
border-left-style: solid;
display: block;
position: absolute;
top: 0;
bottom: 0;
left: 0; }
.mm-listview .mm-next + a,
.mm-listview .mm-next + span {
margin-right: 50px; }
.mm-listview .mm-next.mm-fullsubopen {
width: 100%; }
.mm-listview .mm-next.mm-fullsubopen:before {
border-left: none; }
.mm-listview .mm-next.mm-fullsubopen + a,
.mm-listview .mm-next.mm-fullsubopen + span {
padding-right: 50px;
margin-right: 0; }
.mm-menu > .mm-panel > .mm-listview {
margin-left: -20px;
margin-right: -20px; }
.mm-menu > .mm-panel > .mm-listview.mm-first {
margin-top: -20px; }
.mm-menu > .mm-panel > .mm-listview.mm-last {
padding-bottom: 20px; }
.mm-prev:before,
.mm-next:after {
content: '';
border: 2px solid transparent;
display: inline-block;
width: 8px;
height: 8px;
margin: auto;
position: absolute;
top: 0;
bottom: 0;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
transform: rotate(-45deg); }
.mm-prev:before {
border-right: none;
border-bottom: none;
left: 20px; }
.mm-next:after {
border-top: none;
border-left: none;
right: 20px; }
.mm-divider {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-size: 10px;
text-transform: uppercase;
text-indent: 20px;
line-height: 25px; }
.mm-listview > li.mm-spacer {
padding-top: 40px; }
.mm-listview > li.mm-spacer > .mm-next {
top: 40px; }
.mm-listview > li.mm-spacer.mm-divider {
padding-top: 25px; }
.mm-menu {
background: #f3f3f3;
color: rgba(0, 0, 0, 0.7); }
.mm-menu .mm-header {
border-color: rgba(0, 0, 0, 0.1); }
.mm-menu .mm-header > a {
color: rgba(0, 0, 0, 0.3); }
.mm-menu .mm-header .mm-btn:before,
.mm-menu .mm-header .mm-btn:after {
border-color: rgba(0, 0, 0, 0.3); }
.mm-menu .mm-listview > li:after {
border-color: rgba(0, 0, 0, 0.1); }
.mm-menu .mm-listview > li > a.mm-prev, .mm-menu .mm-listview > li > a.mm-next {
color: rgba(0, 0, 0, 0.3); }
.mm-menu .mm-listview > li > a.mm-prev:before, .mm-menu .mm-listview > li > a.mm-next:after {
border-color: rgba(0, 0, 0, 0.3); }
.mm-menu .mm-listview > li > a.mm-prev:after, .mm-menu .mm-listview > li > a.mm-next:before {
border-color: rgba(0, 0, 0, 0.1); }
.mm-menu .mm-listview > li.mm-selected > a:not(.mm-next),
.mm-menu .mm-listview > li.mm-selected > span {
background: rgba(255, 255, 255, 0.5); }
.mm-menu.mm-vertical .mm-listview li.mm-opened > a.mm-next,
.mm-menu.mm-vertical .mm-listview li.mm-opened > .mm-panel,
.mm-menu .mm-listview li.mm-opened.mm-vertical > a.mm-next,
.mm-menu .mm-listview li.mm-opened.mm-vertical > .mm-panel {
background: rgba(0, 0, 0, 0.05); }
.mm-menu .mm-divider {
background: rgba(0, 0, 0, 0.05); }

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu autoHeight addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(t){var e="mmenu",i="autoHeight";t[e].addons[i]={setup:function(){if(this.opts.offCanvas){switch(this.opts.offCanvas.position){case"left":case"right":return}var n=this,o=this.opts[i];if(this.conf[i],h=t[e].glbl,"boolean"==typeof o&&o&&(o={height:"auto"}),"object"!=typeof o&&(o={}),o=this.opts[i]=t.extend(!0,{},t[e].defaults[i],o),"auto"==o.height){this.$menu.addClass(s.autoheight);var u=function(t){var e=this.$menu.children("."+s.current);_top=parseInt(e.css("top"),10)||0,_bot=parseInt(e.css("bottom"),10)||0,this.$menu.addClass(s.measureheight),t=t||this.$menu.children("."+s.current),t.is("."+s.vertical)&&(t=t.parents("."+s.panel).not("."+s.vertical).first()),this.$menu.height(t.outerHeight()+_top+_bot).removeClass(s.measureheight)};this.bind("update",u),this.bind("openPanel",u),this.bind("closePanel",u),this.bind("open",u),h.$wndw.off(a.resize+"-autoheight").on(a.resize+"-autoheight",function(){u.call(n)})}}},add:function(){s=t[e]._c,n=t[e]._d,a=t[e]._e,s.add("autoheight measureheight"),a.add("resize")},clickAnchor:function(){}},t[e].defaults[i]={height:"default"};var s,n,a,h}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu backButton addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(o){var t="mmenu",n="backButton";o[t].addons[n]={setup:function(){if(this.opts.offCanvas){var i=this,e=this.opts[n];if(this.conf[n],a=o[t].glbl,"boolean"==typeof e&&(e={close:e}),"object"!=typeof e&&(e={}),e=o.extend(!0,{},o[t].defaults[n],e),e.close){var c="#"+i.$menu.attr("id");this.bind("opened",function(){location.hash!=c&&history.pushState(null,document.title,c)}),o(window).on("popstate",function(o){a.$html.hasClass(s.opened)?(o.stopPropagation(),i.close()):location.hash==c&&(o.stopPropagation(),i.open())})}}},add:function(){return window.history&&window.history.pushState?(s=o[t]._c,i=o[t]._d,e=o[t]._e,void 0):(o[t].addons[n].setup=function(){},void 0)},clickAnchor:function(){}},o[t].defaults[n]={close:!1};var s,i,e,a}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu buttonbars addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(t){var n="mmenu",i="buttonbars";t[n].addons[i]={setup:function(){this.opts[i],this.conf[i],s=t[n].glbl,this.bind("init",function(n){this.__refactorClass(t("div",n),this.conf.classNames[i].buttonbar,"buttonbar"),t("."+a.buttonbar,n).each(function(){var n=t(this),i=n.children().not("input"),o=n.children().filter("input");n.addClass(a.buttonbar+"-"+i.length),o.each(function(){var n=t(this),a=i.filter('label[for="'+n.attr("id")+'"]');a.length&&n.insertBefore(a)})})})},add:function(){a=t[n]._c,o=t[n]._d,r=t[n]._e,a.add("buttonbar")},clickAnchor:function(){}},t[n].configuration.classNames[i]={buttonbar:"Buttonbar"};var a,o,r,s}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu counters addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(t){var n="mmenu",e="counters";t[n].addons[e]={setup:function(){var c=this,o=this.opts[e];this.conf[e],s=t[n].glbl,"boolean"==typeof o&&(o={add:o,update:o}),"object"!=typeof o&&(o={}),o=this.opts[e]=t.extend(!0,{},t[n].defaults[e],o),this.bind("init",function(n){this.__refactorClass(t("em",n),this.conf.classNames[e].counter,"counter")}),o.add&&this.bind("init",function(n){n.each(function(){var n=t(this).data(a.parent);n&&(n.children("em."+i.counter).length||n.prepend(t('<em class="'+i.counter+'" />')))})}),o.update&&this.bind("update",function(){this.$menu.find("."+i.panel).each(function(){var n=t(this),e=n.data(a.parent);if(e){var s=e.children("em."+i.counter);s.length&&(n=n.children("."+i.listview),n.length&&s.html(c.__filterListItems(n.children()).length))}})})},add:function(){i=t[n]._c,a=t[n]._d,c=t[n]._e,i.add("counter search noresultsmsg")},clickAnchor:function(){}},t[n].defaults[e]={add:!1,update:!1},t[n].configuration.classNames[e]={counter:"Counter"};var i,a,c,s}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu dividers addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(i){var e="mmenu",s="dividers";i[e].addons[s]={setup:function(){var n=this,a=this.opts[s];if(this.conf[s],l=i[e].glbl,"boolean"==typeof a&&(a={add:a,fixed:a}),"object"!=typeof a&&(a={}),a=this.opts[s]=i.extend(!0,{},i[e].defaults[s],a),this.bind("init",function(){this.__refactorClass(i("li",this.$menu),this.conf.classNames[s].collapsed,"collapsed")}),a.add&&this.bind("init",function(e){switch(a.addTo){case"panels":var s=e;break;default:var s=i(a.addTo,this.$menu).filter("."+d.panel)}i("."+d.divider,s).remove(),s.find("."+d.listview).not("."+d.vertical).each(function(){var e="";n.__filterListItems(i(this).children()).each(function(){var s=i.trim(i(this).children("a, span").text()).slice(0,1).toLowerCase();s!=e&&s.length&&(e=s,i('<li class="'+d.divider+'">'+s+"</li>").insertBefore(this))})})}),a.collapse&&this.bind("init",function(e){i("."+d.divider,e).each(function(){var e=i(this),s=e.nextUntil("."+d.divider,"."+d.collapsed);s.length&&(e.children("."+d.subopen).length||(e.wrapInner("<span />"),e.prepend('<a href="#" class="'+d.subopen+" "+d.fullsubopen+'" />')))})}),a.fixed){var o=function(e){e=e||this.$menu.children("."+d.current);var s=e.find("."+d.divider).not("."+d.hidden);if(s.length){this.$menu.addClass(d.hasdividers);var n=e.scrollTop()||0,t="";e.is(":visible")&&e.find("."+d.divider).not("."+d.hidden).each(function(){i(this).position().top+n<n+1&&(t=i(this).text())}),this.$fixeddivider.text(t)}else this.$menu.removeClass(d.hasdividers)};this.$fixeddivider=i('<ul class="'+d.listview+" "+d.fixeddivider+'"><li class="'+d.divider+'"></li></ul>').prependTo(this.$menu).children(),this.bind("openPanel",o),this.bind("init",function(e){e.off(t.scroll+"-dividers "+t.touchmove+"-dividers").on(t.scroll+"-dividers "+t.touchmove+"-dividers",function(){o.call(n,i(this))})})}},add:function(){d=i[e]._c,n=i[e]._d,t=i[e]._e,d.add("collapsed uncollapsed fixeddivider hasdividers"),t.add("scroll")},clickAnchor:function(i,e){if(this.opts[s].collapse&&e){var n=i.parent();if(n.is("."+d.divider)){var t=n.nextUntil("."+d.divider,"."+d.collapsed);return n.toggleClass(d.opened),t[n.hasClass(d.opened)?"addClass":"removeClass"](d.uncollapsed),!0}}return!1}},i[e].defaults[s]={add:!1,addTo:"panels",fixed:!1,collapse:!1},i[e].configuration.classNames[s]={collapsed:"Collapsed"};var d,n,t,l}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu dragOpen addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(e){function t(e,t,n){return t>e&&(e=t),e>n&&(e=n),e}var n="mmenu",o="dragOpen";e[n].addons[o]={setup:function(){if(this.opts.offCanvas){var i=this,a=this.opts[o],p=this.conf[o];if(r=e[n].glbl,"boolean"==typeof a&&(a={open:a}),"object"!=typeof a&&(a={}),a=this.opts[o]=e.extend(!0,{},e[n].defaults[o],a),a.open){var d,f,c,u,h,l={},m=0,g=!1,v=!1,w=0,_=0;switch(this.opts.offCanvas.position){case"left":case"right":l.events="panleft panright",l.typeLower="x",l.typeUpper="X",v="width";break;case"top":case"bottom":l.events="panup pandown",l.typeLower="y",l.typeUpper="Y",v="height"}switch(this.opts.offCanvas.position){case"right":case"bottom":l.negative=!0,u=function(e){e>=r.$wndw[v]()-a.maxStartPos&&(m=1)};break;default:l.negative=!1,u=function(e){e<=a.maxStartPos&&(m=1)}}switch(this.opts.offCanvas.position){case"left":l.open_dir="right",l.close_dir="left";break;case"right":l.open_dir="left",l.close_dir="right";break;case"top":l.open_dir="down",l.close_dir="up";break;case"bottom":l.open_dir="up",l.close_dir="down"}switch(this.opts.offCanvas.zposition){case"front":h=function(){return this.$menu};break;default:h=function(){return e("."+s.slideout)}}var b=this.__valueOrFn(a.pageNode,this.$menu,r.$page);"string"==typeof b&&(b=e(b));var y=new Hammer(b[0],a.vendors.hammer);y.on("panstart",function(e){u(e.center[l.typeLower]),r.$slideOutNodes=h(),g=l.open_dir}).on(l.events+" panend",function(e){m>0&&e.preventDefault()}).on(l.events,function(e){if(d=e["delta"+l.typeUpper],l.negative&&(d=-d),d!=w&&(g=d>=w?l.open_dir:l.close_dir),w=d,w>a.threshold&&1==m){if(r.$html.hasClass(s.opened))return;m=2,i._openSetup(),i.trigger("opening"),r.$html.addClass(s.dragging),_=t(r.$wndw[v]()*p[v].perc,p[v].min,p[v].max)}2==m&&(f=t(w,10,_)-("front"==i.opts.offCanvas.zposition?_:0),l.negative&&(f=-f),c="translate"+l.typeUpper+"("+f+"px )",r.$slideOutNodes.css({"-webkit-transform":"-webkit-"+c,transform:c}))}).on("panend",function(){2==m&&(r.$html.removeClass(s.dragging),r.$slideOutNodes.css("transform",""),i[g==l.open_dir?"_openFinish":"close"]()),m=0})}}},add:function(){return"function"!=typeof Hammer||Hammer.VERSION<2?(e[n].addons[o].setup=function(){},void 0):(s=e[n]._c,i=e[n]._d,a=e[n]._e,s.add("dragging"),void 0)},clickAnchor:function(){}},e[n].defaults[o]={open:!1,maxStartPos:100,threshold:50,vendors:{hammer:{}}},e[n].configuration[o]={width:{perc:.8,min:140,max:440},height:{perc:.8,min:140,max:880}};var s,i,a,r}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu fixedElements addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(i){var s="mmenu",a="fixedElements";i[s].addons[a]={setup:function(){if(this.opts.offCanvas){this.opts[a],this.conf[a],t=i[s].glbl;var d=function(i){var s=this.conf.classNames[a].fixed;this.__refactorClass(i.find("."+s),s,"fixed").appendTo(t.$body).addClass(n.slideout)};d.call(this,t.$page),this.bind("setPage",d)}},add:function(){n=i[s]._c,d=i[s]._d,e=i[s]._e,n.add("fixed")},clickAnchor:function(){}},i[s].configuration.classNames[a]={fixed:"Fixed"};var n,d,e,t}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu footer addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(t){var e="mmenu",o="footer";t[e].addons[o]={setup:function(){var i=this.opts[o];if(this.conf[o],a=t[e].glbl,"boolean"==typeof i&&(i={add:i,update:i}),"object"!=typeof i&&(i={}),i=this.opts[o]=t.extend(!0,{},t[e].defaults[o],i),i.add){var s=i.content?i.content:i.title;t('<div class="'+n.footer+'" />').appendTo(this.$menu).append(s),this.$menu.addClass(n.hasfooter)}if(this.$footer=this.$menu.children("."+n.footer),i.update&&this.$footer&&this.$footer.length){var d=function(e){e=e||this.$menu.children("."+n.current);var s=t("."+this.conf.classNames[o].panelFooter,e).html()||i.title;this.$footer[s?"removeClass":"addClass"](n.hidden),this.$footer.html(s)};this.bind("openPanel",d),this.bind("init",function(){d.call(this,this.$menu.children("."+n.current))})}},add:function(){n=t[e]._c,i=t[e]._d,s=t[e]._e,n.add("footer hasfooter")},clickAnchor:function(){}},t[e].defaults[o]={add:!1,content:!1,title:"",update:!1},t[e].configuration.classNames[o]={panelFooter:"Footer"};var n,i,s,a}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu header addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(e){var t="mmenu",a="header";e[t].addons[a]={setup:function(){var i=this.opts[a];if(this.conf[a],s=e[t].glbl,"boolean"==typeof i&&(i={add:i,update:i}),"object"!=typeof i&&(i={}),"undefined"==typeof i.content&&(i.content=["prev","title","next"]),i=this.opts[a]=e.extend(!0,{},e[t].defaults[a],i),i.add){if(i.content instanceof Array){for(var d=e("<div />"),h=0,l=i.content.length;l>h;h++)switch(i.content[h]){case"prev":case"next":case"close":d.append('<a class="'+n[i.content[h]]+" "+n.btn+'" href="#"></a>');break;case"title":d.append('<a class="'+n.title+'"></a>');break;default:d.append(i.content[h])}d=d.html()}else var d=i.content;e('<div class="'+n.header+'" />').prependTo(this.$menu).append(d),this.$menu.addClass(n.hasheader),this.bind("init",function(e){e.removeClass(n.hasheader)})}if(this.$header=this.$menu.children("."+n.header),i.update&&this.$header&&this.$header.length){var c=this.$header.find("."+n.title),o=this.$header.find("."+n.prev),f=this.$header.find("."+n.next),p=this.$header.find("."+n.close),u=function(e){e=e||this.$menu.children("."+n.current);var t=e.find("."+this.conf.classNames[a].panelHeader),s=e.find("."+this.conf.classNames[a].panelPrev),d=e.find("."+this.conf.classNames[a].panelNext),h=e.data(r.parent),l=t.html(),p=s.attr("href"),u=d.attr("href"),v=!1,m=s.html(),$=d.html();switch(l||(l=e.children("."+n.header).children("."+n.title).html()),l||(l=i.title),p||(p=e.children("."+n.header).children("."+n.prev).attr("href")),i.titleLink){case"anchor":var v=h?h.children("a").not("."+n.next).attr("href"):!1;break;case"panel":var v=p}c[v?"attr":"removeAttr"]("href",v),c[l?"removeClass":"addClass"](n.hidden),c.html(l),o[p?"attr":"removeAttr"]("href",p),o[p||m?"removeClass":"addClass"](n.hidden),o.html(m),f[u?"attr":"removeAttr"]("href",u),f[u||$?"removeClass":"addClass"](n.hidden),f.html($)};if(this.bind("openPanel",u),this.bind("init",function(){u.call(this,this.$menu.children("."+n.current))}),this.opts.offCanvas){var v=function(e){p.attr("href","#"+e.attr("id"))};v.call(this,s.$page),this.bind("setPage",v)}}},add:function(){n=e[t]._c,r=e[t]._d,i=e[t]._e,n.add("close")},clickAnchor:function(){}},e[t].defaults[a]={add:!1,title:"Menu",titleLink:"panel",update:!1},e[t].configuration.classNames[a]={panelHeader:"Header",panelNext:"Next",panelPrev:"Prev"};var n,r,i,s}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu offCanvas addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(e){var t="mmenu",o="offCanvas";e[t].addons[o]={setup:function(){if(this.opts[o]){var n=this.opts[o],i=this.conf[o];a=e[t].glbl,this._api=e.merge(this._api,["open","close","setPage"]),("top"==n.position||"bottom"==n.position)&&(n.zposition="front"),"string"!=typeof i.pageSelector&&(i.pageSelector="> "+i.pageNodetype),a.$allMenus=(a.$allMenus||e()).add(this.$menu),this.vars.opened=!1;var r=[s.offcanvas];"left"!=n.position&&r.push(s.mm(n.position)),"back"!=n.zposition&&r.push(s.mm(n.zposition)),this.$menu.addClass(r.join(" ")).parent().removeClass(s.wrapper),this.setPage(a.$page),this._initBlocker(),this["_initWindow_"+o](),this.$menu[i.menuInjectMethod+"To"](i.menuWrapperSelector)}},add:function(){s=e[t]._c,n=e[t]._d,i=e[t]._e,s.add("offcanvas slideout modal background opening blocker page"),n.add("style"),i.add("resize")},clickAnchor:function(e){if(!this.opts[o])return!1;var t=this.$menu.attr("id");if(t&&t.length&&(this.conf.clone&&(t=s.umm(t)),e.is('[href="#'+t+'"]')))return this.open(),!0;if(a.$page){var t=a.$page.attr("id");return t&&t.length&&e.is('[href="#'+t+'"]')?(this.close(),!0):!1}}},e[t].defaults[o]={position:"left",zposition:"back",modal:!1,moveBackground:!0},e[t].configuration[o]={pageNodetype:"div",pageSelector:null,menuWrapperSelector:"body",menuInjectMethod:"prepend"},e[t].prototype.open=function(){if(!this.vars.opened){var e=this;this._openSetup(),setTimeout(function(){e._openFinish()},this.conf.openingInterval),this.trigger("open")}},e[t].prototype._openSetup=function(){var e=this;this.closeAllOthers(),a.$page.data(n.style,a.$page.attr("style")||""),a.$wndw.trigger(i.resize+"-offcanvas",[!0]);var t=[s.opened];this.opts[o].modal&&t.push(s.modal),this.opts[o].moveBackground&&t.push(s.background),"left"!=this.opts[o].position&&t.push(s.mm(this.opts[o].position)),"back"!=this.opts[o].zposition&&t.push(s.mm(this.opts[o].zposition)),this.opts.extensions&&t.push(this.opts.extensions),a.$html.addClass(t.join(" ")),setTimeout(function(){e.vars.opened=!0},this.conf.openingInterval),this.$menu.addClass(s.current+" "+s.opened)},e[t].prototype._openFinish=function(){var e=this;this.__transitionend(a.$page,function(){e.trigger("opened")},this.conf.transitionDuration),a.$html.addClass(s.opening),this.trigger("opening")},e[t].prototype.close=function(){if(this.vars.opened){var e=this;this.__transitionend(a.$page,function(){e.$menu.removeClass(s.current).removeClass(s.opened),a.$html.removeClass(s.opened).removeClass(s.modal).removeClass(s.background).removeClass(s.mm(e.opts[o].position)).removeClass(s.mm(e.opts[o].zposition)),e.opts.extensions&&a.$html.removeClass(e.opts.extensions),a.$page.attr("style",a.$page.data(n.style)),e.vars.opened=!1,e.trigger("closed")},this.conf.transitionDuration),a.$html.removeClass(s.opening),this.trigger("close"),this.trigger("closing")}},e[t].prototype.closeAllOthers=function(){a.$allMenus.not(this.$menu).each(function(){var o=e(this).data(t);o&&o.close&&o.close()})},e[t].prototype.setPage=function(t){t&&t.length||(t=e(this.conf[o].pageSelector,a.$body),t.length>1&&(t=t.wrapAll("<"+this.conf[o].pageNodetype+" />").parent())),t.attr("id",t.attr("id")||this.__getUniqueId()),t.addClass(s.page+" "+s.slideout),a.$page=t,this.trigger("setPage",t)},e[t].prototype["_initWindow_"+o]=function(){a.$wndw.off(i.keydown+"-offcanvas").on(i.keydown+"-offcanvas",function(e){return a.$html.hasClass(s.opened)&&9==e.keyCode?(e.preventDefault(),!1):void 0});var e=0;a.$wndw.off(i.resize+"-offcanvas").on(i.resize+"-offcanvas",function(t,o){if(o||a.$html.hasClass(s.opened)){var n=a.$wndw.height();(o||n!=e)&&(e=n,a.$page.css("minHeight",n))}})},e[t].prototype._initBlocker=function(){var t=this;a.$blck||(a.$blck=e('<div id="'+s.blocker+'" class="'+s.slideout+'" />')),a.$blck.appendTo(a.$body).off(i.touchstart+"-offcanvas "+i.touchmove+"-offcanvas").on(i.touchstart+"-offcanvas "+i.touchmove+"-offcanvas",function(e){e.preventDefault(),e.stopPropagation(),a.$blck.trigger(i.mousedown+"-offcanvas")}).off(i.mousedown+"-offcanvas").on(i.mousedown+"-offcanvas",function(e){e.preventDefault(),a.$html.hasClass(s.modal)||(t.closeAllOthers(),t.close())})};var s,n,i,a}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu searchfield addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(e){function s(e){switch(e){case 9:case 16:case 17:case 18:case 37:case 38:case 39:case 40:return!0}return!1}var a="mmenu",n="searchfield";e[a].addons[n]={setup:function(){var o=this,d=this.opts[n],c=this.conf[n];r=e[a].glbl,"boolean"==typeof d&&(d={add:d,search:d}),"object"!=typeof d&&(d={}),d=this.opts[n]=e.extend(!0,{},e[a].defaults[n],d),this.bind("init",function(a){if(d.add){switch(d.addTo){case"menu":var n=this.$menu;break;case"panels":var n=a;break;default:var n=e(d.addTo,this.$menu).filter("."+t.panel)}n.each(function(){var s=e(this);if(!s.is("."+t.panel)||!s.is("."+t.vertical)){if(!s.children("."+t.search).length){var a=c.form?"form":"div",n=e("<"+a+' class="'+t.search+'" />');if(c.form&&"object"==typeof c.form)for(var l in c.form)n.attr(l,c.form[l]);n.append('<input placeholder="'+d.placeholder+'" type="text" autocomplete="off" />').prependTo(s),s.addClass(t.hassearch)}if(d.noResults&&(s.is("."+t.menu)&&(s=s.children("."+t.panel).first()),!s.children("."+t.noresultsmsg).length)){var i=s.children("."+t.listview);e('<div class="'+t.noresultsmsg+'" />').append(d.noResults)[i.length?"insertBefore":"prependTo"](i.length?i:s)}}})}d.search&&e("."+t.search,this.$menu).each(function(){var a=e(this);if("menu"==d.addTo)var n=e("."+t.panel,o.$menu),r=o.$menu;else var n=a.closest("."+t.panel),r=n;var c=a.children("input"),h=o.__findAddBack(n,"."+t.listview).children("li"),u=h.filter("."+t.divider),f=o.__filterListItems(h),p="> a",v=p+", > span",m=function(){var s=c.val().toLowerCase();n.scrollTop(0),f.add(u).addClass(t.hidden).find("."+t.fullsubopensearch).removeClass(t.fullsubopen).removeClass(t.fullsubopensearch),f.each(function(){var a=e(this),n=p;(d.showTextItems||d.showSubPanels&&a.find("."+t.next))&&(n=v),e(n,a).text().toLowerCase().indexOf(s)>-1&&a.add(a.prevAll("."+t.divider).first()).removeClass(t.hidden)}),d.showSubPanels&&n.each(function(){var s=e(this);o.__filterListItems(s.find("."+t.listview).children()).each(function(){var s=e(this),a=s.data(l.sub);s.removeClass(t.nosubresults),a&&a.find("."+t.listview).children().removeClass(t.hidden)})}),e(n.get().reverse()).each(function(s){var a=e(this),n=a.data(l.parent);n&&(o.__filterListItems(a.find("."+t.listview).children()).length?(n.hasClass(t.hidden)&&n.children("."+t.next).not("."+t.fullsubopen).addClass(t.fullsubopen).addClass(t.fullsubopensearch),n.removeClass(t.hidden).removeClass(t.nosubresults).prevAll("."+t.divider).first().removeClass(t.hidden)):"menu"==d.addTo&&(a.hasClass(t.opened)&&setTimeout(function(){o.openPanel(n.closest("."+t.panel))},1.5*(s+1)*o.conf.openingInterval),n.addClass(t.nosubresults)))}),r[f.not("."+t.hidden).length?"removeClass":"addClass"](t.noresults),this.update()};c.off(i.keyup+"-searchfield "+i.change+"-searchfield").on(i.keyup+"-searchfield",function(e){s(e.keyCode)||m.call(o)}).on(i.change+"-searchfield",function(){m.call(o)})})})},add:function(){t=e[a]._c,l=e[a]._d,i=e[a]._e,t.add("search hassearch noresultsmsg noresults nosubresults fullsubopensearch"),i.add("change keyup")},clickAnchor:function(){}},e[a].defaults[n]={add:!1,addTo:"menu",search:!1,placeholder:"Search",noResults:"No results found.",showTextItems:!1,showSubPanels:!0},e[a].configuration[n]={form:!1};var t,l,i,r}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu sectionIndexer addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(e){var a="mmenu",r="sectionIndexer";e[a].addons[r]={setup:function(){var n=this,s=this.opts[r];this.conf[r],d=e[a].glbl,"boolean"==typeof s&&(s={add:s}),"object"!=typeof s&&(s={}),s=this.opts[r]=e.extend(!0,{},e[a].defaults[r],s),this.bind("init",function(a){if(s.add){switch(s.addTo){case"panels":var r=a;break;default:var r=e(s.addTo,this.$menu).filter("."+i.panel)}r.find("."+i.divider).closest("."+i.panel).addClass(i.hasindexer)}if(!this.$indexer&&this.$menu.children("."+i.hasindexer).length){this.$indexer=e('<div class="'+i.indexer+'" />').prependTo(this.$menu).append('<a href="#a">a</a><a href="#b">b</a><a href="#c">c</a><a href="#d">d</a><a href="#e">e</a><a href="#f">f</a><a href="#g">g</a><a href="#h">h</a><a href="#i">i</a><a href="#j">j</a><a href="#k">k</a><a href="#l">l</a><a href="#m">m</a><a href="#n">n</a><a href="#o">o</a><a href="#p">p</a><a href="#q">q</a><a href="#r">r</a><a href="#s">s</a><a href="#t">t</a><a href="#u">u</a><a href="#v">v</a><a href="#w">w</a><a href="#x">x</a><a href="#y">y</a><a href="#z">z</a><a href="##">#</a>'),this.$indexer.children().on(h.mouseover+"-searchfield "+i.touchmove+"-searchfield",function(){var a=e(this).attr("href").slice(1),r=n.$menu.children("."+i.current),h=r.find("."+i.listview),d=!1,s=r.scrollTop(),t=h.position().top+parseInt(h.css("margin-top"),10)+parseInt(h.css("padding-top"),10)+s;r.scrollTop(0),h.children("."+i.divider).not("."+i.hidden).each(function(){d===!1&&a==e(this).text().slice(0,1).toLowerCase()&&(d=e(this).position().top+t)}),r.scrollTop(d!==!1?d:s)});var d=function(e){n.$menu[(e.hasClass(i.hasindexer)?"add":"remove")+"Class"](i.hasindexer)};this.bind("openPanel",d),d.call(this,this.$menu.children("."+i.current))}})},add:function(){i=e[a]._c,n=e[a]._d,h=e[a]._e,i.add("indexer hasindexer"),h.add("mouseover touchmove")},clickAnchor:function(e){return e.parent().is("."+i.indexer)?!0:void 0}},e[a].defaults[r]={add:!1,addTo:"panels"};var i,n,h,d}(jQuery);

View File

@@ -0,0 +1,7 @@
/*
* jQuery mmenu toggles addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(t){var e="mmenu",c="toggles";t[e].addons[c]={setup:function(){var n=this;this.opts[c],this.conf[c],l=t[e].glbl,this.bind("init",function(e){this.__refactorClass(t("input",e),this.conf.classNames[c].toggle,"toggle"),this.__refactorClass(t("input",e),this.conf.classNames[c].check,"check"),t("input."+s.toggle+", input."+s.check,e).each(function(){var e=t(this),c=e.closest("li"),i=e.hasClass(s.toggle)?"toggle":"check",l=e.attr("id")||n.__getUniqueId();c.children('label[for="'+l+'"]').length||(e.attr("id",l),c.prepend(e),t('<label for="'+l+'" class="'+s[i]+'"></label>').insertBefore(c.children("a, span").last()))})})},add:function(){s=t[e]._c,n=t[e]._d,i=t[e]._e,s.add("toggle check")},clickAnchor:function(){}},t[e].configuration.classNames[c]={toggle:"Toggle",check:"Check"};var s,n,i,l}(jQuery);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
}));

View File

@@ -0,0 +1,18 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu autoHeight addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(t){var e="mmenu",i="autoHeight";t[e].addons[i]={setup:function(){if(this.opts.offCanvas){switch(this.opts.offCanvas.position){case"left":case"right":return}var n=this,o=this.opts[i];if(this.conf[i],h=t[e].glbl,"boolean"==typeof o&&o&&(o={height:"auto"}),"object"!=typeof o&&(o={}),o=this.opts[i]=t.extend(!0,{},t[e].defaults[i],o),"auto"==o.height){this.$menu.addClass(s.autoheight);var u=function(t){var e=this.$menu.children("."+s.current);_top=parseInt(e.css("top"),10)||0,_bot=parseInt(e.css("bottom"),10)||0,this.$menu.addClass(s.measureheight),t=t||this.$menu.children("."+s.current),t.is("."+s.vertical)&&(t=t.parents("."+s.panel).not("."+s.vertical).first()),this.$menu.height(t.outerHeight()+_top+_bot).removeClass(s.measureheight)};this.bind("update",u),this.bind("openPanel",u),this.bind("closePanel",u),this.bind("open",u),h.$wndw.off(a.resize+"-autoheight").on(a.resize+"-autoheight",function(){u.call(n)})}}},add:function(){s=t[e]._c,n=t[e]._d,a=t[e]._e,s.add("autoheight measureheight"),a.add("resize")},clickAnchor:function(){}},t[e].defaults[i]={height:"default"};var s,n,a,h}(jQuery);
}));

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu backButton addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(o){var t="mmenu",n="backButton";o[t].addons[n]={setup:function(){if(this.opts.offCanvas){var i=this,e=this.opts[n];if(this.conf[n],a=o[t].glbl,"boolean"==typeof e&&(e={close:e}),"object"!=typeof e&&(e={}),e=o.extend(!0,{},o[t].defaults[n],e),e.close){var c="#"+i.$menu.attr("id");this.bind("opened",function(){location.hash!=c&&history.pushState(null,document.title,c)}),o(window).on("popstate",function(o){a.$html.hasClass(s.opened)?(o.stopPropagation(),i.close()):location.hash==c&&(o.stopPropagation(),i.open())})}}},add:function(){return window.history&&window.history.pushState?(s=o[t]._c,i=o[t]._d,e=o[t]._e,void 0):(o[t].addons[n].setup=function(){},void 0)},clickAnchor:function(){}},o[t].defaults[n]={close:!1};var s,i,e,a}(jQuery);
}));

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu buttonbars addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(t){var n="mmenu",i="buttonbars";t[n].addons[i]={setup:function(){this.opts[i],this.conf[i],s=t[n].glbl,this.bind("init",function(n){this.__refactorClass(t("div",n),this.conf.classNames[i].buttonbar,"buttonbar"),t("."+a.buttonbar,n).each(function(){var n=t(this),i=n.children().not("input"),o=n.children().filter("input");n.addClass(a.buttonbar+"-"+i.length),o.each(function(){var n=t(this),a=i.filter('label[for="'+n.attr("id")+'"]');a.length&&n.insertBefore(a)})})})},add:function(){a=t[n]._c,o=t[n]._d,r=t[n]._e,a.add("buttonbar")},clickAnchor:function(){}},t[n].configuration.classNames[i]={buttonbar:"Buttonbar"};var a,o,r,s}(jQuery);
}));

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu counters addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(t){var n="mmenu",e="counters";t[n].addons[e]={setup:function(){var c=this,o=this.opts[e];this.conf[e],s=t[n].glbl,"boolean"==typeof o&&(o={add:o,update:o}),"object"!=typeof o&&(o={}),o=this.opts[e]=t.extend(!0,{},t[n].defaults[e],o),this.bind("init",function(n){this.__refactorClass(t("em",n),this.conf.classNames[e].counter,"counter")}),o.add&&this.bind("init",function(n){n.each(function(){var n=t(this).data(a.parent);n&&(n.children("em."+i.counter).length||n.prepend(t('<em class="'+i.counter+'" />')))})}),o.update&&this.bind("update",function(){this.$menu.find("."+i.panel).each(function(){var n=t(this),e=n.data(a.parent);if(e){var s=e.children("em."+i.counter);s.length&&(n=n.children("."+i.listview),n.length&&s.html(c.__filterListItems(n.children()).length))}})})},add:function(){i=t[n]._c,a=t[n]._d,c=t[n]._e,i.add("counter search noresultsmsg")},clickAnchor:function(){}},t[n].defaults[e]={add:!1,update:!1},t[n].configuration.classNames[e]={counter:"Counter"};var i,a,c,s}(jQuery);
}));

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu dividers addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(i){var e="mmenu",s="dividers";i[e].addons[s]={setup:function(){var n=this,a=this.opts[s];if(this.conf[s],l=i[e].glbl,"boolean"==typeof a&&(a={add:a,fixed:a}),"object"!=typeof a&&(a={}),a=this.opts[s]=i.extend(!0,{},i[e].defaults[s],a),this.bind("init",function(){this.__refactorClass(i("li",this.$menu),this.conf.classNames[s].collapsed,"collapsed")}),a.add&&this.bind("init",function(e){switch(a.addTo){case"panels":var s=e;break;default:var s=i(a.addTo,this.$menu).filter("."+d.panel)}i("."+d.divider,s).remove(),s.find("."+d.listview).not("."+d.vertical).each(function(){var e="";n.__filterListItems(i(this).children()).each(function(){var s=i.trim(i(this).children("a, span").text()).slice(0,1).toLowerCase();s!=e&&s.length&&(e=s,i('<li class="'+d.divider+'">'+s+"</li>").insertBefore(this))})})}),a.collapse&&this.bind("init",function(e){i("."+d.divider,e).each(function(){var e=i(this),s=e.nextUntil("."+d.divider,"."+d.collapsed);s.length&&(e.children("."+d.subopen).length||(e.wrapInner("<span />"),e.prepend('<a href="#" class="'+d.subopen+" "+d.fullsubopen+'" />')))})}),a.fixed){var o=function(e){e=e||this.$menu.children("."+d.current);var s=e.find("."+d.divider).not("."+d.hidden);if(s.length){this.$menu.addClass(d.hasdividers);var n=e.scrollTop()||0,t="";e.is(":visible")&&e.find("."+d.divider).not("."+d.hidden).each(function(){i(this).position().top+n<n+1&&(t=i(this).text())}),this.$fixeddivider.text(t)}else this.$menu.removeClass(d.hasdividers)};this.$fixeddivider=i('<ul class="'+d.listview+" "+d.fixeddivider+'"><li class="'+d.divider+'"></li></ul>').prependTo(this.$menu).children(),this.bind("openPanel",o),this.bind("init",function(e){e.off(t.scroll+"-dividers "+t.touchmove+"-dividers").on(t.scroll+"-dividers "+t.touchmove+"-dividers",function(){o.call(n,i(this))})})}},add:function(){d=i[e]._c,n=i[e]._d,t=i[e]._e,d.add("collapsed uncollapsed fixeddivider hasdividers"),t.add("scroll")},clickAnchor:function(i,e){if(this.opts[s].collapse&&e){var n=i.parent();if(n.is("."+d.divider)){var t=n.nextUntil("."+d.divider,"."+d.collapsed);return n.toggleClass(d.opened),t[n.hasClass(d.opened)?"addClass":"removeClass"](d.uncollapsed),!0}}return!1}},i[e].defaults[s]={add:!1,addTo:"panels",fixed:!1,collapse:!1},i[e].configuration.classNames[s]={collapsed:"Collapsed"};var d,n,t,l}(jQuery);
}));

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu dragOpen addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(e){function t(e,t,n){return t>e&&(e=t),e>n&&(e=n),e}var n="mmenu",o="dragOpen";e[n].addons[o]={setup:function(){if(this.opts.offCanvas){var i=this,a=this.opts[o],p=this.conf[o];if(r=e[n].glbl,"boolean"==typeof a&&(a={open:a}),"object"!=typeof a&&(a={}),a=this.opts[o]=e.extend(!0,{},e[n].defaults[o],a),a.open){var d,f,c,u,h,l={},m=0,g=!1,v=!1,w=0,_=0;switch(this.opts.offCanvas.position){case"left":case"right":l.events="panleft panright",l.typeLower="x",l.typeUpper="X",v="width";break;case"top":case"bottom":l.events="panup pandown",l.typeLower="y",l.typeUpper="Y",v="height"}switch(this.opts.offCanvas.position){case"right":case"bottom":l.negative=!0,u=function(e){e>=r.$wndw[v]()-a.maxStartPos&&(m=1)};break;default:l.negative=!1,u=function(e){e<=a.maxStartPos&&(m=1)}}switch(this.opts.offCanvas.position){case"left":l.open_dir="right",l.close_dir="left";break;case"right":l.open_dir="left",l.close_dir="right";break;case"top":l.open_dir="down",l.close_dir="up";break;case"bottom":l.open_dir="up",l.close_dir="down"}switch(this.opts.offCanvas.zposition){case"front":h=function(){return this.$menu};break;default:h=function(){return e("."+s.slideout)}}var b=this.__valueOrFn(a.pageNode,this.$menu,r.$page);"string"==typeof b&&(b=e(b));var y=new Hammer(b[0],a.vendors.hammer);y.on("panstart",function(e){u(e.center[l.typeLower]),r.$slideOutNodes=h(),g=l.open_dir}).on(l.events+" panend",function(e){m>0&&e.preventDefault()}).on(l.events,function(e){if(d=e["delta"+l.typeUpper],l.negative&&(d=-d),d!=w&&(g=d>=w?l.open_dir:l.close_dir),w=d,w>a.threshold&&1==m){if(r.$html.hasClass(s.opened))return;m=2,i._openSetup(),i.trigger("opening"),r.$html.addClass(s.dragging),_=t(r.$wndw[v]()*p[v].perc,p[v].min,p[v].max)}2==m&&(f=t(w,10,_)-("front"==i.opts.offCanvas.zposition?_:0),l.negative&&(f=-f),c="translate"+l.typeUpper+"("+f+"px )",r.$slideOutNodes.css({"-webkit-transform":"-webkit-"+c,transform:c}))}).on("panend",function(){2==m&&(r.$html.removeClass(s.dragging),r.$slideOutNodes.css("transform",""),i[g==l.open_dir?"_openFinish":"close"]()),m=0})}}},add:function(){return"function"!=typeof Hammer||Hammer.VERSION<2?(e[n].addons[o].setup=function(){},void 0):(s=e[n]._c,i=e[n]._d,a=e[n]._e,s.add("dragging"),void 0)},clickAnchor:function(){}},e[n].defaults[o]={open:!1,maxStartPos:100,threshold:50,vendors:{hammer:{}}},e[n].configuration[o]={width:{perc:.8,min:140,max:440},height:{perc:.8,min:140,max:880}};var s,i,a,r}(jQuery);
}));

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu fixedElements addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(i){var s="mmenu",a="fixedElements";i[s].addons[a]={setup:function(){if(this.opts.offCanvas){this.opts[a],this.conf[a],t=i[s].glbl;var d=function(i){var s=this.conf.classNames[a].fixed;this.__refactorClass(i.find("."+s),s,"fixed").appendTo(t.$body).addClass(n.slideout)};d.call(this,t.$page),this.bind("setPage",d)}},add:function(){n=i[s]._c,d=i[s]._d,e=i[s]._e,n.add("fixed")},clickAnchor:function(){}},i[s].configuration.classNames[a]={fixed:"Fixed"};var n,d,e,t}(jQuery);
}));

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu footer addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(t){var e="mmenu",o="footer";t[e].addons[o]={setup:function(){var i=this.opts[o];if(this.conf[o],a=t[e].glbl,"boolean"==typeof i&&(i={add:i,update:i}),"object"!=typeof i&&(i={}),i=this.opts[o]=t.extend(!0,{},t[e].defaults[o],i),i.add){var s=i.content?i.content:i.title;t('<div class="'+n.footer+'" />').appendTo(this.$menu).append(s),this.$menu.addClass(n.hasfooter)}if(this.$footer=this.$menu.children("."+n.footer),i.update&&this.$footer&&this.$footer.length){var d=function(e){e=e||this.$menu.children("."+n.current);var s=t("."+this.conf.classNames[o].panelFooter,e).html()||i.title;this.$footer[s?"removeClass":"addClass"](n.hidden),this.$footer.html(s)};this.bind("openPanel",d),this.bind("init",function(){d.call(this,this.$menu.children("."+n.current))})}},add:function(){n=t[e]._c,i=t[e]._d,s=t[e]._e,n.add("footer hasfooter")},clickAnchor:function(){}},t[e].defaults[o]={add:!1,content:!1,title:"",update:!1},t[e].configuration.classNames[o]={panelFooter:"Footer"};var n,i,s,a}(jQuery);
}));

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu header addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(e){var t="mmenu",a="header";e[t].addons[a]={setup:function(){var i=this.opts[a];if(this.conf[a],s=e[t].glbl,"boolean"==typeof i&&(i={add:i,update:i}),"object"!=typeof i&&(i={}),"undefined"==typeof i.content&&(i.content=["prev","title","next"]),i=this.opts[a]=e.extend(!0,{},e[t].defaults[a],i),i.add){if(i.content instanceof Array){for(var d=e("<div />"),h=0,l=i.content.length;l>h;h++)switch(i.content[h]){case"prev":case"next":case"close":d.append('<a class="'+n[i.content[h]]+" "+n.btn+'" href="#"></a>');break;case"title":d.append('<a class="'+n.title+'"></a>');break;default:d.append(i.content[h])}d=d.html()}else var d=i.content;e('<div class="'+n.header+'" />').prependTo(this.$menu).append(d),this.$menu.addClass(n.hasheader),this.bind("init",function(e){e.removeClass(n.hasheader)})}if(this.$header=this.$menu.children("."+n.header),i.update&&this.$header&&this.$header.length){var c=this.$header.find("."+n.title),o=this.$header.find("."+n.prev),f=this.$header.find("."+n.next),p=this.$header.find("."+n.close),u=function(e){e=e||this.$menu.children("."+n.current);var t=e.find("."+this.conf.classNames[a].panelHeader),s=e.find("."+this.conf.classNames[a].panelPrev),d=e.find("."+this.conf.classNames[a].panelNext),h=e.data(r.parent),l=t.html(),p=s.attr("href"),u=d.attr("href"),v=!1,m=s.html(),$=d.html();switch(l||(l=e.children("."+n.header).children("."+n.title).html()),l||(l=i.title),p||(p=e.children("."+n.header).children("."+n.prev).attr("href")),i.titleLink){case"anchor":var v=h?h.children("a").not("."+n.next).attr("href"):!1;break;case"panel":var v=p}c[v?"attr":"removeAttr"]("href",v),c[l?"removeClass":"addClass"](n.hidden),c.html(l),o[p?"attr":"removeAttr"]("href",p),o[p||m?"removeClass":"addClass"](n.hidden),o.html(m),f[u?"attr":"removeAttr"]("href",u),f[u||$?"removeClass":"addClass"](n.hidden),f.html($)};if(this.bind("openPanel",u),this.bind("init",function(){u.call(this,this.$menu.children("."+n.current))}),this.opts.offCanvas){var v=function(e){p.attr("href","#"+e.attr("id"))};v.call(this,s.$page),this.bind("setPage",v)}}},add:function(){n=e[t]._c,r=e[t]._d,i=e[t]._e,n.add("close")},clickAnchor:function(){}},e[t].defaults[a]={add:!1,title:"Menu",titleLink:"panel",update:!1},e[t].configuration.classNames[a]={panelHeader:"Header",panelNext:"Next",panelPrev:"Prev"};var n,r,i,s}(jQuery);
}));

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu offCanvas addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(e){var t="mmenu",o="offCanvas";e[t].addons[o]={setup:function(){if(this.opts[o]){var n=this.opts[o],i=this.conf[o];a=e[t].glbl,this._api=e.merge(this._api,["open","close","setPage"]),("top"==n.position||"bottom"==n.position)&&(n.zposition="front"),"string"!=typeof i.pageSelector&&(i.pageSelector="> "+i.pageNodetype),a.$allMenus=(a.$allMenus||e()).add(this.$menu),this.vars.opened=!1;var r=[s.offcanvas];"left"!=n.position&&r.push(s.mm(n.position)),"back"!=n.zposition&&r.push(s.mm(n.zposition)),this.$menu.addClass(r.join(" ")).parent().removeClass(s.wrapper),this.setPage(a.$page),this._initBlocker(),this["_initWindow_"+o](),this.$menu[i.menuInjectMethod+"To"](i.menuWrapperSelector)}},add:function(){s=e[t]._c,n=e[t]._d,i=e[t]._e,s.add("offcanvas slideout modal background opening blocker page"),n.add("style"),i.add("resize")},clickAnchor:function(e){if(!this.opts[o])return!1;var t=this.$menu.attr("id");if(t&&t.length&&(this.conf.clone&&(t=s.umm(t)),e.is('[href="#'+t+'"]')))return this.open(),!0;if(a.$page){var t=a.$page.attr("id");return t&&t.length&&e.is('[href="#'+t+'"]')?(this.close(),!0):!1}}},e[t].defaults[o]={position:"left",zposition:"back",modal:!1,moveBackground:!0},e[t].configuration[o]={pageNodetype:"div",pageSelector:null,menuWrapperSelector:"body",menuInjectMethod:"prepend"},e[t].prototype.open=function(){if(!this.vars.opened){var e=this;this._openSetup(),setTimeout(function(){e._openFinish()},this.conf.openingInterval),this.trigger("open")}},e[t].prototype._openSetup=function(){var e=this;this.closeAllOthers(),a.$page.data(n.style,a.$page.attr("style")||""),a.$wndw.trigger(i.resize+"-offcanvas",[!0]);var t=[s.opened];this.opts[o].modal&&t.push(s.modal),this.opts[o].moveBackground&&t.push(s.background),"left"!=this.opts[o].position&&t.push(s.mm(this.opts[o].position)),"back"!=this.opts[o].zposition&&t.push(s.mm(this.opts[o].zposition)),this.opts.extensions&&t.push(this.opts.extensions),a.$html.addClass(t.join(" ")),setTimeout(function(){e.vars.opened=!0},this.conf.openingInterval),this.$menu.addClass(s.current+" "+s.opened)},e[t].prototype._openFinish=function(){var e=this;this.__transitionend(a.$page,function(){e.trigger("opened")},this.conf.transitionDuration),a.$html.addClass(s.opening),this.trigger("opening")},e[t].prototype.close=function(){if(this.vars.opened){var e=this;this.__transitionend(a.$page,function(){e.$menu.removeClass(s.current).removeClass(s.opened),a.$html.removeClass(s.opened).removeClass(s.modal).removeClass(s.background).removeClass(s.mm(e.opts[o].position)).removeClass(s.mm(e.opts[o].zposition)),e.opts.extensions&&a.$html.removeClass(e.opts.extensions),a.$page.attr("style",a.$page.data(n.style)),e.vars.opened=!1,e.trigger("closed")},this.conf.transitionDuration),a.$html.removeClass(s.opening),this.trigger("close"),this.trigger("closing")}},e[t].prototype.closeAllOthers=function(){a.$allMenus.not(this.$menu).each(function(){var o=e(this).data(t);o&&o.close&&o.close()})},e[t].prototype.setPage=function(t){t&&t.length||(t=e(this.conf[o].pageSelector,a.$body),t.length>1&&(t=t.wrapAll("<"+this.conf[o].pageNodetype+" />").parent())),t.attr("id",t.attr("id")||this.__getUniqueId()),t.addClass(s.page+" "+s.slideout),a.$page=t,this.trigger("setPage",t)},e[t].prototype["_initWindow_"+o]=function(){a.$wndw.off(i.keydown+"-offcanvas").on(i.keydown+"-offcanvas",function(e){return a.$html.hasClass(s.opened)&&9==e.keyCode?(e.preventDefault(),!1):void 0});var e=0;a.$wndw.off(i.resize+"-offcanvas").on(i.resize+"-offcanvas",function(t,o){if(o||a.$html.hasClass(s.opened)){var n=a.$wndw.height();(o||n!=e)&&(e=n,a.$page.css("minHeight",n))}})},e[t].prototype._initBlocker=function(){var t=this;a.$blck||(a.$blck=e('<div id="'+s.blocker+'" class="'+s.slideout+'" />')),a.$blck.appendTo(a.$body).off(i.touchstart+"-offcanvas "+i.touchmove+"-offcanvas").on(i.touchstart+"-offcanvas "+i.touchmove+"-offcanvas",function(e){e.preventDefault(),e.stopPropagation(),a.$blck.trigger(i.mousedown+"-offcanvas")}).off(i.mousedown+"-offcanvas").on(i.mousedown+"-offcanvas",function(e){e.preventDefault(),a.$html.hasClass(s.modal)||(t.closeAllOthers(),t.close())})};var s,n,i,a}(jQuery);
}));

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu searchfield addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(e){function s(e){switch(e){case 9:case 16:case 17:case 18:case 37:case 38:case 39:case 40:return!0}return!1}var a="mmenu",n="searchfield";e[a].addons[n]={setup:function(){var o=this,d=this.opts[n],c=this.conf[n];r=e[a].glbl,"boolean"==typeof d&&(d={add:d,search:d}),"object"!=typeof d&&(d={}),d=this.opts[n]=e.extend(!0,{},e[a].defaults[n],d),this.bind("init",function(a){if(d.add){switch(d.addTo){case"menu":var n=this.$menu;break;case"panels":var n=a;break;default:var n=e(d.addTo,this.$menu).filter("."+t.panel)}n.each(function(){var s=e(this);if(!s.is("."+t.panel)||!s.is("."+t.vertical)){if(!s.children("."+t.search).length){var a=c.form?"form":"div",n=e("<"+a+' class="'+t.search+'" />');if(c.form&&"object"==typeof c.form)for(var l in c.form)n.attr(l,c.form[l]);n.append('<input placeholder="'+d.placeholder+'" type="text" autocomplete="off" />').prependTo(s),s.addClass(t.hassearch)}if(d.noResults&&(s.is("."+t.menu)&&(s=s.children("."+t.panel).first()),!s.children("."+t.noresultsmsg).length)){var i=s.children("."+t.listview);e('<div class="'+t.noresultsmsg+'" />').append(d.noResults)[i.length?"insertBefore":"prependTo"](i.length?i:s)}}})}d.search&&e("."+t.search,this.$menu).each(function(){var a=e(this);if("menu"==d.addTo)var n=e("."+t.panel,o.$menu),r=o.$menu;else var n=a.closest("."+t.panel),r=n;var c=a.children("input"),h=o.__findAddBack(n,"."+t.listview).children("li"),u=h.filter("."+t.divider),f=o.__filterListItems(h),p="> a",v=p+", > span",m=function(){var s=c.val().toLowerCase();n.scrollTop(0),f.add(u).addClass(t.hidden).find("."+t.fullsubopensearch).removeClass(t.fullsubopen).removeClass(t.fullsubopensearch),f.each(function(){var a=e(this),n=p;(d.showTextItems||d.showSubPanels&&a.find("."+t.next))&&(n=v),e(n,a).text().toLowerCase().indexOf(s)>-1&&a.add(a.prevAll("."+t.divider).first()).removeClass(t.hidden)}),d.showSubPanels&&n.each(function(){var s=e(this);o.__filterListItems(s.find("."+t.listview).children()).each(function(){var s=e(this),a=s.data(l.sub);s.removeClass(t.nosubresults),a&&a.find("."+t.listview).children().removeClass(t.hidden)})}),e(n.get().reverse()).each(function(s){var a=e(this),n=a.data(l.parent);n&&(o.__filterListItems(a.find("."+t.listview).children()).length?(n.hasClass(t.hidden)&&n.children("."+t.next).not("."+t.fullsubopen).addClass(t.fullsubopen).addClass(t.fullsubopensearch),n.removeClass(t.hidden).removeClass(t.nosubresults).prevAll("."+t.divider).first().removeClass(t.hidden)):"menu"==d.addTo&&(a.hasClass(t.opened)&&setTimeout(function(){o.openPanel(n.closest("."+t.panel))},1.5*(s+1)*o.conf.openingInterval),n.addClass(t.nosubresults)))}),r[f.not("."+t.hidden).length?"removeClass":"addClass"](t.noresults),this.update()};c.off(i.keyup+"-searchfield "+i.change+"-searchfield").on(i.keyup+"-searchfield",function(e){s(e.keyCode)||m.call(o)}).on(i.change+"-searchfield",function(){m.call(o)})})})},add:function(){t=e[a]._c,l=e[a]._d,i=e[a]._e,t.add("search hassearch noresultsmsg noresults nosubresults fullsubopensearch"),i.add("change keyup")},clickAnchor:function(){}},e[a].defaults[n]={add:!1,addTo:"menu",search:!1,placeholder:"Search",noResults:"No results found.",showTextItems:!1,showSubPanels:!0},e[a].configuration[n]={form:!1};var t,l,i,r}(jQuery);
}));

View File

@@ -0,0 +1,27 @@
(function ( factory ) {
if ( typeof define === 'function' && define.amd )
{
// AMD. Register as an anonymous module.
define( [ 'jquery' ], factory );
}
else if ( typeof exports === 'object' )
{
// Node/CommonJS
factory( require( 'jquery' ) );
}
else
{
// Browser globals
factory( jQuery );
}
}( function ( jQuery ) {
/*
* jQuery mmenu toggles addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
!function(t){var e="mmenu",c="toggles";t[e].addons[c]={setup:function(){var n=this;this.opts[c],this.conf[c],l=t[e].glbl,this.bind("init",function(e){this.__refactorClass(t("input",e),this.conf.classNames[c].toggle,"toggle"),this.__refactorClass(t("input",e),this.conf.classNames[c].check,"check"),t("input."+s.toggle+", input."+s.check,e).each(function(){var e=t(this),c=e.closest("li"),i=e.hasClass(s.toggle)?"toggle":"check",l=e.attr("id")||n.__getUniqueId();c.children('label[for="'+l+'"]').length||(e.attr("id",l),c.prepend(e),t('<label for="'+l+'" class="'+s[i]+'"></label>').insertBefore(c.children("a, span").last()))})})},add:function(){s=t[e]._c,n=t[e]._d,i=t[e]._e,s.add("toggle check")},clickAnchor:function(){}},t[e].configuration.classNames[c]={toggle:"Toggle",check:"Check"};var s,n,i,l}(jQuery);
}));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="author" content="www.frebsite.nl" />
<meta content="width=600px user-scalable=yes" name="viewport" />
<meta name="robots" content="noindex, nofollow" />
<title>jQuery.mmenu, app look-alike menus with sliding submenus.</title>
<link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=Pacifico" />
<link type="text/css" rel="stylesheet" href="demo/css/site.css" />
</head>
<body>
<div id="wrapper">
<div class="phone">
<iframe name="phone" src="demo/advanced.html" frameborder="0" width="320" height="480"></iframe>
</div>
<div id="page">
<h1>mmenu</h1>
<p>The best jQuery plugin for app look-alike on- and off-canvas menus with sliding submenus for your website and web-app.</p>
<p>Check out the example on the left or <a href="http://mmenu.frebsite.nl/playground.html" target="_blank">play around with the options</a>.</p>
<p>For the full documentation please visit: <a href="http://mmenu.frebsite.nl" target="_blank">mmenu.frebsite.nl</a></p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,31 @@
{
"name" : "mmenu",
"title" : "jQuery mmenu",
"version" : "5.0.4",
"author" : {
"name" : "Fred Heusschen",
"url" : "http://www.frebsite.nl"
},
"description" : "The best jQuery plugin for app look-alike on- and off-canvas menus with sliding submenus for your website and webapp.",
"keywords" : [
"app",
"list",
"listview",
"megamenu",
"menu",
"mmenu",
"mobile",
"navigation",
"off-canvas",
"on-canvas",
"panels",
"submenu"
],
"licenses" : [{
"type" : "MIT",
"url" : "http://opensource.org/licenses/MIT"
}],
"dependencies" : {
"jquery" : ">=1.7.0"
}
}

View File

@@ -0,0 +1,21 @@
{
"name" : "jQuery.mmenu",
"version" : "5.0.4",
"author" : "Fred Heusschen <info@frebsite.nl>",
"description" : "The best jQuery plugin for app look-alike on- and off-canvas menus with sliding submenus for your website and webapp.",
"keywords" : [
"app",
"list",
"listview",
"megamenu",
"menu",
"mmenu",
"mobile",
"navigation",
"off-canvas",
"on-canvas",
"panels",
"submenu"
],
"license" : "MIT"
}

View File

@@ -0,0 +1,73 @@
/*
* jQuery mmenu {ADDON} addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = '{ADDON}';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Extend shortcut options
// Extend shortcut configuration
// ...
// Add methods to api
// this._api = $.merge( this._api, [ 'fn1', 'fn2' ] );
// Bind functions to update
// this.bind( 'update', function() {} );
// this.bind( 'init', function() {} );
// this.bind( 'initPage', function() {} );
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
// ...Add classnames, data and events
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu )
{
// if ( $a.is( '.CLASSNAME' ) )
// {
// return true;
// }
// return false;
}
};
// Default options and configuration
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
// ...
};
$[ _PLUGIN_ ].configuration.classNames[ _ADDON_ ] = {
// ...
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,123 @@
/*
* jQuery mmenu autoHeight addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'autoHeight';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
if ( !this.opts.offCanvas )
{
return;
}
switch( this.opts.offCanvas.position )
{
case 'left':
case 'right':
return;
break;
}
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Extend shortcut options
if ( typeof opts == 'boolean' && opts )
{
opts = {
height: 'auto'
};
}
if ( typeof opts != 'object' )
{
opts = {};
}
opts = this.opts[ _ADDON_ ] = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
if ( opts.height != 'auto' )
{
return;
}
this.$menu.addClass( _c.autoheight );
// Update the height
var update = function( $panl )
{
var $p = this.$menu.children( '.' + _c.current );
_top = parseInt( $p.css( 'top' ) , 10 ) || 0;
_bot = parseInt( $p.css( 'bottom' ) , 10 ) || 0;
this.$menu.addClass( _c.measureheight );
$panl = $panl || this.$menu.children( '.' + _c.current );
if ( $panl.is( '.' + _c.vertical ) )
{
$panl = $panl
.parents( '.' + _c.panel )
.not( '.' + _c.vertical )
.first();
}
this.$menu
.height( $panl.outerHeight() + _top + _bot )
.removeClass( _c.measureheight );
};
this.bind( 'update', update );
this.bind( 'openPanel', update );
this.bind( 'closePanel', update );
this.bind( 'open', update );
glbl.$wndw
.off( _e.resize + '-autoheight' )
.on( _e.resize + '-autoheight',
function( e )
{
update.call( that );
}
);
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'autoheight measureheight' );
_e.add( 'resize' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu ) {}
};
// Default options and configuration
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
height: 'default' // 'auto'
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,106 @@
/*
* jQuery mmenu backButton addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'backButton';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
if ( !this.opts.offCanvas )
{
return;
}
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Extend shortcut options
if ( typeof opts == 'boolean' )
{
opts = {
close : opts
};
}
if ( typeof opts != 'object' )
{
opts = {};
}
opts = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
// Close menu
if ( opts.close )
{
var _hash = '#' + that.$menu.attr( 'id' );
this.bind( 'opened',
function( e )
{
if ( location.hash != _hash )
{
history.pushState( null, document.title, _hash );
}
}
);
$(window).on( 'popstate',
function( e )
{
if ( glbl.$html.hasClass( _c.opened ) )
{
e.stopPropagation();
that.close();
}
else if ( location.hash == _hash )
{
e.stopPropagation();
that.open();
}
}
);
}
},
// add: fired once per page load
add: function()
{
if ( !window.history || !window.history.pushState )
{
$[ _PLUGIN_ ].addons[ _ADDON_ ].setup = function() {};
return;
}
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu ) {}
};
// Default options and configuration
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
close: false
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,88 @@
/*
* jQuery mmenu buttonbars addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'buttonbars';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Bind functions to update
this.bind( 'init',
function( $panels )
{
// Refactor buttonbar class
this.__refactorClass( $('div', $panels), this.conf.classNames[ _ADDON_ ].buttonbar, 'buttonbar' );
// Add markup
$('.' + _c.buttonbar, $panels)
.each(
function()
{
var $bbar = $(this),
$btns = $bbar.children().not( 'input' ),
$inpt = $bbar.children().filter( 'input' );
$bbar.addClass( _c.buttonbar + '-' + $btns.length );
$inpt
.each(
function()
{
var $inp = $(this),
$lbl = $btns.filter( 'label[for="' + $inp.attr( 'id' ) + '"]' );
if ( $lbl.length )
{
$inp.insertBefore( $lbl );
}
}
);
}
);
}
);
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'buttonbar' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu ) {}
};
// Default options and configuration
$[ _PLUGIN_ ].configuration.classNames[ _ADDON_ ] = {
buttonbar: 'Buttonbar'
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,140 @@
/*
* jQuery mmenu counters addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'counters';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Extend shortcut options
if ( typeof opts == 'boolean' )
{
opts = {
add : opts,
update : opts
};
}
if ( typeof opts != 'object' )
{
opts = {};
}
opts = this.opts[ _ADDON_ ] = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
// Refactor counter class
this.bind( 'init',
function( $panels )
{
this.__refactorClass( $('em', $panels), this.conf.classNames[ _ADDON_ ].counter, 'counter' );
}
);
// Add the counters
if ( opts.add )
{
this.bind( 'init',
function( $panels )
{
$panels
.each(
function()
{
var $prnt = $(this).data( _d.parent );
if ( $prnt )
{
if ( !$prnt.children( 'em.' + _c.counter ).length )
{
$prnt.prepend( $( '<em class="' + _c.counter + '" />' ) );
}
}
}
);
}
);
}
if ( opts.update )
{
this.bind( 'update',
function()
{
this.$menu
.find( '.' + _c.panel )
.each(
function()
{
var $panl = $(this),
$prnt = $panl.data( _d.parent );
if ( !$prnt )
{
return;
}
var $cntr = $prnt.children( 'em.' + _c.counter );
if ( !$cntr.length )
{
return;
}
$panl = $panl.children( '.' + _c.listview );
if ( !$panl.length )
{
return;
}
$cntr.html( that.__filterListItems( $panl.children() ).length );
}
);
}
);
}
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'counter search noresultsmsg' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu ) {}
};
// Default options and configuration
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
add : false,
update : false
};
$[ _PLUGIN_ ].configuration.classNames[ _ADDON_ ] = {
counter: 'Counter'
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,237 @@
/*
* jQuery mmenu dividers addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'dividers';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Extend shortcut options
if ( typeof opts == 'boolean' )
{
opts = {
add : opts,
fixed : opts
};
}
if ( typeof opts != 'object' )
{
opts = {};
}
opts = this.opts[ _ADDON_ ] = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
// Refactor collapsed class
this.bind( 'init',
function( $panels )
{
this.__refactorClass( $('li', this.$menu), this.conf.classNames[ _ADDON_ ].collapsed, 'collapsed' );
}
);
// Add dividers
if ( opts.add )
{
this.bind( 'init',
function( $panels )
{
switch( opts.addTo )
{
case 'panels':
var $wrapper = $panels;
break;
default:
var $wrapper = $(opts.addTo, this.$menu).filter( '.' + _c.panel );
break;
}
$('.' + _c.divider, $wrapper).remove();
$wrapper
.find( '.' + _c.listview )
.not( '.' + _c.vertical )
.each(
function()
{
var last = '';
that.__filterListItems( $(this).children() )
.each(
function()
{
var crnt = $.trim( $(this).children( 'a, span' ).text() ).slice( 0, 1 ).toLowerCase();
if ( crnt != last && crnt.length )
{
last = crnt;
$( '<li class="' + _c.divider + '">' + crnt + '</li>' ).insertBefore( this );
}
}
);
}
);
}
);
}
// Toggle collapsed list items
if ( opts.collapse )
{
this.bind( 'init',
function( $panels )
{
$('.' + _c.divider, $panels )
.each(
function()
{
var $l = $(this),
$e = $l.nextUntil( '.' + _c.divider, '.' + _c.collapsed );
if ( $e.length )
{
if ( !$l.children( '.' + _c.subopen ).length )
{
$l.wrapInner( '<span />' );
$l.prepend( '<a href="#" class="' + _c.subopen + ' ' + _c.fullsubopen + '" />' );
}
}
}
);
}
);
}
// Fixed dividers
if ( opts.fixed )
{
var update = function( $panl )
{
$panl = $panl || this.$menu.children( '.' + _c.current );
var $dvdr = $panl
.find( '.' + _c.divider )
.not( '.' + _c.hidden );
if ( $dvdr.length )
{
this.$menu.addClass( _c.hasdividers );
var scrl = $panl.scrollTop() || 0,
text = '';
if ( $panl.is( ':visible' ) )
{
$panl
.find( '.' + _c.divider )
.not( '.' + _c.hidden )
.each(
function()
{
if ( $(this).position().top + scrl < scrl + 1 )
{
text = $(this).text();
}
}
);
}
this.$fixeddivider.text( text );
}
else
{
this.$menu.removeClass( _c.hasdividers );
}
};
// Add the fixed divider
this.$fixeddivider = $('<ul class="' + _c.listview + ' ' + _c.fixeddivider + '"><li class="' + _c.divider + '"></li></ul>')
.prependTo( this.$menu )
.children();
this.bind( 'openPanel', update );
// Set correct value onScroll
this.bind( 'init',
function( $panels )
{
$panels
.off( _e.scroll + '-dividers ' + _e.touchmove + '-dividers' )
.on( _e.scroll + '-dividers ' + _e.touchmove + '-dividers',
function( e )
{
update.call( that, $(this) );
}
)
}
);
}
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'collapsed uncollapsed fixeddivider hasdividers' );
_e.add( 'scroll' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu )
{
if ( this.opts[ _ADDON_ ].collapse && inMenu )
{
var $l = $a.parent();
if ( $l.is( '.' + _c.divider ) )
{
var $e = $l.nextUntil( '.' + _c.divider, '.' + _c.collapsed );
$l.toggleClass( _c.opened );
$e[ $l.hasClass( _c.opened ) ? 'addClass' : 'removeClass' ]( _c.uncollapsed );
return true;
}
}
return false;
}
};
// Default options and configuration
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
add : false,
addTo : 'panels',
fixed : false,
collapse : false
};
$[ _PLUGIN_ ].configuration.classNames[ _ADDON_ ] = {
collapsed: 'Collapsed'
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,309 @@
/*
* jQuery mmenu dragOpen addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'dragOpen';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
if ( !this.opts.offCanvas )
{
return;
}
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Extend shortcut options
if ( typeof opts == 'boolean' )
{
opts = {
open: opts
};
}
if ( typeof opts != 'object' )
{
opts = {};
}
opts = this.opts[ _ADDON_ ] = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
// Drag open
if ( opts.open )
{
// Set up variables
var drag = {},
_stage = 0,
_direction = false,
_dimension = false,
_distance = 0,
_maxDistance = 0;
var new_distance, drag_distance, css_value,
doPanstart, getSlideNodes;
switch( this.opts.offCanvas.position )
{
case 'left':
case 'right':
drag.events = 'panleft panright';
drag.typeLower = 'x';
drag.typeUpper = 'X';
_dimension = 'width';
break;
case 'top':
case 'bottom':
drag.events = 'panup pandown';
drag.typeLower = 'y';
drag.typeUpper = 'Y';
_dimension = 'height';
break;
}
switch( this.opts.offCanvas.position )
{
case 'right':
case 'bottom':
drag.negative = true;
doPanstart = function( pos )
{
if ( pos >= glbl.$wndw[ _dimension ]() - opts.maxStartPos )
{
_stage = 1;
}
};
break;
default:
drag.negative = false;
doPanstart = function( pos )
{
if ( pos <= opts.maxStartPos )
{
_stage = 1;
}
}
break;
}
switch( this.opts.offCanvas.position )
{
case 'left':
drag.open_dir = 'right';
drag.close_dir = 'left';
break;
case 'right':
drag.open_dir = 'left';
drag.close_dir = 'right';
break;
case 'top':
drag.open_dir = 'down';
drag.close_dir = 'up';
break;
case 'bottom':
drag.open_dir = 'up';
drag.close_dir = 'down';
break;
}
switch ( this.opts.offCanvas.zposition )
{
case 'front':
getSlideNodes = function()
{
return this.$menu;
};
break;
default:
getSlideNodes = function()
{
return $('.' + _c.slideout);
};
break;
};
var $dragNode = this.__valueOrFn( opts.pageNode, this.$menu, glbl.$page );
if ( typeof $dragNode == 'string' )
{
$dragNode = $($dragNode);
}
// Bind events
var _hammer = new Hammer( $dragNode[ 0 ], opts.vendors.hammer );
_hammer
.on( 'panstart',
function( e )
{
doPanstart( e.center[ drag.typeLower ] );
glbl.$slideOutNodes = getSlideNodes();
_direction = drag.open_dir;
}
)
.on( drag.events + ' panend',
function( e )
{
if ( _stage > 0 )
{
e.preventDefault();
}
}
)
.on( drag.events,
function( e )
{
new_distance = e[ 'delta' + drag.typeUpper ];
if ( drag.negative )
{
new_distance = -new_distance;
}
if ( new_distance != _distance )
{
_direction = ( new_distance >= _distance )
? drag.open_dir
: drag.close_dir;
}
_distance = new_distance;
if ( _distance > opts.threshold )
{
if ( _stage == 1 )
{
if ( glbl.$html.hasClass( _c.opened ) )
{
return;
}
_stage = 2;
that._openSetup();
that.trigger( 'opening' );
glbl.$html.addClass( _c.dragging );
_maxDistance = minMax(
glbl.$wndw[ _dimension ]() * conf[ _dimension ].perc,
conf[ _dimension ].min,
conf[ _dimension ].max
);
}
}
if ( _stage == 2 )
{
drag_distance = minMax( _distance, 10, _maxDistance ) - ( that.opts.offCanvas.zposition == 'front' ? _maxDistance : 0 );
if ( drag.negative )
{
drag_distance = -drag_distance;
}
css_value = 'translate' + drag.typeUpper + '(' + drag_distance + 'px )';
glbl.$slideOutNodes.css({
'-webkit-transform': '-webkit-' + css_value,
'transform': css_value
});
}
}
)
.on( 'panend',
function( e )
{
if ( _stage == 2 )
{
glbl.$html.removeClass( _c.dragging );
glbl.$slideOutNodes.css( 'transform', '' );
that[ _direction == drag.open_dir ? '_openFinish' : 'close' ]();
}
_stage = 0;
}
);
}
},
// add: fired once per page load
add: function()
{
if ( typeof Hammer != 'function' || Hammer.VERSION < 2 )
{
$[ _PLUGIN_ ].addons[ _ADDON_ ].setup = function() {};
return;
}
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'dragging' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu ) {}
};
// Default options and configuration
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
open : false,
// pageNode : null,
maxStartPos : 100,
threshold : 50,
vendors : {
hammer : {}
}
};
$[ _PLUGIN_ ].configuration[ _ADDON_ ] = {
width : {
perc : 0.8,
min : 140,
max : 440
},
height : {
perc : 0.8,
min : 140,
max : 880
}
};
var _c, _d, _e, glbl;
function minMax( val, min, max )
{
if ( val < min )
{
val = min;
}
if ( val > max )
{
val = max;
}
return val;
}
})( jQuery );

View File

@@ -0,0 +1,67 @@
/*
* jQuery mmenu fixedElements addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'fixedElements';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
if ( !this.opts.offCanvas )
{
return;
}
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
var setPage = function( $page )
{
// Refactor fixed classes
var _fixd = this.conf.classNames[ _ADDON_ ].fixed;
this.__refactorClass( $page.find( '.' + _fixd ), _fixd, 'fixed' )
.appendTo( glbl.$body )
.addClass( _c.slideout );
};
setPage.call( this, glbl.$page );
this.bind( 'setPage', setPage );
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'fixed' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu ) {}
};
// Default options and configuration
$[ _PLUGIN_ ].configuration.classNames[ _ADDON_ ] = {
fixed : 'Fixed'
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,109 @@
/*
* jQuery mmenu footer addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'footer';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Extend shortcut options
if ( typeof opts == 'boolean' )
{
opts = {
add : opts,
update : opts
};
}
if ( typeof opts != 'object' )
{
opts = {};
}
opts = this.opts[ _ADDON_ ] = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
// Add markup
if ( opts.add )
{
var content = opts.content
? opts.content
: opts.title;
$( '<div class="' + _c.footer + '" />' )
.appendTo( this.$menu )
.append( content );
this.$menu.addClass( _c.hasfooter );
}
this.$footer = this.$menu.children( '.' + _c.footer );
// Update content
if ( opts.update && this.$footer && this.$footer.length )
{
var update = function( $panl )
{
$panl = $panl || this.$menu.children( '.' + _c.current );
var _cnt = $('.' + this.conf.classNames[ _ADDON_ ].panelFooter, $panl).html() || opts.title;
this.$footer[ _cnt ? 'removeClass' : 'addClass' ]( _c.hidden );
this.$footer.html( _cnt );
};
this.bind( 'openPanel', update );
this.bind( 'init',
function()
{
update.call( this, this.$menu.children( '.' + _c.current ) );
}
);
}
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'footer hasfooter' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu ) {}
};
// Default options and configuration
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
add : false,
content : false,
title : '',
update : false
};
$[ _PLUGIN_ ].configuration.classNames[ _ADDON_ ] = {
panelFooter: 'Footer'
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,211 @@
/*
* jQuery mmenu header addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'header';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Extend shortcut options
if ( typeof opts == 'boolean' )
{
opts = {
add : opts,
update : opts
};
}
if ( typeof opts != 'object' )
{
opts = {};
}
if ( typeof opts.content == 'undefined' )
{
opts.content = [ 'prev', 'title', 'next' ];
}
opts = this.opts[ _ADDON_ ] = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
// Add markup
if ( opts.add )
{
if ( opts.content instanceof Array )
{
var $content = $( '<div />' );
for ( var c = 0, l = opts.content.length; c < l; c++ )
{
switch ( opts.content[ c ] )
{
case 'prev':
case 'next':
case 'close':
$content.append( '<a class="' + _c[ opts.content[ c ] ] + ' ' + _c.btn + '" href="#"></a>' );
break;
case 'title':
$content.append( '<a class="' + _c.title + '"></a>' );
break;
default:
$content.append( opts.content[ c ] );
break;
}
}
$content = $content.html();
}
else
{
var $content = opts.content;
}
$( '<div class="' + _c.header + '" />' )
.prependTo( this.$menu )
.append( $content );
this.$menu
.addClass( _c.hasheader );
this.bind( 'init',
function( $panel )
{
$panel.removeClass( _c.hasheader );
}
);
}
this.$header = this.$menu.children( '.' + _c.header );
// Update content
if ( opts.update && this.$header && this.$header.length )
{
var $titl = this.$header.find( '.' + _c.title ),
$prev = this.$header.find( '.' + _c.prev ),
$next = this.$header.find( '.' + _c.next ),
$clse = this.$header.find( '.' + _c.close );
var update = function( $panl )
{
$panl = $panl || this.$menu.children( '.' + _c.current );
// Find title, prev and next
var $ttl = $panl.find( '.' + this.conf.classNames[ _ADDON_ ].panelHeader ),
$prv = $panl.find( '.' + this.conf.classNames[ _ADDON_ ].panelPrev ),
$nxt = $panl.find( '.' + this.conf.classNames[ _ADDON_ ].panelNext ),
$prt = $panl.data( _d.parent );
var _ttl = $ttl.html(),
_prv = $prv.attr( 'href' ),
_nxt = $nxt.attr( 'href' ),
_prt = false;
var _prv_txt = $prv.html(),
_nxt_txt = $nxt.html();
if ( !_ttl )
{
_ttl = $panl.children( '.' + _c.header ).children( '.' + _c.title ).html();
}
if ( !_ttl )
{
_ttl = opts.title;
}
if ( !_prv )
{
_prv = $panl.children( '.' + _c.header ).children( '.' + _c.prev ).attr( 'href' );
}
switch ( opts.titleLink )
{
case 'anchor':
var _prt = ( $prt ) ? $prt.children( 'a' ).not( '.' + _c.next ).attr( 'href' ) : false;
break;
case 'panel':
var _prt = _prv;
break;
}
$titl[ _prt ? 'attr' : 'removeAttr' ]( 'href', _prt );
$titl[ _ttl ? 'removeClass' : 'addClass' ]( _c.hidden );
$titl.html( _ttl );
$prev[ _prv ? 'attr' : 'removeAttr' ]( 'href', _prv );
$prev[ _prv || _prv_txt ? 'removeClass' : 'addClass' ]( _c.hidden );
$prev.html( _prv_txt );
$next[ _nxt ? 'attr' : 'removeAttr' ]( 'href', _nxt );
$next[ _nxt || _nxt_txt ? 'removeClass' : 'addClass' ]( _c.hidden );
$next.html( _nxt_txt );
};
this.bind( 'openPanel', update );
this.bind( 'init',
function()
{
update.call( this, this.$menu.children( '.' + _c.current ) );
}
);
if ( this.opts.offCanvas )
{
var setPage = function( $page )
{
$clse.attr( 'href', '#' + $page.attr( 'id' ) );
};
setPage.call( this, glbl.$page );
this.bind( 'setPage', setPage );
}
}
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'close' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu ) {}
};
// Default options and configuration
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
add : false,
// content : [ 'prev', 'title', 'next' ],
title : 'Menu',
titleLink : 'panel',
update : false
};
$[ _PLUGIN_ ].configuration.classNames[ _ADDON_ ] = {
panelHeader : 'Header',
panelNext : 'Next',
panelPrev : 'Prev'
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,395 @@
/*
* jQuery mmenu offCanvas addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'offCanvas';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
if ( !this.opts[ _ADDON_ ] )
{
return;
}
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Add methods to api
this._api = $.merge( this._api, [ 'open', 'close', 'setPage' ] );
// Debug positioning
if ( opts.position == 'top' || opts.position == 'bottom' )
{
opts.zposition = 'front';
}
// Extend configuration
if ( typeof conf.pageSelector != 'string' )
{
conf.pageSelector = '> ' + conf.pageNodetype;
}
glbl.$allMenus = ( glbl.$allMenus || $() ).add( this.$menu );
// Setup the menu
this.vars.opened = false;
var clsn = [ _c.offcanvas ];
if ( opts.position != 'left' )
{
clsn.push( _c.mm( opts.position ) );
}
if ( opts.zposition != 'back' )
{
clsn.push( _c.mm( opts.zposition ) );
}
this.$menu
.addClass( clsn.join( ' ' ) )
.parent()
.removeClass( _c.wrapper );
// Setup the page
this.setPage( glbl.$page );
// Setup the UI blocker and the window
this._initBlocker();
this[ '_initWindow_' + _ADDON_ ]();
// Append to the body
this.$menu[ conf.menuInjectMethod + 'To' ]( conf.menuWrapperSelector );
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'offcanvas slideout modal background opening blocker page' );
_d.add( 'style' );
_e.add( 'resize' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu )
{
if ( !this.opts[ _ADDON_ ] )
{
return false;
}
// Open menu
var id = this.$menu.attr( 'id' );
if ( id && id.length )
{
if ( this.conf.clone )
{
id = _c.umm( id );
}
if ( $a.is( '[href="#' + id + '"]' ) )
{
this.open();
return true;
}
}
// Close menu
if ( !glbl.$page )
{
return;
}
var id = glbl.$page.attr( 'id' );
if ( id && id.length )
{
if ( $a.is( '[href="#' + id + '"]' ) )
{
this.close();
return true;
}
}
return false;
}
};
// Default options and configuration
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
position : 'left',
zposition : 'back',
modal : false,
moveBackground : true
};
$[ _PLUGIN_ ].configuration[ _ADDON_ ] = {
pageNodetype : 'div',
pageSelector : null,
menuWrapperSelector : 'body',
menuInjectMethod : 'prepend'
};
// Methods
$[ _PLUGIN_ ].prototype.open = function()
{
if ( this.vars.opened )
{
return;
}
var that = this;
this._openSetup();
// Without the timeout, the animation won't work because the element had display: none;
setTimeout(
function()
{
that._openFinish();
}, this.conf.openingInterval
);
this.trigger( 'open' );
};
$[ _PLUGIN_ ].prototype._openSetup = function()
{
var that = this;
// Close other menus
this.closeAllOthers();
// Store style and position
glbl.$page.data( _d.style, glbl.$page.attr( 'style' ) || '' );
// Trigger window-resize to measure height
glbl.$wndw.trigger( _e.resize + '-offcanvas', [ true ] );
var clsn = [ _c.opened ];
// Add options
if ( this.opts[ _ADDON_ ].modal )
{
clsn.push( _c.modal );
}
if ( this.opts[ _ADDON_ ].moveBackground )
{
clsn.push( _c.background );
}
if ( this.opts[ _ADDON_ ].position != 'left' )
{
clsn.push( _c.mm( this.opts[ _ADDON_ ].position ) );
}
if ( this.opts[ _ADDON_ ].zposition != 'back' )
{
clsn.push( _c.mm( this.opts[ _ADDON_ ].zposition ) );
}
if ( this.opts.extensions )
{
clsn.push( this.opts.extensions );
}
glbl.$html.addClass( clsn.join( ' ' ) );
// Open
setTimeout(function(){
that.vars.opened = true;
},this.conf.openingInterval);
this.$menu.addClass( _c.current + ' ' + _c.opened );
};
$[ _PLUGIN_ ].prototype._openFinish = function()
{
var that = this;
// Callback
this.__transitionend( glbl.$page,
function()
{
that.trigger( 'opened' );
}, this.conf.transitionDuration
);
// Opening
glbl.$html.addClass( _c.opening );
this.trigger( 'opening' );
};
$[ _PLUGIN_ ].prototype.close = function()
{
if ( !this.vars.opened )
{
return;
}
var that = this;
// Callback
this.__transitionend( glbl.$page,
function()
{
that.$menu
.removeClass( _c.current )
.removeClass( _c.opened );
glbl.$html
.removeClass( _c.opened )
.removeClass( _c.modal )
.removeClass( _c.background )
.removeClass( _c.mm( that.opts[ _ADDON_ ].position ) )
.removeClass( _c.mm( that.opts[ _ADDON_ ].zposition ) );
if ( that.opts.extensions )
{
glbl.$html.removeClass( that.opts.extensions );
}
// Restore style and position
glbl.$page.attr( 'style', glbl.$page.data( _d.style ) );
that.vars.opened = false;
that.trigger( 'closed' );
}, this.conf.transitionDuration
);
// Closing
glbl.$html.removeClass( _c.opening );
this.trigger( 'close' );
this.trigger( 'closing' );
};
$[ _PLUGIN_ ].prototype.closeAllOthers = function()
{
glbl.$allMenus
.not( this.$menu )
.each(
function()
{
var api = $(this).data( _PLUGIN_ );
if ( api && api.close )
{
api.close();
}
}
);
}
$[ _PLUGIN_ ].prototype.setPage = function( $page )
{
if ( !$page || !$page.length )
{
$page = $(this.conf[ _ADDON_ ].pageSelector, glbl.$body);
if ( $page.length > 1 )
{
$page = $page.wrapAll( '<' + this.conf[ _ADDON_ ].pageNodetype + ' />' ).parent();
}
}
$page.attr( 'id', $page.attr( 'id' ) || this.__getUniqueId() );
$page.addClass( _c.page + ' ' + _c.slideout );
glbl.$page = $page;
this.trigger( 'setPage', $page );
};
$[ _PLUGIN_ ].prototype[ '_initWindow_' + _ADDON_ ] = function()
{
// Prevent tabbing
glbl.$wndw
.off( _e.keydown + '-offcanvas' )
.on( _e.keydown + '-offcanvas',
function( e )
{
if ( glbl.$html.hasClass( _c.opened ) )
{
if ( e.keyCode == 9 )
{
e.preventDefault();
return false;
}
}
}
);
// Set page min-height to window height
var _h = 0;
glbl.$wndw
.off( _e.resize + '-offcanvas' )
.on( _e.resize + '-offcanvas',
function( e, force )
{
if ( force || glbl.$html.hasClass( _c.opened ) )
{
var nh = glbl.$wndw.height();
if ( force || nh != _h )
{
_h = nh;
glbl.$page.css( 'minHeight', nh );
}
}
}
);
};
$[ _PLUGIN_ ].prototype._initBlocker = function()
{
var that = this;
if ( !glbl.$blck )
{
glbl.$blck = $( '<div id="' + _c.blocker + '" class="' + _c.slideout + '" />' );
}
glbl.$blck
.appendTo( glbl.$body )
.off( _e.touchstart + '-offcanvas ' + _e.touchmove + '-offcanvas' )
.on( _e.touchstart + '-offcanvas ' + _e.touchmove + '-offcanvas',
function( e )
{
e.preventDefault();
e.stopPropagation();
glbl.$blck.trigger( _e.mousedown + '-offcanvas' );
}
)
.off( _e.mousedown + '-offcanvas' )
.on( _e.mousedown + '-offcanvas',
function( e )
{
e.preventDefault();
if ( !glbl.$html.hasClass( _c.modal ) )
{
that.closeAllOthers();
that.close();
}
}
);
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,337 @@
/*
* jQuery mmenu searchfield addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'searchfield';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Extend shortcut options
if ( typeof opts == 'boolean' )
{
opts = {
add : opts,
search : opts
};
}
if ( typeof opts != 'object' )
{
opts = {};
}
opts = this.opts[ _ADDON_ ] = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
// Bind functions to update
this.bind( 'init',
function( $panels )
{
// Add the searchfield(s)
if ( opts.add )
{
switch( opts.addTo )
{
case 'menu':
var $wrapper = this.$menu;
break;
case 'panels':
var $wrapper = $panels;
break;
default:
var $wrapper = $(opts.addTo, this.$menu).filter( '.' + _c.panel );
break;
}
$wrapper
.each(
function()
{
// Add the searchfield
var $panl = $(this);
if ( $panl.is( '.' + _c.panel ) && $panl.is( '.' + _c.vertical ) )
{
return;
}
if ( !$panl.children( '.' + _c.search ).length )
{
var _node = ( conf.form )
? 'form'
: 'div';
var $node = $( '<' + _node + ' class="' + _c.search + '" />' );
if ( conf.form && typeof conf.form == 'object' )
{
for ( var f in conf.form )
{
$node.attr( f, conf.form[ f ] );
}
}
$node.append( '<input placeholder="' + opts.placeholder + '" type="text" autocomplete="off" />' )
.prependTo( $panl );
$panl.addClass( _c.hassearch );
}
if ( opts.noResults )
{
if ( $panl.is( '.' + _c.menu ) )
{
$panl = $panl.children( '.' + _c.panel ).first();
}
if ( !$panl.children( '.' + _c.noresultsmsg ).length )
{
var $lst = $panl.children( '.' + _c.listview );
$( '<div class="' + _c.noresultsmsg + '" />' )
.append( opts.noResults )
[ $lst.length ? 'insertBefore' : 'prependTo' ]( $lst.length ? $lst : $panl );
}
}
}
);
}
/*
if ( this.$menu.children( '.' + _c.search ).length )
{
this.$menu.addClass( _c.hassearch );
}
*/
// Search through list items
if ( opts.search )
{
$('.' + _c.search, this.$menu)
.each(
function()
{
var $srch = $(this);
if ( opts.addTo == 'menu' )
{
var $pnls = $('.' + _c.panel, that.$menu),
$panl = that.$menu;
}
else
{
var $pnls = $srch.closest( '.' + _c.panel ),
$panl = $pnls;
}
var $inpt = $srch.children( 'input' ),
$itms = that.__findAddBack( $pnls, '.' + _c.listview ).children( 'li' ),
$dvdr = $itms.filter( '.' + _c.divider ),
$rslt = that.__filterListItems( $itms );
var _anchor = '> a',
_both = _anchor + ', > span';
var search = function()
{
var query = $inpt.val().toLowerCase();
// Scroll to top
$pnls.scrollTop( 0 );
// Search through items
$rslt
.add( $dvdr )
.addClass( _c.hidden )
.find( '.' + _c.fullsubopensearch )
.removeClass( _c.fullsubopen )
.removeClass( _c.fullsubopensearch );
$rslt
.each(
function()
{
var $item = $(this),
_search = _anchor;
if ( opts.showTextItems || ( opts.showSubPanels && $item.find( '.' + _c.next ) ) )
{
_search = _both;
}
if ( $(_search, $item).text().toLowerCase().indexOf( query ) > -1 )
{
$item.add( $item.prevAll( '.' + _c.divider ).first() ).removeClass( _c.hidden );
}
}
);
// Update sub items
if ( opts.showSubPanels )
{
$pnls.each(
function( i )
{
var $panl = $(this);
that.__filterListItems( $panl.find( '.' + _c.listview ).children() )
.each(
function()
{
var $li = $(this),
$su = $li.data( _d.sub );
$li.removeClass( _c.nosubresults );
if ( $su )
{
$su.find( '.' + _c.listview ).children().removeClass( _c.hidden );
}
}
);
}
);
}
// Update parent for submenus
$( $pnls.get().reverse() )
.each(
function( i )
{
var $panl = $(this),
$prnt = $panl.data( _d.parent );
if ( $prnt )
{
if ( that.__filterListItems( $panl.find( '.' + _c.listview ).children() ).length )
{
if ( $prnt.hasClass( _c.hidden ) )
{
$prnt.children( '.' + _c.next )
.not( '.' + _c.fullsubopen )
.addClass( _c.fullsubopen )
.addClass( _c.fullsubopensearch );
}
$prnt
.removeClass( _c.hidden )
.removeClass( _c.nosubresults )
.prevAll( '.' + _c.divider )
.first()
.removeClass( _c.hidden );
}
else if ( opts.addTo == 'menu' )
{
if ( $panl.hasClass( _c.opened ) )
{
// Compensate the timeout for the opening animation
setTimeout(
function()
{
that.openPanel( $prnt.closest( '.' + _c.panel ) );
}, ( i + 1 ) * ( that.conf.openingInterval * 1.5 )
);
}
$prnt.addClass( _c.nosubresults );
}
}
}
);
// Show/hide no results message
$panl[ $rslt.not( '.' + _c.hidden ).length ? 'removeClass' : 'addClass' ]( _c.noresults );
// Update for other addons
this.update();
}
$inpt
.off( _e.keyup + '-searchfield ' + _e.change + '-searchfield' )
.on( _e.keyup + '-searchfield',
function( e )
{
if ( !preventKeypressSearch( e.keyCode ) )
{
search.call( that );
}
}
)
.on( _e.change + '-searchfield',
function( e )
{
search.call( that );
}
);
}
);
}
}
);
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'search hassearch noresultsmsg noresults nosubresults fullsubopensearch' );
_e.add( 'change keyup' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu ) {}
};
// Default options and configuration
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
add : false,
addTo : 'menu',
search : false,
placeholder : 'Search',
noResults : 'No results found.',
showTextItems : false,
showSubPanels : true
};
$[ _PLUGIN_ ].configuration[ _ADDON_ ] = {
form : false
};
var _c, _d, _e, glbl;
function preventKeypressSearch( c )
{
switch( c )
{
case 9: // tab
case 16: // shift
case 17: // control
case 18: // alt
case 37: // left
case 38: // top
case 39: // right
case 40: // bottom
return true;
}
return false;
}
})( jQuery );

View File

@@ -0,0 +1,178 @@
/*
* jQuery mmenu sectionIndexer addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'sectionIndexer';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
// Extend shortcut options
if ( typeof opts == 'boolean' )
{
opts = {
add: opts
};
}
if ( typeof opts != 'object' )
{
opts = {};
}
opts = this.opts[ _ADDON_ ] = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
this.bind( 'init',
function( $panels )
{
// Set the panel(s)
if ( opts.add )
{
switch( opts.addTo )
{
case 'panels':
var $wrapper = $panels;
break;
default:
var $wrapper = $(opts.addTo, this.$menu).filter( '.' + _c.panel );
break;
}
$wrapper
.find( '.' + _c.divider )
.closest( '.' + _c.panel )
.addClass( _c.hasindexer );
}
// Add the indexer, only if it does not allready excists
if ( !this.$indexer &&
this.$menu.children( '.' + _c.hasindexer ).length
) {
this.$indexer = $( '<div class="' + _c.indexer + '" />' )
.prependTo( this.$menu )
.append(
'<a href="#a">a</a>' +
'<a href="#b">b</a>' +
'<a href="#c">c</a>' +
'<a href="#d">d</a>' +
'<a href="#e">e</a>' +
'<a href="#f">f</a>' +
'<a href="#g">g</a>' +
'<a href="#h">h</a>' +
'<a href="#i">i</a>' +
'<a href="#j">j</a>' +
'<a href="#k">k</a>' +
'<a href="#l">l</a>' +
'<a href="#m">m</a>' +
'<a href="#n">n</a>' +
'<a href="#o">o</a>' +
'<a href="#p">p</a>' +
'<a href="#q">q</a>' +
'<a href="#r">r</a>' +
'<a href="#s">s</a>' +
'<a href="#t">t</a>' +
'<a href="#u">u</a>' +
'<a href="#v">v</a>' +
'<a href="#w">w</a>' +
'<a href="#x">x</a>' +
'<a href="#y">y</a>' +
'<a href="#z">z</a>' +
'<a href="##">#</a>' );
// Scroll onMouseOver
this.$indexer
.children()
.on( _e.mouseover + '-searchfield ' + _c.touchmove + '-searchfield',
function( e )
{
var lttr = $(this).attr( 'href' ).slice( 1 ),
$panl = that.$menu.children( '.' + _c.current ),
$list = $panl.find( '.' + _c.listview );
var newTop = false,
oldTop = $panl.scrollTop(),
lstTop = $list.position().top + parseInt( $list.css( 'margin-top' ), 10 ) + parseInt( $list.css( 'padding-top' ), 10 ) + oldTop;
$panl.scrollTop( 0 );
$list
.children( '.' + _c.divider )
.not( '.' + _c.hidden )
.each(
function()
{
if ( newTop === false &&
lttr == $(this).text().slice( 0, 1 ).toLowerCase()
) {
newTop = $(this).position().top + lstTop;
}
}
);
$panl.scrollTop( newTop !== false ? newTop : oldTop );
}
);
// Show or hide the indexer
var update = function( $panl )
{
that.$menu[ ( $panl.hasClass( _c.hasindexer ) ? 'add' : 'remove' ) + 'Class' ]( _c.hasindexer );
};
this.bind( 'openPanel', update );
update.call( this, this.$menu.children( '.' + _c.current ) );
}
}
);
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'indexer hasindexer' );
_e.add( 'mouseover touchmove' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu )
{
if ( $a.parent().is( '.' + _c.indexer ) )
{
return true;
}
}
};
// Default options and configuration
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
add : false,
addTo : 'panels'
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,84 @@
/*
* jQuery mmenu toggles addon
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_ADDON_ = 'toggles';
$[ _PLUGIN_ ].addons[ _ADDON_ ] = {
// setup: fired once per menu
setup: function()
{
var that = this,
opts = this.opts[ _ADDON_ ],
conf = this.conf[ _ADDON_ ];
glbl = $[ _PLUGIN_ ].glbl;
this.bind( 'init',
function( $panels )
{
// Refactor toggle classes
this.__refactorClass( $('input', $panels), this.conf.classNames[ _ADDON_ ].toggle, 'toggle' );
this.__refactorClass( $('input', $panels), this.conf.classNames[ _ADDON_ ].check, 'check' );
// Add markup
$('input.' + _c.toggle + ', input.' + _c.check, $panels)
.each(
function()
{
var $inpt = $(this),
$prnt = $inpt.closest( 'li' ),
cl = $inpt.hasClass( _c.toggle ) ? 'toggle' : 'check',
id = $inpt.attr( 'id' ) || that.__getUniqueId();
if ( !$prnt.children( 'label[for="' + id + '"]' ).length )
{
$inpt.attr( 'id', id );
$prnt.prepend( $inpt );
$('<label for="' + id + '" class="' + _c[ cl ] + '"></label>')
.insertBefore( $prnt.children( 'a, span' ).last() );
}
}
);
}
);
},
// add: fired once per page load
add: function()
{
_c = $[ _PLUGIN_ ]._c;
_d = $[ _PLUGIN_ ]._d;
_e = $[ _PLUGIN_ ]._e;
_c.add( 'toggle check' );
},
// clickAnchor: prevents default behavior when clicking an anchor
clickAnchor: function( $a, inMenu ) {}
};
// Default options and configuration
$[ _PLUGIN_ ].configuration.classNames[ _ADDON_ ] = {
toggle : 'Toggle',
check : 'Check'
};
var _c, _d, _e, glbl;
})( jQuery );

View File

@@ -0,0 +1,288 @@
/*
* Debugger for jQuery mmenu
* Include this file after including the jquery.mmenu plugin to debug your menu.
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu';
if ( typeof console == 'undefined' )
{
return false;
}
var _log = document[ _PLUGIN_ + '_debug_log' ] || console.log,
_warn = document[ _PLUGIN_ + '_debug_warn' ] || console.warn;
var glbl = $[ _PLUGIN_ ].glbl,
_c = $[ _PLUGIN_ ]._c,
_d = $[ _PLUGIN_ ]._d,
_e = $[ _PLUGIN_ ]._e;
function debug( msg )
{
_log( 'MMENU: ' + msg );
};
function deprecated( depr, repl, vers )
{
var msg = 'MMENU: ' + depr + 'is deprecated';
if ( vers )
{
msg += ' as of version ' + vers;
}
if ( repl )
{
msg += ', use ' + repl + ' instead.';
}
else
{
msg += '.';
}
_warn( msg );
};
$[ _PLUGIN_ ].prototype.___deprecated = function()
{
// Options 5.0
if ( typeof this.opts.labels != 'undefined' )
{
deprecated( 'The option "labels"', '"dividers"', '5.0' );
}
if ( typeof this.opts.classes != 'undefined' )
{
deprecated( 'The option "classes"', '"extensions"', '5.0' );
}
if ( typeof this.opts.searchfield != 'undefined' )
{
if ( typeof this.opts.searchfield.showLinksOnly != 'undefined' )
{
deprecated( 'The option "searchfield.showLinksOnly"', '"!searchfield.showTextItems"', '5.0' );
}
}
// Configuration 5.0
if ( typeof this.conf.classNames.label != 'undefined' )
{
deprecated( 'The configuration option "classNames.labels"', '"classNames.dividers"', '5.0' );
}
// HTML 5.0
if ( this.$menu.find( '.Label' ).length )
{
deprecated( 'The classname "Label"', '"Divider"', '5.0' );
}
if ( $( '.FixedTop' ).length )
{
deprecated( 'The classname "FixedTop"', '"Fixed"', '5.0' );
}
if ( $( '.FixedBottom' ).length )
{
deprecated( 'The classname "FixedBottom"', '"Fixed"', '5.0' );
}
// Custom events 5.0
this.$menu.on(
'setPage setPage.mm setSelected setSelected.mm open open.mm opening opening.mm opened opened.mm close close.mm closing closing.mm closed closed.mm toggle toggle.mm',
function( e )
{
deprecated( 'The custom event "' + e.type + '"', 'the API', '5.0' );
}
)
// Options 4.6
if ( this.opts.header )
{
if ( this.opts.header.add instanceof Array )
{
deprecated( 'An array for the "header.add" option', 'header.content', '4.6' );
}
}
// Vendors 4.4
if ( typeof 'Hammer' == 'function' && Hammer.VERSION < 2 )
{
deprecated( 'Older version of the Hammer library', 'version 2 or newer', '4.4' );
return;
}
// Options 4.3
for ( var a = [ 'position', 'zposition', 'modal', 'moveBackground' ], b = 0, l = a.length; b < l; b++ )
{
if ( typeof this.opts[ a[ b ] ] != 'undefined' )
{
deprecated( 'The option "' + a[ b ] + '"', 'offCanvas.' + a[ b ], '4.3' );
}
}
// Configuration 4.3
for ( var a = [ 'panel', 'list', 'selected', 'label', 'spacer' ], b = 0, l = a.length; b < l; b++ )
{
if ( typeof this.conf[ a[ b ] + 'Class' ] != 'undefined' )
{
deprecated( 'The configuration option "' + a[ b ] + 'Class"', 'classNames.' + a[ b ], '4.3' );
}
}
if ( typeof this.conf.counterClass != 'undefined' )
{
deprecated( 'The configuration option "counterClass"', 'classNames.counters.counter', '4.3' );
}
if ( typeof this.conf.collapsedClass != 'undefined' )
{
deprecated( 'The configuration option "collapsedClass"', 'classNames.labels.collapsed', '4,3' );
}
if ( typeof this.conf.header != 'undefined' )
{
for ( var a = [ 'panelHeader', 'panelNext', 'panelPrev' ], b = 0, l = a.length; b < l; b++ )
{
if ( typeof this.conf.header[ a[ b ] + 'Class' ] != 'undefined' )
{
deprecated( 'The configuration option "header.' + a[ b ] + 'Class"', 'classNames.header.' + a[ b ], '4.3' );
}
}
}
for ( var a = [ 'pageNodetype', 'pageSelector', 'menuWrapperSelector', 'menuInjectMethod' ], b = 0, l = a.length; b < l; b++ )
{
if ( typeof this.conf[ a[ b ] ] != 'undefined' )
{
deprecated( 'The configuration option "' + a[ b ] + '"', 'offCanvas.' + a[ b ], '4.3' );
}
}
// Options 4.2
if ( this.opts.offCanvas )
{
if ( this.opts.offCanvas.position == 'top' || this.opts.offCanvas.position == 'bottom' )
{
if ( this.opts.offCanvas.zposition == 'back' || this.opts.offCanvas.zposition == 'next' )
{
deprecated( 'Using offCanvas.position "' + this.opts.offCanvas.position + '" in combination with offCanvas.zposition "' + this.opts.offCanvas.zposition + '"', 'offCanvas.zposition "front"', '4.2' );
}
}
}
// Options 4.1
if ( this.opts.onClick && typeof this.opts.onClick.setLocationHref != 'undefined' )
{
deprecated( 'The option "onClick.setLocationHref"', '!onClick.preventDefault', '4.1' );
}
// Configuration 4.1
if ( typeof this.conf.panelNodeType != 'undefined' )
{
deprecated( 'panelNodeType configuration option', 'panelNodetype' );
}
};
$[ _PLUGIN_ ].prototype.___debug = function()
{
// non-available add-ons
var addons = [ 'autoHeight', 'backButton', 'buttonbars', 'counters', 'dividers', 'dragOpen', 'footer', 'header', 'offCanvas', 'searchfield', 'sectionIndexer', 'toggles' ];
for ( var a in addons )
{
if ( typeof this.opts[ addons[ a ] ] != 'undefined' )
{
if ( typeof $[ _PLUGIN_ ].addons[ addons[ a ] ] == 'undefined' )
{
debug( 'The "' + addons[ a ] + '" add-on is not available.' );
}
}
}
var position = false,
zposition = false;
if ( this.opts.offCanvas )
{
position = this.opts.offCanvas.position;
zposition = this.opts.offCanvas.zposition;
}
// background color
if ( zposition == 'back' )
{
var bg = $('body').css( 'background-color' );
if ( typeof bg == 'undefined' || bg == '' || bg == 'transparent' )
{
debug( 'Set a background-color for the <BODY />.' );
}
}
if ( position == 'left' || position == 'right' )
{
if ( this.opts.autoHeight && this.opts.autoHeight.height != 'default' )
{
debug( 'Don\'t use the "autoHeight" option with the "offCanvas.position" option set to "' + position + '".' );
}
}
// incompattible with iconbar
var fxSlide = ( this.opts.extensions.indexOf( 'mm-effect-slide' ) > -1 ),
fxZoom = ( this.opts.extensions.indexOf( 'mm-effect-zoom-menu' ) > -1 ),
fxZoomPnls = ( this.opts.extensions.indexOf( 'mm-effect-zoom-panels' ) > -1 ),
iconbar = ( $[ _PLUGIN_ ].glbl.$page && parseInt( $[ _PLUGIN_ ].glbl.$page.css( 'padding-right' ) ) > 0 );
if ( iconbar )
{
// iconbar + effects
if ( fxSlide || fxZoom )
{
debug( 'Don\'t use the "iconbar" extension in combination with the "' + ( fxSlide ? 'slide' : 'zoom-menu' ) + '" effect.' );
}
// iconbar + (z)position
if ( this.opts.offCanvas )
{
if ( position != 'left' )
{
debug( 'Don\'t use the "iconbar" extension in combination with the "offCanvas.position" option set to "' + position + '".' );
}
if ( zposition != 'back' )
{
debug( 'Don\'t use the "iconbar" extension in combination with the "offCanvas.zposition" option set to "' + zposition + '".' );
}
}
}
// effects + vertical submenus
if ( fxZoomPnls && !this.opts.slidingSubmenus )
{
debug( 'Don\'t use the "zoom-panels" effect in combination with the "slidingSubmenus" option set to "false".' );
}
// effects + onCanvas / (z)position
if ( fxSlide || fxZoom )
{
if ( this.opts.offCanvas )
{
if ( position == 'top' || position == 'bottom' )
{
debug( 'Don\'t use the "' + ( fxSlide ? 'slide' : 'zoom-menu' ) + '" effect in combination with the "offCanvas.position" option set to "' + position + '".' );
}
if ( zposition != 'back' )
{
debug( 'Don\'t use the "' + ( fxSlide ? 'slide' : 'zoom-menu' ) + '" effect in combination with the "offCanvas.zposition" option set to "' + zposition + '".' );
}
}
else
{
debug( 'Don\'t use the "' + ( fxSlide ? 'slide' : 'zoom-menu' ) + '" effect in combination with the "offCanvas" option set to "false".' );
}
}
};
})( jQuery );

View File

@@ -0,0 +1,5 @@
/*
This file does not excist.
If you are looking for the unminified version of jquery.mmenu.min.js,
hava a look at the files jquery.mmenu.oncanvas.js and jquery.mmenu.offcanvas.js
*/

View File

@@ -0,0 +1,761 @@
/*
* jQuery mmenu v5.0.4
* @requires jQuery 1.7.0 or later
*
* mmenu.frebsite.nl
*
* Copyright (c) Fred Heusschen
* www.frebsite.nl
*
* Licensed under the MIT license:
* http://en.wikipedia.org/wiki/MIT_License
*/
(function( $ ) {
var _PLUGIN_ = 'mmenu',
_VERSION_ = '5.0.4';
// Plugin already excists
if ( $[ _PLUGIN_ ] )
{
return;
}
/*
Class
*/
$[ _PLUGIN_ ] = function( $menu, opts, conf )
{
this.$menu = $menu;
this._api = [ 'bind', 'init', 'update', 'setSelected', 'getInstance', 'openPanel', 'closePanel', 'closeAllPanels' ];
this.opts = opts;
this.conf = conf;
this.vars = {};
this.cbck = {};
if ( typeof this.___deprecated == 'function' )
{
this.___deprecated();
}
this._initMenu();
this._initAnchors();
var $panels = this.$menu.children( this.conf.panelNodetype );
this._initAddons();
this.init( $panels );
if ( typeof this.___debug == 'function' )
{
this.___debug();
}
return this;
};
$[ _PLUGIN_ ].version = _VERSION_;
$[ _PLUGIN_ ].addons = {};
$[ _PLUGIN_ ].uniqueId = 0;
$[ _PLUGIN_ ].defaults = {
extensions : [],
onClick : {
// close : true,
// blockUI : null,
// preventDefault : null,
setSelected : true
},
slidingSubmenus : true
};
$[ _PLUGIN_ ].configuration = {
classNames : {
panel : 'Panel',
vertical : 'Vertical',
selected : 'Selected',
divider : 'Divider',
spacer : 'Spacer'
},
clone : false,
openingInterval : 25,
panelNodetype : 'ul, ol, div',
transitionDuration : 400
};
$[ _PLUGIN_ ].prototype = {
init: function( $panels )
{
$panels = $panels.not( '.' + _c.nopanel );
$panels = this._initPanels( $panels );
this.trigger( 'init', $panels );
this.trigger( 'update' );
},
update: function()
{
this.trigger( 'update' );
},
setSelected: function( $i )
{
this.$menu.find( '.' + _c.listview ).children().removeClass( _c.selected );
$i.addClass( _c.selected );
this.trigger( 'setSelected', $i );
},
openPanel: function( $panel )
{
var $l = $panel.parent();
// Vertical
if ( $l.hasClass( _c.vertical ) )
{
var $sub = $l.parents( '.' + _c.subopened );
if ( $sub.length )
{
return this.openPanel( $sub.first() );
}
$l.addClass( _c.opened );
}
// Horizontal
else
{
if ( $panel.hasClass( _c.current ) )
{
return;
}
var $panels = $(this.$menu).children( '.' + _c.panel ),
$current = $panels.filter( '.' + _c.current );
$panels
.removeClass( _c.highest )
.removeClass( _c.current )
.not( $panel )
.not( $current )
.not( '.' + _c.vertical )
.addClass( _c.hidden );
if ( $panel.hasClass( _c.opened ) )
{
$current
.addClass( _c.highest )
.removeClass( _c.opened )
.removeClass( _c.subopened );
}
else
{
$panel.addClass( _c.highest );
$current.addClass( _c.subopened );
}
$panel
.removeClass( _c.hidden )
.addClass( _c.current );
// Without the timeout, the animation won't work because the element had display: none;
setTimeout(
function()
{
$panel
.removeClass( _c.subopened )
.addClass( _c.opened );
}, this.conf.openingInterval
);
}
this.trigger( 'openPanel', $panel );
},
closePanel: function( $panel )
{
var $l = $panel.parent();
// Vertical only
if ( $l.hasClass( _c.vertical ) )
{
$l.removeClass( _c.opened );
this.trigger( 'closePanel', $panel );
}
},
closeAllPanels: function()
{
// Vertical
this.$menu.find( '.' + _c.listview )
.children()
.removeClass( _c.selected )
.filter( '.' + _c.vertical )
.removeClass( _c.opened );
// Horizontal
var $pnls = this.$menu.children( '.' + _c.panel ),
$frst = $pnls.first();
this.$menu.children( '.' + _c.panel )
.not( $frst )
.removeClass( _c.subopened )
.removeClass( _c.opened )
.removeClass( _c.current )
.removeClass( _c.highest )
.addClass( _c.hidden );
this.openPanel( $frst );
},
togglePanel: function( $panel )
{
var $l = $panel.parent();
// Vertical only
if ( $l.hasClass( _c.vertical ) )
{
this[ $l.hasClass( _c.opened ) ? 'closePanel' : 'openPanel' ]( $panel );
}
},
getInstance: function()
{
return this;
},
bind: function( event, fn )
{
this.cbck[ event ] = this.cbck[ event ] || [];
this.cbck[ event ].push( fn );
},
trigger: function()
{
var that = this,
args = Array.prototype.slice.call( arguments ),
evnt = args.shift();
if ( this.cbck[ evnt ] )
{
for ( e in this.cbck[ evnt ] )
{
this.cbck[ evnt ][ e ].apply( that, args );
}
}
},
_initMenu: function()
{
var that = this;
// Clone if needed
if ( this.opts.offCanvas && this.conf.clone )
{
this.$menu = this.$menu.clone( true );
this.$menu.add( this.$menu.find( '*' ) )
.filter( '[id]' )
.each(
function()
{
$(this).attr( 'id', _c.mm( $(this).attr( 'id' ) ) );
}
);
}
// Strip whitespace
this.$menu.contents().each(
function()
{
if ( $(this)[ 0 ].nodeType == 3 )
{
$(this).remove();
}
}
);
this.$menu
.parent()
.addClass( _c.wrapper );
var clsn = [ _c.menu ];
// Add direction class
if ( !this.opts.slidingSubmenus )
{
clsn.push( _c.vertical );
}
// Add extensions
this.opts.extensions = ( this.opts.extensions.length )
? 'mm-' + this.opts.extensions.join( ' mm-' )
: '';
if ( this.opts.extensions )
{
clsn.push( this.opts.extensions );
}
this.$menu.addClass( clsn.join( ' ' ) );
},
_initPanels: function( $panels )
{
var that = this;
// Add List class
this.__findAddBack( $panels, 'ul, ol' )
.not( '.' + _c.nolistview )
.addClass( _c.listview );
var $lis = this.__findAddBack( $panels, '.' + _c.listview ).children();
// Refactor Selected class
this.__refactorClass( $lis, this.conf.classNames.selected, 'selected' );
// Refactor divider class
this.__refactorClass( $lis, this.conf.classNames.divider, 'divider' );
// Refactor Spacer class
this.__refactorClass( $lis, this.conf.classNames.spacer, 'spacer' );
// Refactor Panel class
this.__refactorClass( this.__findAddBack( $panels, '.' + this.conf.classNames.panel ), this.conf.classNames.panel, 'panel' );
// Create panels
var $curpanels = $(),
$oldpanels = $panels
.add( this.__findAddBack( $panels, '.' + _c.listview ).children().children( this.conf.panelNodetype ) )
.not( '.' + _c.nopanel );
this.__refactorClass( $oldpanels, this.conf.classNames.vertical, 'vertical' );
if ( !this.opts.slidingSubmenus )
{
$oldpanels.addClass( _c.vertical );
}
$oldpanels
.each(
function()
{
var $t = $(this),
$p = $t;
if ( $t.is( 'ul, ol' ) )
{
$t.wrap( '<div class="' + _c.panel + '" />' );
$p = $t.parent();
}
else
{
$p.addClass( _c.panel );
}
var id = $t.attr( 'id' );
$t.removeAttr( 'id' );
$p.attr( 'id', id || that.__getUniqueId() );
if ( $t.hasClass( _c.vertical ) )
{
$t.removeClass( that.conf.classNames.vertical );
$p.add( $p.parent() ).addClass( _c.vertical );
}
$curpanels = $curpanels.add( $p );
var $f = $p.children().first(),
$l = $p.children().last();
if ( $f.is( '.' + _c.listview ) )
{
$f.addClass( _c.first );
}
if ( $l.is( '.' + _c.listview ) )
{
$l.addClass( _c.last );
}
}
);
var $allpanels = $('.' + _c.panel, this.$menu);
// Add open and close links to menu items
$curpanels
.each(
function( i )
{
var $t = $(this),
$l = $t.parent(),
$a = $l.children( 'a, span' );
if ( !$l.is( '.' + _c.menu ) && !$t.data( _d.parent ) )
{
$l.data( _d.sub, $t );
$t.data( _d.parent, $l );
if ( $l.parent().is( '.' + _c.listview ) )
{
// Open link
var id = $t.attr( 'id' ),
$b = $( '<a class="' + _c.next + '" href="#' + id + '" data-target="#' + id + '" />' ).insertBefore( $a );
if ( !$a.is( 'a' ) )
{
$b.addClass( _c.fullsubopen );
}
}
// Close link
if ( !$l.hasClass( _c.vertical ) )
{
var $p = $l.closest( '.' + _c.panel );
if ( $p.length )
{
var id = $p.attr( 'id' );
$t.prepend( '<div class="' + _c.header + '"><a class="' + _c.btn + ' ' + _c.prev + '" href="#' + id + '" data-target="#' + id + '"></a><a class="' + _c.title + '">' + $a.text() + '</a></div>' );
$t.addClass( _c.hasheader );
}
}
}
}
);
// Add opened-classes to parents
var $s = this.__findAddBack( $panels, '.' + _c.listview )
.children( '.' + _c.selected )
.removeClass( _c.selected )
.last()
.addClass( _c.selected );
$s.add( $s.parentsUntil( '.' + _c.menu, 'li' ) )
.filter( '.' + _c.vertical )
.addClass( _c.opened )
.end()
.not( '.' + _c.vertical )
.each(
function()
{
$(this).parentsUntil( '.' + _c.menu, '.' + _c.panel )
.not( '.' + _c.vertical )
.first()
.addClass( _c.opened )
.parentsUntil( '.' + _c.menu, '.' + _c.panel )
.not( '.' + _c.vertical )
.first()
.addClass( _c.opened )
.addClass( _c.subopened );
}
);
// Add opened-classes to child
$s.children( '.' + _c.panel )
.not( '.' + _c.vertical )
.addClass( _c.opened )
.parentsUntil( '.' + _c.menu, '.' + _c.panel )
.not( '.' + _c.vertical )
.first()
.addClass( _c.opened )
.addClass( _c.subopened );
// Set current opened
var $current = $allpanels.filter( '.' + _c.opened );
if ( !$current.length )
{
$current = $curpanels.first();
}
$current
.addClass( _c.opened )
.last()
.addClass( _c.current );
// Rearrange markup
$curpanels
.not( '.' + _c.vertical )
.not( $current.last() )
.addClass( _c.hidden )
.end()
.appendTo( this.$menu );
return $curpanels;
},
_initAnchors: function()
{
var that = this;
glbl.$body
.on( _e.click + '-oncanvas',
'a[href]',
function( e )
{
var $t = $(this),
fired = false,
inMenu = that.$menu.find( $t ).length;
// Find behavior for addons
for ( var a in $[ _PLUGIN_ ].addons )
{
if ( fired = $[ _PLUGIN_ ].addons[ a ].clickAnchor.call( that, $t, inMenu ) )
{
break;
}
}
// Open/Close panel
if ( !fired && inMenu )
{
var _h = $t.attr( 'href' );
if ( _h.length > 1 && _h.slice( 0, 1 ) == '#' )
{
var $h = $(_h, that.$menu);
if ( $h.is( '.' + _c.panel ) )
{
fired = true;
that[ $t.parent().hasClass( _c.vertical ) ? 'togglePanel' : 'openPanel' ]( $h );
}
}
}
if ( fired )
{
e.preventDefault();
}
// All other anchors in lists
if ( !fired && inMenu )
{
if ( $t.is( '.' + _c.listview + ' > li > a' )
&& !$t.is( '[rel="external"]' )
&& !$t.is( '[target="_blank"]' ) )
{
// Set selected item
if ( that.__valueOrFn( that.opts.onClick.setSelected, $t ) )
{
that.setSelected( $(e.target).parent() );
}
// Prevent default / don't follow link. Default: false
var preventDefault = that.__valueOrFn( that.opts.onClick.preventDefault, $t, _h.slice( 0, 1 ) == '#' );
if ( preventDefault )
{
e.preventDefault();
}
// Block UI. Default: false if preventDefault, true otherwise
if ( that.__valueOrFn( that.opts.onClick.blockUI, $t, !preventDefault ) )
{
glbl.$html.addClass( _c.blocking );
}
// Close menu. Default: true if preventDefault, false otherwise
if ( that.__valueOrFn( that.opts.onClick.close, $t, preventDefault ) )
{
that.close();
}
}
}
}
);
},
_initAddons: function()
{
// Add add-ons to plugin
for ( var a in $[ _PLUGIN_ ].addons )
{
$[ _PLUGIN_ ].addons[ a ].add.call( this );
$[ _PLUGIN_ ].addons[ a ].add = function() {};
}
// Setup adds-on for menu
for ( var a in $[ _PLUGIN_ ].addons )
{
$[ _PLUGIN_ ].addons[ a ].setup.call( this );
}
},
__api: function()
{
var that = this,
api = {};
$.each( this._api,
function( i )
{
var fn = this;
api[ fn ] = function()
{
var re = that[ fn ].apply( that, arguments );
return ( typeof re == 'undefined' ) ? api : re;
}
}
);
return api;
},
__valueOrFn: function( o, $e, d )
{
if ( typeof o == 'function' )
{
return o.call( $e[ 0 ] );
}
if ( typeof o == 'undefined' && typeof d != 'undefined' )
{
return d;
}
return o;
},
__refactorClass: function( $e, o, c )
{
return $e.filter( '.' + o ).removeClass( o ).addClass( _c[ c ] );
},
__findAddBack: function( $e, s )
{
return $e.find( s ).add( $e.filter( s ) );
},
__filterListItems: function( $i )
{
return $i
.not( '.' + _c.divider )
.not( '.' + _c.hidden );
},
__transitionend: function( $e, fn, duration )
{
var _ended = false,
_fn = function()
{
if ( !_ended )
{
fn.call( $e[ 0 ] );
}
_ended = true;
};
$e.one( _e.transitionend, _fn );
$e.one( _e.webkitTransitionEnd, _fn );
setTimeout( _fn, duration * 1.1 );
},
__getUniqueId: function()
{
return _c.mm( $[ _PLUGIN_ ].uniqueId++ );
}
};
/*
jQuery plugin
*/
$.fn[ _PLUGIN_ ] = function( opts, conf )
{
// First time plugin is fired
initPlugin();
// Extend options
opts = $.extend( true, {}, $[ _PLUGIN_ ].defaults, opts );
conf = $.extend( true, {}, $[ _PLUGIN_ ].configuration, conf );
return this.each(
function()
{
var $menu = $(this);
if ( $menu.data( _PLUGIN_ ) )
{
return;
}
var _menu = new $[ _PLUGIN_ ]( $menu, opts, conf );
$menu.data( _PLUGIN_, _menu.__api() );
}
);
};
/*
SUPPORT
*/
$[ _PLUGIN_ ].support = {
touch: 'ontouchstart' in window || navigator.msMaxTouchPoints
};
// Global variables
var _c, _d, _e, glbl;
function initPlugin()
{
if ( $[ _PLUGIN_ ].glbl )
{
return;
}
glbl = {
$wndw : $(window),
$html : $('html'),
$body : $('body')
};
// Classnames, Datanames, Eventnames
_c = {};
_d = {};
_e = {};
$.each( [ _c, _d, _e ],
function( i, o )
{
o.add = function( c )
{
c = c.split( ' ' );
for ( var d in c )
{
o[ c[ d ] ] = o.mm( c[ d ] );
}
};
}
);
// Classnames
_c.mm = function( c ) { return 'mm-' + c; };
_c.add( 'wrapper menu vertical panel nopanel current highest opened subopened header hasheader title btn prev next first last listview nolistview selected divider spacer hidden fullsubopen' );
_c.umm = function( c )
{
if ( c.slice( 0, 3 ) == 'mm-' )
{
c = c.slice( 3 );
}
return c;
};
// Datanames
_d.mm = function( d ) { return 'mm-' + d; };
_d.add( 'parent sub' );
// Eventnames
_e.mm = function( e ) { return e + '.mm'; };
_e.add( 'transitionend webkitTransitionEnd mousedown mouseup touchstart touchmove touchend click keydown' );
$[ _PLUGIN_ ]._c = _c;
$[ _PLUGIN_ ]._d = _d;
$[ _PLUGIN_ ]._e = _e;
$[ _PLUGIN_ ].glbl = glbl;
}
})( jQuery );

View File

@@ -0,0 +1,217 @@
@mixin mm_colors( $cls: "",
$baseBg: $mm_backgroundColor,
$color: $mm_textColor, $dimmedColor: $mm_dimmedTextColor,
$emphasizedBg: $mm_emphasizedBackgroundColor, $highlightedBg: $mm_highlightedBackgroundColor,
$borderColor: $mm_borderColor
) {
.mm-menu#{$cls}
{
background: $baseBg;
color: $color;
.mm-header
{
border-color: $borderColor;
> a
{
color: $dimmedColor;
}
.mm-btn:before,
.mm-btn:after
{
border-color: $dimmedColor;
}
}
.mm-listview
{
> li:after
{
border-color: $borderColor;
}
> li
{
> a
{
&.mm-prev,
&.mm-next
{
color: $dimmedColor;
}
&.mm-prev:before,
&.mm-next:after
{
border-color: $dimmedColor;
}
&.mm-prev:after,
&.mm-next:before
{
border-color: $borderColor;
}
}
}
> li.mm-selected
{
> a:not(.mm-next),
> span
{
background: $emphasizedBg;
}
}
}
&.mm-vertical .mm-listview li.mm-opened,
.mm-listview li.mm-opened.mm-vertical
{
> a.mm-next,
> .mm-panel
{
background: $highlightedBg;
}
}
.mm-divider
{
background: $highlightedBg;
}
}
}
@mixin mm_colors_buttonbars( $cls: "",
$baseBg: $mm_backgroundColor,
$color: $mm_textColor
) {
.mm-menu#{$cls}
{
.mm-buttonbar
{
border-color: $color;
background: $baseBg;
> *
{
border-color: $color;
}
> input:checked + label
{
background: $color;
color: $baseBg;
}
}
}
}
@mixin mm_colors_checks( $cls: "",
$color: $mm_textColor
) {
.mm-menu#{$cls} label.mm-check:before
{
border-color: $color;
}
}
@mixin mm_colors_counters( $cls: "",
$dimmedColor: $mm_dimmedTextColor
) {
.mm-menu#{$cls} em.mm-counter
{
color: $dimmedColor;
}
}
@mixin mm_colors_dividers( $cls: "",
$highlightedBg: $mm_highlightedBackgroundColor
) {
.mm-menu#{$cls}
{
.mm-fixeddivider span
{
background: $highlightedBg;
}
}
}
@mixin mm_colors_footer( $cls: "",
$dimmedColor: $mm_dimmedTextColor,
$borderColor: $mm_borderColor
) {
.mm-menu#{$cls}
{
.mm-footer
{
border-color: $borderColor;
color: $dimmedColor;
}
}
}
@mixin mm_colors_pageshadow( $cls: "",
$pageShadow: $mm_pageShadow
) {
.mm-menu.mm-pageshadow#{$cls}
{
&:after
{
@if ( $pageShadow )
{
box-shadow: $pageShadow;
}
@else
{
content: none;
display: none;
}
}
}
}
@mixin mm_colors_searchfield( $cls: "",
$inputBg: $mm_inputBackgroundColor, $color: $mm_textColor,
$dimmedColor: $mm_dimmedTextColor
) {
.mm-menu#{$cls}
{
.mm-search input
{
background: $inputBg;
color: $color;
}
.mm-noresultsmsg
{
color: $dimmedColor;
}
}
}
@mixin mm_colors_sectionindexer( $cls: "",
$color: $mm_dimmedTextColor
) {
.mm-menu#{$cls} .mm-indexer a
{
color: $color;
}
}
@mixin mm_colors_toggles( $cls: "",
$buttonBg: $mm_backgroundColor,
$offBg: $mm_borderColor, $onBg: $mm_toggleCheckedColor
) {
.mm-menu#{$cls}
{
label.mm-toggle
{
background: $offBg;
&:before
{
background: $buttonBg;
}
}
input.mm-toggle:checked ~ label.mm-toggle
{
background: $onBg;
}
}
}

View File

@@ -0,0 +1,93 @@
// Arrows
@mixin mm_arrow
{
content: '';
border: 2px solid transparent;
display: inline-block;
width: 8px;
height: 8px;
margin: auto;
position: absolute;
top: 0;
bottom: 0;
@include mm_webkit_prefix( "transform", rotate( -45deg ) );
}
@mixin mm_arrow_prev
{
border-right: none;
border-bottom: none;
left: $mm_listitemIndent;
}
@mixin mm_arrow_next
{
border-top: none;
border-left: none;
right: $mm_listitemIndent;
}
// Borders
@mixin mm_border( $border, $pseudo, $pos1, $pos2, $pos3 )
{
&:#{$pseudo}
{
content: '';
border-#{$border}-width: 1px;
border-#{$border}-style: solid;
display: block;
position: absolute;
#{$pos1}: 0;
#{$pos2}: 0;
#{$pos3}: 0;
}
}
@mixin mm_border_top
{
@include mm_border( "top", "before", "left", "right", "top" );
}
@mixin mm_border_right
{
@include mm_border( "right", "after", "top", "bottom", "right" );
}
@mixin mm_border_bottom
{
@include mm_border( "bottom", "after", "left", "right", "bottom" );
}
@mixin mm_border_left
{
@include mm_border( "left", "before", "top", "bottom", "left" );
}
// Misc
@mixin mm_vendor_prefix( $prop, $val )
{
-webkit-#{$prop}: $val;
-moz-#{$prop}: $val;
-ms-#{$prop}: $val;
-o-#{$prop}: $val;
#{$prop}: $val;
}
@mixin mm_webkit_prefix( $prop, $val )
{
// we're not yet ready to drop vendor prefixes due to IE9 and older versions of FF
@include mm_vendor_prefix( $prop, $val );
// -webkit-#{$prop}: $val;
// #{$prop}: $val;
}
@mixin mm_ellipsis()
{
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
@mixin mm_clearfix()
{
&:after
{
content: '';
display: block;
clear: both;
}
}

View File

@@ -0,0 +1,86 @@
// Sizing left (default)
@mixin mm_sizing( $cls: "",
$width: $mm_menuWidth, $minWidth: $mm_menuMinWidth, $maxWidth: $mm_menuMaxWidth
) {
.mm-menu#{$cls}
{
width: percentage( $width );
min-width: $minWidth;
max-width: $maxWidth;
}
html.mm-opening#{$cls}
{
.mm-slideout
{
@include mm-webkit-prefix( 'transform', translate( percentage( $width ), 0 ) );
}
}
@media all and (max-width: $minWidth / $width ) {
html.mm-opening#{$cls}
{
.mm-slideout
{
@include mm-webkit-prefix( 'transform', translate( $minWidth, 0 ) );
}
}
}
@media all and (min-width: $maxWidth / $width ) {
html.mm-opening#{$cls}
{
.mm-slideout
{
@include mm-webkit-prefix( 'transform', translate( $maxWidth, 0 ) );
}
}
}
}
// Sizing right
@mixin mm_sizing_right( $cls: "",
$width: $mm_menuWidth, $minWidth: $mm_menuMinWidth, $maxWidth: $mm_menuMaxWidth
) {
html.mm-right.mm-opening#{$cls}
{
.mm-slideout
{
@include mm-webkit-prefix( 'transform', translate( -( percentage( $width ) ), 0 ) );
}
}
@media all and ( max-width: $minWidth / $width ) {
html.mm-right.mm-opening#{$cls}
{
.mm-slideout
{
@include mm-webkit-prefix( 'transform', translate( -$minWidth, 0 ) );
}
}
}
@media all and ( min-width: $maxWidth / $width ) {
html.mm-right.mm-opening#{$cls}
{
.mm-slideout
{
@include mm-webkit-prefix( 'transform', translate( -$maxWidth, 0 ) );
}
}
}
}
// Sizing z-position
@mixin mm_sizing_zposition( $cls: "",
$height: $mm_menuHeight, $minHeight: $mm_menuMinHeight, $maxHeight: $mm_menuMaxHeight
) {
// top
// bottom
.mm-menu#{$cls}
{
&.mm-top,
&.mm-bottom
{
height: percentage( $height );
min-height: $minHeight;
max-height: $maxHeight;
}
}
}

View File

@@ -0,0 +1,68 @@
// Animations
$mm_transitionDuration: 0.4s !default;
$mm_transitionFunction: ease !default;
// Colors
$mm_backgroundColor : #f3f3f3 !default;
$mm_borderColor : rgba( #000, 0.1 ) !default;
$mm_dimmedTextColor : rgba( #000, 0.3 ) !default;
$mm_emphasizedBackgroundColor : rgba( #fff, 0.5 ) !default;
$mm_highlightedBackgroundColor : rgba( #000, 0.05 ) !default;
$mm_textColor : rgba( #000, 0.7 ) !default;
// Sizes
$mm_padding : 10px !default;
$mm_btnSize : 40px !default;
$mm_fontSize : 14px !default;
$mm_listitemIndent : $mm_padding * 2 !default;
$mm_listitemPadding : $mm_padding !default;
$mm_panelPadding : $mm_padding * 2 !default;
$mm_subopenWidth : $mm_btnSize + $mm_padding !default;
$mm_subpanelOffset : 30% !default;
// Addon/Extension colors
$mm_toggleCheckedColor : #4bd963 !default;
$mm_inputBackgroundColor : rgba( #000, 0.05 ) !default;
$mm_pageShadow : 0 0 10px rgba( #000, 0.3 ) !default;
// Addon/Extension sizes
$mm_menuWidth : 0.8 !default;
$mm_menuMinWidth : 140px !default;
$mm_menuMaxWidth : 440px !default;
$mm_menuHeight : 0.8 !default;
$mm_menuMinHeight : 140px !default;
$mm_menuMaxHeight : 880px !default;
$mm_buttonbarHeight : $mm_btnSize - ( $mm_padding * 2 ) !default;
$mm_checkHeight : $mm_btnSize - $mm_padding !default;
$mm_checkWidth : $mm_btnSize - $mm_padding !default;
$mm_counterWidth : $mm_btnSize !default;
$mm_dividerFontSize : 10px !default;
$mm_dividerHeight : ( $mm_btnSize / 2 ) + ( $mm_padding / 2 ) !default;
$mm_footerHeight : $mm_btnSize !default;
$mm_headerHeight : $mm_btnSize !default;
$mm_iconbarWidth : $mm_btnSize + ( $mm_padding * 2 ) !default;
$mm_searchHeight : $mm_btnSize !default;
$mm_sectionIndexerWidth : $mm_padding * 2 !default;
$mm_toggleHeight : $mm_btnSize - $mm_padding !default;
$mm_toggleWidth : ( $mm_toggleHeight * 2 ) - $mm_padding !default;
$mm_zoomScaleDown : 0.7 !default;
$mm_zoomScaleUp : 1.5 !default;
@import "mixins";
@import "sizing";
@import "colors";

View File

@@ -0,0 +1,28 @@
/*
jQuery.mmenu autoHeight addon CSS
*/
@import "../_inc/variables";
.mm-menu
{
&.mm-top,
&.mm-bottom
{
&.mm-autoheight
{
max-height: percentage( $mm_menuHeight );
&.mm-fullscreen
{
max-height: 100%;
}
}
}
&.mm-measureheight > .mm-panel
{
bottom: auto !important;
height: auto !important;
}
}

View File

@@ -0,0 +1,99 @@
/*
jQuery.mmenu buttonbars addon CSS
*/
@import "../_inc/variables";
.mm-buttonbar
{
border: 1px solid transparent;
border-radius: $mm_padding / 2;
text-align: center;
line-height: $mm_buttonbarHeight;
overflow: hidden;
display: block;
padding: 0;
margin: 0;
position: relative;
@include mm_clearfix;
> *
{
border-left: 1px solid transparent;
box-sizing: border-box;
display: block;
width: 100%;
height: 100%;
float: left;
@include mm_ellipsis;
}
> a
{
text-decoration: none;
}
> input
{
position: absolute;
left: -1000px;
top: -1000px;
}
> input:checked + label
{
border-color: transparent !important;
}
> *:first-child,
> input:first-child + *
{
border-left: none;
}
&.mm-buttonbar-2 > *
{
width: 50%;
}
&.mm-buttonbar-3 > *
{
width: 33.33%;
}
&.mm-buttonbar-4 > *
{
width: 25%;
}
&.mm-buttonbar-5 > *
{
width: 20%;
}
}
.mm-header .mm-buttonbar
{
margin-top: $mm_headerHeight - ( $mm_buttonbarHeight * 2 );
margin-left: -( $mm_btnSize - $mm_padding );
margin-right: -( $mm_btnSize - $mm_padding );
}
.mm-footer .mm-buttonbar
{
border: none;
border-radius: none;
line-height: $mm_footerHeight;
margin: ( -$mm_padding ) ( -$mm_padding ) 0 ( -( $mm_padding * 2 ) );
> *
{
border-left: none;
}
}
.mm-listview > li > .mm-buttonbar
{
margin: $mm_padding ( $mm_padding * 2 );
}
@include mm_colors_buttonbars;

View File

@@ -0,0 +1,57 @@
/*
jQuery.mmenu counters addon CSS
*/
@import "../_inc/variables";
em.mm-counter
{
font: inherit;
font-size: $mm_fontSize;
font-style: normal;
text-indent: 0;
line-height: $mm_btnSize / 2;
display: block;
margin-top: -( $mm_btnSize / 4 );
position: absolute;
right: $mm_subopenWidth;
top: 50%;
+ a.mm-next
{
padding-left: $mm_counterWidth;
+ a,
+ span
{
margin-right: $mm_counterWidth + $mm_subopenWidth;
}
}
+ a.mm-fullsubopen
{
padding-left: 0;
}
}
// Removed support for counters in vertical submenus
.mm-vertical
{
> .mm-counter
{
top: ( $mm_btnSize / 4 ) + 2;
margin-top: 0;
}
&.mm-spacer > .mm-counter
{
margin-top: $mm_btnSize;
}
}
// Search
.mm-nosubresults > .mm-counter
{
display: none;
}
@include mm_colors_counters;

View File

@@ -0,0 +1,65 @@
/*
jQuery.mmenu dividers addon CSS
*/
@import "../_inc/variables";
// Collapsed
.mm-divider
{
> span
{
@include mm_ellipsis;
padding: 0;
line-height: $mm_dividerHeight;
}
&.mm-opened a.mm-next:after
{
@include mm_webkit_prefix( "transform", rotate( 45deg ) );
}
}
.mm-collapsed:not( .mm-uncollapsed )
{
display: none;
}
// Removed support for dividers in vertical submenus
//.mm-menu.mm-vertical .mm-divider
//{
// > a.mm-next:after
// {
// top: ( $mm_dividerHeight / 2 ) - 4;
// }
//}
// Fixed
.mm-fixeddivider
{
background: inherit;
display: none;
position: absolute;
top: 0;
left: 0;
right: 0;
z-index: 2;
// Bugfix
@include mm_webkit_prefix( 'transform', translate3d( 0, 0, 0 ) );
&:after
{
content: none !important;
display: none !important;
}
}
.mm-hasdividers .mm-fixeddivider
{
display: block;
}
@include mm_colors_dividers;

View File

@@ -0,0 +1,17 @@
/*
jQuery.mmenu dragOpen addon CSS
*/
@import "../_inc/variables";
html.mm-opened.mm-dragging
{
.mm-menu,
.mm-page,
.mm-fixed-top,
.mm-fixed-bottom,
#mm-blocker
{
@include mm_webkit_prefix( "transition-duration", 0s );
}
}

View File

@@ -0,0 +1,37 @@
/*
jQuery.mmenu footer addon CSS
*/
@import "../_inc/variables";
.mm-footer
{
background: inherit;
border-top: 1px solid transparent;
text-align: center;
line-height: $mm_footerHeight - ( $mm_padding * 2 );
box-sizing: border-box;
width: 100%;
height: $mm_footerHeight;
padding: $mm_padding $mm_panelPadding;
position: absolute;
z-index: 3;
bottom: 0;
left: 0;
// Bugfix
@include mm_webkit_prefix( 'transform', translate3d( 0, 0, 0 ) );
}
.mm-menu.mm-hasfooter
{
> .mm-panel
{
bottom: $mm_footerHeight;
}
}
@include mm_colors_footer;

View File

@@ -0,0 +1,50 @@
/*
jQuery.mmenu header addon CSS
*/
@import "../_inc/variables";
.mm-menu > .mm-header
{
background: inherit;
z-index: 3;
// Bugfix
@include mm_webkit_prefix( 'transform', translate3d( 0, 0, 0 ) );
.mm-close:after
{
content: 'x';
}
}
.mm-menu.mm-hassearch > .mm-header
{
top: $mm_searchHeight;
}
.mm-menu.mm-hasheader
{
.mm-panel
{
.mm-header
{
display: none;
}
}
.mm-panel,
.mm-fixeddivider
{
top: $mm_headerHeight;
}
&.mm-hassearch
{
.mm-panel,
.mm-fixeddivider
{
top: $mm_headerHeight + $mm_searchHeight;
}
}
}

View File

@@ -0,0 +1,77 @@
/*
jQuery.mmenu offcanvas addon CSS
*/
@import "../_inc/variables";
// Animations
.mm-page
{
box-sizing: border-box;
position: relative;
}
.mm-slideout
{
-webkit-transition: -webkit-transform $mm_transitionDuration $mm_transitionFunction;
-ms-transition: -ms-transform $mm_transitionDuration $mm_transitionFunction;
transition: transform $mm_transitionDuration $mm_transitionFunction;
}
// Container, Page, Blocker
html.mm-opened
{
overflow: hidden;
position: relative;
body
{
overflow: hidden;
}
.mm-page
{
min-height: 100vh; // Unfortunately there are still too many Android devices that don't support viewport units,
// therefore there still is some JS in jquery.mmenu.offcanvas.js that measures the window height onWindowResize.
}
}
html.mm-background .mm-page
{
background: inherit;
}
#mm-blocker
{
background: rgba( 3, 2, 1, 0 );
display: none;
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 999999;
}
html.mm-opened,
html.mm-blocking
{
#mm-blocker
{
display: block;
}
}
// Menu
.mm-menu
{
&.mm-offcanvas
{
display: none;
position: fixed;
}
&.mm-current
{
display: block;
}
}
@include mm_sizing;

View File

@@ -0,0 +1,115 @@
/*
jQuery.mmenu searchfield addon CSS
*/
@import "../_inc/variables";
$mm_searchfieldHeight: $mm_searchHeight - ( $mm_padding * 1.5 ) !default;
.mm-search,
.mm-search input
{
box-sizing: border-box;
}
.mm-search
{
}
.mm-menu > .mm-search
{
background: inherit;
z-index: 3;
// Bugfix
@include mm_webkit_prefix( 'transform', translate3d( 0, 0, 0 ) );
}
.mm-search
{
height: $mm_searchHeight;
width: 100%;
padding: $mm_padding $mm_padding 0 $mm_padding;
position: absolute;
top: 0;
left: 0;
input
{
border: none;
border-radius: $mm_searchfieldHeight;
font: inherit;
font-size: $mm_fontSize;
line-height: $mm_searchfieldHeight;
outline: none;
display: block;
width: 100%;
height: $mm_searchfieldHeight;
margin: 0;
padding: 0 $mm_padding;
}
input::-ms-clear
{
display: none;
}
}
.mm-panel
{
&.mm-hassearch
{
padding-top: $mm_searchHeight;
&.mm-hasheader
{
padding-top: $mm_searchHeight + $mm_headerHeight;
.mm-search
{
top: $mm_headerHeight;
}
}
}
}
.mm-noresultsmsg
{
text-align: center;
font-size: round( $mm_fontSize * 1.5 );
display: none;
padding: $mm_btnSize 0;
}
.mm-noresults
{
.mm-noresultsmsg
{
display: block;
}
.mm-indexer
{
display: none !important;
}
}
.mm-menu
{
li.mm-nosubresults > a.mm-next
{
display: none;
+ a,
+ span
{
padding-right: $mm_padding;
}
}
&.mm-hassearch
{
.mm-panel,
.mm-fixeddivider
{
top: $mm_searchHeight;
}
}
}
@include mm_colors_searchfield;

Some files were not shown because too many files have changed in this diff Show More