Current state
This commit is contained in:
153
public/assets/plugins/mmenu/js/addons/jquery.mmenu.counters.js
Normal file
153
public/assets/plugins/mmenu/js/addons/jquery.mmenu.counters.js
Normal file
@@ -0,0 +1,153 @@
|
||||
/*
|
||||
* jQuery mmenu counters addon
|
||||
* @requires mmenu 4.0.0 or later
|
||||
*
|
||||
* mmenu.frebsite.nl
|
||||
*
|
||||
* Copyright (c) Fred Heusschen
|
||||
* www.frebsite.nl
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://en.wikipedia.org/wiki/MIT_License
|
||||
* http://en.wikipedia.org/wiki/GNU_General_Public_License
|
||||
*/
|
||||
|
||||
|
||||
(function( $ ) {
|
||||
|
||||
var _PLUGIN_ = 'mmenu',
|
||||
_ADDON_ = 'counters';
|
||||
|
||||
|
||||
$[ _PLUGIN_ ].prototype[ '_addon_' + _ADDON_ ] = function()
|
||||
{
|
||||
var that = this,
|
||||
opts = this.opts[ _ADDON_ ];
|
||||
|
||||
var _c = $[ _PLUGIN_ ]._c,
|
||||
_d = $[ _PLUGIN_ ]._d,
|
||||
_e = $[ _PLUGIN_ ]._e;
|
||||
|
||||
_c.add( 'counter noresults' );
|
||||
_e.add( 'updatecounters' );
|
||||
|
||||
|
||||
// Extend options
|
||||
if ( typeof opts == 'boolean' )
|
||||
{
|
||||
opts = {
|
||||
add : opts,
|
||||
update : opts
|
||||
};
|
||||
}
|
||||
if ( typeof opts != 'object' )
|
||||
{
|
||||
opts = {};
|
||||
}
|
||||
opts = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
|
||||
|
||||
|
||||
// DEPRECATED
|
||||
if ( opts.count )
|
||||
{
|
||||
$[ _PLUGIN_ ].deprecated( 'the option "count" for counters, the option "update"' );
|
||||
opts.update = opts.count;
|
||||
}
|
||||
// /DEPRECATED
|
||||
|
||||
|
||||
// Refactor counter class
|
||||
this.__refactorClass( $('em.' + this.conf.counterClass, this.$menu), 'counter' );
|
||||
|
||||
var $panels = $('.' + _c.panel, this.$menu);
|
||||
|
||||
// Add the counters
|
||||
if ( opts.add )
|
||||
{
|
||||
$panels.each(
|
||||
function()
|
||||
{
|
||||
var $t = $(this),
|
||||
$p = $t.data( _d.parent );
|
||||
|
||||
if ( $p )
|
||||
{
|
||||
var $c = $( '<em class="' + _c.counter + '" />' ),
|
||||
$a = $p.find( '> a.' + _c.subopen );
|
||||
|
||||
if ( !$a.parent().find( 'em.' + _c.counter ).length )
|
||||
{
|
||||
$a.before( $c );
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// Bind custom events
|
||||
if ( opts.update )
|
||||
{
|
||||
var $counters = $('em.' + _c.counter, this.$menu);
|
||||
|
||||
$counters
|
||||
.off( _e.updatecounters )
|
||||
.on( _e.updatecounters,
|
||||
function( e )
|
||||
{
|
||||
e.stopPropagation();
|
||||
}
|
||||
)
|
||||
.each(
|
||||
function()
|
||||
{
|
||||
var $counter = $(this),
|
||||
$sublist = $($counter.next().attr( 'href' ), that.$menu);
|
||||
|
||||
if ( !$sublist.is( '.' + _c.list ) )
|
||||
{
|
||||
$sublist = $sublist.find( '> .' + _c.list );
|
||||
}
|
||||
|
||||
if ( $sublist.length )
|
||||
{
|
||||
$counter
|
||||
.on( _e.updatecounters,
|
||||
function( e )
|
||||
{
|
||||
var $lis = $sublist.children()
|
||||
.not( '.' + _c.label )
|
||||
.not( '.' + _c.subtitle )
|
||||
.not( '.' + _c.hidden )
|
||||
.not( '.' + _c.noresults );
|
||||
|
||||
$counter.html( $lis.length );
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
)
|
||||
.trigger( _e.updatecounters );
|
||||
|
||||
// Update with menu-update
|
||||
this.$menu
|
||||
.on( _e.update,
|
||||
function( e )
|
||||
{
|
||||
$counters.trigger( _e.updatecounters );
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
|
||||
add : false,
|
||||
update : false
|
||||
};
|
||||
$[ _PLUGIN_ ].configuration.counterClass = 'Counter';
|
||||
|
||||
|
||||
// Add to plugin
|
||||
$[ _PLUGIN_ ].addons = $[ _PLUGIN_ ].addons || [];
|
||||
$[ _PLUGIN_ ].addons.push( _ADDON_ );
|
||||
|
||||
})( jQuery );
|
||||
14
public/assets/plugins/mmenu/js/addons/jquery.mmenu.counters.min.js
vendored
Normal file
14
public/assets/plugins/mmenu/js/addons/jquery.mmenu.counters.min.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* jQuery mmenu counters addon
|
||||
* @requires mmenu 4.0.0 or later
|
||||
*
|
||||
* mmenu.frebsite.nl
|
||||
*
|
||||
* Copyright (c) Fred Heusschen
|
||||
* www.frebsite.nl
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://en.wikipedia.org/wiki/MIT_License
|
||||
* http://en.wikipedia.org/wiki/GNU_General_Public_License
|
||||
*/
|
||||
!function(t){var e="mmenu",n="counters";t[e].prototype["_addon_"+n]=function(){var o=this,u=this.opts[n],a=t[e]._c,r=t[e]._d,d=t[e]._e;a.add("counter noresults"),d.add("updatecounters"),"boolean"==typeof u&&(u={add:u,update:u}),"object"!=typeof u&&(u={}),u=t.extend(!0,{},t[e].defaults[n],u),u.count&&(t[e].deprecated('the option "count" for counters, the option "update"'),u.update=u.count),this.__refactorClass(t("em."+this.conf.counterClass,this.$menu),"counter");var s=t("."+a.panel,this.$menu);if(u.add&&s.each(function(){var e=t(this),n=e.data(r.parent);if(n){var o=t('<em class="'+a.counter+'" />'),u=n.find("> a."+a.subopen);u.parent().find("em."+a.counter).length||u.before(o)}}),u.update){var c=t("em."+a.counter,this.$menu);c.off(d.updatecounters).on(d.updatecounters,function(t){t.stopPropagation()}).each(function(){var e=t(this),n=t(e.next().attr("href"),o.$menu);n.is("."+a.list)||(n=n.find("> ."+a.list)),n.length&&e.on(d.updatecounters,function(){var t=n.children().not("."+a.label).not("."+a.subtitle).not("."+a.hidden).not("."+a.noresults);e.html(t.length)})}).trigger(d.updatecounters),this.$menu.on(d.update,function(){c.trigger(d.updatecounters)})}},t[e].defaults[n]={add:!1,update:!1},t[e].configuration.counterClass="Counter",t[e].addons=t[e].addons||[],t[e].addons.push(n)}(jQuery);
|
||||
296
public/assets/plugins/mmenu/js/addons/jquery.mmenu.dragopen.js
Normal file
296
public/assets/plugins/mmenu/js/addons/jquery.mmenu.dragopen.js
Normal file
@@ -0,0 +1,296 @@
|
||||
/*
|
||||
* jQuery mmenu dragOpen addon
|
||||
* @requires mmenu 4.0.0 or later
|
||||
*
|
||||
* mmenu.frebsite.nl
|
||||
*
|
||||
* Copyright (c) Fred Heusschen
|
||||
* www.frebsite.nl
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://en.wikipedia.org/wiki/MIT_License
|
||||
* http://en.wikipedia.org/wiki/GNU_General_Public_License
|
||||
*/
|
||||
|
||||
|
||||
(function( $ ) {
|
||||
|
||||
var _PLUGIN_ = 'mmenu',
|
||||
_ADDON_ = 'dragOpen';
|
||||
|
||||
|
||||
$[ _PLUGIN_ ].prototype[ '_addon_' + _ADDON_ ] = function()
|
||||
{
|
||||
var that = this,
|
||||
opts = this.opts[ _ADDON_ ];
|
||||
|
||||
if ( !$.fn.hammer )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var _c = $[ _PLUGIN_ ]._c,
|
||||
_d = $[ _PLUGIN_ ]._d,
|
||||
_e = $[ _PLUGIN_ ]._e;
|
||||
|
||||
_c.add( 'dragging' );
|
||||
_e.add( 'dragleft dragright dragup dragdown dragend' );
|
||||
|
||||
var glbl = $[ _PLUGIN_ ].glbl;
|
||||
|
||||
// Extend options
|
||||
if ( typeof opts == 'boolean' )
|
||||
{
|
||||
opts = {
|
||||
open: opts
|
||||
};
|
||||
}
|
||||
if ( typeof opts != 'object' )
|
||||
{
|
||||
opts = {};
|
||||
}
|
||||
if ( typeof opts.maxStartPos != 'number' )
|
||||
{
|
||||
opts.maxStartPos = this.opts.position == 'left' || this.opts.position == 'right'
|
||||
? 150
|
||||
: 75;
|
||||
}
|
||||
opts = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
|
||||
|
||||
if ( opts.open )
|
||||
{
|
||||
var _stage = 0,
|
||||
_direction = false,
|
||||
_distance = 0,
|
||||
_maxDistance = 0,
|
||||
_dimension = 'width';
|
||||
|
||||
switch( this.opts.position )
|
||||
{
|
||||
case 'left':
|
||||
case 'right':
|
||||
_dimension = 'width';
|
||||
break;
|
||||
default:
|
||||
_dimension = 'height';
|
||||
break;
|
||||
}
|
||||
|
||||
// Set up variables
|
||||
switch( this.opts.position )
|
||||
{
|
||||
case 'left':
|
||||
var drag = {
|
||||
events : _e.dragleft + ' ' + _e.dragright,
|
||||
open_dir : 'right',
|
||||
close_dir : 'left',
|
||||
delta : 'deltaX',
|
||||
page : 'pageX',
|
||||
negative : false
|
||||
};
|
||||
break;
|
||||
|
||||
case 'right':
|
||||
var drag = {
|
||||
events : _e.dragleft + ' ' + _e.dragright,
|
||||
open_dir : 'left',
|
||||
close_dir : 'right',
|
||||
delta : 'deltaX',
|
||||
page : 'pageX',
|
||||
negative : true
|
||||
};
|
||||
break;
|
||||
|
||||
case 'top':
|
||||
var drag = {
|
||||
events : _e.dragup + ' ' + _e.dragdown,
|
||||
open_dir : 'down',
|
||||
close_dir : 'up',
|
||||
delta : 'deltaY',
|
||||
page : 'pageY',
|
||||
negative : false
|
||||
};
|
||||
break;
|
||||
|
||||
case 'bottom':
|
||||
var drag = {
|
||||
events : _e.dragup + ' ' + _e.dragdown,
|
||||
open_dir : 'up',
|
||||
close_dir : 'down',
|
||||
delta : 'deltaY',
|
||||
page : 'pageY',
|
||||
negative : true
|
||||
};
|
||||
break;
|
||||
}
|
||||
|
||||
var $dragNode = this.__valueOrFn( opts.pageNode, this.$menu, glbl.$page );
|
||||
if ( typeof $dragNode == 'string' )
|
||||
{
|
||||
$dragNode = $($dragNode);
|
||||
}
|
||||
|
||||
var $fixed = glbl.$page.find( '.' + _c.mm( 'fixed-top' ) + ', .' + _c.mm( 'fixed-bottom' ) ),
|
||||
$dragg = glbl.$page;
|
||||
|
||||
switch ( that.opts.zposition )
|
||||
{
|
||||
case 'back':
|
||||
$dragg = $dragg.add( $fixed );
|
||||
break;
|
||||
|
||||
case 'front':
|
||||
$dragg = that.$menu;
|
||||
break;
|
||||
|
||||
case 'next':
|
||||
$dragg = $dragg.add( that.$menu ).add( $fixed );
|
||||
break;
|
||||
};
|
||||
|
||||
// Bind events
|
||||
$dragNode
|
||||
.hammer()
|
||||
.on( _e.touchstart + ' ' + _e.mousedown,
|
||||
function( e )
|
||||
{
|
||||
if ( e.type == 'touchstart' )
|
||||
{
|
||||
var tch = e.originalEvent.touches[ 0 ] || e.originalEvent.changedTouches[ 0 ],
|
||||
pos = tch[ drag.page ];
|
||||
}
|
||||
else if ( e.type == 'mousedown' )
|
||||
{
|
||||
var pos = e[ drag.page ];
|
||||
}
|
||||
|
||||
switch( that.opts.position )
|
||||
{
|
||||
case 'right':
|
||||
case 'bottom':
|
||||
if ( pos >= glbl.$wndw[ _dimension ]() - opts.maxStartPos )
|
||||
{
|
||||
_stage = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
if ( pos <= opts.maxStartPos )
|
||||
{
|
||||
_stage = 1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
)
|
||||
.on( drag.events + ' ' + _e.dragend,
|
||||
function( e )
|
||||
{
|
||||
if ( _stage > 0 )
|
||||
{
|
||||
e.gesture.preventDefault();
|
||||
e.stopPropagation();
|
||||
}
|
||||
}
|
||||
)
|
||||
.on( drag.events,
|
||||
function( e )
|
||||
{
|
||||
var new_distance = drag.negative
|
||||
? -e.gesture[ drag.delta ]
|
||||
: e.gesture[ drag.delta ];
|
||||
|
||||
_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();
|
||||
glbl.$html.addClass( _c.dragging );
|
||||
|
||||
_maxDistance = minMax(
|
||||
glbl.$wndw[ _dimension ]() * that.conf[ _ADDON_ ][ _dimension ].perc,
|
||||
that.conf[ _ADDON_ ][ _dimension ].min,
|
||||
that.conf[ _ADDON_ ][ _dimension ].max
|
||||
);
|
||||
}
|
||||
}
|
||||
if ( _stage == 2 )
|
||||
{
|
||||
$dragg.css( that.opts.position, minMax( _distance, 10, _maxDistance ) - ( that.opts.zposition == 'front' ? _maxDistance : 0 ) );
|
||||
}
|
||||
}
|
||||
)
|
||||
.on( _e.dragend,
|
||||
function( e )
|
||||
{
|
||||
if ( _stage == 2 )
|
||||
{
|
||||
glbl.$html.removeClass( _c.dragging );
|
||||
$dragg.css( that.opts.position, '' );
|
||||
|
||||
if ( _direction == drag.open_dir )
|
||||
{
|
||||
that._openFinish();
|
||||
}
|
||||
else
|
||||
{
|
||||
that.close();
|
||||
}
|
||||
}
|
||||
_stage = 0;
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
|
||||
open : false,
|
||||
// pageNode : null,
|
||||
// maxStartPos : null,
|
||||
threshold : 50
|
||||
};
|
||||
$[ _PLUGIN_ ].configuration[ _ADDON_ ] = {
|
||||
width : {
|
||||
perc : 0.8,
|
||||
min : 140,
|
||||
max : 440
|
||||
},
|
||||
height : {
|
||||
perc : 0.8,
|
||||
min : 140,
|
||||
max : 880
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// Add to plugin
|
||||
$[ _PLUGIN_ ].addons = $[ _PLUGIN_ ].addons || [];
|
||||
$[ _PLUGIN_ ].addons.push( _ADDON_ );
|
||||
|
||||
|
||||
// Functions
|
||||
function minMax( val, min, max )
|
||||
{
|
||||
if ( val < min )
|
||||
{
|
||||
val = min;
|
||||
}
|
||||
if ( val > max )
|
||||
{
|
||||
val = max;
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
})( jQuery );
|
||||
14
public/assets/plugins/mmenu/js/addons/jquery.mmenu.dragopen.min.js
vendored
Normal file
14
public/assets/plugins/mmenu/js/addons/jquery.mmenu.dragopen.min.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* jQuery mmenu dragOpen addon
|
||||
* @requires mmenu 4.0.0 or later
|
||||
*
|
||||
* mmenu.frebsite.nl
|
||||
*
|
||||
* Copyright (c) Fred Heusschen
|
||||
* www.frebsite.nl
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://en.wikipedia.org/wiki/MIT_License
|
||||
* http://en.wikipedia.org/wiki/GNU_General_Public_License
|
||||
*/
|
||||
!function(e){function t(e,t,a){return t>e&&(e=t),e>a&&(e=a),e}var a="mmenu",o="dragOpen";e[a].prototype["_addon_"+o]=function(){var n=this,r=this.opts[o];if(e.fn.hammer){var i=e[a]._c,s=(e[a]._d,e[a]._e);i.add("dragging"),s.add("dragleft dragright dragup dragdown dragend");var d=e[a].glbl;if("boolean"==typeof r&&(r={open:r}),"object"!=typeof r&&(r={}),"number"!=typeof r.maxStartPos&&(r.maxStartPos="left"==this.opts.position||"right"==this.opts.position?150:75),r=e.extend(!0,{},e[a].defaults[o],r),r.open){var p=0,g=!1,c=0,h=0,l="width";switch(this.opts.position){case"left":case"right":l="width";break;default:l="height"}switch(this.opts.position){case"left":var f={events:s.dragleft+" "+s.dragright,open_dir:"right",close_dir:"left",delta:"deltaX",page:"pageX",negative:!1};break;case"right":var f={events:s.dragleft+" "+s.dragright,open_dir:"left",close_dir:"right",delta:"deltaX",page:"pageX",negative:!0};break;case"top":var f={events:s.dragup+" "+s.dragdown,open_dir:"down",close_dir:"up",delta:"deltaY",page:"pageY",negative:!1};break;case"bottom":var f={events:s.dragup+" "+s.dragdown,open_dir:"up",close_dir:"down",delta:"deltaY",page:"pageY",negative:!0}}var u=this.__valueOrFn(r.pageNode,this.$menu,d.$page);"string"==typeof u&&(u=e(u));var m=d.$page.find("."+i.mm("fixed-top")+", ."+i.mm("fixed-bottom")),v=d.$page;switch(n.opts.zposition){case"back":v=v.add(m);break;case"front":v=n.$menu;break;case"next":v=v.add(n.$menu).add(m)}u.hammer().on(s.touchstart+" "+s.mousedown,function(e){if("touchstart"==e.type)var t=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],a=t[f.page];else if("mousedown"==e.type)var a=e[f.page];switch(n.opts.position){case"right":case"bottom":a>=d.$wndw[l]()-r.maxStartPos&&(p=1);break;default:a<=r.maxStartPos&&(p=1)}}).on(f.events+" "+s.dragend,function(e){p>0&&(e.gesture.preventDefault(),e.stopPropagation())}).on(f.events,function(e){var a=f.negative?-e.gesture[f.delta]:e.gesture[f.delta];if(g=a>c?f.open_dir:f.close_dir,c=a,c>r.threshold&&1==p){if(d.$html.hasClass(i.opened))return;p=2,n._openSetup(),d.$html.addClass(i.dragging),h=t(d.$wndw[l]()*n.conf[o][l].perc,n.conf[o][l].min,n.conf[o][l].max)}2==p&&v.css(n.opts.position,t(c,10,h)-("front"==n.opts.zposition?h:0))}).on(s.dragend,function(){2==p&&(d.$html.removeClass(i.dragging),v.css(n.opts.position,""),g==f.open_dir?n._openFinish():n.close()),p=0})}}},e[a].defaults[o]={open:!1,threshold:50},e[a].configuration[o]={width:{perc:.8,min:140,max:440},height:{perc:.8,min:140,max:880}},e[a].addons=e[a].addons||[],e[a].addons.push(o)}(jQuery);
|
||||
169
public/assets/plugins/mmenu/js/addons/jquery.mmenu.header.js
Normal file
169
public/assets/plugins/mmenu/js/addons/jquery.mmenu.header.js
Normal file
@@ -0,0 +1,169 @@
|
||||
/*
|
||||
* jQuery mmenu header addon
|
||||
* @requires mmenu 4.0.0 or later
|
||||
*
|
||||
* mmenu.frebsite.nl
|
||||
*
|
||||
* Copyright (c) Fred Heusschen
|
||||
* www.frebsite.nl
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://en.wikipedia.org/wiki/MIT_License
|
||||
* http://en.wikipedia.org/wiki/GNU_General_Public_License
|
||||
*/
|
||||
|
||||
|
||||
(function( $ ) {
|
||||
|
||||
var _PLUGIN_ = 'mmenu',
|
||||
_ADDON_ = 'header';
|
||||
|
||||
|
||||
$[ _PLUGIN_ ].prototype[ '_addon_' + _ADDON_ ] = function()
|
||||
{
|
||||
var that = this,
|
||||
opts = this.opts[ _ADDON_ ],
|
||||
conf = this.conf[ _ADDON_ ];
|
||||
|
||||
var _c = $[ _PLUGIN_ ]._c,
|
||||
_d = $[ _PLUGIN_ ]._d,
|
||||
_e = $[ _PLUGIN_ ]._e;
|
||||
|
||||
_c.add( 'header hasheader prev next title titletext' );
|
||||
_e.add( 'updateheader' );
|
||||
|
||||
var glbl = $[ _PLUGIN_ ].glbl;
|
||||
|
||||
|
||||
// Extend options
|
||||
if ( typeof opts == 'boolean' )
|
||||
{
|
||||
opts = {
|
||||
add : opts,
|
||||
update : opts
|
||||
};
|
||||
}
|
||||
if ( typeof opts != 'object' )
|
||||
{
|
||||
opts = {};
|
||||
}
|
||||
opts = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
|
||||
|
||||
|
||||
// Add the HTML
|
||||
if ( opts.add )
|
||||
{
|
||||
var content = opts.content
|
||||
? opts.content
|
||||
: '<a class="' + _c.prev + '" href="#"></a><span class="' + _c.title + '"></span><a class="' + _c.next + '" href="#"></a>';
|
||||
|
||||
$( '<div class="' + _c.header + '" />' )
|
||||
.prependTo( this.$menu )
|
||||
.append( content );
|
||||
}
|
||||
|
||||
var $header = $('div.' + _c.header, this.$menu);
|
||||
if ( $header.length )
|
||||
{
|
||||
this.$menu.addClass( _c.hasheader );
|
||||
}
|
||||
|
||||
if ( opts.update )
|
||||
{
|
||||
if ( $header.length )
|
||||
{
|
||||
var $titl = $header.find( '.' + _c.title ),
|
||||
$prev = $header.find( '.' + _c.prev ),
|
||||
$next = $header.find( '.' + _c.next ),
|
||||
_page = '#' + glbl.$page.attr( 'id' );
|
||||
|
||||
$prev.add( $next ).on( _e.click,
|
||||
function( e )
|
||||
{
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
|
||||
var href = $(this).attr( 'href' );
|
||||
if ( href !== '#' )
|
||||
{
|
||||
if ( href == _page )
|
||||
{
|
||||
that.$menu.trigger( _e.close );
|
||||
}
|
||||
else
|
||||
{
|
||||
$(href, that.$menu).trigger( _e.open );
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$('.' + _c.panel, this.$menu)
|
||||
.each(
|
||||
function()
|
||||
{
|
||||
var $t = $(this);
|
||||
|
||||
// Find title, prev and next
|
||||
var titl = $('.' + conf.panelHeaderClass, $t).text(),
|
||||
prev = $('.' + conf.panelPrevClass, $t).attr( 'href' ),
|
||||
next = $('.' + conf.panelNextClass, $t).attr( 'href' );
|
||||
|
||||
if ( !titl )
|
||||
{
|
||||
titl = $('.' + _c.subclose, $t).text();
|
||||
}
|
||||
if ( !titl )
|
||||
{
|
||||
titl = opts.title;
|
||||
}
|
||||
if ( !prev )
|
||||
{
|
||||
prev = $('.' + _c.subclose, $t).attr( 'href' );
|
||||
}
|
||||
|
||||
// Update header info
|
||||
$t.off( _e.updateheader )
|
||||
.on( _e.updateheader,
|
||||
function( e )
|
||||
{
|
||||
e.stopPropagation();
|
||||
|
||||
$titl[ titl ? 'show' : 'hide' ]().text( titl );
|
||||
$prev[ prev ? 'show' : 'hide' ]().attr( 'href', prev );
|
||||
$next[ next ? 'show' : 'hide' ]().attr( 'href', next );
|
||||
}
|
||||
);
|
||||
|
||||
$t.on( _e.open,
|
||||
function( e )
|
||||
{
|
||||
$(this).trigger( _e.updateheader );
|
||||
}
|
||||
);
|
||||
}
|
||||
)
|
||||
.filter( '.' + _c.current )
|
||||
.trigger( _e.updateheader );
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
|
||||
add : false,
|
||||
content : false,
|
||||
update : false,
|
||||
title : 'Menu',
|
||||
};
|
||||
$[ _PLUGIN_ ].configuration[ _ADDON_ ] = {
|
||||
panelHeaderClass : 'Header',
|
||||
panelNextClass : 'Next',
|
||||
panelPrevClass : 'Prev'
|
||||
}
|
||||
|
||||
|
||||
// Add to plugin
|
||||
$[ _PLUGIN_ ].addons = $[ _PLUGIN_ ].addons || [];
|
||||
$[ _PLUGIN_ ].addons.push( _ADDON_ );
|
||||
|
||||
})( jQuery );
|
||||
14
public/assets/plugins/mmenu/js/addons/jquery.mmenu.header.min.js
vendored
Normal file
14
public/assets/plugins/mmenu/js/addons/jquery.mmenu.header.min.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* jQuery mmenu header addon
|
||||
* @requires mmenu 4.0.0 or later
|
||||
*
|
||||
* mmenu.frebsite.nl
|
||||
*
|
||||
* Copyright (c) Fred Heusschen
|
||||
* www.frebsite.nl
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://en.wikipedia.org/wiki/MIT_License
|
||||
* http://en.wikipedia.org/wiki/GNU_General_Public_License
|
||||
*/
|
||||
!function(e){var t="mmenu",a="header";e[t].prototype["_addon_"+a]=function(){var n=this,r=this.opts[a],d=this.conf[a],s=e[t]._c,i=(e[t]._d,e[t]._e);s.add("header hasheader prev next title titletext"),i.add("updateheader");var o=e[t].glbl;if("boolean"==typeof r&&(r={add:r,update:r}),"object"!=typeof r&&(r={}),r=e.extend(!0,{},e[t].defaults[a],r),r.add){var h=r.content?r.content:'<a class="'+s.prev+'" href="#"></a><span class="'+s.title+'"></span><a class="'+s.next+'" href="#"></a>';e('<div class="'+s.header+'" />').prependTo(this.$menu).append(h)}var p=e("div."+s.header,this.$menu);if(p.length&&this.$menu.addClass(s.hasheader),r.update&&p.length){var l=p.find("."+s.title),u=p.find("."+s.prev),f=p.find("."+s.next),c="#"+o.$page.attr("id");u.add(f).on(i.click,function(t){t.preventDefault(),t.stopPropagation();var a=e(this).attr("href");"#"!==a&&(a==c?n.$menu.trigger(i.close):e(a,n.$menu).trigger(i.open))}),e("."+s.panel,this.$menu).each(function(){var t=e(this),a=e("."+d.panelHeaderClass,t).text(),n=e("."+d.panelPrevClass,t).attr("href"),o=e("."+d.panelNextClass,t).attr("href");a||(a=e("."+s.subclose,t).text()),a||(a=r.title),n||(n=e("."+s.subclose,t).attr("href")),t.off(i.updateheader).on(i.updateheader,function(e){e.stopPropagation(),l[a?"show":"hide"]().text(a),u[n?"show":"hide"]().attr("href",n),f[o?"show":"hide"]().attr("href",o)}),t.on(i.open,function(){e(this).trigger(i.updateheader)})}).filter("."+s.current).trigger(i.updateheader)}},e[t].defaults[a]={add:!1,content:!1,update:!1,title:"Menu"},e[t].configuration[a]={panelHeaderClass:"Header",panelNextClass:"Next",panelPrevClass:"Prev"},e[t].addons=e[t].addons||[],e[t].addons.push(a)}(jQuery);
|
||||
252
public/assets/plugins/mmenu/js/addons/jquery.mmenu.labels.js
Normal file
252
public/assets/plugins/mmenu/js/addons/jquery.mmenu.labels.js
Normal file
@@ -0,0 +1,252 @@
|
||||
/*
|
||||
* jQuery mmenu labels addon
|
||||
* @requires mmenu 4.1.0 or later
|
||||
*
|
||||
* mmenu.frebsite.nl
|
||||
*
|
||||
* Copyright (c) Fred Heusschen
|
||||
* www.frebsite.nl
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://en.wikipedia.org/wiki/MIT_License
|
||||
* http://en.wikipedia.org/wiki/GNU_General_Public_License
|
||||
*/
|
||||
|
||||
|
||||
(function( $ ) {
|
||||
|
||||
var _PLUGIN_ = 'mmenu',
|
||||
_ADDON_ = 'labels';
|
||||
|
||||
|
||||
$[ _PLUGIN_ ].prototype[ '_addon_' + _ADDON_ ] = function()
|
||||
{
|
||||
var that = this,
|
||||
opts = this.opts[ _ADDON_ ];
|
||||
|
||||
var _c = $[ _PLUGIN_ ]._c,
|
||||
_d = $[ _PLUGIN_ ]._d,
|
||||
_e = $[ _PLUGIN_ ]._e;
|
||||
|
||||
_c.add( 'collapsed' );
|
||||
|
||||
_c.add( 'fixedlabels original clone' );
|
||||
_e.add( 'updatelabels position scroll' );
|
||||
if ( $[ _PLUGIN_ ].support.touch )
|
||||
{
|
||||
_e.scroll += ' ' + _e.mm( 'touchmove' );
|
||||
}
|
||||
|
||||
|
||||
// Extend options
|
||||
if ( typeof opts == 'boolean' )
|
||||
{
|
||||
opts = {
|
||||
collapse: opts
|
||||
};
|
||||
}
|
||||
if ( typeof opts != 'object' )
|
||||
{
|
||||
opts = {};
|
||||
}
|
||||
opts = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
|
||||
|
||||
|
||||
// Toggle collapsed labels
|
||||
if ( opts.collapse )
|
||||
{
|
||||
|
||||
// Refactor collapsed class
|
||||
this.__refactorClass( $('li.' + this.conf.collapsedClass, this.$menu), 'collapsed' );
|
||||
|
||||
var $labels = $('.' + _c.label, this.$menu);
|
||||
|
||||
$labels
|
||||
.each(
|
||||
function()
|
||||
{
|
||||
var $label = $(this),
|
||||
$expan = $label.nextUntil( '.' + _c.label, ( opts.collapse == 'all' ) ? null : '.' + _c.collapsed );
|
||||
|
||||
if ( opts.collapse == 'all' )
|
||||
{
|
||||
$label.addClass( _c.opened );
|
||||
$expan.removeClass( _c.collapsed );
|
||||
}
|
||||
|
||||
if ( $expan.length )
|
||||
{
|
||||
$label.wrapInner( '<span />' );
|
||||
|
||||
$('<a href="#" class="' + _c.subopen + ' ' + _c.fullsubopen + '" />')
|
||||
.prependTo( $label )
|
||||
.on(
|
||||
_e.click,
|
||||
function( e )
|
||||
{
|
||||
e.preventDefault();
|
||||
|
||||
$label.toggleClass( _c.opened );
|
||||
$expan[ $label.hasClass( _c.opened ) ? 'removeClass' : 'addClass' ]( _c.collapsed );
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
// Fixed labels
|
||||
else if ( opts.fixed )
|
||||
{
|
||||
if ( this.direction != 'horizontal' )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.$menu.addClass( _c.fixedlabels );
|
||||
|
||||
var $panels = $('.' + _c.panel, this.$menu),
|
||||
$labels = $('.' + _c.label, this.$menu);
|
||||
|
||||
$panels.add( $labels )
|
||||
.off( _e.updatelabels + ' ' + _e.position + ' ' + _e.scroll )
|
||||
.on( _e.updatelabels + ' ' + _e.position + ' ' + _e.scroll,
|
||||
function( e )
|
||||
{
|
||||
e.stopPropagation();
|
||||
}
|
||||
);
|
||||
|
||||
var offset = getPanelsOffset();
|
||||
|
||||
$panels.each(
|
||||
function()
|
||||
{
|
||||
var $panel = $(this),
|
||||
$labels = $panel.find( '.' + _c.label );
|
||||
|
||||
if ( $labels.length )
|
||||
{
|
||||
var scrollTop = $panel.scrollTop();
|
||||
|
||||
$labels.each(
|
||||
function()
|
||||
{
|
||||
var $label = $(this);
|
||||
|
||||
// Add extra markup
|
||||
$label
|
||||
.wrapInner( '<div />' )
|
||||
.wrapInner( '<div />' );
|
||||
|
||||
var $inner = $label.find( '> div' ),
|
||||
$next = $();
|
||||
|
||||
var top, bottom, height;
|
||||
|
||||
// Update appearences
|
||||
$label
|
||||
.on( _e.updatelabels,
|
||||
function( e )
|
||||
{
|
||||
scrollTop = $panel.scrollTop();
|
||||
|
||||
if ( !$label.hasClass( _c.hidden ) )
|
||||
{
|
||||
$next = $label.nextAll( '.' + _c.label ).not( '.' + _c.hidden ).first();
|
||||
top = $label.offset().top + scrollTop;
|
||||
bottom = $next.length ? $next.offset().top + scrollTop : false;
|
||||
height = $inner.height();
|
||||
|
||||
$label.trigger( _e.position );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// Set position
|
||||
$label
|
||||
.on( _e.position,
|
||||
function( e )
|
||||
{
|
||||
var _top = 0;
|
||||
if ( bottom && scrollTop + offset > bottom - height )
|
||||
{
|
||||
_top = bottom - top - height;
|
||||
}
|
||||
else if ( scrollTop + offset > top )
|
||||
{
|
||||
_top = scrollTop - top + offset;
|
||||
}
|
||||
$inner.css( 'top', _top );
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
|
||||
// Bind update and scrolling events
|
||||
$panel
|
||||
.on( _e.updatelabels,
|
||||
function( e )
|
||||
{
|
||||
scrollTop = $panel.scrollTop();
|
||||
offset = getPanelsOffset();
|
||||
$labels.trigger( _e.position );
|
||||
}
|
||||
)
|
||||
.on( _e.scroll,
|
||||
function( e )
|
||||
{
|
||||
$labels.trigger( _e.updatelabels );
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// Update with menu-update
|
||||
this.$menu
|
||||
.on( _e.update,
|
||||
function( e )
|
||||
{
|
||||
$panels
|
||||
.trigger( _e.updatelabels );
|
||||
}
|
||||
)
|
||||
.on( _e.opening,
|
||||
function( e )
|
||||
{
|
||||
$panels
|
||||
.trigger( _e.updatelabels )
|
||||
.trigger( _e.scroll );
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function getPanelsOffset()
|
||||
{
|
||||
var hassearch = _c.hassearch && that.$menu.hasClass( _c.hassearch ),
|
||||
hasheader = _c.hasheader && that.$menu.hasClass( _c.hasheader );
|
||||
|
||||
return hassearch
|
||||
? hasheader
|
||||
? 100
|
||||
: 50
|
||||
: hasheader
|
||||
? 60
|
||||
: 0;
|
||||
}
|
||||
};
|
||||
|
||||
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
|
||||
fixed : false,
|
||||
collapse : false
|
||||
};
|
||||
$[ _PLUGIN_ ].configuration.collapsedClass = 'Collapsed';
|
||||
|
||||
|
||||
// Add to plugin
|
||||
$[ _PLUGIN_ ].addons = $[ _PLUGIN_ ].addons || [];
|
||||
$[ _PLUGIN_ ].addons.push( _ADDON_ );
|
||||
|
||||
|
||||
})( jQuery );
|
||||
14
public/assets/plugins/mmenu/js/addons/jquery.mmenu.labels.min.js
vendored
Normal file
14
public/assets/plugins/mmenu/js/addons/jquery.mmenu.labels.min.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* jQuery mmenu labels addon
|
||||
* @requires mmenu 4.1.0 or later
|
||||
*
|
||||
* mmenu.frebsite.nl
|
||||
*
|
||||
* Copyright (c) Fred Heusschen
|
||||
* www.frebsite.nl
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://en.wikipedia.org/wiki/MIT_License
|
||||
* http://en.wikipedia.org/wiki/GNU_General_Public_License
|
||||
*/
|
||||
!function(e){var l="mmenu",s="labels";e[l].prototype["_addon_"+s]=function(){function a(){var e=t.hassearch&&o.$menu.hasClass(t.hassearch),l=t.hasheader&&o.$menu.hasClass(t.hasheader);return e?l?100:50:l?60:0}var o=this,n=this.opts[s],t=e[l]._c,i=(e[l]._d,e[l]._e);if(t.add("collapsed"),t.add("fixedlabels original clone"),i.add("updatelabels position scroll"),e[l].support.touch&&(i.scroll+=" "+i.mm("touchmove")),"boolean"==typeof n&&(n={collapse:n}),"object"!=typeof n&&(n={}),n=e.extend(!0,{},e[l].defaults[s],n),n.collapse){this.__refactorClass(e("li."+this.conf.collapsedClass,this.$menu),"collapsed");var d=e("."+t.label,this.$menu);d.each(function(){var l=e(this),s=l.nextUntil("."+t.label,"all"==n.collapse?null:"."+t.collapsed);"all"==n.collapse&&(l.addClass(t.opened),s.removeClass(t.collapsed)),s.length&&(l.wrapInner("<span />"),e('<a href="#" class="'+t.subopen+" "+t.fullsubopen+'" />').prependTo(l).on(i.click,function(e){e.preventDefault(),l.toggleClass(t.opened),s[l.hasClass(t.opened)?"removeClass":"addClass"](t.collapsed)}))})}else if(n.fixed){if("horizontal"!=this.direction)return;this.$menu.addClass(t.fixedlabels);var r=e("."+t.panel,this.$menu),d=e("."+t.label,this.$menu);r.add(d).off(i.updatelabels+" "+i.position+" "+i.scroll).on(i.updatelabels+" "+i.position+" "+i.scroll,function(e){e.stopPropagation()});var p=a();r.each(function(){var l=e(this),s=l.find("."+t.label);if(s.length){var o=l.scrollTop();s.each(function(){var s=e(this);s.wrapInner("<div />").wrapInner("<div />");var a,n,d,r=s.find("> div"),c=e();s.on(i.updatelabels,function(){o=l.scrollTop(),s.hasClass(t.hidden)||(c=s.nextAll("."+t.label).not("."+t.hidden).first(),a=s.offset().top+o,n=c.length?c.offset().top+o:!1,d=r.height(),s.trigger(i.position))}),s.on(i.position,function(){var e=0;n&&o+p>n-d?e=n-a-d:o+p>a&&(e=o-a+p),r.css("top",e)})}),l.on(i.updatelabels,function(){o=l.scrollTop(),p=a(),s.trigger(i.position)}).on(i.scroll,function(){s.trigger(i.updatelabels)})}}),this.$menu.on(i.update,function(){r.trigger(i.updatelabels)}).on(i.opening,function(){r.trigger(i.updatelabels).trigger(i.scroll)})}},e[l].defaults[s]={fixed:!1,collapse:!1},e[l].configuration.collapsedClass="Collapsed",e[l].addons=e[l].addons||[],e[l].addons.push(s)}(jQuery);
|
||||
@@ -0,0 +1,229 @@
|
||||
/*
|
||||
* jQuery mmenu searchfield addon
|
||||
* @requires mmenu 4.0.0 or later
|
||||
*
|
||||
* mmenu.frebsite.nl
|
||||
*
|
||||
* Copyright (c) Fred Heusschen
|
||||
* www.frebsite.nl
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://en.wikipedia.org/wiki/MIT_License
|
||||
* http://en.wikipedia.org/wiki/GNU_General_Public_License
|
||||
*/
|
||||
|
||||
|
||||
(function( $ ) {
|
||||
|
||||
var _PLUGIN_ = 'mmenu',
|
||||
_ADDON_ = 'searchfield';
|
||||
|
||||
|
||||
$[ _PLUGIN_ ].prototype[ '_addon_' + _ADDON_ ] = function()
|
||||
{
|
||||
var that = this,
|
||||
opts = this.opts[ _ADDON_ ];
|
||||
|
||||
var _c = $[ _PLUGIN_ ]._c,
|
||||
_d = $[ _PLUGIN_ ]._d,
|
||||
_e = $[ _PLUGIN_ ]._e;
|
||||
|
||||
_c.add( 'search hassearch noresults nosubresults counter' );
|
||||
_e.add( 'search reset change' );
|
||||
|
||||
|
||||
// Extend options
|
||||
if ( typeof opts == 'boolean' )
|
||||
{
|
||||
opts = {
|
||||
add : opts,
|
||||
search : opts
|
||||
};
|
||||
}
|
||||
if ( typeof opts != 'object' )
|
||||
{
|
||||
opts = {};
|
||||
}
|
||||
opts = $.extend( true, {}, $[ _PLUGIN_ ].defaults[ _ADDON_ ], opts );
|
||||
|
||||
|
||||
// Add the field
|
||||
if ( opts.add )
|
||||
{
|
||||
$( '<div class="' + _c.search + '" />' )
|
||||
.prependTo( this.$menu )
|
||||
.append( '<input placeholder="' + opts.placeholder + '" type="text" autocomplete="off" />' );
|
||||
|
||||
if ( opts.noResults )
|
||||
{
|
||||
$('ul, ol', this.$menu)
|
||||
.first()
|
||||
.append( '<li class="' + _c.noresults + '">' + opts.noResults + '</li>' );
|
||||
}
|
||||
}
|
||||
|
||||
if ( $('div.' + _c.search, this.$menu).length )
|
||||
{
|
||||
this.$menu.addClass( _c.hassearch );
|
||||
}
|
||||
|
||||
// Bind custom events
|
||||
if ( opts.search )
|
||||
{
|
||||
var $input = $('div.' + _c.search, this.$menu).find( 'input' );
|
||||
if ( $input.length )
|
||||
{
|
||||
var $panels = $('.' + _c.panel, this.$menu),
|
||||
$labels = $('.' + _c.list + '> li.' + _c.label, this.$menu),
|
||||
$items = $('.' + _c.list + '> li', this.$menu)
|
||||
.not( '.' + _c.subtitle )
|
||||
.not( '.' + _c.label )
|
||||
.not( '.' + _c.noresults );
|
||||
|
||||
var _searchText = '> a';
|
||||
if ( !opts.showLinksOnly )
|
||||
{
|
||||
_searchText += ', > span';
|
||||
}
|
||||
|
||||
$input
|
||||
.off( _e.keyup + ' ' + _e.change )
|
||||
.on( _e.keyup,
|
||||
function( e )
|
||||
{
|
||||
if ( !preventKeypressSearch( e.keyCode ) )
|
||||
{
|
||||
that.$menu.trigger( _e.search );
|
||||
}
|
||||
}
|
||||
)
|
||||
.on( _e.change,
|
||||
function( e )
|
||||
{
|
||||
that.$menu.trigger( _e.search );
|
||||
}
|
||||
);
|
||||
|
||||
this.$menu
|
||||
.off( _e.reset + ' ' + _e.search )
|
||||
.on( _e.reset + ' ' + _e.search,
|
||||
function( e )
|
||||
{
|
||||
e.stopPropagation();
|
||||
}
|
||||
)
|
||||
.on( _e.reset,
|
||||
function( e )
|
||||
{
|
||||
that.$menu.trigger( _e.search, [ '' ] );
|
||||
}
|
||||
)
|
||||
.on( _e.search,
|
||||
function( e, query )
|
||||
{
|
||||
if ( typeof query == 'string' )
|
||||
{
|
||||
$input.val( query );
|
||||
}
|
||||
else
|
||||
{
|
||||
query = $input.val();
|
||||
}
|
||||
query = query.toLowerCase();
|
||||
|
||||
// Scroll to top
|
||||
$panels.scrollTop( 0 );
|
||||
|
||||
// Search through items
|
||||
$items
|
||||
.add( $labels )
|
||||
.addClass( _c.hidden );
|
||||
|
||||
$items
|
||||
.each(
|
||||
function()
|
||||
{
|
||||
var $t = $(this);
|
||||
if ( $(_searchText, $t).text().toLowerCase().indexOf( query ) > -1 )
|
||||
{
|
||||
$t.add( $t.prevAll( '.' + _c.label ).first() ).removeClass( _c.hidden );
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// Update parent for submenus
|
||||
$( $panels.get().reverse() ).each(
|
||||
function()
|
||||
{
|
||||
var $t = $(this),
|
||||
$p = $t.data( _d.parent );
|
||||
|
||||
if ( $p )
|
||||
{
|
||||
var $i = $t.add( $t.find( '> .' + _c.list ) ).find( '> li' )
|
||||
.not( '.' + _c.subtitle )
|
||||
.not( '.' + _c.label )
|
||||
.not( '.' + _c.hidden );
|
||||
|
||||
if ( $i.length )
|
||||
{
|
||||
$p.removeClass( _c.hidden )
|
||||
.removeClass( _c.nosubresults )
|
||||
.prevAll( '.' + _c.label ).first().removeClass( _c.hidden );
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( $t.hasClass( _c.current ) )
|
||||
{
|
||||
$p.trigger( _e.open );
|
||||
}
|
||||
$p.addClass( _c.nosubresults );
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// Show/hide no results message
|
||||
that.$menu[ $items.not( '.' + _c.hidden ).length ? 'removeClass' : 'addClass' ]( _c.noresults );
|
||||
|
||||
// Update for other addons
|
||||
that.$menu.trigger( _e.update );
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$[ _PLUGIN_ ].defaults[ _ADDON_ ] = {
|
||||
add : false,
|
||||
search : false,
|
||||
showLinksOnly : true,
|
||||
placeholder : 'Search',
|
||||
noResults : 'No results found.'
|
||||
};
|
||||
|
||||
|
||||
// Add to plugin
|
||||
$[ _PLUGIN_ ].addons = $[ _PLUGIN_ ].addons || [];
|
||||
$[ _PLUGIN_ ].addons.push( _ADDON_ );
|
||||
|
||||
|
||||
// Functions
|
||||
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 );
|
||||
14
public/assets/plugins/mmenu/js/addons/jquery.mmenu.searchfield.min.js
vendored
Normal file
14
public/assets/plugins/mmenu/js/addons/jquery.mmenu.searchfield.min.js
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* jQuery mmenu searchfield addon
|
||||
* @requires mmenu 4.0.0 or later
|
||||
*
|
||||
* mmenu.frebsite.nl
|
||||
*
|
||||
* Copyright (c) Fred Heusschen
|
||||
* www.frebsite.nl
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://en.wikipedia.org/wiki/MIT_License
|
||||
* http://en.wikipedia.org/wiki/GNU_General_Public_License
|
||||
*/
|
||||
!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 n="mmenu",t="searchfield";e[n].prototype["_addon_"+t]=function(){var a=this,r=this.opts[t],o=e[n]._c,l=e[n]._d,d=e[n]._e;if(o.add("search hassearch noresults nosubresults counter"),d.add("search reset change"),"boolean"==typeof r&&(r={add:r,search:r}),"object"!=typeof r&&(r={}),r=e.extend(!0,{},e[n].defaults[t],r),r.add&&(e('<div class="'+o.search+'" />').prependTo(this.$menu).append('<input placeholder="'+r.placeholder+'" type="text" autocomplete="off" />'),r.noResults&&e("ul, ol",this.$menu).first().append('<li class="'+o.noresults+'">'+r.noResults+"</li>")),e("div."+o.search,this.$menu).length&&this.$menu.addClass(o.hassearch),r.search){var i=e("div."+o.search,this.$menu).find("input");if(i.length){var u=e("."+o.panel,this.$menu),h=e("."+o.list+"> li."+o.label,this.$menu),c=e("."+o.list+"> li",this.$menu).not("."+o.subtitle).not("."+o.label).not("."+o.noresults),f="> a";r.showLinksOnly||(f+=", > span"),i.off(d.keyup+" "+d.change).on(d.keyup,function(e){s(e.keyCode)||a.$menu.trigger(d.search)}).on(d.change,function(){a.$menu.trigger(d.search)}),this.$menu.off(d.reset+" "+d.search).on(d.reset+" "+d.search,function(e){e.stopPropagation()}).on(d.reset,function(){a.$menu.trigger(d.search,[""])}).on(d.search,function(s,n){"string"==typeof n?i.val(n):n=i.val(),n=n.toLowerCase(),u.scrollTop(0),c.add(h).addClass(o.hidden),c.each(function(){var s=e(this);e(f,s).text().toLowerCase().indexOf(n)>-1&&s.add(s.prevAll("."+o.label).first()).removeClass(o.hidden)}),e(u.get().reverse()).each(function(){var s=e(this),n=s.data(l.parent);if(n){var t=s.add(s.find("> ."+o.list)).find("> li").not("."+o.subtitle).not("."+o.label).not("."+o.hidden);t.length?n.removeClass(o.hidden).removeClass(o.nosubresults).prevAll("."+o.label).first().removeClass(o.hidden):(s.hasClass(o.current)&&n.trigger(d.open),n.addClass(o.nosubresults))}}),a.$menu[c.not("."+o.hidden).length?"removeClass":"addClass"](o.noresults),a.$menu.trigger(d.update)})}}},e[n].defaults[t]={add:!1,search:!1,showLinksOnly:!0,placeholder:"Search",noResults:"No results found."},e[n].addons=e[n].addons||[],e[n].addons.push(t)}(jQuery);
|
||||
Reference in New Issue
Block a user