@@ -304,13 +304,6 @@ class List extends BaseList {
304304 }
305305 }
306306
307- /**
308- * @param {Object } data
309- */
310- onKeyDownEscape ( data ) {
311- this . floating && this . unmount ( )
312- }
313-
314307 /**
315308 * @param {Object } data
316309 * @param {Object[] } data.path
@@ -349,15 +342,47 @@ class List extends BaseList {
349342 onItemClick ( node , data ) {
350343 super . onItemClick ( node , data ) ;
351344
352- let me = this ;
345+ let me = this ,
346+ record = data . record ;
353347
354- data . record . handler ?. call ( me , data ) ;
348+ record . handler ?. call ( me , record ) ;
355349
356- if ( me . hideOnLeafItemClick && ! data . record . items ) {
350+ if ( me . hideOnLeafItemClick && ! record . items ) {
357351 me . unmount ( )
358352 }
359353 }
360354
355+ /**
356+ * @param {String } nodeId
357+ */
358+ onKeyDownEnter ( nodeId ) {
359+ let me = this ,
360+ recordId = me . getItemRecordId ( nodeId ) ,
361+ record = me . store . get ( recordId ) ,
362+ submenu ;
363+
364+ record . handler ?. call ( me , record ) ;
365+
366+ if ( me . hideOnLeafItemClick && ! record . items ) {
367+ me . unmount ( )
368+ }
369+
370+ if ( record . items ) {
371+ submenu = me . subMenuMap [ me . getMenuMapId ( recordId ) ] ;
372+
373+ if ( submenu ) {
374+ me . toggleSubMenu ( nodeId , record )
375+ }
376+ }
377+ }
378+
379+ /**
380+ * @param {Object } data
381+ */
382+ onKeyDownEscape ( data ) {
383+ this . floating && this . unmount ( )
384+ }
385+
361386 /**
362387 * @param {String[] } items
363388 */
@@ -422,6 +447,22 @@ class List extends BaseList {
422447 } ) ;
423448 }
424449
450+ /**
451+ * @param {String } nodeId
452+ * @param {Object } record
453+ */
454+ toggleSubMenu ( nodeId , record ) {
455+ let me = this ,
456+ recordId = record [ me . getKeyProperty ( ) ] ,
457+ submenu = me . subMenuMap [ me . getMenuMapId ( recordId ) ] ;
458+
459+ if ( ! submenu ?. mounted ) {
460+ me . showSubMenu ( nodeId , record )
461+ } else {
462+ me . hideSubMenu ( )
463+ }
464+ }
465+
425466 /**
426467 *
427468 */
0 commit comments