()
| 166 | |
| 167 | // Keyboard navigation |
| 168 | const bindKeyboard = () => |
| 169 | addEventListener('keydown', (event: KeyboardEvent) => { |
| 170 | if (doc.activeElement == input) { |
| 171 | const hovered = queryElement(results, '.hover'); |
| 172 | switch (event.code) { |
| 173 | case 'Escape': |
| 174 | return input.blur(); |
| 175 | case 'ArrowDown': |
| 176 | preventDefault(event); |
| 177 | return moveHover( |
| 178 | hovered, |
| 179 | hovered?.nextSibling ?? results.firstChild, |
| 180 | ); |
| 181 | case 'ArrowUp': |
| 182 | preventDefault(event); |
| 183 | return moveHover( |
| 184 | hovered, |
| 185 | hovered?.previousSibling ?? results.lastChild, |
| 186 | ); |
| 187 | case 'Enter': |
| 188 | return hovered?.dispatchEvent(new MouseEvent('mousedown')); |
| 189 | } |
| 190 | } else if (event.code == 'KeyK' && event.metaKey) { |
| 191 | input.focus(); |
| 192 | preventDefault(event); |
| 193 | } |
| 194 | }); |
| 195 | }); |
| 196 | }; |
| 197 |
no test coverage detected
searching dependent graphs…