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: '<', class: 'hide-shift', shift: { latex: '\\le', label: '≤' } }, { label: '>', latex: '>', class: 'hide-shift', shift: { latex: '\\ge', label: '≥' } }, '[separator-5]', '[7]', '[8]', '[9]', { label: '[/]', latex: '\\colon' }, '[separator-5]', // { // latex: '\\exponentialE', // shift: '\\ln', // variants: ['\\exp', '\\times 10^{#?}', '\\ln', '\\log_{10}', '\\log'] // }, // { // latex: '\\imaginaryI', // variants: ['\\Re', '\\Im', '\\imaginaryJ', '\\Vert #0 \\Vert'] // }, { latex: '\\frac{#@}{#?}' }, { latex: '#@^#?' }, { latex: '\\pi', // shift: '\\sin', // variants: [ // '\\prod', // { latex: '\\theta', aside: 'theta' }, // { latex: '\\rho', aside: 'rho' }, // { latex: '\\tau', aside: 'tau' }, // '\\sin', // '\\cos', // '\\tan' // ] } ], [ { label: '≤', latex: '\\le', class: 'hide-shift', //shift: { latex: '\\le', label: '≤' } }, { label: '≥', latex: '\\ge', class: 'hide-shift', //shift: { latex: '\\ge', label: '≥' } }, '[separator-5]', '[4]', '[5]', '[6]', '[*]', '[separator-5]', { class: 'hide-shift', latex: '#@^2}', shift: '#@^{\\prime}}' }, // { // latex: '#@^{#0}}', // class: 'hide-shift', // shift: '#@_{#?}' // }, { class: 'hide-shift', latex: '\\sqrt{#0}', //shift: { latex: '\\sqrt[#0]{#?}}' } }, { class: 'hide-shift', latex: '\\sqrt[#0]{#?}}' } ], [ '[(]', '[)]', '[separator-5]', '[1]', '[2]', '[3]', '[-]', '[separator-5]', // { // latex: '\\int^{\\infty}_{0}\\!#?\\,\\mathrm{d}x', // class: 'small hide-shift', // shift: '\\int', // variants: [ // { latex: '\\int_{#?}^{#?}', class: 'small' }, // { latex: '\\int', class: 'small' }, // { latex: '\\iint', class: 'small' }, // { latex: '\\iiint', class: 'small' }, // { latex: '\\oint', class: 'small' }, // '\\mathrm{d}x', // { latex: '\\dfrac{\\mathrm{d}}{\\mathrm{d} x}', class: 'small' }, // { latex: '\\frac{\\partial}{\\partial x}', class: 'small' }, // // '\\partial' // ] // }, // { // class: 'hide-shift', // latex: '\\forall', // shift: '\\exists' // }, { latex: '\\overline{#@}', // shift: '\\underline{#@}', // variants: [ // '\\overbrace{#@}', // '\\overlinesegment{#@}', // '\\overleftrightarrow{#@}', // '\\overrightarrow{#@}', // '\\overleftarrow{#@}', // '\\overgroup{#@}', // '\\underbrace{#@}', // '\\underlinesegment{#@}', // '\\underleftrightarrow{#@}', // '\\underrightarrow{#@}', // '\\underleftarrow{#@}', // '\\undergroup{#@}' // ] }, { latex: '#@\\degree' }, { label: '[backspace]', width: 1.0 } ], [ { label: '=', latex: '=' }, { label: '≠', latex: '\\ne' }, // { label: '[shift]', width: 2.0 }, '[separator-5]', '[0]', '[.]', '[separator-10]', //'[=]', '[+]', '[separator-15]', '[left]', '[right]', // { label: '[action]', width: 1.0 } ] ] }, iqbText: { label: 'abc', labelClass: 'MLK__tex-math', tooltip: 'keyboard.tooltip.alphabetic', layers: [ { rows: [ // [ // { // label: '1', // variants: '1' // }, // { // label: '2', // variants: '2' // }, // { // label: '3', // variants: '3' // }, // { // label: '4', // variants: '4' // }, // { // label: '5', // // shift: { // // latex: '\\frac{#@}{#?}' // // }, // variants: '5' // }, // { // label: '6', // // shift: { // // latex: '#@^#?' // // }, // variants: '6' // }, // { // label: '7', // variants: '7' // }, // { // label: '8', // shift: { // latex: '\\times' // }, // variants: '8' // }, // { // label: '9', // shift: { // label: '(', // latex: '(' // }, // variants: '9' // }, // { // label: '0', // shift: { // label: ')', // latex: ')' // }, // variants: '0' // } // ], [ { 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' } } ], [ // { // variants: [ // '\\pm', // '\\ominus' // ], // latex: '-', // label: '−', // shift: '\\pm', // class: 'big-op hide-shift' // }, // { // variants: [ // { // latex: '\\sum_{#0}^{#0}', // class: 'small' // }, // '\\oplus' // ], // latex: '+', // label: '+', // class: 'big-op hide-shift', // shift: { // latex: '\\sum', // insert: '\\sum', // class: 'small' // } // }, // { // variants: [ // '\\neq', // '\\equiv', // '\\varpropto', // '\\thickapprox', // '\\lt', // '\\gt', // '\\le', // '\\ge' // ], // latex: '=', // label: '=', // shift: { // label: '≠', // latex: '\\ne' // }, // class: 'big-op hide-shift' // }, { label: ',', shift: ';', class: 'hide-shift' }, { command: 'performWithFeedback(insertDecimalSeparator)', shift: ':', class: 'big-op hide-shift', label: '.' }, { label: ' ', width: 5 }, // { // label: ',', // shift: ';', // variants: '.', // class: 'hide-shift' // }, // { // variants: '.', // command: 'performWithFeedback(insertDecimalSeparator)', // shift: ',', // class: 'big-op hide-shift', // label: '.' // }, { class: 'action hide-shift', label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-left /></svg>', command: 'performWithFeedback(moveToPreviousChar)', // shift: { // label: '<svg class=svg-glyph><use xlink:href=#svg-angle-double-left /></svg>', // command: 'performWithFeedback(extendSelectionBackward)' // } }, { class: 'action hide-shift', label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-right /></svg>', command: 'performWithFeedback(moveToNextChar)', // shift: { // label: '<svg class=svg-glyph><use xlink:href=#svg-angle-double-right /></svg>', // command: 'performWithFeedback(extendSelectionForward)' // } } // { // class: 'action hide-shift', // command: 'performWithFeedback(commit)', // shift: { // label: '<svg class=svg-glyph><use xlink:href=#circle-plus /></svg>', // command: 'performWithFeedback(addRowAfter)' // }, // width: 1.5, // label: '<svg class=svg-glyph><use xlink:href=#svg-commit /></svg>' // } ] ], id: 'ML__layer_rotn9' } ] }, iqbGreek: { label: 'αβγ', labelClass: 'MLK__tex-math', tooltip: 'keyboard.tooltip.greek', rows: [ [ { label: '<i>φ</i>', class: 'MLK__tex hide-shift', insert: '\\varphi', aside: 'phi var.', shift: '\\Phi' }, { label: '<i>ς</i>', class: 'MLK__tex hide-shift', insert: '\\varsigma', aside: 'sigma var.', shift: '\\Sigma' }, { label: '<i>ϵ</i>', class: 'MLK__tex hide-shift', insert: '\\epsilon', aside: 'epsilon', shift: '\\char"0190' }, { label: '<i>ρ</i>', class: 'MLK__tex hide-shift', insert: '\\rho', aside: 'rho', shift: '\\char"3A1' }, { label: '<i>τ</i>', class: 'MLK__tex hide-shift', insert: '\\tau', aside: 'tau', shift: '\\char"3A4' }, { label: '<i>υ</i>', class: 'MLK__tex hide-shift', insert: '\\upsilon', aside: 'upsilon', shift: '\\Upsilon' }, { label: '<i>θ</i>', class: 'MLK__tex hide-shift', insert: '\\theta', aside: 'theta', shift: '\\Theta' }, { label: '<i>ι</i>', class: 'MLK__tex hide-shift', insert: '\\iota', aside: 'iota', shift: '\\char"399' }, { label: '<i>ο</i>', class: 'MLK__tex hide-shift', insert: '\\omicron', aside: 'omicron', shift: '\\char"39F' }, { label: '<i>π</i>', class: 'MLK__tex hide-shift', insert: '\\pi', aside: 'pi', shift: '\\Pi' } ], [ '[separator-5]', { label: '<i>α</i>', class: 'MLK__tex hide-shift', insert: '\\alpha', aside: 'alpha', shift: '\\char"391' }, { label: '<i>σ</i>', class: 'MLK__tex hide-shift', insert: '\\sigma', aside: 'sigma', shift: '\\Sigma' }, { label: '<i>δ</i>', class: 'MLK__tex hide-shift', insert: '\\delta', aside: 'delta', shift: '\\Delta' }, { latex: '\\phi', class: 'MLK__tex hide-shift', insert: '\\phi', aside: 'phi', shift: '\\Phi' }, { label: '<i>γ</i>', class: 'MLK__tex hide-shift', insert: '\\gamma', aside: 'gamma', shift: '\\Gamma' }, { label: '<i>η</i>', class: 'MLK__tex hide-shift', insert: '\\eta', aside: 'eta', shift: '\\char"397' }, { label: '<i>ξ</i>', class: 'MLK__tex hide-shift', insert: '\\xi', aside: 'xi', shift: '\\Xi' }, { label: '<i>κ</i>', class: 'MLK__tex hide-shift', insert: '\\kappa', aside: 'kappa', shift: '\\Kappa' }, { label: '<i>λ</i>', class: 'MLK__tex hide-shift', insert: '\\lambda', aside: 'lambda', shift: '\\Lambda' }, '[separator-5]' ], [ '[shift]', { label: '<i>ζ</i>', class: 'MLK__tex hide-shift', insert: '\\zeta', aside: 'zeta', shift: '\\char"396' }, { label: '<i>χ</i>', class: 'MLK__tex hide-shift', insert: '\\chi', aside: 'chi', shift: '\\char"3A7' }, { label: '<i>ψ</i>', class: 'MLK__tex hide-shift', insert: '\\psi', aside: 'zeta', shift: '\\Psi' }, { label: '<i>ω</i>', class: 'MLK__tex hide-shift', insert: '\\omega', aside: 'omega', shift: '\\Omega' }, { label: '<i>β</i>', class: 'MLK__tex hide-shift', insert: '\\beta', aside: 'beta', shift: '\\char"392' }, { label: '<i>ν</i>', class: 'MLK__tex hide-shift', insert: '\\nu', aside: 'nu', shift: '\\char"39D' }, { label: '<i>μ</i>', class: 'MLK__tex hide-shift', 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.' }, { class: 'action hide-shift', label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-left /></svg>', command: 'performWithFeedback(moveToPreviousChar)', // shift: { // label: '<svg class=svg-glyph><use xlink:href=#svg-angle-double-left /></svg>', // command: 'performWithFeedback(extendSelectionBackward)' // } }, { class: 'action hide-shift', label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-right /></svg>', command: 'performWithFeedback(moveToNextChar)', // shift: { // label: '<svg class=svg-glyph><use xlink:href=#svg-angle-double-right /></svg>', // command: 'performWithFeedback(extendSelectionForward)' // } }, ] ] }, iqbSymbols: { label: '∞≠∈', labelClass: 'MLK__tex', tooltip: 'keyboard.tooltip.symbols', rows: [ [ { latex: '\\sin', shift: '\\sin^{-1}', }, '\\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{#@}'}, { class: 'small hide-shift', latex: '\\lim_{#?}', shift: '\\lim_{x\\to\\infty}' }, // '\\exponentialE' { // variants: [ // { // latex: '\\sum_{#0}^{#0}', // class: 'small' // }, // '\\oplus' // ], // latex: '+', // label: '+', class: 'small hide-shift', latex: '\\sum', insert: '\\sum', } ], [ { latex: '\\cos', shift: '\\cos^{-1}' }, { latex: '\\log', shift: '\\log_{10}' }, '\\left\\vert#0\\right\\vert', { latex: '\\larr', shift: '\\lArr' }, { latex: '\\forall', shift: '\\lnot' }, { latex: '\\ni', shift: '\\not\\owns' }, '\\cap', { latex: '\\overline{#@}', shift: '\\underline{#@}' }, { class: 'hide-shift small', latex: '\\int', shift: '\\iint' }, // { latex: '\\pi', shift: '\\tau', variants: ['\\tau'] } { latex: '\\int^{\\infty}_{0}\\!#?\\,\\mathrm{d}x', class: 'small hide-shift', // shift: '\\int', // variants: [ // { latex: '\\int_{#?}^{#?}', class: 'small' }, // { latex: '\\int', class: 'small' }, // { latex: '\\iint', class: 'small' }, // { latex: '\\iiint', class: 'small' }, // { latex: '\\oint', class: 'small' }, // '\\mathrm{d}x', // { latex: '\\dfrac{\\mathrm{d}}{\\mathrm{d} x}', class: 'small' }, // { latex: '\\frac{\\partial}{\\partial x}', class: 'small' }, // // '\\partial' // ] }, ], [ { latex: '\\tan', shift: '\\tan^{-1}' }, { latex: '\\exp', insert: '\\exp\\left(#0\\right)' }, '\\left\\Vert#0\\right\\Vert', { latex: '\\lrArr', shift: '\\leftrightarrow' }, { latex: '\\vert', shift: '!' }, { latex: '#@^{\\complement}', aside: 'complement' }, { latex: '\\subset', shift: '\\subseteq' }, { latex: '#@^{\\prime}', shift: '#@^{\\doubleprime}' }, { latex: '\\mathrm{d}', shift: '\\partial' }, // { // latex: '\\infty', // variants: ['\\aleph_0', '\\aleph_1', '\\omega', '\\mathfrak{m}'] // } { //latex: '-', //label: '−', latex: '\\pm', class: 'big-op hide-shift' } ], [ { label: '[shift]', width: 2.0 }, '[separator-10]', { latex: '\\exponentialE', shift: '\\imaginaryI' }, { latex: '\\pi', shift: '\\tau' }, { latex: '\\infty', shift: '\\Colon' }, // { // class: 'box', // latex: ',', // shift: ';', // variants: [';', '?'] // }, // { // class: 'box', // latex: '\\colon', // shift: '\\Colon', // variants: [ // { latex: '\\Colon', aside: 'such that', class: 'box' }, // { latex: ':', aside: 'ratio', class: 'box' }, // { latex: '\\vdots', aside: '', class: 'box' }, // { latex: '\\ddots', aside: '', class: 'box' }, // { latex: '\\ldotp', aside: 'low dot', class: 'box' }, // { latex: '\\cdotp', aside: 'center dot', class: 'box' }, // { latex: '\\ldots', aside: 'low ellipsis', class: 'box' }, // { latex: '\\cdots', aside: 'center ellipsis', class: 'box' }, // { latex: '\\therefore', aside: 'therefore', class: 'box' }, // { latex: '\\because', aside: 'because', class: 'box' } // ] // }, // { // class: 'box', // latex: '\\cdot', // aside: 'centered dot', // shift: '\\ast', // variants: [ // '\\circ', // '\\bigcirc', // '\\bullet', // '\\odot', // '\\oslash', // '\\circledcirc', // '\\ast', // '\\star', // '\\times', // '\\doteq', // '\\doteqdot' // ] // }, '[separator-10]', { class: 'action hide-shift', label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-left /></svg>', command: 'performWithFeedback(moveToPreviousChar)', // shift: { // label: '<svg class=svg-glyph><use xlink:href=#svg-angle-double-left /></svg>', // command: 'performWithFeedback(extendSelectionBackward)' // } }, { class: 'action hide-shift', label: '<svg class=svg-glyph><use xlink:href=#svg-arrow-right /></svg>', command: 'performWithFeedback(moveToNextChar)', // shift: { // label: '<svg class=svg-glyph><use xlink:href=#svg-angle-double-right /></svg>', // command: 'performWithFeedback(extendSelectionForward)' // } }, { label: '[backspace]', width: 1.0, class: 'action hide-shift' }, // { label: '[action]', width: 1.0 } ] ] } };