1 | /**
|
2 | * @ignore
|
3 | * some key-codes definition and utils from closure-library
|
4 | * @author yiminghe@gmail.com
|
5 | */
|
6 |
|
7 | var 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 | };
|
538 | export default KeyCode; |
\ | No newline at end of file |