first commit

This commit is contained in:
Stefan Hacker
2026-04-03 09:38:48 +02:00
commit 37ad745546
47450 changed files with 3120798 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
/**
* Mapping from numeric key code to key name. If the value is an array, the first element is the
* primary key name, and the second element is the key name when shift is pressed.
*/
export declare const codes: {
[code: string]: string | string[];
};
+127
View File
@@ -0,0 +1,127 @@
/**
* Mapping from numeric key code to key name. If the value is an array, the first element is the
* primary key name, and the second element is the key name when shift is pressed.
*/
export var codes = {
// ----------------------------------------
// By Code
// ----------------------------------------
3: 'Cancel',
6: 'Help',
8: 'Backspace',
9: 'Tab',
12: 'Clear',
13: 'Enter',
16: 'Shift',
17: 'Control',
18: 'Alt',
19: 'Pause',
20: 'CapsLock',
27: 'Escape',
28: 'Convert',
29: 'NonConvert',
30: 'Accept',
31: 'ModeChange',
32: ' ',
33: 'PageUp',
34: 'PageDown',
35: 'End',
36: 'Home',
37: 'ArrowLeft',
38: 'ArrowUp',
39: 'ArrowRight',
40: 'ArrowDown',
41: 'Select',
42: 'Print',
43: 'Execute',
44: 'PrintScreen',
45: 'Insert',
46: 'Delete',
48: ['0', ')'],
49: ['1', '!'],
50: ['2', '@'],
51: ['3', '#'],
52: ['4', '$'],
53: ['5', '%'],
54: ['6', '^'],
55: ['7', '&'],
56: ['8', '*'],
57: ['9', '('],
65: ['a', 'A'],
66: ['b', 'B'],
67: ['c', 'C'],
68: ['d', 'D'],
69: ['e', 'E'],
70: ['f', 'F'],
71: ['g', 'G'],
72: ['h', 'H'],
73: ['i', 'I'],
74: ['j', 'J'],
75: ['k', 'K'],
76: ['l', 'L'],
77: ['m', 'M'],
78: ['n', 'N'],
79: ['o', 'O'],
80: ['p', 'P'],
81: ['q', 'Q'],
82: ['r', 'R'],
83: ['s', 'S'],
84: ['t', 'T'],
85: ['u', 'U'],
86: ['v', 'V'],
87: ['w', 'W'],
88: ['x', 'X'],
89: ['y', 'Y'],
90: ['z', 'Z'],
91: 'OS',
93: 'ContextMenu',
112: 'F1',
113: 'F2',
114: 'F3',
115: 'F4',
116: 'F5',
117: 'F6',
118: 'F7',
119: 'F8',
120: 'F9',
121: 'F10',
122: 'F11',
123: 'F12',
124: 'F13',
125: 'F14',
126: 'F15',
127: 'F16',
128: 'F17',
129: 'F18',
130: 'F19',
131: 'F20',
132: 'F21',
133: 'F22',
134: 'F23',
135: 'F24',
144: 'NumLock',
145: 'ScrollLock',
181: 'VolumeMute',
182: 'VolumeDown',
183: 'VolumeUp',
186: [';', ':'],
187: ['=', '+'],
188: [',', '<'],
189: ['-', '_'],
190: ['.', '>'],
191: ['/', '?'],
192: ['`', '~'],
219: ['[', '{'],
220: ['\\', '|'],
221: [']', '}'],
222: ["'", '"'],
224: 'Meta',
225: 'AltGraph',
246: 'Attn',
247: 'CrSel',
248: 'ExSel',
249: 'EraseEof',
250: 'Play',
251: 'ZoomOut',
};
//# sourceMappingURL=codes.js.map
File diff suppressed because one or more lines are too long
+236
View File
@@ -0,0 +1,236 @@
export type KeyboardEventLike = Pick<KeyboardEvent, 'key' | 'keyCode' | 'which' | 'shiftKey'>;
export interface KeyNames {
Cancel: 3;
Help: 6;
Backspace: 8;
Tab: 9;
Clear: 12;
Enter: 13;
Shift: 16;
Control: 17;
Alt: 18;
Pause: 19;
CapsLock: 20;
Escape: 27;
Convert: 28;
NonConvert: 29;
Accept: 30;
ModeChange: 31;
' ': 32;
PageUp: 33;
PageDown: 34;
End: 35;
Home: 36;
ArrowLeft: 37;
ArrowUp: 38;
ArrowRight: 39;
ArrowDown: 40;
Select: 41;
Print: 42;
Execute: 43;
PrintScreen: 44;
Insert: 45;
Delete: 46;
0: 48;
')': 48;
1: 49;
'!': 49;
2: 50;
'@': 50;
3: 51;
'#': 51;
4: 52;
$: 52;
5: 53;
'%': 53;
6: 54;
'^': 54;
7: 55;
'&': 55;
8: 56;
'*': 56;
9: 57;
'(': 57;
a: 65;
A: 65;
b: 66;
B: 66;
c: 67;
C: 67;
d: 68;
D: 68;
e: 69;
E: 69;
f: 70;
F: 70;
g: 71;
G: 71;
h: 72;
H: 72;
i: 73;
I: 73;
j: 74;
J: 74;
k: 75;
K: 75;
l: 76;
L: 76;
m: 77;
M: 77;
n: 78;
N: 78;
o: 79;
O: 79;
p: 80;
P: 80;
q: 81;
Q: 81;
r: 82;
R: 82;
s: 83;
S: 83;
t: 84;
T: 84;
u: 85;
U: 85;
v: 86;
V: 86;
w: 87;
W: 87;
x: 88;
X: 88;
y: 89;
Y: 89;
z: 90;
Z: 90;
OS: 91;
ContextMenu: 93;
F1: 112;
F2: 113;
F3: 114;
F4: 115;
F5: 116;
F6: 117;
F7: 118;
F8: 119;
F9: 120;
F10: 121;
F11: 122;
F12: 123;
F13: 124;
F14: 125;
F15: 126;
F16: 127;
F17: 128;
F18: 129;
F19: 130;
F20: 131;
F21: 132;
F22: 133;
F23: 134;
F24: 135;
NumLock: 144;
ScrollLock: 145;
VolumeMute: 181;
VolumeDown: 182;
VolumeUp: 183;
';': 186;
':': 186;
'=': 187;
'+': 187;
',': 188;
'<': 188;
'-': 189;
_: 189;
'.': 190;
'>': 190;
'/': 191;
'?': 191;
'`': 192;
'~': 192;
'[': 219;
'{': 219;
'\\': 220;
'|': 220;
']': 221;
'}': 221;
"'": 222;
'"': 222;
Meta: 224;
AltGraph: 225;
Attn: 246;
CrSel: 247;
ExSel: 248;
EraseEof: 249;
Play: 250;
ZoomOut: 251;
}
/**
* Get the `keyCode` or `which` value from a keyboard event or `key` name.
* If an object is provided, the precedence of properties is `keyCode`, `which`, `key`.
* @param eventOrKey - A keyboard event-like object or `key` name. If an object, at least one of
* `key`, `keyCode`, or `which` must be defined.
*/
export declare function getCode(eventOrKey: Partial<KeyboardEventLike> | string): number | undefined;
/**
* Get the key name from a keyboard event, `keyCode`, or `which` value.
* If an object is provided, the precedence of properties is `key`, `keyCode`, `which`.
* @param eventOrCode - A keyboard event-like object or key code. If an object, at least one of
* `key`, `keyCode`, or `which` must be defined.
*/
export declare function getKey(eventOrCode: Partial<KeyboardEventLike> | number): string | undefined;
/**
* Mapping of keyboard keys with aliases and codes.
*/
export declare const keyboardKey: KeyNames;
export declare const SpacebarKey: 32;
export declare const Digit0Key: 48;
export declare const Digit1Key: 49;
export declare const Digit2Key: 50;
export declare const Digit3Key: 51;
export declare const Digit4Key: 52;
export declare const Digit5Key: 53;
export declare const Digit6Key: 54;
export declare const Digit7Key: 55;
export declare const Digit8Key: 56;
export declare const Digit9Key: 57;
export declare const TildeKey: 192;
export declare const GraveAccentKey: 192;
export declare const ExclamationPointKey: 49;
export declare const AtSignKey: 50;
export declare const PoundSignKey: 51;
export declare const PercentSignKey: 53;
export declare const CaretKey: 54;
export declare const AmpersandKey: 55;
export declare const PlusSignKey: 187;
export declare const MinusSignKey: 189;
export declare const EqualsSignKey: 187;
export declare const DivisionSignKey: 191;
export declare const MultiplicationSignKey: 56;
export declare const CommaKey: 188;
export declare const DecimalKey: 190;
export declare const ColonKey: 186;
export declare const SemicolonKey: 186;
export declare const PipeKey: 220;
export declare const BackSlashKey: 220;
export declare const QuestionMarkKey: 191;
export declare const SingleQuoteKey: 222;
export declare const DoubleQuoteKey: 222;
export declare const LeftCurlyBraceKey: 219;
export declare const RightCurlyBraceKey: 221;
export declare const LeftParenthesisKey: 57;
export declare const RightParenthesisKey: 48;
export declare const LeftAngleBracketKey: 188;
export declare const RightAngleBracketKey: 190;
export declare const LeftSquareBracketKey: 219;
export declare const RightSquareBracketKey: 221;
export declare const ArrowDownKey: 40;
export declare const ArrowLeftKey: 37;
export declare const ArrowRightKey: 39;
export declare const ArrowUpKey: 38;
export declare const EndKey: 35;
export declare const EnterKey: 13;
export declare const HomeKey: 36;
export declare const PageDownKey: 34;
export declare const PageUpKey: 33;
export declare const TabKey: 9;
+118
View File
@@ -0,0 +1,118 @@
import { codes } from './codes';
// eslint-disable-next-line @typescript-eslint/no-explicit-any
var isObject = function (val) {
return val !== null && !Array.isArray(val) && typeof val === 'object';
};
/**
* Get the `keyCode` or `which` value from a keyboard event or `key` name.
* If an object is provided, the precedence of properties is `keyCode`, `which`, `key`.
* @param eventOrKey - A keyboard event-like object or `key` name. If an object, at least one of
* `key`, `keyCode`, or `which` must be defined.
*/
export function getCode(eventOrKey) {
if (isObject(eventOrKey)) {
// eslint-disable-next-line deprecation/deprecation, @typescript-eslint/no-explicit-any
return eventOrKey.keyCode || eventOrKey.which || keyboardKey[eventOrKey.key];
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return keyboardKey[eventOrKey];
}
/**
* Get the key name from a keyboard event, `keyCode`, or `which` value.
* If an object is provided, the precedence of properties is `key`, `keyCode`, `which`.
* @param eventOrCode - A keyboard event-like object or key code. If an object, at least one of
* `key`, `keyCode`, or `which` must be defined.
*/
export function getKey(eventOrCode) {
var isEvent = isObject(eventOrCode);
var event = eventOrCode;
// handle events with a `key` already defined
if (isEvent && event.key) {
return event.key;
}
// eslint-disable-next-line deprecation/deprecation
var name = codes[(isEvent ? event.keyCode || event.which : eventOrCode)];
if (Array.isArray(name)) {
if (isEvent) {
name = name[event.shiftKey ? 1 : 0];
}
else {
name = name[0];
}
}
return name;
}
/**
* Mapping of keyboard keys with aliases and codes.
*/
export var keyboardKey = {};
// Populate names on keyboardKey.
for (var code in codes) {
if (codes.hasOwnProperty(code)) {
var value = codes[code];
if (typeof value === 'string') {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
keyboardKey[value] = Number(code);
}
else {
// Array of valid values which map to the same code.
for (var i = 0; i < value.length; i++) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
keyboardKey[value[i]] = Number(code);
}
}
}
}
// As single exports for keys that normally have special functionality attached to them.
export var SpacebarKey = keyboardKey[' '];
export var Digit0Key = keyboardKey['0'];
export var Digit1Key = keyboardKey['1'];
export var Digit2Key = keyboardKey['2'];
export var Digit3Key = keyboardKey['3'];
export var Digit4Key = keyboardKey['4'];
export var Digit5Key = keyboardKey['5'];
export var Digit6Key = keyboardKey['6'];
export var Digit7Key = keyboardKey['7'];
export var Digit8Key = keyboardKey['8'];
export var Digit9Key = keyboardKey['9'];
export var TildeKey = keyboardKey['~'];
export var GraveAccentKey = keyboardKey['`'];
export var ExclamationPointKey = keyboardKey['!'];
export var AtSignKey = keyboardKey['@'];
export var PoundSignKey = keyboardKey['#'];
export var PercentSignKey = keyboardKey['%'];
export var CaretKey = keyboardKey['^'];
export var AmpersandKey = keyboardKey['&'];
export var PlusSignKey = keyboardKey['+'];
export var MinusSignKey = keyboardKey['-'];
export var EqualsSignKey = keyboardKey['='];
export var DivisionSignKey = keyboardKey['/'];
export var MultiplicationSignKey = keyboardKey['*'];
export var CommaKey = keyboardKey[','];
export var DecimalKey = keyboardKey['.'];
export var ColonKey = keyboardKey[':'];
export var SemicolonKey = keyboardKey[';'];
export var PipeKey = keyboardKey['|'];
export var BackSlashKey = keyboardKey['\\'];
export var QuestionMarkKey = keyboardKey['?'];
export var SingleQuoteKey = keyboardKey["'"];
export var DoubleQuoteKey = keyboardKey['"'];
export var LeftCurlyBraceKey = keyboardKey['{'];
export var RightCurlyBraceKey = keyboardKey['}'];
export var LeftParenthesisKey = keyboardKey['('];
export var RightParenthesisKey = keyboardKey[')'];
export var LeftAngleBracketKey = keyboardKey['<'];
export var RightAngleBracketKey = keyboardKey['>'];
export var LeftSquareBracketKey = keyboardKey['['];
export var RightSquareBracketKey = keyboardKey[']'];
export var ArrowDownKey = keyboardKey.ArrowDown;
export var ArrowLeftKey = keyboardKey.ArrowLeft;
export var ArrowRightKey = keyboardKey.ArrowRight;
export var ArrowUpKey = keyboardKey.ArrowUp;
export var EndKey = keyboardKey.End;
export var EnterKey = keyboardKey.Enter;
export var HomeKey = keyboardKey.Home;
export var PageDownKey = keyboardKey.PageDown;
export var PageUpKey = keyboardKey.PageUp;
export var TabKey = keyboardKey.Tab;
//# sourceMappingURL=index.js.map
File diff suppressed because one or more lines are too long