UNPKG

angular-onscreen-material-keyboard

Version:

This package is forked from ngx-material-keyboard with bug fixes and additional features

1,237 lines 883 kB
/* * README from http://www.greywyvern.com/code/javascript/keyboard.js * ------ * * - Lay out each keyboard in rows of sub-arrays. Each sub-array * represents one key. * * - Each sub-array consists of four slots described as follows: * example: ["a", "A", "\u00e1", "\u00c1"] * * a) Normal character * A) Character + Shift/Caps * \u00e1) Character + Alt/AltGr/AltLk * \u00c1) Character + Shift/Caps + Alt/AltGr/AltLk * * You may include sub-arrays which are fewer than four slots. * In these cases, the missing slots will be blanked when the * corresponding modifier key (Shift or AltGr) is pressed. * * - If the second slot of a sub-array matches one of the following * strings: * "Tab", "Caps", "Shift", "Enter", "Bksp", * "Alt" OR "AltGr", "AltLk" * then the function of the key will be the following, * respectively: * - Insert a tab * - Toggle Caps Lock (technically a Shift Lock) * - Next entered character will be the shifted character * - Insert a newline (textarea), or close the keyboard * - Delete the previous character * - Next entered character will be the alternate character * - Toggle Alt/AltGr Lock * * The first slot of this sub-array will be the text to display * on the corresponding key. This allows for easy localisation * of key names. * * - Layout dead keys (diacritic + letter) should be added as * property/value pairs of objects with hash keys equal to the * diacritic. See the "this.VKI_deadkey" object below the layout * definitions. In each property/value pair, the value is what * the diacritic would change the property name to. * * - Note that any characters beyond the normal ASCII set should be * entered in escaped Unicode format. (eg \u00a3 = Pound symbol) * You can find Unicode values for characters here: * http://unicode.org/charts/ * * - To remove a keyboard, just delete it, or comment it out of the * source code. If you decide to remove the US International * keyboard layout, make sure you change the default layout * (this.VKI_kt) above so it references an existing layout. * * CREDITS * ------- * * See http://www.greywyvern.com/code/javascript/keyboard for examples * and usage instructions. * * Version 1.49 - November 8, 2011 * - Don't display language drop-down if only one keyboard available * * See full changelog at: * http://www.greywyvern.com/code/javascript/keyboard.changelog.txt * * Keyboard Credits * - Yiddish (Yidish Lebt) keyboard layout by Simche Taub (jidysz.net) * - Urdu Phonetic keyboard layout by Khalid Malik * - Yiddish keyboard layout by Helmut Wollmersdorfer * - Khmer keyboard layout by Sovann Heng (km-kh.com) * - Dari keyboard layout by Saif Fazel * - Kurdish keyboard layout by Ara Qadir * - Assamese keyboard layout by Kanchan Gogoi * - Bulgarian BDS keyboard layout by Milen Georgiev * - Basic Japanese Hiragana/Katakana keyboard layout by Damjan * - Ukrainian keyboard layout by Dmitry Nikitin * - Macedonian keyboard layout by Damjan Dimitrioski * - Pashto keyboard layout by Ahmad Wali Achakzai (qamosona.com) * - Armenian Eastern and Western keyboard layouts by Hayastan Project (www.hayastan.co.uk) * - Pinyin keyboard layout from a collaboration with Lou Winklemann * - Kazakh keyboard layout by Alex Madyankin * - Danish keyboard layout by Verner Kjærsgaard * - Slovak keyboard layout by Daniel Lara (www.learningslovak.com) * - Belarusian and Serbian Cyrillic keyboard layouts by Evgeniy Titov * - Bulgarian Phonetic keyboard layout by Samuil Gospodinov * - Swedish keyboard layout by Håkan Sandberg * - Romanian keyboard layout by Aurel * - Farsi (Persian) keyboard layout by Kaveh Bakhtiyari (www.bakhtiyari.com) * - Burmese keyboard layout by Cetanapa * - Bosnian/Croatian/Serbian Latin/Slovenian keyboard layout by Miran Zeljko * - Hungarian keyboard layout by Antal Sall 'Hiromacu' * - Arabic keyboard layout by Srinivas Reddy * - Italian and Spanish (Spain) keyboard layouts by dictionarist.com * - Lithuanian and Russian keyboard layouts by Ramunas * - German keyboard layout by QuHno * - French keyboard layout by Hidden Evil * - Polish Programmers layout by moose * - Turkish keyboard layouts by offcu * - Dutch and US Int'l keyboard layouts by jerone * */ import { InjectionToken } from '@angular/core'; import { KeyboardClassKey } from '../enums/keyboard-class-key.enum'; const MAT_KEYBOARD_LAYOUTS = new InjectionToken('keyboard-layouts.config'); const keyboardLayouts = { '\u0627\u0644\u0639\u0631\u0628\u064a\u0629': { 'name': 'Arabic', 'keys': [ [ ['\u0630', '\u0651 '], ['1', '!', '\u00a1', '\u00b9'], ['2', '@', '\u00b2'], ['3', '#', '\u00b3'], ['4', '$', '\u00a4', '\u00a3'], ['5', '%', '\u20ac'], ['6', '^', '\u00bc'], ['7', '&', '\u00bd'], ['8', '*', '\u00be'], ['9', '(', '\u2018'], ['0', ')', '\u2019'], ['-', '_', '\u00a5'], ['=', '+', '\u00d7', '\u00f7'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['\u0636', '\u064e'], ['\u0635', '\u064b'], ['\u062b', '\u064f'], ['\u0642', '\u064c'], ['\u0641', '\u0644'], ['\u063a', '\u0625'], ['\u0639', '\u2018'], ['\u0647', '\u00f7'], ['\u062e', '\u00d7'], ['\u062d', '\u061b'], ['\u062c', '<'], ['\u062f', '>'], ['\\', '|'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['\u0634', '\u0650'], ['\u0633', '\u064d'], ['\u064a', ']'], ['\u0628', '['], ['\u0644', '\u0644'], ['\u0627', '\u0623'], ['\u062a', '\u0640'], ['\u0646', '\u060c'], ['\u0645', '/'], ['\u0643', ':'], ['\u0637', '"'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['\u0626', '~'], ['\u0621', '\u0652'], ['\u0624', '}'], ['\u0631', '{'], ['\u0644', '\u0644'], ['\u0649', '\u0622'], ['\u0629', '\u2019'], ['\u0648', ','], ['\u0632', '.'], ['\u0638', '\u061f'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space], [KeyboardClassKey.Alt, KeyboardClassKey.Alt, KeyboardClassKey.Alt, KeyboardClassKey.Alt] ] ], 'lang': ['ar'] }, '\u0985\u09b8\u09ae\u09c0\u09df\u09be': { 'name': 'Assamese', 'keys': [ [ ['+', '?'], ['\u09E7', '{', '\u09E7'], ['\u09E8', '}', '\u09E8'], ['\u09E9', '\u09CD\u09F0', '\u09E9'], ['\u09EA', '\u09F0\u09CD', '\u09EA'], ['\u09EB', '\u099C\u09CD\u09F0', '\u09EB'], ['\u09EC', '\u0995\u09CD\u09B7', '\u09EC'], ['\u09ED', '\u0995\u09CD\u09F0', '\u09ED'], ['\u09EE', '\u09B6\u09CD\u09F0', '\u09EE'], ['\u09EF', '(', '\u09EF'], ['\u09E6', ')', '\u09E6'], ['-', ''], ['\u09C3', '\u098B', '\u09E2', '\u09E0'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['\u09CC', '\u0994', '\u09D7'], ['\u09C8', '\u0990'], ['\u09BE', '\u0986'], ['\u09C0', '\u0988', '\u09E3', '\u09E1'], ['\u09C2', '\u098A'], ['\u09F1', '\u09AD'], ['\u09B9', '\u0999'], ['\u0997', '\u0998'], ['\u09A6', '\u09A7'], ['\u099C', '\u099D'], ['\u09A1', '\u09A2', '\u09DC', '\u09DD'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['\u09CB', '\u0993', '\u09F4', '\u09F5'], ['\u09C7', '\u098F', '\u09F6', '\u09F7'], ['\u09CD', '\u0985', '\u09F8', '\u09F9'], ['\u09BF', '\u0987', '\u09E2', '\u098C'], ['\u09C1', '\u0989'], ['\u09AA', '\u09AB'], ['\u09F0', '', '\u09F0', '\u09F1'], ['\u0995', '\u0996'], ['\u09A4', '\u09A5'], ['\u099A', '\u099B'], ['\u099F', '\u09A0'], ['\u09BC', '\u099E'] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['\u09CE', '\u0983'], ['\u0982', '\u0981', '\u09FA'], ['\u09AE', '\u09A3'], ['\u09A8', '\u09F7'], ['\u09AC', '"'], ['\u09B2', '\''], ['\u09B8', '\u09B6'], [',', '\u09B7'], ['.', ';'], ['\u09AF', '\u09DF'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space], [KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr] ] ], 'lang': ['as'] }, '\u0410\u0437\u04d9\u0440\u0431\u0430\u0458\u04b9\u0430\u043d\u04b9\u0430': { 'name': 'Azerbaijani Cyrillic', 'keys': [ [ ['`', '~'], ['1', '!'], ['2', '"'], ['3', '\u2116'], ['4', ';'], ['5', '%'], ['6', ':'], ['7', '?'], ['8', '*'], ['9', '('], ['0', ')'], ['-', '_'], ['=', '+'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['\u0458', '\u0408'], ['\u04AF', '\u04AE'], ['\u0443', '\u0423'], ['\u043A', '\u041A'], ['\u0435', '\u0415'], ['\u043D', '\u041D'], ['\u0433', '\u0413'], ['\u0448', '\u0428'], ['\u04BB', '\u04BA'], ['\u0437', '\u0417'], ['\u0445', '\u0425'], ['\u04B9', '\u04B8'], ['\\', '/'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['\u0444', '\u0424'], ['\u044B', '\u042B'], ['\u0432', '\u0412'], ['\u0430', '\u0410'], ['\u043F', '\u041F'], ['\u0440', '\u0420'], ['\u043E', '\u041E'], ['\u043B', '\u041B'], ['\u0434', '\u0414'], ['\u0436', '\u0416'], ['\u049D', '\u049C'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['\\', '|'], ['\u04D9', '\u04D8'], ['\u0447', '\u0427'], ['\u0441', '\u0421'], ['\u043C', '\u041C'], ['\u0438', '\u0418'], ['\u0442', '\u0422'], ['\u0493', '\u0492'], ['\u0431', '\u0411'], ['\u04E9', '\u04E8'], ['.', ','], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space] ] ], 'lang': ['az-CYRL'] }, 'Az\u0259rbaycanca': { 'name': 'Azerbaijani Latin', 'keys': [ [ ['`', '~'], ['1', '!'], ['2', '"'], ['3', '\u2166'], ['4', ';'], ['5', '%'], ['6', ':'], ['7', '?'], ['8', '*'], ['9', '('], ['0', ')'], ['-', '_'], ['=', '+'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['q', 'Q'], ['\u00FC', '\u00DC'], ['e', 'E'], ['r', 'R'], ['t', 'T'], ['y', 'Y'], ['u', 'U'], ['i', '\u0130'], ['o', 'O'], ['p', 'P'], ['\u00F6', '\u00D6'], ['\u011F', '\u011E'], ['\\', '/'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['a', 'A'], ['s', 'S'], ['d', 'D'], ['f', 'F'], ['g', 'G'], ['h', 'H'], ['j', 'J'], ['k', 'K'], ['l', 'L'], ['\u0131', 'I'], ['\u0259', '\u018F'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['z', 'Z'], ['x', 'X'], ['c', 'C'], ['v', 'V'], ['b', 'B'], ['n', 'N'], ['m', 'M'], ['\u00E7', '\u00C7'], ['\u015F', '\u015E'], ['.', ','], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space] ] ], 'lang': ['az'] }, '\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f': { 'name': 'Belarusian', 'keys': [ [ ['\u0451', '\u0401'], ['1', '!'], ['2', '"'], ['3', '\u2116'], ['4', ';'], ['5', '%'], ['6', ':'], ['7', '?'], ['8', '*'], ['9', '('], ['0', ')'], ['-', '_'], ['=', '+'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['\u0439', '\u0419'], ['\u0446', '\u0426'], ['\u0443', '\u0423'], ['\u043a', '\u041a'], ['\u0435', '\u0415'], ['\u043d', '\u041d'], ['\u0433', '\u0413'], ['\u0448', '\u0428'], ['\u045e', '\u040e'], ['\u0437', '\u0417'], ['\u0445', '\u0425'], ['\'', '\''], ['\\', '/'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['\u0444', '\u0424'], ['\u044b', '\u042b'], ['\u0432', '\u0412'], ['\u0430', '\u0410'], ['\u043f', '\u041f'], ['\u0440', '\u0420'], ['\u043e', '\u041e'], ['\u043b', '\u041b'], ['\u0434', '\u0414'], ['\u0436', '\u0416'], ['\u044d', '\u042d'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['/', '|'], ['\u044f', '\u042f'], ['\u0447', '\u0427'], ['\u0441', '\u0421'], ['\u043c', '\u041c'], ['\u0456', '\u0406'], ['\u0442', '\u0422'], ['\u044c', '\u042c'], ['\u0431', '\u0411'], ['\u044e', '\u042e'], ['.', ','], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space] ] ], 'lang': ['be'] }, 'Belgische / Belge': { 'name': 'Belgian', 'keys': [ [ ['\u00b2', '\u00b3'], ['&', '1', '|'], ['\u00e9', '2', '@'], ['"', '3', '#'], ['\'', '4'], ['(', '5'], ['\u00a7', '6', '^'], ['\u00e8', '7'], ['!', '8'], ['\u00e7', '9', '{'], ['\u00e0', '0', '}'], [')', '\u00b0'], ['-', '_'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['a', 'A'], ['z', 'Z'], ['e', 'E', '\u20ac'], ['r', 'R'], ['t', 'T'], ['y', 'Y'], ['u', 'U'], ['i', 'I'], ['o', 'O'], ['p', 'P'], ['^', '\u00a8', '['], ['$', '*', ']'], ['\u03bc', '\u00a3', '`'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['q', 'Q'], ['s', 'S'], ['d', 'D'], ['f', 'F'], ['g', 'G'], ['h', 'H'], ['j', 'J'], ['k', 'K'], ['l', 'L'], ['m', 'M'], ['\u00f9', '%', '\u00b4'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['<', '>', '\\'], ['w', 'W'], ['x', 'X'], ['c', 'C'], ['v', 'V'], ['b', 'B'], ['n', 'N'], [',', '?'], [';', '.'], [':', '/'], ['=', '+', '~'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space], [KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr] ] ], 'lang': ['nl-BE', 'fr-BE'] }, '\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u0424\u043e\u043d\u0435\u0442\u0438\u0447\u0435\u043d': { 'name': 'Bulgarian Phonetic', 'keys': [ [ ['\u0447', '\u0427'], ['1', '!'], ['2', '@'], ['3', '#'], ['4', '$'], ['5', '%'], ['6', '^'], ['7', '&'], ['8', '*'], ['9', '('], ['0', ')'], ['-', '_'], ['=', '+'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['\u044F', '\u042F'], ['\u0432', '\u0412'], ['\u0435', '\u0415'], ['\u0440', '\u0420'], ['\u0442', '\u0422'], ['\u044A', '\u042A'], ['\u0443', '\u0423'], ['\u0438', '\u0418'], ['\u043E', '\u041E'], ['\u043F', '\u041F'], ['\u0448', '\u0428'], ['\u0449', '\u0429'], ['\u044E', '\u042E'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['\u0430', '\u0410'], ['\u0441', '\u0421'], ['\u0434', '\u0414'], ['\u0444', '\u0424'], ['\u0433', '\u0413'], ['\u0445', '\u0425'], ['\u0439', '\u0419'], ['\u043A', '\u041A'], ['\u043B', '\u041B'], [';', ':'], ['\'', '"'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['\u0437', '\u0417'], ['\u044C', '\u042C'], ['\u0446', '\u0426'], ['\u0436', '\u0416'], ['\u0431', '\u0411'], ['\u043D', '\u041D'], ['\u043C', '\u041C'], [',', '<'], ['.', '>'], ['/', '?'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space] ] ], 'lang': ['bg'] }, '\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438': { 'name': 'Bulgarian BDS', 'keys': [ [ ['`', '~'], ['1', '!'], ['2', '?'], ['3', '+'], ['4', '"'], ['5', '%'], ['6', '='], ['7', ':'], ['8', '/'], ['9', '_'], ['0', '\u2116'], ['-', '\u0406'], ['=', 'V'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], [',', '\u044b'], ['\u0443', '\u0423'], ['\u0435', '\u0415'], ['\u0438', '\u0418'], ['\u0448', '\u0428'], ['\u0449', '\u0429'], ['\u043a', '\u041a'], ['\u0441', '\u0421'], ['\u0434', '\u0414'], ['\u0437', '\u0417'], ['\u0446', '\u0426'], [';', '\u00a7'], ['(', ')'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['\u044c', '\u042c'], ['\u044f', '\u042f'], ['\u0430', '\u0410'], ['\u043e', '\u041e'], ['\u0436', '\u0416'], ['\u0433', '\u0413'], ['\u0442', '\u0422'], ['\u043d', '\u041d'], ['\u0412', '\u0412'], ['\u043c', '\u041c'], ['\u0447', '\u0427'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['\u042e', '\u044e'], ['\u0439', '\u0419'], ['\u044a', '\u042a'], ['\u044d', '\u042d'], ['\u0444', '\u0424'], ['\u0445', '\u0425'], ['\u043f', '\u041f'], ['\u0440', '\u0420'], ['\u043b', '\u041b'], ['\u0431', '\u0411'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space] ] ] }, '\u09ac\u09be\u0982\u09b2\u09be': { 'name': 'Bengali', 'keys': [ [ [''], ['1', '', '\u09E7'], ['2', '', '\u09E8'], ['3', '\u09CD\u09B0', '\u09E9'], ['4', '\u09B0\u09CD', '\u09EA'], ['5', '\u099C\u09CD\u09B0', '\u09EB'], ['6', '\u09A4\u09CD\u09B7', '\u09EC'], ['7', '\u0995\u09CD\u09B0', '\u09ED'], ['8', '\u09B6\u09CD\u09B0', '\u09EE'], ['9', '(', '\u09EF'], ['0', ')', '\u09E6'], ['-', '\u0983'], ['\u09C3', '\u098B', '\u09E2', '\u09E0'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['\u09CC', '\u0994', '\u09D7'], ['\u09C8', '\u0990'], ['\u09BE', '\u0986'], ['\u09C0', '\u0988', '\u09E3', '\u09E1'], ['\u09C2', '\u098A'], ['\u09AC', '\u09AD'], ['\u09B9', '\u0999'], ['\u0997', '\u0998'], ['\u09A6', '\u09A7'], ['\u099C', '\u099D'], ['\u09A1', '\u09A2', '\u09DC', '\u09DD'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['\u09CB', '\u0993', '\u09F4', '\u09F5'], ['\u09C7', '\u098F', '\u09F6', '\u09F7'], ['\u09CD', '\u0985', '\u09F8', '\u09F9'], ['\u09BF', '\u0987', '\u09E2', '\u098C'], ['\u09C1', '\u0989'], ['\u09AA', '\u09AB'], ['\u09B0', '', '\u09F0', '\u09F1'], ['\u0995', '\u0996'], ['\u09A4', '\u09A5'], ['\u099A', '\u099B'], ['\u099F', '\u09A0'], ['\u09BC', '\u099E'] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], [''], ['\u0982', '\u0981', '\u09FA'], ['\u09AE', '\u09A3'], ['\u09A8'], ['\u09AC'], ['\u09B2'], ['\u09B8', '\u09B6'], [',', '\u09B7'], ['.', '{'], ['\u09AF', '\u09DF'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space], [KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr] ] ], 'lang': ['bn'] }, 'Bosanski': { 'name': 'Bosnian', 'keys': [ [ ['\u00B8', '\u00A8'], ['1', '!', '~'], ['2', '"', '\u02C7'], ['3', '#', '^'], ['4', '$', '\u02D8'], ['5', '%', '\u00B0'], ['6', '&', '\u02DB'], ['7', '/', '`'], ['8', '(', '\u02D9'], ['9', ')', '\u00B4'], ['0', '=', '\u02DD'], ['\'', '?', '\u00A8'], ['+', '*', '\u00B8'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['q', 'Q', '\\'], ['w', 'W', '|'], ['e', 'E', '\u20AC'], ['r', 'R'], ['t', 'T'], ['z', 'Z'], ['u', 'U'], ['i', 'I'], ['o', 'O'], ['p', 'P'], ['\u0161', '\u0160', '\u00F7'], ['\u0111', '\u0110', '\u00D7'], ['\u017E', '\u017D', '\u00A4'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['a', 'A'], ['s', 'S'], ['d', 'D'], ['f', 'F', '['], ['g', 'G', ']'], ['h', 'H'], ['j', 'J'], ['k', 'K', '\u0142'], ['l', 'L', '\u0141'], ['\u010D', '\u010C'], ['\u0107', '\u0106', '\u00DF'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['<', '>'], ['y', 'Y'], ['x', 'X'], ['c', 'C'], ['v', 'V', '@'], ['b', 'B', '{'], ['n', 'N', '}'], ['m', 'M', '\u00A7'], [',', ';', '<'], ['.', ':', '>'], ['-', '_', '\u00A9'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space], [KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr] ] ], 'lang': ['bs'] }, 'Canadienne-fran\u00e7aise': { 'name': 'Canadian French', 'keys': [ [ ['#', '|', '\\'], ['1', '!', '\u00B1'], ['2', '"', '@'], ['3', '/', '\u00A3'], ['4', '$', '\u00A2'], ['5', '%', '\u00A4'], ['6', '?', '\u00AC'], ['7', '&', '\u00A6'], ['8', '*', '\u00B2'], ['9', '(', '\u00B3'], ['0', ')', '\u00BC'], ['-', '_', '\u00BD'], ['=', '+', '\u00BE'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['q', 'Q'], ['w', 'W'], ['e', 'E'], ['r', 'R'], ['t', 'T'], ['y', 'Y'], ['u', 'U'], ['i', 'I'], ['o', 'O', '\u00A7'], ['p', 'P', '\u00B6'], ['^', '^', '['], ['\u00B8', '\u00A8', ']'], ['<', '>', '}'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['a', 'A'], ['s', 'S'], ['d', 'D'], ['f', 'F'], ['g', 'G'], ['h', 'H'], ['j', 'J'], ['k', 'K'], ['l', 'L'], [';', ':', '~'], ['`', '`', '{'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['\u00AB', '\u00BB', '\u00B0'], ['z', 'Z'], ['x', 'X'], ['c', 'C'], ['v', 'V'], ['b', 'B'], ['n', 'N'], ['m', 'M', '\u00B5'], [',', '\'', '\u00AF'], ['.', '.', '\u00AD'], ['\u00E9', '\u00C9', '\u00B4'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space], [KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr] ] ], 'lang': ['fr-CA'] }, '\u010cesky': { 'name': 'Czech', 'keys': [ [ [';', '\u00b0', '`', '~'], ['+', '1', '!'], ['\u011B', '2', '@'], ['\u0161', '3', '#'], ['\u010D', '4', '$'], ['\u0159', '5', '%'], ['\u017E', '6', '^'], ['\u00FD', '7', '&'], ['\u00E1', '8', '*'], ['\u00ED', '9', '('], ['\u00E9', '0', ')'], ['=', '%', '-', '_'], ['\u00B4', '\u02c7', '=', '+'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['q', 'Q'], ['w', 'W'], ['e', 'E', '\u20AC'], ['r', 'R'], ['t', 'T'], ['y', 'Y'], ['u', 'U'], ['i', 'I'], ['o', 'O'], ['p', 'P'], ['\u00FA', '/', '[', '{'], [')', '(', ']', '}'], ['\u00A8', '\'', '\\', '|'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['a', 'A'], ['s', 'S'], ['d', 'D'], ['f', 'F'], ['g', 'G'], ['h', 'H'], ['j', 'J'], ['k', 'K'], ['l', 'L'], ['\u016F', '"', ';', ':'], ['\u00A7', '!', '\u00a4', '^'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['\\', '|', '', '\u02dd'], ['z', 'Z'], ['x', 'X'], ['c', 'C'], ['v', 'V'], ['b', 'B'], ['n', 'N'], ['m', 'M'], [',', '?', '<', '\u00d7'], ['.', ':', '>', '\u00f7'], ['-', '_', '/', '?'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space], [KeyboardClassKey.Alt, KeyboardClassKey.Alt, KeyboardClassKey.Alt, KeyboardClassKey.Alt] ] ], 'lang': ['cs'] }, 'Dansk': { 'name': 'Danish', 'keys': [ [ ['\u00bd', '\u00a7'], ['1', '!'], ['2', '"', '@'], ['3', '#', '\u00a3'], ['4', '\u00a4', '$'], ['5', '%', '\u20ac'], ['6', '&'], ['7', '/', '{'], ['8', '(', '['], ['9', ')', ']'], ['0', '=', '}'], ['+', '?'], ['\u00b4', '`', '|'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['q', 'Q'], ['w', 'W'], ['e', 'E', '\u20ac'], ['r', 'R'], ['t', 'T'], ['y', 'Y'], ['u', 'U'], ['i', 'I'], ['o', 'O'], ['p', 'P'], ['\u00e5', '\u00c5'], ['\u00a8', '^', '~'], ['\'', '*'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['a', 'A'], ['s', 'S'], ['d', 'D'], ['f', 'F'], ['g', 'G'], ['h', 'H'], ['j', 'J'], ['k', 'K'], ['l', 'L'], ['\u00e6', '\u00c6'], ['\u00f8', '\u00d8'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['<', '>', '\\'], ['z', 'Z'], ['x', 'X'], ['c', 'C'], ['v', 'V'], ['b', 'B'], ['n', 'N'], ['m', 'M', '\u03bc', '\u039c'], [',', ';'], ['.', ':'], ['-', '_'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space], [KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr] ] ], 'lang': ['da'] }, 'Deutsch': { 'name': 'German', 'keys': [ [ ['^', '\u00b0'], ['1', '!'], ['2', '"', '\u00b2'], ['3', '\u00a7', '\u00b3'], ['4', '$'], ['5', '%'], ['6', '&'], ['7', '/', '{'], ['8', '(', '['], ['9', ')', ']'], ['0', '=', '}'], ['\u00df', '?', '\\'], ['\u00b4', '`'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['q', 'Q', '@'], ['w', 'W'], ['e', 'E', '\u20ac'], ['r', 'R'], ['t', 'T'], ['z', 'Z'], ['u', 'U'], ['i', 'I'], ['o', 'O'], ['p', 'P'], ['\u00fc', '\u00dc'], ['+', '*', '~'], ['#', '\''] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['a', 'A'], ['s', 'S'], ['d', 'D'], ['f', 'F'], ['g', 'G'], ['h', 'H'], ['j', 'J'], ['k', 'K'], ['l', 'L'], ['\u00f6', '\u00d6'], ['\u00e4', '\u00c4'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['<', '>', '\u00a6'], ['y', 'Y'], ['x', 'X'], ['c', 'C'], ['v', 'V'], ['b', 'B'], ['n', 'N'], ['m', 'M', '\u00b5'], [',', ';'], ['.', ':'], ['-', '_'], [KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr] ], [ [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space] ] ], 'lang': ['de'] }, 'Dingbats': { 'name': 'Dingbats', 'keys': [ [ ['\u2764', '\u2765', '\u2766', '\u2767'], ['\u278a', '\u2780', '\u2776', '\u2768'], ['\u278b', '\u2781', '\u2777', '\u2769'], ['\u278c', '\u2782', '\u2778', '\u276a'], ['\u278d', '\u2783', '\u2779', '\u276b'], ['\u278e', '\u2784', '\u277a', '\u276c'], ['\u278f', '\u2785', '\u277b', '\u276d'], ['\u2790', '\u2786', '\u277c', '\u276e'], ['\u2791', '\u2787', '\u277d', '\u276f'], ['\u2792', '\u2788', '\u277e', '\u2770'], ['\u2793', '\u2789', '\u277f', '\u2771'], ['\u2795', '\u2796', '\u274c', '\u2797'], ['\u2702', '\u2704', '\u2701', '\u2703'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['\u2714', '\u2705', '\u2713'], ['\u2718', '\u2715', '\u2717', '\u2716'], ['\u271a', '\u2719', '\u271b', '\u271c'], ['\u271d', '\u271e', '\u271f', '\u2720'], ['\u2722', '\u2723', '\u2724', '\u2725'], ['\u2726', '\u2727', '\u2728', '\u2756'], ['\u2729', '\u272a', '\u272d', '\u2730'], ['\u272c', '\u272b', '\u272e', '\u272f'], ['\u2736', '\u2731', '\u2732', '\u2749'], ['\u273b', '\u273c', '\u273d', '\u273e'], ['\u2744', '\u2745', '\u2746', '\u2743'], ['\u2733', '\u2734', '\u2735', '\u2721'], ['\u2737', '\u2738', '\u2739', '\u273a'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['\u2799', '\u279a', '\u2798', '\u2758'], ['\u27b5', '\u27b6', '\u27b4', '\u2759'], ['\u27b8', '\u27b9', '\u27b7', '\u275a'], ['\u2794', '\u279c', '\u27ba', '\u27bb'], ['\u279d', '\u279e', '\u27a1', '\u2772'], ['\u27a9', '\u27aa', '\u27ab', '\u27ac'], ['\u27a4', '\u27a3', '\u27a2', '\u279b'], ['\u27b3', '\u27bc', '\u27bd', '\u2773'], ['\u27ad', '\u27ae', '\u27af', '\u27b1'], ['\u27a8', '\u27a6', '\u27a5', '\u27a7'], ['\u279f', '\u27a0', '\u27be', '\u27b2'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['\u270c', '\u270b', '\u270a', '\u270d'], ['\u274f', '\u2750', '\u2751', '\u2752'], ['\u273f', '\u2740', '\u2741', '\u2742'], ['\u2747', '\u2748', '\u274a', '\u274b'], ['\u2757', '\u2755', '\u2762', '\u2763'], ['\u2753', '\u2754', '\u27b0', '\u27bf'], ['\u270f', '\u2710', '\u270e', '\u2774'], ['\u2712', '\u2711', '\u274d', '\u274e'], ['\u2709', '\u2706', '\u2708', '\u2707'], ['\u275b', '\u275d', '\u2761', '\u2775'], ['\u275c', '\u275e', '\u275f', '\u2760'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.AltLk, KeyboardClassKey.AltLk, KeyboardClassKey.AltLk, KeyboardClassKey.AltLk], [KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space, KeyboardClassKey.Space], [KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr, KeyboardClassKey.AltGr] ] ] }, '\u078b\u07a8\u0788\u07ac\u0780\u07a8\u0784\u07a6\u0790\u07b0': { 'name': 'Divehi', 'keys': [ [ ['`', '~'], ['1', '!'], ['2', '@'], ['3', '#'], ['4', '$'], ['5', '%'], ['6', '^'], ['7', '&'], ['8', '*'], ['9', ')'], ['0', '('], ['-', '_'], ['=', '+'], [KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp, KeyboardClassKey.Bksp] ], [ [KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab, KeyboardClassKey.Tab], ['\u07ab', '\u00d7'], ['\u07ae', '\u2019'], ['\u07a7', '\u201c'], ['\u07a9', '/'], ['\u07ad', ':'], ['\u078e', '\u07a4'], ['\u0783', '\u079c'], ['\u0789', '\u07a3'], ['\u078c', '\u07a0'], ['\u0780', '\u0799'], ['\u078d', '\u00f7'], ['[', '{'], [']', '}'] ], [ [KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps, KeyboardClassKey.Caps], ['\u07a8', '<'], ['\u07aa', '>'], ['\u07b0', '.', ',', ','], ['\u07a6', '\u060c'], ['\u07ac', '"'], ['\u0788', '\u07a5'], ['\u0787', '\u07a2'], ['\u0782', '\u0798'], ['\u0786', '\u079a'], ['\u078a', '\u07a1'], ['\ufdf2', '\u061b', ';', ';'], [KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter, KeyboardClassKey.Enter] ], [ [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift], ['\\', '|'], ['\u0792', '\u0796'], ['\u0791', '\u0795'], ['\u0790', '\u078f'], ['\u0794', '\u0797', '\u200D'], ['\u0785', '\u079f', '\u200C'], ['\u078b', '\u079b', '\u200E'], ['\u0784', '\u079D', '\u200F'], ['\u0781', '\\'], ['\u0793', '\u079e'], ['\u07af', '\u061f'], [KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift, KeyboardClassKey.Shift] ], [ [KeyboardClassKey.Space, KeyboardClas