* Set focus to either the current, previous or next item based on the FocusNext event, then * open the previous or next item. * @param focusNext The element to focus.
(focusNext: FocusNext | undefined)
| 109 | * @param focusNext The element to focus. |
| 110 | */ |
| 111 | private _toggleOpenMenu(focusNext: FocusNext | undefined) { |
| 112 | const keyManager = this.keyManager; |
| 113 | switch (focusNext) { |
| 114 | case FocusNext.nextItem: |
| 115 | keyManager.setFocusOrigin('keyboard'); |
| 116 | keyManager.setNextItemActive(); |
| 117 | keyManager.activeItem?.getMenuTrigger()?.open(); |
| 118 | break; |
| 119 | |
| 120 | case FocusNext.previousItem: |
| 121 | keyManager.setFocusOrigin('keyboard'); |
| 122 | keyManager.setPreviousItemActive(); |
| 123 | keyManager.activeItem?.getMenuTrigger()?.open(); |
| 124 | break; |
| 125 | |
| 126 | case FocusNext.currentItem: |
| 127 | if (keyManager.activeItem) { |
| 128 | keyManager.setFocusOrigin('keyboard'); |
| 129 | keyManager.setActiveItem(keyManager.activeItem); |
| 130 | } |
| 131 | break; |
| 132 | } |
| 133 | } |
| 134 | |
| 135 | /** Subscribe to the MenuStack emptied events. */ |
| 136 | private _subscribeToMenuStackEmptied() { |
no test coverage detected