You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					129 lines
				
				2.8 KiB
			
		
		
			
		
	
	
					129 lines
				
				2.8 KiB
			| 
											3 years ago
										 | 'use strict'; | ||
|  | 
 | ||
|  | Object.defineProperty(exports, '__esModule', { value: true }); | ||
|  | 
 | ||
|  | var base = { | ||
|  |   8: "Backspace", | ||
|  |   9: "Tab", | ||
|  |   10: "Enter", | ||
|  |   12: "NumLock", | ||
|  |   13: "Enter", | ||
|  |   16: "Shift", | ||
|  |   17: "Control", | ||
|  |   18: "Alt", | ||
|  |   20: "CapsLock", | ||
|  |   27: "Escape", | ||
|  |   32: " ", | ||
|  |   33: "PageUp", | ||
|  |   34: "PageDown", | ||
|  |   35: "End", | ||
|  |   36: "Home", | ||
|  |   37: "ArrowLeft", | ||
|  |   38: "ArrowUp", | ||
|  |   39: "ArrowRight", | ||
|  |   40: "ArrowDown", | ||
|  |   44: "PrintScreen", | ||
|  |   45: "Insert", | ||
|  |   46: "Delete", | ||
|  |   59: ";", | ||
|  |   61: "=", | ||
|  |   91: "Meta", | ||
|  |   92: "Meta", | ||
|  |   106: "*", | ||
|  |   107: "+", | ||
|  |   108: ",", | ||
|  |   109: "-", | ||
|  |   110: ".", | ||
|  |   111: "/", | ||
|  |   144: "NumLock", | ||
|  |   145: "ScrollLock", | ||
|  |   160: "Shift", | ||
|  |   161: "Shift", | ||
|  |   162: "Control", | ||
|  |   163: "Control", | ||
|  |   164: "Alt", | ||
|  |   165: "Alt", | ||
|  |   173: "-", | ||
|  |   186: ";", | ||
|  |   187: "=", | ||
|  |   188: ",", | ||
|  |   189: "-", | ||
|  |   190: ".", | ||
|  |   191: "/", | ||
|  |   192: "`", | ||
|  |   219: "[", | ||
|  |   220: "\\", | ||
|  |   221: "]", | ||
|  |   222: "'" | ||
|  | }; | ||
|  | 
 | ||
|  | var shift = { | ||
|  |   48: ")", | ||
|  |   49: "!", | ||
|  |   50: "@", | ||
|  |   51: "#", | ||
|  |   52: "$", | ||
|  |   53: "%", | ||
|  |   54: "^", | ||
|  |   55: "&", | ||
|  |   56: "*", | ||
|  |   57: "(", | ||
|  |   59: ":", | ||
|  |   61: "+", | ||
|  |   173: "_", | ||
|  |   186: ":", | ||
|  |   187: "+", | ||
|  |   188: "<", | ||
|  |   189: "_", | ||
|  |   190: ">", | ||
|  |   191: "?", | ||
|  |   192: "~", | ||
|  |   219: "{", | ||
|  |   220: "|", | ||
|  |   221: "}", | ||
|  |   222: "\"" | ||
|  | }; | ||
|  | 
 | ||
|  | var chrome = typeof navigator != "undefined" && /Chrome\/(\d+)/.exec(navigator.userAgent); | ||
|  | var gecko = typeof navigator != "undefined" && /Gecko\/\d+/.test(navigator.userAgent); | ||
|  | var mac = typeof navigator != "undefined" && /Mac/.test(navigator.platform); | ||
|  | var ie = typeof navigator != "undefined" && /MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent); | ||
|  | var brokenModifierNames = mac || chrome && +chrome[1] < 57; | ||
|  | 
 | ||
|  | // Fill in the digit keys
 | ||
|  | for (var i = 0; i < 10; i++) base[48 + i] = base[96 + i] = String(i); | ||
|  | 
 | ||
|  | // The function keys
 | ||
|  | for (var i = 1; i <= 24; i++) base[i + 111] = "F" + i; | ||
|  | 
 | ||
|  | // And the alphabetic keys
 | ||
|  | for (var i = 65; i <= 90; i++) { | ||
|  |   base[i] = String.fromCharCode(i + 32); | ||
|  |   shift[i] = String.fromCharCode(i); | ||
|  | } | ||
|  | 
 | ||
|  | // For each code that doesn't have a shift-equivalent, copy the base name
 | ||
|  | for (var code in base) if (!shift.hasOwnProperty(code)) shift[code] = base[code]; | ||
|  | 
 | ||
|  | function keyName(event) { | ||
|  |   var ignoreKey = brokenModifierNames && (event.ctrlKey || event.altKey || event.metaKey) || | ||
|  |     ie && event.shiftKey && event.key && event.key.length == 1 || | ||
|  |     event.key == "Unidentified"; | ||
|  |   var name = (!ignoreKey && event.key) || | ||
|  |     (event.shiftKey ? shift : base)[event.keyCode] || | ||
|  |     event.key || "Unidentified"; | ||
|  |   // Edge sometimes produces wrong names (Issue #3)
 | ||
|  |   if (name == "Esc") name = "Escape"; | ||
|  |   if (name == "Del") name = "Delete"; | ||
|  |   // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/
 | ||
|  |   if (name == "Left") name = "ArrowLeft"; | ||
|  |   if (name == "Up") name = "ArrowUp"; | ||
|  |   if (name == "Right") name = "ArrowRight"; | ||
|  |   if (name == "Down") name = "ArrowDown"; | ||
|  |   return name | ||
|  | } | ||
|  | 
 | ||
|  | exports.base = base; | ||
|  | exports.keyName = keyName; | ||
|  | exports.shift = shift; |