2016-07-17 21:08:23 +02:00
|
|
|
const MobileRegex = /iPhone|iPad|iPod|Android|BlackBerry|Opera Mini|IEMobile|WPDesktop|Windows Phone|webOS/i;
|
|
|
|
const MinDesktopScreenWidth = 800;
|
|
|
|
|
2017-01-31 07:50:28 +01:00
|
|
|
const FeatureDetector = {
|
2016-07-17 21:08:23 +02:00
|
|
|
isMac: navigator.platform.indexOf('Mac') >= 0,
|
|
|
|
isWindows: navigator.platform.indexOf('Win') >= 0,
|
|
|
|
isiOS: /iPad|iPhone|iPod/i.test(navigator.userAgent),
|
|
|
|
isMobile: MobileRegex.test(navigator.userAgent) || screen.width < MinDesktopScreenWidth,
|
2017-04-16 18:05:58 +02:00
|
|
|
isPopup: !!((window.parent !== window.top) || window.opener),
|
|
|
|
isStandalone: !!(navigator.standalone || window.matchMedia('(display-mode: standalone)').matches),
|
2016-07-17 21:08:23 +02:00
|
|
|
isBeta: window.location.href.toLowerCase().indexOf('beta.') > 0,
|
|
|
|
|
2015-10-17 23:49:24 +02:00
|
|
|
actionShortcutSymbol: function(formatting) {
|
2016-07-17 21:08:23 +02:00
|
|
|
return this.isMac ? '⌘' : formatting ? '<span class="thin">ctrl + </span>' : 'ctrl-';
|
2015-10-17 23:49:24 +02:00
|
|
|
},
|
|
|
|
altShortcutSymbol: function(formatting) {
|
2016-07-17 21:08:23 +02:00
|
|
|
return this.isMac ? '⌥' : formatting ? '<span class="thin">alt + </span>' : 'alt-';
|
2015-10-27 22:57:56 +01:00
|
|
|
},
|
2016-02-28 18:13:23 +01:00
|
|
|
globalShortcutSymbol: function(formatting) {
|
2016-07-17 21:08:23 +02:00
|
|
|
return this.isMac ? '⌃⌥' : formatting ? '<span class="thin">shift+alt+</span>' : 'shift-alt-';
|
2016-02-28 18:13:23 +01:00
|
|
|
},
|
|
|
|
globalShortcutIsLarge: function() {
|
2016-07-17 21:08:23 +02:00
|
|
|
return !this.isMac;
|
2016-02-28 18:13:23 +01:00
|
|
|
},
|
2016-03-31 22:52:04 +02:00
|
|
|
screenshotToClipboardShortcut: function() {
|
2016-07-17 21:08:23 +02:00
|
|
|
if (this.isiOS) { return 'Sleep+Home'; }
|
|
|
|
if (this.isMobile) { return ''; }
|
|
|
|
if (this.isMac) { return 'Command-Shift-Control-4'; }
|
|
|
|
if (this.isWindows) { return 'Alt+PrintScreen'; }
|
2016-03-31 22:52:04 +02:00
|
|
|
return '';
|
|
|
|
},
|
2017-05-14 21:23:49 +02:00
|
|
|
supportsTitleBarStyles: function() {
|
|
|
|
return this.isMac;
|
|
|
|
},
|
|
|
|
hasUnicodeFlags: function() {
|
2017-03-26 16:46:26 +02:00
|
|
|
return this.isMac;
|
2015-10-17 23:49:24 +02:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = FeatureDetector;
|