/**
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */

const jsToDXKeyCodeMap = {
  8: 0x0E,
  9: 0x0F,
  13: 0x1C,
  16: 0x2A | 0x36, // javascript only detects 'Shift' so we OR lshift and rshift
  17: 0x1D | 0x9D, // CTRL
  18: 0x38 | 0xB8, // ALT
  19: 0xC5,
  20: 0x3A,
  27: 0x01,
  32: 0x39,
  33: 0xC9,   // also NUM_NORTH_EAST
  34: 0xD1,   // also NUM_SOUTH_EAST
  35: 0xCF,
  36: 0xC7,
  37: 0xCB,
  38: 0xC8,
  39: 0xCD,
  40: 0xD0,
  //PRINT_SCREEN: 44,
  45: 0xD2,
  46: 0xD3,
  //0 - 9
  48: 0x0B,
  49: 0x02,
  50: 0x03,
  51: 0x04,
  52: 0x05,
  53: 0x06,
  54: 0x07,
  55: 0x08,
  56: 0x09,
  57: 0x0A,
  //A - Z
  65: 0x1E,
  66: 0x30,
  67: 0x2E,
  68: 0x20,
  69: 0x12,
  70: 0x21,
  71: 0x22,
  72: 0x23,
  73: 0x17,
  74: 0x24,
  75: 0x25,
  76: 0x26,
  77: 0x32,
  78: 0x31,
  79: 0x18,
  80: 0x19,
  81: 0x10,
  82: 0x13,
  83: 0x1F,
  84: 0x14,
  85: 0x16,
  86: 0x2F,
  87: 0x11,
  88: 0x2D,
  89: 0x15,
  90: 0x2C,
  91: 0xDB,
  92: 0xDC,
  //CONTEXT_MENU: 93,
  // NUMPAD0-9
  96: 0x52,
  97: 0x4F,
  98: 0x50,
  99: 0x51,
  100: 0x4B,
  101: 0x4C,
  102: 0x4D,
  103: 0x47,
  104: 0x48,
  105: 0x49,
  // NUMPAD special keys
  106: 0x37,
  107: 0x4E,
  109: 0x4A,
  110: 0x53,
  111: 0xB5,
  // f1-f12
  112: 0x3B,
  113: 0x3C,
  114: 0x3D,
  115: 0x3E,
  116: 0x3F,
  117: 0x40,
  118: 0x41,
  119: 0x42,
  120: 0x43,
  121: 0x44,
  122: 0x57,
  123: 0x58,
  144: 0x45,
  145: 0x46,

  // OS-specific media keys like volume controls and browser controls.
  0xA6: 0xEA, // WEB_BACK
  0xA7: 0xE9, // WEB_FORWARD
  0xA8: 0xE7, // WEB_REFRESH
  0xA9: 0xE8, // WEB_STOP
  0xAA: 0xE5, // WEB_SEARCH
  0xAB: 0xE6, // WEB_FAVORITES
  0xAC: 0xB2, // WEB_HOME
  0xAD: 0xA0, // WEB_MUTE
  0xAE: 0xAE, // Volume Down key
  0xAF: 0xB0, // Volume Up key
  0xB0: 0x99, // Next Track key
  0xB1: 0x90, // Previous Track key
  0xB2: 0xA4, // Stop Media key
  0xB3: 0xA2, // Play/Pause Media key
  0xB4: 0xEC, // Start Mail key
  0xB5: 0xED, // Select Media key
  //    0xB6: ????, // Start Application 1 key
  //    0xB7: ????, // Start Application 2 key

  186: 0x27,
  189: 0x0C,
  187: 0x0D,
  188: 0x33,
  190: 0x34,
  191: 0x35,
  192: 0x29,
  222: 0x28,
  219: 0x1A,
  220: 0x2B,
  221: 0x1B,
};

export default jsToDXKeyCodeMap;
