@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
81 lines (79 loc) • 3.69 kB
JavaScript
// Ignored via go/ees005
// eslint-disable-next-line @typescript-eslint/no-explicit-any
var result = {
mac: false,
windows: false,
ie: false,
ie_version: 0,
gecko: false,
gecko_version: 0,
chrome: false,
chrome_version: 0,
android: false,
ios: false,
webkit: false,
safari: false,
safari_version: 0,
supportsIntersectionObserver: false,
supportsResizeObserver: false
};
if (typeof navigator !== 'undefined') {
var _userAgentData;
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
var ieEdge = /(?:Edge|Edg)\/(\d+)/.exec(navigator.userAgent);
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
var ieUpTo10 = /MSIE \d/.test(navigator.userAgent);
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
var ie11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
result.mac = /Mac/.test(navigator.platform);
result.windows =
// Ignored via go/ees005
// eslint-disable-next-line @typescript-eslint/no-explicit-any
((_userAgentData = navigator.userAgentData) === null || _userAgentData === void 0 ? void 0 : _userAgentData.platform) === 'Windows' ||
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
/Windows|Win\d+/i.test(navigator.userAgent);
var ie = result.ie = !!(ieUpTo10 || ie11up || ieEdge);
result.ie_version = ieUpTo10 ?
// Ignored via go/ees005
// eslint-disable-next-line @typescript-eslint/no-explicit-any
document.documentMode || 6 : ie11up ? +ie11up[1] : ieEdge ? +ieEdge[1] : null;
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
result.gecko = !ie && /gecko\/\d/i.test(navigator.userAgent);
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
result.gecko_version = parseInt((navigator.userAgent.match(/Firefox\/(\d+)/) || [])[1], 10);
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
result.chrome = !ie && /Chrome\//.test(navigator.userAgent);
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
result.chrome_version = parseInt((navigator.userAgent.match(/Chrome\/(\d+)/) || [])[1], 10);
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
result.android = /Android \d/.test(navigator.userAgent);
result.ios =
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
!ie && /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent);
result.webkit = !ie && !!document.documentElement && 'WebkitAppearance' in document.documentElement.style;
result.safari = Boolean(navigator.vendor && navigator.vendor.indexOf('Apple') > -1 && navigator.userAgent && navigator.userAgent.indexOf('CriOS') === -1 && navigator.userAgent.indexOf('FxiOS') === -1);
result.safari_version = parseInt(
// Ignored via go/ees005
// eslint-disable-next-line require-unicode-regexp
(navigator.userAgent.match(/Version\/([0-9\._]+).*Safari/) || [])[1], 10);
result.supportsIntersectionObserver = typeof window !== 'undefined' && 'IntersectionObserver' in window && 'IntersectionObserverEntry' in window &&
// Ignored via go/ees005
// eslint-disable-next-line @typescript-eslint/no-explicit-any
'intersectionRatio' in window.IntersectionObserverEntry.prototype;
result.supportsResizeObserver = typeof window !== 'undefined' && 'ResizeObserver' in window && 'ResizeObserverEntry' in window;
}
export { result as browser };