@codingame/monaco-vscode-keybindings-service-override 4.1.0 → 4.1.1

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.
Files changed (63) hide show
  1. package/keybindings.js +6 -6
  2. package/package.json +9 -9
  3. package/vscode/src/vs/platform/keyboardLayout/common/keyboardConfig.js +50 -0
  4. package/vscode/src/vs/platform/keyboardLayout/common/keyboardMapper.js +24 -0
  5. package/vscode/src/vs/workbench/contrib/commands/common/commands.contribution.js +146 -0
  6. package/vscode/src/vs/workbench/contrib/keybindings/browser/keybindings.contribution.js +29 -0
  7. package/vscode/src/vs/workbench/contrib/preferences/browser/keybindingsEditorContribution.js +250 -0
  8. package/vscode/src/vs/workbench/contrib/preferences/common/smartSnippetInserter.js +126 -0
  9. package/vscode/src/vs/workbench/services/actions/common/menusExtensionPoint.js +1597 -0
  10. package/vscode/src/vs/workbench/services/commands/common/commandService.js +79 -0
  11. package/vscode/src/vs/workbench/services/keybinding/browser/keybindingService.js +947 -0
  12. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayoutService.js +502 -0
  13. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/_.contribution.js +14 -0
  14. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/cz.win.js +163 -0
  15. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de-swiss.win.js +163 -0
  16. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.darwin.js +126 -0
  17. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.linux.js +181 -0
  18. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/de.win.js +163 -0
  19. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/dk.win.js +163 -0
  20. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/dvorak.darwin.js +126 -0
  21. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-belgian.win.js +163 -0
  22. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-ext.darwin.js +126 -0
  23. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-in.win.js +163 -0
  24. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-intl.darwin.js +126 -0
  25. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-intl.win.js +163 -0
  26. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-uk.darwin.js +126 -0
  27. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en-uk.win.js +163 -0
  28. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.darwin.js +134 -0
  29. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.linux.js +183 -0
  30. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/en.win.js +168 -0
  31. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es-latin.win.js +163 -0
  32. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.darwin.js +126 -0
  33. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.linux.js +181 -0
  34. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/es.win.js +163 -0
  35. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.darwin.js +126 -0
  36. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.linux.js +181 -0
  37. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/fr.win.js +163 -0
  38. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/hu.win.js +163 -0
  39. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/it.darwin.js +126 -0
  40. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/it.win.js +163 -0
  41. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/jp-roman.darwin.js +126 -0
  42. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/jp.darwin.js +126 -0
  43. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ko.darwin.js +126 -0
  44. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.darwin.js +17 -0
  45. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.linux.js +6 -0
  46. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/layout.contribution.win.js +23 -0
  47. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/no.win.js +163 -0
  48. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pl.darwin.js +126 -0
  49. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pl.win.js +163 -0
  50. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt-br.win.js +163 -0
  51. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt.darwin.js +126 -0
  52. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/pt.win.js +163 -0
  53. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.darwin.js +126 -0
  54. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.linux.js +181 -0
  55. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/ru.win.js +163 -0
  56. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/sv.win.js +165 -0
  57. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/thai.win.js +163 -0
  58. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/tr.win.js +163 -0
  59. package/vscode/src/vs/workbench/services/keybinding/browser/keyboardLayouts/zh-hans.darwin.js +126 -0
  60. package/vscode/src/vs/workbench/services/keybinding/common/keybindingIO.js +74 -0
  61. package/vscode/src/vs/workbench/services/keybinding/common/keymapInfo.js +110 -0
  62. package/vscode/src/vs/workbench/services/keybinding/common/macLinuxKeyboardMapper.js +888 -0
  63. package/vscode/src/vs/workbench/services/keybinding/common/windowsKeyboardMapper.js +352 -0
@@ -0,0 +1,352 @@
1
+ import { KeyCodeUtils, IMMUTABLE_CODE_TO_KEY_CODE, ScanCodeUtils, NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE } from 'vscode/vscode/vs/base/common/keyCodes';
2
+ import { ScanCodeChord, KeyCodeChord } from 'vscode/vscode/vs/base/common/keybindings';
3
+ import { UILabelProvider } from 'vscode/vscode/vs/base/common/keybindingLabels';
4
+ import { BaseResolvedKeybinding } from 'vscode/vscode/vs/platform/keybinding/common/baseResolvedKeybinding';
5
+ import { toEmptyArrayIfContainsNull } from 'vscode/vscode/vs/platform/keybinding/common/resolvedKeybindingItem';
6
+
7
+ class WindowsNativeResolvedKeybinding extends BaseResolvedKeybinding {
8
+ constructor(mapper, chords) {
9
+ super(1 , chords);
10
+ this._mapper = mapper;
11
+ }
12
+ _getLabel(chord) {
13
+ if (chord.isDuplicateModifierCase()) {
14
+ return '';
15
+ }
16
+ return this._mapper.getUILabelForKeyCode(chord.keyCode);
17
+ }
18
+ _getUSLabelForKeybinding(chord) {
19
+ if (chord.isDuplicateModifierCase()) {
20
+ return '';
21
+ }
22
+ return ( KeyCodeUtils.toString(chord.keyCode));
23
+ }
24
+ getUSLabel() {
25
+ return UILabelProvider.toLabel(this._os, this._chords, (keybinding) => this._getUSLabelForKeybinding(keybinding));
26
+ }
27
+ _getAriaLabel(chord) {
28
+ if (chord.isDuplicateModifierCase()) {
29
+ return '';
30
+ }
31
+ return this._mapper.getAriaLabelForKeyCode(chord.keyCode);
32
+ }
33
+ _getElectronAccelerator(chord) {
34
+ return this._mapper.getElectronAcceleratorForKeyBinding(chord);
35
+ }
36
+ _getUserSettingsLabel(chord) {
37
+ if (chord.isDuplicateModifierCase()) {
38
+ return '';
39
+ }
40
+ const result = this._mapper.getUserSettingsLabelForKeyCode(chord.keyCode);
41
+ return (result ? result.toLowerCase() : result);
42
+ }
43
+ _isWYSIWYG(chord) {
44
+ return this.__isWYSIWYG(chord.keyCode);
45
+ }
46
+ __isWYSIWYG(keyCode) {
47
+ if (keyCode === 15
48
+ || keyCode === 16
49
+ || keyCode === 17
50
+ || keyCode === 18 ) {
51
+ return true;
52
+ }
53
+ const ariaLabel = this._mapper.getAriaLabelForKeyCode(keyCode);
54
+ const userSettingsLabel = this._mapper.getUserSettingsLabelForKeyCode(keyCode);
55
+ return (ariaLabel === userSettingsLabel);
56
+ }
57
+ _getChordDispatch(chord) {
58
+ if (chord.isModifierKey()) {
59
+ return null;
60
+ }
61
+ let result = '';
62
+ if (chord.ctrlKey) {
63
+ result += 'ctrl+';
64
+ }
65
+ if (chord.shiftKey) {
66
+ result += 'shift+';
67
+ }
68
+ if (chord.altKey) {
69
+ result += 'alt+';
70
+ }
71
+ if (chord.metaKey) {
72
+ result += 'meta+';
73
+ }
74
+ result += ( KeyCodeUtils.toString(chord.keyCode));
75
+ return result;
76
+ }
77
+ _getSingleModifierChordDispatch(chord) {
78
+ if (chord.keyCode === 5 && !chord.shiftKey && !chord.altKey && !chord.metaKey) {
79
+ return 'ctrl';
80
+ }
81
+ if (chord.keyCode === 4 && !chord.ctrlKey && !chord.altKey && !chord.metaKey) {
82
+ return 'shift';
83
+ }
84
+ if (chord.keyCode === 6 && !chord.ctrlKey && !chord.shiftKey && !chord.metaKey) {
85
+ return 'alt';
86
+ }
87
+ if (chord.keyCode === 57 && !chord.ctrlKey && !chord.shiftKey && !chord.altKey) {
88
+ return 'meta';
89
+ }
90
+ return null;
91
+ }
92
+ static getProducedCharCode(chord, mapping) {
93
+ if (!mapping) {
94
+ return null;
95
+ }
96
+ if (chord.ctrlKey && chord.shiftKey && chord.altKey) {
97
+ return mapping.withShiftAltGr;
98
+ }
99
+ if (chord.ctrlKey && chord.altKey) {
100
+ return mapping.withAltGr;
101
+ }
102
+ if (chord.shiftKey) {
103
+ return mapping.withShift;
104
+ }
105
+ return mapping.value;
106
+ }
107
+ static getProducedChar(chord, mapping) {
108
+ const char = this.getProducedCharCode(chord, mapping);
109
+ if (char === null || char.length === 0) {
110
+ return ' --- ';
111
+ }
112
+ return ' ' + char + ' ';
113
+ }
114
+ }
115
+ class WindowsKeyboardMapper {
116
+ constructor(_isUSStandard, rawMappings, _mapAltGrToCtrlAlt) {
117
+ this._isUSStandard = _isUSStandard;
118
+ this._mapAltGrToCtrlAlt = _mapAltGrToCtrlAlt;
119
+ this._keyCodeToLabel = [];
120
+ this._scanCodeToKeyCode = [];
121
+ this._keyCodeToLabel = [];
122
+ this._keyCodeExists = [];
123
+ this._keyCodeToLabel[0 ] = ( KeyCodeUtils.toString(0 ));
124
+ for (let scanCode = 0 ; scanCode < 193 ; scanCode++) {
125
+ const immutableKeyCode = IMMUTABLE_CODE_TO_KEY_CODE[scanCode];
126
+ if (immutableKeyCode !== -1 ) {
127
+ this._scanCodeToKeyCode[scanCode] = immutableKeyCode;
128
+ this._keyCodeToLabel[immutableKeyCode] = ( KeyCodeUtils.toString(immutableKeyCode));
129
+ this._keyCodeExists[immutableKeyCode] = true;
130
+ }
131
+ }
132
+ const producesLetter = [];
133
+ let producesLetters = false;
134
+ this._codeInfo = [];
135
+ for (const strCode in rawMappings) {
136
+ if (rawMappings.hasOwnProperty(strCode)) {
137
+ const scanCode = ScanCodeUtils.toEnum(strCode);
138
+ if (scanCode === 0 ) {
139
+ continue;
140
+ }
141
+ const rawMapping = rawMappings[strCode];
142
+ const immutableKeyCode = IMMUTABLE_CODE_TO_KEY_CODE[scanCode];
143
+ if (immutableKeyCode !== -1 ) {
144
+ const keyCode = NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE[rawMapping.vkey] || 0 ;
145
+ if (keyCode === 0 || immutableKeyCode === keyCode) {
146
+ continue;
147
+ }
148
+ if (scanCode !== 134 ) {
149
+ continue;
150
+ }
151
+ }
152
+ const value = rawMapping.value;
153
+ const withShift = rawMapping.withShift;
154
+ const withAltGr = rawMapping.withAltGr;
155
+ const withShiftAltGr = rawMapping.withShiftAltGr;
156
+ const keyCode = NATIVE_WINDOWS_KEY_CODE_TO_KEY_CODE[rawMapping.vkey] || 0 ;
157
+ const mapping = {
158
+ scanCode: scanCode,
159
+ keyCode: keyCode,
160
+ value: value,
161
+ withShift: withShift,
162
+ withAltGr: withAltGr,
163
+ withShiftAltGr: withShiftAltGr,
164
+ };
165
+ this._codeInfo[scanCode] = mapping;
166
+ this._scanCodeToKeyCode[scanCode] = keyCode;
167
+ if (keyCode === 0 ) {
168
+ continue;
169
+ }
170
+ this._keyCodeExists[keyCode] = true;
171
+ if (value.length === 0) {
172
+ this._keyCodeToLabel[keyCode] = null;
173
+ }
174
+ else if (value.length > 1) {
175
+ this._keyCodeToLabel[keyCode] = value;
176
+ }
177
+ else {
178
+ const charCode = value.charCodeAt(0);
179
+ if (charCode >= 97 && charCode <= 122 ) {
180
+ const upperCaseValue = 65 + ((charCode - 97) );
181
+ producesLetter[upperCaseValue] = true;
182
+ producesLetters = true;
183
+ this._keyCodeToLabel[keyCode] = String.fromCharCode(65 + ((charCode - 97) ));
184
+ }
185
+ else if (charCode >= 65 && charCode <= 90 ) {
186
+ producesLetter[charCode] = true;
187
+ producesLetters = true;
188
+ this._keyCodeToLabel[keyCode] = value;
189
+ }
190
+ else {
191
+ this._keyCodeToLabel[keyCode] = value;
192
+ }
193
+ }
194
+ }
195
+ }
196
+ const _registerLetterIfMissing = (charCode, keyCode) => {
197
+ if (!producesLetter[charCode]) {
198
+ this._keyCodeToLabel[keyCode] = String.fromCharCode(charCode);
199
+ }
200
+ };
201
+ _registerLetterIfMissing(65 , 31 );
202
+ _registerLetterIfMissing(66 , 32 );
203
+ _registerLetterIfMissing(67 , 33 );
204
+ _registerLetterIfMissing(68 , 34 );
205
+ _registerLetterIfMissing(69 , 35 );
206
+ _registerLetterIfMissing(70 , 36 );
207
+ _registerLetterIfMissing(71 , 37 );
208
+ _registerLetterIfMissing(72 , 38 );
209
+ _registerLetterIfMissing(73 , 39 );
210
+ _registerLetterIfMissing(74 , 40 );
211
+ _registerLetterIfMissing(75 , 41 );
212
+ _registerLetterIfMissing(76 , 42 );
213
+ _registerLetterIfMissing(77 , 43 );
214
+ _registerLetterIfMissing(78 , 44 );
215
+ _registerLetterIfMissing(79 , 45 );
216
+ _registerLetterIfMissing(80 , 46 );
217
+ _registerLetterIfMissing(81 , 47 );
218
+ _registerLetterIfMissing(82 , 48 );
219
+ _registerLetterIfMissing(83 , 49 );
220
+ _registerLetterIfMissing(84 , 50 );
221
+ _registerLetterIfMissing(85 , 51 );
222
+ _registerLetterIfMissing(86 , 52 );
223
+ _registerLetterIfMissing(87 , 53 );
224
+ _registerLetterIfMissing(88 , 54 );
225
+ _registerLetterIfMissing(89 , 55 );
226
+ _registerLetterIfMissing(90 , 56 );
227
+ if (!producesLetters) {
228
+ const _registerLabel = (keyCode, charCode) => {
229
+ this._keyCodeToLabel[keyCode] = String.fromCharCode(charCode);
230
+ };
231
+ _registerLabel(85 , 59 );
232
+ _registerLabel(86 , 61 );
233
+ _registerLabel(87 , 44 );
234
+ _registerLabel(88 , 45 );
235
+ _registerLabel(89 , 46 );
236
+ _registerLabel(90 , 47 );
237
+ _registerLabel(91 , 96 );
238
+ _registerLabel(92 , 91 );
239
+ _registerLabel(93 , 92 );
240
+ _registerLabel(94 , 93 );
241
+ _registerLabel(95 , 39 );
242
+ }
243
+ }
244
+ dumpDebugInfo() {
245
+ const result = [];
246
+ const immutableSamples = [
247
+ 88 ,
248
+ 104
249
+ ];
250
+ let cnt = 0;
251
+ result.push(`-----------------------------------------------------------------------------------------------------------------------------------------`);
252
+ for (let scanCode = 0 ; scanCode < 193 ; scanCode++) {
253
+ if (IMMUTABLE_CODE_TO_KEY_CODE[scanCode] !== -1 ) {
254
+ if (immutableSamples.indexOf(scanCode) === -1) {
255
+ continue;
256
+ }
257
+ }
258
+ if (cnt % 6 === 0) {
259
+ result.push(`| HW Code combination | Key | KeyCode combination | UI label | User settings | WYSIWYG |`);
260
+ result.push(`-----------------------------------------------------------------------------------------------------------------------------------------`);
261
+ }
262
+ cnt++;
263
+ const mapping = this._codeInfo[scanCode];
264
+ const strCode = ( ScanCodeUtils.toString(scanCode));
265
+ const mods = [0b000, 0b010, 0b101, 0b111];
266
+ for (const mod of mods) {
267
+ const ctrlKey = (mod & 0b001) ? true : false;
268
+ const shiftKey = (mod & 0b010) ? true : false;
269
+ const altKey = (mod & 0b100) ? true : false;
270
+ const scanCodeChord = ( new ScanCodeChord(ctrlKey, shiftKey, altKey, false, scanCode));
271
+ const keyCodeChord = this._resolveChord(scanCodeChord);
272
+ const strKeyCode = (keyCodeChord ? ( KeyCodeUtils.toString(keyCodeChord.keyCode)) : null);
273
+ const resolvedKb = (keyCodeChord ? ( new WindowsNativeResolvedKeybinding(this, [keyCodeChord])) : null);
274
+ const outScanCode = `${ctrlKey ? 'Ctrl+' : ''}${shiftKey ? 'Shift+' : ''}${altKey ? 'Alt+' : ''}${strCode}`;
275
+ const ariaLabel = (resolvedKb ? resolvedKb.getAriaLabel() : null);
276
+ const outUILabel = (ariaLabel ? ariaLabel.replace(/Control\+/, 'Ctrl+') : null);
277
+ const outUserSettings = (resolvedKb ? resolvedKb.getUserSettingsLabel() : null);
278
+ const outKey = WindowsNativeResolvedKeybinding.getProducedChar(scanCodeChord, mapping);
279
+ const outKb = (strKeyCode ? `${ctrlKey ? 'Ctrl+' : ''}${shiftKey ? 'Shift+' : ''}${altKey ? 'Alt+' : ''}${strKeyCode}` : null);
280
+ const isWYSIWYG = (resolvedKb ? resolvedKb.isWYSIWYG() : false);
281
+ const outWYSIWYG = (isWYSIWYG ? ' ' : ' NO ');
282
+ result.push(`| ${this._leftPad(outScanCode, 30)} | ${outKey} | ${this._leftPad(outKb, 25)} | ${this._leftPad(outUILabel, 25)} | ${this._leftPad(outUserSettings, 25)} | ${outWYSIWYG} |`);
283
+ }
284
+ result.push(`-----------------------------------------------------------------------------------------------------------------------------------------`);
285
+ }
286
+ return result.join('\n');
287
+ }
288
+ _leftPad(str, cnt) {
289
+ if (str === null) {
290
+ str = 'null';
291
+ }
292
+ while (str.length < cnt) {
293
+ str = ' ' + str;
294
+ }
295
+ return str;
296
+ }
297
+ getUILabelForKeyCode(keyCode) {
298
+ return this._getLabelForKeyCode(keyCode);
299
+ }
300
+ getAriaLabelForKeyCode(keyCode) {
301
+ return this._getLabelForKeyCode(keyCode);
302
+ }
303
+ getUserSettingsLabelForKeyCode(keyCode) {
304
+ if (this._isUSStandard) {
305
+ return KeyCodeUtils.toUserSettingsUS(keyCode);
306
+ }
307
+ return KeyCodeUtils.toUserSettingsGeneral(keyCode);
308
+ }
309
+ getElectronAcceleratorForKeyBinding(chord) {
310
+ return KeyCodeUtils.toElectronAccelerator(chord.keyCode);
311
+ }
312
+ _getLabelForKeyCode(keyCode) {
313
+ return this._keyCodeToLabel[keyCode] || ( KeyCodeUtils.toString(0 ));
314
+ }
315
+ resolveKeyboardEvent(keyboardEvent) {
316
+ const ctrlKey = keyboardEvent.ctrlKey || (this._mapAltGrToCtrlAlt && keyboardEvent.altGraphKey);
317
+ const altKey = keyboardEvent.altKey || (this._mapAltGrToCtrlAlt && keyboardEvent.altGraphKey);
318
+ const chord = ( new KeyCodeChord(
319
+ ctrlKey,
320
+ keyboardEvent.shiftKey,
321
+ altKey,
322
+ keyboardEvent.metaKey,
323
+ keyboardEvent.keyCode
324
+ ));
325
+ return ( new WindowsNativeResolvedKeybinding(this, [chord]));
326
+ }
327
+ _resolveChord(chord) {
328
+ if (!chord) {
329
+ return null;
330
+ }
331
+ if (chord instanceof KeyCodeChord) {
332
+ if (!this._keyCodeExists[chord.keyCode]) {
333
+ return null;
334
+ }
335
+ return chord;
336
+ }
337
+ const keyCode = this._scanCodeToKeyCode[chord.scanCode] || 0 ;
338
+ if (keyCode === 0 || !this._keyCodeExists[keyCode]) {
339
+ return null;
340
+ }
341
+ return ( new KeyCodeChord(chord.ctrlKey, chord.shiftKey, chord.altKey, chord.metaKey, keyCode));
342
+ }
343
+ resolveKeybinding(keybinding) {
344
+ const chords = toEmptyArrayIfContainsNull(( keybinding.chords.map(chord => this._resolveChord(chord))));
345
+ if (chords.length > 0) {
346
+ return [( new WindowsNativeResolvedKeybinding(this, chords))];
347
+ }
348
+ return [];
349
+ }
350
+ }
351
+
352
+ export { WindowsKeyboardMapper, WindowsNativeResolvedKeybinding };