const KeyCode = {
* MAC_ENTER
*/
MAC_ENTER: 3,
* BACKSPACE
*/
BACKSPACE: 8,
* TAB
*/
TAB: 9,
* NUMLOCK on FF/Safari Mac
*/
NUM_CENTER: 12,
* ENTER
*/
ENTER: 13,
* SHIFT
*/
SHIFT: 16,
* CTRL
*/
CTRL: 17,
* ALT
*/
ALT: 18,
* PAUSE
*/
PAUSE: 19,
* CAPS_LOCK
*/
CAPS_LOCK: 20,
* ESC
*/
ESC: 27,
* SPACE
*/
SPACE: 32,
* PAGE_UP
*/
PAGE_UP: 33,
* PAGE_DOWN
*/
PAGE_DOWN: 34,
* END
*/
END: 35,
* HOME
*/
HOME: 36,
* LEFT
*/
LEFT: 37,
* UP
*/
UP: 38,
* RIGHT
*/
RIGHT: 39,
* DOWN
*/
DOWN: 40,
* PRINT_SCREEN
*/
PRINT_SCREEN: 44,
* INSERT
*/
INSERT: 45,
* DELETE
*/
DELETE: 46,
* ZERO
*/
ZERO: 48,
* ONE
*/
ONE: 49,
* TWO
*/
TWO: 50,
* THREE
*/
THREE: 51,
* FOUR
*/
FOUR: 52,
* FIVE
*/
FIVE: 53,
* SIX
*/
SIX: 54,
* SEVEN
*/
SEVEN: 55,
* EIGHT
*/
EIGHT: 56,
* NINE
*/
NINE: 57,
* QUESTION_MARK
*/
QUESTION_MARK: 63,
* A
*/
A: 65,
* B
*/
B: 66,
* C
*/
C: 67,
* D
*/
D: 68,
* E
*/
E: 69,
* F
*/
F: 70,
* G
*/
G: 71,
* H
*/
H: 72,
* I
*/
I: 73,
* J
*/
J: 74,
* K
*/
K: 75,
* L
*/
L: 76,
* M
*/
M: 77,
* N
*/
N: 78,
* O
*/
O: 79,
* P
*/
P: 80,
* Q
*/
Q: 81,
* R
*/
R: 82,
* S
*/
S: 83,
* T
*/
T: 84,
* U
*/
U: 85,
* V
*/
V: 86,
* W
*/
W: 87,
* X
*/
X: 88,
* Y
*/
Y: 89,
* Z
*/
Z: 90,
* META
*/
META: 91,
* WIN_KEY_RIGHT
*/
WIN_KEY_RIGHT: 92,
* CONTEXT_MENU
*/
CONTEXT_MENU: 93,
* NUM_ZERO
*/
NUM_ZERO: 96,
* NUM_ONE
*/
NUM_ONE: 97,
* NUM_TWO
*/
NUM_TWO: 98,
* NUM_THREE
*/
NUM_THREE: 99,
* NUM_FOUR
*/
NUM_FOUR: 100,
* NUM_FIVE
*/
NUM_FIVE: 101,
* NUM_SIX
*/
NUM_SIX: 102,
* NUM_SEVEN
*/
NUM_SEVEN: 103,
* NUM_EIGHT
*/
NUM_EIGHT: 104,
* NUM_NINE
*/
NUM_NINE: 105,
* NUM_MULTIPLY
*/
NUM_MULTIPLY: 106,
* NUM_PLUS
*/
NUM_PLUS: 107,
* NUM_MINUS
*/
NUM_MINUS: 109,
* NUM_PERIOD
*/
NUM_PERIOD: 110,
* NUM_DIVISION
*/
NUM_DIVISION: 111,
* F1
*/
F1: 112,
* F2
*/
F2: 113,
* F3
*/
F3: 114,
* F4
*/
F4: 115,
* F5
*/
F5: 116,
* F6
*/
F6: 117,
* F7
*/
F7: 118,
* F8
*/
F8: 119,
* F9
*/
F9: 120,
* F10
*/
F10: 121,
* F11
*/
F11: 122,
* F12
*/
F12: 123,
* NUMLOCK
*/
NUMLOCK: 144,
* SEMICOLON
*/
SEMICOLON: 186,
* DASH
*/
DASH: 189,
* EQUALS
*/
EQUALS: 187,
* COMMA
*/
COMMA: 188,
* PERIOD
*/
PERIOD: 190,
* SLASH
*/
SLASH: 191,
* APOSTROPHE
*/
APOSTROPHE: 192,
* SINGLE_QUOTE
*/
SINGLE_QUOTE: 222,
* OPEN_SQUARE_BRACKET
*/
OPEN_SQUARE_BRACKET: 219,
* BACKSLASH
*/
BACKSLASH: 220,
* CLOSE_SQUARE_BRACKET
*/
CLOSE_SQUARE_BRACKET: 221,
* WIN_KEY
*/
WIN_KEY: 224,
* MAC_FF_META
*/
MAC_FF_META: 224,
* WIN_IME
*/
WIN_IME: 229,
* whether text and modified key is entered at the same time.
*/
isTextModifyingKeyEvent (e) {
const { keyCode } = e;
if (
(e.altKey && !e.ctrlKey) ||
e.metaKey ||
(keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12)
) {
return false;
}
switch (keyCode) {
case KeyCode.ALT:
case KeyCode.CAPS_LOCK:
case KeyCode.CONTEXT_MENU:
case KeyCode.CTRL:
case KeyCode.DOWN:
case KeyCode.END:
case KeyCode.ESC:
case KeyCode.HOME:
case KeyCode.INSERT:
case KeyCode.LEFT:
case KeyCode.MAC_FF_META:
case KeyCode.META:
case KeyCode.NUMLOCK:
case KeyCode.NUM_CENTER:
case KeyCode.PAGE_DOWN:
case KeyCode.PAGE_UP:
case KeyCode.PAUSE:
case KeyCode.PRINT_SCREEN:
case KeyCode.RIGHT:
case KeyCode.SHIFT:
case KeyCode.UP:
case KeyCode.WIN_KEY:
case KeyCode.WIN_KEY_RIGHT:
return false;
default:
return true;
}
},
* whether character is entered.
*/
isCharacterKey (keyCode) {
if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {
return true;
}
if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {
return true;
}
if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {
return true;
}
if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {
return true;
}
switch (keyCode) {
case KeyCode.SPACE:
case KeyCode.QUESTION_MARK:
case KeyCode.NUM_PLUS:
case KeyCode.NUM_MINUS:
case KeyCode.NUM_PERIOD:
case KeyCode.NUM_DIVISION:
case KeyCode.SEMICOLON:
case KeyCode.DASH:
case KeyCode.EQUALS:
case KeyCode.COMMA:
case KeyCode.PERIOD:
case KeyCode.SLASH:
case KeyCode.APOSTROPHE:
case KeyCode.SINGLE_QUOTE:
case KeyCode.OPEN_SQUARE_BRACKET:
case KeyCode.BACKSLASH:
case KeyCode.CLOSE_SQUARE_BRACKET:
return true;
default:
return false;
}
},
};
export default KeyCode;