Diffdown is a real-time collaborative Markdown editor/previewer built on the AT Protocol
diffdown.com
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5var base = {
6 8: "Backspace",
7 9: "Tab",
8 10: "Enter",
9 12: "NumLock",
10 13: "Enter",
11 16: "Shift",
12 17: "Control",
13 18: "Alt",
14 20: "CapsLock",
15 27: "Escape",
16 32: " ",
17 33: "PageUp",
18 34: "PageDown",
19 35: "End",
20 36: "Home",
21 37: "ArrowLeft",
22 38: "ArrowUp",
23 39: "ArrowRight",
24 40: "ArrowDown",
25 44: "PrintScreen",
26 45: "Insert",
27 46: "Delete",
28 59: ";",
29 61: "=",
30 91: "Meta",
31 92: "Meta",
32 106: "*",
33 107: "+",
34 108: ",",
35 109: "-",
36 110: ".",
37 111: "/",
38 144: "NumLock",
39 145: "ScrollLock",
40 160: "Shift",
41 161: "Shift",
42 162: "Control",
43 163: "Control",
44 164: "Alt",
45 165: "Alt",
46 173: "-",
47 186: ";",
48 187: "=",
49 188: ",",
50 189: "-",
51 190: ".",
52 191: "/",
53 192: "`",
54 219: "[",
55 220: "\\",
56 221: "]",
57 222: "'"
58};
59
60var shift = {
61 48: ")",
62 49: "!",
63 50: "@",
64 51: "#",
65 52: "$",
66 53: "%",
67 54: "^",
68 55: "&",
69 56: "*",
70 57: "(",
71 59: ":",
72 61: "+",
73 173: "_",
74 186: ":",
75 187: "+",
76 188: "<",
77 189: "_",
78 190: ">",
79 191: "?",
80 192: "~",
81 219: "{",
82 220: "|",
83 221: "}",
84 222: "\""
85};
86
87var mac = typeof navigator != "undefined" && /Mac/.test(navigator.platform);
88var ie = typeof navigator != "undefined" && /MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);
89
90// Fill in the digit keys
91for (var i = 0; i < 10; i++) base[48 + i] = base[96 + i] = String(i);
92
93// The function keys
94for (var i = 1; i <= 24; i++) base[i + 111] = "F" + i;
95
96// And the alphabetic keys
97for (var i = 65; i <= 90; i++) {
98 base[i] = String.fromCharCode(i + 32);
99 shift[i] = String.fromCharCode(i);
100}
101
102// For each code that doesn't have a shift-equivalent, copy the base name
103for (var code in base) if (!shift.hasOwnProperty(code)) shift[code] = base[code];
104
105function keyName(event) {
106 // On macOS, keys held with Shift and Cmd don't reflect the effect of Shift in `.key`.
107 // On IE, shift effect is never included in `.key`.
108 var ignoreKey = mac && event.metaKey && event.shiftKey && !event.ctrlKey && !event.altKey ||
109 ie && event.shiftKey && event.key && event.key.length == 1 ||
110 event.key == "Unidentified";
111 var name = (!ignoreKey && event.key) ||
112 (event.shiftKey ? shift : base)[event.keyCode] ||
113 event.key || "Unidentified";
114 // Edge sometimes produces wrong names (Issue #3)
115 if (name == "Esc") name = "Escape";
116 if (name == "Del") name = "Delete";
117 // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/
118 if (name == "Left") name = "ArrowLeft";
119 if (name == "Up") name = "ArrowUp";
120 if (name == "Right") name = "ArrowRight";
121 if (name == "Down") name = "ArrowDown";
122 return name
123}
124
125exports.base = base;
126exports.keyName = keyName;
127exports.shift = shift;