‘use strict’;
!function($) {
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`; items.each(function() { var $item = $(this), $sub = $item.children('ul'); if ($sub.length) { $item .addClass(hasSubClass) .attr({ 'aria-haspopup': true, 'aria-label': $item.children('a:first').text() }); // Note: Drilldowns behave differently in how they hide, and so need // additional attributes. We should look if this possibly over-generalized // utility (Nest) is appropriate when we rework menus in 6.4 if(type === 'drilldown') { $item.attr({'aria-expanded': false}); } $sub .addClass(`submenu ${subMenuClass}`) .attr({ 'data-submenu': '', 'role': 'menu' }); if(type === 'drilldown') { $sub.attr({'aria-hidden': true}); } } if ($item.parent('[data-submenu]').length) { $item.addClass(`is-submenu-item ${subItemClass}`); } }); return; }, Burn(menu, type) { var //items = menu.find('li'), subMenuClass = `is-${type}-submenu`, subItemClass = `${subMenuClass}-item`, hasSubClass = `is-${type}-submenu-parent`; menu .find('>li, .menu, .menu > li') .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'); // } // }); }
}
Foundation.Nest = Nest;
}(jQuery);