KeyCode.js 6.9 KB

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