UNPKG

@neo4j-ndl/react

Version:

React implementation of Neo4j Design System

98 lines (97 loc) 2.69 kB
/** * * Copyright (c) "Neo4j" * Neo4j Sweden AB [http://neo4j.com] * * This file is part of Neo4j. * * Neo4j is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.detectOS = detectOS; exports.getKbdKeysMap = getKbdKeysMap; exports.getKbdKeysLabelMap = getKbdKeysLabelMap; /** * Detects the operating system based on the user agent */ function detectOS() { if (typeof window === 'undefined') { return 'linux'; } const userAgent = window.navigator.userAgent.toLowerCase(); if (userAgent.includes('mac')) { return 'mac'; } else if (userAgent.includes('win')) { return 'windows'; } else { return 'linux'; } } /** * Returns OS-aware keyboard key symbols */ function getKbdKeysMap(os = detectOS()) { const baseMap = { alt: os === 'mac' ? '⌥' : 'alt', capslock: '⇪', ctrl: os === 'mac' ? '⌃' : 'ctrl', delete: os === 'mac' ? '⌫' : 'delete', down: '↓', end: 'end', enter: '↵', escape: '⎋', fn: 'Fn', home: 'home', left: '←', meta: os === 'mac' ? '⌘' : os === 'windows' ? '⊞' : 'meta', pagedown: '⇟', pageup: '⇞', right: '→', shift: '⇧', space: '␣', tab: '⇥', up: '↑', }; return baseMap; } /** * Returns OS-aware keyboard key labels */ function getKbdKeysLabelMap(os = detectOS()) { return { alt: 'Alt', capslock: 'Caps Lock', ctrl: 'Control', delete: 'Delete', down: 'Down', end: 'End', enter: 'Enter', escape: 'Escape', fn: 'Fn', home: 'Home', left: 'Left', meta: os === 'mac' ? 'Command' : os === 'windows' ? 'Windows' : 'Meta', pagedown: 'Page Down', pageup: 'Page Up', right: 'Right', shift: 'Shift', space: 'Space', tab: 'Tab', up: 'Up', }; } //# sourceMappingURL=kbd-utils.js.map