Newer
Older
import { VirtualKeyboardLayout } from '@iqb/mathlive';
export const IQB_MATH_KEYBOARD_LAYOUTS: Record<string, VirtualKeyboardLayout> = {
iqbNumeric: {
label: '123',
labelClass: 'MLK__tex-math',
tooltip: 'keyboard.tooltip.numeric',
rows: [
[
{
label: '<',
latex: '7'
},
{
latex: '8'
},
{
latex: '9'
},
{
label: '÷',
latex: '\\colon'
},
'[separator-5]',
{
latex: '\\frac{#@}{#?}'
},
{
latex: '4'
},
{
latex: '5'
},
{
latex: '6'
},
{
label: '×',
latex: '\\cdot'
},
},
{
latex: '\\sqrt[#0]{#?}}'
}
],
[
{
latex: '('
},
{
latex: ')'
},
{
latex: '1'
},
{
latex: '2'
},
{
latex: '3'
},
{
latex: '-'
},
},
{ latex: '#@\\degree' },
{ label: '[backspace]', width: 1.0 }
],
[
{ label: '=', latex: '=' },
{ label: '≠', latex: '\\ne' },
'[separator-5]',
{
latex: '0'
},
{
latex: ','
},
'[separator-10]',
'[+]',
'[separator-15]',
{
class: 'action',
label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-left /></svg>',
command: 'performWithFeedback(moveToPreviousChar)'
},
{
class: 'action',
label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-right /></svg>',
command: 'performWithFeedback(moveToNextChar)'
}
]
]
},
iqbText: {
label: 'abc',
labelClass: 'MLK__tex-math',
tooltip: 'keyboard.tooltip.alphabetic',
layers: [
{
rows: [
[
{
label: 'q',
class: 'hide-shift',
shift: {
label: 'Q'
},
{
label: 'w',
class: 'hide-shift',
shift: {
label: 'W'
}
},
{
label: 'e',
class: 'hide-shift',
shift: {
label: 'E'
}
},
{
label: 'r',
class: 'hide-shift',
shift: {
label: 'R'
},
{
label: 't',
class: 'hide-shift',
shift: {
label: 'T'
}
},
{
label: 'z',
class: 'hide-shift',
shift: {
label: 'Z'
},
{
label: 'u',
class: 'hide-shift',
shift: {
label: 'U'
}
},
{
label: 'i',
class: 'hide-shift',
shift: {
label: 'I'
}
},
{
label: 'o',
class: 'hide-shift',
shift: {
label: 'O'
}
},
{
label: 'p',
class: 'hide-shift',
shift: {
label: 'P'
}
],
[
{
class: 'separator',
width: 0.5
},
{
label: 'a',
class: 'hide-shift',
shift: {
label: 'A'
}
},
{
label: 's',
class: 'hide-shift',
shift: {
label: 'S'
}
},
{
label: 'd',
class: 'hide-shift',
shift: {
label: 'D'
},
{
label: 'f',
class: 'hide-shift',
shift: {
label: 'F'
}
},
{
label: 'g',
class: 'hide-shift',
shift: {
label: 'G'
},
{
label: 'h',
class: 'hide-shift',
shift: {
label: 'H'
},
{
label: 'j',
class: 'hide-shift',
shift: {
label: 'J'
},
{
label: 'k',
class: 'hide-shift',
shift: {
label: 'K'
}
},
{
label: 'l',
class: 'hide-shift',
shift: {
label: 'L'
},
{
class: 'separator',
width: 0.5
}
],
[
{
class: 'shift bottom left',
width: 1.5,
label: '<span class=caps-lock-indicator></span><svg class=svg-glyph><use xlink:href=#svg-shift /></svg>'
},
{
label: 'y',
class: 'hide-shift',
shift: {
label: 'Y'
}
},
{
label: 'x',
class: 'hide-shift',
shift: {
label: 'X'
}
},
{
label: 'c',
class: 'hide-shift',
shift: {
label: 'C'
},
{
label: 'v',
class: 'hide-shift',
shift: {
label: 'V'
}
},
{
label: 'b',
class: 'hide-shift',
shift: {
label: 'B'
},
{
label: 'n',
class: 'hide-shift',
shift: {
label: 'N'
},
{
label: 'm',
class: 'hide-shift',
shift: {
label: 'M'
}
},
{
class: 'action bottom right hide-shift',
width: 1.5,
command: 'performWithFeedback(deleteBackward)',
label: '<svg class=svg-glyph><use xlink:href=#svg-delete-backward /></svg>',
shift: {
class: 'action warning',
label: '<svg class=svg-glyph><use xlink:href=#svg-trash /></svg>',
command: 'deleteAll'
}
}
],
[
{
label: ',',
},
{
command: 'performWithFeedback(insertDecimalSeparator)',
shift: ':',
label: '.'
},
{
label: ' ',
width: 5
},
{
label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-left /></svg>',
command: 'performWithFeedback(moveToPreviousChar)'
label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-right /></svg>',
command: 'performWithFeedback(moveToNextChar)'
}
]
],
id: 'ML__layer_rotn9'
}
]
},
iqbGreek: {
label: 'αβγ',
labelClass: 'MLK__tex-math',
tooltip: 'keyboard.tooltip.greek',
rows: [
[
{
label: '<i>φ</i>',
insert: '\\varphi',
aside: 'phi var.',
shift: '\\Phi'
},
{
label: '<i>ς</i>',
insert: '\\varsigma',
aside: 'sigma var.',
shift: '\\Sigma'
},
{
label: '<i>ϵ</i>',
insert: '\\epsilon',
aside: 'epsilon',
shift: '\\char"0190'
},
{
label: '<i>ρ</i>',
insert: '\\rho',
aside: 'rho',
shift: '\\char"3A1'
},
{
label: '<i>τ</i>',
insert: '\\tau',
aside: 'tau',
shift: '\\char"3A4'
},
{
label: '<i>υ</i>',
insert: '\\upsilon',
aside: 'upsilon',
shift: '\\Upsilon'
},
{
label: '<i>θ</i>',
insert: '\\theta',
aside: 'theta',
shift: '\\Theta'
},
{
label: '<i>ι</i>',
insert: '\\iota',
aside: 'iota',
shift: '\\char"399'
},
{
label: '<i>ο</i>',
insert: '\\omicron',
aside: 'omicron',
shift: '\\char"39F'
},
{
label: '<i>π</i>',
insert: '\\pi',
aside: 'pi',
shift: '\\Pi'
}
],
[
'[separator-5]',
{
label: '<i>α</i>',
insert: '\\alpha',
aside: 'alpha',
shift: '\\char"391'
},
{
label: '<i>σ</i>',
insert: '\\sigma',
aside: 'sigma',
shift: '\\Sigma'
},
{
label: '<i>δ</i>',
insert: '\\delta',
aside: 'delta',
shift: '\\Delta'
},
{
latex: '\\phi',
insert: '\\phi',
aside: 'phi',
shift: '\\Phi'
},
{
label: '<i>γ</i>',
insert: '\\gamma',
aside: 'gamma',
shift: '\\Gamma'
},
{
label: '<i>η</i>',
insert: '\\eta',
aside: 'eta',
shift: '\\char"397'
},
{
label: '<i>ξ</i>',
insert: '\\xi',
aside: 'xi',
shift: '\\Xi'
},
{
label: '<i>κ</i>',
insert: '\\kappa',
aside: 'kappa',
shift: '\\Kappa'
},
{
label: '<i>λ</i>',
insert: '\\lambda',
aside: 'lambda',
shift: '\\Lambda'
},
'[separator-5]'
],
[
'[shift]',
{
label: '<i>ζ</i>',
insert: '\\zeta',
aside: 'zeta',
shift: '\\char"396'
},
{
label: '<i>χ</i>',
insert: '\\chi',
aside: 'chi',
shift: '\\char"3A7'
},
{
label: '<i>ψ</i>',
insert: '\\psi',
aside: 'zeta',
shift: '\\Psi'
},
{
label: '<i>ω</i>',
insert: '\\omega',
aside: 'omega',
shift: '\\Omega'
},
{
label: '<i>β</i>',
insert: '\\beta',
aside: 'beta',
shift: '\\char"392'
},
{
label: '<i>ν</i>',
insert: '\\nu',
aside: 'nu',
shift: '\\char"39D'
},
{
label: '<i>μ</i>',
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
insert: '\\mu',
aside: 'mu',
shift: '\\char"39C'
},
'[backspace]'
],
[
'[separator]',
{
label: '<i>ε</i>',
class: 'MLK__tex',
insert: '\\varepsilon',
aside: 'epsilon var.'
},
{
label: '<i>ϑ</i>',
class: 'MLK__tex',
insert: '\\vartheta',
aside: 'theta var.'
},
{
label: '<i>ϰ</i>',
class: 'MLK__tex',
insert: '\\varkappa',
aside: 'kappa var.'
},
{
label: '<i>ϖ</i>',
class: 'MLK__tex',
insert: '\\varpi',
aside: 'pi var.'
},
{
label: '<i>ϱ</i>',
class: 'MLK__tex',
insert: '\\varrho',
aside: 'rho var.'
},
{
label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-left /></svg>',
command: 'performWithFeedback(moveToPreviousChar)'
label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-right /></svg>',
command: 'performWithFeedback(moveToNextChar)'
}
]
]
},
iqbSymbols: {
label: '∞≠∈',
labelClass: 'MLK__tex',
tooltip: 'keyboard.tooltip.symbols',
rows: [
[
{
latex: '\\sin',
},
'\\ln',
{
latex: '\\mathrm{abs}',
insert: '\\mathrm{abs}\\left(#0\\right)'
},
{
latex: '\\rightarrow',
shift: '\\Rightarrow'
},
{
latex: '\\exists',
shift: '\\nexists'
},
{ latex: '\\in', shift: '\\notin' },
'\\cup',
{
latex: '\\overrightarrow{#@}',
shift: '\\overleftarrow{#@}'
},
shift: '\\lim_{x\\to\\infty}'
}
],
[
{
latex: '\\cos',
shift: '\\cos^{-1}'
shift: '\\log_{10}'
},
'\\left\\vert#0\\right\\vert',
{
latex: '\\larr',
shift: '\\lArr'
shift: '\\lnot'
},
{ latex: '\\ni', shift: '\\not\\owns' },
'\\cap',
{
latex: '\\overline{#@}',
shift: '\\underline{#@}'
shift: '\\iint'
},
{
latex: '\\int^{\\infty}_{0}\\!#?\\,\\mathrm{d}x',
shift: '\\tan^{-1}'
insert: '\\exp\\left(#0\\right)'
},
'\\left\\Vert#0\\right\\Vert',
{
latex: '\\lrArr',
shift: '\\leftrightarrow'
},
{ latex: '\\vert', shift: '!' },
{
latex: '#@^{\\complement}',
aside: 'complement'
shift: '\\subseteq'
shift: '#@^{\\doubleprime}'
shift: '\\partial'
}
],
[
{ label: '[shift]', width: 2.0 },
'[separator-10]',
{
latex: '\\exponentialE',
shift: '\\imaginaryI'
},
{ latex: '\\pi', shift: '\\tau' },
{
latex: '\\infty',
shift: '\\Colon'
},
'[separator-10]',
{
label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-left /></svg>',
command: 'performWithFeedback(moveToPreviousChar)'
label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-right /></svg>',
command: 'performWithFeedback(moveToNextChar)'
},
{
label: '[backspace]',
width: 1.0,