1/*! 2 * SlickNav Responsive Mobile Menu v1.0.10 3 * (c) 2016 Josh Cope 4 * licensed under MIT 5 */ 6;(function($,document,window){var 7defaults={label:'MENU',duplicate:!0,duration:200,easingOpen:'swing',easingClose:'swing',closedSymbol:'►',openedSymbol:'▼',prependTo:'body',appendTo:'',parentTag:'a',closeOnClick:!1,allowParentLinks:!1,nestedParentLinks:!0,showChildren:!1,removeIds:!0,removeClasses:!1,removeStyles:!1,brand:'',animations:'jquery',init:function(){},beforeOpen:function(){},beforeClose:function(){},afterOpen:function(){},afterClose:function(){}},mobileMenu='slicknav',prefix='slicknav',Keyboard={DOWN:40,ENTER:13,ESCAPE:27,LEFT:37,RIGHT:39,SPACE:32,TAB:9,UP:38,};function Plugin(element,options){this.element=element;this.settings=$.extend({},defaults,options);if(!this.settings.duplicate&&!options.hasOwnProperty("removeIds")){this.settings.removeIds=!1} 8this._defaults=defaults;this._name=mobileMenu;this.init()} 9Plugin.prototype.init=function(){var $this=this,menu=$(this.element),settings=this.settings,iconClass,menuBar;if(settings.duplicate){$this.mobileNav=menu.clone()}else{$this.mobileNav=menu} 10if(settings.removeIds){$this.mobileNav.removeAttr('id');$this.mobileNav.find('*').each(function(i,e){$(e).removeAttr('id')})} 11if(settings.removeClasses){$this.mobileNav.removeAttr('class');$this.mobileNav.find('*').each(function(i,e){$(e).removeAttr('class')})} 12if(settings.removeStyles){$this.mobileNav.removeAttr('style');$this.mobileNav.find('*').each(function(i,e){$(e).removeAttr('style')})} 13iconClass=prefix+'_icon';if(settings.label===''){iconClass+=' '+prefix+'_no-text'} 14if(settings.parentTag=='a'){settings.parentTag='a href="#"'} 15$this.mobileNav.attr('class',prefix+'_nav');menuBar=$('<div class="'+prefix+'_menu"></div>');if(settings.brand!==''){var brand=$('<div class="'+prefix+'_brand">'+settings.brand+'</div>');$(menuBar).append(brand)} 16$this.btn=$(['<'+settings.parentTag+' aria-haspopup="true" role="button" tabindex="0" class="'+prefix+'_btn '+prefix+'_collapsed">','<span class="'+prefix+'_menutxt">'+settings.label+'</span>','<span class="'+iconClass+'">','<span class="'+prefix+'_icon-bar"></span>','<span class="'+prefix+'_icon-bar"></span>','<span class="'+prefix+'_icon-bar"></span>','</span>','</'+settings.parentTag+'>'].join(''));$(menuBar).append($this.btn);if(settings.appendTo!==''){$(settings.appendTo).append(menuBar)}else{$(settings.prependTo).prepend(menuBar)} 17menuBar.append($this.mobileNav);var items=$this.mobileNav.find('li');$(items).each(function(){var item=$(this),data={};data.children=item.children('ul').attr('role','menu');item.data('menu',data);if(data.children.length>0){var a=item.contents(),containsAnchor=!1,nodes=[];$(a).each(function(){if(!$(this).is('ul')){nodes.push(this)}else{return!1} 18if($(this).is("a")){containsAnchor=!0}});var wrapElement=$('<'+settings.parentTag+' role="menuitem" aria-haspopup="true" tabindex="-1" class="'+prefix+'_item"/>');if((!settings.allowParentLinks||settings.nestedParentLinks)||!containsAnchor){var $wrap=$(nodes).wrapAll(wrapElement).parent();$wrap.addClass(prefix+'_row')}else $(nodes).wrapAll('<span class="'+prefix+'_parent-link '+prefix+'_row"/>').parent();if(!settings.showChildren){item.addClass(prefix+'_collapsed')}else{item.addClass(prefix+'_open')} 19item.addClass(prefix+'_parent');var arrowElement=$('<span class="'+prefix+'_arrow">'+(settings.showChildren?settings.openedSymbol:settings.closedSymbol)+'</span>');if(settings.allowParentLinks&&!settings.nestedParentLinks&&containsAnchor) 20arrowElement=arrowElement.wrap(wrapElement).parent();$(nodes).last().after(arrowElement)}else if(item.children().length===0){item.addClass(prefix+'_txtnode')} 21item.children('a').attr('role','menuitem').click(function(event){if(settings.closeOnClick&&!$(event.target).parent().closest('li').hasClass(prefix+'_parent')){$($this.btn).click()}});if(settings.closeOnClick&&settings.allowParentLinks){item.children('a').children('a').click(function(event){$($this.btn).click()});item.find('.'+prefix+'_parent-link a:not(.'+prefix+'_item)').click(function(event){$($this.btn).click()})}});$(items).each(function(){var data=$(this).data('menu');if(!settings.showChildren){$this._visibilityToggle(data.children,null,!1,null,!0)}});$this._visibilityToggle($this.mobileNav,null,!1,'init',!0);$this.mobileNav.attr('role','menu');$(document).mousedown(function(){$this._outlines(!1)});$(document).keyup(function(){$this._outlines(!0)});$($this.btn).click(function(e){e.preventDefault();$this._menuToggle()});$this.mobileNav.on('click','.'+prefix+'_item',function(e){e.preventDefault();$this._itemClick($(this))});$($this.btn).keydown(function(e){var ev=e||event;switch(ev.keyCode){case Keyboard.ENTER:case Keyboard.SPACE:case Keyboard.DOW
21N:e.preventDefault();if(ev.keyCode!==Keyboard.DOWN||!$($this.btn).hasClass(prefix+'_open')){$this._menuToggle()} 22$($this.btn).next().find('[role="menuitem"]').first().focus();break}});$this.mobileNav.on('keydown','.'+prefix+'_item',function(e){var ev=e||event;switch(ev.keyCode){case Keyboard.ENTER:e.preventDefault();$this._itemClick($(e.target));break;case Keyboard.RIGHT:e.preventDefault();if($(e.target).parent().hasClass(prefix+'_collapsed')){$this._itemClick($(e.target))} 23$(e.target).next().find('[role="menuitem"]').first().focus();break}});$this.mobileNav.on('keydown','[role="menuitem"]',function(e){var ev=e||event;switch(ev.keyCode){case Keyboard.DOWN:e.preventDefault();var allItems=$(e.target).parent().parent().children().children('[role="menuitem"]:visible');var idx=allItems.index(e.target);var nextIdx=idx+1;if(allItems.length<=nextIdx){nextIdx=0} 24var next=allItems.eq(nextIdx);next.focus();break;case Keyboard.UP:e.preventDefault();var allItems=$(e.target).parent().parent().children().children('[role="menuitem"]:visible');var idx=allItems.index(e.target);var next=allItems.eq(idx-1);next.focus();break;case Keyboard.LEFT:e.preventDefault();if($(e.target).parent().parent().parent().hasClass(prefix+'_open')){var parent=$(e.target).parent().parent().prev();parent.focus();$this._itemClick(parent)}else if($(e.target).parent().parent().hasClass(prefix+'_nav')){$this._menuToggle();$($this.btn).focus()} 25break;case Keyboard.ESCAPE:e.preventDefault();$this._menuToggle();$($this.btn).focus();break}});if(settings.allowParentLinks&&settings.nestedParentLinks){$('.'+prefix+'_item a').click(function(e){e.stopImmediatePropagation()})}};Plugin.prototype._menuToggle=function(el){var $this=this;var btn=$this.btn;var mobileNav=$this.mobileNav;if(btn.hasClass(prefix+'_collapsed')){btn.removeClass(prefix+'_collapsed');btn.addClass(prefix+'_open')}else{btn.removeClass(prefix+'_open');btn.addClass(prefix+'_collapsed')} 26btn.addClass(prefix+'_animating');$this._visibilityToggle(mobileNav,btn.parent(),!0,btn)};Plugin.prototype._itemClick=function(el){var $this=this;var settings=$this.settings;var data=el.data('menu');if(!data){data={};data.arrow=el.children('.'+prefix+'_arrow');data.ul=el.next('ul');data.parent=el.parent();if(data.parent.hasClass(prefix+'_parent-link')){data.parent=el.parent().parent();data.ul=el.parent().next('ul')} 27el.data('menu',data)} 28if(data.parent.hasClass(prefix+'_collapsed')){data.parent.siblings('.slicknav_open').each(function(){var $li=$(this);var $el=$li.children('a');var $ul=$el.next('ul');$el.children('.'+prefix+'_arrow').html(settings.closedSymbol);$li.addClass(prefix+'_collapsed').addClass(prefix+'_animating').removeClass(prefix+'_open');$this._visibilityToggle($ul,$li,!0,$el)});data.arrow.html(settings.openedSymbol);data.parent.removeClass(prefix+'_collapsed');data.parent.addClass(prefix+'_open');data.parent.addClass(prefix+'_animating');$this._visibilityToggle(data.ul,data.parent,!0,el)}else{data.arrow.html(settings.closedSymbol);data.parent.addClass(prefix+'_collapsed');data.parent.removeClass(prefix+'_open');data.parent.addClass(prefix+'_animating');$this._visibilityToggle(data.ul,data.parent,!0,el)}};Plugin.prototype._visibilityToggle=function(el,parent,animate,trigger,init){var $this=this;var settings=$this.settings;var items=$this._getActionItems(el);var duration=0;if(animate){duration=settings.duration} 29function afterOpen(trigger,parent){$(trigger).removeClass(prefix+'_animating');$(parent).removeClass(prefix+'_animating');if(!init){settings.afterOpen(trigger)}} 30function afterClose(trigger,parent){el.attr('aria-hidden','true');items.attr('tabindex','-1');$this._setVisAttr(el,!0);el.hide();$(trigger).removeClass(prefix+'_animating');$(parent).removeClass(prefix+'_animating');if(!init){settings.afterClose(trigger)}else if(trigger=='init'){settings.init()}} 31if(el.hasClass(prefix+'_hidden')){el.removeClass(prefix+'_hidden');if(!init){settings.beforeOpen(trigger)} 32if(settings.animations==='jquery'){el.stop(!0,!0).slideDown(duration,settings.easingOpen,function(){afterOpen(trigger,parent)})}else if(settings.animations==='velocity'){el.velocity("finish").velocity("slideDown",{duration:duration,easing:settings.easingOpen,complete:function(){afterOpen(trigger,parent)}})} 33el.attr('aria-hidden','false');items.attr('tabindex','0');$this._setVisAttr(el,!1)}else{el.addClass(prefix+'_hidden');
33if(!init){settings.beforeClose(trigger)} 34if(settings.animations==='jquery'){el.stop(!0,!0).slideUp(duration,this.settings.easingClose,function(){afterClose(trigger,parent)})}else if(settings.animations==='velocity'){el.velocity("finish").velocity("slideUp",{duration:duration,easing:settings.easingClose,complete:function(){afterClose(trigger,parent)}})}}};Plugin.prototype._setVisAttr=function(el,hidden){var $this=this;var nonHidden=el.children('li').children('ul').not('.'+prefix+'_hidden');if(!hidden){nonHidden.each(function(){var ul=$(this);ul.attr('aria-hidden','false');var items=$this._getActionItems(ul);items.attr('tabindex','0');$this._setVisAttr(ul,hidden)})}else{nonHidden.each(function(){var ul=$(this);ul.attr('aria-hidden','true');var items=$this._getActionItems(ul);items.attr('tabindex','-1');$this._setVisAttr(ul,hidden)})}};Plugin.prototype._getActionItems=function(el){var data=el.data("menu");if(!data){data={};var items=el.children('li');var anchors=items.find('a');data.links=anchors.add(items.find('.'+prefix+'_item'));el.data('menu',data)} 35return data.links};Plugin.prototype._outlines=function(state){if(!state){$('.'+prefix+'_item, .'+prefix+'_btn').css('outline','none')}else{$('.'+prefix+'_item, .'+prefix+'_btn').css('outline','')}};Plugin.prototype.toggle=function(){var $this=this;$this._menuToggle()};Plugin.prototype.open=function(){var $this=this;if($this.btn.hasClass(prefix+'_collapsed')){$this._menuToggle()}};Plugin.prototype.close=function(){var $this=this;if($this.btn.hasClass(prefix+'_open')){$this._menuToggle()}};$.fn[mobileMenu]=function(options){var args=arguments;if(options===undefined||typeof options==='object'){return this.each(function(){if(!$.data(this,'plugin_'+mobileMenu)){$.data(this,'plugin_'+mobileMenu,new Plugin(this,options))}})}else if(typeof options==='string'&&options[0]!=='_'&&options!=='init'){var returns;this.each(function(){var instance=$.data(this,'plugin_'+mobileMenu);if(instance instanceof Plugin&&typeof instance[options]==='function'){returns=instance[options].apply(instance,Array.prototype.slice.call(args,1))}});
35return returns!==undefined?returns:this}}}(jQuery,document,window))
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.