@@ -274,11 +274,6 @@ export const MenuBarMixin = (superClass) =>
274274 return Array . from ( this . querySelectorAll ( 'vaadin-menu-bar-button' ) ) ;
275275 }
276276
277- /** @private */
278- get _subMenu ( ) {
279- return this . shadowRoot . querySelector ( 'vaadin-menu-bar-submenu' ) ;
280- }
281-
282277 /** @private */
283278 get _hasOverflow ( ) {
284279 return this . _overflow && ! this . _overflow . hasAttribute ( 'hidden' ) ;
@@ -297,6 +292,20 @@ export const MenuBarMixin = (superClass) =>
297292
298293 this . setAttribute ( 'role' , 'menubar' ) ;
299294
295+ this . _subMenuController = new SlotController ( this , 'submenu' , 'vaadin-menu-bar-submenu' , {
296+ initializer : ( menu ) => {
297+ menu . setAttribute ( 'is-root' , '' ) ;
298+
299+ menu . addEventListener ( 'item-selected' , this . __onItemSelected . bind ( this ) ) ;
300+ menu . addEventListener ( 'close-all-menus' , this . __onEscapeClose . bind ( this ) ) ;
301+
302+ const overlay = menu . _overlayElement ;
303+ overlay . addEventListener ( 'keydown' , this . __boundOnContextMenuKeydown ) ;
304+
305+ this . _subMenu = menu ;
306+ } ,
307+ } ) ;
308+
300309 this . _overflowController = new SlotController ( this , 'overflow' , 'vaadin-menu-bar-button' , {
301310 initializer : ( btn ) => {
302311 btn . setAttribute ( 'hidden' , '' ) ;
@@ -313,17 +322,13 @@ export const MenuBarMixin = (superClass) =>
313322 this . _overflow = btn ;
314323 } ,
315324 } ) ;
325+
326+ this . addController ( this . _subMenuController ) ;
316327 this . addController ( this . _overflowController ) ;
317328
318329 this . addEventListener ( 'mousedown' , ( ) => this . _hideTooltip ( true ) ) ;
319330 this . addEventListener ( 'mouseleave' , ( ) => this . _hideTooltip ( ) ) ;
320331
321- this . _subMenu . addEventListener ( 'item-selected' , this . __onItemSelected . bind ( this ) ) ;
322- this . _subMenu . addEventListener ( 'close-all-menus' , this . __onEscapeClose . bind ( this ) ) ;
323-
324- const overlay = this . _subMenu . _overlayElement ;
325- overlay . addEventListener ( 'keydown' , this . __boundOnContextMenuKeydown ) ;
326-
327332 this . _container = this . shadowRoot . querySelector ( '[part="container"]' ) ;
328333 }
329334
@@ -343,6 +348,10 @@ export const MenuBarMixin = (superClass) =>
343348 this . __updateSubMenu ( ) ;
344349 }
345350
351+ if ( props . has ( 'overlayClass' ) ) {
352+ this . _subMenu . overlayClass = this . overlayClass ;
353+ }
354+
346355 if ( props . has ( '_theme' ) ) {
347356 this . _themeChanged ( this . _theme ) ;
348357 }
0 commit comments