From: Geoff Kimball Date: Wed, 3 Feb 2016 19:42:46 +0000 (-0800) Subject: Convert util.nest to ES6 X-Git-Tag: v6.2.0-rc.1~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=486f213081f67ca1e2bc13b2de489fbdc4a5b175;p=thirdparty%2Ffoundation%2Ffoundation-sites.git Convert util.nest to ES6 --- diff --git a/js/foundation.util.nest.js b/js/foundation.util.nest.js index 3b1679e34..789f9dceb 100644 --- a/js/foundation.util.nest.js +++ b/js/foundation.util.nest.js @@ -1,63 +1,76 @@ -!function($, Foundation){ - 'use strict'; - Foundation.Nest = { - Feather: function(menu, type){ - menu.attr('role', 'menubar'); - type = type || 'zf'; - var items = menu.find('li').attr({'role': 'menuitem'}), - subMenuClass = `is-${type}-submenu`, - subItemClass = `${subMenuClass}-item`, - hasSubClass = `is-${type}-submenu-parent`; - menu.find('a:first').attr('tabindex', 0); - items.each(function(){ - var $item = $(this), - $sub = $item.children('ul'); - if($sub.length){ - $item.addClass(hasSubClass) - .attr({ - 'aria-haspopup': true, - 'aria-expanded': false, - 'aria-label': $item.children('a:first').text() - }); - $sub.addClass(`submenu ${subMenuClass}`) - .attr({ - 'data-submenu': '', - 'aria-hidden': true, - 'role': 'menu' - }); - } - if($item.parent('[data-submenu]').length){ - $item.addClass(`is-submenu-item ${subItemClass}`); - } - }); - return; - }, - Burn: function(menu, type){ - var items = menu.find('li').removeAttr('tabindex'), - subMenuClass = `is-${type}-submenu`, - subItemClass = `${subMenuClass}-item`, - hasSubClass = `is-${type}-submenu-parent`; - - // menu.find('.is-active').removeClass('is-active'); - menu.find('*') - // menu.find('.' + subMenuClass + ', .' + subItemClass + ', .is-active, .has-submenu, .is-submenu-item, .submenu, [data-submenu]') - .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`) - .removeAttr('data-submenu').css('display', ''); - - // console.log( menu.find('.' + subMenuClass + ', .' + subItemClass + ', .has-submenu, .is-submenu-item, .submenu, [data-submenu]') - // .removeClass(subMenuClass + ' ' + subItemClass + ' has-submenu is-submenu-item submenu') - // .removeAttr('data-submenu')); - // items.each(function(){ - // var $item = $(this), - // $sub = $item.children('ul'); - // if($item.parent('[data-submenu]').length){ - // $item.removeClass('is-submenu-item ' + subItemClass); - // } - // if($sub.length){ - // $item.removeClass('has-submenu'); - // $sub.removeClass('submenu ' + subMenuClass).removeAttr('data-submenu'); - // } - // }); - } - }; -}(jQuery, window.Foundation); +'use strict'; + +const Nest = { + Feather(menu, type = 'zf') { + menu.attr('role', 'menubar'); + + var items = menu.find('li').attr({'role': 'menuitem'}), + subMenuClass = `is-${type}-submenu`, + subItemClass = `${subMenuClass}-item`, + hasSubClass = `is-${type}-submenu-parent`; + + menu.find('a:first').attr('tabindex', 0); + + items.each(function() { + var $item = $(this), + $sub = $item.children('ul'); + + if ($sub.length) { + $item + .addClass(hasSubClass) + .attr({ + 'aria-haspopup': true, + 'aria-expanded': false, + 'aria-label': $item.children('a:first').text() + }); + + $sub + .addClass(`submenu ${subMenuClass}`) + .attr({ + 'data-submenu': '', + 'aria-hidden': true, + 'role': 'menu' + }); + } + + if ($item.parent('[data-submenu]').length) { + $item.addClass(`is-submenu-item ${subItemClass}`); + } + }); + + return; + }, + + Burn(menu, type) { + var items = menu.find('li').removeAttr('tabindex'), + subMenuClass = `is-${type}-submenu`, + subItemClass = `${subMenuClass}-item`, + hasSubClass = `is-${type}-submenu-parent`; + + menu + .find('*') + .removeClass(`${subMenuClass} ${subItemClass} ${hasSubClass} is-submenu-item submenu is-active`) + .removeAttr('data-submenu').css('display', ''); + + // console.log( menu.find('.' + subMenuClass + ', .' + subItemClass + ', .has-submenu, .is-submenu-item, .submenu, [data-submenu]') + // .removeClass(subMenuClass + ' ' + subItemClass + ' has-submenu is-submenu-item submenu') + // .removeAttr('data-submenu')); + // items.each(function(){ + // var $item = $(this), + // $sub = $item.children('ul'); + // if($item.parent('[data-submenu]').length){ + // $item.removeClass('is-submenu-item ' + subItemClass); + // } + // if($sub.length){ + // $item.removeClass('has-submenu'); + // $sub.removeClass('submenu ' + subMenuClass).removeAttr('data-submenu'); + // } + // }); + } +} + +export default Nest; + +if (window.Foundation) { + window.Foundation.Nest = Nest; +}