@keymanapp/common-types
Version:
Keyman Developer keyboard file types
223 lines (221 loc) • 4.61 kB
JavaScript
// Define standard keycode numbers (exposed for use by other modules)
/**
* May include non-US virtual key codes
*/
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="cae266ad-1fa7-56e9-ba3d-98281ac5300a")}catch(e){}}();
export const USVirtualKeyCodes = {
K_BKSP: 8,
K_TAB: 9,
K_ENTER: 13,
K_SHIFT: 16,
K_CONTROL: 17,
K_ALT: 18,
K_PAUSE: 19,
K_CAPS: 20,
K_ESC: 27,
K_SPACE: 32,
K_PGUP: 33,
K_PGDN: 34,
K_END: 35,
K_HOME: 36,
K_LEFT: 37,
K_UP: 38,
K_RIGHT: 39,
K_DOWN: 40,
K_SEL: 41,
K_PRINT: 42,
K_EXEC: 43,
K_INS: 45,
K_DEL: 46,
K_HELP: 47,
K_0: 48,
K_1: 49,
K_2: 50,
K_3: 51,
K_4: 52,
K_5: 53,
K_6: 54,
K_7: 55,
K_8: 56,
K_9: 57,
K_A: 65,
K_B: 66,
K_C: 67,
K_D: 68,
K_E: 69,
K_F: 70,
K_G: 71,
K_H: 72,
K_I: 73,
K_J: 74,
K_K: 75,
K_L: 76,
K_M: 77,
K_N: 78,
K_O: 79,
K_P: 80,
K_Q: 81,
K_R: 82,
K_S: 83,
K_T: 84,
K_U: 85,
K_V: 86,
K_W: 87,
K_X: 88,
K_Y: 89,
K_Z: 90,
K_NP0: 96,
K_NP1: 97,
K_NP2: 98,
K_NP3: 99,
K_NP4: 100,
K_NP5: 101,
K_NP6: 102,
K_NP7: 103,
K_NP8: 104,
K_NP9: 105,
K_NPSTAR: 106,
K_NPPLUS: 107,
K_SEPARATOR: 108,
K_NPMINUS: 109,
K_NPDOT: 110,
K_NPSLASH: 111,
K_F1: 112,
K_F2: 113,
K_F3: 114,
K_F4: 115,
K_F5: 116,
K_F6: 117,
K_F7: 118,
K_F8: 119,
K_F9: 120,
K_F10: 121,
K_F11: 122,
K_F12: 123,
K_NUMLOCK: 144,
K_SCROLL: 145,
K_LSHIFT: 160,
K_RSHIFT: 161,
K_LCONTROL: 162,
K_RCONTROL: 163,
K_LALT: 164,
K_RALT: 165,
K_COLON: 186,
K_EQUAL: 187,
K_COMMA: 188,
K_HYPHEN: 189,
K_PERIOD: 190,
K_SLASH: 191,
K_BKQUOTE: 192,
K_LBRKT: 219,
/**
* == K_OEM_5, 0xDC
*/
K_BKSLASH: 220,
K_RBRKT: 221,
K_QUOTE: 222,
/**
* ISO B00, key to right of left shift, not on US keyboard,
* 0xE2, K_OEM_102
*/
K_oE2: 226,
K_OE2: 226,
K_oC1: 193, // ISO B11, ABNT-2 key to left of right shift, not on US keyboard
K_OC1: 193,
'K_?C1': 193,
'k_?C1': 193,
K_oDF: 0xDF,
K_ODF: 0xDF,
K_LOPT: 50001,
K_ROPT: 50002,
K_NUMERALS: 50003,
K_SYMBOLS: 50004,
K_CURRENCIES: 50005,
K_UPPER: 50006,
K_LOWER: 50007,
K_ALPHA: 50008,
K_SHIFTED: 50009,
K_ALTGR: 50010,
K_TABBACK: 50011,
K_TABFWD: 50012
};
const k = USVirtualKeyCodes;
/** Map a CLDR scancode to a US VKey ala USVirtualKeyCodes */
export const CLDRScanToUSVirtualKeyCodes = {
0x02: k.K_1,
0x03: k.K_2,
0x04: k.K_3,
0x05: k.K_4,
0x06: k.K_5,
0x07: k.K_6,
0x08: k.K_7,
0x09: k.K_8,
0x0A: k.K_9,
0x0B: k.K_0,
0x0C: k.K_HYPHEN,
0x0D: k.K_EQUAL,
0x10: k.K_Q,
0x11: k.K_W,
0x12: k.K_E,
0x13: k.K_R,
0x14: k.K_T,
0x15: k.K_Y,
0x16: k.K_U,
0x17: k.K_I,
0x18: k.K_O,
0x19: k.K_P,
0x1A: k.K_LBRKT,
0x1B: k.K_RBRKT,
0x1E: k.K_A,
0x1F: k.K_S,
0x20: k.K_D,
0x21: k.K_F,
0x22: k.K_G,
0x23: k.K_H,
0x24: k.K_J,
0x25: k.K_K,
0x26: k.K_L,
0x27: k.K_COLON,
0x28: k.K_QUOTE,
0x29: k.K_BKQUOTE,
0x2B: k.K_BKSLASH,
0x2C: k.K_Z,
0x2D: k.K_X,
0x2E: k.K_C,
0x2F: k.K_V,
0x30: k.K_B,
0x31: k.K_N,
0x32: k.K_M,
0x33: k.K_COMMA,
0x34: k.K_PERIOD,
0x35: k.K_SLASH,
0x39: k.K_SPACE,
0x56: k.K_oE2, // << Same as 0x7D; found on iso, abnt2
0x73: k.K_oC1,
0x7D: k.K_oE2, // << Same as 0x56; found on jis
};
/**
* Convert a scan code numerical KeyMap to VKeys
* @param scans keymap to convert
* @param badScans output: set of not-found scancodes
* @returns
*/
export function CLDRScanToKeyMap(scans, badScans) {
return scans.map((row) => row.map((scan) => CLDRScanToVkey(scan, badScans)));
}
/** Convert one scan code to vkey, or undefined */
export function CLDRScanToVkey(scan, badScans) {
/** typescript fun to index the scan table */
function hasScanCode(key) {
return key in CLDRScanToUSVirtualKeyCodes;
}
if (hasScanCode(scan)) {
return CLDRScanToUSVirtualKeyCodes[scan];
}
else {
badScans?.add(scan);
return undefined;
}
}
//# sourceMappingURL=virtual-key-constants.js.map
//# debugId=cae266ad-1fa7-56e9-ba3d-98281ac5300a