Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / modules / contrib / admin_toolbar / js / admin_toolbar.js
index a52568a241670afc84e7e6294408bcacca40e1c7..96dfa829acc6787ce3bab44a087495c5e4160757 100644 (file)
@@ -1,5 +1,53 @@
-(function($) {
-  $(document).ready(function() {
-    $('a.toolbar-icon').removeAttr('title');
-  });
-})(jQuery);
+(function ($, Drupal) {
+  Drupal.behaviors.adminToolbar = {
+    attach: function (context, settings) {
+
+      $('a.toolbar-icon', context).removeAttr('title');
+
+      $('.toolbar-tray li.menu-item--expanded, .toolbar-tray ul li.menu-item--expanded .menu-item', context).hoverIntent({
+        over: function () {
+          // At the current depth, we should delete all "hover-intent" classes.
+          // Other wise we get unwanted behaviour where menu items are expanded while already in hovering other ones.
+          $(this).parent().find('li').removeClass('hover-intent');
+          $(this).addClass('hover-intent');
+        },
+        out: function () {
+          $(this).removeClass('hover-intent');
+        },
+        timeout: 250
+      });
+
+      // Make the toolbar menu navigable with keyboard.
+      $('ul.toolbar-menu li.menu-item--expanded a', context).on('focusin', function () {
+        $('li.menu-item--expanded', context).removeClass('hover-intent');
+        $(this).parents('li.menu-item--expanded').addClass('hover-intent');
+      });
+
+      $('ul.toolbar-menu li.menu-item a', context).keydown(function (e) {
+        if ((e.shiftKey && (e.keyCode || e.which) == 9)) {
+          if ($(this).parent('.menu-item').prev().hasClass('menu-item--expanded')) {
+            $(this).parent('.menu-item').prev().addClass('hover-intent');
+          }
+        }
+      });
+
+      $('.toolbar-menu:first-child > .menu-item:not(.menu-item--expanded) a, .toolbar-tab > a', context).on('focusin', function () {
+        $('.menu-item--expanded').removeClass('hover-intent');
+      });
+
+      $('.toolbar-menu:first-child > .menu-item', context).on('hover', function () {
+        $(this, 'a').css("background: #fff;");
+      });
+
+      $('ul:not(.toolbar-menu)', context).on({
+        mousemove: function () {
+          $('li.menu-item--expanded').removeClass('hover-intent');
+        },
+        hover: function () {
+          $('li.menu-item--expanded').removeClass('hover-intent');
+        }
+      });
+
+    }
+  };
+})(jQuery, Drupal);