UNPKG

rsuite

Version:

A suite of react components

85 lines (60 loc) 2.23 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.isSupportFlexGap = exports.getSafariVersion = exports.getChromeVersion = exports.isEdge = exports.isIE11 = exports.isIE10 = exports.isIE = void 0; var _canUseDOM = _interopRequireDefault(require("dom-lib/canUseDOM")); // from http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser // Internet Explorer 6-11 var isIE = function isIE() { return _canUseDOM.default && /MSIE |Trident\/|Edge\//.test(window.navigator.userAgent); }; exports.isIE = isIE; var isIE10 = function isIE10() { return _canUseDOM.default && !!window.navigator.userAgent.match(/MSIE 10.0/); }; exports.isIE10 = isIE10; var isIE11 = function isIE11() { return _canUseDOM.default && window.navigator.userAgent.indexOf('Trident') > -1 && window.navigator.userAgent.indexOf('rv:11.0') > -1; }; // Edge 20+ exports.isIE11 = isIE11; var isEdge = function isEdge() { return _canUseDOM.default && !isIE() && 'styleMedia' in window; }; exports.isEdge = isEdge; var getChromeVersion = function getChromeVersion() { if (_canUseDOM.default) { var match = window.navigator.userAgent.match(/Chrom(e|ium)\/([\d\.]+)\./); return match ? parseFloat(match[2]) : false; } return false; }; exports.getChromeVersion = getChromeVersion; var getSafariVersion = function getSafariVersion() { if (_canUseDOM.default) { var match = window.navigator.userAgent.match(/Version\/([\d\.]+).*Safari/); return match ? parseFloat(match[1]) : false; } return false; }; /** * flexbox-gap compatibility * @see https://caniuse.com/flexbox-gap */ exports.getSafariVersion = getSafariVersion; var isSupportFlexGap = function isSupportFlexGap() { if (isIE()) { return false; } var chromeVersion = getChromeVersion(); var safariVersion = getSafariVersion(); // edge consider as chrome if (chromeVersion) { // flex-gap is support in Chrome 84+ return chromeVersion >= 84; } if (safariVersion) { // flex-gap is support in Safari 14.1+ return safariVersion >= 14.1; } return true; }; exports.isSupportFlexGap = isSupportFlexGap;