mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-14 23:56:07 +09:00
290 lines
4.0 KiB
Plaintext
290 lines
4.0 KiB
Plaintext
let states = {"keylayouts":[[""],[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
["0",")"],
|
||
["1","!"],
|
||
["2",'"'],
|
||
["3","¤"],
|
||
["4",";"],
|
||
["5","%"],
|
||
["6",":"],
|
||
["7","?"],
|
||
["8","₽"],
|
||
["9","("],
|
||
["*"],
|
||
["#"],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
["ф","Ф"],
|
||
["и","И"],
|
||
["с","С"],
|
||
["в","В"],
|
||
["у","У"],
|
||
["а","А"],
|
||
["п","П"],
|
||
["р","Р"],
|
||
["ш","Ш"],
|
||
["о","О"],
|
||
["л","Л"],
|
||
["д","Д"],
|
||
["ь","Ь"],
|
||
["т","Т"],
|
||
["щ","Щ"],
|
||
["з","З"],
|
||
["й","Й"],
|
||
["к","К"],
|
||
["ы","Ы"],
|
||
["е","Е"],
|
||
["г","Г"],
|
||
["м","М"],
|
||
["ц","Ц"],
|
||
["ч","Ч"],
|
||
["н","Н"],
|
||
["я","Я"],
|
||
["б","Б"],
|
||
["ю","Ю"],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[" "],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
["\n"],
|
||
["\x08"],
|
||
["ё","Ё"],
|
||
["-","_"],
|
||
["=","+"],
|
||
["х","Х"],
|
||
["ъ","Ъ"],
|
||
["\\","/"],
|
||
["ж","Ж"],
|
||
["э",'Э'],
|
||
[".",","],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
["0"],
|
||
["1"],
|
||
["2"],
|
||
["3"],
|
||
["4"],
|
||
["5"],
|
||
["6"],
|
||
["7"],
|
||
["8"],
|
||
["9"],
|
||
["/"],
|
||
["*"],
|
||
["-"],
|
||
["+"],
|
||
["."],
|
||
["."],
|
||
["\n"],
|
||
["="],
|
||
["("],
|
||
[")"],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined]
|
||
],
|
||
"code":0} // practically unused as long as there are no diacritics on the keyboard
|
||
let reset = () => {
|
||
states.code = 0
|
||
}
|
||
let inRange = (s,a,b) => (a <= s && s <= b)
|
||
let isDiacritics = (s) => s !== undefined && inRange(s.charCodeAt(0), 0x0300, 0x036F)
|
||
return Object.freeze({"n":"Русс. ЙЦУКЕН","v":"none","c":"CuriousTo\uA75Bvald","m":"candidates",
|
||
"t":states.keylayouts.map(it => [it[0],it[1]]),
|
||
// return: [displayed output, composed output]
|
||
"accept":(headkey,shiftin,altgrin)=>{
|
||
let layer = 1*shiftin// + 2*altgrin
|
||
states.code = 1
|
||
|
||
let s = states.keylayouts[headkey][layer]
|
||
|
||
if (isDiacritics(s)) {
|
||
return ['', '']
|
||
}
|
||
else {
|
||
reset()
|
||
return ['', s]
|
||
}
|
||
},
|
||
"backspace":()=>{
|
||
reset()
|
||
return ''
|
||
},
|
||
"end":()=>{
|
||
reset()
|
||
return ''
|
||
},
|
||
"reset":()=>{ reset() },
|
||
"composing":()=>(states.code!=0)
|
||
}) |