UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

40 lines (32 loc) 1.32 kB
"use strict"; var extend = require("./extend").extend, windowUtils = require("./window"), navigator = windowUtils.getNavigator(); var webkitRegExp = /(webkit)[ \/]([\w.]+)/, ieRegExp = /(msie) (\d{1,2}\.\d)/, ie11RegExp = /(trident).*rv:(\d{1,2}\.\d)/, msEdge = /(edge)\/((\d+)?[\w\.]+)/, safari = /(safari)/i, mozillaRegExp = /(mozilla)(?:.*? rv:([\w.]+))/; var browserFromUA = function browserFromUA(ua) { ua = ua.toLowerCase(); var result = {}, matches = ieRegExp.exec(ua) || ie11RegExp.exec(ua) || msEdge.exec(ua) || ua.indexOf("compatible") < 0 && mozillaRegExp.exec(ua) || webkitRegExp.exec(ua) || [], browserName = matches[1], browserVersion = matches[2]; if (browserName === "webkit" && ua.indexOf("chrome") < 0 && safari.exec(ua)) { browserName = "safari"; result["webkit"] = true; browserVersion = /Version\/([0-9.]+)/i.exec(ua); browserVersion = browserVersion && browserVersion[1]; } if (browserName === "trident" || browserName === "edge") { browserName = "msie"; } if (browserName) { result[browserName] = true; result.version = browserVersion; } return result; }; module.exports = extend({ _fromUA: browserFromUA }, browserFromUA(navigator.userAgent));