@neo4j-ndl/react
Version:
React implementation of Neo4j Design System
98 lines (97 loc) • 2.69 kB
JavaScript
/**
*
* 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/>.
*/
;
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