UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

41 lines (40 loc) 1.61 kB
import { KeyMapEnum } from "./const"; // https://superuser.com/questions/1238058/key-combination-order export var NORMATIVE_MODIFIER = [ // win: Ctrl ,mac: Control KeyMapEnum.Ctrl, KeyMapEnum.Control, // win: Alt ,mac: Option KeyMapEnum.Alt, // win: Shift ,mac: Shift KeyMapEnum.Shift, // win: Win ,mac: Command KeyMapEnum.Meta, KeyMapEnum.Mod]; var orderMap = Object.fromEntries(NORMATIVE_MODIFIER.map(function (key, index) { return [key, index]; })); export var splitKeysByPlus = function splitKeysByPlus(keys) { return keys.replaceAll('++', "+".concat(KeyMapEnum.Equal)).split('+').sort(function (x, y) { var _orderMap$x$toLowerCa, _orderMap$y$toLowerCa; var idxX = (_orderMap$x$toLowerCa = orderMap[x.toLowerCase()]) !== null && _orderMap$x$toLowerCa !== void 0 ? _orderMap$x$toLowerCa : orderMap.length; var idxY = (_orderMap$y$toLowerCa = orderMap[y.toLowerCase()]) !== null && _orderMap$y$toLowerCa !== void 0 ? _orderMap$y$toLowerCa : orderMap.length; return idxX - idxY; }); }; export var startCase = function startCase(str) { return str.replaceAll(/([A-Z])/g, ' $1').replace(/^./, function (s) { return s.toUpperCase(); }).trim(); }; export var checkIsAppleDevice = function checkIsAppleDevice(isApple) { if (isApple !== undefined) { return isApple; } if (typeof window === 'undefined' || typeof navigator === 'undefined') { return false; // 处理 SSR 环境 } var userAgent = navigator.userAgent.toLowerCase(); return /mac|iphone|ipod|ipad|ios/i.test(userAgent); }; export var combineKeys = function combineKeys(keys) { return keys.join('+'); };