UNPKG

6.99 kBJavaScriptView Raw
1/**
2 * @ignore
3 * some key-codes definition and utils from closure-library
4 * @author yiminghe@gmail.com
5 */
6
7var KeyCode = {
8 /**
9 * MAC_ENTER
10 */
11 MAC_ENTER: 3,
12 /**
13 * BACKSPACE
14 */
15 BACKSPACE: 8,
16 /**
17 * TAB
18 */
19 TAB: 9,
20 /**
21 * NUMLOCK on FF/Safari Mac
22 */
23 NUM_CENTER: 12,
24 // NUMLOCK on FF/Safari Mac
25 /**
26 * ENTER
27 */
28 ENTER: 13,
29 /**
30 * SHIFT
31 */
32 SHIFT: 16,
33 /**
34 * CTRL
35 */
36 CTRL: 17,
37 /**
38 * ALT
39 */
40 ALT: 18,
41 /**
42 * PAUSE
43 */
44 PAUSE: 19,
45 /**
46 * CAPS_LOCK
47 */
48 CAPS_LOCK: 20,
49 /**
50 * ESC
51 */
52 ESC: 27,
53 /**
54 * SPACE
55 */
56 SPACE: 32,
57 /**
58 * PAGE_UP
59 */
60 PAGE_UP: 33,
61 // also NUM_NORTH_EAST
62 /**
63 * PAGE_DOWN
64 */
65 PAGE_DOWN: 34,
66 // also NUM_SOUTH_EAST
67 /**
68 * END
69 */
70 END: 35,
71 // also NUM_SOUTH_WEST
72 /**
73 * HOME
74 */
75 HOME: 36,
76 // also NUM_NORTH_WEST
77 /**
78 * LEFT
79 */
80 LEFT: 37,
81 // also NUM_WEST
82 /**
83 * UP
84 */
85 UP: 38,
86 // also NUM_NORTH
87 /**
88 * RIGHT
89 */
90 RIGHT: 39,
91 // also NUM_EAST
92 /**
93 * DOWN
94 */
95 DOWN: 40,
96 // also NUM_SOUTH
97 /**
98 * PRINT_SCREEN
99 */
100 PRINT_SCREEN: 44,
101 /**
102 * INSERT
103 */
104 INSERT: 45,
105 // also NUM_INSERT
106 /**
107 * DELETE
108 */
109 DELETE: 46,
110 // also NUM_DELETE
111 /**
112 * ZERO
113 */
114 ZERO: 48,
115 /**
116 * ONE
117 */
118 ONE: 49,
119 /**
120 * TWO
121 */
122 TWO: 50,
123 /**
124 * THREE
125 */
126 THREE: 51,
127 /**
128 * FOUR
129 */
130 FOUR: 52,
131 /**
132 * FIVE
133 */
134 FIVE: 53,
135 /**
136 * SIX
137 */
138 SIX: 54,
139 /**
140 * SEVEN
141 */
142 SEVEN: 55,
143 /**
144 * EIGHT
145 */
146 EIGHT: 56,
147 /**
148 * NINE
149 */
150 NINE: 57,
151 /**
152 * QUESTION_MARK
153 */
154 QUESTION_MARK: 63,
155 // needs localization
156 /**
157 * A
158 */
159 A: 65,
160 /**
161 * B
162 */
163 B: 66,
164 /**
165 * C
166 */
167 C: 67,
168 /**
169 * D
170 */
171 D: 68,
172 /**
173 * E
174 */
175 E: 69,
176 /**
177 * F
178 */
179 F: 70,
180 /**
181 * G
182 */
183 G: 71,
184 /**
185 * H
186 */
187 H: 72,
188 /**
189 * I
190 */
191 I: 73,
192 /**
193 * J
194 */
195 J: 74,
196 /**
197 * K
198 */
199 K: 75,
200 /**
201 * L
202 */
203 L: 76,
204 /**
205 * M
206 */
207 M: 77,
208 /**
209 * N
210 */
211 N: 78,
212 /**
213 * O
214 */
215 O: 79,
216 /**
217 * P
218 */
219 P: 80,
220 /**
221 * Q
222 */
223 Q: 81,
224 /**
225 * R
226 */
227 R: 82,
228 /**
229 * S
230 */
231 S: 83,
232 /**
233 * T
234 */
235 T: 84,
236 /**
237 * U
238 */
239 U: 85,
240 /**
241 * V
242 */
243 V: 86,
244 /**
245 * W
246 */
247 W: 87,
248 /**
249 * X
250 */
251 X: 88,
252 /**
253 * Y
254 */
255 Y: 89,
256 /**
257 * Z
258 */
259 Z: 90,
260 /**
261 * META
262 */
263 META: 91,
264 // WIN_KEY_LEFT
265 /**
266 * WIN_KEY_RIGHT
267 */
268 WIN_KEY_RIGHT: 92,
269 /**
270 * CONTEXT_MENU
271 */
272 CONTEXT_MENU: 93,
273 /**
274 * NUM_ZERO
275 */
276 NUM_ZERO: 96,
277 /**
278 * NUM_ONE
279 */
280 NUM_ONE: 97,
281 /**
282 * NUM_TWO
283 */
284 NUM_TWO: 98,
285 /**
286 * NUM_THREE
287 */
288 NUM_THREE: 99,
289 /**
290 * NUM_FOUR
291 */
292 NUM_FOUR: 100,
293 /**
294 * NUM_FIVE
295 */
296 NUM_FIVE: 101,
297 /**
298 * NUM_SIX
299 */
300 NUM_SIX: 102,
301 /**
302 * NUM_SEVEN
303 */
304 NUM_SEVEN: 103,
305 /**
306 * NUM_EIGHT
307 */
308 NUM_EIGHT: 104,
309 /**
310 * NUM_NINE
311 */
312 NUM_NINE: 105,
313 /**
314 * NUM_MULTIPLY
315 */
316 NUM_MULTIPLY: 106,
317 /**
318 * NUM_PLUS
319 */
320 NUM_PLUS: 107,
321 /**
322 * NUM_MINUS
323 */
324 NUM_MINUS: 109,
325 /**
326 * NUM_PERIOD
327 */
328 NUM_PERIOD: 110,
329 /**
330 * NUM_DIVISION
331 */
332 NUM_DIVISION: 111,
333 /**
334 * F1
335 */
336 F1: 112,
337 /**
338 * F2
339 */
340 F2: 113,
341 /**
342 * F3
343 */
344 F3: 114,
345 /**
346 * F4
347 */
348 F4: 115,
349 /**
350 * F5
351 */
352 F5: 116,
353 /**
354 * F6
355 */
356 F6: 117,
357 /**
358 * F7
359 */
360 F7: 118,
361 /**
362 * F8
363 */
364 F8: 119,
365 /**
366 * F9
367 */
368 F9: 120,
369 /**
370 * F10
371 */
372 F10: 121,
373 /**
374 * F11
375 */
376 F11: 122,
377 /**
378 * F12
379 */
380 F12: 123,
381 /**
382 * NUMLOCK
383 */
384 NUMLOCK: 144,
385 /**
386 * SEMICOLON
387 */
388 SEMICOLON: 186,
389 // needs localization
390 /**
391 * DASH
392 */
393 DASH: 189,
394 // needs localization
395 /**
396 * EQUALS
397 */
398 EQUALS: 187,
399 // needs localization
400 /**
401 * COMMA
402 */
403 COMMA: 188,
404 // needs localization
405 /**
406 * PERIOD
407 */
408 PERIOD: 190,
409 // needs localization
410 /**
411 * SLASH
412 */
413 SLASH: 191,
414 // needs localization
415 /**
416 * APOSTROPHE
417 */
418 APOSTROPHE: 192,
419 // needs localization
420 /**
421 * SINGLE_QUOTE
422 */
423 SINGLE_QUOTE: 222,
424 // needs localization
425 /**
426 * OPEN_SQUARE_BRACKET
427 */
428 OPEN_SQUARE_BRACKET: 219,
429 // needs localization
430 /**
431 * BACKSLASH
432 */
433 BACKSLASH: 220,
434 // needs localization
435 /**
436 * CLOSE_SQUARE_BRACKET
437 */
438 CLOSE_SQUARE_BRACKET: 221,
439 // needs localization
440 /**
441 * WIN_KEY
442 */
443 WIN_KEY: 224,
444 /**
445 * MAC_FF_META
446 */
447 MAC_FF_META: 224,
448 // Firefox (Gecko) fires this for the meta key instead of 91
449 /**
450 * WIN_IME
451 */
452 WIN_IME: 229,
453 // ======================== Function ========================
454 /**
455 * whether text and modified key is entered at the same time.
456 */
457 isTextModifyingKeyEvent: function isTextModifyingKeyEvent(e) {
458 var keyCode = e.keyCode;
459 if (e.altKey && !e.ctrlKey || e.metaKey ||
460 // Function keys don't generate text
461 keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {
462 return false;
463 }
464
465 // The following keys are quite harmless, even in combination with
466 // CTRL, ALT or SHIFT.
467 switch (keyCode) {
468 case KeyCode.ALT:
469 case KeyCode.CAPS_LOCK:
470 case KeyCode.CONTEXT_MENU:
471 case KeyCode.CTRL:
472 case KeyCode.DOWN:
473 case KeyCode.END:
474 case KeyCode.ESC:
475 case KeyCode.HOME:
476 case KeyCode.INSERT:
477 case KeyCode.LEFT:
478 case KeyCode.MAC_FF_META:
479 case KeyCode.META:
480 case KeyCode.NUMLOCK:
481 case KeyCode.NUM_CENTER:
482 case KeyCode.PAGE_DOWN:
483 case KeyCode.PAGE_UP:
484 case KeyCode.PAUSE:
485 case KeyCode.PRINT_SCREEN:
486 case KeyCode.RIGHT:
487 case KeyCode.SHIFT:
488 case KeyCode.UP:
489 case KeyCode.WIN_KEY:
490 case KeyCode.WIN_KEY_RIGHT:
491 return false;
492 default:
493 return true;
494 }
495 },
496 /**
497 * whether character is entered.
498 */
499 isCharacterKey: function isCharacterKey(keyCode) {
500 if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {
501 return true;
502 }
503 if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {
504 return true;
505 }
506 if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {
507 return true;
508 }
509
510 // Safari sends zero key code for non-latin characters.
511 if (window.navigator.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {
512 return true;
513 }
514 switch (keyCode) {
515 case KeyCode.SPACE:
516 case KeyCode.QUESTION_MARK:
517 case KeyCode.NUM_PLUS:
518 case KeyCode.NUM_MINUS:
519 case KeyCode.NUM_PERIOD:
520 case KeyCode.NUM_DIVISION:
521 case KeyCode.SEMICOLON:
522 case KeyCode.DASH:
523 case KeyCode.EQUALS:
524 case KeyCode.COMMA:
525 case KeyCode.PERIOD:
526 case KeyCode.SLASH:
527 case KeyCode.APOSTROPHE:
528 case KeyCode.SINGLE_QUOTE:
529 case KeyCode.OPEN_SQUARE_BRACKET:
530 case KeyCode.BACKSLASH:
531 case KeyCode.CLOSE_SQUARE_BRACKET:
532 return true;
533 default:
534 return false;
535 }
536 }
537};
538export default KeyCode;
\No newline at end of file