123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- import { arrayEach } from './array';
- export var KEY_CODES = {
- MOUSE_LEFT: 1,
- MOUSE_RIGHT: 3,
- MOUSE_MIDDLE: 2,
- BACKSPACE: 8,
- COMMA: 188,
- INSERT: 45,
- DELETE: 46,
- END: 35,
- ENTER: 13,
- ESCAPE: 27,
- CONTROL_LEFT: 91,
- COMMAND_LEFT: 17,
- COMMAND_RIGHT: 93,
- ALT: 18,
- HOME: 36,
- PAGE_DOWN: 34,
- PAGE_UP: 33,
- PERIOD: 190,
- SPACE: 32,
- SHIFT: 16,
- CAPS_LOCK: 20,
- TAB: 9,
- ARROW_RIGHT: 39,
- ARROW_LEFT: 37,
- ARROW_UP: 38,
- ARROW_DOWN: 40,
- F1: 112,
- F2: 113,
- F3: 114,
- F4: 115,
- F5: 116,
- F6: 117,
- F7: 118,
- F8: 119,
- F9: 120,
- F10: 121,
- F11: 122,
- F12: 123,
- A: 65,
- X: 88,
- C: 67,
- V: 86
- };
- /**
- * Returns true if keyCode represents a printable character.
- *
- * @param {Number} keyCode
- * @returns {Boolean}
- */
- export function isPrintableChar(keyCode) {
- return keyCode == 32 || // space
- keyCode >= 48 && keyCode <= 57 || // 0-9
- keyCode >= 96 && keyCode <= 111 || // numpad
- keyCode >= 186 && keyCode <= 192 || // ;=,-./`
- keyCode >= 219 && keyCode <= 222 || // []{}\|"'
- keyCode >= 226 || // special chars (229 for Asian chars)
- keyCode >= 65 && keyCode <= 90; // a-z
- }
- /**
- * @param {Number} keyCode
- * @returns {Boolean}
- */
- export function isMetaKey(keyCode) {
- var metaKeys = [KEY_CODES.ARROW_DOWN, KEY_CODES.ARROW_UP, KEY_CODES.ARROW_LEFT, KEY_CODES.ARROW_RIGHT, KEY_CODES.HOME, KEY_CODES.END, KEY_CODES.DELETE, KEY_CODES.BACKSPACE, KEY_CODES.F1, KEY_CODES.F2, KEY_CODES.F3, KEY_CODES.F4, KEY_CODES.F5, KEY_CODES.F6, KEY_CODES.F7, KEY_CODES.F8, KEY_CODES.F9, KEY_CODES.F10, KEY_CODES.F11, KEY_CODES.F12, KEY_CODES.TAB, KEY_CODES.PAGE_DOWN, KEY_CODES.PAGE_UP, KEY_CODES.ENTER, KEY_CODES.ESCAPE, KEY_CODES.SHIFT, KEY_CODES.CAPS_LOCK, KEY_CODES.ALT];
- return metaKeys.indexOf(keyCode) !== -1;
- }
- /**
- * @param {Number} keyCode
- * @returns {Boolean}
- */
- export function isCtrlKey(keyCode) {
- return [KEY_CODES.CONTROL_LEFT, 224, KEY_CODES.COMMAND_LEFT, KEY_CODES.COMMAND_RIGHT].indexOf(keyCode) !== -1;
- }
- /**
- * @param {Number} keyCode
- * @param {String} baseCode
- * @returns {Boolean}
- */
- export function isKey(keyCode, baseCode) {
- var keys = baseCode.split('|');
- var result = false;
- arrayEach(keys, function (key) {
- if (keyCode === KEY_CODES[key]) {
- result = true;
- return false;
- }
- });
- return result;
- }
|