UNPKG

@atlaskit/editor-common

Version:

A package that contains common classes and components for editor and renderer

81 lines (79 loc) 3.69 kB
// 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 };