infinity-forge
Version:
42 lines • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getBrowser = getBrowser;
var window_1 = require("../ssr-window/window.js");
var get_device_1 = require("./get-device.js");
var browser;
function calcBrowser() {
var window = (0, window_1.getWindow)();
var device = (0, get_device_1.getDevice)();
var needPerspectiveFix = false;
function isSafari() {
var ua = window.navigator.userAgent.toLowerCase();
return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;
}
if (isSafari()) {
var ua = String(window.navigator.userAgent);
if (ua.includes('Version/')) {
var _a = ua
.split('Version/')[1]
.split(' ')[0]
.split('.')
.map(function (num) { return Number(num); }), major = _a[0], minor = _a[1];
needPerspectiveFix = major < 16 || (major === 16 && minor < 2);
}
}
var isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);
var isSafariBrowser = isSafari();
var need3dFix = isSafariBrowser || (isWebView && device.ios);
return {
isSafari: needPerspectiveFix || isSafariBrowser,
needPerspectiveFix: needPerspectiveFix,
need3dFix: need3dFix,
isWebView: isWebView,
};
}
function getBrowser() {
if (!browser) {
browser = calcBrowser();
}
return browser;
}
//# sourceMappingURL=get-browser.js.map