UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

136 lines (135 loc) 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.codes = exports.aliases = void 0; exports.default = keyCode; exports.names = void 0; require("core-js/modules/es.string.replace.js"); function keyCode(searchInput) { if (searchInput && 'object' === typeof searchInput) { const sI = searchInput; const foundKeyCode = sI.which || sI.keyCode || sI.charCode; if (foundKeyCode) { searchInput = foundKeyCode; } else if (sI.key) { searchInput = sI.key.toLowerCase(); if (searchInput.startsWith('arrow')) { searchInput = searchInput.replace('arrow', ''); } if (searchInput === 'spacebar') { searchInput = searchInput.replace('bar', ''); } if (searchInput !== 'tab') { return searchInput; } } } if ('number' === typeof searchInput) { return names[searchInput]; } const search = String(searchInput); { const foundNamedKey = codes[search.toLowerCase()]; if (foundNamedKey) { return foundNamedKey; } } { const foundNamedKey = aliases[search.toLowerCase()]; if (foundNamedKey) { return foundNamedKey; } } if (search.length === 1) { return search.charCodeAt(0); } return undefined; } const codes = exports.codes = { backspace: 8, tab: 9, enter: 13, shift: 16, ctrl: 17, alt: 18, 'pause/break': 19, 'caps lock': 20, esc: 27, space: 32, 'page up': 33, 'page down': 34, end: 35, home: 36, left: 37, up: 38, right: 39, down: 40, insert: 45, delete: 46, command: 91, 'left command': 91, 'right command': 93, 'numpad *': 106, 'numpad +': 107, 'numpad -': 109, 'numpad .': 110, 'numpad /': 111, 'num lock': 144, 'scroll lock': 145, 'my computer': 182, 'my calculator': 183, ';': 186, '=': 187, ',': 188, '-': 189, '.': 190, '/': 191, '`': 192, '[': 219, '\\': 220, ']': 221, "'": 222 }; const aliases = exports.aliases = { windows: 91, '⇧': 16, '⌥': 18, '⌃': 17, '⌘': 91, ctl: 17, control: 17, option: 18, pause: 19, break: 19, caps: 20, return: 13, escape: 27, spc: 32, spacebar: 32, pgup: 33, pgdn: 34, ins: 45, del: 46, cmd: 91 }; for (let i = 97; i < 123; i++) { codes[String.fromCharCode(i)] = i - 32; } for (let i = 48; i < 58; i++) { codes[i - 48] = i; } for (let i = 1; i < 13; i++) { codes['f' + i] = i + 111; } for (let i = 0; i < 10; i++) { codes['numpad ' + i] = i + 96; } const names = exports.names = {}; for (const i in codes) { names[codes[i]] = i; } for (const alias in aliases) { codes[alias] = aliases[alias]; } //# sourceMappingURL=keycode.js.map