1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.registerShortcuts = registerShortcuts;
|
7 |
|
8 | function 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 |
|
42 | function isEditing() {
|
43 | var activeElement = document.activeElement;
|
44 | return activeElement && isInputTag(activeElement.tagName);
|
45 | }
|
46 |
|
47 | function isInputTag(tagName) {
|
48 | var inputTags = ['input', 'textarea', 'select'];
|
49 | return inputTags.includes(tagName.toLowerCase());
|
50 | } |
\ | No newline at end of file |