keyMap.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. 'use strict';
  2. var keyboard = require('../system/keyboard.js');
  3. /**
  4. * Mapping for a default US-104-QWERTY keyboard
  5. */ const defaultKeyMap = [
  6. // alphanumeric block - writing system
  7. ...'0123456789'.split('').map((c)=>({
  8. code: `Digit${c}`,
  9. key: c
  10. })),
  11. ...')!@#$%^&*('.split('').map((c, i)=>({
  12. code: `Digit${i}`,
  13. key: c,
  14. shiftKey: true
  15. })),
  16. ...'abcdefghijklmnopqrstuvwxyz'.split('').map((c)=>({
  17. code: `Key${c.toUpperCase()}`,
  18. key: c
  19. })),
  20. ...'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('').map((c)=>({
  21. code: `Key${c}`,
  22. key: c,
  23. shiftKey: true
  24. })),
  25. {
  26. code: 'BracketLeft',
  27. key: '['
  28. },
  29. {
  30. code: 'BracketLeft',
  31. key: '{',
  32. shiftKey: true
  33. },
  34. {
  35. code: 'BracketRight',
  36. key: ']'
  37. },
  38. {
  39. code: 'BracketRight',
  40. key: '}',
  41. shiftKey: true
  42. },
  43. // alphanumeric block - functional
  44. {
  45. code: 'Space',
  46. key: ' '
  47. },
  48. {
  49. code: 'AltLeft',
  50. key: 'Alt',
  51. location: keyboard.DOM_KEY_LOCATION.LEFT
  52. },
  53. {
  54. code: 'AltRight',
  55. key: 'Alt',
  56. location: keyboard.DOM_KEY_LOCATION.RIGHT
  57. },
  58. {
  59. code: 'ShiftLeft',
  60. key: 'Shift',
  61. location: keyboard.DOM_KEY_LOCATION.LEFT
  62. },
  63. {
  64. code: 'ShiftRight',
  65. key: 'Shift',
  66. location: keyboard.DOM_KEY_LOCATION.RIGHT
  67. },
  68. {
  69. code: 'ControlLeft',
  70. key: 'Control',
  71. location: keyboard.DOM_KEY_LOCATION.LEFT
  72. },
  73. {
  74. code: 'ControlRight',
  75. key: 'Control',
  76. location: keyboard.DOM_KEY_LOCATION.RIGHT
  77. },
  78. {
  79. code: 'MetaLeft',
  80. key: 'Meta',
  81. location: keyboard.DOM_KEY_LOCATION.LEFT
  82. },
  83. {
  84. code: 'MetaRight',
  85. key: 'Meta',
  86. location: keyboard.DOM_KEY_LOCATION.RIGHT
  87. },
  88. {
  89. code: 'OSLeft',
  90. key: 'OS',
  91. location: keyboard.DOM_KEY_LOCATION.LEFT
  92. },
  93. {
  94. code: 'OSRight',
  95. key: 'OS',
  96. location: keyboard.DOM_KEY_LOCATION.RIGHT
  97. },
  98. {
  99. code: 'ContextMenu',
  100. key: 'ContextMenu'
  101. },
  102. {
  103. code: 'Tab',
  104. key: 'Tab'
  105. },
  106. {
  107. code: 'CapsLock',
  108. key: 'CapsLock'
  109. },
  110. {
  111. code: 'Backspace',
  112. key: 'Backspace'
  113. },
  114. {
  115. code: 'Enter',
  116. key: 'Enter'
  117. },
  118. // function
  119. {
  120. code: 'Escape',
  121. key: 'Escape'
  122. },
  123. // arrows
  124. {
  125. code: 'ArrowUp',
  126. key: 'ArrowUp'
  127. },
  128. {
  129. code: 'ArrowDown',
  130. key: 'ArrowDown'
  131. },
  132. {
  133. code: 'ArrowLeft',
  134. key: 'ArrowLeft'
  135. },
  136. {
  137. code: 'ArrowRight',
  138. key: 'ArrowRight'
  139. },
  140. // control pad
  141. {
  142. code: 'Home',
  143. key: 'Home'
  144. },
  145. {
  146. code: 'End',
  147. key: 'End'
  148. },
  149. {
  150. code: 'Delete',
  151. key: 'Delete'
  152. },
  153. {
  154. code: 'PageUp',
  155. key: 'PageUp'
  156. },
  157. {
  158. code: 'PageDown',
  159. key: 'PageDown'
  160. },
  161. // Special keys that are not part of a default US-layout but included for specific behavior
  162. {
  163. code: 'Fn',
  164. key: 'Fn'
  165. },
  166. {
  167. code: 'Symbol',
  168. key: 'Symbol'
  169. },
  170. {
  171. code: 'AltRight',
  172. key: 'AltGraph'
  173. }
  174. ];
  175. exports.defaultKeyMap = defaultKeyMap;