2018-11-23 12:29:20 +00:00
( 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 ) ;