File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change 6
6
* found in the LICENSE file at https://angular.io/license
7
7
*/
8
8
9
+ import { A , NINE , Z , ZERO } from '@angular/cdk/keycodes' ;
9
10
import { Subject , Observable } from 'rxjs' ;
10
11
import { debounceTime , filter , map , tap } from 'rxjs/operators' ;
11
12
@@ -74,8 +75,14 @@ export class Typeahead<T extends TypeaheadItem> {
74
75
}
75
76
76
77
handleKey ( event : KeyboardEvent ) : void {
77
- if ( event . key . length === 1 ) {
78
+ const keyCode = event . keyCode ;
79
+
80
+ // Attempt to use the `event.key` which also maps it to the user's keyboard language,
81
+ // otherwise fall back to resolving alphanumeric characters via the keyCode.
82
+ if ( event . key && event . key . length === 1 ) {
78
83
this . _letterKeyStream . next ( event . key . toLocaleUpperCase ( ) ) ;
84
+ } else if ( ( keyCode >= A && keyCode <= Z ) || ( keyCode >= ZERO && keyCode <= NINE ) ) {
85
+ this . _letterKeyStream . next ( String . fromCharCode ( keyCode ) ) ;
79
86
}
80
87
}
81
88
You can’t perform that action at this time.
0 commit comments