Merge branch '1.11.x' of github.com:chamilo/chamilo-lms into 1.11.x

pull/2790/head
Julio Montoya 7 years ago
commit cc19e2de72
  1. 69
      app/Resources/public/assets/keyboard/.bower.json
  2. 10
      app/Resources/public/assets/keyboard/.editorconfig
  3. 29
      app/Resources/public/assets/keyboard/.eslintrc
  4. 22
      app/Resources/public/assets/keyboard/.gitattributes
  5. 23
      app/Resources/public/assets/keyboard/.gitignore
  6. 4
      app/Resources/public/assets/keyboard/.mailmap
  7. 52
      app/Resources/public/assets/keyboard/AUTHORS
  8. 1
      app/Resources/public/assets/keyboard/CHANGELOG.md
  9. 11
      app/Resources/public/assets/keyboard/CONTRIBUTING.md
  10. 275
      app/Resources/public/assets/keyboard/Gruntfile.js
  11. 45
      app/Resources/public/assets/keyboard/LICENSE
  12. 178
      app/Resources/public/assets/keyboard/README.md
  13. 58
      app/Resources/public/assets/keyboard/bower.json
  14. 52
      app/Resources/public/assets/keyboard/composer.json
  15. 3
      app/Resources/public/assets/keyboard/css/images/disabled.svg
  16. 3
      app/Resources/public/assets/keyboard/css/images/enabled.svg
  17. 15
      app/Resources/public/assets/keyboard/css/images/keyboard.svg
  18. 196
      app/Resources/public/assets/keyboard/css/keyboard-basic.css
  19. 196
      app/Resources/public/assets/keyboard/css/keyboard-dark.css
  20. 44
      app/Resources/public/assets/keyboard/css/keyboard-previewkeyset.css
  21. 337
      app/Resources/public/assets/keyboard/css/keyboard.css
  22. 1
      app/Resources/public/assets/keyboard/dist/css/keyboard-basic.min.css
  23. 1
      app/Resources/public/assets/keyboard/dist/css/keyboard-dark.min.css
  24. 1
      app/Resources/public/assets/keyboard/dist/css/keyboard-previewkeyset.min.css
  25. 1
      app/Resources/public/assets/keyboard/dist/css/keyboard.min.css
  26. 5
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.extension-all.min.js
  27. 2
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.extension-altkeyspopup.min.js
  28. 2
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.extension-autocomplete.min.js
  29. 2
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.extension-caret.min.js
  30. 2
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.extension-extender.min.js
  31. 2
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.extension-mobile.min.js
  32. 2
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.extension-navigation.min.js
  33. 2
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.extension-previewkeyset.min.js
  34. 2
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.extension-scramble.min.js
  35. 2
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.extension-typing.min.js
  36. 3561
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.js
  37. 2
      app/Resources/public/assets/keyboard/dist/js/jquery.keyboard.min.js
  38. 2
      app/Resources/public/assets/keyboard/dist/js/jquery.mousewheel.min.js
  39. 1
      app/Resources/public/assets/keyboard/dist/languages/amh.min.js
  40. 1
      app/Resources/public/assets/keyboard/dist/languages/de.min.js
  41. 1
      app/Resources/public/assets/keyboard/dist/languages/es.min.js
  42. 1
      app/Resources/public/assets/keyboard/dist/languages/fa.min.js
  43. 1
      app/Resources/public/assets/keyboard/dist/languages/fr.min.js
  44. 1
      app/Resources/public/assets/keyboard/dist/languages/he.min.js
  45. 1
      app/Resources/public/assets/keyboard/dist/languages/hu.min.js
  46. 1
      app/Resources/public/assets/keyboard/dist/languages/it.min.js
  47. 1
      app/Resources/public/assets/keyboard/dist/languages/lv.min.js
  48. 1
      app/Resources/public/assets/keyboard/dist/languages/my.min.js
  49. 1
      app/Resources/public/assets/keyboard/dist/languages/pl.min.js
  50. 1
      app/Resources/public/assets/keyboard/dist/languages/pt.min.js
  51. 1
      app/Resources/public/assets/keyboard/dist/languages/ro.min.js
  52. 1
      app/Resources/public/assets/keyboard/dist/languages/ru.min.js
  53. 1
      app/Resources/public/assets/keyboard/dist/languages/sq.min.js
  54. 1
      app/Resources/public/assets/keyboard/dist/layouts/albanian.min.js
  55. 1
      app/Resources/public/assets/keyboard/dist/layouts/arabic.min.js
  56. 1
      app/Resources/public/assets/keyboard/dist/layouts/belarusian.min.js
  57. 1
      app/Resources/public/assets/keyboard/dist/layouts/bengali.min.js
  58. 1
      app/Resources/public/assets/keyboard/dist/layouts/bulgarian.min.js
  59. 1
      app/Resources/public/assets/keyboard/dist/layouts/burmese.min.js
  60. 1
      app/Resources/public/assets/keyboard/dist/layouts/catalan.min.js
  61. 1
      app/Resources/public/assets/keyboard/dist/layouts/chinese.min.js
  62. 1
      app/Resources/public/assets/keyboard/dist/layouts/danish.min.js
  63. 1
      app/Resources/public/assets/keyboard/dist/layouts/ethiopic.min.js
  64. 1
      app/Resources/public/assets/keyboard/dist/layouts/french.min.js
  65. 1
      app/Resources/public/assets/keyboard/dist/layouts/german.min.js
  66. 1
      app/Resources/public/assets/keyboard/dist/layouts/hebrew.min.js
  67. 1
      app/Resources/public/assets/keyboard/dist/layouts/hindi.min.js
  68. 1
      app/Resources/public/assets/keyboard/dist/layouts/hungarian.min.js
  69. 1
      app/Resources/public/assets/keyboard/dist/layouts/hungarianansi.min.js
  70. 1
      app/Resources/public/assets/keyboard/dist/layouts/japanese.min.js
  71. 2
      app/Resources/public/assets/keyboard/dist/layouts/keyboard-layouts-combined.min.js
  72. 3
      app/Resources/public/assets/keyboard/dist/layouts/keyboard-layouts-greywyvern.min.js
  73. 2
      app/Resources/public/assets/keyboard/dist/layouts/keyboard-layouts-microsoft.min.js
  74. 1
      app/Resources/public/assets/keyboard/dist/layouts/latvian.min.js
  75. 1
      app/Resources/public/assets/keyboard/dist/layouts/mongolian.min.js
  76. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Albanian.min.js
  77. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Arabic.min.js
  78. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Armenian.min.js
  79. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Assamese.min.js
  80. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Azeri.min.js
  81. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Bashkir.min.js
  82. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Belarusian.min.js
  83. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Belgian.min.js
  84. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Bengali.min.js
  85. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Bulgarian.min.js
  86. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Canadian.min.js
  87. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Chinese.min.js
  88. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Czech.min.js
  89. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Danish.min.js
  90. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Devanagari.min.js
  91. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Divehi.min.js
  92. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Dutch.min.js
  93. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Estonian.min.js
  94. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Faeroese.min.js
  95. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Finnish.min.js
  96. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-French.min.js
  97. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Gaelic.min.js
  98. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Georgian.min.js
  99. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-German.min.js
  100. 1
      app/Resources/public/assets/keyboard/dist/layouts/ms-Greek.min.js
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,69 @@
{
"name": "keyboard",
"description": "Virtual Keyboard using jQuery UI",
"keywords": [
"customizable",
"keyboard",
"ui",
"accessibility",
"osk",
"jquery-plugin"
],
"authors": [
{
"name": "Jeremy Satterfield",
"homepage": "https://github.com/jsatt"
},
{
"name": "Rob Garrison",
"homepage": "https://mottie.github.io/Keyboard/",
"email": "wowmotty@gmail.com"
}
],
"homepage": "https://github.com/Mottie/Keyboard",
"main": [
"dist/js/jquery.keyboard.js",
"css/keyboard.css"
],
"ignore": [
"js/*.js",
"docs/*"
],
"repository": {
"type": "git",
"url": "git://github.com/Mottie/keyboard.git"
},
"license": "MIT",
"moduleType": [
"amd",
"globals",
"node"
],
"dependencies": {
"jquery": ">=1.4.3",
"jquery-ui": ">=1.9.2"
},
"devDependencies": {
"grunt": "^1.0.3",
"grunt-cli": "^1.3.1",
"grunt-contrib-clean": "^2.0.0",
"grunt-contrib-concat": "^1.0.1",
"grunt-contrib-copy": "^1.0.0",
"grunt-contrib-cssmin": "^3.0.0",
"grunt-contrib-jshint": "^2.0.0",
"grunt-contrib-qunit": "^3.0.1",
"grunt-contrib-uglify": "^4.0.0",
"grunt-contrib-watch": "^1.1.0"
},
"version": "1.28.7",
"_release": "1.28.7",
"_resolution": {
"type": "version",
"tag": "v1.28.7",
"commit": "7d115e954c5ca674e527306d1e81548a7076915e"
},
"_source": "https://github.com/Mottie/Keyboard.git",
"_target": "^1.28.7",
"_originalSource": "keyboard",
"_direct": true
}

@ -0,0 +1,10 @@
# https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties
root = true
[*]
indent_style = tab
trim_trailing_whitespace = true
end_of_line = lf
charset = utf-8
insert_final_newline = true
max_line_length = 100

@ -0,0 +1,29 @@
{
"env": {
"browser": true,
"jquery": true
},
"rules": {
"curly": 1,
"dot-location": [2, "property"],
"eqeqeq": 1,
"linebreak-style": [2, "unix"],
"no-else-return": 1,
"no-eval": 2,
"no-octal": 2,
"no-with": 2,
"radix": 2,
"brace-style": 0,
"camelcase": 0,
"indent": 0,
"no-array-constructor": 2,
"quotes": [2, "single", {
"allowTemplateLiterals": true,
"avoidEscape": true
}],
"spaced-comment": 0,
"arrow-spacing": 2,
"no-var": 0,
"no-unused-vars": 1
}
}

@ -0,0 +1,22 @@
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
*.sln merge=union
*.csproj merge=union
*.vbproj merge=union
*.fsproj merge=union
*.dbproj merge=union
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

@ -0,0 +1,23 @@
# lockfiles
package-lock.json
yarn.lock
# temp stuff
tmp/
*.tmp
*.bak
_test*
# logs
*.stackdump
*.log
# Build
node_modules/
# Windows crap
Thumbs.db
Desktop.ini
# Mac crap
.DS_Store

@ -0,0 +1,4 @@
Rob Garrison <wowmotty@gmail.com> Mottie <wowmotty@gmail.com>
Rob Garrison <wowmotty@gmail.com> Rob G <wowmotty@gmail.com>
Muthiah Annamalai <ezhillang@gmail.com> Muthiah Annamalai <muthuspost@gmail.com>
Bogdan <bs08@ukr.net> bsurai <bs08@ukr.net>

@ -0,0 +1,52 @@
# Authors ordered by first contribution.
Rob Garrison <wowmotty@gmail.com>
Yury Kotlyarov <yura@brainhouse.ru>
Baris Aydinoglu <baydinoglu@gmail.com>
David Hollifield <david@loadoncall.com>
Francisco Alcantara <alcantaranet@gmail.com>
tbvinh <tbvinh@gmail.com>
utilisezlinux <utilisezlinux@gmail.com>
José Miguel Sanz <jmsanzg@gmail.com>
Peter Rekdal <peters@users.noreply.github.com>
Muthiah Annamalai <ezhillang@gmail.com>
Lorenzo Stoakes <lstoakes@gmail.com>
BrandonLWhite <brandonlwhite@gmail.com>
shin <shin@fucinaludica.it>
ags131 <ashumann13@gmail.com>
Marian Pollzien <marian.pollzien@netresearch.de>
Alex Florea <alecz.fia@gmail.com>
Eugene Beschastnov <eugene.beschastnov@gmail.com>
Leonardo Gatica <lgaticastyle@gmail.com>
Quentin Delcourt <kant312@gmail.com>
Raido Kuli <raido.kuli@erply.com>
Joe <jmathews@xumo.com>
Peter Turczak <peter@turczak.de>
ihsoft <igor.zavoychinskiy@gmail.com>
Greg Kubisa <gkubisa@digisoft.tv>
Adrian Fish <adrian.r.fish@gmail.com>
Ben Schmidt <none@none>
isfs <sightless_schmidt@yahoo.com.au>
The Gitter Badger <badger@gitter.im>
Akira Speirs <akiraspeirs@gmail.com>
Chosko <ruben.caliandro@gmail.com>
Stefan Riedinger <stefan.riedinger@kardex.com>
ohohyeah <ohohyeah0515@gmail.com>
uNmAnNeR <ubivaza@gmail.com>
Sebastian Hillig <bastih@users.noreply.github.com>
= <=>
La Min Ko <lminko.lmk@gmail.com>
Pietro Liuzzo <pietro.liuzzo@gmail.com>
Simon Legner <Simon.Legner@gmail.com>
Viktor.Mironov <vicktor.mironov@gmail.com>
Martin Vavra <martin.vavra.cz@gmail.com>
Bogdan <bs08@ukr.net>
Lu, Tom <Tom_Lu@cable.comcast.com>
fossabot <badges@fossa.io>
vkurlyan <vkurlyan@users.noreply.github.com>
BastienVerschaete <32361274+BastienVerschaete@users.noreply.github.com>
Josh Gum <revgum@gmail.com>
lsching17 <lsching17@users.noreply.github.com>
0xflotus <0xflotus@gmail.com>
# Generated by tools/authors.sh

@ -0,0 +1 @@
Please refer to the wiki pages for the [change log](https://github.com/Mottie/Keyboard/wiki/Log).

@ -0,0 +1,11 @@
# Contributing to the Keyboard Project
Please refer to the [contributing wiki page](https://github.com/Mottie/Keyboard/wiki/Contributing) for more details on how to set up Language & layout files:
* [Layout file](https://github.com/Mottie/Keyboard/wiki/Contributing#layout-file).
* [Keyboard layot object map](https://github.com/Mottie/Keyboard/wiki/Contributing#map).
* [Language](https://github.com/Mottie/Keyboard/wiki/Contributing#language).
* [Set a license](#set-a-license).
* [Saving &amp; Using your file](https://github.com/Mottie/Keyboard/wiki/Contributing#saving--using-your-file).
# [License](https://github.com/Mottie/Keyboard/blob/master/LICENSE)

@ -0,0 +1,275 @@
/*global module:false */
module.exports = function(grunt) {
'use strict';
var pkg = grunt.file.readJSON( 'package.json' ),
nomod = '/*** This file is dynamically generated ***\n' +
'█████▄ ▄████▄ █████▄ ▄████▄ ██████ ███████▄ ▄████▄ █████▄ ██ ██████ ██ ██\n' +
'██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██\n' +
'██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██▀▀ ▀▀▀▀██\n' +
'█████▀ ▀████▀ ██ ██ ▀████▀ ██ ██ ██ ██ ▀████▀ █████▀ ██ ██ █████▀\n*/\n',
hintOpts = {
'jquery': true,
'browser': true,
'sub': true, // used by layouts
'-W100': true // ignore "This character may get silently deleted by one or more browsers."
};
// Project configuration.
grunt.initConfig({
pkg: pkg,
clean: {
core: {
src: [
'dist/css/*',
'dist/js/*',
'js/jquery.keyboard.extension-all.js'
]
},
layouts: {
src: [
'dist/*',
'js/jquery.keyboard.extension-all.js',
'layouts/keyboard-layouts-combined.js',
'layouts/keyboard-layouts-microsoft.js'
]
},
languages: {
src: [ 'dist/languages/*' ]
}
},
copy: {
js: {
files : [{
expand: true,
dot: true,
flatten: true,
src: [ 'js/jquery.keyboard.js' ],
dest: 'dist/js/'
}]
}
},
concat: {
exts: {
options: {
banner: nomod + '/*! jQuery UI Virtual Keyboard (<%= pkg.version %>) - ALL Extensions + Mousewheel */\n'
},
files: {
'js/jquery.keyboard.extension-all.js': [ 'js/jquery.keyboard.extension-*.js', 'js/jquery.mousewheel.js' ]
}
},
origLayouts: {
options: {
banner: nomod + '/*! jQuery UI Virtual Keyboard - Original Layouts */\n'
},
files: {
'layouts/keyboard-layouts-combined.js': [
'layouts/*',
'!layouts/_layout_template.js',
'!layouts/ms-*.js',
'!layouts/keyboard-layouts-greywyvern.js',
'languages/*.js',
'!languages/_language_template.js',
'!languages/*.untranslated.js'
]
}
},
msLayouts: {
options: {
banner: nomod + '/*! jQuery UI Virtual Keyboard - Microsoft Generated Layouts */\n'
},
files: {
'layouts/keyboard-layouts-microsoft.js': [
'layouts/ms-*.js',
'!layouts/_layout_template.js',
'languages/*.js',
'!languages/_language_template.js',
'!languages/*.untranslated.js'
]
}
},
greyLayouts: {
options: {
banner: nomod + '/*! jQuery UI Virtual Keyboard - Microsoft Generated Layouts */\n'
},
files: {
'dist/layouts/keyboard-layouts-greywyvern.min.js': [
'layouts/keyboard-layouts-greywyvern.js',
'languages/*.js',
'!languages/_language_template.js',
'!languages/*.untranslated.js'
]
}
}
},
jshint: {
core: {
options: hintOpts,
src: [ 'js/jquery.*.js' ]
},
layouts: {
options: hintOpts,
src: [ 'js/jquery.*.js', 'layouts/*' ]
},
languages: {
option: hintOpts,
src: [ 'languages/*' ]
}
},
cssmin: {
target: {
files: [{
expand: true,
flatten: true,
src: ['css/*.css'],
dest: 'dist/css/',
ext: '.min.css'
}]
}
},
uglify: {
options: {
output: {
comments: /^!/,
beautify: false
},
report: 'gzip'
},
core: {
files: [{
expand: true,
cwd: '',
src: [ 'js/jquery*.js' ],
dest: 'dist/js/',
ext: '.min.js',
extDot: 'last',
flatten: true
}]
},
splitLayouts: {
files: [{
expand: true,
cwd: '',
src: [ 'layouts/*.js', '!layouts/_layout_template.js', '!layouts/keyboard-layouts-greywyvern.js' ],
dest: 'dist/layouts/',
ext: '.min.js',
extDot: 'last',
flatten: true
}]
},
greyLayout: {
files: [{
expand: true,
cwd: '',
src: [ 'dist/layouts/keyboard-layouts-greywyvern.min.js' ],
dest: 'dist/layouts/',
ext: '.js',
extDot: 'last',
flatten: true
}]
},
languages: {
files: [{
expand: true,
cwd: '',
src: [ 'languages/*.js', '!languages/_language_template.js', '!languages/*.untranslated.js' ],
dest: 'dist/languages/',
ext: '.min.js',
extDot: 'last',
flatten: true
}]
}
},
qunit: {
files: ['testing/test.html']
},
watch: {
scripts: {
files: ['js/*.js'],
tasks: ['build']
}
}
});
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-copy');
// Default task.
grunt.registerTask('default', [
'clean:core',
'jshint:core',
'qunit',
'copy',
'concat:exts',
'cssmin',
'uglify:core',
'updateManifest'
]);
// layout build takes a lot longer to uglify
grunt.registerTask('layouts', [
'clean:layouts',
'jshint:layouts',
'concat',
'cssmin',
'uglify'
]);
function escapeRegExp(str) {
return str.replace(/[$()*+\-.\/?[\\\]^{|}]/g, '\\$&');
}
// update keyboard.jquery.json file version numbers to match the package.json version
grunt.registerTask( 'updateManifest', function() {
var i, project,
projectFile = [ 'keyboard.jquery.json', 'bower.json' ],
len = projectFile.length;
for ( i = 0; i < len; i++ ) {
if ( !grunt.file.exists( projectFile[ i ] ) ) {
grunt.log.error( 'file ' + projectFile[ i ] + ' not found' );
return true; // return false to abort the execution
}
project = grunt.file.readJSON( projectFile[ i ] ); // get file as json object
if (i === 0 ) {
// only update version in keyboard.jquery.json
project.version = pkg.version;
} else if (i === 1) {
// update devDependencies in bower
project.devDependencies = pkg.devDependencies;
}
grunt.file.write( projectFile[i], JSON.stringify( project, null, 2 ) ); // serialize it back to file
}
// check internal version number
project = grunt.file.read('js/jquery.keyboard.js');
if (
new RegExp(escapeRegExp('/*! jQuery UI Virtual Keyboard v' + pkg.version)).test(project) &&
new RegExp(escapeRegExp('base.version = \'' + pkg.version)).test(project)
) {
console.info('versions all match!');
} else {
grunt.log.writeln('\n**** version mismatch! ****'['red'].bold);
}
// check internal version number
project = grunt.file.read('README.md');
if (!new RegExp(escapeRegExp('### Version ' + pkg.version)).test(project)) {
grunt.log.writeln('\n**** Missing Readme entry! ****'['red'].bold);
}
});
};

@ -0,0 +1,45 @@
==========================
Keyboard code & Caret code
==========================
MIT License
Keyboard code: Copyright Rob Garrison & Jeremy Satterfield
Caret code: Copyright C. F., Wong (Cloudgen)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
==========================
Language & Layout
==========================
WTFPL
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

@ -0,0 +1,178 @@
<img alt="keyboard logo" align="right" src="./docs/css/images/keyboard-logo.png">A jQuery on-screen keyboard (OSK) plugin that works in the browser.<br>
Originally posted by Jeremy Satterfield in his [blog](http://jsatt.blogspot.com/2010/01/on-screen-keyboard-widget-using-jquery.html), [jQuery plugins](http://plugins.jquery.com/project/virtual_keyboard) and on [Snipplr](http://snipplr.com/view/21577/virtual-keyboard-widget/). Currently maintained by [Mottie](https://github.com/Mottie/Keyboard).
[![Bower Version][bower-image]][bower-url] [![NPM Version][npm-image]][npm-url] [![devDependency Status][david-dev-image]][david-dev-url] [![Join the chat at https://gitter.im/Mottie/Keyboard][gitter-image]][gitter]
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FMottie%2FKeyboard.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FMottie%2FKeyboard?ref=badge_shield)
## Features ([Demo](https://mottie.github.io/Keyboard/))
### Ease of use
* An on-screen virtual keyboard embedded within the browser window which will popup when a specified entry field is focused.
* The user can then type and preview their input before Accepting or Canceling.
* It can be set to always remain open, and to not use a preview.
### Ease of installation
* Grab the files as a zip, or from npm or bower - see the [installation](#installation) section below.
* In a minimal setup, the keyboard works by including:
* jQuery
* jQuery UI theme
* (optional) jQuery UI position utility to position the keyboard at the input/textarea element
* Initialize keyboard - no options needed for qwerty keyboard.
### Ease of setup
* Attach a keyboard to inputs, textareas or contenteditable elements.
* Add custom keyboard layouts easily.
* Multiple region specific keyboard layouts included in a separate directory. This is a work in progress and slowly growing.
* Add up to four standard key sets to each layout that use the shift and alt keys (default, shift, alt and alt-shift).
* Add any number of optional modifier keys (meta keys) to add more key sets.
* Each meta key set can also include the shift, alt and alt-shift keysets.
* Position the keyboard in any location around the element, or target another element on the page (using jQuery UI position utility).
* Easily modify the key text to any language or symbol.
* Allow direct input or lock the preview window.
* Set a maximum length to the inputted content.
* Scroll through the other key sets using the mouse wheel while hovering over a key to bypass the need to use alt, shift or meta keys.
* Easily type in characters with diacritics. Here are some default combination examples:
* `'` + vowel ( vowel with acute accent, e.g. `'` + `e` = `é` )
* `` ` `` + vowel ( vowel with grave accent, e.g., `` ` `` + `e` = `è` )
* `"` + vowel ( vowel with diaresis, e.g., `"` + `e` = `ë` )
* `^` + vowel ( vowel with circumflex accent, e.g., `^` + `e` = `ê` )
* `~` + certain letters ( letter with tilde, e.g. `~` + `n` = `ñ`, `~` + `o` = `õ` )
* Enable, disable or add more diacritic functionality as desired.
* Use callbacks and event triggers that occur when the keyboard is open or closed and when the content has changed, been accepted or canceled.
* Includes ARIA support (may not be fully implemented).
* Built in watermarking. It emulates HTML5's placeholder, if the browser doesn't support it.
* Include validation using a callback function so third-party validation methods can be used.
### Themes
* jQuery UI themes are used by default.
* Bootstrap themes ([original](https://jsfiddle.net/Mottie/gfgkb4o1/) or [dark](https://jsfiddle.net/Mottie/emLfqchq/)) can also be applied.
* Or add a completely custom theme (without using jQuery UI position utility):
* [Light](https://jsfiddle.net/Mottie/jsh0377k/) using [keyboard-basic.css](https://github.com/Mottie/Keyboard/blob/master/css/keyboard-basic.css).
* [Dark](https://jsfiddle.net/Mottie/6dmqhLvh/) using [keyboard-dark.css](https://github.com/Mottie/Keyboard/blob/master/css/keyboard-dark.css).
### Extensions
* [Alt-keys](https://mottie.github.io/Keyboard/docs/altkeys-popup.html): Show alternate keys in a popup after long-clicking on a key.
* [Autocomplete](https://mottie.github.io/Keyboard/index.html#autocomplete): Integrate with jQuery UI's autocomplete widget.
* [Caret](https://mottie.github.io/Keyboard/index.html#caret): Add a caret with custom styling.
* [Extender](https://mottie.github.io/Keyboard/docs/extender.html): Add a togglable layout (e.g. toggle number pad)
* [Keyset](https://mottie.github.io/Keyboard/docs/preview-keyset.html): Show shift, alt or meta keyset within the virtual keyboard - custom styling.
* [Mobile](https://mottie.github.io/Keyboard/docs/mobile.html): Use with jQuery Mobile &amp; jQuery [Mobile v1.4](https://mottie.github.io/Keyboard/docs/jquery-mobile-1.4.html).
* [Navigate](https://mottie.github.io/Keyboard/docs/navigate.html): Use arrow, home, end &amp; page up/down to navigate inside of the keyboard.
* [Scramble](https://mottie.github.io/Keyboard/docs/scramble.html): Scramble the entire keyset or by row, once or every time the keyboard is opened for added security.
* [Typing](https://mottie.github.io/Keyboard/index.html#typing): Allows you to simulate typing into the keyboard for demo purposes or to assist user input.
## Dependencies
* Required
* jQuery 1.4.3+
* jQuery caret (included with source)
* Optional
* jQuery UI Positioning Utility (optional, if you position the keyboard yourself)
* jQuery UI CSS (can be customized) / Bootstrap CSS
* jQuery mousewheel plugin - allows using mousewheel to scroll through other key sets
* jQuery UI Autocomplete widget - use with jQuery keyboard autocomplete extension
## Installation
* Download a [zip](https://github.com/Mottie/Keyboard/archive/master.zip) or [tar.gz](https://github.com/Mottie/Keyboard/archive/master.tar.gz) with all files, for use in the browser.
* Use the files from [CDNJS](https://cdnjs.com/libraries/virtual-keyboard).
* Install using [bower](https://github.com/bower/bower) via `bower install keyboard`.
* Install using [npm](https://www.npmjs.com/) via `npm install virtual-keyboard`.
* Use with:
* [AngularJs](https://github.com/antonio-spinelli/ng-virtual-keyboard) by [antonio-spinelli](https://github.com/antonio-spinelli) via `bower install ng-virtual-keyboard`.
* [Ember](https://github.com/SleepyWerewolf/ember-virtual-keyboard) by [SleepyWerewolf](https://github.com/SleepyWerewolf).
* [React.js](https://github.com/Utzel-Butzel/react-virtual-keyboard) by [Utzel-Butzel](https://github.com/Utzel-Butzel).
* [Ruby On Rails](https://github.com/scicasoft/virtual_keyboard) by [scicasoft](https://github.com/scicasoft) via `gem install virtual_keyboard`.
* [VR Toolbox](https://steamcommunity.com/games/488040/announcements/detail/1431432753528769455).
## TypeScript
You can use it with TypeScript. Install [TypeScript](https://www.typescriptlang.org/) and [@types/virtual-keyboard](https://www.npmjs.com/package/@types/virtual-keyboard) into dev dependencies for that.
## Documentation
Wiki: [Home](https://github.com/Mottie/Keyboard/wiki/Home) | [FAQ](https://github.com/Mottie/Keyboard/wiki/FAQ) | [Setup](https://github.com/Mottie/Keyboard/wiki/Setup) | [Usage](https://github.com/Mottie/Keyboard/wiki/Usage) | [Options](https://github.com/Mottie/Keyboard/wiki/Options) ( [Layout](https://github.com/Mottie/Keyboard/wiki/Layout), [Language](https://github.com/Mottie/Keyboard/wiki/Language), [Usability](https://github.com/Mottie/Keyboard/wiki/Usability), [Actions](https://github.com/Mottie/Keyboard/wiki/Actions) ) | [Methods](https://github.com/Mottie/Keyboard/wiki/Methods) | [Theme](https://github.com/Mottie/Keyboard/wiki/Theme) | [Log](https://github.com/Mottie/Keyboard/wiki/Log)
## To Do
* Add an input mask extension. I think I'll try to make it compatible with [this plugin](https://github.com/RobinHerbots/jquery.inputmask).
* <del>Allow attaching a keyboard to a contenteditable element</del>. Added v1.27.0.
## Known Problems
* *ALL*: Only inputs of type "text", "search", "url", "telephone" and "password" <strong>support caret positioning</strong> ([ref](https://html.spec.whatwg.org/#do-not-apply)). Using this keyboard with any other input type will break the caret left/right, backspace and delete keys (see [issue #241](https://github.com/Mottie/Keyboard/issues/241) for details).
* *Mobile*: If the key press lags behind by one character, it is likely due to the mousewheel plugin. Disable it. See issues [#379](https://github.com/Mottie/Keyboard/issues/379) &amp; [#411](https://github.com/Mottie/Keyboard/issues/411).
* *IE* and *Opera*:
* In a text area with multiple carriage returns, the caret positioning will be off when repositioning it with the mouse.
* Using the right and left arrow keys to navigate through a text area with multiple carriage returns is problematic. The caret doesn't behave like in other browsers when moving from one line to the next. You can always reposition the caret using the mouse.
* *Opera*: When pressing the tab key while inside a textarea, all browsers but Opera add the tab to the virtual keyboard textarea.
* *Safari*: See the QWERTY Text Area demo with a locked input. While using the virtual keyboard to type, it enters the text in backwards! This is because textareas with a "readonly" attribute always returns zero for the caret position.
* *Typing Extension*:
* When pressing "Alt", the key set will change to the alt key set, but the focus will be moved to the browser menu. Pressing it quickly a second time will return the focus. This is built into the browser and it isn't possible (as far as I know) to automatically restore the window focus the first time alt is pressed.
* Holding down the Alt key and trying to type is also not possible since the Windows OS is assuming you are trying to type a shortcut key to access the browser menu. You can still click the keys in the alt key set with the mouse.
* Simulated typing on the keyboard breaks when the CapsLock is on. Still looking for a cross-browser solution.
## Contributing
* Install [node.js](http://nodejs.org/) - this includes `npm` (node package manager).
* Run `npm install` in the root directory.
* Run `npm install -g grunt-cli` to install the grunt command-line interface.
* Make any changes to the code.
* Unit tests will be added later.
* Run `grunt` to perform a new build in the `/dist` folder.
* Submit a pull request from a branch other than the `master`.
## Licensing
* Keyboard code: [MIT License](http://www.opensource.org/licenses/mit-license.php) for all versions.
* Caret code by C. F., Wong (Cloudgen): [MIT License](http://www.opensource.org/licenses/mit-license.php)
* Layouts files: Most are under [WTFPL](http://sam.zoy.org/wtfpl/), unless the file itself specifies otherwise.
[npm-url]: https://npmjs.org/package/virtual-keyboard
[npm-image]: https://img.shields.io/npm/v/virtual-keyboard.svg
[david-dev-url]: https://david-dm.org/Mottie/keyboard?type=dev
[david-dev-image]: https://david-dm.org/Mottie/keyboard/dev-status.svg
[bower-url]: http://bower.io/search/?q=keyboard
[bower-image]: https://img.shields.io/bower/v/keyboard.svg
[gitter-image]: https://badges.gitter.im/Join%20Chat.svg
[gitter]: https://gitter.im/Mottie/Keyboard?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FMottie%2FKeyboard.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FMottie%2FKeyboard?ref=badge_large)
## Change Log
Only the latest changes will be shown below, see the [wiki log](https://github.com/Mottie/Keyboard/wiki/Log) to view older versions.
### Version 1.28.7 (2018-10-09)
* Core:
* Fix JS Error. Closes [issue #699](https://github.com/Mottie/Keyboard/issues/699).
* Readme:
* Fix Usability (spelling error). See [PR #694](https://github.com/Mottie/Keyboard/pull/694); thanks [@0xflotus](https://github.com/0xflotus)!
* Fix comboRegex (spelling error). See [PR #695](https://github.com/Mottie/Keyboard/pull/695); thanks [@0xflotus](https://github.com/0xflotus)!
### Version 1.28.6 (2018-09-15)
* Core:
* Fix tab key insertion in textarea.
* Typing:
* Prevent occasional focus error.
* Meta:
* Update dependencies.
### Version 1.28.5 (2018-07-28)
* Core:
* Add mousewheel throttle & key check. See [issue #665](https://github.com/Mottie/Keyboard/issues/665).
* Include enter when restrictInput true; fixes [issue #686](https://github.com/Mottie/Keyboard/issues/686).
* Reduce rebinding focus delay. See [issue #677](https://github.com/Mottie/Keyboard/issues/677).
* Meta:
* Add `CHANGELOG.md` file pointing to the wiki pages. See [issue #685](https://github.com/Mottie/Keyboard/issues/685).
* Update dependencies.

@ -0,0 +1,58 @@
{
"name": "keyboard",
"description": "Virtual Keyboard using jQuery UI",
"keywords": [
"customizable",
"keyboard",
"ui",
"accessibility",
"osk",
"jquery-plugin"
],
"authors": [
{
"name": "Jeremy Satterfield",
"homepage": "https://github.com/jsatt"
},
{
"name": "Rob Garrison",
"homepage": "https://mottie.github.io/Keyboard/",
"email": "wowmotty@gmail.com"
}
],
"homepage": "https://github.com/Mottie/Keyboard",
"main": [
"dist/js/jquery.keyboard.js",
"css/keyboard.css"
],
"ignore": [
"js/*.js",
"docs/*"
],
"repository": {
"type": "git",
"url": "git://github.com/Mottie/keyboard.git"
},
"license": "MIT",
"moduleType": [
"amd",
"globals",
"node"
],
"dependencies": {
"jquery": ">=1.4.3",
"jquery-ui": ">=1.9.2"
},
"devDependencies": {
"grunt": "^1.0.3",
"grunt-cli": "^1.3.1",
"grunt-contrib-clean": "^2.0.0",
"grunt-contrib-concat": "^1.0.1",
"grunt-contrib-copy": "^1.0.0",
"grunt-contrib-cssmin": "^3.0.0",
"grunt-contrib-jshint": "^2.0.0",
"grunt-contrib-qunit": "^3.0.1",
"grunt-contrib-uglify": "^4.0.0",
"grunt-contrib-watch": "^1.1.0"
}
}

@ -0,0 +1,52 @@
{
"name": "mottie/keyboard",
"description": "A jQuery on-screen keyboard (OSK) plugin that works in the browser.",
"homepage": "https://github.com/Mottie/Keyboard",
"type": "component",
"license": "MIT",
"require": {
"jquery": "^1.6.0"
},
"authors": [{
"name": "Jeremy Satterfield",
"url": "https://github.com/jsatt"
},{
"name": "Rob Garrison",
"url": "https://github.com/Mottie",
"email": "wowmotty@gmail.com"
}],
"keywords": [
"customizable",
"keyboard",
"ui",
"accessibility",
"osk",
"jquery-plugin"
],
"extra": {
"component": {
"scripts": [
"dist/js/jquery.keyboard.js"
],
"files": [
"dist/css/keyboard.min.css",
"dist/css/keyboard-basic.min.css",
"dist/css/keyboard-dark.min.css",
"dist/css/keyboard-previewkeyset.min.css",
"dist/js/jquery.keyboard.js",
"dist/js/jquery.keyboard.min.js",
"dist/js/jquery.keyboard.extension-all.min.js",
"dist/js/jquery.keyboard.extension-altkeyspopup.min.js",
"dist/js/jquery.keyboard.extension-autocomplete.min.js",
"dist/js/jquery.keyboard.extension-caret.min.js",
"dist/js/jquery.keyboard.extension-extender.min.js",
"dist/js/jquery.keyboard.extension-mobile.min.js",
"dist/js/jquery.keyboard.extension-navigation.min.js",
"dist/js/jquery.keyboard.extension-previewkeyset.min.js",
"dist/js/jquery.keyboard.extension-scramble.min.js",
"dist/js/jquery.keyboard.extension-typing.min.js",
"dist/js/jquery.mousewheel.min.js"
]
}
}
}

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="#111">
<path d="M7.4 4.4V2.5c0-1.4-1.1-2.5-2.5-2.5c-1.4 0-2.5 1.1-2.5 2.5v1.9 c-0.7 0-1.2 0.5-1.2 1.2v3.1C1.3 9.4 1.8 10 2.5 10h4.9c0.7 0 1.2-0.6 1.2-1.2V5.6 C8.7 4.9 8.1 4.4 7.4 4.4z M5.3 7.4v1.0c0 0.2-0.1 0.3-0.3 0.3c-0.2 0-0.3-0.1-0.3-0.3V7.4 c-0.2-0.1-0.3-0.3-0.3-0.5c0-0.3 0.3-0.6 0.6-0.6c0.3 0 0.6 0.3 0.6 0.6 C5.6 7.1 5.5 7.3 5.3 7.4z M6.2 4.4H3.7V2.5c0-0.7 0.5-1.2 1.2-1.2c0.7 0 1.2 0.6 1.2 1.2 V4.4z"/>
</svg>

After

Width:  |  Height:  |  Size: 489 B

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" fill="#111">
<path d="M8.7,4.4H7.5H5.0v-1.9c0-1.4-1.1-2.5-2.5-2.5c-1.4,0-2.5,1.1-2.5,2.5v1.9h1.2 v-1.9c0-0.7,0.6-1.2,1.2-1.2s1.2,0.6,1.2,1.2v1.9c-0.7,0-1.2,0.6-1.2,1.2V8.8 c0,0.7,0.6,1.2,1.2,1.2h5.0C9.4,10,10,9.4,10,8.8V5.6C10,5.0,9.4,4.4,8.8,4.4z M6.6,7.4v1.0 c0,0.2-0.1,0.3-0.3,0.3S6.0,8.6,6.0,8.4V7.4c-0.2-0.1-0.3-0.3-0.3-0.5c0-0.3,0.3-0.6,0.6-0.6 S6.9,6.6,6.9,6.9C6.9,7.1,6.8,7.3,6.6,7.4z"/>
</svg>

After

Width:  |  Height:  |  Size: 468 B

@ -0,0 +1,15 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" style="fill:#888">
<g>
<path style="fill:none;stroke:#888" d="M 0.5,4.5 15.5,4.5 15.5,15.5 0.5,15.5 Z"></path>
<rect width="2" height="2" x="2" y="6"></rect>
<rect width="2" height="2" x="5" y="6"></rect>
<rect width="2" height="2" x="8" y="6"></rect>
<path d="m 11,6 3,0 0,5 -2,0 0,-3 -1,0 z"></path>
<rect width="2" height="2" x="12" y="12"></rect>
<rect width="6" height="2" x="5" y="12"></rect>
<rect width="2" height="2" x="9" y="9"></rect>
<rect width="2" height="2" x="6" y="9"></rect>
<rect width="2" height="2" x="2" y="12"></rect>
<rect width="3" height="2" x="2" y="9"></rect>
</g>
</svg>

After

Width:  |  Height:  |  Size: 686 B

@ -0,0 +1,196 @@
/* *** keyboard light theme ***
for when jQuery UI themes are not being used
See https://jsfiddle.net/Mottie/jsh0377k/
*/
.ui-keyboard {
/* adjust overall keyboard size using "font-size" */
font-size: 14px;
text-align: center;
background: #fefefe;
border: 1px solid #aaa;
padding: 4px;
/* include the following setting to place the
keyboard at the bottom of the browser window */
width: 100%;
height: auto;
left: 0px;
top: auto;
bottom: 0px;
position: fixed;
white-space: nowrap;
overflow-x: auto;
/* see issue #484 */
-ms-touch-action: manipulation;
touch-action: manipulation;
}
.ui-keyboard-has-focus {
z-index: 16001;
}
.ui-keyboard-button {
border: 1px solid #aaa;
padding: 0 0.5em;
margin: 1px;
min-width: 3em;
height: 3em;
line-height: 3em;
vertical-align: top;
font-family: Helvetica, Arial, sans-serif;
color: #333;
text-align: center;
border-radius: 5px;
-webkit-box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.5);
box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.5);
background: white;
background-image: -webkit-linear-gradient(-90deg, white 0%, #e3e3e3 100%);
background-image: linear-gradient(-90deg, white 0%, #e3e3e3 100%);
cursor: pointer;
overflow: hidden;
-moz-user-focus: ignore;
}
.ui-keyboard-button:not([disabled]):hover {
background: #eee;
background-image: -webkit-linear-gradient(-90deg, #f2f2f2 0%, #d3d3d3 100%);
background-image: linear-gradient(-90deg, #f2f2f2 0%, #d3d3d3 100%);
}
.ui-keyboard-button:not([disabled]):active {
background: #ddd;
background-image: -webkit-linear-gradient(-90deg, #e5e5e5 0%, #d3d3d3 100%);
background-image: linear-gradient(-90deg, #e5e5e5 0%, #d3d3d3 100%);
}
.ui-keyboard-button span {
display: block;
width: 100%;
font-size: 1.2em;
text-align: center;
}
/* make action keys extra-wide */
.ui-keyboard-actionkey:not(.ui-keyboard-dec):not(.ui-keyboard-combo) {
min-width: 6em;
}
.ui-keyboard-space {
width: 15em;
}
.ui-keyboard-actionkey:not(.ui-keyboard-dec):not(.ui-keyboard-combo) span {
font-size: 0.8em;
position: relative;
top: -1em;
left: -1.6em;
}
.ui-keyboard-placeholder {
color: #888;
}
/* disabled or readonly inputs, or use input[disabled='disabled'] { color: #f00; } */
.ui-keyboard-nokeyboard {
color: #888;
border-color: #888;
}
.ui-keyboard-spacer {
display: inline-block;
width: 1px;
height: 0;
cursor: default;
}
.ui-keyboard-NBSP span, .ui-keyboard-ZWSP span, .ui-keyboard-ZWNJ span, .ui-keyboard-ZWJ span,
.ui-keyboard-LRM span, .ui-keyboard-RLM span {
font-size: 0.5em;
line-height: 1.5em;
white-space: normal;
}
/* combo key styling - toggles diacritics on/off */
.ui-keyboard-button.ui-keyboard-combo.ui-state-default {
-webkit-box-shadow: 1px 1px 3px 0 rgba(213, 133, 18, 0.5);
box-shadow: 1px 1px 3px 0 rgba(213, 133, 18, 0.5);
border-color: #d58512;
}
.ui-keyboard-button.ui-keyboard-combo.ui-state-active {
-webkit-box-shadow: 1px 1px 3px 0 rgba(38, 154, 188, 0.5);
box-shadow: 1px 1px 3px 0 rgba(38, 154, 188, 0.5);
border-color: #269abc;
}
/* (in)valid inputs */
button.ui-keyboard-accept.ui-keyboard-valid-input {
-webkit-box-shadow: 1px 1px 3px 0 rgba(57, 132, 57, 0.5);
box-shadow: 1px 1px 3px 0 rgba(57, 132, 57, 0.5);
border-color: #398439;
}
button.ui-keyboard-accept.ui-keyboard-valid-input:not([disabled]):hover {
border-color: #4cae4c;
}
button.ui-keyboard-accept.ui-keyboard-invalid-input {
-webkit-box-shadow: 1px 1px 3px 0 rgba(172, 41, 37, 0.5);
box-shadow: 1px 1px 3px 0 rgba(172, 41, 37, 0.5);
border-color: #ac2925;
}
button.ui-keyboard-accept.ui-keyboard-invalid-input:not([disabled]):hover {
border-color: #d43f3a;
}
/* unlocked icon (keyboard enabled) */
button.ui-keyboard-toggle span {
width: .9em;
height: .9em;
display: inline-block;
background-repeat: no-repeat;
background-position: center center;
background-size: contain;
/* light theme unlocked icon - fill: #111 */
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg==');
}
/* locked icon (keyboard disabled) */
button.ui-keyboard-toggle.ui-keyboard-disabled span {
/* light theme locked icon - fill: #111 */
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4=');
}
.ui-keyboard.ui-keyboard-disabled button:not(.ui-keyboard-toggle), .ui-keyboard.ui-keyboard-disabled input {
opacity: 0.5;
}
/*** Alt-Keys Popup extension ***/
/* clickable overlay on top of keyboard to hide the popup */
.ui-keyboard-overlay {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: rgba(238, 238, 238, 0.5);
}
/* the actual popup styling, class names from the css.container option are also added */
.ui-keyboard-popup {
display: inline-block;
/* default buttons are 2em wide + .1em margin on either side (set in .ui-keyboard-button definition);
so use multiples of 2.2em for a max-width if you don't want any extra white space on the sides,
e.g. 5 buttons * 2.2em = 11em, 6 buttons * 2.2em = 13.2em, etc */
max-width: 22em;
/* 10 buttons */
}
.ui-keyboard.ui-keyboard-popup-open .ui-keyboard-keyset .ui-keyboard-button {
/* Disable keys under overlay while popup is open - see #654 */
pointer-events: none;
}
/*** Caret extension definition ***/
/* margin-top => is added to the caret height (top & bottom) */
.ui-keyboard-caret {
background: #c00;
width: 1px;
margin-top: 3px;
}
/*** Extender keyboard extension ***/
div.ui-keyboard-extender {
margin-left: 5px;
margin-right: 10px;
}
button.ui-keyboard-extender span {
width: .9em;
height: .9em;
display: inline-block;
margin-bottom: 3px;
background-repeat: no-repeat;
background-position: center center;
background-size: contain;
/* light theme extender icon - fill: #111 */
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6IzExMSI+PGc+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzExMSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c+PC9zdmc+');
}

@ -0,0 +1,196 @@
/* *** keyboard dark theme ***
for when jQuery UI themes are not being used
See https://jsfiddle.net/Mottie/6dmqhLvh/
*/
.ui-keyboard {
/* adjust overall keyboard size using "font-size" */
font-size: 14px;
text-align: center;
background: #282828;
border: 1px solid #484848;
padding: 4px;
/* include the following setting to place the
keyboard at the bottom of the browser window */
width: 100%;
height: auto;
left: 0px;
top: auto;
bottom: 0px;
position: fixed;
white-space: nowrap;
overflow-x: auto;
/* see issue #484 */
-ms-touch-action: manipulation;
touch-action: manipulation;
}
.ui-keyboard-has-focus {
z-index: 16001;
}
.ui-keyboard-button {
border: 1px solid #404040;
padding: 0 0.5em;
margin: 1px;
min-width: 3em;
height: 3em;
line-height: 3em;
vertical-align: top;
font-family: Helvetica, Arial, sans-serif;
color: #eee;
text-align: center;
border-radius: 5px;
-webkit-box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.5);
box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.5);
background: #444;
background-image: -webkit-linear-gradient(-90deg, #444 0%, #333 100%);
background-image: linear-gradient(-90deg, #444 0%, #333 100%);
cursor: pointer;
overflow: hidden;
-moz-user-focus: ignore;
}
.ui-keyboard-button:not([disabled]):hover {
background: #eee;
background-image: -webkit-linear-gradient(-90deg, #4f4f4f 0%, #444 100%);
background-image: linear-gradient(-90deg, #4f4f4f 0%, #444 100%);
}
.ui-keyboard-button:not([disabled]):active {
background: #ddd;
background-image: -webkit-linear-gradient(-90deg, #555 0%, #5f5f5f 100%);
background-image: linear-gradient(-90deg, #555 0%, #5f5f5f 100%);
}
.ui-keyboard-button span {
display: block;
width: 100%;
font-size: 1.2em;
text-align: center;
}
/* make action keys extra-wide */
.ui-keyboard-actionkey:not(.ui-keyboard-dec):not(.ui-keyboard-combo) {
min-width: 6em;
}
.ui-keyboard-space {
width: 15em;
}
.ui-keyboard-actionkey:not(.ui-keyboard-dec):not(.ui-keyboard-combo) span {
font-size: 0.8em;
position: relative;
top: -1em;
left: -1.6em;
}
.ui-keyboard-placeholder {
color: #888;
}
/* disabled or readonly inputs, or use input[disabled='disabled'] { color: #f00; } */
.ui-keyboard-nokeyboard {
color: #888;
border-color: #888;
}
.ui-keyboard-spacer {
display: inline-block;
width: 1px;
height: 0;
cursor: default;
}
.ui-keyboard-NBSP span, .ui-keyboard-ZWSP span, .ui-keyboard-ZWNJ span, .ui-keyboard-ZWJ span,
.ui-keyboard-LRM span, .ui-keyboard-RLM span {
font-size: 0.5em;
line-height: 1.5em;
white-space: normal;
}
/* combo key styling - toggles diacritics on/off */
.ui-keyboard-button.ui-keyboard-combo.ui-state-default {
-webkit-box-shadow: 1px 1px 3px 0 rgba(213, 133, 18, 0.5);
box-shadow: 1px 1px 3px 0 rgba(213, 133, 18, 0.5);
border-color: #d58512;
}
.ui-keyboard-button.ui-keyboard-combo.ui-state-active {
-webkit-box-shadow: 1px 1px 3px 0 rgba(38, 154, 188, 0.5);
box-shadow: 1px 1px 3px 0 rgba(38, 154, 188, 0.5);
border-color: #269abc;
}
/* (in)valid inputs */
button.ui-keyboard-accept.ui-keyboard-valid-input {
-webkit-box-shadow: 1px 1px 3px 0 rgba(57, 132, 57, 0.5);
box-shadow: 1px 1px 3px 0 rgba(57, 132, 57, 0.5);
border-color: #398439;
}
button.ui-keyboard-accept.ui-keyboard-valid-input:not([disabled]):hover {
border-color: #4cae4c;
}
button.ui-keyboard-accept.ui-keyboard-invalid-input {
-webkit-box-shadow: 1px 1px 3px 0 rgba(172, 41, 37, 0.5);
box-shadow: 1px 1px 3px 0 rgba(172, 41, 37, 0.5);
border-color: #ac2925;
}
button.ui-keyboard-accept.ui-keyboard-invalid-input:not([disabled]):hover {
border-color: #d43f3a;
}
/* unlocked icon (keyboard enabled) */
button.ui-keyboard-toggle span {
width: .9em;
height: .9em;
display: inline-block;
background-repeat: no-repeat;
background-position: center center;
background-size: contain;
/* dark theme unlocked icon - fill: #eee */
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg==');
}
/* locked icon (keyboard disabled) */
button.ui-keyboard-toggle.ui-keyboard-disabled span {
/* dark theme locked icon - fill: #eee */
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4=');
}
.ui-keyboard.ui-keyboard-disabled button:not(.ui-keyboard-toggle), .ui-keyboard.ui-keyboard-disabled input {
opacity: 0.5;
}
/*** Alt-Keys Popup extension ***/
/* clickable overlay on top of keyboard to hide the popup */
.ui-keyboard-overlay {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, 0.5);
}
/* the actual popup styling, class names from the css.container option are also added */
.ui-keyboard-popup {
display: inline-block;
/* default buttons are 2em wide + .1em margin on either side (set in .ui-keyboard-button definition);
so use multiples of 2.2em for a max-width if you don't want any extra white space on the sides,
e.g. 5 buttons * 2.2em = 11em, 6 buttons * 2.2em = 13.2em, etc */
max-width: 22em;
/* 10 buttons */
}
.ui-keyboard.ui-keyboard-popup-open .ui-keyboard-keyset .ui-keyboard-button {
/* Disable keys under overlay while popup is open - see #654 */
pointer-events: none;
}
/*** Caret extension definition ***/
/* margin-top => is added to the caret height (top & bottom) */
.ui-keyboard-caret {
background: #c00;
width: 1px;
margin-top: 3px;
}
/*** Extender keyboard extension ***/
div.ui-keyboard-extender {
margin-left: 5px;
margin-right: 10px;
}
button.ui-keyboard-extender span {
width: .9em;
height: .9em;
display: inline-block;
margin-bottom: 3px;
background-repeat: no-repeat;
background-position: center center;
background-size: contain;
/* dark theme extender icon - fill: #eee */
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6I2VlZSI+PGc+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2VlZSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c+PC9zdmc+');
}

@ -0,0 +1,44 @@
/* basic previewKeyset setup - modify as desired */
.ui-keyboard-keyset .ui-keyboard-button {
position: relative;
}
/* show mini-shift keyset with normal keyset */
.ui-keyboard-keyset-normal .ui-keyboard-button::after {
content: attr(data-shift);
font-size: 0.6em;
color: #999;
position: absolute;
top: -1em;
left: 2px;
z-index: 200;
}
/* show mini-normal keyset with shift keyset */
.ui-keyboard-keyset-shift .ui-keyboard-button::after {
content: attr(data-normal);
font-size: 0.6em;
color: #999;
position: absolute;
top: -1em;
left: 2px;
z-index: 200;
}
/* show mini-normal keyset with alt keyset */
.ui-keyboard-keyset-alt .ui-keyboard-button::after {
content: attr(data-alt-shift);
font-size: 0.6em;
color: #999;
position: absolute;
top: -1em;
left: 2px;
z-index: 200;
}
/* show mini-alt-shift keyset with alt-shift keyset */
.ui-keyboard-keyset-alt-shift .ui-keyboard-button::after {
content: attr(data-alt);
font-size: 0.6em;
color: #999;
position: absolute;
top: -1em;
left: 2px;
z-index: 200;
}

@ -0,0 +1,337 @@
/* keyboard - jQuery UI Widget */
.ui-keyboard {
text-align: center;
padding: .3em;
position: absolute;
left: 0;
top: 0;
z-index: 16000;
/* see issue #484 */
-ms-touch-action: manipulation;
touch-action: manipulation;
}
.ui-keyboard-has-focus {
z-index: 16001;
}
.ui-keyboard div {
font-size: 1.1em;
}
.ui-keyboard[contenteditable] {
white-space: pre;
}
.ui-keyboard-button {
height: 2em;
min-width: 2em;
margin: .1em;
cursor: pointer;
overflow: hidden;
line-height: 2em;
-moz-user-focus: ignore;
}
.ui-keyboard-button span {
padding: 0;
margin: 0;
white-space: nowrap;
display: inline-block;
}
.ui-keyboard-button-endrow {
clear: left;
}
.ui-keyboard-space {
width: 15em;
}
/* see http://nicolasgallagher.com/another-css-image-replacement-technique/ */
.ui-keyboard-space span, .ui-keyboard-empty span {
font: 0/0 a;
text-shadow: none;
color: transparent;
}
.ui-keyboard-preview-wrapper {
text-align: center;
position: relative;
overflow: hidden;
}
/* width is calculated in IE, since 99% = 99% full browser width =( */
.ui-keyboard-preview {
text-align: left;
margin: 0 0 3px 0;
display: inline;
width: 99%;
}
.ui-keyboard-keyset {
text-align: center;
white-space: nowrap;
}
.ui-keyboard-input {
text-align: left;
}
.ui-keyboard-input-current {
-moz-box-shadow: 0 0 5px #4d90fe;
-webkit-box-shadow: 0 0 5px #4d90fe;
box-shadow: 0 0 5px #4d90fe;
}
.ui-keyboard-placeholder {
color: #888;
}
/* disabled or readonly inputs, or use
input[disabled='disabled'] { color: #f00; } */
.ui-keyboard-nokeyboard {
color: #888;
border-color: #888;
}
.ui-keyboard-spacer {
display: inline-block;
width: 1px;
height: 0;
cursor: default;
}
.ui-keyboard-NBSP span, .ui-keyboard-ZWSP span, .ui-keyboard-ZWNJ span,
.ui-keyboard-ZWJ span, .ui-keyboard-LRM span, .ui-keyboard-RLM span {
font-size: 0.5em;
line-height: 1.5em;
white-space: normal;
}
/* combo key styling - toggles diacritics on/off */
.ui-keyboard-button.ui-keyboard-combo.ui-state-default {
border-color: #ffaf0f;
}
/* (in)valid inputs */
button.ui-keyboard-accept.ui-keyboard-valid-input {
border-color: #0c0;
background: #080;
color: #fff;
}
button.ui-keyboard-accept.ui-keyboard-valid-input:not([disabled]):hover {
background: #0a0;
}
button.ui-keyboard-accept.ui-keyboard-invalid-input {
border-color: #c00;
background: #800;
color: #fff;
opacity: 0.5;
filter: alpha(opacity=50);
}
button.ui-keyboard-accept.ui-keyboard-invalid-input:not([disabled]):hover {
background: #a00;
}
/*** Caret extension definition ***/
/* margin-top => is added to the caret height (top & bottom) */
.ui-keyboard-caret {
background: #c00;
width: 1px;
margin-top: 3px;
}
/*** jQuery Mobile definitions ***/
/* jQuery Mobile styles - need wider buttons because of font size and
text-overflow:ellipsis */
div.ui-body.ui-keyboard button.ui-keyboard-button.ui-btn {
padding: 0.5em 1em;
border-color: transparent;
}
.ui-body .ui-keyboard-button {
width: 3em;
height: 3em;
display: inline-block;
}
.ui-body .ui-keyboard-widekey {
width: 5.5em;
}
.ui-body .ui-keyboard-space {
width: 15em;
}
.ui-body .ui-keyboard-space span {
visibility: hidden; /* hides the ellipsis */
}
.ui-body .ui-keyboard-keyset {
line-height: 0.5em;
}
.ui-body input.ui-input-text, .ui-body textarea.ui-input-text {
width: 95%;
}
/* over-ride padding set by mobile ui theme - needed because the mobile script
wraps button text with several more spans */
.ui-body .ui-btn-inner {
height: 2em;
padding: 0.2em 0;
margin: 0;
}
.ui-body .ui-btn {
margin: 0;
font-size: 13px; /* mobile default size is 13px */
}
/* override Bootstrap excessive button padding */
button.ui-keyboard-button.btn {
padding: 1px 6px;
}
/* enable/disable icons */
button.ui-keyboard-toggle span {
width: .8em;
height: .8em;
display: inline-block;
background-repeat: no-repeat;
background-position: center center;
background-size: contain;
}
/* unlocked icon (keyboard enabled) */
button.ui-keyboard-toggle span {
/* light theme unlocked icon - fill: #111 */
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg==);
}
.ui-keyboard-dark-theme button.ui-keyboard-toggle span {
/* dark theme unlocked icon - fill: #eee */
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI+PHBhdGggZD0iTTguNyw0LjRINy41SDUuMHYtMS45YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40LDAtMi41LDEuMS0yLjUsMi41djEuOWgxLjIgdi0xLjljMC0wLjcsMC42LTEuMiwxLjItMS4yczEuMiwwLjYsMS4yLDEuMnYxLjljLTAuNywwLTEuMiwwLjYtMS4yLDEuMlY4LjggYzAsMC43LDAuNiwxLjIsMS4yLDEuMmg1LjBDOS40LDEwLDEwLDkuNCwxMCw4LjhWNS42QzEwLDUuMCw5LjQsNC40LDguOCw0LjR6IE02LjYsNy40djEuMCBjMCwwLjItMC4xLDAuMy0wLjMsMC4zUzYuMCw4LjYsNi4wLDguNFY3LjRjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zLDAuMy0wLjYsMC42LTAuNiBTNi45LDYuNiw2LjksNi45QzYuOSw3LjEsNi44LDcuMyw2LjYsNy40eiIvPjwvc3ZnPg==);
}
/* locked icon (keyboard disabled) */
button.ui-keyboard-toggle.ui-keyboard-disabled span {
/* light theme locked icon - fill: #111 */
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iIzExMSI+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4=);
}
.ui-keyboard-dark-theme button.ui-keyboard-toggle.ui-keyboard-disabled span {
/* dark theme locked icon - fill: #eee */
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgZmlsbD0iI2VlZSI+PHBhdGggZD0iTTcuNCA0LjRWMi41YzAtMS40LTEuMS0yLjUtMi41LTIuNWMtMS40IDAtMi41IDEuMS0yLjUgMi41djEuOSBjLTAuNyAwLTEuMiAwLjUtMS4yIDEuMnYzLjFDMS4zIDkuNCAxLjggMTAgMi41IDEwaDQuOWMwLjcgMCAxLjItMC42IDEuMi0xLjJWNS42IEM4LjcgNC45IDguMSA0LjQgNy40IDQuNHogTTUuMyA3LjR2MS4wYzAgMC4yLTAuMSAwLjMtMC4zIDAuM2MtMC4yIDAtMC4zLTAuMS0wLjMtMC4zVjcuNCBjLTAuMi0wLjEtMC4zLTAuMy0wLjMtMC41YzAtMC4zIDAuMy0wLjYgMC42LTAuNmMwLjMgMCAwLjYgMC4zIDAuNiAwLjYgQzUuNiA3LjEgNS41IDcuMyA1LjMgNy40eiBNNi4yIDQuNEgzLjdWMi41YzAtMC43IDAuNS0xLjIgMS4yLTEuMmMwLjcgMCAxLjIgMC42IDEuMiAxLjIgVjQuNHoiLz48L3N2Zz4=);
}
.ui-keyboard.ui-keyboard-disabled button:not(.ui-keyboard-toggle),
.ui-keyboard.ui-keyboard-disabled input {
opacity: 0.5;
}
/*** Alt-Keys Popup extension ***/
/* clickable overlay on top of keyboard to hide the popup */
.ui-keyboard-overlay {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background: rgba(0, 0, 0, 0.5);
}
/* the actual popup styling, class names from the css.container option are also
added */
.ui-keyboard-popup {
display: inline-block;
/* default buttons are 2em wide + .1em margin on either side (set in
.ui-keyboard-button definition); so use multiples of 2.2em for a max-width
if you don't want any extra white space on the sides, e.g.
5 buttons * 2.2em = 11em,
6 buttons * 2.2em = 13.2em, etc
*/
max-width: 22em; /* 10 buttons */
}
.ui-keyboard.ui-keyboard-popup-open .ui-keyboard-keyset .ui-keyboard-button {
/* Disable keys under overlay while popup is open - see #654 */
pointer-events: none;
}
/*** Extender keyboard extension ***/
div.ui-keyboard-extender {
margin-left: 5px;
}
button.ui-keyboard-extender span {
width: .9em;
height: .9em;
display: inline-block;
margin-bottom: 3px;
background-repeat: no-repeat;
background-position: center center;
background-size: contain;
/* light theme extender icon - fill: #111 */
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6IzExMSI+PGc+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzExMSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c+PC9zdmc+);
}
.ui-keyboard-dark-theme button.ui-keyboard-extender span {
/* dark theme extender icon - fill: #eee */
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgc3R5bGU9ImZpbGw6I2VlZSI+PGc+PHBhdGggc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I2VlZSIgZD0iTSAwLjUsNC41IDE1LjUsNC41IDE1LjUsMTUuNSAwLjUsMTUuNSBaIj48L3BhdGg+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iMiIgeT0iNiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjYiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSI4IiB5PSI2Ij48L3JlY3Q+PHBhdGggZD0ibSAxMSw2IDMsMCAwLDUgLTIsMCAwLC0zIC0xLDAgeiI+PC9wYXRoPjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjEyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjUiIHk9IjEyIj48L3JlY3Q+PHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iOSIgeT0iOSI+PC9yZWN0PjxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYiIHk9IjkiPjwvcmVjdD48cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIyIiB5PSIxMiI+PC9yZWN0PjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjkiPjwvcmVjdD48L2c+PC9zdmc+);
}
/* Media Queries (optimized for jQuery UI themes;
may be slightly off in jQuery Mobile themes) */
/* 240 x 320 (small phone) */
@media all and (max-width: 319px) {
.ui-keyboard div {
font-size: 9px;
}
.ui-keyboard .ui-keyboard-input {
font-size: 12px;
}
/* I don't own an iPhone so I have no idea how small this really is... is it
even clickable with your finger? */
.ui-body .ui-btn {
margin: 0;
font-size: 9px;
}
.ui-body .ui-keyboard-button {
width: 1.8em;
height: 2.5em;
}
.ui-body .ui-keyboard-widekey {
width: 4em;
}
.ui-body .ui-keyboard-space {
width: 8em;
}
.ui-body .ui-btn-inner {
height: 2.5em;
padding: 0.3em 0;
}
}
/* 320 x 480 (iPhone) */
@media all and (min-width: 320px) and (max-width: 479px) {
.ui-keyboard div {
font-size: 9px;
}
.ui-keyboard .ui-keyboard-input {
font-size: 14px;
}
/* I don't own an iPhone so I have no idea how small this really is... is it
even clickable with your finger? */
.ui-body .ui-btn {
margin: 0;
font-size: 11px;
}
.ui-body .ui-keyboard-button {
width: 1.8em;
height: 3em;
}
.ui-body .ui-keyboard-widekey {
width: 4.5em;
}
.ui-body .ui-keyboard-space {
width: 10em;
}
.ui-body .ui-btn-inner {
height: 3em;
padding: 0.7em 0;
}
}
/* 480 x 640 (small tablet) */
@media all and (min-width: 480px) and (max-width: 767px) {
.ui-keyboard div {
font-size: 13px;
}
.ui-keyboard .ui-keyboard-input {
font-size: 14px;
}
.ui-body .ui-btn {
margin: 0;
font-size: 10px;
}
.ui-body .ui-keyboard-button {
height: 2.5em;
}
.ui-body .ui-btn-inner {
height: 2.5em;
padding: 0.5em 0;
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
.ui-keyboard-keyset .ui-keyboard-button{position:relative}.ui-keyboard-keyset-normal .ui-keyboard-button::after{content:attr(data-shift);font-size:.6em;color:#999;position:absolute;top:-1em;left:2px;z-index:200}.ui-keyboard-keyset-shift .ui-keyboard-button::after{content:attr(data-normal);font-size:.6em;color:#999;position:absolute;top:-1em;left:2px;z-index:200}.ui-keyboard-keyset-alt .ui-keyboard-button::after{content:attr(data-alt-shift);font-size:.6em;color:#999;position:absolute;top:-1em;left:2px;z-index:200}.ui-keyboard-keyset-alt-shift .ui-keyboard-button::after{content:attr(data-alt);font-size:.6em;color:#999;position:absolute;top:-1em;left:2px;z-index:200}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
/*! jQuery UI Virtual Keyboard Autocomplete v1.11.4 */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(c){"use strict";c.fn.addAutocomplete=function(l){var u={position:{of:null,my:"right top",at:"left top",collision:"flip"},events:"autocomplete",data:""};return this.each(function(){var t,o,a=c(this).data("keyboard");a&&(o=a.namespace+"Autocomplete",a.autocomplete_namespace=o,a.extensionNamespace.push(o),a.autocomplete_init=function(){var e=(t=a.autocomplete_options=c.extend(!0,{},u,l)).events||t.data||"autocomplete";a.options.alwaysOpen&&a.isVisible()&&a.autocomplete_setup(),a.$el.unbind(o).bind(c.keyboard.events.kbVisible+o,function(){a.autocomplete_setup()}).bind(c.keyboard.events.kbHidden+o,function(){a.$el[t.data||"autocomplete"]("close")}).bind(c.keyboard.events.kbChange+o,function(){a.hasAutocomplete&&a.isVisible()&&a.$el.val(a.$preview.val())}).bind(e+"open"+o,function(){if(a.hasAutocomplete){var e=c.extend({},t.position);e.of=e.of||a.$keyboard,a.$autocomplete.menu.element.position(e)}}).bind(e+"select"+o,function(e,t){a.autocomplete_getVal(t.item)})},a.autocomplete_getVal=function(e){var t;switch(typeof e){case"string":t=e||"";break;case"object":t=e.label||e.value||"";break;default:t=a.preview&&a.preview.value||a.el.value}t=t.toString(),a.hasAutocomplete&&""!==t&&((a.$preview||a.$el).val(t).focus(),a.last.start=t.length,a.last.end=t.length,a.last.val=t)},a.autocomplete_update=function(e){clearTimeout(a.$autocomplete.searching),a.$autocomplete.searching=setTimeout(function(){a.$autocomplete.term!==a.$autocomplete.element.val()&&(a.$autocomplete.selectedItem=null,a.$autocomplete.search(null,e))},a.$autocomplete.options.delay)},a.autocomplete_navKeys={8:"backSpace",9:"tab",13:"enter",20:"capsLock",27:"escape",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"delete"},a.autocomplete_setup=function(){var t;if(a.$autocomplete=a.$el.data(a.autocomplete_options.data)||a.$el.data("uiAutocomplete")||a.$el.data("ui-autocomplete")||a.$el.data("autocomplete"),a.hasAutocomplete=void 0!==a.$autocomplete&&!a.$autocomplete.options.disabled,a.hasAutocomplete){a.$preview.bind("keydown"+o+" keypress"+o,function(e){a.$preview&&e.namespace!==a.$autocomplete.eventNamespace&&(e.namespace=a.$autocomplete.eventNamespace.slice(1),(t=a.autocomplete_navKeys[e.which])?a.el!==a.preview&&(a.$el.triggerHandler(e),"enter"===t&&setTimeout(function(){a.$autocomplete&&(a.$preview.val(a.$autocomplete.selectedItem.value),a.$preview.focus())},100)):a.autocomplete_update(e))});var e="mouseup mousedown mouseleave touchstart touchend touchcancel ".split(" ").join(o+" ");a.bindButton(e,function(e){a.autocomplete_update(e)})}a.escCloseCallback.autocomplete||(a.escCloseCallback.autocomplete=a.checkAutocompleteMenu)},a.checkAutocompleteMenu=function(e){return a.hasAutocomplete&&e.closest("ul").hasClass("ui-autocomplete")},a.autocomplete_destroy=function(){clearTimeout(a.$autocomplete.searching),a.hasAutocomplete=!1,a.$el.unbind(o),a.$preview&&(a.$preview.unbind(o),a.unbindButton(o)),delete a.$autocomplete},a.autocomplete_init())})}});

@ -0,0 +1,2 @@
/*! jQuery UI Virtual Keyboard Virtual Caret v1.1.5 (beta) */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(b){"use strict";var h=b.keyboard;h.firefox=void 0!==window.mozInnerScreenX,b.extend(h.css,{caret:"ui-keyboard-caret",caretMirror:"ui-keyboard-mirror-div"}),b.fn.addCaret=function(e){var t={caretClass:"",charAttr:"data-character",charIndex:1,offsetX:0,offsetY:0,adjustHt:0};return this.each(function(){var f,i,o=h.events,u=b(this).data("keyboard");u&&(f=u.caret_options=b.extend({},t,e),i=u.caret_namespace=u.namespace+"caret",u.extensionNamespace.push(i),u.textareaCaretProperties=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"],u.caret_setup=function(){var e=h.css,t="keyup keypress mouseup mouseleave ".split(" ").join(i+" "),r="position:absolute;visibility:hidden;top:-9999em;left:-9999em;white-space:pre-wrap;z-index:-10;"+("INPUT"===u.preview.nodeName?"":"word-wrap:break-word;");u.$keyboard.find("."+e.caretMirror).remove(),u.caret_$div=b('<div class="'+e.caretMirror+'" style="'+r+'">').appendTo(u.$keyboard),u.$caret&&u.$caret.remove(),u.$caret=b('<div class="'+e.caret+" "+f.caretClass+'" style="position:absolute;">').insertAfter(u.$preview),u.$el.unbind(o.kbChange+i).bind(o.kbChange+i,function(){u.findCaretPos()}),u.$preview.unbind(t).bind(t,function(){u.findCaretPos()})},u.findCaretPos=function(){if(u.caret_$div){var t,r,e,i,o,n,a,s,d=u.preview,c=parseFloat(u.$preview.css("fontSize")),p="INPUT"===d.nodeName,l=u.caret_$div[0];t=l.style,r=window.getComputedStyle?getComputedStyle(d,null):d.currentStyle,i=h.caret(u.$preview),o=Math["ltr"===r.direction?"max":"min"](i.start,i.end),u.textareaCaretProperties.forEach(function(e){t[e]=r[e]}),h.firefox&&(t.width=parseInt(r.width,10)-2+"px",d.scrollHeight>parseInt(r.height,10)&&(t.overflowY="scroll")),t.width=parseInt(p?d.scrollWidth:r.width,10)+(p?2*c:0)+"px",l.textContent=d.value.substring(0,o),"INPUT"===d.nodeName&&(l.textContent=l.textContent.replace(/\x20/g," ")),(a=document.createElement("span")).textContent=d.value.substring(o)||"",l.appendChild(a),s=b(a).position(),i="center"===t.textAlign?c:0,u.caretPos={top:s.top+parseInt(r.borderTopWidth,10)+f.offsetY,left:s.left+parseInt(r.borderLeftWidth,10)+f.offsetX-i},e=parseInt(u.$caret.css("margin-top"),10),t=Math.round(c+2*e)+f.adjustHt,s=u.$preview.position(),u.$caret.css({top:s.top-d.scrollTop+u.caretPos.top-e,left:s.left-d.scrollLeft+u.caretPos.left,height:t}),n=d.value.substring(o,o+f.charIndex).replace(/\s/," ")||" ",u.$caret.attr(f.charAttr,n)}},u.$el.unbind(i).bind(o.kbBeforeVisible+i,function(){u.caret_setup()}).bind(o.kbVisible+i,function(){u.findCaretPos()}).bind(o.kbHidden+i,function(){var e="keyup keypress mouseup mouseleave ".split(" ").join(i+" ");u.$preview.unbind(e),u.$caret.remove(),u.$caret=null,u.caret_$div=null}),u.options.alwaysOpen&&u.isVisible()&&(u.caret_setup(),u.findCaretPos()))})}});

@ -0,0 +1,2 @@
/*! jQuery UI Virtual Keyboard Extender v1.0.3 */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(o){"use strict";var s=o.keyboard;s.css.extender="ui-keyboard-extender",s.language.en.display.extender=" :toggle_numpad",s.layouts.numpad={normal:["{clear} / * -","7 8 9 +","4 5 6 %","1 2 3 =","0 {dec} {left} {right}"]},s.keyaction.extender=function(e){return e.extender_toggle(),!1},o.fn.addExtender=function(e){var n={layout:"numpad",showing:!1,reposition:!0};return this.each(function(){var t=o(this).data("keyboard");if(t){if(t.extender_options=o.extend({},n,t.extender_options,e),t.extender_namespace)return t.extender_layoutSwitcher();t.extender_namespace=t.namespace+"extender",t.extensionNamespace.push(t.extender_namespace),t.extender_layoutSwitcher=function(){t.extender_lastKeyset=t.last.keyset,t.extender_bindEvents(!1),t.$el.one(s.events.kbBeforeVisible,function(){t.shiftActive=t.extender_lastKeyset[0],t.altActive=t.extender_lastKeyset[1],t.metaActive=t.extender_lastKeyset[2],t.showKeySet(),t.extender_setup(),t.extender_bindEvents()}),t.redraw()},t.extender_bindEvents=function(e){var n=s.events.kbBeforeVisible+t.extender_namespace;t.$el.unbind(n),!1!==e&&t.$el.bind(n,function(){t.extender_setup()})},t.extender_setup=function(){var e,n=t.extender_options.layout;void 0===s.builtLayouts[n]&&t.buildKeyboard(n),(e=s.builtLayouts[n].$keyboard.find("."+s.css.keySet+"-normal").clone()).removeClass().removeAttr("name").addClass(s.css.extender).children("button").removeAttr("data-pos"),e[0].style.display=t.extender_options.showing?"inline-block":"none",t.$keyboard.find("div."+s.css.extender).remove(),t.$keyboard.append(e),t.extender_toggle(t.extender_options.showing),t.bindKeys()},t.extender_toggle=function(e){t.extender_options.showing=void 0===e?!t.extender_options.showing:e,t.$keyboard.find("button."+s.css.extender).toggleClass(t.options.css.buttonActive,t.extender_options.showing).end().find("div."+s.css.extender)[0].style.display=t.extender_options.showing?"inline-block":"none",t.extender_options.reposition&&o(window).trigger("resize")},t.options.alwaysOpen&&t.isVisible()&&t.extender_setup(),t.extender_bindEvents()}})}});

@ -0,0 +1,2 @@
/*! jQuery UI Virtual Keyboard for jQuery Mobile Themes v1.4.1 */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(a){a.fn.addMobile=function(e){var n,t={container:{theme:"b",cssClass:"ui-body"},input:{theme:"b",cssClass:""},buttonMarkup:{theme:"b",cssClass:"ui-btn",shadow:"true",corners:"true"},buttonHover:{theme:"b",cssClass:"ui-btn-hover"},buttonAction:{theme:"b",cssClass:"ui-btn-active"},buttonActive:{theme:"b",cssClass:"ui-btn-active"},allThemes:"a b c"};return this.each(function(){var o=a(this).data("keyboard");o&&void 0!==a.fn.textinput&&(o.mobile_options=n=a.extend(!0,{},t,e),o.mobile_themes=a.trim((" "+n.allThemes).split(" ").join(" "+n.buttonMarkup.cssClass+"-")+(" "+n.allThemes).split(" ").join(" "+n.buttonAction.cssClass+"-")+(" "+n.allThemes).split(" ").join(" "+n.buttonActive.cssClass+"-")),void 0===o.options.mobile_savedActiveClass&&(o.options.mobile_savedActiveClass=""+o.options.css.buttonActive),o.mobile_init=function(){var e=o.namespace+"Mobile";a("."+a.keyboard.css.input).textinput(),o.options.alwaysOpen&&o.isVisible&&o.mobile_setup(),o.extensionNamespace.push(e),o.$el.unbind(e).bind(a.keyboard.events.kbBeforeVisible+e,function(){o&&o.el.active&&o.$keyboard.length&&o.$keyboard.css("visibility","hidden")}).bind(a.keyboard.events.kbVisible+e,function(){o&&o.el.active&&o.$keyboard.length&&(o.mobile_setup(),o.$keyboard.css("visibility","visible"),o.$preview.focus())})},o.mobile_setup=function(){var e,t=a.keyboard.css,s=o.options,i=o.mobile_themes;o.mobile_$actionKeys=o.$keyboard.find("."+o.options.css.buttonAction),s.css.buttonActive=s.mobile_savedActiveClass+" "+o.modOptions(n.buttonActive,n.buttonMarkup),o.$keyboard.addClass(o.modOptions(n.container,n.container)).find("."+t.preview).removeClass("ui-widget ui-widget-content").addClass(o.modOptions(n.input,n.input)).end().find("button").removeClass(a.trim("ui-corner-all ui-state-default "+i)).addClass(o.modOptions(n.buttonMarkup,n.buttonMarkup)).not(o.mobile_$actionKeys).hover(function(){a(this).removeClass(i).addClass(o.modOptions(n.buttonHover,n.buttonMarkup))},function(){a(this).removeClass(i+" "+n.buttonHover.cssClass).addClass(o.modOptions(n.buttonMarkup,n.buttonMarkup))}),o.mobile_$actionKeys.removeClass(i).addClass(o.modOptions(n.buttonAction,n.buttonMarkup)),o.msie&&o.$preview[0]!==o.el&&(o.$preview.hide(),o.$keyboard.css("width",""),o.width=o.$keyboard.outerWidth(),o.$keyboard.width(o.width+parseInt(o.$preview.css("fontSize"),10)),o.$preview.width(o.width),o.$preview.show()),a.ui&&a.ui.position&&((e=s.position).of=e.of||o.$el.data("keyboardPosition")||o.$el,e.collision=e.collision||"flipfit flipfit",o.$keyboard.position(e))},o.modOptions=function(e,t){return" "+(e.cssClass||"")+" "+(t&&t.cssClass?t.cssClass+"-"+(e.theme||""):"")+("true"==e.shadow?" ui-shadow":"")+("true"==e.corners?" ui-corner-all":"")},o.mobile_init())})}});

@ -0,0 +1,2 @@
/*! jQuery UI Virtual Keyboard Navigation v1.6.2 */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(u){"use strict";u.keyboard=u.keyboard||{},u.keyboard.navigationKeys={toggle:112,enter:13,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40,caretrt:45,caretlt:46,caretright:function(e){u.keyboard.keyaction.right(e)},caretleft:function(e){u.keyboard.keyaction.left(e)}},u.fn.addNavigation=function(t){return this.each(function(){var c,e,v=u(this).data("keyboard"),y=v.options,n=u.keyboard.events,l=u.keyboard.css;v&&(v.navigation_options=c=u.extend({},{position:[0,0],toggleMode:!1,focusClass:"hasFocus",toggleKey:null,rowLooping:!1},t),v.navigation_keys=e=u.extend({},u.keyboard.navigationKeys),v.navigation_namespace=v.namespace+"Nav",v.extensionNamespace.push(v.navigation_namespace),v.saveNav=[v.options.tabNavigation,v.options.enterNavigation],v.allNavKeys=u.map(e,function(e){return e}),v.navigation_init=function(){v.$keyboard.toggleClass(c.focusClass,c.toggleMode).find("."+l.keySet+":visible").find("."+l.keyButton+'[data-pos="'+c.position[0]+","+c.position[1]+'"]').addClass(y.css.buttonHover),v.$preview.unbind(v.navigation_namespace).bind("keydown"+v.navigation_namespace,function(e){return v.checkKeys(e.which)})},v.checkKeys=function(e,t){if(void 0!==e){var a=v.navigation_keys;return(e===(c.toggleKey||a.toggle)||t)&&(c.toggleMode=!t&&!c.toggleMode,v.options.tabNavigation=!c.toggleMode&&v.saveNav[0],v.options.enterNavigation=!c.toggleMode&&v.saveNav[1]),v.$keyboard.toggleClass(c.focusClass,c.toggleMode),c.toggleMode&&e===a.enter?(v.$keyboard.find("."+l.keySet+":visible").find("."+l.keyButton+'[data-pos="'+c.position[0]+","+c.position[1]+'"]').trigger(n.kbRepeater),!1):c.toggleMode&&0<=u.inArray(e,v.allNavKeys)?(v.navigateKeys(e),!1):void 0}},v.getMaxIndex=function(e,t){return e.find("."+l.keyButton+'[data-pos^="'+t+',"]').length-1},v.leftNavigateKey=function(e,t){var a=v.navigation_options.rowLooping,n=e-1;return 0<=n?n:a?t:0},v.rightNavigateKey=function(e,t){var a=v.navigation_options.rowLooping,n=e+1;return n<=t?n:a?0:t},v.navigateKeys=function(e,t,a){if(v.isVisible()){a="number"==typeof a?a:c.position[1],t="number"==typeof t?t:c.position[0];var n,o=v.$keyboard.find("."+l.keySet+":visible"),i=o.find("."+l.endRow).length-1,s=v.getMaxIndex(o,t),r=v.last,g=v.$preview.val().length,d=v.navigation_keys;switch(e){case d.pageup:t=0;break;case d.pagedown:t=i;break;case d.end:a=s;break;case d.home:a=0;break;case d.left:a=v.leftNavigateKey(a,s);break;case d.up:t+=0<t?-1:0,n=v.getMaxIndex(o,t),a=a===s?n:a;break;case d.right:a=v.rightNavigateKey(a,s);break;case d.down:t+=i<t+1?0:1,n=v.getMaxIndex(o,t),a=a===s?n:a;break;case d.caretrt:r.start++;break;case d.caretlt:r.start--}e!==d.caretrt&&e!==d.caretlt||(r.start=r.start<0?0:r.start>g?g:r.start,v.last.start=v.last.end=r.end=r.start,u.keyboard.caret(v.$preview,v.last)),(s=v.getMaxIndex(o,t))<a&&(a=s),o.find("."+y.css.buttonHover).removeClass(y.css.buttonHover),o.find("."+l.keyButton+'[data-pos="'+t+","+a+'"]').addClass(y.css.buttonHover),c.position=[t,a]}},v.options.alwaysOpen&&v.isVisible()&&(v.$keyboard.find("."+y.css.buttonHover).removeClass(y.css.buttonHover),v.navigation_init()),v.$el.unbind(v.navigation_namespace).bind(n.kbVisible,function(){v.$keyboard.find("."+y.css.buttonHover).removeClass(y.css.buttonHover),v.navigation_init()}).bind(n.kbInactive+" "+n.kbHidden,function(e){v.checkKeys(e.which,!0)}).bind(n.kbKeysetChange,function(){v.navigateKeys(null)}).bind("navigate navigateTo",function(e,t,a){var n;(t=isNaN(t)?t.toLowerCase():t)in v.navigation_keys?(n=v.navigation_keys[t],isNaN(n)&&n in u.keyboard.keyaction?u.keyboard.keyaction[n](v,this,e):u.isFunction(n)?n(v):v.checkKeys(n)):"string"==typeof t&&t in u.keyboard.keyaction?u.keyboard.keyaction[t](v,this,e):v.navigateKeys(null,t,a)}))})}});

@ -0,0 +1,2 @@
/*! jQuery UI Virtual Keyboard previewKeyset v1.1.1 */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(d){"use strict";d.keyboard=d.keyboard||{},d.fn.previewKeyset=function(n){return this.each(function(){var e=d(this).data("keyboard"),t=e.namespace+"Preview";e&&(e.previewKeyset_options=d.extend({},{sets:["normal","shift","alt","alt-shift"]},n),e.extensionNamespace.push(t),e.previewKeyset=function(){var a=d.keyboard.css,r=e.previewKeyset_options.sets,s=e.$keyboard.find("."+a.keySet).filter('[name="'+r.join('"],[name="')+'"]');1<s.length&&s.eq(0).find("."+a.keyButton).not("."+a.keyAction).each(function(){var e,t,n={},i=r.length,o=s.find('button[data-pos="'+d(this).attr("data-pos")+'"]');for(e=0;e<i;e++)t=o.eq(e).parent().attr("name"),0<=d.inArray(t,r)&&(n["data-"+t]=o.eq(e).find("."+a.keyText).text());o.attr(n)})},e.options.alwaysOpen&&e.isVisible()?e.previewKeyset():e.$el.unbind(d.keyboard.events.kbBeforeVisible+t).bind(d.keyboard.events.kbBeforeVisible+t,function(){e.previewKeyset()}))})}});

@ -0,0 +1,2 @@
/*! jQuery UI Virtual Keyboard Scramble Extension v1.7.1 */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(f){"use strict";f.keyboard=f.keyboard||{},f.fn.addScramble=function(e){var o={targetKeys:/[a-z\d]/i,byRow:!0,byKeySet:!1,randomizeOnce:!0,randomizeInput:!1,init:null,sameForAll:!1};return this.each(function(){var b,c=f(this).data("keyboard"),t=c.namespace+"Scramble",a=c.options;c&&!c.scramble_options&&(b=c.scramble_options=f.extend({},o,e),c.extensionNamespace.push(t),b.orig_create=a.create,c.scramble_setup=function(e){var t,a,o,n,r,i,u,s,d,y,l;if(t=e.find("."+f.keyboard.css.keySet),e.length){for(b.byKeySet&&(t=t.eq(0)),a=0;a<t.length;a++)if(o=t.eq(a),u=0,l=[],d=[],s=[],y=[],o.children("button, span, br").each(function(){"BR"===this.tagName?(b.byRow?(l.push(this),d.push(!1),y[u]=l,s[u]=d,l=[],d=[]):(y[u]=this,s[u]=!1),u++):(i=!(1!==(i=f(this).attr("data-value")||"").length||!b.targetKeys.test(i))&&i,b.byRow?(l.push(this),d.push(i)):(y[u]=this,s[u]=i,u++))}),o.find("."+f.keyboard.css.endRow).remove(),b.byRow)for(r=0;r<y.length;r++)for(l=c.shuffle(y[r],s[r]),n=0;n<l.length;n++)o.append(l[n]);else for(l=c.shuffle(y,s),n=0;n<l.length;n++)o.append(l[n]);return b.byKeySet&&(e=c.realign(e)),e}},c.getRandomUInt=function(e){var t=window.crypto||window.msCrypto;if(void 0===t)return Math.floor(Math.random()*e);var a=new Uint32Array(1);return t.getRandomValues(a),a[0]%e},c.shuffle=function(e,t){for(var a,o,n=e.length;0<n;)o=c.getRandomUInt(n),!1===t[n-1]&&n--,!1!==t[n-1]&&!1!==t[o]&&(a=e[--n],e[n]=e[o],e[o]=a);return e},c.realign=function(e){var a,o,n,r=e.find("."+f.keyboard.css.keySet),t=r.eq(0);return r=r.filter(":gt(0)"),t.children().each(function(e,t){o="BR"===t.tagName,n=f(t).attr("data-pos"),r.each(function(e,t){a=o?"br:first":'button[data-pos="'+n+'"]',f(t).find(a).appendTo(t)})}),e},c.setScrambleLayout=function(){if(!/^scrambled/.test(a.layout)){c.orig_layout=a.layout;var e=e||"scrambled"+Math.round(1e4*Math.random());a.layout=b.sameForAll?e:"scrambled"+Math.round(1e4*Math.random())}},a.create=function(){var e=a.layout;f.keyboard.builtLayouts[e]={mappedKeys:{},acceptedKeys:[],$keyboard:null},c.layout=a.layout=c.orig_layout,c.buildKeyboard(c.layout,!0),c.layout=a.layout=e,f.keyboard.builtLayouts[e]=f.extend(!0,{},f.keyboard.builtLayouts[c.orig_layout]),b.randomizeOnce&&(f.keyboard.builtLayouts[e].$keyboard=c.scramble_setup(f.keyboard.builtLayouts[c.orig_layout].$keyboard.clone())),c.$keyboard=f.keyboard.builtLayouts[e].$keyboard,b.randomizeInput?c.$el.unbind(f.keyboard.events.kbChange+t).bind(f.keyboard.events.kbChange+t,function(e,t){b.targetKeys.test(t.last.key)&&(t.$keyboard.find("."+a.css.buttonHover).removeClass(a.css.buttonHover),t.$keyboard=t.scramble_setup(t.$keyboard),f(document.elementFromPoint(e.clientX,e.clientY)).trigger("mouseenter"))}):b.randomizeOnce||c.$el.unbind(f.keyboard.events.kbBeforeVisible+t).bind(f.keyboard.events.kbBeforeVisible+t,function(e,t){t.$keyboard=t.scramble_setup(t.$keyboard)}),f.isFunction(b.orig_create)&&b.orig_create(c)},c.setScrambleLayout(),a.alwaysOpen&&c.$keyboard.length?setTimeout(function(){var e=f.keyboard.builtLayouts;c.$keyboard=c.scramble_setup(c.$keyboard),c.setScrambleLayout(),void 0===e[a.layout]&&(e[a.layout]={mappedKeys:f.extend({},e[c.layout].mappedKeys),acceptedKeys:f.extend([],e[c.layout].acceptedKeys),$keyboard:c.$keyboard.clone()}),f.isFunction(b.init)&&b.init(c)},0):f.isFunction(b.init)&&b.init(c))})}});

@ -0,0 +1,2 @@
/*! jQuery UI Virtual Keyboard Typing Simulator v1.11.1 */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&"object"==typeof module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(d){d.fn.addTyping=function(e){var t={showTyping:!0,lockTypeIn:!1,delay:250,hoverDelay:250},f=d.keyboard;return this.each(function(){var g,l=d(this).data("keyboard");l&&(g=l.typing_options=d.extend({},t,e),l.typing_keymap={" ":"space",'"':"34","'":"39","&nbsp;":"space","\b":"bksp","{b}":"bksp","{d}":"del","{l}":"left","{r}":"right","\n":"enter","\r":"enter","{e}":"enter","\t":"tab","{t}":"tab"},l.typing_xref={8:"bksp",9:"tab",13:"enter",32:"space",37:"left",39:"right",46:"del"},l.typing_event=!1,l.typing_namespace=l.namespace+"typing",l.extensionNamespace.push(l.typing_namespace),g.savedLockInput=l.options.lockInput,l.typing_setup_reset=function(){var e=f.events,t=l.typing_namespace,n=[e.kbHidden,e.kbInactive,""].join(t+" ");l.$el.unbind(t).bind(n,function(){l.typing_reset()}),l.unbindButton(t).bindButton("mousedown"+t,function(){l.typing_reset()})},l.typing_setup=function(){var e=l.typing_namespace;l.typing_setup_reset(),l.$el.bind(f.events.kbBeforeVisible+e,function(){l.typing_setup()}),l.$preview.unbind(e).bind("keyup"+e,function(e){return!(g.init&&g.lockTypeIn||!g.showTyping)&&(37<=e.which&&e.which<=40?void 0:(16===e.which&&(l.shiftActive=!1),18===e.which&&(l.altActive=!1),16===e.which||18===e.which?(l.showSet(),void setTimeout(function(){l.$preview&&l.$preview.focus()},200)):void 0))}).bind("keydown"+e,function(e){if(g.init&&g.lockTypeIn||!g.showTyping)return!1;e.temp=!1,16===e.which&&(e.temp=!l.shiftActive,l.shiftActive=!0),18===e.which&&(e.temp=!l.altActive,l.altActive=!0),e.temp&&(l.showSet(),l.$preview.focus()),l.typing_event=!0,l.typing_xref[e.which]&&l.typing_findKey("",e)}).bind("keypress"+e,function(e){if(g.init&&g.lockTypeIn)return!1;l.typing_event&&!l.options.lockInput&&(l.typing_reset(),l.typing_event=!0,l.typing_findKey("",e))})},l.typing_reset=function(){l.typing_event=g.init=!1,g.text="",g.len=g.current=0,l.options.lockInput=g.savedLockInput},l.typeIn=function(e,t,n,i){if(!l.isVisible())return clearTimeout(l.typing_timer),void l.typing_reset();if(l.typing_event){if(void 0===e)return l.typing_event=!1,void(l.options.lockInput=g.savedLockInput)}else!0!==g.init&&(g.init=!0,l.options.lockInput=g.lockTypeIn,g.text=e||g.text||"",g.len=g.text.length,g.delay=t||g.delay,g.current=0,n&&(g.callback=n)),"{"===(e=g.text.substring(g.current,++g.current))&&"}"===g.text.substring(g.current+1,g.current+2)&&(e+=g.text.substring(g.current,g.current+=2)),l.typing_findKey(e,i)},l.typing_findKey=function(e,t){var n,i,p,s,y,o,r,a,c=f.css,u=f.builtLayouts[l.layout].mappedKeys;if(l.isOpen&&l.$keyboard.length)if(o=l.$keyboard.find("."+c.keySet),s=e in l.typing_keymap?l.typing_keymap[e]:e,n="."+c.keyButton+'[data-action="'+s+'"]',l.typing_event&&t&&(n="keypress"!==t.type&&l.typing_xref.hasOwnProperty(t.keyCode||t.which)?"."+c.keyPrefix+l.processName(l.typing_xref[t.keyCode||t.which]):(i=String.fromCharCode(t.charCode||t.which),u.hasOwnProperty(i)?"."+c.keyButton+'[data-value="'+u[i].replace(/"/g,'\\"')+'"]':"."+c.keyPrefix+l.processName(i))),(y=o.filter(":visible").find(n)).length?l.typing_simulateKey(y,e,t):(a=(y=l.typing_event?o.find(n):(p=e in l.typing_keymap?l.typing_keymap[e]:l.processName(e),o.find("."+c.keyPrefix+p))).closest("."+c.keySet)).attr("name")?(g.showTyping&&(r=a.attr("name"),l.shiftActive=/shift/.test(r),l.altActive=/alt/.test(r),l.metaActive=l.last.keyset[2]=!!/\bmeta/.test(r)&&r.match(/meta[\w-]+/)[0],l.showSet(l.metaActive)),l.typing_simulateKey(y,e,t)):l.typing_event||(e in l.typing_keymap&&l.typing_keymap[e]in f.keyaction?f.keyaction[l.typing_keymap[e]](l,y,t):l.insertText(e),l.checkCombos(),l.$el.trigger(f.events.kbChange,[l,l.el])),g.current<=g.len&&0!==g.len){if(!l.isVisible())return;l.typing_timer=setTimeout(function(){l.typeIn()},g.delay)}else{if(0!==g.len)return l.typing_reset(),void(d.isFunction(g.callback)&&(l.typing_timer=setTimeout(function(){d.isFunction(g.callback)&&g.callback(l)},g.delay)));l.typing_reset()}},l.typing_simulateKey=function(e,t,n){var i=e.length;l.isVisible()&&(g.showTyping&&i&&(e.filter(":visible").trigger("mouseenter"+l.namespace),g.showTyping&&i&&setTimeout(function(){e.trigger("mouseleave"+l.namespace)},Math.min(g.hoverDelay,g.delay))),l.typing_event||setTimeout(function(){t in l.typing_keymap&&l.typing_keymap[t]in f.keyaction?((n=n||d.Event("keypress")).target=e,f.keyaction[l.typing_keymap[t]](l,e,n)):l.insertText(t),l.checkCombos(),l.$el.trigger(f.events.kbChange,[l,l.el])},g.delay/3))},g.showTyping&&l.options.alwaysOpen&&l.isVisible()?l.typing_setup():l.$el.unbind(f.events.kbBeforeVisible+l.typing_namespace).bind(f.events.kbBeforeVisible+l.typing_namespace,function(){g.showTyping?l.typing_setup():l.typing_setup_reset()}))})}});

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
/*! Mousewheel version: 3.1.12 * (c) 2014 Brandon Aaron * MIT License */
!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(d){var c,m,e=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],t="onwheel"in document||9<=document.documentMode?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],g=Array.prototype.slice;if(d.event.fixHooks)for(var i=e.length;i;)d.event.fixHooks[e[--i]]=d.event.mouseHooks;var w=d.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],n,!1);else this.onmousewheel=n;d.data(this,"mousewheel-line-height",w.getLineHeight(this)),d.data(this,"mousewheel-page-height",w.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],n,!1);else this.onmousewheel=null;d.removeData(this,"mousewheel-line-height"),d.removeData(this,"mousewheel-page-height")},getLineHeight:function(e){var t=d(e),i=t["offsetParent"in d.fn?"offsetParent":"parent"]();return i.length||(i=d("body")),parseInt(i.css("fontSize"),10)||parseInt(t.css("fontSize"),10)||16},getPageHeight:function(e){return d(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function n(e){var t,i=e||window.event,n=g.call(arguments,1),o=0,l=0,s=0,a=0,h=0;if((e=d.event.fix(i)).type="mousewheel","detail"in i&&(s=-1*i.detail),"wheelDelta"in i&&(s=i.wheelDelta),"wheelDeltaY"in i&&(s=i.wheelDeltaY),"wheelDeltaX"in i&&(l=-1*i.wheelDeltaX),"axis"in i&&i.axis===i.HORIZONTAL_AXIS&&(l=-1*s,s=0),o=0===s?l:s,"deltaY"in i&&(o=s=-1*i.deltaY),"deltaX"in i&&(l=i.deltaX,0===s&&(o=-1*l)),0!==s||0!==l){if(1===i.deltaMode){var r=d.data(this,"mousewheel-line-height");o*=r,s*=r,l*=r}else if(2===i.deltaMode){var u=d.data(this,"mousewheel-page-height");o*=u,s*=u,l*=u}if(t=Math.max(Math.abs(s),Math.abs(l)),(!m||t<m)&&p(i,m=t)&&(m/=40),p(i,t)&&(o/=40,l/=40,s/=40),o=Math[1<=o?"floor":"ceil"](o/m),l=Math[1<=l?"floor":"ceil"](l/m),s=Math[1<=s?"floor":"ceil"](s/m),w.settings.normalizeOffset&&this.getBoundingClientRect){var f=this.getBoundingClientRect();a=e.clientX-f.left,h=e.clientY-f.top}return e.deltaX=l,e.deltaY=s,e.deltaFactor=m,e.offsetX=a,e.offsetY=h,e.deltaMode=0,n.unshift(e,o,l,s),c&&clearTimeout(c),c=setTimeout(v,200),(d.event.dispatch||d.event.handle).apply(this,n)}}function v(){m=null}function p(e,t){return w.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}d.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})});

@ -0,0 +1 @@
jQuery.keyboard.language.amh={language:"ፊደል (Fidal) Amharic and Gǝʿǝz",display:{a:"✔:መቀበል (Shift+Enter)",accept:"Accept:መቀበል (Shift+Enter)",alt:"AltGr:ተለዋጭ፡ ፊደል፡",b:"←:ማጥፊያ",bksp:"Bksp:ማጥፊያ",c:"✖:መሠረዝ",cancel:"Cancel:መሠረዝ",clear:"C:ማፅዳት",combo:"ö:Toggle Combo Keys",dec:".:የአሀዝ፡ ቁጥር",e:"↵:መጀመር",enter:"Enter:መጀመር",lock:"⇪ Lock:አሮጌ፡ ለውጥ",s:"⇧:መለወጥ",shift:"Shift:መለወጥ",sign:"±:የሒሣብ፡ ምልክት፡ መቀየር",space:"&nbsp;:ክፍት፡ቦታ",t:"⇥:መግፊያ",tab:"⇥ Tab:መግፊያ"},wheelMessage:"Use mousewheel to see other keys",comboRegex:/([`\'~\^\"a-z0-9\{\}\[\]\|<>])([a-z0-9_\-\.\|`\'~\^\"!,=])/gim,combos:{a:{a:"ʾ",".":"ạ",1:"à",2:"á",3:"ã","=":"â",9:"ä","-":"ā",",":"፠"},A:{A:"ʿ","-":"Ā",1:"À",2:"Á",3:"Ã",9:"Ä","=":"Â"},e:{e:"ǝ","-":"ē",",":"፧",1:"è",2:"é",3:"ẽ",9:"ë","=":"ê"},E:{E:"Ǝ","-":"Ē",1:"È",2:"É",3:"Ẽ",9:"Ë","=":"Ê"},i:{1:"ì",2:"í",3:"ĩ",9:"ï",9:"ö","=":"î"},I:{1:"Ì",2:"Í",3:"Ĩ",9:"Ï","=":"Î"},o:{1:"ò",2:"ó",3:"õ","=":"ô"},O:{1:"Ò",2:"Ó",3:"Õ",9:"Ö","=":"Ô"},u:{1:"ù",2:"ú",3:"ũ",9:"ü","=":"û"},U:{1:"Ù",2:"Ú",3:"Ũ",9:"Ü","=":"Û"},h:{a:"ሀ",u:"ሁ",i:"ሂ",A:"ሃ",E:"ሄ",e:"ህ",o:"ሆ","!":"ሇ",_:"ḫ",".":"ḥ"},l:{a:"ለ",u:"ሉ",i:"ሊ",A:"ላ",E:"ሌ",e:"ል",o:"ሎ","!":"ሏ"},H:{a:"ሐ",u:"ሑ",i:"ሒ",A:"ሓ",E:"ሔ",e:"ሕ",o:"ሖ","!":"ሗ",_:"Ḫ"},m:{a:"መ",u:"ሙ",i:"ሚ",A:"ማ",E:"ሜ",e:"ም",o:"ሞ","!":"ሟ"},S:{a:"ሠ",u:"ሡ",i:"ሢ",A:"ሣ",E:"ሤ",e:"ሥ",o:"ሦ","!":"ሧ",".":"Ṣ","|":"Š",6:"Ś"},r:{a:"ረ",u:"ሩ",i:"ሪ",A:"ራ",E:"ሬ",e:"ር",o:"ሮ","!":"ሯ"},s:{a:"ሰ",u:"ሱ",i:"ሲ",A:"ሳ",E:"ሴ",e:"ስ",o:"ሶ","!":"ሷ",".":"ṣ","|":"š",6:"ś"},v:{a:"ሸ",u:"ሹ",i:"ሺ",A:"ሻ",E:"ሼ",e:"ሽ",o:"ሾ","!":"ሿ"},q:{a:"ቀ",u:"ቁ",i:"ቂ",A:"ቃ",E:"ቄ",e:"ቅ",o:"ቆ","!":"ቇ"},b:{a:"በ",u:"ቡ",i:"ቢ",A:"ባ",E:"ቤ",e:"ብ",o:"ቦ","!":"ቧ",",":"፣"},B:{a:"ቨ",u:"ቩ",i:"ቪ",A:"ቫ",E:"ቬ",e:"ቭ",o:"ቮ","!":"ቯ"},t:{a:"ተ",u:"ቱ",i:"ቲ",A:"ታ",E:"ቴ",e:"ት",o:"ቶ","!":"ቷ",".":"ṭ"},c:{a:"ቸ",u:"ቹ",i:"ቺ",A:"ቻ",E:"ቼ",e:"ች",o:"ቾ","!":"ቿ",_:̣","|":"č",",":"፤"},x:{a:"ኀ",u:"ኁ",i:"ኂ",A:"ኃ",E:"ኄ",e:"ኅ",o:"ኆ","!":"ኇ"},n:{a:"ነ",u:"ኑ",i:"ኒ",A:"ና",E:"ኔ",e:"ን",o:"ኖ","!":"ኗ",3:"ñ"},N:{a:"ኘ",u:"ኙ",i:"ኚ",A:"ኛ",E:"ኜ",e:"ኝ",o:"ኞ","!":"ኟ",3:"Ñ"},"'":{a:"አ",u:"ኡ",i:"ኢ",A:"ኣ",E:"ኤ",e:"እ",o:"ኦ","!":"ኧ"},k:{a:"ከ",u:"ኩ",i:"ኪ",A:"ካ",E:"ኬ",e:"ክ",o:"ኮ","!":"ኯ"},K:{a:"ኸ",u:"ኹ",i:"ኺ",A:"ኻ",E:"ኼ",e:"ኽ",o:"ኾ"},w:{a:"ወ",u:"ዉ",i:"ዊ",A:"ዋ",E:"ዌ",e:"ው",o:"ዎ","!":"ዏ","=":"ʷ"},W:{a:"ዐ",u:"ዑ",i:"ዒ",A:"ዓ",E:"ዔ",e:"ዕ",o:"ዖ"},z:{a:"ዘ",u:"ዙ",i:"ዚ",A:"ዛ",E:"ዜ",e:"ዝ",o:"ዞ","!":"ዟ","|":"ž"},Z:{a:"ዠ",u:"ዡ",i:"ዢ",A:"ዣ",E:"ዤ",e:"ዥ",o:"ዦ","!":"ዧ","|":"Ž"},y:{a:"የ",u:"ዩ",i:"ዪ",A:"ያ",E:"ዬ",e:"ይ",o:"ዮ","!":"ዯ",1:"ỳ",2:"ý",3:"ỹ",9:"ÿ","=":"ŷ"},d:{a:"ደ",u:"ዱ",i:"ዲ",A:"ዳ",E:"ዴ",e:"ድ",o:"ዶ","!":"ዷ",".":"ḍ",",":"፦"},L:{a:"ዸ",u:"ዹ",i:"ዺ",A:"ዻ",E:"ዼ",e:"ዽ",o:"ዾ","!":"ዿ"},D:{a:"ጀ",u:"ጁ",i:"ጂ",A:"ጃ",E:"ጄ",e:"ጅ",o:"ጆ","!":"ጇ",".":"Ḍ"},g:{a:"ገ",u:"ጉ",i:"ጊ",A:"ጋ",E:"ጌ",e:"ግ",o:"ጎ","!":"ጏ","|":"ǧ"},G:{a:"ጘ",u:"ጙ",i:"ጚ",A:"ጛ",E:"ጜ",e:"ጝ",o:"ጞ","!":"ጟ","|":"Ǧ"},T:{a:"ጠ",u:"ጡ",i:"ጢ",A:"ጣ",E:"ጤ",e:"ጥ",o:"ጦ","!":"ጧ",".":"Ṭ"},C:{a:"ጨ",u:"ጩ",i:"ጪ",A:"ጫ",E:"ጬ",e:"ጭ",o:"ጮ","!":"ጯ"},p:{a:"ጰ",u:"ጱ",i:"ጲ",A:"ጳ",E:"ጴ",e:"ጵ",o:"ጶ","!":"ጷ",6:"ṗ"},j:{a:"ጸ",u:"ጹ",i:"ጺ",A:"ጻ",E:"ጼ",e:"ጽ",o:"ጾ","!":"ጿ"},J:{a:"ፀ",u:"ፁ",i:"ፂ",A:"ፃ",E:"ፄ",e:"ፅ",o:"ፆ","!":"ፇ"},f:{a:"ፈ",u:"ፉ",i:"ፊ",A:"ፋ",E:"ፌ",e:"ፍ",o:"ፎ","!":"ፏ",",":"፨"},P:{a:"ፐ",u:"ፑ",i:"ፒ",A:"ፓ",E:"ፔ",e:"ፕ",o:"ፖ","!":"ፗ",6:"Ṗ"},Q:{a:"ቐ",u:"ቑ",i:"ቒ",A:"ቓ",E:"ቔ",e:"ቕ",o:"ቖ"},"[":{a:"ቈ",i:"ቊ",A:"ቋ",E:"ቌ",e:"ቍ"},"]":{a:"ኈ",i:"ኊ",A:"ኋ",E:"ኌ",e:"ኍ"},"}":{a:"ኰ",i:"ኲ",A:"ኳ",E:"ኴ",e:"ኵ"},"{":{a:"ጐ",i:"ጒ",A:"ጓ",E:"ጔ",e:"ጕ"},M:{a:"ᎀ",i:"ᎁ",E:"ᎂ",e:"ᎃ"},"|":{a:"ᎄ",i:"ᎅ",E:"ᎆ",e:"ᎇ"},"<":{a:"ᎈ",i:"ᎉ",E:"ᎊ",e:"ᎋ"},">":{a:"ᎌ",i:"ᎍ",E:"ᎎ",e:"ᎏ"},Y:{1:"Ỳ",2:"Ý",3:"Ỹ",9:"Ÿ","=":"Ŷ"}},rtl:!1};

@ -0,0 +1 @@
jQuery.keyboard.language.de={language:"Deutsch (German)",display:{a:"✔:Übernehmen (Umschalt+Enter)",accept:"Übernehmen:Übernehmen (Umschalt+Enter)",alt:"AltGr:Alt Graph",b:"←:Rücktaste",bksp:"Rück:Rücktaste",c:"✖:Abbrechen (Esc)",cancel:"Abbrechen:Abbrechen (Esc)",clear:"C:Löschen",combo:"ö:Tottasten umschalten",dec:",:Dezimal",e:"↵:Eingabe",enter:"Enter:Eingabe",lock:"⇩:Feststelltaste",s:"⇧:Umschalttaste",shift:"Umschalt:Umschalttaste",sign:"±:Vorzeichen wechseln",space:"&nbsp;:Leertaste",t:"⇥:Tabulatortaste",tab:"⇥ Tab:Tabulatortaste"},wheelMessage:"Mausrad benutzen, um weitere Tasten zu sehen"};

@ -0,0 +1 @@
jQuery.keyboard.language.es={language:"Español (Spanish)",display:{a:"✔:Acceptar (Cambio+Inscribir)",accept:"Acceptar:Acceptar (Cambio+Inscribir)",alt:"AltGr:Grafemas Alternativos",b:"←:Retroceso",bksp:"Bksp:Retroceso",c:"✖:Cancelar (Esc)",cancel:"Cancelar:Cancelar (Esc)",clear:"C:Vaciar",combo:"ö:Alternar las Teclas Combinados",dec:",:Decimal",e:"↵:Inscribir",enter:"Inscribir:Inscribir",lock:"⇪ Bloq:Mayús",s:"⇧:Cambio",shift:"Cambio:Cambio",sign:"±:Cambiar Signo",space:"&nbsp;:Espacio",t:"⇥:Tab",tab:"⇥ Tab:Tab"},wheelMessage:"Utilice la rueda del mouse para ver otras teclas"};

@ -0,0 +1 @@
jQuery.keyboard.language.fa={language:"فارسی (Farsi)",display:{a:"✔:تأیید (Shift+Enter)",accept:"تأیید:تأیید (Shift+Enter)",alt:"Lng:Alternate Graphemes",b:"←:⬅ Backspace",bksp:"⬅ Bksp:⬅ Backspace",c:"✖:انصراف (Esc)",cancel:"انصراف:انصراف (Esc)",clear:"C:Clear",combo:"ö:Toggle Combo Keys",dec:".:Decimal",e:"↵:Enter",enter:"Enter:Enter",lock:"⇪ Lock:Caps Lock",s:"⇧:Shift",shift:"Shift:Shift",sign:"±:Change Sign",space:"&nbsp;:Space",t:"⇥:Tab",tab:"⇥ Tab:Tab"},wheelMessage:"Use mousewheel to see other keys",rtl:!0};

@ -0,0 +1 @@
jQuery.keyboard.language.fr={language:"Français (French)",display:{a:"✔:Valider (Shift+Enter)",accept:"Valider:Valider (Shift+Enter)",alt:"AltGr:Charactère alternatif",b:"←:Suppr arrière",bksp:"←Suppr:Suppr arrière",c:"✖:Annuler",cancel:"Annuler:Annuler (Échap)",clear:"C:Effacer",combo:"ö:Bacsuler les touches combo",dec:".:Decimal",e:"↵:Entrée",enter:"Entrée:Entrée",lock:"⇪ Verr Mag:Verouillage majuscule",s:"⇧:Majuscule",shift:"Maj:Majuscule",sign:"±:Change de signe",space:"&nbsp;:Espace",t:"⇥:Tabulation",tab:"⇥ Tab:Tabulation"},wheelMessage:"Utiliser la molette de la souris pour voir les autres lettres"};

@ -0,0 +1 @@
jQuery.keyboard.language.he={language:"עברית (Hebrew)",display:{a:"✔:אישור (Shift+Enter)",accept:"אישור:אישור (Shift+Enter)",alt:"Alt:תווים נוספים",b:"←:Backspace",bksp:"Bksp:Backspace",c:"✖:ביטול (Esc)",cancel:"ביטול:ביטול (Esc)",clear:"C:ניקוי",combo:"ö:Toggle Combo Keys",dec:".:נקודה עשרונית",e:"↵:Enter",enter:"Enter:Enter",lock:"⇪ Lock:Caps Lock",s:"⇧:Shift",shift:"Shift:Shift",sign:"±:שינוי סימן",space:"&nbsp;:רווח",t:"⇥:Tab",tab:"⇥ Tab:Tab"},wheelMessage:"ניתן להשתמש בגלגלת העכבר כדי לראות מקשים נוספים",rtl:!0};

@ -0,0 +1 @@
jQuery.keyboard.language.hu={language:"Magyar (Hungarian)",display:{a:"✔:Rendben (Shift+Enter)",accept:"Rendben:Rendben (Shift+Enter)",alt:"AltGr:Alternate Graphemes",b:"←:Backspace",bksp:"Töröl:Backspace",c:"✖:Cancel (Esc)",cancel:"Mégsem:Cancel (Esc)",clear:"C:Clear",combo:"ö:Toggle Combo Keys",dec:".:Decimal",e:"↵:Enter",enter:"Enter:Enter",lock:"⇪ Lock:Caps Lock",s:"⇧:Shift",shift:"Shift:Shift",sign:"±:Change Sign",space:"&nbsp;:Space",t:"⇥:Tab",tab:"⇥ Tab:Tab"},wheelMessage:"Használd az egér görgetőt a többi billentyű átváltáshoz"};

@ -0,0 +1 @@
jQuery.keyboard.language.it={language:"Italiano (Italian)",display:{a:"✔:Accetta (Shift+Enter)",accept:"Accetta:Accetta (Shift+Enter)",alt:"AltGr:Grafemi Alternativi",b:"←:Cancella",bksp:"Canc:Cancella",c:"✖:Annulla (Esc)",cancel:"Annulla:Annulla (Esc)",clear:"C:Pulisci",combo:"ö:Tasti Combinati",dec:",:Decimale",e:"↵:Invio",enter:"Invio:Invio",lock:"⇪ Bloc:Bloc Maiusc",s:"⇧:Maiusc",shift:"Maiusc:Maiusc",sign:"±:Cambia Segno",space:"&nbsp;:Spazio",t:"⇥:Tab",tab:"⇥ Tab:Tab"},wheelMessage:"Usa la rotella del mouse per vedere altri tasti"};

@ -0,0 +1 @@
jQuery.keyboard.language.lv={language:"Latviešu (Latvian)",display:{a:"✔:Pieņemt (Shift+Enter)",accept:"Pieņemt:Pieņemt (Shift+Enter)",alt:"AltGr:Alternēšanas taustiņš",b:"←:Atpakaļatkāpe",bksp:"Bksp:Atpakaļatkāpe",c:"✖:Atcelt (Esc)",cancel:"Atcelt:Atcelt (Esc)",clear:"C:Clear",combo:"ö:Toggle Combo Keys",dec:".:Decimal",e:"↵:Enter",enter:"Enter:Enter",lock:"⇪ Lock:Caps Lock",s:"⇧:Shift",shift:"Shift:Shift",sign:"±:Change Sign",space:"&nbsp;:Space",t:"⇥:Tab",tab:"⇥ Tab:Tab"},wheelMessage:"Izmanto peles ritenīti, lai apskatītu citus taustiņus",combos:{"'":{c:"ć",C:"Ć",e:"é",E:"É",n:"ń",N:"Ń",o:"ó",O:"Ó",s:"ś",S:"Ś",z:"ź",Z:"Ź"},"¨":{a:"ä",A:"Ä",o:"ö",O:"Ö",u:"ü",U:"Ü"},"°":{a:"å",A:"Å",e:"ė",E:"Ė",g:"ġ",z:"ż",Z:"Ż"}},comboRegex:/([`\'~\^\"ao\u00a8\u00b0])([a-z])/gim};

@ -0,0 +1 @@
jQuery.keyboard.language.my={language:"ဗမ (Burmese)",display:{a:"✔:Accept (Shift+Enter)",accept:"Accept:Accept (Shift+Enter)",alt:"AltGr:Alternate Graphemes",b:"←:Backspace",bksp:"Bksp:Backspace",c:"✖:Cancel (Esc)",cancel:"Cancel:Cancel (Esc)",clear:"C:ရလငရန",combo:"ö:Toggle Combo Keys",dec:".:ဒသမ",e:"↵:Enter",enter:"Enter:Enter",lock:"⇪ Lock:Caps Lock",s:"⇧:Shift",shift:"Shift:Shift",sign:"±:Change Sign",space:"&nbsp;:Space",t:"⇥:Tab",tab:"⇥ Tab:Tab"},wheelMessage:"အခခလကရစရနကက အသ"};

@ -0,0 +1 @@
jQuery.keyboard.language.pl={language:"Polski (Polish)",display:{a:"✔:Akceptuj (Shift+Enter)",accept:"Accept:Akceptuj (Shift+Enter)",alt:"AltGr:Polskie znaki",b:"←:Cofnij",bksp:"Bksp:Cofnij",c:"✖:Anuluj (Esc)",cancel:"Cancel:Anuluj (Esc)",clear:"C:Czyść",combo:"ö:Klawisze kombo",dec:".:Dziesiętny",e:"↵:Enter",enter:"Enter:Enter",lock:"⇪ Lock:Caps Lock",s:"⇧:Shift",shift:"Shift:Shift",sign:"±:Zmień znak",space:"&nbsp;:Spacja",t:"⇥:Tab",tab:"⇥ Tab:Tab"},wheelMessage:"Użyj rolki aby zobaczyć pozozstałe klawisze"};

@ -0,0 +1 @@
jQuery.keyboard.language.pt={language:"Português (Portuguese)",display:{a:"✔:Aceitar (Shift+Enter)",accept:"Aceitar:Concluir (Shift+Enter)",alt:"AltGr:Carateres Adicionais/CTRL+ALT",b:"←:Retroceder",bksp:"← Bksp:Retroceder",c:"✖:Cancelar/Escape (Esc)",cancel:"Cancel:Cancelar/Escape(Esc)",clear:"C:Limpar",combo:"ö:Acentuação Automática",dec:".:Decimal",e:"↵:Introduzir/Mudar de Linha",enter:"Enter↵:Introduzir/Mudar de Linha",lock:"⇪ Lock:CapsLock/Maiúsculas",s:"⇧:Shift/Maiúsculas",shift:"⇪ Shift:Maiúsculas-Minúsculas",sign:"±:Mudar Sinal",space:"&nbsp;:Espaço",t:"⇥:Tab/Tabela/Avançar",tab:"⇥ Tab:Tabela/Avançar"},wheelMessage:"Use a roda do rato/navegador para ver mais teclas",comboRegex:/([`\'~\^\"ao\u00b4])([a-z])/gim,combos:{"´":{a:"á",A:"Á",e:"é",E:"É",i:"í",I:"Í",o:"ó",O:"Ó",u:"ú",U:"Ú",y:"ý",Y:"Ý"},"'":{}}};

@ -0,0 +1 @@
jQuery.keyboard.language.ro={language:"Română (Romanian)",display:{a:"✔:Accept (Shift+Enter)",accept:"Accept:Accept (Shift+Enter)",alt:"AltGr:Alternate Graphemes",b:"←:Backspace",bksp:"Bksp:Backspace",c:"✖:Cancel (Esc)",cancel:"Cancel:Cancel (Esc)",clear:"C:Clear",combo:"ö:Toggle Combo Keys",dec:",:Decimal",e:"↵:Enter",enter:"Enter:Enter",lock:"⇪ Lock:Caps Lock",s:"⇧:Shift",shift:"Shift:Shift",sign:"±:Schimba semnul",space:"&nbsp;:Spatiu",t:"⇥:Tab",tab:"⇥ Tab:Tab"},wheelMessage:"Foloseste rotita mouse-ului pentru a vedea si celelalte caractere"};

@ -0,0 +1 @@
jQuery.keyboard.language.ru={language:"Русский (Russian)",display:{a:"✔:Сохранить (Shift+Enter)",accept:"Сохранить:Сохранить (Shift+Enter)",alt:"РУС:Русская клавиатура",b:"←:Удалить символ слева",bksp:"⇦:Удалить символ слева",c:"✖:Отменить (Esc)",cancel:"Отменить:Отменить (Esc)",clear:"C:Очистить",combo:"ö:Toggle Combo Keys",dec:",:Decimal",e:"↵:Ввод",enter:"Ввод:Перевод строки",lock:"⇪ Lock:Caps Lock",s:"⇧:Верхний регистр",shift:"⇧:Верхний регистр",sign:"±:Сменить знак",space:"Пробел:",t:"⇥:Tab",tab:"⇥ Tab:Tab"},wheelMessage:"Use mousewheel to see other keys"};

@ -0,0 +1 @@
jQuery.keyboard.language.sq={language:"Shqip (Albanian)",display:{a:"✔:Prano (Shift+Enter)",accept:"Prano:Prano (Shift+Enter)",alt:"Alt:Alternativ",b:"←:Hapësirën Mbrapa",bksp:"Bksp:Hapësirën Mbrapa",c:"✖:Anuloj (Arratisjes)",cancel:"Anuloj:Anuloj (Arratisjes)",clear:"C:Qartë",combo:"ö:Kombinimi",dec:".:Decimal",e:"↵:Shkruani",enter:"Shkruani:Shkruani",lock:"⇪ Bllokoj:Caps Lock",next:"Next ⇨",prev:"⇦ Prev",s:"⇧:Ndryshim",shift:"Ndryshim:Ndryshim",sign:"±:Ndryshimi Regjistrohu",space:"&nbsp;:Hapësirë",t:"⇥:Tab",tab:"⇥ Tab:Tab"},wheelMessage:"Përdorimi mousewheel për të parë çelësat e tjera",comboRegex:/([`\'~\^\"ao\/])([a-z])/gim,combos:{"/":{d:"đ",D:"Đ",l:"ł",L:"Ł"}}};

@ -0,0 +1 @@
jQuery.keyboard.layouts["albanian-qwertz"]={name:"Albanian-qwertz",lang:["sq"],normal:["\\ 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t z u i o p ç '","a s d f g h j k l ë [ ] {enter}","{shift} < y x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['| ! " # $ % ^ & * ( ) _ + {bksp}',"{tab} Q W E R T Z U I O P Ç @","A S D F G H J K L Ë { } {enter}","{shift} > Y X C V B N M ; : ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["\\ ~ ˇ ^ ˘ ° ˛ ` ˙ ´ ˝ ¨ ¸ {bksp}","{tab} q w € r t z u i o p ÷ ×","ä đ:Shortcut_(/d) Đ:Shortcut_(/D) f g h j ł:Shortcut_(/l) Ł:Shortcut_(/L) $ ß ¤ {enter}","{shift} < y x c @ { } § < > / {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["albanian-qwerty"]={name:"Albanian-qwerty",lang:["sq"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p ë '","a s d f g h j k l ; ç # {enter}","{shift} \\ z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['¬ ! " § $ % ^ & * ( ) _ + {bksp}',"{tab} Q W E R T Y U I O P Ë @","A S D F G H J K L : Ç ~ {enter}","{shift} ¦ Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["| 1 2 3 4 5 6 { } [ ] - = {bksp}","{tab} q w € r t y u i o p ÷ ×","a s d f g h j k l ; ç # {enter}","{shift} \\ z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":['| ! " § $ % ^ & * ( ) _ + {bksp}',"{tab} Q W € R T Y U I O P Ë @","A S D F G H J K L : Ç ~ {enter}","{shift} ¦ Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["arabic-azerty"]={name:"Arabic-azerty",lang:["ar"],normal:["² & é \" ' ( - è _ ç à ) = {bksp}","{tab} a z e r t y u i o p ` $","q s d f g h j k l m ù ٭ {enter}","{shift} < w x c v b n , ; : ! {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["² 1 2 3 4 5 6 7 8 9 0 ° + {bksp}","{tab} A Z E R T Y U I O P ̈ £","Q S D F G H J K L M ٪ µ {enter}","{shift} > W X C V B N ? . / § {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["> & é # { [ | ̀ \\ ^ @ ] } {bksp}","{tab} ض ص ث ق ف غ ع ه خ ح ج د","ش س ي ب ل ا ت ن م ك ط ذ {enter}","{shift} ـ ئ ء ؤ ر ﻻ ى ة و ز ظ {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["< 1 2 3 4 5 6 7 8 9 0 ° + {bksp}","{tab} َ ً ُ ٌ ﻹ إ ` ÷ × ؛ ج ¤","\\ س [ ] ﻷ أ ـ ، / : ¨ ّ {enter}","{shift} | ~ ْ ِ ٍ ﻵ آ ' , . ؟ {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["arabic-qwerty-1"]={name:"Arabic-qwerty-1",lang:["ar"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["ذ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ ٠ - = {bksp}","{tab} ض ص ث ق ف غ ع ه خ ح ج د \\","ش س ي ب ل ا ت ن م ك ط {enter}","{shift} ئ ء ؤ ر ﻻ ى ة و ز ظ {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["ّ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} ض ص ث ق ف غ ع ÷ × ؛ > < |",'ش س ي ب ل أ ـ ، / : " {enter}',"{shift} ئ ء ؤ ر ﻵ آ ة , . ؟ {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["arabic-qwerty-2"]={name:"Arabic-qwerty-2",lang:["ar"],normal:["< 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ]","a s d f g h j k l ; ' ` {enter}","{shift} \\ z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["> ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { }",'A S D F G H J K L : " ~ {enter}',"{shift} | Z X C V B N M , . ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["< ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ ٠ - = {bksp}","{tab} ض ص ث ق ف غ ع ه خ ح ج د","ش س ي ب ل ا ت ن م ك ط ذ {enter}","{shift} ـ ئ ء ؤ ر ﻻ ى ة و ز ظ {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["> ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} ض ص ث ق ف غ ع ÷ × ؛ { }",'\\ س ي ب ﻷ أ ت ، م : " ّ {enter}',"{shift} | ئ ء ؤ ر ﻵ آ ة , . ؟ {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["arabic-qwerty-3"]={name:"Arabic-qwerty-3",lang:["ar"],normal:["< 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p ¢ |","a s d f g h j k l ; ' ` {enter}","{shift} ـ z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["> ! @ # $ % ¬ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P £ |",'A S D F G H J K L : " ~ {enter}',"{shift} ¦ Z X C V B N M , . ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["< ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ ٠ - = {bksp}","{tab} ض ص ث ق ف غ ع ه خ ح ج د","ش س ي ب ل ا ت ن م ك ط ذ {enter}","{shift} ـ ئ ء ؤ ر ﻻ ى ة و ز ظ {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["> ! @ # $ % ¬ & * ( ) _ + {bksp}","{tab} ض ص ث ق ف غ ع ÷ × ؛ £ |",'ش س ي ب ﻷ أ ت ، / : " ّ {enter}',"{shift} ¦ ئ ء ؤ ر ﻵ آ ة , . ؟ {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["arabic-qwerty-4"]={name:"Arabic-qwerty-4",lang:["ar"],normal:["< 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ]","a s d f g h j k l ; ' ` {enter}","{shift} \\ z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["> ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { }",'A S D F G H J K L : " ~ {enter}',"{shift} | Z X C V B N M , . ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["< ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ ٠ - = {bksp}","{tab} ض ص ث ق ف غ ع ه خ ح ج د","ش س ي ب ل ا ت ن م ك ط ذ {enter}","{shift} ـ ئ ء ؤ ر ﻻ ى ة و ز ظ {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["> ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} َ ً ُ ٌ ﻹ إ ع ÷ × ؛ { }",'\\ س ي ب ﻷ أ ت ، / : " ّ {enter}',"{shift} | ئ ْ ِ ٍ ﻵ آ ة , . ؟ {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["belarusian-qwerty"]={name:"belarusian-qwerty",lang:["be"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["ё 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} й ц у к е н г ш ў з х ' \\","ф ы в а п р о л д ж э {enter}","{shift} я ч с м і т ь б ю . {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":['Ё ! " № ; € : ? * ( ) _ + {bksp}',"{tab} Й Ц У К Е Н Г Ш Ў З Х ' /","Ф Ы В А П Р О Л Д Ж Э {enter}","{shift} Я Ч С М І Т Ь Б Ю , {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["bengali-qwerty-1"]={name:"bengali-qwerty-1",lang:["bn"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["` ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ - {bksp}","{tab} ব হ গ দ জ ড \\"," ি প র ক ত চ ট {enter}","{shift} ৎ ম ন ব ল স , . য় {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ ১ ২ র জ ত ক শ ( ) {bksp}","{tab} ঔ ঐ আ ঈ ঊ ভ ঙ ঘ ধ ঝ ঢ ঞ |","ও এ অ ই উ ফ র খ থ ছ ঠ {enter}","{shift} ? ণ ন ব ল শ ষ । য {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["bengali-qwerty-2"]={name:"bengali-qwerty-2",lang:["bn"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:[" ৺ ৸ ৹ ৲ ৳ ০ ৴ ১ ৵ {bksp}","{tab} ২ ৶ ৩ ৷ ৪ ৫ ৬ ৭ ৮ ৯ অ আ ই","ঈ উ ঊ ঋ ৠ ঌ ৡ এ ঐ ও ঔ {enter}","{shift} ক খ গ ঘ ঙ চ ছ জ ঝ ঞ {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["ট ঠ ড ড় ঢ ঢ় ণ ত ৎ থ দ ধ ন {bksp}","{tab} প ফ ব ভ ম য য় র ৰ ল ৱ শ ষ","স হ ঽ ি {enter}","{shift} {sp:3} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["bulgarian-qwerty"]={name:"bulgarian-qwerty",lang:["bg"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["` 1 2 3 4 5 6 7 8 9 0 - . {bksp}","{tab} , у е и ш щ к с д з ц ; (","ь я а о ж г т н в м ч {enter}","{shift} ю й ъ э ф х п р л б {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":['~ ! ? + " % = : / _ № I V {bksp}',"{tab} ы У Е И Ш Щ К С Д З Ц § )","Ь Я А О Ж Г Т Н В М Ч {enter}","{shift} Ю Й Ъ Э Ф Х П Р Л Б {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts.burmese={name:"burmese",lang:["my"],normal:["ၐ ၁ ၂ ၃ ၄ ၅ ၆ ၇ ၈ ၉ ၀ - = {bksp}","{tab} ဆ တ န မ အ ပ က င သ စ ဟ ဩ ၏"," ' {enter}","{shift} ဖ ထ ခ လ ဘ ည , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["ဎ ဍ ၒ ဋ ၓ ၔ ၕ ရ * ( ) _ + {bksp}","{tab} ဈ ဝ ဣ ၎ ဤ ၌ ဥ ၍ ဿ ဏ ဧ ဪ ၑ",'ဗ ဒ ဓ ဂ " {enter}',"{shift} ဇ ဌ ဃ ဠ ယ ဉ ဦ ၊ ။ ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["~ ¡ ² ³ ¤ € ¼ ½ ¾ ‘ ’ ¥ × {bksp}","{tab} ä å é ® þ ü ú í ó ö « » ¬","á ß ð f g h j k ø ¶ ´ {enter}","{shift} æ x © v b ñ µ ç > ¿ {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ ¹ ² ³ £ € ¼ ½ ¾ ‘ ’ ¥ ÷ {bksp}","{tab} Ä Å É ® Þ Ü Ú Í Ó Ö « » ¦","Ä § Ð F G H J K Ø ° ¨ {enter}","{shift} Æ X ¢ V B Ñ µ Ç . ¿ {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["catalan-qwerty"]={name:"catalan-qwerty",lang:["ca"],normal:["º 1 2 3 4 5 6 7 8 9 0 ' ¡ {bksp}","{tab} q w e r t y u i o p ̀ +","a s d f g h j k l ñ ́ ç {enter}","{shift} < z x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['ª ! " · $ % & / ( ) = ? ¿ {bksp}',"{tab} Q W E R T Y U I O P ̂ *","A S D F G H J K L Ñ ̈ Ç {enter}","{shift} > Z X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["\\ | @ # ̃ 5 ¬ 7 8 9 0 ' ¡ {bksp}","{tab} q w € r t y u i o p [ ]","a s d f g h j k l ñ { } {enter}","{shift} | z x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":['ª ! " · $ % & / ( ) = ? ¿ {bksp}',"{tab} Q W E R T Y U I O P [ ]","A S D F G H J K L Ñ { } {enter}","{shift} > Z X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts.chinese={name:"chinese",lang:["zh"],normal:["€ 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} 手 田 水 口 廿 卜 山 戈 人 心 [ ] \\","日 尸 木 火 土 竹 十 大 中 ; ' {enter}","{shift} Z 難 金 女 月 弓 一 . - / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ! @ # $ % ^ & * ) ( _ + {bksp}","{tab} q w e r t y u i o p { } |",'a s d f g h j k l : " {enter}',"{shift} z x c v b n m , < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["danish-qwerty"]={name:"danish-qwerty",lang:["da"],normal:["§ 1 2 3 4 5 6 7 8 9 0 + ́ {b}","{tab} q w e r t y u i o p å ¨","a s d f g h j k l æ ø ' {enter}","{shift} < z x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['½ ! " # ¤ % & / ( ) = ? ̀ {b}',"{tab} Q W E R T Y U I O P Å ^","A S D F G H J K L Æ Ø * {enter}","{shift} > Z X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["§ 1 @ £ $ 5 6 { [ ] } + | {b}","{tab} q w € r t y u i o p å ~","a s d f g h j k l æ ø ' {enter}","{shift} \\ z x c v b n µ , . - {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts.ethiopic={name:"Amharic",lang:["amh"],normal:["` ፩ ፪ ፫ ፬ ፭ ፮ ፯ ፰ ፱ 0 ፥ = {bksp}","{tab} ቀ ወ ǝ ረ ተ የ u i o ጰ ቈ ኈ \\","a ሰ ደ ፈ ገ ሀ ጸ ከ ለ:Shortcut_(l_+_e_=_ል) ; አ {enter}","{shift} ዘ ኀ ቸ ሸ በ ነ መ ፡ ። / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ፲ ፳ ፴ ፵ ፶ ፷ ፸ ፹ ፺ ፻ ፼ + {bksp}","{tab} ቐ ዐ Ǝ ሯ ጠ Y U I O ፐ ጐ ኰ ᎄ",'ā ሠ ጀ ፘ ጘ ሐ ፀ ኸ ዸ እግዚአብሔር፡ " {enter}',"{shift} ዠ ፙ ጨ ፚ ቨ ኘ ᎀ ᎈ ᎌ ለግዚአብሔር፡ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q ʷ e r t y u i o ṗ [ ] \\","a š d f ǧ ḫ j k l ; ʾ {enter}","{shift} ž x č̣ č b ñ m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O Ṗ { } |","A Š D F Ǧ Ḫ J K L : ʿ {enter}","{shift} Ž X Č̣ Č B Ñ M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["french-azerty-1"]={name:"french-azerty-1",lang:["fr"],normal:["² & é \" ' ( - è _ ç à ) = {bksp}","{tab} a z e r t y u i o p ^ $","q s d f g h j k l m ù * {enter}","{shift} < w x c v b n , ; : ! {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["{sp:1} 1 2 3 4 5 6 7 8 9 0 ° + {bksp}","{tab} A Z E R T Y U I O P ¨ £","Q S D F G H J K L M % µ {enter}","{shift} > W X C V B N ? . / § {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["² & ~ # { [ | ` \\ ^ @ ] } {bksp}","{tab} a z € r t y u i o p ^ ¤","q s d f g h j k l m ù * {enter}","{shift} < w x c v b n , ; : ! {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["{sp:1} 1 ~ # { [ | ` \\ ^ @ ] } {bksp}","{tab} A Z € R T Y U I O P ¨ ¤","Q S D F G H J K L M % µ {enter}","{shift} > W X C V B N ? . / § {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["french-azerty-2"]={name:"french-azerty-2",lang:["fr"],normal:["² & é \" ' ( - è _ ç à ) = {b}","{t} a z e r t y u i o p ^ $","q s d f g h j k l m ù * {e}","{s} < w x c v b n , ; : ! {s}","{a} {alt} {space} {alt} {c}"],shift:["{sp:1} 1 2 3 4 5 6 7 8 9 0 ° + {b}","{t} A Z E R T Y U I O P ¨ £","Q S D F G H J K L M % µ {e}","{s} > W X C V B N ? . / § {s}","{a} {alt} {space} {alt} {c}"],alt:["² & ~ # { [ | ` \\ ^ @ ] } {b}","{t} a z € r t y u i o p ^ ¤","q s d f g h j k l m ù * {e}","{s} < w x c v b n , ; : ! {s}","{a} {alt} {space} {alt} {c}"],"alt-shift":["{sp:1} 1 ~ # { [ | ` \\ ^ @ ] } {b}","{t} A Z € R T Y U I O P ¨ ¤","Q S D F G H J K L M % µ {e}","{s} > W X C V B N ? . / § {s}","{a} {alt} {space} {alt} {c}"]},jQuery.keyboard.layouts["french-bepo-V1.0rc2"]={name:"french-bepo-V1.0rc2",lang:["fr"],normal:['$ " « » ( ) @ + - / * = % {b}',"{t} b é p o è ˆ v d l j z w","a u i e , c t s r n m ç {enter}","{s} ê à y x . k ' q g h f {s}","{a} {alt} {space} {alt} {c}"],shift:["# 1 2 3 4 5 6 7 8 9 0 ° ` {b}","{t} B É P O È ! V D L J Z W","A U I E ; C T S R N M Ç {enter}","{s} Ê À Y X : K ? Q G H F {s}","{a} {alt} {space} {alt} {c}"],alt:["– — < > [ ] ^ ± − ÷ × ≠ ‰ {b}","{t} | ´ & œ ` ¡ ˇ ð / ij ə ˘","æ ù ¨ € ’ © þ ß ® ~ ¯ ¸ {enter}","{s} / \\ { } … ~ ¿ ° µ † ˛ {s}","{a} {alt} {space} {alt} {c}"],"alt-shift":["¶ „ “ ” ≤ ≥ {empty} ¬ ¼ ½ ¾ ′ ″ {b}","{t} ¦ ˝ § Œ ` ¡ {empty} Ð {empty} IJ Ə ˘","Æ Ù ˙ ¤ ̛ ſ Þ ẞ ™ {empty} º , {enter}","{s} {empty} {empty} ‘ ’ · {empty} ̉ ̣ {empty} ‡ ª {s}","{a} {alt} {space} {alt} {c}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["german-qwertz-1"]={name:"german-qwertz-1",lang:["de"],normal:["̂ 1 2 3 4 5 6 7 8 9 0 ß ́ {bksp}","{tab} q w e r t z u i o p ü +","a s d f g h j k l ö ä # {enter}","{shift} < y x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['° ! " § $ % & / ( ) = ? ̀ {bksp}',"{tab} Q W E R T Z U I O P Ü *","A S D F G H J K L Ö Ä ' {enter}","{shift} > Y X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["̂ 1 ² ³ 4 5 6 { [ ] } \\ ́ {bksp}","{tab} @ w € r t z u i o p ü ̃","a s d f g h j k l ö ä # {enter}","{shift} | y x c v b n µ , . - {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["german-qwertz-2"]={name:"german-qwertz-2",lang:["de"],normal:["§ 1 2 3 4 5 6 7 8 9 0 ' ̂ {bksp}","{tab} q w e r t z u i o p ü ̈","a s d f g h j k l ö ä $ {enter}","{shift} < y x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['° + " * ç % & / ( ) = ? ̀ {bksp}',"{tab} Q W E R T Z U I O P è !","A S D F G H J K L é à £ {enter}","{shift} > Y X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["§ | @ # 4 5 ¬ ¦ ¢ 9 0 ́ ̃ {bksp}","{tab} q w € r t z u i o p [ ]","a s d f g h j k l ö { } {enter}","{shift} \\ y x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["hebrew-qwerty"]={name:"hebrew-qwerty",lang:["he"],normal:["; 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} / ' ק ר א ט ו ן ם פ [ ] \\","ש ד ג כ ע י ח ל ך ף , {enter}","{shift} ז ס ב ה נ מ צ ת ץ . {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts.hindi={name:"hindi",lang:["hi"],normal:["` ऍ र रञ तर कष शर ९ ० - {bksp}","{tab} ब ह ग द ज ड \\"," ि प र क त च ट {enter}","{shift} म न व ल स , . य {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ १ २ ३ ४ ५ ६ ७ ८ ९ ० ऋ {bksp}","{tab} औ ऐ आ ई ऊ भ ङ घ ध झ ढ ञ ऑ","ओ ए अ इ उ फ ऱ ख थ छ ठ {enter}",'{shift} "" ण न व ळ श ष । य़ {shift}',"{accept} {alt} {space} {alt} {cancel}"],alt:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["hungarian-qwertz-1"]={name:"hungarian-qwertz-1",lang:["hu"],default:["0 1 2 3 4 5 6 7 8 9 ö ü ó ű {bksp}","{tab} q w e r t z u i o p ő ú","a s d f g h j k l é á {enter}","{shift} í y x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["§ ' \" + ! % / = ( ) Ö Ü Ó Ű {bksp}","{tab} Q W E R T Z U I O P Ő Ú","A S D F G H J K L É Á {enter}","{shift} Í Y X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{sp:1} ~ ˇ ^ ˘ ° ˛ ` ˙ ´ ˝ ¨ ¸ ¤ {bksp}","{tab} \\ | Ä {sp:1} {sp:1} {sp:1} € Í {sp:1} {sp:1} ÷ ×","ä đ Đ [ ] {sp:1} í ł Ł $ ß {enter}","{shift} < > # & @ { } < ; > * {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["hungarian-qwertz-2"]={name:"hungarian-qwertz-2",lang:["hu"],default:["0 1 2 3 4 5 6 7 8 9 ö ü ó {bksp}","{tab} q w e r t z u i o p ő ú","a s d f g h j k l é á ű {enter}","{shift} í y x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["§ ' \" + ! % / = ( ) Ö Ü Ó {bksp}","{tab} Q W E R T Z U I O P Ő Ú","A S D F G H J K L É Á Ű {enter}","{shift} Í Y X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{sp:1} ~ ˇ ^ ˘ ° ˛ ` ˙ ´ ˝ ¨ ¸ {bksp}","{tab} \\ | Ä {sp:1} {sp:1} {sp:1} € Í {sp:1} {sp:1} ÷ ×","ä đ Đ [ ] {sp:1} í ł Ł $ ß ¤ {enter}","{shift} < > # & @ { } < ; > * {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["hungarianansi-qwertz-1"]={name:"hungarianansi-qwertz-1",lang:["hu"],normal:["0 1 2 3 4 5 6 7 8 9 ö ü ó ű {bksp}","{tab} q w e r t z u i o p ő ú","a s d f g h j k l é á {enter}","{shift} í y x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["§ ' \" + ! % / = ( ) Ö Ü Ó Ű {bksp}","{tab} Q W E R T Z U I O P Ő Ú","A S D F G H J K L É Á {enter}","{shift} Í Y X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{sp:1} ~ ˇ ^ ˘ ° ˛ ` ˙ ´ ˝ ¨ ¸ ¤ {bksp}","{tab} \\ | Ä {sp:1} {sp:1} {sp:1} € Í {sp:1} {sp:1} ÷ ×","ä đ Đ [ ] {sp:1} í ł Ł $ ß {enter}","{shift} < > # & @ { } < ; > * {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["hungarianansi-qwertz-2"]={name:"hungarianansi-qwertz-2",lang:["hu"],normal:["0 1 2 3 4 5 6 7 8 9 ö ü ó {bksp}","{tab} q w e r t z u i o p ő ú","a s d f g h j k l é á ű {enter}","{shift} í y x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["§ ' \" + ! % / = ( ) Ö Ü Ó {bksp}","{tab} Q W E R T Z U I O P Ő Ú","A S D F G H J K L É Á Ű {enter}","{shift} Í Y X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{sp:1} ~ ˇ ^ ˘ ° ˛ ` ˙ ´ ˝ ¨ ¸ {bksp}","{tab} \\ | Ä {sp:1} {sp:1} {sp:1} € Í {sp:1} {sp:1} ÷ ×","ä đ Đ [ ] {sp:1} í ł Ł $ ß ¤ {enter}","{shift} < > # & @ { } < ; > * {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["japanese-kana"]={name:"japanese-kana",lang:["ja"],normal:["0 1 2 3 4 5 6 7 8 9","あ い う え お は ひ ふ へ ほ","か き く け こ ま み む め も","さ し す せ そ や ゆ よ {bksp}","た ち つ て と ら り る れ ろ","な に ぬ ね の わ を ん ゐ ゑ","ぁ ぃ ぅ ぇ ぉ ́ {shift}","ゃ ゅ ょ っ ́ ・ ー 〜 {alt}","{accept} {space} {cancel} {enter}"],shift:["0 1 2 3 4 5 6 7 8 9","ア イ ウ エ オ ハ ヒ フ ヘ ホ","カ キ ク ケ コ マ ミ ム メ モ","サ シ ス セ ソ ヤ ユ ヨ {bksp}","タ チ ツ テ ト ラ リ ル レ ロ","ナ ニ ヌ ネ ノ ワ ヲ ン ヰ ヱ","ァ ィ ゥ ェ ォ ́ {shift}","ャ ュ ョ ッ ́ ・ ー 〜 {alt}","{accept} {space} {cancel} {enter}"],alt:["0 1 2 3 4 5 6 7 8 9 - ^ ¥ {bksp}","{tab} q w e r t y u i o p @ [","a s d f g h j k l ; : ] {enter}"," {shift} z x c v b n m , . / \\ {shift}","{accept} {space} {alt} {cancel}"],"alt-shift":["0 1 2 3 4 5 6 7 8 9 - ^ ¥ {bksp}","{tab} Q W E R T Y U I O P @ [","A S D F G H J K L ; : ] {enter}"," {shift} Z X C V B N M , . / \\ {shift}","{accept} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["japanese-qwerty"]={name:"japanese-qwerty",lang:["ja"],normal:["1 2 3 4 5 6 7 8 9 0 - ^ ¥ {bksp}","{tab} q w e r t y u i o p @ [","a s d f g h j k l ; : ] {enter}","{shift} z x c v b n m , . / \\ {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["! \" # $ % & ' ( ) ́ = ~ | {bksp}","{tab} Q W E R T Y U I O P ` {","A S D F G H J K L + * } {enter}","{shift} Z X C V B N M < > ? _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["ぬ ふ あ う え お や ゆ よ わ ほ へ ー {bksp}","{tab} た て い す か ん な に ら せ ゙ ゚","ち と し は き く ま の り れ け む {enter}","{shift} つ さ そ ひ こ み も ね る め ろ {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["́ ́ ぁ ぅ ぇ ぉ ゃ ゅ ょ を ́ ́ ́ {bksp}","{tab} ́ ́́ ́ ́ ́ ́ ́ ́ ́ 「","́ ́ ́ ́ ́ ́ ́ ́ ́ ́ ヶ 」 {enter}","{shift} っ ́ ́ ́ ́ ́ ́ 、 。 ・ ¦ {shift}","{accept} {alt} {space} {alt} {cancel}"]};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
jQuery.keyboard.layouts["latvian-qwerty"]={name:"latvian-qwerty",lang:["lv"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] °","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["¬ 1 « » € 5 ’ 7 8 9 0 – = {bksp}","{tab} q w ē ŗ t y ū ī ō p [ ] °","ā š d f ģ h j ķ ļ ; ´ {enter}","{shift} ž x č v b ņ m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ 1 2 3 4 § « 7 ± × 0 — = {bksp}","{tab} Q W Ē Ŗ T Y Ū Ī Ō P { } |","Ā Š D F Ģ H J Ķ Ļ : ¨ {enter}","{shift} Ž X Č V B Ņ M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts.mongolian={name:"mongolian",lang:["mn"],normal:['= № - " ₮ : . _ , % ? е щ {bksp}',"{tab} ф ц у ж э н г ш ү з к ъ \\","й ы б ө а х р о л д п {enter}","{shift} я ч ё с м и т ь в ю {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["+ 1 2 3 4 5 6 7 8 9 0 Е Щ {bksp}","{tab} Ф Ц У Ж Э Н Г Ш Ү З К Ъ |","Й Ы Б Ө А Х Р О Л Д П {enter}","{shift} Я Ч Ё С М И Т Ь В Ю {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Albanian"]={name:"ms-Albanian",lang:["sq"],normal:["\\ 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t z u i o p ç @","a s d f g h j k l ë [ ] {enter}","{shift} < y x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['| ! " # $ % ^ & * ( ) _ + {bksp}',"{tab} Q W E R T Z U I O P Ç '","A S D F G H J K L Ë { } {enter}","{shift} > Y X C V B N M ; : ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} ~ ˇ ^ ˘ ° ˛ ` ˙ ´ ˝ ¨ ¸ {bksp}","{tab} \\ | {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ÷ ×","{empty} đ Đ [ ] {empty} {empty} ł Ł $ ß ¤ {enter}","{shift} {empty} {empty} {empty} {empty} @ { } § < > {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Arabic (101)"]={name:"ms-Arabic (101)",lang:["ar"],normal:["ذ 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} ض ص ث ق ف غ ع ه خ ح ج د \\","ش س ي ب ل ا ت ن م ك ط {enter}","{shift} ئ ء ؤ ر لا ى ة و ز ظ {shift}","{accept} {space} {cancel}"],shift:["ّ ! @ # $ % ^ & * ) ( _ + {bksp}","{tab} َ ً ُ ٌ لإ إ ‘ ÷ × ؛ < > |",'ِ ٍ ] [ لأ أ ـ ، / : " {enter}',"{shift} ~ ْ } { لآ آ ’ , . ؟ {shift}","{accept} {space} {cancel}"]},jQuery.keyboard.layouts["ms-Arabic (102)"]={name:"ms-Arabic (102)",lang:["ar"],normal:["> 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} ض ص ث ق ف غ ع ه خ ح ج د {enter}","ش س ي ب ل ا ت ن م ك ط ذ ","{shift} ـ ئ ء ؤ ر لا ى ة و ز ظ {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["< ! @ # $ % ^ & * ) ( _ + {bksp}","{tab} َ ً ُ ٌ لإ إ ‘ ÷ × ؛ } { {enter}",'\\ {empty} ] [ لأ أ ـ ، / : " ّ ',"{shift} | ~ ْ ِ ٍ لآ آ ’ , . ؟ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} {empty} {empty} ¤ {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {bksp}","{tab} َّ ًّ ُّ ٌّ {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {enter}","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ","{shift} {empty} {empty} {empty} ِّ ٍّ {empty} {empty} {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-Arabic (102) AZERTY"]={name:"ms-Arabic (102) AZERTY",lang:["ar"],normal:["> & é \" ' ( - è _ ç à ) = {bksp}","{tab} ض ص ث ق ف غ ع ه خ ح ج د {enter}","ش س ي ب ل ا ت ن م ك ط ذ ","{shift} \\ ئ ء ؤ ر لا ى ة و ز ظ {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["< 1 2 3 4 5 6 7 8 9 0 ° + {bksp}","{tab} َ ً ُ ٌ لإ إ ‘ ÷ × ؛ } { {enter}",'\\ {empty} ] [ لأ أ ـ ، / : " ّ ',"{shift} | ~ ْ ِ ٍ لآ آ ’ , . ؟ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} {empty} {empty} ¤ {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {bksp}","{tab} َّ ًّ ُّ ٌّ {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {enter}","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ","{shift} {empty} {empty} {empty} ِّ ٍّ {empty} {empty} {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Armenian Eastern"]={name:"ms-Armenian Eastern",lang:["hy-e"],normal:["՝ : ձ յ ՛ , - . « » օ ռ ժ {bksp}","{tab} խ ւ է ր տ ե ը ի ո պ չ ջ '","ա ս դ ֆ ք հ ճ կ լ թ փ {enter}","{shift} ' զ ց գ վ բ ն մ շ ղ / {shift}","{accept} {space} {cancel}"],shift:["՜ 1 Ձ Յ 3 4 9 և ( ) Օ Ռ Ժ {bksp}","{tab} Խ Ւ Է Ր Տ Ե Ը Ի Ո Պ Չ Ջ ՞","Ա Ս Դ Ֆ Ք Հ Ճ Կ Լ Թ Փ {enter}","{shift} ՞ Զ Ց Գ Վ Բ Ն Մ Շ Ղ / {shift}","{accept} {space} {cancel}"]},jQuery.keyboard.layouts["ms-Armenian Western"]={name:"ms-Armenian Western",lang:["hy-w"],normal:["՝ : ձ յ ՛ , - . « » օ ռ ժ {bksp}","{tab} խ վ է ր դ ե ը ի ո բ չ ջ '","ա ս տ ֆ կ հ ճ ք լ թ փ {enter}","{shift} ' զ ց գ ւ պ ն մ շ ղ / {shift}","{accept} {space} {cancel}"],shift:["՜ 1 Ձ Յ 3 4 9 և ( ) Օ Ռ Ժ {bksp}","{tab} Խ Վ Է Ր Դ Ե Ը Ի Ո Բ Չ Ջ ՞","Ա Ս Տ Ֆ Կ Հ Ճ Ք Լ Թ Փ {enter}","{shift} ՞ Զ Ց Գ Ւ Պ Ն Մ Շ Ղ / {shift}","{accept} {space} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Assamese-INSCRIPT"]={name:"ms-Assamese-INSCRIPT",lang:["as"],normal:["॥ ১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ - {bksp}","{tab} ব হ গ দ জ ড {empty}"," ি প ৰ ক ত চ ট {enter}","{shift} {empty} {empty} ম ন ৱ ল স , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["{empty} ! @ ৰ ৰঞ তৰ কষ শৰ ( ) ঋ {bksp}","{tab} ঔ ঐ আ ঈ ঊ ভ ঙ ঘ ধ ঝ ঢ ঞ {empty}","ও এ অ ই উ ফ {empty} খ থ ছ ঠ {enter}","{shift} {empty} {empty} ণ {empty} {empty} {empty} শ ষ । / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Azeri Cyrillic"]={name:"ms-Azeri Cyrillic",lang:["az"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} ј ү у к е н г ш һ з х ҹ \\","ф ы в а п р о л д ж ҝ {enter}","{shift} \\ ә ч с м и т ғ б ө / {shift}","{accept} {space} {cancel}"],shift:['~ ! " № ; % : ? * ( ) _ + {bksp}',"{tab} Ј Ү У К Е Н Г Ш Һ З Х Ҹ /","Ф Ы В А П Р О Л Д Ж Ҝ {enter}","{shift} | Ә Ч С М И Т Ғ Б Ө / {shift}","{accept} {space} {cancel}"]},jQuery.keyboard.layouts["ms-Azeri Latin"]={name:"ms-Azeri Latin",lang:["az"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q ü e r t y u i o p ö ğ \\","a s d f g h j k l ı ə {enter}","{shift} \\ z x c v b n m ç ş / {shift}","{accept} {space} {cancel}"],shift:['~ ! " Ⅶ ; % : ? * ( ) _ + {bksp}',"{tab} Q Ü E R T Y U İ O P Ö Ğ /","A S D F G H J K L I Ə {enter}","{shift} / Z X C V B N M Ç Ş / {shift}","{accept} {space} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Bashkir"]={name:"ms-Bashkir",lang:["ba"],normal:["ә ! ө ҡ ғ ҫ : ҙ һ ? № - ү {bksp}","{tab} й ц у к е н г ш щ з х ъ ң","ф ы в а п р о л д ж э {enter}","{shift} я ч с м и т ь б ю / {shift}","{accept} {space} {cancel}"],shift:['Ә " Ө Ҡ Ғ Ҫ ; Ҙ Һ ( ) % Ү {bksp}',"{tab} Й Ц У К Е Н Г Ш Щ З Х Ъ Ң","Ф Ы В А П Р О Л Д Ж Э {enter}","{shift} Я Ч С М И Т Ь Б Ю / {shift}","{accept} {space} {cancel}"]},jQuery.keyboard.layouts["ms-Bosnian (Cyrillic)"]={name:"ms-Bosnian (Cyrillic)",lang:["bs"],normal:["` 1 2 3 4 5 6 7 8 9 0 ' + {bksp}","{tab} љ њ е р т з у и о п ш ђ ж","а с д ф г х ј к л ч ћ {enter}","{shift} < ѕ џ ц в б н м , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['~ ! " # $ % & / ( ) = ? * {bksp}',"{tab} Љ Њ Е Р Т З У И О П Ш Ђ Ж","А С Д Ф Г Х Ј К Л Ч Ћ {enter}","{shift} > Ѕ Џ Ц В Б Н М ; : / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} {empty} ^ {empty} ° {empty} {empty} {empty} {empty} {empty} {empty} {empty} {bksp}","{tab} \\ | € {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty}","{empty} {empty} {empty} [ ] {empty} {empty} {empty} {empty} {empty} {empty} {enter}","{shift} {empty} {empty} {empty} {empty} @ { } § < > {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Belarusian"]={name:"ms-Belarusian",lang:["be"],normal:["ё 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} й ц у к е н г ш ў з х ' \\","ф ы в а п р о л д ж э {enter}","{shift} \\ я ч с м і т ь б ю / {shift}","{accept} {space} {cancel}"],shift:['Ё ! " № ; % : ? * ( ) _ + {bksp}',"{tab} Й Ц У К Е Н Г Ш Ў З Х ' /","Ф Ы В А П Р О Л Д Ж Э {enter}","{shift} / Я Ч С М І Т Ь Б Ю / {shift}","{accept} {space} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Belgian (Comma)"]={name:"ms-Belgian (Comma)",lang:["nl","fr","de"],normal:["² & é \" ' ( § è ! ç à ) - {bksp}","{tab} a z e r t y u i o p ^ $ µ","q s d f g h j k l m ù {enter}","{shift} < w x c v b n , ; : / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["³ 1 2 3 4 5 6 7 8 9 0 ° _ {bksp}","{tab} A Z E R T Y U I O P ¨ * £","Q S D F G H J K L M % {enter}","{shift} > W X C V B N ? . / / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} | @ # { [ ^ {empty} {empty} { } {empty} {empty} {bksp}","{tab} {empty} {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} [ ] {empty}","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ´ {enter}","{shift} \\ {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-Belgian French"]={name:"ms-Belgian French",lang:["nl-fr","fr"],normal:["² & é \" ' ( § è ! ç à ) - {bksp}","{tab} a z e r t y u i o p ^ $ µ","q s d f g h j k l m ù {enter}","{shift} < w x c v b n , ; : / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["³ 1 2 3 4 5 6 7 8 9 0 ° _ {bksp}","{tab} A Z E R T Y U I O P ¨ * £","Q S D F G H J K L M % {enter}","{shift} > W X C V B N ? . / / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} | @ # { [ ^ {empty} {empty} { } {empty} {empty} {bksp}","{tab} {empty} {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} [ ] {empty}","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ´ {enter}","{shift} \\ {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Bengali"]={name:"ms-Bengali",lang:["bn"],normal:["1 2 3 4 5 6 7 8 9 0 - {bksp}","{tab} ব হ গ দ জ ড "," ি প র ক ত চ ট {enter}","{shift} ম ন ব ল স , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["{empty} {empty} র রর তষ কর শর ( ) ঋ {bksp}","{tab} ঔ ঐ আ ঈ ঊ ভ ঙ ঘ ধ ঝ ঢ ঞ","ও এ অ ই উ ফ {empty} খ থ ছ ঠ {enter}","{shift} ণ {empty} {empty} {empty} শ ষ { / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ {empty} {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ড় {empty}","৴ ৶ ৸ {empty} {empty} ৰ {empty} {empty} {empty} {empty} {enter}","{shift} ৺ {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ৠ {bksp}","{tab} {empty} {empty} {empty} ৡ {empty} {empty} {empty} {empty} {empty} {empty} ঢ় {empty}","৵ ৷ ৹ ঌ {empty} {empty} ৱ {empty} {empty} {empty} {empty} {enter}","{shift} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-Bengali - INSCRIPT (Legacy)"]={name:"ms-Bengali - INSCRIPT (Legacy)",lang:["bn"],normal:["১ ২ ৩ ৪ ৫ ৬ ৭ ৮ ৯ ০ - {bksp}","{tab} ব হ গ দ জ ড "," ি প র ক ত চ ট {enter}","{shift} ম ন ব ল স , . / {shift}","{accept} {space} {cancel}"],shift:["! @ {empty} রঞ তর কষ শর ( ) ঋ {bksp}","{tab} ঔ ঐ আ ঈ ঊ ভ ঙ ঘ ধ ঝ ঢ ঞ","ও এ অ ই উ ফ {empty} খ থ ছ ঠ {enter}","{shift} ণ {empty} {empty} {empty} শ ষ {empty} / {shift}","{accept} {space} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Bulgarian (Phonetic Traditional)"]={name:"ms-Bulgarian (Phonetic Traditional)",lang:["bg"],normal:["ч 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} я в е р т ъ у и о п ш щ ю","а с д ф г х й к л ; ' {enter}","{shift} ю з ь ц ж б н м , . / {shift}","{accept} {space} {cancel}"],shift:["Ч ! @ № $ % € § * ( ) _ + {bksp}","{tab} Я В Е Р Т Ъ У И О П Ш Щ Ю",'А С Д Ф Г Х Й К Л : " {enter}',"{shift} Ю З ѝ Ц Ж Б Н М < > / {shift}","{accept} {space} {cancel}"]},jQuery.keyboard.layouts["ms-Bulgarian (Phonetic)"]={name:"ms-Bulgarian (Phonetic)",lang:["bg"],normal:["ю 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} ч ш е р т ъ у и о п я щ ь","а с д ф г х й к л ; ' {enter}","{shift} ѝ з ж ц в б н м , . / {shift}","{accept} {space} {cancel}"],shift:["Ю ! @ № $ % € § * ( ) – + {bksp}","{tab} Ч Ш Е Р Т Ъ У И О П Я Щ ѝ",'А С Д Ф Г Х Й К Л : " {enter}',"{shift} Ѝ З Ж Ц В Б Н М „ “ / {shift}","{accept} {space} {cancel}"]},jQuery.keyboard.layouts["ms-Bulgarian (Typewriter)"]={name:"ms-Bulgarian (Typewriter)",lang:["bg"],normal:["` 1 2 3 4 5 6 7 8 9 0 - . {bksp}","{tab} , у е и ш щ к с д з ц ; (","ь я а о ж г т н в м ч {enter}","{shift} \\ ю й ъ э ф х п р л / {shift}","{accept} {space} {cancel}"],shift:['~ ! ? + " % = : / _ № І V {bksp}',"{tab} ы У Е И Ш Щ К С Д З Ц § )","Ь Я А О Ж Г Т Н В М Ч {enter}","{shift} | Ю Й Ъ Э Ф Х П Р Л / {shift}","{accept} {space} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Canadian French"]={name:"ms-Canadian French",lang:["fr-ca"],normal:["# 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p ^ ¸ <","a s d f g h j k l ; ` {enter}","{shift} « z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['| ! " / $ % ? & * ( ) _ + {bksp}',"{tab} Q W E R T Y U I O P ^ ¨ >","A S D F G H J K L : ` {enter}","{shift} » Z X C V B N M ' . / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["\\ ± @ £ ¢ ¤ ¬ ¦ ² ³ ¼ ½ ¾ {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} § ¶ [ ] }","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ~ { {enter}","{shift} ° {empty} {empty} {empty} {empty} {empty} {empty} µ ¯ ­ {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-Canadian French (Legacy)"]={name:"ms-Canadian French (Legacy)",lang:["fr-ca"],normal:["° 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p ^ ç à","a s d f g h j k l ; è {enter}","{shift} ù z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['° ! " # $ % ? & * ( ) _ + {bksp}',"{tab} Q W E R T Y U I O P ^ Ç À","A S D F G H J K L : È {enter}","{shift} Ù Z X C V B N M ' . / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["¬ ¹ @ ³ ¼ ½ ¾ { [ ] } | ¸ {bksp}","{tab} {empty} {empty} {empty} ¶ {empty} ¥ {empty} {empty} ø þ ° ~ {empty}","æ ß ð ª {empty} {empty} {empty} {empty} {empty} ´ {empty} {enter}","{shift} \\ « » ¢ {empty} {empty} {empty} µ < > {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["{empty} ¡ ² £ ¤ {empty} {empty} {empty} {empty} ± {empty} ¿ {empty} {bksp}","{tab} {empty} {empty} {empty} ® {empty} {empty} {empty} {empty} Ø Þ {empty} ¨ {empty}","Æ § Ð {empty} {empty} {empty} {empty} {empty} {empty} ´ {empty} {enter}","{shift} | {empty} {empty} © {empty} {empty} {empty} º {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-Canadian Multilingual Standard"]={name:"ms-Canadian Multilingual Standard",lang:["en-ca"],normal:["/ 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p ^ ç {enter}","a s d f g h j k l ; è à ","{shift} ù z x c v b n m , . é {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["\\ ! @ # $ % ? & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P ¨ Ç {enter}","A S D F G H J K L : È À ","{shift} Ù Z X C V B N M ' \" É {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["| {empty} {empty} {empty} {empty} {empty} {empty} { } [ ] {empty} ¬ {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ` ~ {enter}","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ° {empty} {empty} ","{shift} {empty} « » {empty} {empty} {empty} {empty} {empty} < > {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Chinese Bopomofo IME"]={name:"ms-Chinese Bopomofo IME",lang:["zh"],normal:["€ ㄅ ㄉ ˇ ˋ ㄓ ˊ ˙ ㄚ ㄞ ㄢ ㄦ = {bksp}","{tab} ㄆ ㄊ ㄍ ㄐ ㄔ ㄗ ㄧ ㄛ ㄟ ㄣ [ ] \\","ㄇ ㄋ ㄎ ㄑ ㄕ ㄘ ㄨ ㄜ ㄠ ㄤ ' {enter}","ㄈ ㄌ ㄏ ㄒ ㄖ ㄙ ㄩ ㄝ ㄡ ㄥ","{accept} {alt} {space} {alt} {cancel}"],alt:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-Chinese ChaJei IME"]={name:"ms-Chinese ChaJei IME",lang:["zh"],normal:["€ 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} 手 田 水 口 廿 卜 山 戈 人 心 [ ] \\","日 尸 木 火 土 竹 十 大 中 ; ' {enter}","Z 難 金 女 月 弓 一 , . /","{accept} {alt} {space} {alt} {cancel}"],alt:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Czech"]={name:"ms-Czech",lang:["cs"],normal:["; + ě š č ř ž ý á í é = ´ {bksp}","{tab} q w e r t z u i o p ú ) {empty}","a s d f g h j k l ů § {enter}","{shift} \\ y x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["° 1 2 3 4 5 6 7 8 9 0 % ˇ {bksp}","{tab} Q W E R T Z U I O P / ( '",'A S D F G H J K L " ! {enter}',"{shift} | Y X C V B N M ? : / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} ~ ˇ ^ ˘ ° ˛ ` ˙ ´ ˝ ¨ ¸ {bksp}","{tab} \\ | € {empty} {empty} {empty} {empty} {empty} {empty} {empty} ÷ × ¤","{empty} đ Đ [ ] {empty} {empty} ł Ł $ ß {enter}","{shift} {empty} {empty} # & @ { } {empty} < > {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-Czech (QWERTY)"]={name:"ms-Czech (QWERTY)",lang:["cs"],normal:["; + ě š č ř ž ý á í é = ´ {bksp}","{tab} q w e r t y u i o p ú ) {empty}","a s d f g h j k l ů § {enter}","{shift} \\ z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["° 1 2 3 4 5 6 7 8 9 0 % ˇ {bksp}","{tab} Q W E R T Y U I O P / ( '",'A S D F G H J K L " ! {enter}',"{shift} | Z X C V B N M ? : / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["` ! @ # $ % ^ & * ( ) - = {bksp}","{tab} {empty} {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} [ ] \\","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ; ¤ {enter}","{shift} ß {empty} {empty} {empty} {empty} {empty} {empty} {empty} < > {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} _ + {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} { } |","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} : ^ {enter}","{shift} ˝ {empty} {empty} {empty} {empty} {empty} {empty} {empty} × ÷ {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-Czech Programmers"]={name:"ms-Czech Programmers",lang:["cs"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} \\ z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} | Z X C V B N M < > / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["; + ě š č ř ž ý á í é = ´ {bksp}","{tab} {empty} {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} ú ) {empty}","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ů § {enter}","{shift} ß {empty} {empty} {empty} {empty} {empty} {empty} {empty} ? : {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["° {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} % ˇ {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} / ( {empty}",'{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} " ! {enter}',"{shift} ˝ {empty} {empty} {empty} {empty} {empty} {empty} {empty} × ÷ {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Danish"]={name:"ms-Danish",lang:["da"],normal:["½ 1 2 3 4 5 6 7 8 9 0 + ´ {bksp}","{tab} q w e r t y u i o p å ¨","a s d f g h j k l æ ø ' {enter}","{shift} < z x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['§ ! " # ¤ % & / ( ) = ? ` {bksp}',"{tab} Q W E R T Y U I O P Å ^","A S D F G H J K L Æ Ø * {enter}","{shift} > Z X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} @ £ $ € {empty} { [ ] } {empty} | {bksp}","{tab} {empty} {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ~","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {enter}","{shift} \\ {empty} {empty} {empty} {empty} {empty} {empty} µ {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Devanagari - INSCRIPT"]={name:"ms-Devanagari - INSCRIPT",lang:["hi","ne","mr","kok","bodo","mai"],normal:[" 1 2 3 4 5 6 7 8 9 0 - {bksp}","{tab} ब ह ग द ज ड "," ि प र क त च ट {enter}","{shift} म न व ल स , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["ऒ ऍ र रञ तर कष शर ( ) ऋ {bksp}","{tab} औ ऐ आ ई ऊ भ ङ घ ध झ ढ ञ ऑ","ओ ए अ इ उ फ ऱ ख थ छ ठ {enter}","{shift} ऑ ऎ ण ऩ ऴ ळ श ष । / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} १ २ ३ ४ ५ ६ ७ ८ ९ ० {empty} {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} ग़ {empty} ज़ ड़ {empty} {empty}","{empty} {empty} {empty} {empty} {empty} {empty} क़ {empty} {empty} {enter}","{shift} {empty} {empty} {empty} {empty} {empty} {empty} ॰ ॥ {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ॠ {bksp}","{tab} {empty} {empty} {empty} ॡ {empty} {empty} {empty} {empty} {empty} {empty} ढ़ {empty} {empty}","{empty} {empty} {empty} ऌ {empty} फ़ {empty} ख़ {empty} {empty} {enter}","{shift} {empty} {empty} ॐ {empty} {empty} {empty} {empty} {empty} {empty} ऽ {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Divehi Phonetic"]={name:"ms-Divehi Phonetic",lang:["dv"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} ް އ ެ ރ ތ ޔ ު ި ޮ ޕ ] [ \\","ަ ސ ދ ފ ގ ހ ޖ ކ ލ ؛ ' {enter}","{shift} \\ ޒ × ޗ ވ ބ ނ މ ، . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ! @ # $ % ^ & * ) ( _ + {bksp}","{tab} ޤ ޢ ޭ ޜ ޓ ޠ ޫ ީ ޯ ÷ } { |",'ާ ށ ޑ ﷲ ޣ ޙ ޛ ޚ ޅ : " {enter}',"{shift} | ޡ ޘ ޝ ޥ ޞ ޏ ޟ > < / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty}","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ; {empty} {enter}","{shift} {empty} {empty} {empty} {empty} {ZWJ} {ZWNJ} {LRM} {RLM} , {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-Divehi Typewriter"]={name:"ms-Divehi Typewriter",lang:["dv"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} ޫ ޮ ާ ީ ޭ ގ ރ މ ތ ހ ލ [ ]","ި ު ް ަ ެ ވ އ ނ ކ ފ ﷲ {enter}","{shift} \\ ޒ ޑ ސ ޔ ޅ ދ ބ ށ ޓ / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ! @ # $ % ^ & * ) ( _ + {bksp}","{tab} × ’ “ / : ޤ ޜ ޣ ޠ ޙ ÷ { }",'< > . ، " ޥ ޢ ޘ ޚ ޡ ؛ {enter}',"{shift} | ޖ ޕ ޏ ޗ ޟ ޛ ޝ \\ ޞ / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty}","{empty} {empty} {empty} , {empty} {empty} {empty} {empty} {empty} {empty} ; {enter}","{shift} {empty} {empty} {empty} {empty} {ZWJ} {ZWNJ} {LRM} {RLM} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Dutch"]={name:"ms-Dutch",lang:["nl"],normal:["@ 1 2 3 4 5 6 7 8 9 0 / ° {bksp}","{tab} q w e r t y u i o p ¨ * {enter}","a s d f g h j k l + ´ < ","{shift} ] z x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["§ ! \" # $ % & _ ( ) ' ? ~ {bksp}","{tab} Q W E R T Y U I O P ^ | {enter}","A S D F G H J K L ± ` > ","{shift} [ Z X C V B N M ; : = {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["¬ ¹ ² ³ ¼ ½ ¾ £ { } {empty} \\ ¸ {bksp}","{tab} {empty} {empty} € ¶ {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {enter}","{empty} ß {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ","{shift} ¦ « » ¢ {empty} {empty} {empty} µ {empty} · {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Estonian"]={name:"ms-Estonian",lang:["et"],normal:["ˇ 1 2 3 4 5 6 7 8 9 0 + ´ {bksp}","{tab} q w e r t y u i o p ü õ '","a s d f g h j k l ö ä {enter}","{shift} < z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['~ ! " # ¤ % & / ( ) = ? ` {bksp}',"{tab} Q W E R T Y U I O P Ü Õ *","A S D F G H J K L Ö Ä {enter}","{shift} > Z X C V B N M ; : / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} @ £ $ € {empty} { [ ] } \\ {empty} {bksp}","{tab} {empty} {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} § ½","{empty} š {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ^ {enter}","{shift} | ž {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["{empty} {empty} @ £ $ {empty} {empty} { [ ] } \\ {empty} {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} § ½","{empty} Š {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ^ {enter}","{shift} | Ž {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Faroese"]={name:"ms-Faroese",lang:["fo"],normal:["½ 1 2 3 4 5 6 7 8 9 0 + ´ {bksp}","{tab} q w e r t y u i o p å ð {enter}","a s d f g h j k l æ ø ' ","{shift} < z x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['§ ! " # ¤ % & / ( ) = ? ` {bksp}',"{tab} Q W E R T Y U I O P Å Ð {enter}","A S D F G H J K L Æ Ø * ","{shift} > Z X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} @ £ $ € {empty} { [ ] } {empty} | {bksp}","{tab} {empty} {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} ¨ ~ {enter}","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ^ {empty} ","{shift} \\ {empty} {empty} {empty} {empty} {empty} {empty} µ {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Finnish"]={name:"ms-Finnish",lang:["fi"],normal:["§ 1 2 3 4 5 6 7 8 9 0 + ´ {bksp}","{tab} q w e r t y u i o p å ¨ {enter}","a s d f g h j k l ö ä ' ","{shift} < z x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['½ ! " # ¤ % & / ( ) = ? ` {bksp}',"{tab} Q W E R T Y U I O P Å ^ {enter}","A S D F G H J K L Ö Ä * ","{shift} > Z X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} @ £ $ € {empty} { [ ] } \\ {empty} {bksp}","{tab} {empty} {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ~ {enter}","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ","{shift} | {empty} {empty} {empty} {empty} {empty} {empty} µ {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-French"]={name:"ms-French",lang:["fr"],normal:["² & é \" ' ( - è _ ç à ) = {bksp}","{tab} a z e r t y u i o p ^ $","q s d f g h j k l m ù * {enter}","{shift} < w x c v b n , ; : ! {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["{empty} 1 2 3 4 5 6 7 8 9 0 ° + {bksp}","{tab} A Z E R T Y U I O P ¨ £","Q S D F G H J K L M % µ {enter}","{shift} > W X C V B N ? . / § {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} ~ # { [ | ` \\ ^ @ ] } {bksp}","{tab} {empty} {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ¤","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {enter}","{shift} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Gaelic"]={name:"ms-Gaelic",lang:["gd"],normal:["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ]","a s d f g h j k l ; ' # {enter}","{shift} \\ z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['` ! " £ $ % ^ & * ( ) _ + {bksp}',"{tab} Q W E R T Y U I O P { }","A S D F G H J K L : @ ~ {enter}","{shift} | Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["¦ {empty} {empty} {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {bksp}","{tab} {empty} {empty} é {empty} {empty} ý ú í ó {empty} {empty} {empty}","á {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ' {empty} {enter}","{shift} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["¬ {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {bksp}","{tab} {empty} {empty} É {empty} {empty} Ý Ú Í Ó {empty} {empty} {empty}","Á {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {enter}","{shift} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-Georgian"]={name:"ms-Georgian",lang:["ka"],normal:["„ ! ? № § % : . ; , / – = {bksp}","{tab} ღ ჯ უ კ ე ნ გ შ წ ზ ხ ც (","ფ ძ ვ თ ა პ რ ო ლ დ ჟ {enter}","{shift} ( ჭ ჩ ყ ს მ ი ტ ქ ბ / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["“ 1 2 3 4 5 6 7 8 9 0 - + {bksp}","{tab} ღ ჯ უ კ ე ნ გ შ წ ზ ხ ც )","ფ ძ ვ თ ა პ რ ო ლ დ ჟ {enter}","{shift} ) ჭ ჩ ყ ს მ ი ტ ქ ბ / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {bksp}","{tab} {empty} {empty} {empty} {empty} ჱ {empty} {empty} {empty} {empty} {empty} ჴ {empty} {empty}","ჶ {empty} ჳ {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {enter}","{shift} {empty} {empty} {empty} {empty} {empty} {empty} ჲ {empty} {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-Georgian (Ergonomic)"]={name:"ms-Georgian (Ergonomic)",lang:["ka"],normal:["„ ! № , ; % : ? . ( ) - “ {bksp}","{tab} ჩ პ უ ძ ჭ ტ თ ნ ვ შ კ ქ /","ხ ი ა ე ო დ მ ს რ ბ გ {enter}","{shift} \\ ჯ ჰ ყ ღ ჟ ზ ც ლ ფ / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["' 1 2 3 4 5 6 7 8 9 0 + = {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} §","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {enter}","{shift} / {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["` ! @ # $ € ^ & * ( ) — = {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ჼ ჳ {empty} [ ] \\","ჴ ჲ ჺ ჱ {empty} {empty} {empty} {empty} {empty} {empty} ჹ {enter}","{shift} {empty} {empty} ჵ ჸ ჷ {empty} {empty} {empty} {empty} ჶ {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ {empty} {empty} § {empty} {empty} {empty} {empty} ° « » _ {empty} {bksp}","{tab} {empty} {empty} {empty} {empty} {empty} {empty} {empty} I {empty} {empty} { } |",'{empty} {empty} D {empty} {empty} {empty} {empty} {empty} L {empty} " {enter}',"{shift} {empty} {empty} X C V {empty} {empty} M < > {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-Georgian (QWERTY)"]={name:"ms-Georgian (QWERTY)",lang:["ka"],normal:["„ 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} ქ წ ე რ ტ ყ უ ი ო პ [ ] ~","ა ს დ ფ გ ჰ ჯ კ ლ ; ' {enter}","{shift} \\ ზ ხ ც ვ ბ ნ მ , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["“ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} {empty} ჭ {empty} ღ თ {empty} {empty} {empty} {empty} {empty} { } |",'{empty} შ {empty} {empty} {empty} {empty} ჟ {empty} {empty} : " {enter}',"{shift} {empty} ძ {empty} ჩ {empty} {empty} N {empty} < > / {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} „ “ {empty} € {empty} {empty} ° {empty} {empty} — – {bksp}","{tab} {empty} {empty} ჱ ® {empty} ჸ {empty} ჲ {empty} {empty} {empty} {empty} {empty}","ჺ {empty} {empty} ჶ ჹ ჵ ჷ {empty} {empty} {empty} {empty} {enter}","{shift} {empty} {empty} ჴ © ჳ {empty} ჼ {empty} « » {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

@ -0,0 +1 @@
jQuery.keyboard.layouts["ms-German"]={name:"ms-German",lang:["de"],normal:["^ 1 2 3 4 5 6 7 8 9 0 ß ´ {bksp}","{tab} q w e r t z u i o p ü +","a s d f g h j k l ö ä # {enter}","{shift} < y x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['° ! " § $ % & / ( ) = ? ` {bksp}',"{tab} Q W E R T Z U I O P Ü *","A S D F G H J K L Ö Ä ' {enter}","{shift} > Y X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} ² ³ {empty} {empty} {empty} { [ ] } \\ {empty} {bksp}","{tab} @ {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ~","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {enter}","{shift} | {empty} {empty} {empty} {empty} {empty} {empty} µ {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]},jQuery.keyboard.layouts["ms-German (IBM)"]={name:"ms-German (IBM)",lang:["de"],normal:["^ 1 2 3 4 5 6 7 8 9 0 ß ´ {bksp}","{tab} q w e r t z u i o p ü +","a s d f g h j k l ö ä # {enter}","{shift} < y x c v b n m , . - {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:['° ! " § $ % & / ( ) = ? ` {bksp}',"{tab} Q W E R T Z U I O P Ü *","A S D F G H J K L Ö Ä ' {enter}","{shift} > Y X C V B N M ; : _ {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["{empty} {empty} ² ³ {empty} {empty} {empty} { [ ] } \\ {empty} {bksp}","{tab} @ {empty} € {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} ~","{empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {empty} {enter}","{shift} | {empty} {empty} {empty} {empty} {empty} {empty} µ {empty} {empty} {empty} {shift}","{accept} {alt} {space} {alt} {cancel}"]};

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save