KeyCode.js 6.3 KB

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