After some research I found neat way to do it:
<!-- Listen to Shift + Up -->
<input (keyup.shift.arrowup)="...">
<!-- Listen to Ctrl + Shift + Down -->
<input (keyup.control.shift.arrowdown)="...">
<!-- Listen to Esc within window -->
<div (window:keyup.esc)="...">
UPDATE
After exploring angular sources (here and here).
It turns out that general syntax for such event names is: eventname.modifier.key.
Where:
- eventname: keydown or keyup
- modifier: alt, control, meta or shift (can be more than one)
- key: key from KeyboardEvent.key
property
Examples: keyup.control.z
, keyup.control.backspace
, keyup.shift.pageup
, keyup.alt.dot
.
Note that some combination may not work, e.g. keyup.shift.tab
.