mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2025-02-05 13:27:49 +08:00
Merge branch 'master' into master
This commit is contained in:
commit
1276183bd8
7 changed files with 357 additions and 269 deletions
|
@ -3037,28 +3037,27 @@ key {
|
|||
|
||||
.r1 {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 2fr;
|
||||
opacity: 0;
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
|
||||
}
|
||||
|
||||
.r2 {
|
||||
display: grid;
|
||||
grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1.5fr;
|
||||
grid-template-columns: 0.5fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1rem;
|
||||
}
|
||||
|
||||
.r3 {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 2fr;
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
|
||||
}
|
||||
|
||||
.r4 {
|
||||
display: grid;
|
||||
grid-template-columns: 2.5fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 2.5fr;
|
||||
grid-template-columns: 0.5fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 2.75fr;
|
||||
}
|
||||
|
||||
.r5 {
|
||||
display: grid;
|
||||
grid-template-columns: 4fr 5.5fr 4fr;
|
||||
grid-template-columns: 3.5fr 6fr 3.5fr;
|
||||
// &.matrixSpace {
|
||||
// // grid-template-columns: 6.75fr 1.9fr 6.75fr;
|
||||
// grid-template-columns: 6.9fr 4.6fr 6.9fr; // wider spacebar
|
||||
|
|
|
@ -952,56 +952,47 @@
|
|||
</div>
|
||||
<div id="liveWpm">123</div>
|
||||
<div class="keymap hidden">
|
||||
<!-- <div class="row r1">
|
||||
<div class="keymap-key inactive hidden-key">
|
||||
<span class="letter">`</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key" id="Key1">
|
||||
<span class="letter">1</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key" id="Key2">
|
||||
<span class="letter">2</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key" id="Key3">
|
||||
<span class="letter">3</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key" id="Key4">
|
||||
<span class="letter">4</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key" id="Key5">
|
||||
<span class="letter">5</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key" id="Key6">
|
||||
<span class="letter">6</span>
|
||||
</div>
|
||||
<div class="keymap-split-spacer"></div>
|
||||
|
||||
<div class="keymap-key inactive hidden-key" id="Key7">
|
||||
<span class="letter">7</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key" id="Key8">
|
||||
<span class="letter">8</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key" id="Key9">
|
||||
<span class="letter">9</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key" id="Key0">
|
||||
<span class="letter">0</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key" id="Key-">
|
||||
<span class="letter">-</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key" id="Key=">
|
||||
<span class="letter">=</span>
|
||||
</div>
|
||||
<div class="keymap-key inactive hidden-key">
|
||||
<span class="letter">delete</span>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="row r2">
|
||||
<div class="keymap-key hidden-key">
|
||||
<span class="letter"></span>
|
||||
<div class="row r1">
|
||||
<div class="keymap-key" id="Key1">
|
||||
<span class="letter">1</span>
|
||||
</div>
|
||||
<div class="keymap-key" id="Key2">
|
||||
<span class="letter">2</span>
|
||||
</div>
|
||||
<div class="keymap-key" id="Key3">
|
||||
<span class="letter">3</span>
|
||||
</div>
|
||||
<div class="keymap-key" id="Key4">
|
||||
<span class="letter">4</span>
|
||||
</div>
|
||||
<div class="keymap-key" id="Key5">
|
||||
<span class="letter">5</span>
|
||||
</div>
|
||||
<div class="keymap-key" id="Key6">
|
||||
<span class="letter">6</span>
|
||||
</div>
|
||||
<div class="keymap-split-spacer"></div>
|
||||
<div class="keymap-key" id="Key7">
|
||||
<span class="letter">7</span>
|
||||
</div>
|
||||
<div class="keymap-key" id="Key8">
|
||||
<span class="letter">8</span>
|
||||
</div>
|
||||
<div class="keymap-key" id="Key9">
|
||||
<span class="letter">9</span>
|
||||
</div>
|
||||
<div class="keymap-key" id="Key0">
|
||||
<span class="letter">0</span>
|
||||
</div>
|
||||
<div class="keymap-key" id="Key-">
|
||||
<span class="letter">-</span>
|
||||
</div>
|
||||
<div class="keymap-key" id="Key=">
|
||||
<span class="letter">=</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row r2">
|
||||
<div></div>
|
||||
<div class="keymap-key" id="KeyQ">
|
||||
<span class="letter">q</span>
|
||||
</div>
|
||||
|
@ -1044,9 +1035,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="row r3">
|
||||
<div class="keymap-key hidden-key">
|
||||
<span class="letter"></span>
|
||||
</div>
|
||||
<div></div>
|
||||
<div class="keymap-key" id="KeyA">
|
||||
<span class="letter">a</span>
|
||||
</div>
|
||||
|
@ -1083,15 +1072,10 @@
|
|||
<div class="keymap-key" id="KeyQuote">
|
||||
<span class="letter">'</span>
|
||||
</div>
|
||||
<div class="keymap-key hidden-key">
|
||||
<span class="letter"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row r4">
|
||||
<div class="keymap-key hidden-key">
|
||||
<span class="letter"></span>
|
||||
</div>
|
||||
<div class="keymap-key" id="KeyZ">
|
||||
<div></div>
|
||||
<div class="keymap-key first" id="KeyZ">
|
||||
<span class="letter">z</span>
|
||||
</div>
|
||||
<div class="keymap-key" id="KeyX">
|
||||
|
@ -1122,14 +1106,12 @@
|
|||
<div class="keymap-key" id="KeySlash">
|
||||
<span class="letter">/</span>
|
||||
</div>
|
||||
<div class="keymap-key hidden-key">
|
||||
<div class="keymap-key last">
|
||||
<span class="letter"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row r5">
|
||||
<div class="keymap-key hidden-key">
|
||||
<span class="letter"></span>
|
||||
</div>
|
||||
<div></div>
|
||||
<div class="keymap-key key-split-space" id="KeySpace">
|
||||
<span class="letter"></span>
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
const db = firebase.firestore();
|
||||
db.settings({experimentalForceLongPolling: true});
|
||||
|
||||
let dbSnapshot = null;
|
||||
|
||||
|
|
|
@ -1,122 +1,196 @@
|
|||
const layouts = {
|
||||
default: [],
|
||||
qwerty: [
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}","\\|",
|
||||
"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"",
|
||||
"\\|","zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?",
|
||||
" "
|
||||
],
|
||||
dvorak: [
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","[{","]}",
|
||||
"'\"",",<",".>","pP","yY","fF","gG","cC","rR","lL","/?","=+","\\|",
|
||||
"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_",
|
||||
"\\|",";:","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ",
|
||||
" "
|
||||
],
|
||||
colemak:[
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","wW","fF","pP","gG","jJ","lL","uU","yY",";:","[{","]}","\\|",
|
||||
"aA","rR","sS","tT","dD","hH","nN","eE","iI","oO","'\"",
|
||||
"\\|","zZ","xX","cC","vV","bB","kK","mM",",<",".>","/?",
|
||||
" "
|
||||
],
|
||||
colemak_dh:[
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","wW","fF","pP","bB","jJ","lL","uU","yY",";:","[{","]}","\\|",
|
||||
"aA","rR","sS","tT","gG","mM","nN","eE","iI","oO","'\"",
|
||||
"zZ","xX","cC","dD","vV","zZ","kK","hH",",<",".>","/?",
|
||||
" "
|
||||
],
|
||||
colemak_dhk:[
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","wW","fF","pP","bB","jJ","lL","uU","yY",";:","[{","]}","\\|",
|
||||
"aA","rR","sS","tT","gG","kK","nN","eE","iI","oO","'\"",
|
||||
"zZ","xX","cC","dD","vV","zZ","mM","hH",",<",".>","/?",
|
||||
" "
|
||||
],
|
||||
workman:[
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","dD","rR","wW","bB","jJ","fF","uU","pP",";:","[{","]}","\\|",
|
||||
"aA","sS","hH","tT","gG","yY","nN","eE","oO","iI","'\"",
|
||||
"\\|","zZ","xX","mM","cC","vV","kK","lL",",<",".>","/?",
|
||||
" "
|
||||
],
|
||||
turkish_f: [
|
||||
"*+","1!","2\"","3^","4$","5%","6&","7'","8(","9)","0=","/?","-_",
|
||||
"fF","gG","ğĞ","ıI","oO","dD","rR","nN","hH","pP","qQ","wW","xX",
|
||||
"uU","iİ","eE","aA","üÜ","tT","kK","mM","lL","yY","şŞ",
|
||||
"\\|","jJ","öÖ","vV","cC","çÇ","zZ","sS","bB",".:",",;",
|
||||
" "
|
||||
],
|
||||
MTGAP_ASRT: [
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","wW","lL","dD","bB","jJ","fF","uU","kK","pP","[{","]}","\\|",
|
||||
"aA","sS","rR","tT","gG","hH","nN","eE","oO","iI","/?",
|
||||
"\\|","zZ","xX","cC","vV",";:","yY","mM",",<",".>","'\"",
|
||||
" "
|
||||
],
|
||||
norman: [
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","wW","dD","fF","kK","jJ","uU","rR","lL",";:","[{","]}","\\|",
|
||||
"aA","sS","eE","tT","gG","yY","nN","iI","oO","hH","'\"",
|
||||
"\\|","zZ","xX","cC","vV","bB","pP","mM",",<",".>","/?",
|
||||
" "
|
||||
],
|
||||
halmak: [
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"wW","lL","rR","bB","zZ",";:","qQ","uU","dD","jJ","[{","]}","\\|",
|
||||
"sS","hH","nN","tT",",<",".>","aA","eE","oO","iI","'\"",
|
||||
"\\|","fF","mM","vV","cC","/?","gG","pP","xX","kK","yY",
|
||||
" "
|
||||
],
|
||||
QGMLWB: [
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","gG","mM","lL","wW","bB","yY","uU","vV",";:","[{","]}","\\|",
|
||||
"dD","sS","tT","nN","rR","iI","aA","eE","oO","hH","'\"",
|
||||
"\\|","zZ","xX","cC","fF","jJ","kK","pP",",<",".>","/?",
|
||||
" "
|
||||
],
|
||||
QGMLWY: [
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","gG","mM","lL","wW","yY","fF","uU","bB",";:","[{","]}","\\|",
|
||||
"dD","sS","tT","nN","rR","iI","aA","eE","oO","hH","'\"",
|
||||
"\\|","zZ","xX","cC","vV","jJ","kK","pP",",<",".>","/?",
|
||||
" "
|
||||
],
|
||||
qwpr: [
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","wW","pP","rR","fF","yY","uU","kK","lL",";:","[{","]}","\\|",
|
||||
"aA","sS","dD","tT","gG","hH","nN","iI","oO","eE","'\"",
|
||||
"\\|","zZ","xX","cC","vV","bB","jJ","mM",",<",".>","/?",
|
||||
" "
|
||||
],
|
||||
prog_dvorak : [
|
||||
"$~","[%","[7","{5","}3","(1","=9","*0",")2","+4","]6","!8","#`",
|
||||
";:",",<",".>","pP","yY","fF","gG","cC","rR","lL","/?","@^","\\|",
|
||||
"aA","oO","eE","uU","iI","dD","hH","tT","nN","sS","-_",
|
||||
"\\|","'\"","qQ","jJ","kK","xX","bB","mM","wW","vV","zZ",
|
||||
" "
|
||||
],
|
||||
dvorak_L : [
|
||||
"`~","[{","]}","/?","pP","fF","mM","lL","jJ","4$","3#","2@","1!",
|
||||
";:","qQ","bB","yY","uU","rR","sS","oO",".>","6^","5%","=+","\\|",
|
||||
"-_","kK","cC","dD","tT","hH","eE","aA","zZ","8*","7&",
|
||||
"\\|","'\"","xX","gG","vV","wW","nN","iI",",<","0)","9(",
|
||||
" "
|
||||
],
|
||||
dvorak_R : [
|
||||
"`~","1!","2@","3#","4$","jJ","lL","mM","fF","pP","/?","[{","]}",
|
||||
"5%","6^","qQ",".>","oO","rR","sS","uU","yY","bB",";:","=+","\\|",
|
||||
"7&","8*","zZ","aA","eE","hH","tT","dD","cC","kK","-_",
|
||||
"\\|","9(","0)","xX",",<","iI","nN","wW","vV","gG","'\"",
|
||||
" "
|
||||
],
|
||||
azerty : [
|
||||
"`~","&1","é2","\"3","'4","(5","-6","è7","_8","ç9","à0",")°","=+",
|
||||
"aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","^¨","$£","*µ",
|
||||
"qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","ù%",
|
||||
"<>","wW","xX","cC","vV","bB","nN",",?",";.",":/","!§",
|
||||
" "
|
||||
]
|
||||
default: {},
|
||||
qwerty: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"qQ", "wW", "eE", "rR", "tT", "yY", "uU", "iI", "oO", "pP", "[{", "]}", "\\|",
|
||||
"aA", "sS", "dD", "fF", "gG", "hH", "jJ", "kK", "lL", ";:", "'\"",
|
||||
"\\|", "zZ", "xX", "cC", "vV", "bB", "nN", "mM", ",<", ".>", "/?",
|
||||
" "
|
||||
]
|
||||
},
|
||||
dvorak: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "[{", "]}",
|
||||
"'\"", ",<", ".>", "pP", "yY", "fF", "gG", "cC", "rR", "lL", "/?", "=+", "\\|",
|
||||
"aA", "oO", "eE", "uU", "iI", "dD", "hH", "tT", "nN", "sS", "-_",
|
||||
"\\|", ";:", "qQ", "jJ", "kK", "xX", "bB", "mM", "wW", "vV", "zZ",
|
||||
" "
|
||||
],
|
||||
},
|
||||
colemak: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"qQ", "wW", "fF", "pP", "gG", "jJ", "lL", "uU", "yY", ";:", "[{", "]}", "\\|",
|
||||
"aA", "rR", "sS", "tT", "dD", "hH", "nN", "eE", "iI", "oO", "'\"",
|
||||
"\\|", "zZ", "xX", "cC", "vV", "bB", "kK", "mM", ",<", ".>", "/?",
|
||||
" "
|
||||
]
|
||||
},
|
||||
colemak_dh: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"qQ", "wW", "fF", "pP", "bB", "jJ", "lL", "uU", "yY", ";:", "[{", "]}", "\\|",
|
||||
"aA", "rR", "sS", "tT", "gG", "mM", "nN", "eE", "iI", "oO", "'\"",
|
||||
"\\|", "xX", "cC", "dD", "vV", "zZ", "kK", "hH", ",<", ".>", "/?",
|
||||
" "
|
||||
],
|
||||
},
|
||||
colemak_dhk: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"qQ", "wW", "fF", "pP", "bB", "jJ", "lL", "uU", "yY", ";:", "[{", "]}", "\\|",
|
||||
"aA", "rR", "sS", "tT", "gG", "kK", "nN", "eE", "iI", "oO", "'\"",
|
||||
"\\|", "xX", "cC", "dD", "vV", "zZ", "mM", "hH", ",<", ".>", "/?",
|
||||
" "
|
||||
],
|
||||
},
|
||||
colemak_dh_iso: {
|
||||
keymapShowTopRow: false,
|
||||
iso: true,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"qQ", "wW", "fF", "pP", "bB", "jJ", "lL", "uU", "yY", ";:", "[{", "]}", "\\|",
|
||||
"aA", "rR", "sS", "tT", "gG", "mM", "nN", "eE", "iI", "oO", "'\"",
|
||||
"zZ", "xX", "cC", "dD", "vV", "\\|", "kK", "hH", ",<", ".>", "/?",
|
||||
" "
|
||||
],
|
||||
},
|
||||
colemak_dhk_iso: {
|
||||
keymapShowTopRow: false,
|
||||
iso: true,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"qQ", "wW", "fF", "pP", "bB", "jJ", "lL", "uU", "yY", ";:", "[{", "]}", "\\|",
|
||||
"aA", "rR", "sS", "tT", "gG", "kK", "nN", "eE", "iI", "oO", "'\"",
|
||||
"zZ", "xX", "cC", "dD", "vV", "\\|", "mM", "hH", ",<", ".>", "/?",
|
||||
" "
|
||||
],
|
||||
},
|
||||
workman: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"qQ", "dD", "rR", "wW", "bB", "jJ", "fF", "uU", "pP", ";:", "[{", "]}", "\\|",
|
||||
"aA", "sS", "hH", "tT", "gG", "yY", "nN", "eE", "oO", "iI", "'\"",
|
||||
"\\|", "zZ", "xX", "mM", "cC", "vV", "kK", "lL", ",<", ".>", "/?",
|
||||
" "
|
||||
],
|
||||
},
|
||||
turkish_f: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"*+", "1!", "2\"", "3^", "4$", "5%", "6&", "7'", "8(", "9)", "0=", "/?", "-_",
|
||||
"fF", "gG", "ğĞ", "ıI", "oO", "dD", "rR", "nN", "hH", "pP", "qQ", "wW", "xX",
|
||||
"uU", "iİ", "eE", "aA", "üÜ", "tT", "kK", "mM", "lL", "yY", "şŞ",
|
||||
"\\|", "jJ", "öÖ", "vV", "cC", "çÇ", "zZ", "sS", "bB", ".:", ",;",
|
||||
" "
|
||||
],
|
||||
},
|
||||
MTGAP_ASRT: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"qQ", "wW", "lL", "dD", "bB", "jJ", "fF", "uU", "kK", "pP", "[{", "]}", "\\|",
|
||||
"aA", "sS", "rR", "tT", "gG", "hH", "nN", "eE", "oO", "iI", "/?",
|
||||
"\\|", "zZ", "xX", "cC", "vV", ";:", "yY", "mM", ",<", ".>", "'\"",
|
||||
" "
|
||||
],
|
||||
},
|
||||
norman: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"qQ", "wW", "dD", "fF", "kK", "jJ", "uU", "rR", "lL", ";:", "[{", "]}", "\\|",
|
||||
"aA", "sS", "eE", "tT", "gG", "yY", "nN", "iI", "oO", "hH", "'\"",
|
||||
"\\|", "zZ", "xX", "cC", "vV", "bB", "pP", "mM", ",<", ".>", "/?",
|
||||
" "
|
||||
]
|
||||
},
|
||||
halmak: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"wW", "lL", "rR", "bB", "zZ", ";:", "qQ", "uU", "dD", "jJ", "[{", "]}", "\\|",
|
||||
"sS", "hH", "nN", "tT", ",<", ".>", "aA", "eE", "oO", "iI", "'\"",
|
||||
"\\|", "fF", "mM", "vV", "cC", "/?", "gG", "pP", "xX", "kK", "yY",
|
||||
" "
|
||||
]
|
||||
},
|
||||
QGMLWB: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"qQ", "gG", "mM", "lL", "wW", "bB", "yY", "uU", "vV", ";:", "[{", "]}", "\\|",
|
||||
"dD", "sS", "tT", "nN", "rR", "iI", "aA", "eE", "oO", "hH", "'\"",
|
||||
"\\|", "zZ", "xX", "cC", "fF", "jJ", "kK", "pP", ",<", ".>", "/?",
|
||||
" "
|
||||
],
|
||||
},
|
||||
QGMLWY: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "5%", "6^", "7&", "8*", "9(", "0)", "-_", "=+",
|
||||
"qQ", "gG", "mM", "lL", "wW", "yY", "fF", "uU", "bB", ";:", "[{", "]}", "\\|",
|
||||
"dD", "sS", "tT", "nN", "rR", "iI", "aA", "eE", "oO", "hH", "'\"",
|
||||
"\\|", "zZ", "xX", "cC", "vV", "jJ", "kK", "pP", ",<", ".>", "/?",
|
||||
" "
|
||||
],
|
||||
},
|
||||
qwpr: {
|
||||
keymapShowTopRow: false,
|
||||
keys: [
|
||||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","wW","pP","rR","fF","yY","uU","kK","lL",";:","[{","]}","\\|",
|
||||
"aA","sS","dD","tT","gG","hH","nN","iI","oO","eE","'\"",
|
||||
"\\|","zZ","xX","cC","vV","bB","jJ","mM",",<",".>","/?",
|
||||
" "
|
||||
],
|
||||
},
|
||||
prog_dvorak: {
|
||||
keymapShowTopRow: true,
|
||||
keys: [
|
||||
"$~", "[%", "[7", "{5", "}3", "(1", "=9", "*0", ")2", "+4", "]6", "!8", "#`",
|
||||
";:", ",<", ".>", "pP", "yY", "fF", "gG", "cC", "rR", "lL", "/?", "@^", "\\|",
|
||||
"aA", "oO", "eE", "uU", "iI", "dD", "hH", "tT", "nN", "sS", "-_",
|
||||
"\\|", "'\"", "qQ", "jJ", "kK", "xX", "bB", "mM", "wW", "vV", "zZ",
|
||||
" "
|
||||
],
|
||||
},
|
||||
dvorak_L: {
|
||||
keymapShowTopRow: true,
|
||||
keys: [
|
||||
"`~", "[{", "]}", "/?", "pP", "fF", "mM", "lL", "jJ", "4$", "3#", "2@", "1!",
|
||||
";:", "qQ", "bB", "yY", "uU", "rR", "sS", "oO", ".>", "6^", "5%", "=+", "\\|",
|
||||
"-_", "kK", "cC", "dD", "tT", "hH", "eE", "aA", "zZ", "8*", "7&",
|
||||
"\\|", "'\"", "xX", "gG", "vV", "wW", "nN", "iI", ",<", "0)", "9(",
|
||||
" "
|
||||
],
|
||||
},
|
||||
dvorak_R: {
|
||||
keymapShowTopRow: true,
|
||||
keys: [
|
||||
"`~", "1!", "2@", "3#", "4$", "jJ", "lL", "mM", "fF", "pP", "/?", "[{", "]}",
|
||||
"5%", "6^", "qQ", ".>", "oO", "rR", "sS", "uU", "yY", "bB", ";:", "=+", "\\|",
|
||||
"7&", "8*", "zZ", "aA", "eE", "hH", "tT", "dD", "cC", "kK", "-_",
|
||||
"\\|", "9(", "0)", "xX", ",<", "iI", "nN", "wW", "vV", "gG", "'\"",
|
||||
" "
|
||||
],
|
||||
},
|
||||
azerty: {
|
||||
keymapShowTopRow: false,
|
||||
iso: true,
|
||||
keys: [
|
||||
"`~", "&1", "é2", "\"3", "'4", "(5", "-6", "è7", "_8", "ç9", "à0", ")°", "=+",
|
||||
"aA", "zZ", "eE", "rR", "tT", "yY", "uU", "iI", "oO", "pP", "^¨", "$£", "*µ",
|
||||
"qQ", "sS", "dD", "fF", "gG", "hH", "jJ", "kK", "lL", "mM", "ù%",
|
||||
"<>", "wW", "xX", "cC", "vV", "bB", "nN", ",?", ";.", ":/", "!§",
|
||||
" "
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -510,7 +510,7 @@ class SimplePopup {
|
|||
this.element = $("#simplePopup");
|
||||
this.buttonText = buttonText;
|
||||
}
|
||||
#reset() {
|
||||
reset() {
|
||||
this.element.html(`
|
||||
<div class="title"></div>
|
||||
<input>
|
||||
|
@ -518,11 +518,11 @@ class SimplePopup {
|
|||
<div class="button"></div>`);
|
||||
}
|
||||
|
||||
#init() {
|
||||
init() {
|
||||
let el = this.element;
|
||||
el.find("input").val("");
|
||||
if (el.attr("popupId") !== this.id) {
|
||||
this.#reset();
|
||||
this.reset();
|
||||
el.attr("popupId", this.id);
|
||||
el.find(".title").text(this.title);
|
||||
el.find(".text").text(this.text);
|
||||
|
@ -546,7 +546,7 @@ class SimplePopup {
|
|||
}
|
||||
|
||||
show() {
|
||||
this.#init();
|
||||
this.init();
|
||||
this.wrapper
|
||||
.stop(true, true)
|
||||
.css("opacity", 0)
|
||||
|
|
|
@ -675,7 +675,7 @@ function emulateLayout(event) {
|
|||
"Slash",
|
||||
"Space",
|
||||
];
|
||||
const layoutMap = layouts[config.layout];
|
||||
const layoutMap = layouts[config.layout].keys;
|
||||
|
||||
let mapIndex;
|
||||
for (let i = 0; i < keyEventCodes.length; i++) {
|
||||
|
@ -4412,22 +4412,28 @@ $(document.body).on("click", "#restartTestButton", (event) => {
|
|||
restartTest();
|
||||
});
|
||||
|
||||
function initPractiseMissedWords() {
|
||||
let currentMode = config.mode;
|
||||
changeMode("custom");
|
||||
let newCustomText = [];
|
||||
Object.keys(missedWords).forEach((missedWord) => {
|
||||
for (let i = 0; i < missedWords[missedWord]; i++) {
|
||||
newCustomText.push(missedWord);
|
||||
}
|
||||
});
|
||||
customText = newCustomText;
|
||||
customTextIsRandom = true;
|
||||
customTextWordCount = 50;
|
||||
let mode = modeBeforePractise === null ? currentMode : modeBeforePractise;
|
||||
modeBeforePractise = null;
|
||||
restartTest();
|
||||
modeBeforePractise = mode;
|
||||
}
|
||||
|
||||
$(document).on("keypress", "#practiseMissedWordsButton", (event) => {
|
||||
if (event.keyCode == 13) {
|
||||
if (Object.keys(missedWords).length > 0) {
|
||||
let currentMode = config.mode;
|
||||
changeMode("custom");
|
||||
let newCustomText = [];
|
||||
Object.keys(missedWords).forEach((missedWord) => {
|
||||
for (let i = 0; i < missedWords[missedWord]; i++) {
|
||||
newCustomText.push(missedWord);
|
||||
}
|
||||
});
|
||||
customText = newCustomText;
|
||||
customTextIsRandom = true;
|
||||
customTextWordCount = 50;
|
||||
restartTest();
|
||||
modeBeforePractise = currentMode;
|
||||
initPractiseMissedWords();
|
||||
} else {
|
||||
showNotification("You haven't missed any words.", 2000);
|
||||
}
|
||||
|
@ -4436,19 +4442,7 @@ $(document).on("keypress", "#practiseMissedWordsButton", (event) => {
|
|||
|
||||
$(document.body).on("click", "#practiseMissedWordsButton", (event) => {
|
||||
if (Object.keys(missedWords).length > 0) {
|
||||
let currentMode = config.mode;
|
||||
changeMode("custom");
|
||||
let newCustomText = [];
|
||||
Object.keys(missedWords).forEach((missedWord) => {
|
||||
for (let i = 0; i < missedWords[missedWord]; i++) {
|
||||
newCustomText.push(missedWord);
|
||||
}
|
||||
});
|
||||
customText = newCustomText;
|
||||
customTextIsRandom = true;
|
||||
customTextWordCount = 50;
|
||||
restartTest();
|
||||
modeBeforePractise = currentMode;
|
||||
initPractiseMissedWords();
|
||||
} else {
|
||||
showNotification("You haven't missed any words.", 2000);
|
||||
}
|
||||
|
|
|
@ -1275,6 +1275,33 @@ function changeKeymapStyle(style, nosave) {
|
|||
if (!nosave) saveConfigToCookie();
|
||||
}
|
||||
|
||||
// function toggleISOKeymap() {
|
||||
// val = !config.isoKeymap;
|
||||
// if (val == undefined) {
|
||||
// val = false;
|
||||
// }
|
||||
// config.isoKeymap = val;
|
||||
// updateKeymapBottomRow();
|
||||
// saveConfigToCookie();
|
||||
// }
|
||||
|
||||
// function setISOKeymap(val, nosave) {
|
||||
// if (val == undefined) {
|
||||
// val = false;
|
||||
// }
|
||||
// config.isoKeymap = val;
|
||||
// updateKeymapBottomRow();
|
||||
// if (!nosave) saveConfigToCookie();
|
||||
// }
|
||||
|
||||
function keymapShowIsoKey(tf) {
|
||||
if (tf) {
|
||||
$(".keymap .r4 .keymap-key.first").removeClass("hidden-key");
|
||||
} else {
|
||||
$(".keymap .r4 .keymap-key.first").addClass("hidden-key");
|
||||
}
|
||||
}
|
||||
|
||||
function changeKeymapLayout(layout, nosave) {
|
||||
if (layout == null || layout == undefined) {
|
||||
layout = "qwerty";
|
||||
|
@ -1285,62 +1312,73 @@ function changeKeymapLayout(layout, nosave) {
|
|||
// console.log(x);
|
||||
// });
|
||||
try {
|
||||
var toReplace = layouts[layout].slice(13, 47);
|
||||
var _ = toReplace.splice(12, 1);
|
||||
if (layouts[layout].keymapShowTopRow) {
|
||||
$(".keymap .r1").removeClass("hidden");
|
||||
} else {
|
||||
$(".keymap .r1").addClass("hidden");
|
||||
}
|
||||
|
||||
$($(".keymap .r5 .keymap-key .letter")[0]).text(layout);
|
||||
|
||||
keymapShowIsoKey(layouts[layout].iso);
|
||||
|
||||
var toReplace = layouts[layout].keys.slice(1, 48);
|
||||
// var _ = toReplace.splice(12, 1);
|
||||
var count = 0;
|
||||
|
||||
$(".keymap .letter")
|
||||
.map(function () {
|
||||
if (
|
||||
!this.parentElement.classList.contains("hidden-key") &&
|
||||
!this.classList.contains("hidden-key")
|
||||
) {
|
||||
if (count < toReplace.length) {
|
||||
var key = toReplace[count].charAt(0);
|
||||
this.innerHTML = key;
|
||||
// if (
|
||||
// !this.parentElement.classList.contains("hidden-key") &&
|
||||
// !this.classList.contains("hidden-key")
|
||||
// ) {
|
||||
|
||||
switch (key) {
|
||||
case "\\":
|
||||
case "|":
|
||||
this.parentElement.id = "KeyBackslash";
|
||||
break;
|
||||
case "}":
|
||||
case "]":
|
||||
this.parentElement.id = "KeyRightBracket";
|
||||
break;
|
||||
case "{":
|
||||
case "[":
|
||||
this.parentElement.id = "KeyLeftBracket";
|
||||
break;
|
||||
case '"':
|
||||
case "'":
|
||||
this.parentElement.id = "KeyQuote";
|
||||
break;
|
||||
case ":":
|
||||
case ";":
|
||||
this.parentElement.id = "KeySemicolon";
|
||||
break;
|
||||
case "<":
|
||||
case ",":
|
||||
this.parentElement.id = "KeyComma";
|
||||
break;
|
||||
case ">":
|
||||
case ".":
|
||||
this.parentElement.id = "KeyPeriod";
|
||||
break;
|
||||
case "?":
|
||||
case "/":
|
||||
this.parentElement.id = "KeySlash";
|
||||
break;
|
||||
case "":
|
||||
this.parentElement.id = "KeySpace";
|
||||
break;
|
||||
default:
|
||||
this.parentElement.id = `Key${key.toUpperCase()}`;
|
||||
}
|
||||
if (count < toReplace.length) {
|
||||
var key = toReplace[count].charAt(0);
|
||||
this.innerHTML = key;
|
||||
|
||||
switch (key) {
|
||||
case "\\":
|
||||
case "|":
|
||||
this.parentElement.id = "KeyBackslash";
|
||||
break;
|
||||
case "}":
|
||||
case "]":
|
||||
this.parentElement.id = "KeyRightBracket";
|
||||
break;
|
||||
case "{":
|
||||
case "[":
|
||||
this.parentElement.id = "KeyLeftBracket";
|
||||
break;
|
||||
case '"':
|
||||
case "'":
|
||||
this.parentElement.id = "KeyQuote";
|
||||
break;
|
||||
case ":":
|
||||
case ";":
|
||||
this.parentElement.id = "KeySemicolon";
|
||||
break;
|
||||
case "<":
|
||||
case ",":
|
||||
this.parentElement.id = "KeyComma";
|
||||
break;
|
||||
case ">":
|
||||
case ".":
|
||||
this.parentElement.id = "KeyPeriod";
|
||||
break;
|
||||
case "?":
|
||||
case "/":
|
||||
this.parentElement.id = "KeySlash";
|
||||
break;
|
||||
case "":
|
||||
this.parentElement.id = "KeySpace";
|
||||
break;
|
||||
default:
|
||||
this.parentElement.id = `Key${key.toUpperCase()}`;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
count++;
|
||||
// }
|
||||
})
|
||||
.get();
|
||||
} catch (e) {
|
||||
|
|
Loading…
Reference in a new issue