UNPKG

1.04 kBJavaScriptView Raw
1var codeToKeyMap = {
2 // event.code => event.key
3 Space: ' ',
4 Slash: '/',
5 ArrowLeft: 'ArrowLeft',
6 ArrowUp: 'ArrowUp',
7 ArrowRight: 'ArrowRight',
8 ArrowDown: 'ArrowDown',
9 Escape: 'Escape',
10 Enter: 'Enter'
11};
12var allFalse = {
13 alt: false,
14 ctrl: false,
15 meta: false,
16 shift: false
17};
18export var matchesModifiers = function matchesModifiers(modifiers, event) {
19 var _ref = modifiers === false ? allFalse : modifiers,
20 alt = _ref.alt,
21 ctrl = _ref.ctrl,
22 meta = _ref.meta,
23 shift = _ref.shift;
24
25 if (typeof alt === 'boolean' && alt !== event.altKey) return false;
26 if (typeof ctrl === 'boolean' && ctrl !== event.ctrlKey) return false;
27 if (typeof meta === 'boolean' && meta !== event.metaKey) return false;
28 if (typeof shift === 'boolean' && shift !== event.shiftKey) return false;
29 return true;
30};
31export var matchesKeyCode = function matchesKeyCode(code, event) {
32 // event.code is preferable but not supported in IE
33 return event.code ? event.code === code : event.key === codeToKeyMap[code];
34};
\No newline at end of file