Module

utils/keyboard

@ckeditor/ckeditor5-utils/src/keyboard

module

A set of utilities related to keyboard support.

Filtering

Constants

  • 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

Functions

  • getCode( A ) → Number

    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

    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'

    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

    Returns true if the provided key code represents one of the arrow keys.

    Parameters

    keyCode : Number

    A key code as in keyCode.

    Returns

    Boolean
  • isForwardArrowKeyCode( keyCode, contentLanguageDirection ) → Boolean

    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

    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, but ctrl+A+B is not).

    Note: On macOS, keystroke handling is translating the Ctrl key to the Cmd key and handling only that keystroke. For example, a registered keystroke Ctrl+A will be translated to Cmd+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.