UNPKG

1.29 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.registerShortcuts = registerShortcuts;
7
8function registerShortcuts(runCommand) {
9 window.addEventListener('keydown', handleWindowKeyDown);
10
11 function run(e, command) {
12 e.preventDefault();
13 runCommand(command);
14 }
15
16 function handleWindowKeyDown(e) {
17 if (isEditing()) {
18 return;
19 }
20
21 var keyChar = String.fromCharCode(e.keyCode);
22 var metaKey = e.metaKey || e.ctrlKey;
23
24 if (keyChar === 'P' && metaKey) {
25 run(e, 'searchFixtures');
26 } else if (keyChar === 'L' && metaKey && e.shiftKey) {
27 run(e, 'toggleFixtureList');
28 } else if (keyChar === 'K' && metaKey && e.shiftKey) {
29 run(e, 'toggleControlPanel');
30 } else if (keyChar === 'F' && metaKey && e.shiftKey) {
31 run(e, 'goFullScreen');
32 } else if (keyChar === 'E' && metaKey && e.shiftKey) {
33 run(e, 'editFixture');
34 }
35 }
36
37 return function () {
38 window.removeEventListener('keydown', handleWindowKeyDown);
39 };
40}
41
42function isEditing() {
43 var activeElement = document.activeElement;
44 return activeElement && isInputTag(activeElement.tagName);
45}
46
47function isInputTag(tagName) {
48 var inputTags = ['input', 'textarea', 'select'];
49 return inputTags.includes(tagName.toLowerCase());
50}
\No newline at end of file