| 514 | } |
| 515 | |
| 516 | inputKeydown(event: KeyboardEvent) { |
| 517 | // eslint-disable-next-line no-restricted-syntax |
| 518 | const key = event.key; |
| 519 | |
| 520 | if (key === "Escape") { |
| 521 | this.hide(); |
| 522 | } else if (key === "Enter") { |
| 523 | const selected = this.resultsList.querySelector<HTMLElement>( |
| 524 | '[aria-selected="true"], [data-combobox-option-default="true"]' |
| 525 | ); |
| 526 | if (!selected || selected.getAttribute("aria-disabled") === "true") |
| 527 | return; |
| 528 | const link = selected.querySelector("a"); |
| 529 | if (link) { |
| 530 | // eslint-disable-next-line no-restricted-syntax |
| 531 | const openInNewWindow = event.ctrlKey || event.metaKey; |
| 532 | if (openInNewWindow) { |
| 533 | window.open(link.getAttribute("href") || "", "_blank"); |
| 534 | } else { |
| 535 | link.click(); |
| 536 | } |
| 537 | } |
| 538 | } |
| 539 | } |
| 540 | |
| 541 | inputSubmit(): void { |
| 542 | this.hide(); |