Options
All
  • Public
  • Public/Protected
  • All
Menu
classdesc

A generic key handler.

Example

example
 // Javascript
new KeyHandler( { trackAll : true } )
    .down('enter',function() { console.log('ENTER was hit.'); } )
    .press('enter',function() { console.log('ENTER was pressed.'); } )
    .up('enter',function() { console.log('ENTER was released.'); } )

     .down('e',function() { console.log('e was hit. shift is pressed?',keyHandler.isDown('shift')); } )

    .up('windows',function() { console.log('windows was released.'); } )
;

Hierarchy

  • KeyHandler

Index

Constructors

constructor

  • new KeyHandler(options: { element?: HTMLElement | Window | typeof globalThis; trackAll?: boolean }): KeyHandler
  • The constructor.

    instance
    memberof

    KeyHandler

    Parameters

    • options: { element?: HTMLElement | Window | typeof globalThis; trackAll?: boolean }
      • Optional element?: HTMLElement | Window | typeof globalThis

        (optional) The HTML element to listen on; if null then 'window' will be used.

      • Optional trackAll?: boolean

        (optional) Set to true if you want to keep track of all keys (keyStatus).

    Returns KeyHandler

Properties

Private _keyDownListener

_keyDownListener: (e: KeyboardEvent) => void

Type declaration

    • (e: KeyboardEvent): void
    • Parameters

      • e: KeyboardEvent

      Returns void

Private _keyPressListener

_keyPressListener: (e: KeyboardEvent) => void

Type declaration

    • (e: KeyboardEvent): void
    • Parameters

      • e: KeyboardEvent

      Returns void

Private _keyUpListener

_keyUpListener: (e: KeyboardEvent) => void

Type declaration

    • (e: KeyboardEvent): void
    • Parameters

      • e: KeyboardEvent

      Returns void

Private downListeners

downListeners: Array<any> = []

Private element

element: HTMLElement | Window | typeof globalThis

Private keyStates

keyStates: Record<number, string | undefined>

Private pressListeners

pressListeners: Array<any> = []

Private trackAllKeys

trackAllKeys: boolean

Private upListeners

upListeners: Array<any> = []

Methods

destroy

  • destroy(): void
  • This function should invalidate any installed listeners and invalidate this object. After calling this function the object might not hold valid data any more and should not be used any more.

    Returns void

down

  • Listen for key down. This function allows chaining.

    Example: new KeyHandler().down('enter',function() {console.log('Enter hit.')});

    name

    down

    memberof

    KeyHandler

    instance

    Parameters

    • key: string | number

      Any key identifier, key code or one from the KEY_CODES list.

    • listener: XKeyCallback

    Returns KeyHandler

    this

Private fireDownEvent

  • fireDownEvent(e: KeyboardEvent, handler: KeyHandler): void
  • Internal function to fire a new keydown event to all listeners. You should not call this function on your own unless you know what you do.

    name

    fireDownEvent

    memberof

    KeyHandler

    instance

    Parameters

    Returns void

Private fireEvent

  • fireEvent(event: KeyboardEvent, listeners: Array<XKeyListener>): boolean
  • A helper function to fire key events from this KeyHandler.

    Parameters

    • event: KeyboardEvent

      The key event to fire.

    • listeners: Array<XKeyListener>

    Returns boolean

Private firePressEvent

  • firePressEvent(e: KeyboardEvent, handler: KeyHandler): void
  • Internal function to fire a new keypress event to all listeners. You should not call this function on your own unless you know what you do.

    name

    firePressEvent

    memberof

    KeyHandler

    instance

    Parameters

    Returns void

    void

Private fireUpEvent

  • fireUpEvent(e: KeyboardEvent, handler: KeyHandler): void
  • Internal function to fire a new keyup event to all listeners. You should not call this function on your own unless you know what you do.

    name

    fireUpEvent

    memberof

    KeyHandler

    instance

    Parameters

    Returns void

installListeners

  • installListeners(): void
  • Install the required listeners into the initially passed element.

    By default the listeners are installed into the root element specified on construction (or 'window').

    Returns void

isDown

  • isDown(key: string | number): boolean
  • Check if a specific key is currently held pressed.

    Parameters

    • key: string | number

      Any key identifier, key code or one from the KEY_CODES list.

    Returns boolean

press

  • Listen for key press.

    Example: new KeyHandler().press('enter',function() {console.log('Enter pressed.')});

    name

    press

    memberof

    KeyHandler

    instance

    Parameters

    • key: string | number

      Any key identifier, key code or one from the KEY_CODES list.

    • listener: XKeyCallback

      The callback to be triggered.

    Returns KeyHandler

    this

releaseListeners

  • releaseListeners(): void

up

  • Listen for key up.

    Example: new KeyHandler().up('enter',function() {console.log('Enter released.')});

    name

    up

    memberof

    KeyHandler

    instance

    Parameters

    • key: string

      Any key identifier, key code or one from the KEY_CODES list.

    • listener: XKeyCallback

    Returns KeyHandler

    this

Static key2code

  • key2code(key: number | string): number

Object literals

Static Private KEY_CODES

KEY_CODES: object

!

!: number = 161

#

#: number = 163

$

$: number = 164

*

*: number = 170

/

/: number = 193

0

0: number = 48

1

1: number = 49

2

2: number = 50

3

3: number = 51

4

4: number = 52

5

5: number = 53

6

6: number = 54

7

7: number = 55

8

8: number = 56

9

9: number = 57

:

:: number = 58

<

<: number = 60

?

?: number = 193

@ (firefox)

@ (firefox): number = 64

GNOME Compose Key

GNOME Compose Key: number = 230

XF86Back

XF86Back: number = 234

XF86Forward

XF86Forward: number = 233

^

^: number = 160

`

`: number = 223

a

a: number = 65

add

add: number = 107

alphanumeric

alphanumeric: number = 240

alt

alt: number = 18

altgr

altgr: number = 225

b

b: number = 66

backslash

backslash: number = 220

backspace

backspace: number = 8

break

break: number = 3

c

c: number = 67

capslock

capslock: number = 20

chromebooksearch

chromebooksearch: number = 91

clear

clear: number = 12

closebracket

closebracket: number = 221

closingparen

closingparen: number = 169

comma

comma: number = 188

conversion

conversion: number = 28

ctrl

ctrl: number = 17

d

d: number = 68

dash

dash: number = 189

decimalpoint

decimalpoint: number = 110

decreasevolumelevel

decreasevolumelevel: number = 174

delete

delete: number = 46

divide

divide: number = 111

downarrow

downarrow: number = 40

e

e: number = 69

email

email: number = 180

end

end: number = 35

enter

enter: number = 13

equal

equal: number = 187

equals

equals: number = 59

equals (firefox)

equals (firefox): number = 61

escape

escape: number = 27

execute

execute: number = 43

f

f: number = 70

f1

f1: number = 112

f10

f10: number = 121

f11

f11: number = 122

f12

f12: number = 123

f13

f13: number = 124

f14

f14: number = 125

f15

f15: number = 126

f16

f16: number = 127

f17

f17: number = 128

f18

f18: number = 129

f19

f19: number = 130

f2

f2: number = 113

f20

f20: number = 131

f21

f21: number = 132

f22

f22: number = 133

f23

f23: number = 134

f24

f24: number = 135

f3

f3: number = 114

f4

f4: number = 115

f5

f5: number = 116

f6

f6: number = 117

f7

f7: number = 118

f8

f8: number = 119

f9

f9: number = 120

forwardslash

forwardslash: number = 191

full-width

full-width: number = 243

g

g: number = 71

grave accent

grave accent: number = 192

h

h: number = 72

half-width

half-width: number = 243

hangul

hangul: number = 21

hanja

hanja: number = 25

help

help: number = 47

hiragana

hiragana: number = 242

home

home: number = 36

i

i: number = 73

increasevolumelevel

increasevolumelevel: number = 175

insert

insert: number = 45

j

j: number = 74

k

k: number = 75

kanji

kanji: number = 244

katakana

katakana: number = 242

l

l: number = 76

leftarrow

leftarrow: number = 37

leftcommand

leftcommand: number = 91

m

m: number = 77

minus

minus: number = 173

multiply

multiply: number = 106

mute

mute: number = 181

n

n: number = 78

next

next: number = 176

non-conversion

non-conversion: number = 29

numlock

numlock: number = 144

numpad0

numpad0: number = 96

numpad1

numpad1: number = 97

numpad2

numpad2: number = 98

numpad3

numpad3: number = 99

numpad4

numpad4: number = 100

numpad5

numpad5: number = 101

numpad6

numpad6: number = 102

numpad7

numpad7: number = 103

numpad8

numpad8: number = 104

numpad9

numpad9: number = 105

numpadperiod

numpadperiod: number = 108

o

o: number = 79

openbracket

openbracket: number = 219

p

p: number = 80

pagebackward

pagebackward: number = 166

pagedown

pagedown: number = 34

pageforward

pageforward: number = 167

pageup

pageup: number = 33

pause

pause: number = 19

period

period: number = 190

play/pause

play/pause: number = 179

previous

previous: number = 177

print

print: number = 42

printscreen

printscreen: number = 44

q

q: number = 81

r

r: number = 82

refresh

refresh: number = 168

rightarrow

rightarrow: number = 39

rightcommant

rightcommant: number = 93

rightwindowkey

rightwindowkey: number = 92

s

s: number = 83

scrolllock

scrolllock: number = 145

select

select: number = 41

semicolon

semicolon: number = 186

semicolon (firefox)

semicolon (firefox): number = 59

shift

shift: number = 16

singlequote

singlequote: number = 222

sleep

sleep: number = 95

spacebar

spacebar: number = 32

stop

stop: number = 178

subtract

subtract: number = 109

t

t: number = 84

tab

tab: number = 9

toggletouchpad

toggletouchpad: number = 255

u

u: number = 85

unlocktrackpad

unlocktrackpad: number = 251

unmute

unmute: number = 181

uparrow

uparrow: number = 38

v

v: number = 86

w

w: number = 87

windows

windows: number = 91

windowsmenu

windowsmenu: number = 93

x

x: number = 88

y

y: number = 89

z

z: number = 90

~+*

~+*: number = 171

°

°: number = 193

ß

ß: number = 63

ä

ä: number = 222

å

å: number = 221

æ

æ: number = 192

ç

ç: number = 191

ñ

ñ: number = 186

ö

ö: number = 192

ø

ø: number = 222

ù

ù: number = 165

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited property
  • Inherited method
  • Private property
  • Private method
  • Static property
  • Static method

Generated using TypeDoc