{"version":3,"sources":["../ef_plugins/shamone.js","nav.js"],"names":["define","jQuery","$","window","document","undefined","Shamone","element","options","this","$element","metadata","data","extend","defaults","_name","pluginName","slideDirection","toLowerCase","Error","init","console","log","navSelector","contentPanelSelector","buttonClass","navClass","contentPanelClass","activeButtonClass","activeNavSectionClass","openContentPanelClass","animateSlideClass","classPrefix","linksDisabledElement","openCallback","closeCallback","setupCallback","destroyCallback","prototype","plugin","addClass","$nav","$contentPanel","$target","attr","isOpen","_moveNav","_clickListen","navInContentPanel","$navPrev","$navParent","parents","find","length","prev","parent","detach","insertBefore","on","event","preventDefault","stopPropagation","close","open","$fixedPanel","css","height","outerHeight","target","tagName","animateIt","fireCallback","removeClass","off","destroy","insertAfter","prependTo","removeData","fn","each","state","enquire","swapNav","hasClass","$mainNav","$utilityNav","$ctas","appendTo","resetNav","windowWidth","getBreakpoint","utilityDropdown","$el","setup","self","EFTOURS","device","isTouch","evt","$parent","is","breakdown","oldIe","config","isfixedwidth","register","match","shamone","dataLayer","push","context","action","unmatch"],"mappings":"AAAA,AAsBAA,OAAA,2BAAA,UAAA,SAAAC,IACA,SAAAC,EAAAC,EAAAC,EAAAC,GAyBA,QAAAC,GAAAC,EAAAC,GAgBA,GAdAC,KAAAF,QAAAA,EACAE,KAAAC,SAAAR,EAAAK,GAGAE,KAAAE,SAAAF,KAAAC,SAAAE,KAAA,mBACAH,KAAAD,QAAAN,EAAAW,UAAAC,EAAAN,EAAAC,KAAAE,UAGAF,KAAAM,MAAAC,EAGAP,KAAAD,QAAAS,eAAAR,KAAAD,QAAAS,eAAAC,cAGA,SAAAT,KAAAD,QAAAS,gBAAA,UAAAR,KAAAD,QAAAS,eACA,KAAA,IAAAE,OAAA,2DAKAV,MAAAW,OA9CAC,QAAAC,IAAA,UACA,IAAAN,GAAA,UACAF,GACAS,YAAA,GACAC,qBAAA,GACAP,eAAA,GAEAQ,YAAA,iBACAC,SAAA,cACAC,kBAAA,kBACAC,kBAAA,2BACAC,sBAAA,+BACAC,sBAAA,kBACAC,kBAAA,sBACAC,YAAA,cAEAC,qBAAA,GACAC,aAAA,aACAC,cAAA,aACAC,cAAA,aACAC,gBAAA,aA8BA/B,GAAAgC,WACAlB,KAAA,WACA,GAAAmB,GAAA9B,IAGA8B,GAAA7B,SAAA8B,SAAAD,EAAA/B,QAAAiB,YAAA,IAAAc,EAAA/B,QAAAuB,mBACAQ,EAAAE,KAAAvC,EAAAqC,EAAA/B,QAAAe,aAAAiB,SAAAD,EAAA/B,QAAAkB,SAAA,IAAAa,EAAA/B,QAAAuB,mBACAQ,EAAAG,cAAAxC,EAAAqC,EAAA/B,QAAAgB,sBAAAgB,SAAAD,EAAA/B,QAAAmB,kBAAA,IAAAY,EAAA/B,QAAAuB,mBACAQ,EAAAI,QAAAzC,EAAAqC,EAAA7B,SAAAkC,KAAA,SACAL,EAAAM,QAAA,EAGAN,EAAAO,WAGAP,EAAAQ,gBAGAD,SAAA,WACA,GAAAP,GAAA9B,KACAuC,GAAA,CACAT,GAAAU,YACAV,EAAAW,cAEAF,EAAAT,EAAAE,KAAAU,UAAAC,KAAAb,EAAAG,eAAAW,OAAA,EAEAL,IAEAT,EAAAU,SAAAV,EAAAE,KAAAa,OACAf,EAAAW,WAAAX,EAAAE,KAAAc,SAEAhB,EAAAE,KAAAe,SAAAC,aAAAlB,EAAAG,gBAGA,kBAAAH,GAAA/B,QAAA4B,eACAG,EAAA/B,QAAA4B,iBAGAW,aAAA,WACA,GAAAR,GAAA9B,IAEA8B,GAAA7B,SAAAgD,GAAA,gBAAA,SAAAC,GACAA,EAAAC,iBACAD,EAAAE,iBACA3D,GAAAO,KAEA8B,GAAAM,OAEAN,EAAAuB,OAAA,GAAA,GAGAvB,EAAAwB,UAKAA,KAAA,WAEA,GAAAxB,GAAA9B,KAEAuD,GADA9D,EAAA,QACAA,EAAAqC,EAAA/B,QAAAgB,sBAGAe,GAAAI,QAAAH,SAAAD,EAAA/B,QAAAqB,uBACAU,EAAA7B,SAAA8B,SAAAD,EAAA/B,QAAAoB,mBACAW,EAAAG,cAAAF,SAAAD,EAAA/B,QAAAwB,YAAAO,EAAA/B,QAAAS,gBAGA+C,EAAAC,IAAA,WAAA,SACA1B,EAAAI,QAAAsB,IAAA,SAAA/D,EAAAC,GAAA+D,SAAA3B,EAAAI,QAAAwB,cAAAjE,EAAAC,GAAA+D,SAAA3B,EAAAI,QAAAwB,eAGAH,EAAAN,GAAA,gBAAA,SAAAC,GACApB,EAAAuB,OAAA,GAAA,KAIAvB,EAAAI,QAAAe,GAAA,gBAAA,SAAAC,GACAA,EAAAE,kBACA,KAAAF,EAAAS,OAAAC,QAAAnD,eACAqB,EAAAuB,OAAA,GAAA,KAIAvB,EAAAM,QAAA,EAGA,kBAAAN,GAAA/B,QAAA0B,cACAK,EAAA/B,QAAA0B,gBAIA4B,MAAA,SAAAQ,EAAAC,GACA,GAAAhC,GAAA9B,KACAuD,EAAA9D,EAAAqC,EAAA/B,QAAAgB,qBAGA8C,KACA/B,EAAA7B,SAAA8D,YAAAjC,EAAA/B,QAAAuB,mBACAQ,EAAAE,KAAA+B,YAAAjC,EAAA/B,QAAAuB,mBACAQ,EAAAG,cAAA8B,YAAAjC,EAAA/B,QAAAuB,oBAIAQ,EAAAI,QAAA6B,YAAAjC,EAAA/B,QAAAqB,uBACAU,EAAA7B,SAAA8D,YAAAjC,EAAA/B,QAAAoB,mBACAW,EAAAG,cAAA8B,YAAAjC,EAAA/B,QAAAwB,YAAAO,EAAA/B,QAAAS,gBAIA+C,EAAAC,IAAA,WAAA,YAGAD,EAAAS,IAAA,iBACAlC,EAAAI,QAAA8B,IAAA,iBAGAlC,EAAAM,QAAA,EAIA0B,GAAA,kBAAAhC,GAAA/B,QAAA2B,eACAI,EAAA/B,QAAA2B,iBAIAuC,QAAA,WACA,GAAAnC,GAAA9B,IAGA8B,GAAAuB,OAAA,GAGAvB,EAAAI,QAAAsB,IAAA,SAAA,QAGA1B,EAAA7B,SAAA8D,YAAAjC,EAAA/B,QAAAiB,YAAA,IAAAc,EAAA/B,QAAAuB,mBACAQ,EAAAE,KAAA+B,YAAAjC,EAAA/B,QAAAkB,SAAA,IAAAa,EAAA/B,QAAAuB,mBACAQ,EAAAG,cAAA8B,YAAAjC,EAAA/B,QAAAmB,kBAAA,IAAAY,EAAA/B,QAAAuB,mBAGAQ,EAAA7B,SAAA+D,IAAA,iBAGAlC,EAAAU,SAAAI,OAAA,EACAd,EAAAE,KAAAe,SAAAmB,YAAApC,EAAAU,UACAV,EAAAW,WAAAG,OAAA,GACAd,EAAAE,KAAAe,SAAAoB,UAAArC,EAAAW,YAGA,kBAAAX,GAAA/B,QAAA6B,iBACAE,EAAA/B,QAAA6B,kBAGAE,EAAA7B,SAAAmE,WAAA,UAAA7D,KAKAd,EAAA4E,GAAA9D,GAAA,SAAAR,GACA,MAAAC,MAAAsE,KAAA,WACA7E,EAAAU,KAAAH,KAAA,UAAAO,IACAd,EAAAU,KAAAH,KAAA,UAAAO,EACA,GAAAV,GAAAG,KAAAD,QAKAP,EAAAE,OAAAC,YA6DAJ,OAAA,oBAAA,SAAA,oBAAA,eAAA,2BAAA,SAAAE,EAAA8E,EAAAC,GC9SA,OACA7D,KAAA,WA8DA,QAAA8D,KACAhF,EAAA,QAAAiF,SAAA,aAEAC,EAAA3B,aAAA4B,GACAC,EAAA9B,SAAA+B,SAAAF,IAIA,QAAAG,KACAtF,EAAA,QAAAiF,SAAA,aAEAE,EAAA5B,aAAA2B,GACAE,EAAA9B,SAAAoB,UAAAS,IAzEAhE,QAAAC,IAAA,MAEA,IAAAiB,GACAhB,EAAA,gBACAkB,EAAAvC,EAAAqB,GACA6D,EAAAlF,EAAA,aACAmF,EAAAnF,EAAA,gBACAoF,EAAApF,EAAA,qBAEAuF,EAAAT,EAAAU,gBAEAC,GACA7B,MAAA,SAAA8B,GACAA,EAAApB,YAAA,WACAtE,EAAAE,UAAAqE,IAAA,6BAGAoB,MAAA,WACA,GAAAC,GAAArF,IAGAsF,SAAAC,OAAAC,SAAAxD,EAAA0C,SAAA,iBACAjF,EAAA,gDAAAwD,GAAA,sBAAA,SAAAwC,GACA,GAAAC,GAAAjG,EAAAO,MAAA8C,QACA2C,GAAAtC,iBACAsC,EAAArC,kBAEAsC,EAAAhB,SAAA,WACAW,EAAAhC,MAAAqC,IAGAA,EAAA3D,SAAA,WACAtC,EAAAE,UAAAsD,GAAA,2BAAA,SAAAC,GACAzD,EAAAyD,EAAAS,QAAAjB,QAAA,4BAAAiD,GAAAD,IACAL,EAAAhC,MAAAqC,SAQAE,UAAA,WACA,GAAAP,GAAArF,IACAsF,SAAAC,OAAAC,SAAAxD,EAAA0C,SAAA,kBACAW,EAAAhC,MAAA5D,EAAA,gDAAAqD,UAGArD,EAAA,gDAAAuE,IAAA,yBAMAgB,IAAA,MACApE,QAAAC,IAAA,yBACAqE,EAAAE,SAIAb,EAAAsB,SAAAP,QAAAQ,OAAAC,cAmBAvB,EAAAwB,SAAA,kCACAC,MAAA,WACArF,QAAAC,IAAA,iBAEAqE,EAAAU,YAGAnG,EAAA,YAAAyG,SACApF,YAAAA,EACAC,qBAAA,gBACAP,eAAA,OACAiB,aAAA,WAAA0E,UAAAC,MAAAlD,MAAA,QAAAmD,QAAA,UAAAC,OAAA,UACA5E,cAAA,WAAAyE,UAAAC,MAAAlD,MAAA,QAAAmD,QAAA,UAAAC,OAAA,WACA3E,cAAA,WAAA8C,KACA7C,gBAAA,WAAAmD,KACAvD,qBAAA,WAIA+E,QAAA,WACA3F,QAAAC,IAAA,mBAGAiB,EAAArC,EAAA,YAAAU,KAAA,kBACAP,SAAAkC,GACAA,EAAAmC,UAGAiB,EAAAE;AD7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"core/modules/nav.js","sourcesContent":["/*\r\n * Shamone = Side sliding nav\r\n * http://www.youtube.com/watch?v=MSVqLUkvkzo\r\n\r\n * Shamone works with either a single button for nav on one side, or can be called\r\n * on two different buttons to expose nav on both the left and right sides.\r\n * Initially finds the nav element to be shown and moves it outside of the sliding content panel\r\n * (so that in responsive design, nav can be located anywhere and gets moved to proper place)\r\n\r\n * This should be called on the button that opens the nav:\r\n * Hee hee!\r\n * $('.shamone').shamone({ 'slideDirection': 'left' });\r\n * OR Override on per-element basis (good if there are two navs on left/right)\r\n * Note the inverted single/double quotes\r\n * $('.shamone').shamone();\r\n\r\n * NOTE: SLIDE DIRECTION is required! No default is set for this value and the plugin\r\n * won't work without it!\r\n *\r\n */\r\n\r\n;\r\ndefine('core/ef_plugins/shamone',[\"jquery\"], function(jQuery) {\r\n (function($, window, document, undefined) {\r\n console.log('shamone');\r\n var pluginName = 'shamone',\r\n defaults = {\r\n navSelector: \"\", // REQUIRED: selector for the navigation element\r\n contentPanelSelector: \"\", // REQUIRED: selector for the sliding panel\r\n slideDirection: \"\", // REQUIRED: which way the overlaying CONTENT panel should slide to reveal the nav beneath.\r\n\r\n buttonClass: \"shamone-button\", // Optional: class to apply to the button that starts the slide\r\n navClass: \"shamone-nav\", // Optional: class to apply to the nav element\r\n contentPanelClass: \"shamone-content\", // Optional: class to apply to the selected content panel\r\n activeButtonClass: \"shamone-is-active-button\", // Optional: class to apply to the active button\r\n activeNavSectionClass: \"shamone-is-active-navsection\", // Optional: class to apply to the active nav section\r\n openContentPanelClass: \"shamone-is-open\", // Optional: class to apply to the open content panel\r\n animateSlideClass: \"shamone-is-animated\", // Optional: class to apply to animate the content panel slide\r\n classPrefix: \"shamone-is-\", // Optional: class prefix (used to apply directional classes)\r\n\r\n linksDisabledElement: \"\", // Optional: DOM element that will have links disabled (off by default)\r\n openCallback: function() {}, // Optional: callback for when panel is opened\r\n closeCallback: function () { }, // Optional: callback for when panel is closed (by clicking button, not by selecting item in nav)\r\n setupCallback: function () { },\r\n destroyCallback: function () { },\r\n };\r\n\r\n // The actual plugin constructor\r\n function Shamone(element, options) {\r\n // grab the element the plugin was called on - this is the button that you click to open the side nav\r\n this.element = element;\r\n this.$element = $(element);\r\n\r\n // get per-element inline configuration settings\r\n this.metadata = this.$element.data('shamone-options');\r\n this.options = $.extend({}, defaults, options, this.metadata);\r\n\r\n // save the plugin name\r\n this._name = pluginName;\r\n\r\n // make sure slide direction is lowercase\r\n this.options.slideDirection = this.options.slideDirection.toLowerCase();\r\n\r\n // make sure that a slideDirection was passed in\r\n if (this.options.slideDirection !== \"left\" && this.options.slideDirection !== \"right\") {\r\n throw new Error(\"You must set a slideDirection. Exiting Shamone. Hee hee!\");\r\n return;\r\n }\r\n\r\n // call init function\r\n this.init();\r\n }\r\n\r\n // Define this sucker\r\n Shamone.prototype = {\r\n init: function() {\r\n var plugin = this;\r\n\r\n // setup elements\r\n plugin.$element.addClass(plugin.options.buttonClass + \" \" + plugin.options.animateSlideClass);\r\n plugin.$nav = $(plugin.options.navSelector).addClass(plugin.options.navClass + \" \" + plugin.options.animateSlideClass);\r\n plugin.$contentPanel = $(plugin.options.contentPanelSelector).addClass(plugin.options.contentPanelClass + \" \" + plugin.options.animateSlideClass);\r\n plugin.$target = $(plugin.$element.attr('href'));\r\n plugin.isOpen = false;\r\n\r\n // take the nav element from wherever it is and put it outside of the content panel\r\n plugin._moveNav();\r\n\r\n // setup listener\r\n plugin._clickListen();\r\n },\r\n\r\n _moveNav: function() {\r\n var plugin = this,\r\n navInContentPanel = false;\r\n plugin.$navPrev = [];\r\n plugin.$navParent = [];\r\n\r\n navInContentPanel = plugin.$nav.parents().find(plugin.$contentPanel).length > 0;\r\n\r\n if (navInContentPanel) {\r\n // save the nav's current position so we can put it back on destroy\r\n plugin.$navPrev = plugin.$nav.prev();\r\n plugin.$navParent = plugin.$nav.parent();\r\n // move the nav outside of the content panel\r\n plugin.$nav.detach().insertBefore(plugin.$contentPanel);\r\n }\r\n\r\n if (typeof plugin.options.setupCallback === \"function\")\r\n plugin.options.setupCallback();\r\n },\r\n\r\n _clickListen: function() {\r\n var plugin = this;\r\n\r\n plugin.$element.on('click.shamone', function(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n var $this = $(this);\r\n\r\n if (plugin.isOpen) {\r\n //close panel\r\n plugin.close(true, true);\r\n } else {\r\n // open panel\r\n plugin.open();\r\n }\r\n });\r\n },\r\n\r\n open: function() {\r\n // re-reference the plugin to avoid this conflicts\r\n var plugin = this,\r\n $body = $('body'),\r\n $fixedPanel = $(plugin.options.contentPanelSelector);\r\n\r\n // open panel - add css classes\r\n plugin.$target.addClass(plugin.options.activeNavSectionClass);\r\n plugin.$element.addClass(plugin.options.activeButtonClass);\r\n plugin.$contentPanel.addClass(plugin.options.classPrefix + plugin.options.slideDirection);\r\n\r\n // make sure that the body is tall enough and the user can't scroll past the nav\r\n $fixedPanel.css('position', 'fixed');\r\n plugin.$target.css('height', $(window).height() > plugin.$target.outerHeight() ? $(window).height() : plugin.$target.outerHeight());\r\n\r\n // add click handler to close if user clicks anywhere outside of the navigation\r\n $fixedPanel.on('click.shamone', function(event) {\r\n plugin.close(true, true);\r\n });\r\n\r\n // add click handler to close nav if user clicks a nav link\r\n plugin.$target.on('click.shamone', function(event) {\r\n event.stopPropagation();\r\n if (event.target.tagName.toLowerCase() == \"a\")\r\n plugin.close(false, false);\r\n });\r\n\r\n // set flag on plugin object\r\n plugin.isOpen = true;\r\n\r\n // hollaback!\r\n if (typeof plugin.options.openCallback === \"function\")\r\n plugin.options.openCallback();\r\n\r\n },\r\n\r\n close: function(animateIt, fireCallback) {\r\n var plugin = this,\r\n $fixedPanel = $(plugin.options.contentPanelSelector);\r\n\r\n // remove animation\r\n if (!animateIt) {\r\n plugin.$element.removeClass(plugin.options.animateSlideClass);\r\n plugin.$nav.removeClass(plugin.options.animateSlideClass);\r\n plugin.$contentPanel.removeClass(plugin.options.animateSlideClass);\r\n }\r\n\r\n // clear out css classes\r\n plugin.$target.removeClass(plugin.options.activeNavSectionClass);\r\n plugin.$element.removeClass(plugin.options.activeButtonClass);\r\n plugin.$contentPanel.removeClass(plugin.options.classPrefix + plugin.options.slideDirection);\r\n\r\n // reset height\r\n //plugin.$target.css('height', 'auto');\r\n $fixedPanel.css('position', 'relative');\r\n\r\n // remove event handlers\r\n $fixedPanel.off('click.shamone');\r\n plugin.$target.off('click.shamone');\r\n\r\n // set flag on plugin object\r\n plugin.isOpen = false;\r\n\r\n // only fire callback if user tapped the close button or otherwise closed the nav\r\n // don't fire callback if panel closes because they clicked a link to another page\r\n if (fireCallback && typeof plugin.options.closeCallback === \"function\")\r\n plugin.options.closeCallback();\r\n\r\n },\r\n\r\n destroy: function() {\r\n var plugin = this;\r\n\r\n // make sure nav is closed\r\n plugin.close(false);\r\n\r\n // remove height\r\n plugin.$target.css('height', 'auto');\r\n\r\n // remove all classes\r\n plugin.$element.removeClass(plugin.options.buttonClass + \" \" + plugin.options.animateSlideClass);\r\n plugin.$nav.removeClass(plugin.options.navClass + \" \" + plugin.options.animateSlideClass);\r\n plugin.$contentPanel.removeClass(plugin.options.contentPanelClass + \" \" + plugin.options.animateSlideClass);\r\n\r\n // remove listeners\r\n plugin.$element.off('click.shamone');\r\n\r\n // move nav back to where it was\r\n if (plugin.$navPrev.length > 0) {\r\n plugin.$nav.detach().insertAfter(plugin.$navPrev);\r\n } else if (plugin.$navParent.length > 0) {\r\n plugin.$nav.detach().prependTo(plugin.$navParent);\r\n }\r\n\r\n if (typeof plugin.options.destroyCallback === \"function\")\r\n plugin.options.destroyCallback();\r\n\r\n // remove the data\r\n plugin.$element.removeData('plugin_' + pluginName);\r\n }\r\n };\r\n\r\n // Turn this into a jquery plugin & prevent multiple instantiations\r\n $.fn[pluginName] = function(options) {\r\n return this.each(function() {\r\n if (!$.data(this, 'plugin_' + pluginName)) {\r\n $.data(this, 'plugin_' + pluginName,\r\n new Shamone(this, options));\r\n }\r\n });\r\n }\r\n\r\n })(jQuery, window, document);\r\n});\r\n/*\r\nKeep on slidin'\r\nHee hee!\r\n\r\n___________§§§$$§§$§§_\r\n_________$$$$$§§§$$§§$§_\r\n_______($$$$$$$§§§$$§§$§§_(§§)_\r\n_______($$$$$$$$$$$$§§$$__$§§$)~\r\n________(§§§$$$$§$$$$§§$$§§$§§$§§~\r\n________((_($$§§$§§$§§§§§§§§§$$§§$\r\n________))_(§$$$$$$§§$$§§$§§$§§§§§~\r\n_________((_)_((§$$§$$§§$$§§$§§$§§§§((....\r\n___________))_)_§$$))_$$$§§§$$§§$§§$§§§§§\r\n___________(__(_))_§$§§§§§$$§§$$§§$§§$§§§\r\n_______________(__$_$$§§§§§§$$§§$$§§$§§$§§\r\n_______________)_$_$§$§§§§§§$§§$$§§$§§§§__§\r\n__________________)$__§§§§§§$§$$_§$$§§___§$§\r\n_________________(§___$§§§§§$§§$_§$$___§§§§§§\r\n_________________($§__$§$§§§$$$§§§_$__$§§§§§$§§\r\n__________________§§§_§$$$$$§§§§§§§$§§_§$$§$$§§§§\r\n___________________(§__§§§§§§§§§§$§§$$§§_§§$_§§§§§\r\n___________________(§_$$§§$§§§§§§§§$$§§$§_$§§§§§§\r\n____________________§_$§§$§§§§§§§§$$§§_§§$§§§§§§\r\n____________________§__$$§§§§$§§§§§§$_§§$§§$§§§\r\n_____________________§_$$§§§§$§§§§§__$§§$§§$§§\r\n_____________________§_$$_§§§§§§$§§$$§§$§§§§\r\n_____________________§§§§_§§§§§$§§$$§§$§§§§\r\n_____________________§§§$$::::§§$$$§§$$§§$_§\r\n___________________§§§§:§§§§§§__§§$§§$§_§§\r\n_________________§$$:§§§§§$$$§___§$§§$§§§§\r\n______________§§:§§$§$$§§$$__$§§$§§§§§§\r\n____________$$§:§§§$§$$$$$§§$$§§$§§$§_§§§\r\n__________$$§:§§$$$$$$§§$§§§§§§§$$___$§§\r\n_______$$$§::§$$$$$$§§$§§§§§§§§§______§§\r\n_____$$$§::§$$$$FL$§§§§§§§$§§$_________§\r\n___$$$§::§§$$$$§§§§$$$§§§§\r\n_$$§::§§§$$§§$§§§§§§§§§\r\n$§§§$§§§§§$$§§§§§§§\r\n§§§§§§§$$§§$§§§§\r\n_§§§§§§§§$§§_§§$\r\n_§§§§§§§§§$§§$_§§§\r\n__§§§§$§§§$§$§§$_§§\r\n___§§§§$§§§$§$§§$_§§\r\n_____$§§§§§§§§§§§$§_§§\r\n______§§§$§§§§§§$§§$§_§\r\n_______$§§§§§§§$$§$$§§_§§\r\n________§§§§$$§§$$§§$$§§_§\r\n_________§$§$$$§§§§§§$$§§$§§\r\n__________$$$$§§$_§§$§§$§§§§§§\r\n___________§$§§$§§_§§§§§§§§§$$§§$§\r\n____________§$§§$§§_§§§§§§§§_$$§§$\r\n_____________§$§§$§§_$§§§§§__§§$§\r\n_________________§$§§$______§§§§\r\n__________________§§§§§_§§__§§§§$\r\n__________________§§§$§§__$§§§§§§§\r\n___________________§$§§$§____§$§§§§\r\n_____________________§§§$§§___§§$§§\r\n*/\r\n;\n","define('core/modules/nav',[\"jquery\", \"core/global/state\", \"libs/enquire\", \"core/ef_plugins/shamone\"], function ($, state, enquire) {\r\n return {\r\n init: function() {\r\n console.log('nav');\r\n\r\n var plugin,\r\n navSelector = '.nav-sitewide',\r\n $nav = $(navSelector),\r\n $mainNav = $('#main-nav'),\r\n $utilityNav = $('#utility-nav'),\r\n $ctas = $('#nav-utility-ctas');\r\n\r\n var windowWidth = state.getBreakpoint();\r\n\r\n var utilityDropdown = {\r\n close: function($el) {\r\n $el.removeClass('is-open');\r\n $(document).off('touchstart.utilitysubnav');\r\n },\r\n\r\n setup: function () {\r\n var self = this;\r\n\r\n // set up logged-in dropdown on click event on touch devices (uses css hover on non-touch)\r\n if (EFTOURS.device.isTouch && $nav.hasClass('is-logged-in')) {\r\n $('.nav-utility-haschildren > .nav-utility-link').on('click.utilitysubnav', function (evt) {\r\n var $parent = $(this).parent();\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n\r\n if ($parent.hasClass('is-open')) {\r\n self.close($parent);\r\n }\r\n else {\r\n $parent.addClass('is-open');\r\n $(document).on('touchstart.utilitysubnav', function (event) {\r\n if (!$(event.target).parents('.nav-utility-haschildren').is($parent)) {\r\n self.close($parent);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n },\r\n\r\n breakdown: function () {\r\n var self = this;\r\n if (EFTOURS.device.isTouch && $nav.hasClass('is-logged-in')) {\r\n self.close($('.nav-utility-haschildren > .nav-utility-link').parent());\r\n\r\n // clear out handler\r\n $('.nav-utility-haschildren > .nav-utility-link').off('click.utilitysubnav');\r\n }\r\n }\r\n };\r\n\r\n //setup the utility dropdown\r\n if (windowWidth >= 865) {\r\n console.log(\"utility setup on load\");\r\n utilityDropdown.setup();\r\n }\r\n\r\n // if not fixed width, setup shamone, etc.\r\n if (!state.oldIe() && !EFTOURS.config.isfixedwidth) {\r\n function swapNav() {\r\n if ($('html').hasClass('lt-ie10')) {\r\n //swap utility nav and main nav position\r\n $mainNav.insertBefore($utilityNav);\r\n $ctas.detach().appendTo($utilityNav);\r\n }\r\n };\r\n\r\n function resetNav() {\r\n if ($('html').hasClass('lt-ie10')) {\r\n // swap header CTA and main nav position back\r\n $utilityNav.insertBefore($mainNav);\r\n $ctas.detach().prependTo($utilityNav);\r\n }\r\n };\r\n\r\n // Side nav setup / destroy\r\n\r\n enquire.register(\"screen and (max-width : 864px)\", {\r\n match: function () {\r\n console.log(\"shamone match\");\r\n\r\n utilityDropdown.breakdown();\r\n\r\n // side slide nav\r\n $('.hee-hee').shamone({\r\n 'navSelector': navSelector,\r\n 'contentPanelSelector': '.site-wrapper',\r\n 'slideDirection': 'left',\r\n 'openCallback': function () { dataLayer.push({ 'event': 'click', 'context': 'MainNav', 'action': 'open' }); },\r\n 'closeCallback': function () { dataLayer.push({ 'event': 'click', 'context': 'MainNav', 'action': 'close' }); },\r\n 'setupCallback': function () { swapNav(); },\r\n 'destroyCallback': function () { resetNav(); },\r\n 'linksDisabledElement': '#main'\r\n });\r\n },\r\n\r\n unmatch: function () {\r\n console.log(\"shamone unmatch\");\r\n\r\n // destroy any existing side slide nav\r\n plugin = $('.hee-hee').data('plugin_shamone');\r\n if (plugin !== undefined)\r\n plugin.destroy();\r\n\r\n // setup utility dropdown\r\n utilityDropdown.setup();\r\n }\r\n });\r\n\r\n }\r\n }\r\n }\r\n});\n"]}