UNPKG

amos-tool

Version:

amos ui tool

78 lines (68 loc) 2.32 kB
"use strict"; var _utils = require("./utils"), _consts = require("./consts"), _defaultBrowsers = [ "firefox/51.0", "chrome/56" ], _muiltBrowsers = [ "firefox/", "chrome/" ], calcIeSerails = function(s, e, r, i) { var t, o = s.indexOf("compatible") > -1 && s.indexOf("msie") > -1, n = s.indexOf("edge") > -1 && !o, a = s.indexOf("trident") > -1 && s.indexOf("rv:11.0") > -1, c = !1; if (o) { new RegExp("msie (\\d+\\.\\d+);").test(s); var l = parseFloat(RegExp.$1); t = 7 == l ? 7 : 8 == l ? 8 : 9 == l ? 9 : 10 == l ? 10 : 6; } else t = n ? 12 : a ? 11 : -1; switch (r) { case _consts.GREATER: c = t > i; break; case _consts.EQUAL: c = t == i; break; case _consts.LESS: c = t < i; break; case _consts.GREATER_EQUAL: c = t >= i; break; case _consts.LESS_EQUAL: c = t <= i; } return c; }, calcBrowserVersion = function(s, e, r, i) { var t = !1; if (s.indexOf(e) > -1) switch (r) { case _consts.GREATER: t = s.split(e)[1].split(".")[0] > i; break; case _consts.EQUAL: t = s.split(e)[1].split(".")[0] == i; break; case _consts.LESS: t = s.split(e)[1].split(".")[0] < i; break; case _consts.GREATER_EQUAL: t = s.split(e)[1].split(".")[0] >= i; break; case _consts.LESS_EQUAL: t = s.split(e)[1].split(".")[0] <= i; } else t = calcIeSerails(s, e, r, i); return console.log("supported:", t), t; }, browserSupport = function(s, e) { if (navigator) { var r = navigator.userAgent; if (!_utils.isEmpty(r)) if (r = r.toLowerCase(), _utils.isEmpty(e)) { var i = s || _defaultBrowsers; if (!_utils.isEmpty(i)) { if (_utils.isArray(i)) return _utils.some(i, function(s) { return console.log("non matchs. target browser is:", s), r.indexOf(s) > -1; }); if (_utils.isString(i)) return r.indexOf(i) > -1; } } else { var t = s || _muiltBrowsers; if (!_utils.isEmpty(t)) { if (_utils.isArray(t)) return _utils.some(t, function(s) { return console.log("matchs. target browser is:", s), calcBrowserVersion(r, s, e[s].limit, e[s].version); }); if (_utils.isString(t)) return calcBrowserVersion(r, t, e.limit, e.version); } } } return !1; }; module.exports = browserSupport;