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.
		
		
		
		
		
			
		
			
				
					121 lines
				
				2.7 KiB
			
		
		
			
		
	
	
					121 lines
				
				2.7 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								export 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: "'"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export 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]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export 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
							 | 
						||
| 
								 | 
							
								}
							 |