keymap-inspector 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/KeymapInspector.d.ts +13 -0
- package/dist/KeymapInspector.js +106 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +25 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +35 -0
- package/dist/layouts/de.d.ts +2 -0
- package/dist/layouts/de.js +86 -0
- package/dist/layouts/en.d.ts +2 -0
- package/dist/layouts/en.js +105 -0
- package/dist/layouts/es.d.ts +2 -0
- package/dist/layouts/es.js +98 -0
- package/dist/layouts/fr.d.ts +2 -0
- package/dist/layouts/fr.js +95 -0
- package/dist/layouts/he.d.ts +2 -0
- package/dist/layouts/he.js +97 -0
- package/dist/layouts/index.d.ts +13 -0
- package/dist/layouts/index.js +18 -0
- package/dist/layouts/ru.d.ts +2 -0
- package/dist/layouts/ru.js +105 -0
- package/dist/layouts/ua.d.ts +2 -0
- package/dist/layouts/ua.js +103 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.js +2 -0
- package/package.json +42 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Keymap, InspectionResult } from './types';
|
|
2
|
+
export declare class KeymapInspector {
|
|
3
|
+
private layouts;
|
|
4
|
+
private reversedLayouts;
|
|
5
|
+
constructor(layouts: {
|
|
6
|
+
[name: string]: Keymap;
|
|
7
|
+
});
|
|
8
|
+
inspect(char: string): InspectionResult | null;
|
|
9
|
+
inspectByCode(code: string): InspectionResult | null;
|
|
10
|
+
inspectByKeyCode(keyCode: number): InspectionResult | null;
|
|
11
|
+
private findCharByCode;
|
|
12
|
+
private findCharByKeyCode;
|
|
13
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeymapInspector = void 0;
|
|
4
|
+
class KeymapInspector {
|
|
5
|
+
constructor(layouts) {
|
|
6
|
+
this.layouts = layouts;
|
|
7
|
+
this.reversedLayouts = {};
|
|
8
|
+
for (const layoutName in layouts) {
|
|
9
|
+
this.reversedLayouts[layoutName] = {};
|
|
10
|
+
const layout = layouts[layoutName];
|
|
11
|
+
for (const char in layout) {
|
|
12
|
+
const keyDef = layout[char];
|
|
13
|
+
// Сохраняем все символы, но с учетом Shift
|
|
14
|
+
const currentCode = keyDef.code;
|
|
15
|
+
// Если это символ без Shift, сохраняем как основной
|
|
16
|
+
if (!keyDef.shiftKey) {
|
|
17
|
+
this.reversedLayouts[layoutName][currentCode] = char;
|
|
18
|
+
}
|
|
19
|
+
// Если это символ с Shift, сохраняем с префиксом
|
|
20
|
+
else {
|
|
21
|
+
this.reversedLayouts[layoutName][currentCode + '_SHIFT'] = char;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
inspect(char) {
|
|
27
|
+
let baseLayoutName = null;
|
|
28
|
+
let keyDefinition = null;
|
|
29
|
+
for (const layoutName in this.layouts) {
|
|
30
|
+
if (this.layouts[layoutName][char]) {
|
|
31
|
+
baseLayoutName = layoutName;
|
|
32
|
+
keyDefinition = this.layouts[layoutName][char];
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (!keyDefinition || !baseLayoutName) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const layouts = {};
|
|
40
|
+
for (const layoutName in this.reversedLayouts) {
|
|
41
|
+
// Ищем символ с учетом Shift
|
|
42
|
+
if (keyDefinition.shiftKey) {
|
|
43
|
+
layouts[layoutName] = this.reversedLayouts[layoutName][keyDefinition.code + '_SHIFT'] || null;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
layouts[layoutName] = this.reversedLayouts[layoutName][keyDefinition.code] || null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
char,
|
|
51
|
+
keyDefinition,
|
|
52
|
+
layouts,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
inspectByCode(code) {
|
|
56
|
+
const char = this.findCharByCode(code);
|
|
57
|
+
return char ? this.inspect(char) : null;
|
|
58
|
+
}
|
|
59
|
+
inspectByKeyCode(keyCode) {
|
|
60
|
+
const char = this.findCharByKeyCode(keyCode);
|
|
61
|
+
return char ? this.inspect(char) : null;
|
|
62
|
+
}
|
|
63
|
+
findCharByCode(code) {
|
|
64
|
+
// Сначала ищем символ без Shift
|
|
65
|
+
for (const layoutName in this.layouts) {
|
|
66
|
+
const layout = this.layouts[layoutName];
|
|
67
|
+
for (const char in layout) {
|
|
68
|
+
if (layout[char].code === code && !layout[char].shiftKey) {
|
|
69
|
+
return char;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Если не нашли без Shift, ищем с Shift
|
|
74
|
+
for (const layoutName in this.layouts) {
|
|
75
|
+
const layout = this.layouts[layoutName];
|
|
76
|
+
for (const char in layout) {
|
|
77
|
+
if (layout[char].code === code && layout[char].shiftKey) {
|
|
78
|
+
return char;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
findCharByKeyCode(keyCode) {
|
|
85
|
+
// Сначала ищем символ без Shift
|
|
86
|
+
for (const layoutName in this.layouts) {
|
|
87
|
+
const layout = this.layouts[layoutName];
|
|
88
|
+
for (const char in layout) {
|
|
89
|
+
if (layout[char].keyCode === keyCode && !layout[char].shiftKey) {
|
|
90
|
+
return char;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// Если не нашли без Shift, ищем с Shift
|
|
95
|
+
for (const layoutName in this.layouts) {
|
|
96
|
+
const layout = this.layouts[layoutName];
|
|
97
|
+
for (const char in layout) {
|
|
98
|
+
if (layout[char].keyCode === keyCode && layout[char].shiftKey) {
|
|
99
|
+
return char;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.KeymapInspector = KeymapInspector;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const KeymapInspector_1 = require("../KeymapInspector");
|
|
5
|
+
const en_1 = require("../layouts/en");
|
|
6
|
+
const ru_1 = require("../layouts/ru");
|
|
7
|
+
const de_1 = require("../layouts/de");
|
|
8
|
+
const fr_1 = require("../layouts/fr");
|
|
9
|
+
const es_1 = require("../layouts/es");
|
|
10
|
+
const ua_1 = require("../layouts/ua");
|
|
11
|
+
const he_1 = require("../layouts/he");
|
|
12
|
+
const inspector = new KeymapInspector_1.KeymapInspector({ en: en_1.en, ru: ru_1.ru, de: de_1.de, fr: fr_1.fr, es: es_1.es, ua: ua_1.ua, he: he_1.he });
|
|
13
|
+
const args = process.argv.slice(2);
|
|
14
|
+
if (args.length === 0) {
|
|
15
|
+
console.log('Usage: keymap-inspector <char>');
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
const char = args[0];
|
|
19
|
+
const result = inspector.inspect(char);
|
|
20
|
+
if (result) {
|
|
21
|
+
console.log(JSON.stringify(result, null, 2));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.log(`Could not inspect character: ${char}`);
|
|
25
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { KeymapInspector } from './KeymapInspector';
|
|
2
|
+
export * from './types';
|
|
3
|
+
export { en } from './layouts/en';
|
|
4
|
+
export { ru } from './layouts/ru';
|
|
5
|
+
export { de } from './layouts/de';
|
|
6
|
+
export { fr } from './layouts/fr';
|
|
7
|
+
export { es } from './layouts/es';
|
|
8
|
+
export { ua } from './layouts/ua';
|
|
9
|
+
export { he } from './layouts/he';
|
|
10
|
+
export * from './layouts';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.he = exports.ua = exports.es = exports.fr = exports.de = exports.ru = exports.en = exports.KeymapInspector = void 0;
|
|
18
|
+
var KeymapInspector_1 = require("./KeymapInspector");
|
|
19
|
+
Object.defineProperty(exports, "KeymapInspector", { enumerable: true, get: function () { return KeymapInspector_1.KeymapInspector; } });
|
|
20
|
+
__exportStar(require("./types"), exports);
|
|
21
|
+
var en_1 = require("./layouts/en");
|
|
22
|
+
Object.defineProperty(exports, "en", { enumerable: true, get: function () { return en_1.en; } });
|
|
23
|
+
var ru_1 = require("./layouts/ru");
|
|
24
|
+
Object.defineProperty(exports, "ru", { enumerable: true, get: function () { return ru_1.ru; } });
|
|
25
|
+
var de_1 = require("./layouts/de");
|
|
26
|
+
Object.defineProperty(exports, "de", { enumerable: true, get: function () { return de_1.de; } });
|
|
27
|
+
var fr_1 = require("./layouts/fr");
|
|
28
|
+
Object.defineProperty(exports, "fr", { enumerable: true, get: function () { return fr_1.fr; } });
|
|
29
|
+
var es_1 = require("./layouts/es");
|
|
30
|
+
Object.defineProperty(exports, "es", { enumerable: true, get: function () { return es_1.es; } });
|
|
31
|
+
var ua_1 = require("./layouts/ua");
|
|
32
|
+
Object.defineProperty(exports, "ua", { enumerable: true, get: function () { return ua_1.ua; } });
|
|
33
|
+
var he_1 = require("./layouts/he");
|
|
34
|
+
Object.defineProperty(exports, "he", { enumerable: true, get: function () { return he_1.he; } });
|
|
35
|
+
__exportStar(require("./layouts"), exports);
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.de = void 0;
|
|
4
|
+
exports.de = {
|
|
5
|
+
// Первый ряд (цифры)
|
|
6
|
+
'1': { key: '1', code: 'Digit1', keyCode: 49 },
|
|
7
|
+
'2': { key: '2', code: 'Digit2', keyCode: 50 },
|
|
8
|
+
'3': { key: '3', code: 'Digit3', keyCode: 51 },
|
|
9
|
+
'4': { key: '4', code: 'Digit4', keyCode: 52 },
|
|
10
|
+
'5': { key: '5', code: 'Digit5', keyCode: 53 },
|
|
11
|
+
'6': { key: '6', code: 'Digit6', keyCode: 54 },
|
|
12
|
+
'7': { key: '7', code: 'Digit7', keyCode: 55 },
|
|
13
|
+
'8': { key: '8', code: 'Digit8', keyCode: 56 },
|
|
14
|
+
'9': { key: '9', code: 'Digit9', keyCode: 57 },
|
|
15
|
+
'0': { key: '0', code: 'Digit0', keyCode: 48 },
|
|
16
|
+
'ß': { key: 'ß', code: 'Minus', keyCode: 189 },
|
|
17
|
+
// Второй ряд (QWERTZ)
|
|
18
|
+
'q': { key: 'q', code: 'KeyQ', keyCode: 81 },
|
|
19
|
+
'w': { key: 'w', code: 'KeyW', keyCode: 87 },
|
|
20
|
+
'e': { key: 'e', code: 'KeyE', keyCode: 69 },
|
|
21
|
+
'r': { key: 'r', code: 'KeyR', keyCode: 82 },
|
|
22
|
+
't': { key: 't', code: 'KeyT', keyCode: 84 },
|
|
23
|
+
'z': { key: 'z', code: 'KeyY', keyCode: 89 }, // В немецкой Z и Y поменяны местами
|
|
24
|
+
'u': { key: 'u', code: 'KeyU', keyCode: 85 },
|
|
25
|
+
'i': { key: 'i', code: 'KeyI', keyCode: 73 },
|
|
26
|
+
'o': { key: 'o', code: 'KeyO', keyCode: 79 },
|
|
27
|
+
'p': { key: 'p', code: 'KeyP', keyCode: 80 },
|
|
28
|
+
'ü': { key: 'ü', code: 'BracketLeft', keyCode: 219 },
|
|
29
|
+
'+': { key: '+', code: 'BracketRight', keyCode: 221 },
|
|
30
|
+
// Третий ряд (ASDF)
|
|
31
|
+
'a': { key: 'a', code: 'KeyA', keyCode: 65 },
|
|
32
|
+
's': { key: 's', code: 'KeyS', keyCode: 83 },
|
|
33
|
+
'd': { key: 'd', code: 'KeyD', keyCode: 68 },
|
|
34
|
+
'f': { key: 'f', code: 'KeyF', keyCode: 70 },
|
|
35
|
+
'g': { key: 'g', code: 'KeyG', keyCode: 71 },
|
|
36
|
+
'h': { key: 'h', code: 'KeyH', keyCode: 72 },
|
|
37
|
+
'j': { key: 'j', code: 'KeyJ', keyCode: 74 },
|
|
38
|
+
'k': { key: 'k', code: 'KeyK', keyCode: 75 },
|
|
39
|
+
'l': { key: 'l', code: 'KeyL', keyCode: 76 },
|
|
40
|
+
'ö': { key: 'ö', code: 'Semicolon', keyCode: 186 },
|
|
41
|
+
'ä': { key: 'ä', code: 'Quote', keyCode: 222 },
|
|
42
|
+
'#': { key: '#', code: 'Backslash', keyCode: 220 },
|
|
43
|
+
// Четвертый ряд (YXCV)
|
|
44
|
+
'y': { key: 'y', code: 'KeyZ', keyCode: 90 }, // В немецкой Y и Z поменяны местами
|
|
45
|
+
'x': { key: 'x', code: 'KeyX', keyCode: 88 },
|
|
46
|
+
'c': { key: 'c', code: 'KeyC', keyCode: 67 },
|
|
47
|
+
'v': { key: 'v', code: 'KeyV', keyCode: 86 },
|
|
48
|
+
'b': { key: 'b', code: 'KeyB', keyCode: 66 },
|
|
49
|
+
'n': { key: 'n', code: 'KeyN', keyCode: 78 },
|
|
50
|
+
'm': { key: 'm', code: 'KeyM', keyCode: 77 },
|
|
51
|
+
',': { key: ',', code: 'Comma', keyCode: 188 },
|
|
52
|
+
'.': { key: '.', code: 'Period', keyCode: 190 },
|
|
53
|
+
'-': { key: '-', code: 'Slash', keyCode: 191 },
|
|
54
|
+
// Заглавные буквы (с Shift)
|
|
55
|
+
'Q': { key: 'Q', code: 'KeyQ', keyCode: 81, shiftKey: true },
|
|
56
|
+
'W': { key: 'W', code: 'KeyW', keyCode: 87, shiftKey: true },
|
|
57
|
+
'E': { key: 'E', code: 'KeyE', keyCode: 69, shiftKey: true },
|
|
58
|
+
'R': { key: 'R', code: 'KeyR', keyCode: 82, shiftKey: true },
|
|
59
|
+
'T': { key: 'T', code: 'KeyT', keyCode: 84, shiftKey: true },
|
|
60
|
+
'Z': { key: 'Z', code: 'KeyY', keyCode: 89, shiftKey: true },
|
|
61
|
+
'U': { key: 'U', code: 'KeyU', keyCode: 85, shiftKey: true },
|
|
62
|
+
'I': { key: 'I', code: 'KeyI', keyCode: 73, shiftKey: true },
|
|
63
|
+
'O': { key: 'O', code: 'KeyO', keyCode: 79, shiftKey: true },
|
|
64
|
+
'P': { key: 'P', code: 'KeyP', keyCode: 80, shiftKey: true },
|
|
65
|
+
'Ü': { key: 'Ü', code: 'BracketLeft', keyCode: 219, shiftKey: true },
|
|
66
|
+
'A': { key: 'A', code: 'KeyA', keyCode: 65, shiftKey: true },
|
|
67
|
+
'S': { key: 'S', code: 'KeyS', keyCode: 83, shiftKey: true },
|
|
68
|
+
'D': { key: 'D', code: 'KeyD', keyCode: 68, shiftKey: true },
|
|
69
|
+
'F': { key: 'F', code: 'KeyF', keyCode: 70, shiftKey: true },
|
|
70
|
+
'G': { key: 'G', code: 'KeyG', keyCode: 71, shiftKey: true },
|
|
71
|
+
'H': { key: 'H', code: 'KeyH', keyCode: 72, shiftKey: true },
|
|
72
|
+
'J': { key: 'J', code: 'KeyJ', keyCode: 74, shiftKey: true },
|
|
73
|
+
'K': { key: 'K', code: 'KeyK', keyCode: 75, shiftKey: true },
|
|
74
|
+
'L': { key: 'L', code: 'KeyL', keyCode: 76, shiftKey: true },
|
|
75
|
+
'Ö': { key: 'Ö', code: 'Semicolon', keyCode: 186, shiftKey: true },
|
|
76
|
+
'Ä': { key: 'Ä', code: 'Quote', keyCode: 222, shiftKey: true },
|
|
77
|
+
'Y': { key: 'Y', code: 'KeyZ', keyCode: 90, shiftKey: true },
|
|
78
|
+
'X': { key: 'X', code: 'KeyX', keyCode: 88, shiftKey: true },
|
|
79
|
+
'C': { key: 'C', code: 'KeyC', keyCode: 67, shiftKey: true },
|
|
80
|
+
'V': { key: 'V', code: 'KeyV', keyCode: 86, shiftKey: true },
|
|
81
|
+
'B': { key: 'B', code: 'KeyB', keyCode: 66, shiftKey: true },
|
|
82
|
+
'N': { key: 'N', code: 'KeyN', keyCode: 78, shiftKey: true },
|
|
83
|
+
'M': { key: 'M', code: 'KeyM', keyCode: 77, shiftKey: true },
|
|
84
|
+
// Пробел
|
|
85
|
+
' ': { key: ' ', code: 'Space', keyCode: 32 },
|
|
86
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.en = void 0;
|
|
4
|
+
exports.en = {
|
|
5
|
+
// Первый ряд (цифры)
|
|
6
|
+
'1': { key: '1', code: 'Digit1', keyCode: 49 },
|
|
7
|
+
'2': { key: '2', code: 'Digit2', keyCode: 50 },
|
|
8
|
+
'3': { key: '3', code: 'Digit3', keyCode: 51 },
|
|
9
|
+
'4': { key: '4', code: 'Digit4', keyCode: 52 },
|
|
10
|
+
'5': { key: '5', code: 'Digit5', keyCode: 53 },
|
|
11
|
+
'6': { key: '6', code: 'Digit6', keyCode: 54 },
|
|
12
|
+
'7': { key: '7', code: 'Digit7', keyCode: 55 },
|
|
13
|
+
'8': { key: '8', code: 'Digit8', keyCode: 56 },
|
|
14
|
+
'9': { key: '9', code: 'Digit9', keyCode: 57 },
|
|
15
|
+
'0': { key: '0', code: 'Digit0', keyCode: 48 },
|
|
16
|
+
'-': { key: '-', code: 'Minus', keyCode: 189 },
|
|
17
|
+
'=': { key: '=', code: 'Equal', keyCode: 187 },
|
|
18
|
+
// Второй ряд (QWERTY)
|
|
19
|
+
'q': { key: 'q', code: 'KeyQ', keyCode: 81 },
|
|
20
|
+
'w': { key: 'w', code: 'KeyW', keyCode: 87 },
|
|
21
|
+
'e': { key: 'e', code: 'KeyE', keyCode: 69 },
|
|
22
|
+
'r': { key: 'r', code: 'KeyR', keyCode: 82 },
|
|
23
|
+
't': { key: 't', code: 'KeyT', keyCode: 84 },
|
|
24
|
+
'y': { key: 'y', code: 'KeyY', keyCode: 89 },
|
|
25
|
+
'u': { key: 'u', code: 'KeyU', keyCode: 85 },
|
|
26
|
+
'i': { key: 'i', code: 'KeyI', keyCode: 73 },
|
|
27
|
+
'o': { key: 'o', code: 'KeyO', keyCode: 79 },
|
|
28
|
+
'p': { key: 'p', code: 'KeyP', keyCode: 80 },
|
|
29
|
+
'[': { key: '[', code: 'BracketLeft', keyCode: 219 },
|
|
30
|
+
']': { key: ']', code: 'BracketRight', keyCode: 221 },
|
|
31
|
+
// Третий ряд (ASDF)
|
|
32
|
+
'a': { key: 'a', code: 'KeyA', keyCode: 65 },
|
|
33
|
+
's': { key: 's', code: 'KeyS', keyCode: 83 },
|
|
34
|
+
'd': { key: 'd', code: 'KeyD', keyCode: 68 },
|
|
35
|
+
'f': { key: 'f', code: 'KeyF', keyCode: 70 },
|
|
36
|
+
'g': { key: 'g', code: 'KeyG', keyCode: 71 },
|
|
37
|
+
'h': { key: 'h', code: 'KeyH', keyCode: 72 },
|
|
38
|
+
'j': { key: 'j', code: 'KeyJ', keyCode: 74 },
|
|
39
|
+
'k': { key: 'k', code: 'KeyK', keyCode: 75 },
|
|
40
|
+
'l': { key: 'l', code: 'KeyL', keyCode: 76 },
|
|
41
|
+
';': { key: ';', code: 'Semicolon', keyCode: 186 },
|
|
42
|
+
"'": { key: "'", code: 'Quote', keyCode: 222 },
|
|
43
|
+
'\\': { key: '\\', code: 'Backslash', keyCode: 220 },
|
|
44
|
+
// Четвертый ряд (ZXCV)
|
|
45
|
+
'z': { key: 'z', code: 'KeyZ', keyCode: 90 },
|
|
46
|
+
'x': { key: 'x', code: 'KeyX', keyCode: 88 },
|
|
47
|
+
'c': { key: 'c', code: 'KeyC', keyCode: 67 },
|
|
48
|
+
'v': { key: 'v', code: 'KeyV', keyCode: 86 },
|
|
49
|
+
'b': { key: 'b', code: 'KeyB', keyCode: 66 },
|
|
50
|
+
'n': { key: 'n', code: 'KeyN', keyCode: 78 },
|
|
51
|
+
'm': { key: 'm', code: 'KeyM', keyCode: 77 },
|
|
52
|
+
',': { key: ',', code: 'Comma', keyCode: 188 },
|
|
53
|
+
'.': { key: '.', code: 'Period', keyCode: 190 },
|
|
54
|
+
'/': { key: '/', code: 'Slash', keyCode: 191 },
|
|
55
|
+
// Заглавные буквы (с Shift)
|
|
56
|
+
'Q': { key: 'Q', code: 'KeyQ', keyCode: 81, shiftKey: true },
|
|
57
|
+
'W': { key: 'W', code: 'KeyW', keyCode: 87, shiftKey: true },
|
|
58
|
+
'E': { key: 'E', code: 'KeyE', keyCode: 69, shiftKey: true },
|
|
59
|
+
'R': { key: 'R', code: 'KeyR', keyCode: 82, shiftKey: true },
|
|
60
|
+
'T': { key: 'T', code: 'KeyT', keyCode: 84, shiftKey: true },
|
|
61
|
+
'Y': { key: 'Y', code: 'KeyY', keyCode: 89, shiftKey: true },
|
|
62
|
+
'U': { key: 'U', code: 'KeyU', keyCode: 85, shiftKey: true },
|
|
63
|
+
'I': { key: 'I', code: 'KeyI', keyCode: 73, shiftKey: true },
|
|
64
|
+
'O': { key: 'O', code: 'KeyO', keyCode: 79, shiftKey: true },
|
|
65
|
+
'P': { key: 'P', code: 'KeyP', keyCode: 80, shiftKey: true },
|
|
66
|
+
'A': { key: 'A', code: 'KeyA', keyCode: 65, shiftKey: true },
|
|
67
|
+
'S': { key: 'S', code: 'KeyS', keyCode: 83, shiftKey: true },
|
|
68
|
+
'D': { key: 'D', code: 'KeyD', keyCode: 68, shiftKey: true },
|
|
69
|
+
'F': { key: 'F', code: 'KeyF', keyCode: 70, shiftKey: true },
|
|
70
|
+
'G': { key: 'G', code: 'KeyG', keyCode: 71, shiftKey: true },
|
|
71
|
+
'H': { key: 'H', code: 'KeyH', keyCode: 72, shiftKey: true },
|
|
72
|
+
'J': { key: 'J', code: 'KeyJ', keyCode: 74, shiftKey: true },
|
|
73
|
+
'K': { key: 'K', code: 'KeyK', keyCode: 75, shiftKey: true },
|
|
74
|
+
'L': { key: 'L', code: 'KeyL', keyCode: 76, shiftKey: true },
|
|
75
|
+
'Z': { key: 'Z', code: 'KeyZ', keyCode: 90, shiftKey: true },
|
|
76
|
+
'X': { key: 'X', code: 'KeyX', keyCode: 88, shiftKey: true },
|
|
77
|
+
'C': { key: 'C', code: 'KeyC', keyCode: 67, shiftKey: true },
|
|
78
|
+
'V': { key: 'V', code: 'KeyV', keyCode: 86, shiftKey: true },
|
|
79
|
+
'B': { key: 'B', code: 'KeyB', keyCode: 66, shiftKey: true },
|
|
80
|
+
'N': { key: 'N', code: 'KeyN', keyCode: 78, shiftKey: true },
|
|
81
|
+
'M': { key: 'M', code: 'KeyM', keyCode: 77, shiftKey: true },
|
|
82
|
+
// Символы с Shift
|
|
83
|
+
'!': { key: '!', code: 'Digit1', keyCode: 49, shiftKey: true },
|
|
84
|
+
'@': { key: '@', code: 'Digit2', keyCode: 50, shiftKey: true },
|
|
85
|
+
'#': { key: '#', code: 'Digit3', keyCode: 51, shiftKey: true },
|
|
86
|
+
'$': { key: '$', code: 'Digit4', keyCode: 52, shiftKey: true },
|
|
87
|
+
'%': { key: '%', code: 'Digit5', keyCode: 53, shiftKey: true },
|
|
88
|
+
'^': { key: '^', code: 'Digit6', keyCode: 54, shiftKey: true },
|
|
89
|
+
'&': { key: '&', code: 'Digit7', keyCode: 55, shiftKey: true },
|
|
90
|
+
'*': { key: '*', code: 'Digit8', keyCode: 56, shiftKey: true },
|
|
91
|
+
'(': { key: '(', code: 'Digit9', keyCode: 57, shiftKey: true },
|
|
92
|
+
')': { key: ')', code: 'Digit0', keyCode: 48, shiftKey: true },
|
|
93
|
+
'_': { key: '_', code: 'Minus', keyCode: 189, shiftKey: true },
|
|
94
|
+
'+': { key: '+', code: 'Equal', keyCode: 187, shiftKey: true },
|
|
95
|
+
'{': { key: '{', code: 'BracketLeft', keyCode: 219, shiftKey: true },
|
|
96
|
+
'}': { key: '}', code: 'BracketRight', keyCode: 221, shiftKey: true },
|
|
97
|
+
':': { key: ':', code: 'Semicolon', keyCode: 186, shiftKey: true },
|
|
98
|
+
'"': { key: '"', code: 'Quote', keyCode: 222, shiftKey: true },
|
|
99
|
+
'|': { key: '|', code: 'Backslash', keyCode: 220, shiftKey: true },
|
|
100
|
+
'<': { key: '<', code: 'Comma', keyCode: 188, shiftKey: true },
|
|
101
|
+
'>': { key: '>', code: 'Period', keyCode: 190, shiftKey: true },
|
|
102
|
+
'?': { key: '?', code: 'Slash', keyCode: 191, shiftKey: true },
|
|
103
|
+
// Пробел
|
|
104
|
+
' ': { key: ' ', code: 'Space', keyCode: 32 },
|
|
105
|
+
};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.es = void 0;
|
|
4
|
+
exports.es = {
|
|
5
|
+
// Первый ряд (цифры)
|
|
6
|
+
'1': { key: '1', code: 'Digit1', keyCode: 49 },
|
|
7
|
+
'2': { key: '2', code: 'Digit2', keyCode: 50 },
|
|
8
|
+
'3': { key: '3', code: 'Digit3', keyCode: 51 },
|
|
9
|
+
'4': { key: '4', code: 'Digit4', keyCode: 52 },
|
|
10
|
+
'5': { key: '5', code: 'Digit5', keyCode: 53 },
|
|
11
|
+
'6': { key: '6', code: 'Digit6', keyCode: 54 },
|
|
12
|
+
'7': { key: '7', code: 'Digit7', keyCode: 55 },
|
|
13
|
+
'8': { key: '8', code: 'Digit8', keyCode: 56 },
|
|
14
|
+
'9': { key: '9', code: 'Digit9', keyCode: 57 },
|
|
15
|
+
'0': { key: '0', code: 'Digit0', keyCode: 48 },
|
|
16
|
+
"'": { key: "'", code: 'Minus', keyCode: 189 },
|
|
17
|
+
'¡': { key: '¡', code: 'Equal', keyCode: 187 },
|
|
18
|
+
// Второй ряд (QWERTY)
|
|
19
|
+
'q': { key: 'q', code: 'KeyQ', keyCode: 81 },
|
|
20
|
+
'w': { key: 'w', code: 'KeyW', keyCode: 87 },
|
|
21
|
+
'e': { key: 'e', code: 'KeyE', keyCode: 69 },
|
|
22
|
+
'r': { key: 'r', code: 'KeyR', keyCode: 82 },
|
|
23
|
+
't': { key: 't', code: 'KeyT', keyCode: 84 },
|
|
24
|
+
'y': { key: 'y', code: 'KeyY', keyCode: 89 },
|
|
25
|
+
'u': { key: 'u', code: 'KeyU', keyCode: 85 },
|
|
26
|
+
'i': { key: 'i', code: 'KeyI', keyCode: 73 },
|
|
27
|
+
'o': { key: 'o', code: 'KeyO', keyCode: 79 },
|
|
28
|
+
'p': { key: 'p', code: 'KeyP', keyCode: 80 },
|
|
29
|
+
'`': { key: '`', code: 'BracketLeft', keyCode: 219 },
|
|
30
|
+
'+': { key: '+', code: 'BracketRight', keyCode: 221 },
|
|
31
|
+
// Третий ряд (ASDF)
|
|
32
|
+
'a': { key: 'a', code: 'KeyA', keyCode: 65 },
|
|
33
|
+
's': { key: 's', code: 'KeyS', keyCode: 83 },
|
|
34
|
+
'd': { key: 'd', code: 'KeyD', keyCode: 68 },
|
|
35
|
+
'f': { key: 'f', code: 'KeyF', keyCode: 70 },
|
|
36
|
+
'g': { key: 'g', code: 'KeyG', keyCode: 71 },
|
|
37
|
+
'h': { key: 'h', code: 'KeyH', keyCode: 72 },
|
|
38
|
+
'j': { key: 'j', code: 'KeyJ', keyCode: 74 },
|
|
39
|
+
'k': { key: 'k', code: 'KeyK', keyCode: 75 },
|
|
40
|
+
'l': { key: 'l', code: 'KeyL', keyCode: 76 },
|
|
41
|
+
'ñ': { key: 'ñ', code: 'Semicolon', keyCode: 186 },
|
|
42
|
+
'´': { key: '´', code: 'Quote', keyCode: 222 },
|
|
43
|
+
'ç': { key: 'ç', code: 'Backslash', keyCode: 220 },
|
|
44
|
+
// Четвертый ряд (ZXCV)
|
|
45
|
+
'z': { key: 'z', code: 'KeyZ', keyCode: 90 },
|
|
46
|
+
'x': { key: 'x', code: 'KeyX', keyCode: 88 },
|
|
47
|
+
'c': { key: 'c', code: 'KeyC', keyCode: 67 },
|
|
48
|
+
'v': { key: 'v', code: 'KeyV', keyCode: 86 },
|
|
49
|
+
'b': { key: 'b', code: 'KeyB', keyCode: 66 },
|
|
50
|
+
'n': { key: 'n', code: 'KeyN', keyCode: 78 },
|
|
51
|
+
'm': { key: 'm', code: 'KeyM', keyCode: 77 },
|
|
52
|
+
',': { key: ',', code: 'Comma', keyCode: 188 },
|
|
53
|
+
'.': { key: '.', code: 'Period', keyCode: 190 },
|
|
54
|
+
'-': { key: '-', code: 'Slash', keyCode: 191 },
|
|
55
|
+
// Заглавные буквы (с Shift)
|
|
56
|
+
'Q': { key: 'Q', code: 'KeyQ', keyCode: 81, shiftKey: true },
|
|
57
|
+
'W': { key: 'W', code: 'KeyW', keyCode: 87, shiftKey: true },
|
|
58
|
+
'E': { key: 'E', code: 'KeyE', keyCode: 69, shiftKey: true },
|
|
59
|
+
'R': { key: 'R', code: 'KeyR', keyCode: 82, shiftKey: true },
|
|
60
|
+
'T': { key: 'T', code: 'KeyT', keyCode: 84, shiftKey: true },
|
|
61
|
+
'Y': { key: 'Y', code: 'KeyY', keyCode: 89, shiftKey: true },
|
|
62
|
+
'U': { key: 'U', code: 'KeyU', keyCode: 85, shiftKey: true },
|
|
63
|
+
'I': { key: 'I', code: 'KeyI', keyCode: 73, shiftKey: true },
|
|
64
|
+
'O': { key: 'O', code: 'KeyO', keyCode: 79, shiftKey: true },
|
|
65
|
+
'P': { key: 'P', code: 'KeyP', keyCode: 80, shiftKey: true },
|
|
66
|
+
'A': { key: 'A', code: 'KeyA', keyCode: 65, shiftKey: true },
|
|
67
|
+
'S': { key: 'S', code: 'KeyS', keyCode: 83, shiftKey: true },
|
|
68
|
+
'D': { key: 'D', code: 'KeyD', keyCode: 68, shiftKey: true },
|
|
69
|
+
'F': { key: 'F', code: 'KeyF', keyCode: 70, shiftKey: true },
|
|
70
|
+
'G': { key: 'G', code: 'KeyG', keyCode: 71, shiftKey: true },
|
|
71
|
+
'H': { key: 'H', code: 'KeyH', keyCode: 72, shiftKey: true },
|
|
72
|
+
'J': { key: 'J', code: 'KeyJ', keyCode: 74, shiftKey: true },
|
|
73
|
+
'K': { key: 'K', code: 'KeyK', keyCode: 75, shiftKey: true },
|
|
74
|
+
'L': { key: 'L', code: 'KeyL', keyCode: 76, shiftKey: true },
|
|
75
|
+
'Ñ': { key: 'Ñ', code: 'Semicolon', keyCode: 186, shiftKey: true },
|
|
76
|
+
'Z': { key: 'Z', code: 'KeyZ', keyCode: 90, shiftKey: true },
|
|
77
|
+
'X': { key: 'X', code: 'KeyX', keyCode: 88, shiftKey: true },
|
|
78
|
+
'C': { key: 'C', code: 'KeyC', keyCode: 67, shiftKey: true },
|
|
79
|
+
'V': { key: 'V', code: 'KeyV', keyCode: 86, shiftKey: true },
|
|
80
|
+
'B': { key: 'B', code: 'KeyB', keyCode: 66, shiftKey: true },
|
|
81
|
+
'N': { key: 'N', code: 'KeyN', keyCode: 78, shiftKey: true },
|
|
82
|
+
'M': { key: 'M', code: 'KeyM', keyCode: 77, shiftKey: true },
|
|
83
|
+
// Специальные символы с Shift
|
|
84
|
+
'!': { key: '!', code: 'Digit1', keyCode: 49, shiftKey: true },
|
|
85
|
+
'"': { key: '"', code: 'Digit2', keyCode: 50, shiftKey: true },
|
|
86
|
+
'·': { key: '·', code: 'Digit3', keyCode: 51, shiftKey: true },
|
|
87
|
+
'$': { key: '$', code: 'Digit4', keyCode: 52, shiftKey: true },
|
|
88
|
+
'%': { key: '%', code: 'Digit5', keyCode: 53, shiftKey: true },
|
|
89
|
+
'&': { key: '&', code: 'Digit6', keyCode: 54, shiftKey: true },
|
|
90
|
+
'/': { key: '/', code: 'Digit7', keyCode: 55, shiftKey: true },
|
|
91
|
+
'(': { key: '(', code: 'Digit8', keyCode: 56, shiftKey: true },
|
|
92
|
+
')': { key: ')', code: 'Digit9', keyCode: 57, shiftKey: true },
|
|
93
|
+
'=': { key: '=', code: 'Digit0', keyCode: 48, shiftKey: true },
|
|
94
|
+
'?': { key: '?', code: 'Minus', keyCode: 189, shiftKey: true },
|
|
95
|
+
'¿': { key: '¿', code: 'Equal', keyCode: 187, shiftKey: true },
|
|
96
|
+
// Пробел
|
|
97
|
+
' ': { key: ' ', code: 'Space', keyCode: 32 },
|
|
98
|
+
};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fr = void 0;
|
|
4
|
+
exports.fr = {
|
|
5
|
+
// Первый ряд (AZERTY цифры)
|
|
6
|
+
'&': { key: '&', code: 'Digit1', keyCode: 49 },
|
|
7
|
+
'é': { key: 'é', code: 'Digit2', keyCode: 50 },
|
|
8
|
+
'"': { key: '"', code: 'Digit3', keyCode: 51 },
|
|
9
|
+
"'": { key: "'", code: 'Digit4', keyCode: 52 },
|
|
10
|
+
'(': { key: '(', code: 'Digit5', keyCode: 53 },
|
|
11
|
+
'-': { key: '-', code: 'Digit6', keyCode: 54 },
|
|
12
|
+
'è': { key: 'è', code: 'Digit7', keyCode: 55 },
|
|
13
|
+
'_': { key: '_', code: 'Digit8', keyCode: 56 },
|
|
14
|
+
'ç': { key: 'ç', code: 'Digit9', keyCode: 57 },
|
|
15
|
+
'à': { key: 'à', code: 'Digit0', keyCode: 48 },
|
|
16
|
+
')': { key: ')', code: 'Minus', keyCode: 189 },
|
|
17
|
+
'=': { key: '=', code: 'Equal', keyCode: 187 },
|
|
18
|
+
// Второй ряд (AZERTY)
|
|
19
|
+
'a': { key: 'a', code: 'KeyQ', keyCode: 81 }, // A на месте Q
|
|
20
|
+
'z': { key: 'z', code: 'KeyW', keyCode: 87 }, // Z на месте W
|
|
21
|
+
'e': { key: 'e', code: 'KeyE', keyCode: 69 },
|
|
22
|
+
'r': { key: 'r', code: 'KeyR', keyCode: 82 },
|
|
23
|
+
't': { key: 't', code: 'KeyT', keyCode: 84 },
|
|
24
|
+
'y': { key: 'y', code: 'KeyY', keyCode: 89 },
|
|
25
|
+
'u': { key: 'u', code: 'KeyU', keyCode: 85 },
|
|
26
|
+
'i': { key: 'i', code: 'KeyI', keyCode: 73 },
|
|
27
|
+
'o': { key: 'o', code: 'KeyO', keyCode: 79 },
|
|
28
|
+
'p': { key: 'p', code: 'KeyP', keyCode: 80 },
|
|
29
|
+
'^': { key: '^', code: 'BracketLeft', keyCode: 219 },
|
|
30
|
+
'$': { key: '$', code: 'BracketRight', keyCode: 221 },
|
|
31
|
+
// Третий ряд
|
|
32
|
+
'q': { key: 'q', code: 'KeyA', keyCode: 65 }, // Q на месте A
|
|
33
|
+
's': { key: 's', code: 'KeyS', keyCode: 83 },
|
|
34
|
+
'd': { key: 'd', code: 'KeyD', keyCode: 68 },
|
|
35
|
+
'f': { key: 'f', code: 'KeyF', keyCode: 70 },
|
|
36
|
+
'g': { key: 'g', code: 'KeyG', keyCode: 71 },
|
|
37
|
+
'h': { key: 'h', code: 'KeyH', keyCode: 72 },
|
|
38
|
+
'j': { key: 'j', code: 'KeyJ', keyCode: 74 },
|
|
39
|
+
'k': { key: 'k', code: 'KeyK', keyCode: 75 },
|
|
40
|
+
'l': { key: 'l', code: 'KeyL', keyCode: 76 },
|
|
41
|
+
'm': { key: 'm', code: 'Semicolon', keyCode: 186 }, // M на месте ;
|
|
42
|
+
'ù': { key: 'ù', code: 'Quote', keyCode: 222 },
|
|
43
|
+
'*': { key: '*', code: 'Backslash', keyCode: 220 },
|
|
44
|
+
// Четвертый ряд
|
|
45
|
+
'w': { key: 'w', code: 'KeyZ', keyCode: 90 }, // W на месте Z
|
|
46
|
+
'x': { key: 'x', code: 'KeyX', keyCode: 88 },
|
|
47
|
+
'c': { key: 'c', code: 'KeyC', keyCode: 67 },
|
|
48
|
+
'v': { key: 'v', code: 'KeyV', keyCode: 86 },
|
|
49
|
+
'b': { key: 'b', code: 'KeyB', keyCode: 66 },
|
|
50
|
+
'n': { key: 'n', code: 'KeyN', keyCode: 78 },
|
|
51
|
+
',': { key: ',', code: 'KeyM', keyCode: 77 }, // , на месте M
|
|
52
|
+
';': { key: ';', code: 'Comma', keyCode: 188 },
|
|
53
|
+
':': { key: ':', code: 'Period', keyCode: 190 },
|
|
54
|
+
'!': { key: '!', code: 'Slash', keyCode: 191 },
|
|
55
|
+
// Заглавные буквы (с Shift)
|
|
56
|
+
'A': { key: 'A', code: 'KeyQ', keyCode: 81, shiftKey: true },
|
|
57
|
+
'Z': { key: 'Z', code: 'KeyW', keyCode: 87, shiftKey: true },
|
|
58
|
+
'E': { key: 'E', code: 'KeyE', keyCode: 69, shiftKey: true },
|
|
59
|
+
'R': { key: 'R', code: 'KeyR', keyCode: 82, shiftKey: true },
|
|
60
|
+
'T': { key: 'T', code: 'KeyT', keyCode: 84, shiftKey: true },
|
|
61
|
+
'Y': { key: 'Y', code: 'KeyY', keyCode: 89, shiftKey: true },
|
|
62
|
+
'U': { key: 'U', code: 'KeyU', keyCode: 85, shiftKey: true },
|
|
63
|
+
'I': { key: 'I', code: 'KeyI', keyCode: 73, shiftKey: true },
|
|
64
|
+
'O': { key: 'O', code: 'KeyO', keyCode: 79, shiftKey: true },
|
|
65
|
+
'P': { key: 'P', code: 'KeyP', keyCode: 80, shiftKey: true },
|
|
66
|
+
'Q': { key: 'Q', code: 'KeyA', keyCode: 65, shiftKey: true },
|
|
67
|
+
'S': { key: 'S', code: 'KeyS', keyCode: 83, shiftKey: true },
|
|
68
|
+
'D': { key: 'D', code: 'KeyD', keyCode: 68, shiftKey: true },
|
|
69
|
+
'F': { key: 'F', code: 'KeyF', keyCode: 70, shiftKey: true },
|
|
70
|
+
'G': { key: 'G', code: 'KeyG', keyCode: 71, shiftKey: true },
|
|
71
|
+
'H': { key: 'H', code: 'KeyH', keyCode: 72, shiftKey: true },
|
|
72
|
+
'J': { key: 'J', code: 'KeyJ', keyCode: 74, shiftKey: true },
|
|
73
|
+
'K': { key: 'K', code: 'KeyK', keyCode: 75, shiftKey: true },
|
|
74
|
+
'L': { key: 'L', code: 'KeyL', keyCode: 76, shiftKey: true },
|
|
75
|
+
'M': { key: 'M', code: 'Semicolon', keyCode: 186, shiftKey: true },
|
|
76
|
+
'W': { key: 'W', code: 'KeyZ', keyCode: 90, shiftKey: true },
|
|
77
|
+
'X': { key: 'X', code: 'KeyX', keyCode: 88, shiftKey: true },
|
|
78
|
+
'C': { key: 'C', code: 'KeyC', keyCode: 67, shiftKey: true },
|
|
79
|
+
'V': { key: 'V', code: 'KeyV', keyCode: 86, shiftKey: true },
|
|
80
|
+
'B': { key: 'B', code: 'KeyB', keyCode: 66, shiftKey: true },
|
|
81
|
+
'N': { key: 'N', code: 'KeyN', keyCode: 78, shiftKey: true },
|
|
82
|
+
// Цифры с Shift
|
|
83
|
+
'1': { key: '1', code: 'Digit1', keyCode: 49, shiftKey: true },
|
|
84
|
+
'2': { key: '2', code: 'Digit2', keyCode: 50, shiftKey: true },
|
|
85
|
+
'3': { key: '3', code: 'Digit3', keyCode: 51, shiftKey: true },
|
|
86
|
+
'4': { key: '4', code: 'Digit4', keyCode: 52, shiftKey: true },
|
|
87
|
+
'5': { key: '5', code: 'Digit5', keyCode: 53, shiftKey: true },
|
|
88
|
+
'6': { key: '6', code: 'Digit6', keyCode: 54, shiftKey: true },
|
|
89
|
+
'7': { key: '7', code: 'Digit7', keyCode: 55, shiftKey: true },
|
|
90
|
+
'8': { key: '8', code: 'Digit8', keyCode: 56, shiftKey: true },
|
|
91
|
+
'9': { key: '9', code: 'Digit9', keyCode: 57, shiftKey: true },
|
|
92
|
+
'0': { key: '0', code: 'Digit0', keyCode: 48, shiftKey: true },
|
|
93
|
+
// Пробел
|
|
94
|
+
' ': { key: ' ', code: 'Space', keyCode: 32 },
|
|
95
|
+
};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.he = void 0;
|
|
4
|
+
exports.he = {
|
|
5
|
+
// Первый ряд (цифры)
|
|
6
|
+
'1': { key: '1', code: 'Digit1', keyCode: 49 },
|
|
7
|
+
'2': { key: '2', code: 'Digit2', keyCode: 50 },
|
|
8
|
+
'3': { key: '3', code: 'Digit3', keyCode: 51 },
|
|
9
|
+
'4': { key: '4', code: 'Digit4', keyCode: 52 },
|
|
10
|
+
'5': { key: '5', code: 'Digit5', keyCode: 53 },
|
|
11
|
+
'6': { key: '6', code: 'Digit6', keyCode: 54 },
|
|
12
|
+
'7': { key: '7', code: 'Digit7', keyCode: 55 },
|
|
13
|
+
'8': { key: '8', code: 'Digit8', keyCode: 56 },
|
|
14
|
+
'9': { key: '9', code: 'Digit9', keyCode: 57 },
|
|
15
|
+
'0': { key: '0', code: 'Digit0', keyCode: 48 },
|
|
16
|
+
'-': { key: '-', code: 'Minus', keyCode: 189 },
|
|
17
|
+
'=': { key: '=', code: 'Equal', keyCode: 187 },
|
|
18
|
+
// Второй ряд (иврит - справа налево, но клавиши в том же порядке)
|
|
19
|
+
'/': { key: '/', code: 'KeyQ', keyCode: 81 }, // ק на Q
|
|
20
|
+
"'": { key: "'", code: 'KeyW', keyCode: 87 }, // ר на W
|
|
21
|
+
'ק': { key: 'ק', code: 'KeyE', keyCode: 69 }, // א на E
|
|
22
|
+
'ר': { key: 'ר', code: 'KeyR', keyCode: 82 }, // ט на R
|
|
23
|
+
'א': { key: 'א', code: 'KeyT', keyCode: 84 }, // ו на T
|
|
24
|
+
'ט': { key: 'ט', code: 'KeyY', keyCode: 89 }, // ן на Y
|
|
25
|
+
'ו': { key: 'ו', code: 'KeyU', keyCode: 85 }, // ם на U
|
|
26
|
+
'ן': { key: 'ן', code: 'KeyI', keyCode: 73 }, // פ на I
|
|
27
|
+
'ם': { key: 'ם', code: 'KeyO', keyCode: 79 }, // ף на O
|
|
28
|
+
'פ': { key: 'פ', code: 'KeyP', keyCode: 80 }, // פ на P
|
|
29
|
+
']': { key: ']', code: 'BracketLeft', keyCode: 219 },
|
|
30
|
+
'[': { key: '[', code: 'BracketRight', keyCode: 221 },
|
|
31
|
+
// Третий ряд
|
|
32
|
+
'ש': { key: 'ש', code: 'KeyA', keyCode: 65 }, // ש на A
|
|
33
|
+
'ד': { key: 'ד', code: 'KeyS', keyCode: 83 }, // ד на S
|
|
34
|
+
'ג': { key: 'ג', code: 'KeyD', keyCode: 68 }, // ג на D
|
|
35
|
+
'כ': { key: 'כ', code: 'KeyF', keyCode: 70 }, // כ на F
|
|
36
|
+
'ע': { key: 'ע', code: 'KeyG', keyCode: 71 }, // ע на G
|
|
37
|
+
'י': { key: 'י', code: 'KeyH', keyCode: 72 }, // י на H
|
|
38
|
+
'ח': { key: 'ח', code: 'KeyJ', keyCode: 74 }, // ח на J
|
|
39
|
+
'ל': { key: 'ל', code: 'KeyK', keyCode: 75 }, // ל на K
|
|
40
|
+
'ך': { key: 'ך', code: 'KeyL', keyCode: 76 }, // ך на L
|
|
41
|
+
'ף': { key: 'ף', code: 'Semicolon', keyCode: 186 }, // ף на ;
|
|
42
|
+
',': { key: ',', code: 'Quote', keyCode: 222 },
|
|
43
|
+
'\\': { key: '\\', code: 'Backslash', keyCode: 220 },
|
|
44
|
+
// Четвертый ряд
|
|
45
|
+
'ז': { key: 'ז', code: 'KeyZ', keyCode: 90 }, // ז на Z
|
|
46
|
+
'ס': { key: 'ס', code: 'KeyX', keyCode: 88 }, // ס на X
|
|
47
|
+
'ב': { key: 'ב', code: 'KeyC', keyCode: 67 }, // ב на C
|
|
48
|
+
'ה': { key: 'ה', code: 'KeyV', keyCode: 86 }, // ה на V
|
|
49
|
+
'נ': { key: 'נ', code: 'KeyB', keyCode: 66 }, // נ на B
|
|
50
|
+
'מ': { key: 'מ', code: 'KeyN', keyCode: 78 }, // מ на N
|
|
51
|
+
'צ': { key: 'צ', code: 'KeyM', keyCode: 77 }, // צ на M
|
|
52
|
+
'ת': { key: 'ת', code: 'Comma', keyCode: 188 }, // ת на ,
|
|
53
|
+
'ץ': { key: 'ץ', code: 'Period', keyCode: 190 }, // ץ на .
|
|
54
|
+
'.': { key: '.', code: 'Slash', keyCode: 191 },
|
|
55
|
+
// Символы с Shift (английские символы при нажатии Shift)
|
|
56
|
+
'!': { key: '!', code: 'Digit1', keyCode: 49, shiftKey: true },
|
|
57
|
+
'@': { key: '@', code: 'Digit2', keyCode: 50, shiftKey: true },
|
|
58
|
+
'#': { key: '#', code: 'Digit3', keyCode: 51, shiftKey: true },
|
|
59
|
+
'$': { key: '$', code: 'Digit4', keyCode: 52, shiftKey: true },
|
|
60
|
+
'%': { key: '%', code: 'Digit5', keyCode: 53, shiftKey: true },
|
|
61
|
+
'^': { key: '^', code: 'Digit6', keyCode: 54, shiftKey: true },
|
|
62
|
+
'&': { key: '&', code: 'Digit7', keyCode: 55, shiftKey: true },
|
|
63
|
+
'*': { key: '*', code: 'Digit8', keyCode: 56, shiftKey: true },
|
|
64
|
+
'(': { key: '(', code: 'Digit9', keyCode: 57, shiftKey: true },
|
|
65
|
+
')': { key: ')', code: 'Digit0', keyCode: 48, shiftKey: true },
|
|
66
|
+
'_': { key: '_', code: 'Minus', keyCode: 189, shiftKey: true },
|
|
67
|
+
'+': { key: '+', code: 'Equal', keyCode: 187, shiftKey: true },
|
|
68
|
+
// Английские буквы с Shift (двуязычная клавиатура)
|
|
69
|
+
'Q': { key: 'Q', code: 'KeyQ', keyCode: 81, shiftKey: true },
|
|
70
|
+
'W': { key: 'W', code: 'KeyW', keyCode: 87, shiftKey: true },
|
|
71
|
+
'E': { key: 'E', code: 'KeyE', keyCode: 69, shiftKey: true },
|
|
72
|
+
'R': { key: 'R', code: 'KeyR', keyCode: 82, shiftKey: true },
|
|
73
|
+
'T': { key: 'T', code: 'KeyT', keyCode: 84, shiftKey: true },
|
|
74
|
+
'Y': { key: 'Y', code: 'KeyY', keyCode: 89, shiftKey: true },
|
|
75
|
+
'U': { key: 'U', code: 'KeyU', keyCode: 85, shiftKey: true },
|
|
76
|
+
'I': { key: 'I', code: 'KeyI', keyCode: 73, shiftKey: true },
|
|
77
|
+
'O': { key: 'O', code: 'KeyO', keyCode: 79, shiftKey: true },
|
|
78
|
+
'P': { key: 'P', code: 'KeyP', keyCode: 80, shiftKey: true },
|
|
79
|
+
'A': { key: 'A', code: 'KeyA', keyCode: 65, shiftKey: true },
|
|
80
|
+
'S': { key: 'S', code: 'KeyS', keyCode: 83, shiftKey: true },
|
|
81
|
+
'D': { key: 'D', code: 'KeyD', keyCode: 68, shiftKey: true },
|
|
82
|
+
'F': { key: 'F', code: 'KeyF', keyCode: 70, shiftKey: true },
|
|
83
|
+
'G': { key: 'G', code: 'KeyG', keyCode: 71, shiftKey: true },
|
|
84
|
+
'H': { key: 'H', code: 'KeyH', keyCode: 72, shiftKey: true },
|
|
85
|
+
'J': { key: 'J', code: 'KeyJ', keyCode: 74, shiftKey: true },
|
|
86
|
+
'K': { key: 'K', code: 'KeyK', keyCode: 75, shiftKey: true },
|
|
87
|
+
'L': { key: 'L', code: 'KeyL', keyCode: 76, shiftKey: true },
|
|
88
|
+
'Z': { key: 'Z', code: 'KeyZ', keyCode: 90, shiftKey: true },
|
|
89
|
+
'X': { key: 'X', code: 'KeyX', keyCode: 88, shiftKey: true },
|
|
90
|
+
'C': { key: 'C', code: 'KeyC', keyCode: 67, shiftKey: true },
|
|
91
|
+
'V': { key: 'V', code: 'KeyV', keyCode: 86, shiftKey: true },
|
|
92
|
+
'B': { key: 'B', code: 'KeyB', keyCode: 66, shiftKey: true },
|
|
93
|
+
'N': { key: 'N', code: 'KeyN', keyCode: 78, shiftKey: true },
|
|
94
|
+
'M': { key: 'M', code: 'KeyM', keyCode: 77, shiftKey: true },
|
|
95
|
+
// Пробел
|
|
96
|
+
' ': { key: ' ', code: 'Space', keyCode: 32 },
|
|
97
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { en } from './en';
|
|
2
|
+
export { ru } from './ru';
|
|
3
|
+
export { de } from './de';
|
|
4
|
+
export { fr } from './fr';
|
|
5
|
+
export { es } from './es';
|
|
6
|
+
export { ua } from './ua';
|
|
7
|
+
export { he } from './he';
|
|
8
|
+
export type LayoutPackage = {
|
|
9
|
+
name: string;
|
|
10
|
+
layouts: {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.he = exports.ua = exports.es = exports.fr = exports.de = exports.ru = exports.en = void 0;
|
|
4
|
+
// Экспорт всех встроенных раскладок
|
|
5
|
+
var en_1 = require("./en");
|
|
6
|
+
Object.defineProperty(exports, "en", { enumerable: true, get: function () { return en_1.en; } });
|
|
7
|
+
var ru_1 = require("./ru");
|
|
8
|
+
Object.defineProperty(exports, "ru", { enumerable: true, get: function () { return ru_1.ru; } });
|
|
9
|
+
var de_1 = require("./de");
|
|
10
|
+
Object.defineProperty(exports, "de", { enumerable: true, get: function () { return de_1.de; } });
|
|
11
|
+
var fr_1 = require("./fr");
|
|
12
|
+
Object.defineProperty(exports, "fr", { enumerable: true, get: function () { return fr_1.fr; } });
|
|
13
|
+
var es_1 = require("./es");
|
|
14
|
+
Object.defineProperty(exports, "es", { enumerable: true, get: function () { return es_1.es; } });
|
|
15
|
+
var ua_1 = require("./ua");
|
|
16
|
+
Object.defineProperty(exports, "ua", { enumerable: true, get: function () { return ua_1.ua; } });
|
|
17
|
+
var he_1 = require("./he");
|
|
18
|
+
Object.defineProperty(exports, "he", { enumerable: true, get: function () { return he_1.he; } });
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ru = void 0;
|
|
4
|
+
exports.ru = {
|
|
5
|
+
// Первый ряд (цифры)
|
|
6
|
+
'1': { key: '1', code: 'Digit1', keyCode: 49 },
|
|
7
|
+
'2': { key: '2', code: 'Digit2', keyCode: 50 },
|
|
8
|
+
'3': { key: '3', code: 'Digit3', keyCode: 51 },
|
|
9
|
+
'4': { key: '4', code: 'Digit4', keyCode: 52 },
|
|
10
|
+
'5': { key: '5', code: 'Digit5', keyCode: 53 },
|
|
11
|
+
'6': { key: '6', code: 'Digit6', keyCode: 54 },
|
|
12
|
+
'7': { key: '7', code: 'Digit7', keyCode: 55 },
|
|
13
|
+
'8': { key: '8', code: 'Digit8', keyCode: 56 },
|
|
14
|
+
'9': { key: '9', code: 'Digit9', keyCode: 57 },
|
|
15
|
+
'0': { key: '0', code: 'Digit0', keyCode: 48 },
|
|
16
|
+
'-': { key: '-', code: 'Minus', keyCode: 189 },
|
|
17
|
+
'=': { key: '=', code: 'Equal', keyCode: 187 },
|
|
18
|
+
// Второй ряд (русская ЙЦУКЕН)
|
|
19
|
+
'й': { key: 'й', code: 'KeyQ', keyCode: 81 },
|
|
20
|
+
'ц': { key: 'ц', code: 'KeyW', keyCode: 87 },
|
|
21
|
+
'у': { key: 'у', code: 'KeyE', keyCode: 69 },
|
|
22
|
+
'к': { key: 'к', code: 'KeyR', keyCode: 82 },
|
|
23
|
+
'е': { key: 'е', code: 'KeyT', keyCode: 84 },
|
|
24
|
+
'н': { key: 'н', code: 'KeyY', keyCode: 89 },
|
|
25
|
+
'г': { key: 'г', code: 'KeyU', keyCode: 85 },
|
|
26
|
+
'ш': { key: 'ш', code: 'KeyI', keyCode: 73 },
|
|
27
|
+
'щ': { key: 'щ', code: 'KeyO', keyCode: 79 },
|
|
28
|
+
'з': { key: 'з', code: 'KeyP', keyCode: 80 },
|
|
29
|
+
'х': { key: 'х', code: 'BracketLeft', keyCode: 219 },
|
|
30
|
+
'ъ': { key: 'ъ', code: 'BracketRight', keyCode: 221 },
|
|
31
|
+
// Третий ряд
|
|
32
|
+
'ф': { key: 'ф', code: 'KeyA', keyCode: 65 },
|
|
33
|
+
'ы': { key: 'ы', code: 'KeyS', keyCode: 83 },
|
|
34
|
+
'в': { key: 'в', code: 'KeyD', keyCode: 68 },
|
|
35
|
+
'а': { key: 'а', code: 'KeyF', keyCode: 70 },
|
|
36
|
+
'п': { key: 'п', code: 'KeyG', keyCode: 71 },
|
|
37
|
+
'р': { key: 'р', code: 'KeyH', keyCode: 72 },
|
|
38
|
+
'о': { key: 'о', code: 'KeyJ', keyCode: 74 },
|
|
39
|
+
'л': { key: 'л', code: 'KeyK', keyCode: 75 },
|
|
40
|
+
'д': { key: 'д', code: 'KeyL', keyCode: 76 },
|
|
41
|
+
'ж': { key: 'ж', code: 'Semicolon', keyCode: 186 },
|
|
42
|
+
'э': { key: 'э', code: 'Quote', keyCode: 222 },
|
|
43
|
+
'\\': { key: '\\', code: 'Backslash', keyCode: 220 },
|
|
44
|
+
// Четвертый ряд
|
|
45
|
+
'я': { key: 'я', code: 'KeyZ', keyCode: 90 },
|
|
46
|
+
'ч': { key: 'ч', code: 'KeyX', keyCode: 88 },
|
|
47
|
+
'с': { key: 'с', code: 'KeyC', keyCode: 67 },
|
|
48
|
+
'м': { key: 'м', code: 'KeyV', keyCode: 86 },
|
|
49
|
+
'и': { key: 'и', code: 'KeyB', keyCode: 66 },
|
|
50
|
+
'т': { key: 'т', code: 'KeyN', keyCode: 78 },
|
|
51
|
+
'ь': { key: 'ь', code: 'KeyM', keyCode: 77 },
|
|
52
|
+
'б': { key: 'б', code: 'Comma', keyCode: 188 },
|
|
53
|
+
'ю': { key: 'ю', code: 'Period', keyCode: 190 },
|
|
54
|
+
'.': { key: '.', code: 'Slash', keyCode: 191 },
|
|
55
|
+
// Заглавные буквы (с Shift)
|
|
56
|
+
'Й': { key: 'Й', code: 'KeyQ', keyCode: 81, shiftKey: true },
|
|
57
|
+
'Ц': { key: 'Ц', code: 'KeyW', keyCode: 87, shiftKey: true },
|
|
58
|
+
'У': { key: 'У', code: 'KeyE', keyCode: 69, shiftKey: true },
|
|
59
|
+
'К': { key: 'К', code: 'KeyR', keyCode: 82, shiftKey: true },
|
|
60
|
+
'Е': { key: 'Е', code: 'KeyT', keyCode: 84, shiftKey: true },
|
|
61
|
+
'Н': { key: 'Н', code: 'KeyY', keyCode: 89, shiftKey: true },
|
|
62
|
+
'Г': { key: 'Г', code: 'KeyU', keyCode: 85, shiftKey: true },
|
|
63
|
+
'Ш': { key: 'Ш', code: 'KeyI', keyCode: 73, shiftKey: true },
|
|
64
|
+
'Щ': { key: 'Щ', code: 'KeyO', keyCode: 79, shiftKey: true },
|
|
65
|
+
'З': { key: 'З', code: 'KeyP', keyCode: 80, shiftKey: true },
|
|
66
|
+
'Х': { key: 'Х', code: 'BracketLeft', keyCode: 219, shiftKey: true },
|
|
67
|
+
'Ъ': { key: 'Ъ', code: 'BracketRight', keyCode: 221, shiftKey: true },
|
|
68
|
+
'Ф': { key: 'Ф', code: 'KeyA', keyCode: 65, shiftKey: true },
|
|
69
|
+
'Ы': { key: 'Ы', code: 'KeyS', keyCode: 83, shiftKey: true },
|
|
70
|
+
'В': { key: 'В', code: 'KeyD', keyCode: 68, shiftKey: true },
|
|
71
|
+
'А': { key: 'А', code: 'KeyF', keyCode: 70, shiftKey: true },
|
|
72
|
+
'П': { key: 'П', code: 'KeyG', keyCode: 71, shiftKey: true },
|
|
73
|
+
'Р': { key: 'Р', code: 'KeyH', keyCode: 72, shiftKey: true },
|
|
74
|
+
'О': { key: 'О', code: 'KeyJ', keyCode: 74, shiftKey: true },
|
|
75
|
+
'Л': { key: 'Л', code: 'KeyK', keyCode: 75, shiftKey: true },
|
|
76
|
+
'Д': { key: 'Д', code: 'KeyL', keyCode: 76, shiftKey: true },
|
|
77
|
+
'Ж': { key: 'Ж', code: 'Semicolon', keyCode: 186, shiftKey: true },
|
|
78
|
+
'Э': { key: 'Э', code: 'Quote', keyCode: 222, shiftKey: true },
|
|
79
|
+
'Я': { key: 'Я', code: 'KeyZ', keyCode: 90, shiftKey: true },
|
|
80
|
+
'Ч': { key: 'Ч', code: 'KeyX', keyCode: 88, shiftKey: true },
|
|
81
|
+
'С': { key: 'С', code: 'KeyC', keyCode: 67, shiftKey: true },
|
|
82
|
+
'М': { key: 'М', code: 'KeyV', keyCode: 86, shiftKey: true },
|
|
83
|
+
'И': { key: 'И', code: 'KeyB', keyCode: 66, shiftKey: true },
|
|
84
|
+
'Т': { key: 'Т', code: 'KeyN', keyCode: 78, shiftKey: true },
|
|
85
|
+
'Ь': { key: 'Ь', code: 'KeyM', keyCode: 77, shiftKey: true },
|
|
86
|
+
'Б': { key: 'Б', code: 'Comma', keyCode: 188, shiftKey: true },
|
|
87
|
+
'Ю': { key: 'Ю', code: 'Period', keyCode: 190, shiftKey: true },
|
|
88
|
+
// Символы с Shift
|
|
89
|
+
'!': { key: '!', code: 'Digit1', keyCode: 49, shiftKey: true },
|
|
90
|
+
'"': { key: '"', code: 'Digit2', keyCode: 50, shiftKey: true },
|
|
91
|
+
'№': { key: '№', code: 'Digit3', keyCode: 51, shiftKey: true },
|
|
92
|
+
';': { key: ';', code: 'Digit4', keyCode: 52, shiftKey: true },
|
|
93
|
+
'%': { key: '%', code: 'Digit5', keyCode: 53, shiftKey: true },
|
|
94
|
+
':': { key: ':', code: 'Digit6', keyCode: 54, shiftKey: true },
|
|
95
|
+
'?': { key: '?', code: 'Digit7', keyCode: 55, shiftKey: true },
|
|
96
|
+
'*': { key: '*', code: 'Digit8', keyCode: 56, shiftKey: true },
|
|
97
|
+
'(': { key: '(', code: 'Digit9', keyCode: 57, shiftKey: true },
|
|
98
|
+
')': { key: ')', code: 'Digit0', keyCode: 48, shiftKey: true },
|
|
99
|
+
'_': { key: '_', code: 'Minus', keyCode: 189, shiftKey: true },
|
|
100
|
+
'+': { key: '+', code: 'Equal', keyCode: 187, shiftKey: true },
|
|
101
|
+
'/': { key: '/', code: 'Backslash', keyCode: 220, shiftKey: true },
|
|
102
|
+
',': { key: ',', code: 'Slash', keyCode: 191, shiftKey: true },
|
|
103
|
+
// Пробел
|
|
104
|
+
' ': { key: ' ', code: 'Space', keyCode: 32 },
|
|
105
|
+
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ua = void 0;
|
|
4
|
+
exports.ua = {
|
|
5
|
+
// Первый ряд (цифры)
|
|
6
|
+
'1': { key: '1', code: 'Digit1', keyCode: 49 },
|
|
7
|
+
'2': { key: '2', code: 'Digit2', keyCode: 50 },
|
|
8
|
+
'3': { key: '3', code: 'Digit3', keyCode: 51 },
|
|
9
|
+
'4': { key: '4', code: 'Digit4', keyCode: 52 },
|
|
10
|
+
'5': { key: '5', code: 'Digit5', keyCode: 53 },
|
|
11
|
+
'6': { key: '6', code: 'Digit6', keyCode: 54 },
|
|
12
|
+
'7': { key: '7', code: 'Digit7', keyCode: 55 },
|
|
13
|
+
'8': { key: '8', code: 'Digit8', keyCode: 56 },
|
|
14
|
+
'9': { key: '9', code: 'Digit9', keyCode: 57 },
|
|
15
|
+
'0': { key: '0', code: 'Digit0', keyCode: 48 },
|
|
16
|
+
'-': { key: '-', code: 'Minus', keyCode: 189 },
|
|
17
|
+
'=': { key: '=', code: 'Equal', keyCode: 187 },
|
|
18
|
+
// Второй ряд (украинская ЙЦУКЕН)
|
|
19
|
+
'й': { key: 'й', code: 'KeyQ', keyCode: 81 },
|
|
20
|
+
'ц': { key: 'ц', code: 'KeyW', keyCode: 87 },
|
|
21
|
+
'у': { key: 'у', code: 'KeyE', keyCode: 69 },
|
|
22
|
+
'к': { key: 'к', code: 'KeyR', keyCode: 82 },
|
|
23
|
+
'е': { key: 'е', code: 'KeyT', keyCode: 84 },
|
|
24
|
+
'н': { key: 'н', code: 'KeyY', keyCode: 89 },
|
|
25
|
+
'г': { key: 'г', code: 'KeyU', keyCode: 85 },
|
|
26
|
+
'ш': { key: 'ш', code: 'KeyI', keyCode: 73 },
|
|
27
|
+
'щ': { key: 'щ', code: 'KeyO', keyCode: 79 },
|
|
28
|
+
'з': { key: 'з', code: 'KeyP', keyCode: 80 },
|
|
29
|
+
'х': { key: 'х', code: 'BracketLeft', keyCode: 219 },
|
|
30
|
+
'ї': { key: 'ї', code: 'BracketRight', keyCode: 221 }, // украинская ї
|
|
31
|
+
// Третий ряд
|
|
32
|
+
'ф': { key: 'ф', code: 'KeyA', keyCode: 65 },
|
|
33
|
+
'і': { key: 'і', code: 'KeyS', keyCode: 83 }, // украинская і
|
|
34
|
+
'в': { key: 'в', code: 'KeyD', keyCode: 68 },
|
|
35
|
+
'а': { key: 'а', code: 'KeyF', keyCode: 70 },
|
|
36
|
+
'п': { key: 'п', code: 'KeyG', keyCode: 71 },
|
|
37
|
+
'р': { key: 'р', code: 'KeyH', keyCode: 72 },
|
|
38
|
+
'о': { key: 'о', code: 'KeyJ', keyCode: 74 },
|
|
39
|
+
'л': { key: 'л', code: 'KeyK', keyCode: 75 },
|
|
40
|
+
'д': { key: 'д', code: 'KeyL', keyCode: 76 },
|
|
41
|
+
'ж': { key: 'ж', code: 'Semicolon', keyCode: 186 },
|
|
42
|
+
'є': { key: 'є', code: 'Quote', keyCode: 222 }, // украинская є
|
|
43
|
+
'\\': { key: '\\', code: 'Backslash', keyCode: 220 },
|
|
44
|
+
// Четвертый ряд
|
|
45
|
+
'я': { key: 'я', code: 'KeyZ', keyCode: 90 },
|
|
46
|
+
'ч': { key: 'ч', code: 'KeyX', keyCode: 88 },
|
|
47
|
+
'с': { key: 'с', code: 'KeyC', keyCode: 67 },
|
|
48
|
+
'м': { key: 'м', code: 'KeyV', keyCode: 86 },
|
|
49
|
+
'и': { key: 'и', code: 'KeyB', keyCode: 66 },
|
|
50
|
+
'т': { key: 'т', code: 'KeyN', keyCode: 78 },
|
|
51
|
+
'ь': { key: 'ь', code: 'KeyM', keyCode: 77 },
|
|
52
|
+
'б': { key: 'б', code: 'Comma', keyCode: 188 },
|
|
53
|
+
'ю': { key: 'ю', code: 'Period', keyCode: 190 },
|
|
54
|
+
'.': { key: '.', code: 'Slash', keyCode: 191 },
|
|
55
|
+
// Заглавные буквы (с Shift)
|
|
56
|
+
'Й': { key: 'Й', code: 'KeyQ', keyCode: 81, shiftKey: true },
|
|
57
|
+
'Ц': { key: 'Ц', code: 'KeyW', keyCode: 87, shiftKey: true },
|
|
58
|
+
'У': { key: 'У', code: 'KeyE', keyCode: 69, shiftKey: true },
|
|
59
|
+
'К': { key: 'К', code: 'KeyR', keyCode: 82, shiftKey: true },
|
|
60
|
+
'Е': { key: 'Е', code: 'KeyT', keyCode: 84, shiftKey: true },
|
|
61
|
+
'Н': { key: 'Н', code: 'KeyY', keyCode: 89, shiftKey: true },
|
|
62
|
+
'Г': { key: 'Г', code: 'KeyU', keyCode: 85, shiftKey: true },
|
|
63
|
+
'Ш': { key: 'Ш', code: 'KeyI', keyCode: 73, shiftKey: true },
|
|
64
|
+
'Щ': { key: 'Щ', code: 'KeyO', keyCode: 79, shiftKey: true },
|
|
65
|
+
'З': { key: 'З', code: 'KeyP', keyCode: 80, shiftKey: true },
|
|
66
|
+
'Х': { key: 'Х', code: 'BracketLeft', keyCode: 219, shiftKey: true },
|
|
67
|
+
'Ї': { key: 'Ї', code: 'BracketRight', keyCode: 221, shiftKey: true },
|
|
68
|
+
'Ф': { key: 'Ф', code: 'KeyA', keyCode: 65, shiftKey: true },
|
|
69
|
+
'І': { key: 'І', code: 'KeyS', keyCode: 83, shiftKey: true },
|
|
70
|
+
'В': { key: 'В', code: 'KeyD', keyCode: 68, shiftKey: true },
|
|
71
|
+
'А': { key: 'А', code: 'KeyF', keyCode: 70, shiftKey: true },
|
|
72
|
+
'П': { key: 'П', code: 'KeyG', keyCode: 71, shiftKey: true },
|
|
73
|
+
'Р': { key: 'Р', code: 'KeyH', keyCode: 72, shiftKey: true },
|
|
74
|
+
'О': { key: 'О', code: 'KeyJ', keyCode: 74, shiftKey: true },
|
|
75
|
+
'Л': { key: 'Л', code: 'KeyK', keyCode: 75, shiftKey: true },
|
|
76
|
+
'Д': { key: 'Д', code: 'KeyL', keyCode: 76, shiftKey: true },
|
|
77
|
+
'Ж': { key: 'Ж', code: 'Semicolon', keyCode: 186, shiftKey: true },
|
|
78
|
+
'Є': { key: 'Є', code: 'Quote', keyCode: 222, shiftKey: true },
|
|
79
|
+
'Я': { key: 'Я', code: 'KeyZ', keyCode: 90, shiftKey: true },
|
|
80
|
+
'Ч': { key: 'Ч', code: 'KeyX', keyCode: 88, shiftKey: true },
|
|
81
|
+
'С': { key: 'С', code: 'KeyC', keyCode: 67, shiftKey: true },
|
|
82
|
+
'М': { key: 'М', code: 'KeyV', keyCode: 86, shiftKey: true },
|
|
83
|
+
'И': { key: 'И', code: 'KeyB', keyCode: 66, shiftKey: true },
|
|
84
|
+
'Т': { key: 'Т', code: 'KeyN', keyCode: 78, shiftKey: true },
|
|
85
|
+
'Ь': { key: 'Ь', code: 'KeyM', keyCode: 77, shiftKey: true },
|
|
86
|
+
'Б': { key: 'Б', code: 'Comma', keyCode: 188, shiftKey: true },
|
|
87
|
+
'Ю': { key: 'Ю', code: 'Period', keyCode: 190, shiftKey: true },
|
|
88
|
+
// Символы с Shift
|
|
89
|
+
'!': { key: '!', code: 'Digit1', keyCode: 49, shiftKey: true },
|
|
90
|
+
'@': { key: '@', code: 'Digit2', keyCode: 50, shiftKey: true },
|
|
91
|
+
'#': { key: '#', code: 'Digit3', keyCode: 51, shiftKey: true },
|
|
92
|
+
'$': { key: '$', code: 'Digit4', keyCode: 52, shiftKey: true },
|
|
93
|
+
'%': { key: '%', code: 'Digit5', keyCode: 53, shiftKey: true },
|
|
94
|
+
'^': { key: '^', code: 'Digit6', keyCode: 54, shiftKey: true },
|
|
95
|
+
'&': { key: '&', code: 'Digit7', keyCode: 55, shiftKey: true },
|
|
96
|
+
'*': { key: '*', code: 'Digit8', keyCode: 56, shiftKey: true },
|
|
97
|
+
'(': { key: '(', code: 'Digit9', keyCode: 57, shiftKey: true },
|
|
98
|
+
')': { key: ')', code: 'Digit0', keyCode: 48, shiftKey: true },
|
|
99
|
+
'_': { key: '_', code: 'Minus', keyCode: 189, shiftKey: true },
|
|
100
|
+
'+': { key: '+', code: 'Equal', keyCode: 187, shiftKey: true },
|
|
101
|
+
// Пробел
|
|
102
|
+
' ': { key: ' ', code: 'Space', keyCode: 32 },
|
|
103
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface KeyDefinition {
|
|
2
|
+
key?: string;
|
|
3
|
+
code: string;
|
|
4
|
+
keyCode: number;
|
|
5
|
+
shiftKey?: boolean;
|
|
6
|
+
location?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface Keymap {
|
|
9
|
+
[key: string]: KeyDefinition;
|
|
10
|
+
}
|
|
11
|
+
export interface InspectionResult {
|
|
12
|
+
char: string;
|
|
13
|
+
keyDefinition: KeyDefinition;
|
|
14
|
+
layouts: {
|
|
15
|
+
[layoutName: string]: string | null;
|
|
16
|
+
};
|
|
17
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "keymap-inspector",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Inspect keyboard events and characters across different layouts.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"keymap-inspector": "dist/cli/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"start": "ts-node src/index.ts",
|
|
13
|
+
"dev": "ts-node-dev --respawn src/index.ts",
|
|
14
|
+
"cli": "npm run build && node dist/cli/index.js",
|
|
15
|
+
"prepublishOnly": "npm run build",
|
|
16
|
+
"test": "echo \"No tests yet\" && exit 0"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/MikyViz/keymap-inspector.git"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"keymap",
|
|
24
|
+
"keyboard",
|
|
25
|
+
"layout",
|
|
26
|
+
"inspector",
|
|
27
|
+
"i18n"
|
|
28
|
+
],
|
|
29
|
+
"author": "vizenovsky@gmail.com",
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"files": [
|
|
32
|
+
"dist/**/*",
|
|
33
|
+
"README.md",
|
|
34
|
+
"LICENSE"
|
|
35
|
+
],
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/node": "^20.11.24",
|
|
38
|
+
"ts-node": "^10.9.2",
|
|
39
|
+
"ts-node-dev": "^2.0.0",
|
|
40
|
+
"typescript": "^5.3.3"
|
|
41
|
+
}
|
|
42
|
+
}
|