ui/lib/shared/addon/utils/platform.js

60 lines
1.5 KiB
JavaScript

export var platform = (navigator.platform||'').toLowerCase();
export var isLinuxy = platform.indexOf('linux') >= 0 || platform.indexOf('unix') >= 0;
export var isMac = platform.indexOf('mac') >= 0;
export var isWin = platform.indexOf('win') >= 0;
export var alternateKey = 'ctrlKey';
export var alternateLabel = 'Control';
export var moreKey = 'ctrlKey';
export var moreLabel = 'Control';
export var rangeKey = 'shiftKey';
export var rangeLabel = 'Shift';
if ( isMac )
{
alternateKey = 'metaKey';
alternateLabel = 'Command';
moreKey = 'metaKey';
moreLabel = 'Command';
}
export function isAlternate(event) {
return !!event[alternateKey];
}
export function isMore(event) {
return !!event[moreKey];
}
export function isRange(event) {
return !!event[rangeKey];
}
// Only intended to work for Mobile Safari at the moment...
export function version() {
let match = userAgent.match(/\s+Version\/([0-9.]+)/);
if ( match ) {
return parseFloat(match[1]);
}
return null;
}
export var userAgent = navigator.userAgent;
export var isGecko = userAgent.indexOf('Gecko/') >= 0;
export var isBlink = userAgent.indexOf('Chrome/') >= 0;
export var isWebKit = !isBlink && userAgent.indexOf('AppleWebKit/') >= 0;
export var isSafari = !isBlink && userAgent.indexOf('Safari/') >= 0;
export var isMobile = /Android|webOS|iPhone|iPad|iPod|IEMobile/i.test(userAgent);
export var xhrConcur = 99;
if ( isSafari ) {
if ( version() && version() < 10 ) {
// Safari for iOS9 has problems with multiple simultaneous requests
xhrConcur = 1;
}
}