]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
Convert util.nest to ES6
authorGeoff Kimball <geoff@zurb.com>
Wed, 3 Feb 2016 19:42:46 +0000 (11:42 -0800)
committerGeoff Kimball <geoff@zurb.com>
Wed, 3 Feb 2016 19:42:46 +0000 (11:42 -0800)
js/foundation.util.nest.js

index 3b1679e3481ddcb827c184cd52672ba85aab3230..789f9dcebdd2dd34aad176ee27b08a417805407c 100644 (file)
@@ -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;
+}