in desktop/src/@batch-flask/ui/select/select.component.ts [527:555]
private _handleKeydownOpen(event: KeyboardEvent) {
if (this.displayedOptions.length === 0) { return; }
const keyCode = event.keyCode;
const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW;
const navigator = this._keyNavigator;
if (keyCode === HOME || keyCode === END) {
event.preventDefault();
keyCode === HOME ? navigator.focusFirstItem() : navigator.focusLastItem();
} else if (isArrowKey && event.altKey || keyCode === ESCAPE) {
// Close the select on ALT + arrow key to match the native <select>
event.preventDefault();
event.stopPropagation();
this.closeDropdown();
} else if ((keyCode === ENTER || keyCode === SPACE) && navigator.focusedItem) {
event.preventDefault();
this.selectOption(navigator.focusedItem);
} else {
const previouslyFocusedIndex = navigator.focusedItemIndex;
navigator.onKeydown(event);
if (this.multiple && isArrowKey && event.shiftKey && navigator.focusedItem &&
navigator.focusedItemIndex !== previouslyFocusedIndex) {
this.selectOption(navigator.focusedItem);
}
}
}