utils/keyboard
@ckeditor/ckeditor5-utils/src/keyboard
A set of utilities related to keyboard support.
Filtering
Constants
-
keyCodes
module:utils/keyboard~keyCodes
An object with
keyName => keyCode
pairs for a set of known keys.Contains:
a-z
,0-9
,f1-f12
,`
,-
,=
,[
,]
,;
,'
,,
,.
,/
,\
,arrow(left|up|right|bottom)
,backspace
,delete
,enter
,esc
,tab
,ctrl
,cmd
,shift
,alt
.
Interfaces
-
KeystrokeInfo
module:utils/keyboard~KeystrokeInfo
Information about the keystroke.
Functions
-
getCode( A ) → Number
module:utils/keyboard~getCode
Converts a key name or keystroke info into a key code.
Note: Key names are matched with
keyCodes
in a case-insensitive way.Parameters
A : String | KeystrokeInfo
key name (see
keyCodes
) or a keystroke data object.
Returns
Number
Key or keystroke code.
-
getEnvKeystrokeText( keystroke ) → String
module:utils/keyboard~getEnvKeystrokeText
Translates any keystroke string text like
"Ctrl+A"
to an environment–specific keystroke, i.e."⌘A"
on macOS.Parameters
keystroke : String
The keystroke text.
Returns
String
The keystroke text specific for the environment.
-
getLocalizedArrowKeyCodeDirection( keyCode, contentLanguageDirection ) → 'left' | 'up' | 'right' | 'down'
module:utils/keyboard~getLocalizedArrowKeyCodeDirection
Returns the direction in which the selection will move when the provided arrow key code is pressed considering the language direction of the editor content.
For instance, in right–to–left (RTL) content languages, pressing the left arrow means moving the selection right (forward) in the model structure. Similarly, pressing the right arrow moves the selection left (backward).
Parameters
keyCode : Number
A key code as in
keyCode
.contentLanguageDirection : 'ltr' | 'rtl'
The content language direction, corresponding to
contentLanguageDirection
.
Returns
'left' | 'up' | 'right' | 'down'
Localized arrow direction.
-
isArrowKeyCode( keyCode ) → Boolean
module:utils/keyboard~isArrowKeyCode
Returns
true
if the provided key code represents one of the arrow keys. -
isForwardArrowKeyCode( keyCode, contentLanguageDirection ) → Boolean
module:utils/keyboard~isForwardArrowKeyCode
Determines if the provided key code moves the selection forward or backward considering the language direction of the editor content.
For instance, in right–to–left (RTL) languages, pressing the left arrow means moving forward in the model structure. Similarly, pressing the right arrow moves the selection backward.
Parameters
keyCode : Number
A key code as in
keyCode
.contentLanguageDirection : 'ltr' | 'rtl'
The content language direction, corresponding to
contentLanguageDirection
.
Returns
Boolean
-
parseKeystroke( keystroke ) → Number
module:utils/keyboard~parseKeystroke
Parses the keystroke and returns a keystroke code that will match the code returned by
getCode
for the corresponding keystroke info.The keystroke can be passed in two formats:
- as a single string – e.g.
ctrl + A
, - as an array of known key names and key codes – e.g.:
[ 'ctrl', 32 ]
(ctrl + space),[ 'ctrl', 'a' ]
(ctrl + A).
Note: Key names are matched with
keyCodes
in a case-insensitive way.Note: Only keystrokes with a single non-modifier key are supported (e.g.
ctrl+A
is OK, butctrl+A+B
is not).Note: On macOS, keystroke handling is translating the
Ctrl
key to theCmd
key and handling only that keystroke. For example, a registered keystrokeCtrl+A
will be translated toCmd+A
on macOS. To disable the translation of some keystroke, use the forced modifier:Ctrl!+A
(note the exclamation mark).Parameters
keystroke : String | Array.<(Number | String)>
The keystroke definition.
Returns
Number
Keystroke code.
- as a single string – e.g.
Every day, we work hard to keep our documentation complete. Have you spotted an outdated information? Is something missing? Please report it via our issue tracker.