{"version":3,"file":"jquery.slicknav-ffb93af8.js","sources":["../../../app/javascript/javascripts/ui/jquery.slicknav.js"],"sourcesContent":["/*!\n * SlickNav Responsive Mobile Menu v1.0.4\n * (c) 2015 Josh Cope\n * licensed under MIT\n */\n;(function ($, document, window) {\n var\n // default settings object.\n defaults = {\n label: '',\n duplicate: true,\n duration: 200,\n easingOpen: 'swing',\n easingClose: 'swing',\n prependTo: '.sp_nav_on',\n appendTo: '',\n parentTag: 'a',\n closeOnClick: false,\n allowParentLinks: false,\n nestedParentLinks: true,\n showChildren: false,\n removeIds: false,\n removeClasses: false,\n removeStyles: false,\n\t\t\tbrand: '',\n init: function () {},\n beforeOpen: function () {},\n beforeClose: function () {},\n afterOpen: function () {},\n afterClose: function () {}\n },\n mobileMenu = 'slicknav',\n prefix = 'slicknav';\n\n function Plugin(element, options) {\n this.element = element;\n\n // jQuery has an extend method which merges the contents of two or\n // more objects, storing the result in the first object. The first object\n // is generally empty as we don't want to alter the default options for\n // future instances of the plugin\n this.settings = $.extend({}, defaults, options);\n\n this._defaults = defaults;\n this._name = mobileMenu;\n\n this.init();\n }\n\n Plugin.prototype.init = function () {\n var $this = this,\n menu = $(this.element),\n settings = this.settings,\n iconClass,\n menuBar;\n\n // clone menu if needed\n if (settings.duplicate) {\n $this.mobileNav = menu.clone();\n //remove ids from clone to prevent css issues\n $this.mobileNav.removeAttr('id');\n $this.mobileNav.find('*').each(function (i, e) {\n $(e).removeAttr('id');\n });\n } else {\n $this.mobileNav = menu;\n\n // remove ids if set\n $this.mobileNav.removeAttr('id');\n $this.mobileNav.find('*').each(function (i, e) {\n $(e).removeAttr('id');\n });\n }\n\n // remove classes if set\n if (settings.removeClasses) {\n $this.mobileNav.removeAttr('class');\n $this.mobileNav.find('*').each(function (i, e) {\n $(e).removeAttr('class');\n });\n }\n \n // remove styles if set\n if (settings.removeStyles) {\n $this.mobileNav.removeAttr('style');\n $this.mobileNav.find('*').each(function (i, e) {\n $(e).removeAttr('style');\n });\n }\n\n // styling class for the button\n iconClass = prefix + '_icon';\n\n if (settings.label === '') {\n iconClass += ' ' + prefix + '_no-text';\n }\n\n if (settings.parentTag === 'a') {\n settings.parentTag = 'a href=\"#\"';\n }\n\n // create menu bar\n $this.mobileNav.attr('class', prefix + '_nav');\n menuBar = $('<div class=\"' + prefix + '_menu\"></div>');\n\t\tif (settings.brand !== '') {\n\t\t\tvar brand = $('<div class=\"' + prefix + '_brand\">'+settings.brand+'</div>');\n\t\t\t$(menuBar).append(brand);\n\t\t}\n $this.btn = $(\n ['<' + settings.parentTag + ' aria-haspopup=\"true\" tabindex=\"0\" class=\"' + prefix + '_btn ' + prefix + '_collapsed\">',\n '<span class=\"' + prefix + '_menutxt\">' + settings.label + '</span>',\n '<span class=\"' + iconClass + '\">',\n '<span class=\"' + prefix + '_icon-bar\"></span>',\n '<span class=\"' + prefix + '_icon-bar\"></span>',\n '<span class=\"' + prefix + '_icon-bar\"></span>',\n '</span>',\n '</' + settings.parentTag + '>'\n ].join('')\n );\n $(menuBar).append($this.btn);\n if(settings.appendTo !== '') {\n $(settings.appendTo).append(menuBar);\n } else {\n $(settings.prependTo).prepend(menuBar);\n }\n menuBar.append($this.mobileNav);\n\n // iterate over structure adding additional structure\n var items = $this.mobileNav.find('li');\n $(items).each(function () {\n var item = $(this),\n data = {};\n data.children = item.children('ul').attr('role', 'menu');\n item.data('menu', data);\n\n // if a list item has a nested menu\n if (data.children.length > 0) {\n\n // select all text before the child menu\n // check for anchors\n\n var a = item.contents(),\n containsAnchor = false,\n nodes = [];\n\n $(a).each(function () {\n if (!$(this).is('ul')) {\n nodes.push(this);\n } else {\n return false;\n }\n\n if($(this).is(\"a\")) {\n containsAnchor = true;\n }\n });\n\n var wrapElement = $(\n '<' + settings.parentTag + ' role=\"menuitem\" aria-haspopup=\"true\" tabindex=\"-1\" class=\"' + prefix + '_item\"/>'\n );\n\n // wrap item text with tag and add classes unless we are separating parent links\n if ((!settings.allowParentLinks || settings.nestedParentLinks) || !containsAnchor) {\n var $wrap = $(nodes).wrapAll(wrapElement).parent();\n $wrap.addClass(prefix+'_row');\n } else\n $(nodes).wrapAll('<span class=\"'+prefix+'_parent-link '+prefix+'_row\"/>').parent();\n\n if (!settings.showChildren) {\n item.addClass(prefix+'_collapsed');\n } else {\n item.addClass(prefix+'_open');\n }\n\n item.addClass(prefix+'_parent');\n\n // create parent arrow. wrap with link if parent links and separating\n var arrowElement = $('<span class=\"'+prefix+'_arrow\">'+(settings.showChildren?settings.openedSymbol:settings.closedSymbol)+'</span>');\n\n if (settings.allowParentLinks && !settings.nestedParentLinks && containsAnchor)\n arrowElement = arrowElement.wrap(wrapElement).parent();\n\n //append arrow\n $(nodes).last().after(arrowElement);\n\n\n } else if ( item.children().length === 0) {\n item.addClass(prefix+'_txtnode');\n }\n\n // accessibility for links\n item.children('a').attr('role', 'menuitem').click(function(event){\n //Ensure that it's not a parent\n if (settings.closeOnClick && !$(event.target).parent().closest('li').hasClass(prefix+'_parent')) {\n //Emulate menu close if set\n $($this.btn).click();\n }\n });\n\n //also close on click if parent links are set\n if (settings.closeOnClick && settings.allowParentLinks) {\n item.children('a').children('a').click(function (event) {\n //Emulate menu close\n $($this.btn).click();\n });\n\n item.find('.'+prefix+'_parent-link a:not(.'+prefix+'_item)').click(function(event){\n //Emulate menu close\n $($this.btn).click();\n });\n }\n });\n\n // structure is in place, now hide appropriate items\n $(items).each(function () {\n var data = $(this).data('menu');\n if (!settings.showChildren){\n $this._visibilityToggle(data.children, null, false, null, true);\n }\n });\n\n // finally toggle entire menu\n $this._visibilityToggle($this.mobileNav, null, false, 'init', true);\n\n // accessibility for menu button\n $this.mobileNav.attr('role','menu');\n\n // outline prevention when using mouse\n $(document).mousedown(function(){\n $this._outlines(false);\n });\n\n $(document).keyup(function(){\n $this._outlines(true);\n });\n\n // menu button click\n $($this.btn).click(function (e) {\n e.preventDefault();\n $this._menuToggle();\n });\n\n // click on menu parent\n $this.mobileNav.on('click', '.' + prefix + '_item', function (e) {\n e.preventDefault();\n $this._itemClick($(this));\n });\n\n // check for enter key on menu button and menu parents\n $($this.btn).keydown(function (e) {\n var ev = e || event;\n if(ev.keyCode === 13) {\n e.preventDefault();\n $this._menuToggle();\n }\n });\n\n $this.mobileNav.on('keydown', '.'+prefix+'_item', function(e) {\n var ev = e || event;\n if(ev.keyCode === 13) {\n e.preventDefault();\n $this._itemClick($(e.target));\n }\n });\n\n // allow links clickable within parent tags if set\n if (settings.allowParentLinks && settings.nestedParentLinks) {\n $('.'+prefix+'_item a').click(function(e){\n e.stopImmediatePropagation();\n });\n }\n };\n\n //toggle menu\n Plugin.prototype._menuToggle = function (el) {\n var $this = this;\n var btn = $this.btn;\n var mobileNav = $this.mobileNav;\n\n if (btn.hasClass(prefix+'_collapsed')) {\n btn.removeClass(prefix+'_collapsed');\n btn.addClass(prefix+'_open');\n } else {\n btn.removeClass(prefix+'_open');\n btn.addClass(prefix+'_collapsed');\n }\n btn.addClass(prefix+'_animating');\n $this._visibilityToggle(mobileNav, btn.parent(), true, btn);\n };\n\n // toggle clicked items\n Plugin.prototype._itemClick = function (el) {\n var $this = this;\n var settings = $this.settings;\n var data = el.data('menu');\n if (!data) {\n data = {};\n data.arrow = el.children('.'+prefix+'_arrow');\n data.ul = el.next('ul');\n data.parent = el.parent();\n //Separated parent link structure\n if (data.parent.hasClass(prefix+'_parent-link')) {\n data.parent = el.parent().parent();\n data.ul = el.parent().next('ul');\n }\n el.data('menu', data);\n }\n if (data.parent.hasClass(prefix+'_collapsed')) {\n data.arrow.html(settings.openedSymbol);\n data.parent.removeClass(prefix+'_collapsed');\n data.parent.addClass(prefix+'_open');\n data.parent.addClass(prefix+'_animating');\n $this._visibilityToggle(data.ul, data.parent, true, el);\n } else {\n data.arrow.html(settings.closedSymbol);\n data.parent.addClass(prefix+'_collapsed');\n data.parent.removeClass(prefix+'_open');\n data.parent.addClass(prefix+'_animating');\n $this._visibilityToggle(data.ul, data.parent, true, el);\n }\n };\n\n // toggle actual visibility and accessibility tags\n Plugin.prototype._visibilityToggle = function(el, parent, animate, trigger, init) {\n var $this = this;\n var settings = $this.settings;\n var items = $this._getActionItems(el);\n var duration = 0;\n if (animate) {\n duration = settings.duration;\n }\n\n if (el.hasClass(prefix+'_hidden')) {\n el.removeClass(prefix+'_hidden');\n //Fire beforeOpen callback\n if (!init) {\n settings.beforeOpen(trigger);\n }\n el.slideDown(duration, settings.easingOpen, function(){\n\n $(trigger).removeClass(prefix+'_animating');\n $(parent).removeClass(prefix+'_animating');\n\n //Fire afterOpen callback\n if (!init) {\n settings.afterOpen(trigger);\n }\n });\n el.attr('aria-hidden','false');\n items.attr('tabindex', '0');\n $this._setVisAttr(el, false);\n } else {\n el.addClass(prefix+'_hidden');\n\n //Fire init or beforeClose callback\n if (!init){\n settings.beforeClose(trigger);\n }\n\n el.slideUp(duration, this.settings.easingClose, function() {\n el.attr('aria-hidden','true');\n items.attr('tabindex', '-1');\n $this._setVisAttr(el, true);\n el.hide(); //jQuery 1.7 bug fix\n\n $(trigger).removeClass(prefix+'_animating');\n $(parent).removeClass(prefix+'_animating');\n\n //Fire init or afterClose callback\n if (!init){\n settings.afterClose(trigger);\n } else if (trigger === 'init'){\n settings.init();\n }\n });\n }\n };\n\n // set attributes of element and children based on visibility\n Plugin.prototype._setVisAttr = function(el, hidden) {\n var $this = this;\n\n // select all parents that aren't hidden\n var nonHidden = el.children('li').children('ul').not('.'+prefix+'_hidden');\n\n // iterate over all items setting appropriate tags\n if (!hidden) {\n nonHidden.each(function(){\n var ul = $(this);\n ul.attr('aria-hidden','false');\n var items = $this._getActionItems(ul);\n items.attr('tabindex', '0');\n $this._setVisAttr(ul, hidden);\n });\n } else {\n nonHidden.each(function(){\n var ul = $(this);\n ul.attr('aria-hidden','true');\n var items = $this._getActionItems(ul);\n items.attr('tabindex', '-1');\n $this._setVisAttr(ul, hidden);\n });\n }\n };\n\n // get all 1st level items that are clickable\n Plugin.prototype._getActionItems = function(el) {\n var data = el.data(\"menu\");\n if (!data) {\n data = {};\n var items = el.children('li');\n var anchors = items.find('a');\n data.links = anchors.add(items.find('.'+prefix+'_item'));\n el.data('menu', data);\n }\n return data.links;\n };\n\n Plugin.prototype._outlines = function(state) {\n if (!state) {\n $('.'+prefix+'_item, .'+prefix+'_btn').css('outline','none');\n } else {\n $('.'+prefix+'_item, .'+prefix+'_btn').css('outline','');\n }\n };\n\n Plugin.prototype.toggle = function(){\n var $this = this;\n $this._menuToggle();\n };\n\n Plugin.prototype.open = function(){\n var $this = this;\n if ($this.btn.hasClass(prefix+'_collapsed')) {\n $this._menuToggle();\n }\n };\n\n Plugin.prototype.close = function(){\n var $this = this;\n if ($this.btn.hasClass(prefix+'_open')) {\n $this._menuToggle();\n }\n };\n\n $.fn[mobileMenu] = function ( options ) {\n var args = arguments;\n\n // Is the first parameter an object (options), or was omitted, instantiate a new instance\n if (options === undefined || typeof options === 'object') {\n return this.each(function () {\n\n // Only allow the plugin to be instantiated once due to methods\n if (!$.data(this, 'plugin_' + mobileMenu)) {\n\n // if it has no instance, create a new one, pass options to our plugin constructor,\n // and store the plugin instance in the elements jQuery data object.\n $.data(this, 'plugin_' + mobileMenu, new Plugin( this, options ));\n }\n });\n\n // If is a string and doesn't start with an underscore or 'init' function, treat this as a call to a public method.\n } else if (typeof options === 'string' && options[0] !== '_' && options !== 'init') {\n\n // Cache the method call to make it possible to return a value\n var returns;\n\n this.each(function () {\n var instance = $.data(this, 'plugin_' + mobileMenu);\n\n // Tests that there's already a plugin-instance and checks that the requested public method exists\n if (instance instanceof Plugin && typeof instance[options] === 'function') {\n\n // Call the method of our plugin instance, and pass it the supplied arguments.\n returns = instance[options].apply( instance, Array.prototype.slice.call( args, 1 ) );\n }\n });\n\n // If the earlier cached method gives a value back return the value, otherwise return this to preserve chainability.\n return returns !== undefined ? returns : this;\n }\n };\n}(jQuery, document, window));\n"],"names":["e","n","$","document","window","defaults","mobileMenu","prefix","Plugin","element","options","$this","menu","settings","iconClass","menuBar","i","brand","items","item","data","a","containsAnchor","nodes","wrapElement","$wrap","arrowElement","event","ev","el","btn","mobileNav","parent","animate","trigger","init","duration","hidden","nonHidden","ul","anchors","state","args","returns","instance"],"mappings":"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"}