{"version":3,"sources":["fett.mobile-menu.js"],"names":["$","window","document","Drupal","behaviors","fettMobileMenu","$wrapper","$menu","$links","$trail","animating","transitionDelay","attach","context","settings","self","this","once","each","init","on","linkClick","bind","trailBuild","e","level","preventDefault","currentTarget","next","attr","parent","addClass","setTimeout","items","text","links","push","html","forEach","item","link","appendTo","levelRevert","trailClean","index","remove","removeClass","jQuery"],"mappings":"CAIC,SAAUA,EAAGC,EAAQC,GAEpB,YAEAC,QAAOC,UAAUC,gBACfC,SAAU,KACVC,MAAO,KACPC,OAAQ,KACRC,OAAQ,KACRC,WAAW,EACXC,gBAAiB,IAEjBC,OAAQ,SAAUC,EAASC,GACzB,GAAIC,GAAOC,IACXhB,GAAE,0BAA2Ba,GAASI,KAAK,oBAAoBC,KAAK,WAClEH,EAAKT,SAAWN,EAAEgB,MAClBD,EAAKN,OAAST,EAAE,qBAAsBe,EAAKT,UAC3CS,EAAKR,MAAQP,EAAE,eAAgBe,EAAKT,UACpCS,EAAKP,OAASR,EAAE,sCAAuCe,EAAKR,OAC5DQ,EAAKI,UAITA,KAAM,WACJH,KAAKR,OAAOY,GAAG,QAASJ,KAAKK,UAAUC,KAAKN,OAC5CA,KAAKO,cAGPF,UAAW,SAAUG,GACnB,GACIC,GADAV,EAAOC,IAEXQ,GAAEE,iBACGX,EAAKL,YACRK,EAAKL,WAAY,EACjBe,EAAQzB,EAAEwB,EAAEG,eAAeC,KAAK,MAAMC,KAAK,cAC3C7B,EAAEwB,EAAEG,eAAeG,OAAO,MAAMC,SAAS,gBACzChB,EAAKR,MAAMsB,KAAK,aAAcJ,GAC9BV,EAAKQ,aACLS,WAAW,WACTjB,EAAKL,WAAY,GAChBK,EAAKJ,mBAIZY,WAAY,WACV,GAAIR,GAAOC,KACPS,EAAQ,EACRQ,IAAUC,KAAM,MAAOT,MAAOA,MAC9BU,IACJnC,GAAE,gEAAiEgB,KAAKT,OAAOW,KAAK,WAClFe,EAAMG,MAAMF,KAAMlC,EAAEgB,MAAMkB,OAAQT,MAAOA,QAE3CT,KAAKP,OAAO4B,KAAK,IACjBJ,EAAMK,QAAQ,SAAUC,GACtB,GAAIC,GAAOxC,EAAE,eAAiBuC,EAAKL,KAAO,QAAQO,SAAS1B,EAAKN,QAAQW,GAAG,QAAS,SAAUI,GAC5FA,EAAEE,iBACFX,EAAK2B,YAAYH,EAAKd,OACtBV,EAAK4B,WAAWR,EAAOI,EAAKd,QAE9BU,GAAMC,KAAKI,MAIfG,WAAY,SAAUR,EAAOV,GAC3BU,EAAMG,QAAQ,SAAUE,EAAMI,GACxBnB,EAAQmB,GACVJ,EAAKK,YAKXH,YAAa,SAAUjB,GACrB,GAAIV,GAAOC,IACXD,GAAKL,WAAY,EACjBK,EAAKR,MAAMsB,KAAK,aAAcJ,GAC9BO,WAAW,WACThC,EAAE,kBAAoByB,EAAQ,sBAAsBqB,YAAY,gBAChE/B,EAAKL,WAAY,GAChBK,EAAKJ,oBAIZoC,OAAQ9C,OAAQC","file":"fett.mobile-menu.js","sourcesContent":["/**\n * @file\n * Fett Mobile Menu.\n */\n(function ($, window, document) {\n\n 'use strict';\n\n Drupal.behaviors.fettMobileMenu = {\n $wrapper: null,\n $menu: null,\n $links: null,\n $trail: null,\n animating: false,\n transitionDelay: 500,\n\n attach: function (context, settings) {\n var self = this;\n $('div.mobile-menu-wrapper', context).once('fett-mobile-menu').each(function () {\n self.$wrapper = $(this);\n self.$trail = $('.mobile-menu-trail', self.$wrapper);\n self.$menu = $('.mobile-menu', self.$wrapper);\n self.$links = $('li.children > a, li.children > span', self.$menu);\n self.init();\n });\n },\n\n init: function () {\n this.$links.on('click', this.linkClick.bind(this));\n this.trailBuild();\n },\n\n linkClick: function (e) {\n var self = this;\n var level;\n e.preventDefault();\n if (!self.animating) {\n self.animating = true;\n level = $(e.currentTarget).next('ul').attr('data-level');\n $(e.currentTarget).parent('li').addClass('active-trail');\n self.$menu.attr('data-depth', level);\n self.trailBuild();\n setTimeout(function () {\n self.animating = false;\n }, self.transitionDelay);\n }\n },\n\n trailBuild: function () {\n var self = this;\n var level = 0;\n var items = [{text: 'All', level: level++}];\n var links = [];\n $('li.active-trail.children > a, li.active-trail.children > span', this.$menu).each(function () {\n items.push({text: $(this).text(), level: level++});\n });\n this.$trail.html('');\n items.forEach(function (item) {\n var link = $('' + item.text + '').appendTo(self.$trail).on('click', function (e) {\n e.preventDefault();\n self.levelRevert(item.level);\n self.trailClean(links, item.level);\n });\n links.push(link);\n });\n },\n\n trailClean: function (links, level) {\n links.forEach(function (link, index) {\n if (level < index) {\n link.remove();\n }\n });\n },\n\n levelRevert: function (level) {\n var self = this;\n self.animating = true;\n self.$menu.attr('data-depth', level);\n setTimeout(function () {\n $('ul[data-level=\"' + level + '\"] li.active-trail').removeClass('active-trail');\n self.animating = false;\n }, self.transitionDelay);\n }\n };\n\n}(jQuery, window, document));\n"],"sourceRoot":"/source/"}