Options
All
  • Public
  • Public/Protected
  • All
Menu

A set of helpers and management functions for dealing with user input from keyboard events. https://keycode.info/

Hierarchy

  • KeyboardManager

Index

Constructors

Methods

  • _activateListeners(): void
  • Begin listening to keyboard events.

    internal

    Returns void

  • isModifierActive(modifier: string): boolean
  • Report whether a modifier in KeyboardManager.MODIFIER_KEYS is currently actively depressed.

    Parameters

    • modifier: string

      A modifier in MODIFIER_KEYS

    Returns boolean

    Is this modifier key currently down (active)?

  • releaseKeys([options]?: { force: boolean }): void
  • Emulate a key-up event for any currently down keys. When emulating, we go backwards such that combinations such as "CONTROL + S" emulate the "S" first in order to capture modifiers.

    Parameters

    • [options]: { force: boolean } = {}

      Options to configure behavior.

      • force: boolean

    Returns void

  • _onCompositionEnd(event: CompositionEvent): void
  • _processKeyboardContext(context: KeyboardEventContext, [options]?: { force: boolean }): void
  • Processes a keyboard event context, checking it against registered keybinding actions

    Parameters

    • context: KeyboardEventContext

      The keyboard event context

    • [options]: { force: boolean } = {}

      Additional options to configure behavior.

      • force: boolean

    Returns void

  • _onFocusIn(event: FocusEvent): void
  • Release any down keys when focusing a form element.

    Parameters

    • event: FocusEvent

      The focus event.

    Returns void

  • _reset(): void
  • Reset tracking for which keys are in the down and released states

    Returns void

  • _handleKeyboardEvent(event: KeyboardEvent, up: boolean): void
  • Handle a key press into the down position

    Parameters

    • event: KeyboardEvent

      The originating keyboard event

    • up: boolean

      A flag for whether the key is down or up

    Returns void

  • emulateKeypress(up: boolean, code: string, [options]?: { altKey: boolean; ctrlKey: boolean; shiftKey: boolean; repeat: boolean; force: boolean }): KeyboardEventContext
  • Emulates a key being pressed, triggering the Keyboard event workflow.

    Parameters

    • up: boolean

      If True, emulates the keyup Event. Else, the keydown event

    • code: string

      The KeyboardEvent#code which is being pressed

    • [options]: { altKey: boolean; ctrlKey: boolean; shiftKey: boolean; repeat: boolean; force: boolean } = {}

      Additional options to configure behavior.

      • altKey: boolean
      • ctrlKey: boolean
      • shiftKey: boolean
      • repeat: boolean
      • force: boolean

    Returns KeyboardEventContext

  • getKeycodeDisplayString(code: string): string
  • Format a KeyboardEvent#code into a displayed string.

    Parameters

    • code: string

      The input code

    Returns string

    The displayed string for this code

  • getKeyboardEventContext(event: KeyboardEvent, up?: boolean): KeyboardEventContext
  • Get a standardized keyboard context for a given event. Every individual keypress is uniquely identified using the KeyboardEvent#code property. A list of possible key codes is documented here: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values

    Parameters

    • event: KeyboardEvent

      The originating keypress event

    • up: boolean = false

      A flag for whether the key is down or up

    Returns KeyboardEventContext

    The standardized context of the event

  • _getMatchingActions(context: KeyboardEventContext): KeybindingAction[]
  • Given a standardized pressed key, find all matching registered Keybind Actions.

    internal

    Parameters

    • context: KeyboardEventContext

      A standardized keyboard event context

    Returns KeybindingAction[]

    The matched Keybind Actions. May be empty.

  • _getContextDisplayString(context: KeyboardEventContext, includeModifiers?: boolean): string
  • Converts a Keyboard Context event into a string representation, such as "C" or "Control+C"

    Parameters

    • context: KeyboardEventContext

      The standardized context of the event

    • includeModifiers: boolean = true

      If True, includes modifiers in the string representation

    Returns string

  • _testContext(action: KeybindingAction, context: KeyboardEventContext): boolean
  • Test whether a keypress context matches the registration for a keybinding action

    Parameters

    • action: KeybindingAction

      The keybinding action

    • context: KeyboardEventContext

      The keyboard event context

    Returns boolean

    Does the context match the action requirements?

  • _executeKeybind(keybind: KeybindingAction, context: KeyboardEventContext): boolean
  • Given a registered Keybinding Action, executes the action with a given event and context

    Parameters

    • keybind: KeybindingAction

      The registered Keybinding action to execute

    • context: KeyboardEventContext

      The gathered context of the event

    Returns boolean

    Returns true if the keybind was consumed

Properties

downKeys: Set<string> = ...

The set of key codes which are currently depressed (down)

moveKeys: Set<string> = ...

The set of movement keys which were recently pressed

MODIFIER_KEYS: { CONTROL: string; SHIFT: string; ALT: string } = ...

Allowed modifier keys

Type declaration

  • CONTROL: string
  • SHIFT: string
  • ALT: string
MODIFIER_CODES: {} = ...

Track which KeyboardEvent#code presses associate with each modifier

Type declaration

    PROTECTED_KEYS: string[] = ...

    Key codes which are "protected" and should not be used because they are reserved for browser-level actions.

    CONTROL_KEY_STRING: string = ...

    The OS-specific string display for what their Command key is

    KEYCODE_DISPLAY_MAPPING: Object = ...

    An special mapping of how special KeyboardEvent#code values should map to displayed strings or symbols. Values in this configuration object override any other display formatting rules which may be applied.

    Accessors

    • get hasFocus(): boolean
    • Test whether an HTMLElement currently has focus. If so we normally don't want to process keybinding actions.

      Returns boolean