-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathKeyEventsHandler.js
More file actions
56 lines (44 loc) · 1.32 KB
/
KeyEventsHandler.js
File metadata and controls
56 lines (44 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
var keyDownListeners = [];
window.onkeydown = function (e) {
keyDownListeners.forEach(listener => {
try {
listener(e);
} catch (ex) {
console.error(e);
}
});
};
exports.addKeyDownListener = (listener) => {
if (keyDownListeners.indexOf(ll => ll === listener) >= 0) {
console.info('preventing_duplicate_key_down_listener_add');
return;
}
keyDownListeners.push(listener);
};
exports.removeKeyDownListener = (listener) => {
keyDownListeners.splice(keyDownListeners.indexOf(ll => ll === listener), 1);
};
exports.addAllKeyDownListeners = (listenerList) => {
listenerList = listenerList || [];
listenerList.forEach(listener => exports.addKeyDownListener(listener));
};
exports.removeAllKeyDownListeners = (listenerList) => {
listenerList = listenerList || [];
listenerList.forEach(ll => exports.removeKeyDownListener(ll))
};
var keyUpListeners = [];
window.onkeyup = function (e) {
keyUpListeners.forEach(listener => {
try {
listener(e);
} catch (ex) {
console.error(e);
}
});
};
exports.addKeyUpListener = (listener) => {
keyUpListeners.push(listener);
};
exports.removeKeyUpListener = (listener) => {
keyUpListeners.splice(keyUpListeners.indexOf(ll => ll === listener), 1);
};