Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: static/dist/js/vendor/bowser.js.map

Issue 29624561: Issue 6104 - Minified code in help center repository (Closed) Base URL: https://hg.adblockplus.org/help.eyeo.com
Patch Set: Move all requires to top of gulpfile.js Created Dec. 4, 2017, 2:10 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 {"version":3,"names":[],"mappings":"","sources":["bowser.js"],"sourcesContent":[ "/*!\n * Bowser - a browser detector\n * https://github.com/ded/bowser\n * MIT L icense | (c) Dustin Diaz 2015\n */\n\n!function (root, name, definition) {\n if (typeof module != 'undefined' && module.exports) module.exports = definition()\ n else if (typeof define == 'function' && define.amd) define(name, definition)\ n else root[name] = definition()\n}(this, 'bowser', function () {\n /**\n * See useragents.js for examples of navigator.userAgent\n */\n\n var t = true \n\n function detect(ua) {\n\n function getFirstMatch(regex) {\n var ma tch = ua.match(regex);\n return (match && match.length > 1 && match[1]) || '';\n }\n\n function getSecondMatch(regex) {\n var match = ua.match(r egex);\n return (match && match.length > 1 && match[2]) || '';\n }\n\n var iosdevice = getFirstMatch(/(ipod|iphone|ipad)/i).toLowerCase()\n , li keAndroid = /like android/i.test(ua)\n , android = !likeAndroid && /android /i.test(ua)\n , nexusMobile = /nexus\\s*[0-6]\\s*/i.test(ua)\n , nexus Tablet = !nexusMobile && /nexus\\s*[0-9]+/i.test(ua)\n , chromeos = /CrOS/. test(ua)\n , silk = /silk/i.test(ua)\n , sailfish = /sailfish/i.test(u a)\n , tizen = /tizen/i.test(ua)\n , webos = /(web|hpw)os/i.test(ua)\n , windowsphone = /windows phone/i.test(ua)\n , samsungBrowser = /Sams ungBrowser/i.test(ua)\n , windows = !windowsphone && /windows/i.test(ua)\n , mac = !iosdevice && !silk && /macintosh/i.test(ua)\n , linux = !andr oid && !sailfish && !tizen && !webos && /linux/i.test(ua)\n , edgeVersion = getFirstMatch(/edge\\/(\\d+(\\.\\d+)?)/i)\n , versionIdentifier = getFirst Match(/version\\/(\\d+(\\.\\d+)?)/i)\n , tablet = /tablet/i.test(ua) && !/t ablet pc/i.test(ua)\n , mobile = !tablet && /[^-]mobi/i.test(ua)\n , x box = /xbox/i.test(ua)\n , result\n\n if (/opera/i.test(ua)) {\n // an old Opera\n result = {\n name: 'Opera'\n , opera: t\n , version: versionIdentifier || getFirstMatch(/(?:opera|opr|opios)[\\s\\/](\\d+ (\\.\\d+)?)/i)\n }\n } else if (/opr\\/|opios/i.test(ua)) {\n // a new Opera\n result = {\n name: 'Opera'\n , opera: t\n , version: getFirstMatch(/(?:opr|opios)[\\s\\/](\\d+(\\.\\d+)?)/i) || versionIde ntifier\n }\n }\n else if (/SamsungBrowser/i.test(ua)) {\n resul t = {\n name: 'Samsung Internet for Android'\n , samsungBrowser: t \n , version: versionIdentifier || getFirstMatch(/(?:SamsungBrowser)[\\s\ \/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/coast/i.test(ua)) {\n result = {\n name: 'Opera Coast'\n , coast: t\n , version: versionIdentifier || getFirstMatch(/(?:coast)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/yabrowser/i.test(ua)) {\n result = {\n name : 'Yandex Browser'\n , yandexbrowser: t\n , version: versionIdentifier || getFirstMatch(/(?:yabrowser)[\\s\\/](\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/ucbrowser/i.test(ua)) {\n result = {\n name: 'UC Browse r'\n , ucbrowser: t\n , version: getFirstMatch(/(?:ucbrowser)[\\s\ \/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/mxios/i.test(ua)) {\n result = {\n name: 'Maxthon'\n , maxthon: t\n , version: getFirstMatch(/(?:mxios)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (/epiphany/i.test(ua)) {\n result = {\n name: 'Epiphany'\n , epiphany: t\n , version: getFirstMatch(/(?:epiphany)[\\s\\/](\\d+(?:\ \.\\d+)+)/i)\n }\n }\n else if (/puffin/i.test(ua)) {\n result = {\n name: 'Puffin'\n , puffin: t\n , version: getFirstMatc h(/(?:puffin)[\\s\\/](\\d+(?:\\.\\d+)?)/i)\n }\n }\n else if (/sleipn ir/i.test(ua)) {\n result = {\n name: 'Sleipnir'\n , sleipnir : t\n , version: getFirstMatch(/(?:sleipnir)[\\s\\/](\\d+(?:\\.\\d+)+)/i) \n }\n }\n else if (/k-meleon/i.test(ua)) {\n result = {\n name: 'K-Meleon'\n , kMeleon: t\n , version: getFirstMatch(/(?:k -meleon)[\\s\\/](\\d+(?:\\.\\d+)+)/i)\n }\n }\n else if (windowsphone ) {\n result = {\n name: 'Windows Phone'\n , windowsphone: t\n }\n if (edgeVersion) {\n result.msedge = t\n result.vers ion = edgeVersion\n }\n else {\n result.msie = t\n resul t.version = getFirstMatch(/iemobile\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n e lse if (/msie|trident/i.test(ua)) {\n result = {\n name: 'Internet E xplorer'\n , msie: t\n , version: getFirstMatch(/(?:msie |rv:)(\\d+(\\ .\\d+)?)/i)\n }\n } else if (chromeos) {\n result = {\n name : 'Chrome'\n , chromeos: t\n , chromeBook: t\n , chrome: t\n , version: getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.\\d+)?)/i)\n }\ n } else if (/chrome.+? edge/i.test(ua)) {\n result = {\n name: ' Microsoft Edge'\n , msedge: t\n , version: edgeVersion\n }\n } \n else if (/vivaldi/i.test(ua)) {\n result = {\n name: 'Vivaldi' \n , vivaldi: t\n , version: getFirstMatch(/vivaldi\\/(\\d+(\\.\\d +)?)/i) || versionIdentifier\n }\n }\n else if (sailfish) {\n re sult = {\n name: 'Sailfish'\n , sailfish: t\n , version: getFir stMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/seamonkey\\//i.test(ua)) {\n result = {\n name: 'SeaMonkey'\n , seamonkey: t\n , version: getFirstMatch(/seamonkey\\/(\\d+(\\.\\d+)?)/i) \n }\n }\n else if (/firefox|iceweasel|fxios/i.test(ua)) {\n res ult = {\n name: 'Firefox'\n , firefox: t\n , version: getFirstM atch(/(?:firefox|iceweasel|fxios)[ \\/](\\d+(\\.\\d+)?)/i)\n }\n if (/ \\((mobile|tablet);[^\\)]*rv:[\\d\\.]+\\)/i.test(ua)) {\n result.firefoxo s = t\n }\n }\n else if (silk) {\n result = {\n name: 'A mazon Silk'\n , silk: t\n , version : getFirstMatch(/silk\\/(\\d+(\\.\ \d+)?)/i)\n }\n }\n else if (/phantom/i.test(ua)) {\n result = { \n name: 'PhantomJS'\n , phantom: t\n , version: getFirstMatch( /phantomjs\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (/slimerjs/i.test( ua)) {\n result = {\n name: 'SlimerJS'\n , slimer: t\n , version: getFirstMatch(/slimerjs\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n e lse if (/blackberry|\\bbb\\d+/i.test(ua) || /rim\\stablet/i.test(ua)) {\n r esult = {\n name: 'BlackBerry'\n , blackberry: t\n , version: v ersionIdentifier || getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else if (webos) {\n result = {\n name: 'WebOS'\n , webos: t\n , version: versionIdentifier || getFirstMatch(/w(?:eb)?osbrow ser\\/(\\d+(\\.\\d+)?)/i)\n };\n /touchpad\\//i.test(ua) && (result.to uchpad = t)\n }\n else if (/bada/i.test(ua)) {\n result = {\n name: 'Bada'\n , bada: t\n , version: getFirstMatch(/dolfin\\/(\\d+(\\ .\\d+)?)/i)\n };\n }\n else if (tizen) {\n result = {\n n ame: 'Tizen'\n , tizen: t\n , version: getFirstMatch(/(?:tizen\\s?)?br owser\\/(\\d+(\\.\\d+)?)/i) || versionIdentifier\n };\n }\n else if ( /qupzilla/i.test(ua)) {\n result = {\n name: 'QupZilla'\n , q upzilla: t\n , version: getFirstMatch(/(?:qupzilla)[\\s\\/](\\d+(?:\\.\\d +)+)/i) || versionIdentifier\n }\n }\n else if (/chromium/i.test(ua)) {\n result = {\n name: 'Chromium'\n , chromium: t\n , version: getFirstMatch(/(?:chromium)[\\s\\/](\\d+(?:\\.\\d+)?)/i) || versionIde ntifier\n }\n }\n else if (/chrome|crios|crmo/i.test(ua)) {\n re sult = {\n name: 'Chrome'\n , chrome: t\n , version: getFir stMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.\\d+)?)/i)\n }\n }\n else i f (android) {\n result = {\n name: 'Android'\n , version: ver sionIdentifier\n }\n }\n else if (/safari|applewebkit/i.test(ua)) {\n result = {\n name: 'Safari'\n , safari: t\n }\n if ( versionIdentifier) {\n result.version = versionIdentifier\n }\n } \n else if (iosdevice) {\n result = {\n name : iosdevice == 'ipho ne' ? 'iPhone' : iosdevice == 'ipad' ? 'iPad' : 'iPod'\n }\n // WTF: v ersion is not part of user agent in web apps\n if (versionIdentifier) {\n result.version = versionIdentifier\n }\n }\n else if(/googlebot /i.test(ua)) {\n result = {\n name: 'Googlebot'\n , googlebot: t\n , version: getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i) || versionIden tifier\n }\n }\n else {\n result = {\n name: getFirstMatc h(/^(.*)\\/(.*) /),\n version: getSecondMatch(/^(.*)\\/(.*) /)\n };\n }\n\n // set webkit or gecko flag for browsers based on these engines\n if (!result.msedge && /(apple)?webkit/i.test(ua)) {\n if (/(apple)?webkit\ \/537\\.36/i.test(ua)) {\n result.name = result.name || \"Blink\"\n result.blink = t\n } else {\n result.name = result.name || \"Webki t\"\n result.webkit = t\n }\n if (!result.version && versionIde ntifier) {\n result.version = versionIdentifier\n }\n } else if ( !result.opera && /gecko\\//i.test(ua)) {\n result.name = result.name || \"G ecko\"\n result.gecko = t\n result.version = result.version || getFirs tMatch(/gecko\\/(\\d+(\\.\\d+)?)/i)\n }\n\n // set OS flags for platforms that have multiple browsers\n if (!result.windowsphone && !result.msedge && ( android || result.silk)) {\n result.android = t\n } else if (!result.win dowsphone && !result.msedge && iosdevice) {\n result[iosdevice] = t\n result.ios = t\n } else if (mac) {\n result.mac = t\n } else if (xbox ) {\n result.xbox = t\n } else if (windows) {\n result.windows = t\ n } else if (linux) {\n result.linux = t\n }\n\n function getWindo wsVersion (s) {\n switch (s) {\n case 'NT': return 'NT'\n cas e 'XP': return 'XP'\n case 'NT 5.0': return '2000'\n case 'NT 5.1' : return 'XP'\n case 'NT 5.2': return '2003'\n case 'NT 6.0': retu rn 'Vista'\n case 'NT 6.1': return '7'\n case 'NT 6.2': return '8' \n case 'NT 6.3': return '8.1'\n case 'NT 10.0': return '10'\n default: return undefined\n }\n }\n\n // OS version extraction\n var osVersion = '';\n if (result.windows) {\n osVersion = getWindowsV ersion(getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i))\n } else if (resul t.windowsphone) {\n osVersion = getFirstMatch(/windows phone (?:os)?\\s?(\\ d+(\\.\\d+)*)/i);\n } else if (result.mac) {\n osVersion = getFirstMatch (/Mac OS X (\\d+([_\\.\\s]\\d+)*)/i);\n osVersion = osVersion.replace(/[_\\ s]/g, '.');\n } else if (iosdevice) {\n osVersion = getFirstMatch(/os (\ \d+([_\\s]\\d+)*) like mac os x/i);\n osVersion = osVersion.replace(/[_\\s] /g, '.');\n } else if (android) {\n osVersion = getFirstMatch(/android[ \\/-](\\d+(\\.\\d+)*)/i);\n } else if (result.webos) {\n osVersion = get FirstMatch(/(?:web|hpw)os\\/(\\d+(\\.\\d+)*)/i);\n } else if (result.blackber ry) {\n osVersion = getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i); \n } else if (result.bada) {\n osVersion = getFirstMatch(/bada\\/(\\d+(\ \.\\d+)*)/i);\n } else if (result.tizen) {\n osVersion = getFirstMatch(/ tizen[\\/\\s](\\d+(\\.\\d+)*)/i);\n }\n if (osVersion) {\n result.osv ersion = osVersion;\n }\n\n // device type extraction\n var osMajorVers ion = !result.windows && osVersion.split('.')[0];\n if (\n tablet\n || nexusTablet\n || iosdevice == 'ipad'\n || (android && (osMajorV ersion == 3 || (osMajorVersion >= 4 && !mobile)))\n || result.silk\n ) { \n result.tablet = t\n } else if (\n mobile\n || iosdevice == 'iphone'\n || iosdevice == 'ipod'\n || android\n || nexusMobil e\n || result.blackberry\n || result.webos\n || result.bada\n ) {\n result.mobile = t\n }\n\n // Graded Browser Support\n // htt p://developer.yahoo.com/yui/articles/gbs\n if (result.msedge ||\n (res ult.msie && result.version >= 10) ||\n (result.yandexbrowser && result.ve rsion >= 15) ||\n\t\t (result.vivaldi && result.version >= 1.0) ||\n ( result.chrome && result.version >= 20) ||\n (result.samsungBrowser && res ult.version >= 4) ||\n (result.firefox && result.version >= 20.0) ||\n (result.safari && result.version >= 6) ||\n (result.opera && result. version >= 10.0) ||\n (result.ios && result.osversion && result.osversion .split(\".\")[0] >= 6) ||\n (result.blackberry && result.version >= 10.1) \n || (result.chromium && result.version >= 20)\n ) {\n resul t.a = t;\n }\n else if ((result.msie && result.version < 10) ||\n ( result.chrome && result.version < 20) ||\n (result.firefox && result.vers ion < 20.0) ||\n (result.safari && result.version < 6) ||\n (resul t.opera && result.version < 10.0) ||\n (result.ios && result.osversion && result.osversion.split(\".\")[0] < 6)\n || (result.chromium && result.ve rsion < 20)\n ) {\n result.c = t\n } else result.x = t\n\n ret urn result\n }\n\n var bowser = detect(typeof navigator !== 'undefined' ? navi gator.userAgent || '' : '')\n\n bowser.test = function (browserList) {\n for (var i = 0; i < browserList.length; ++i) {\n var browserItem = browserList [i];\n if (typeof browserItem=== 'string') {\n if (browserItem in bo wser) {\n return true;\n }\n }\n }\n return false;\n }\n\n /**\n * Get version precisions count\n *\n * @example\n * getV ersionPrecision(\"1.10.3\") // 3\n *\n * @param {string} version\n * @ret urn {number}\n */\n function getVersionPrecision(version) {\n return versi on.split(\".\").length;\n }\n\n /**\n * Array::map polyfill\n *\n * @par am {Array} arr\n * @param {Function} iterator\n * @return {Array}\n */\n function map(arr, iterator) {\n var result = [], i;\n if (Array.prototyp e.map) {\n return Array.prototype.map.call(arr, iterator);\n }\n for (i = 0; i < arr.length; i++) {\n result.push(iterator(arr[i]));\n }\n return result;\n }\n\n /**\n * Calculate browser version weight\n *\n * @example\n * compareVersions(['1.10.2.1', '1.8.2.1.90']) // 1\n * c ompareVersions(['1.010.2.1', '1.09.2.1.90']); // 1\n * compareVersions(['1. 10.2.1', '1.10.2.1']); // 0\n * compareVersions(['1.10.2.1', '1.0800.2 ']); // -1\n *\n * @param {Array<String>} versions versions to compare\ n * @return {Number} comparison result\n */\n function compareVersions(vers ions) {\n // 1) get common precision for both versions, for example for \"10. 0\" and \"9\" it should be 2\n var precision = Math.max(getVersionPrecision(v ersions[0]), getVersionPrecision(versions[1]));\n var chunks = map(versions, function (version) {\n var delta = precision - getVersionPrecision(version) ;\n\n // 2) \"9\" -> \"9.0\" (for precision = 2)\n version = version + new Array(delta + 1).join(\".0\");\n\n // 3) \"9.0\" -> [\"000000000\"\", \"000000009\"]\n return map(version.split(\".\"), function (chunk) {\n return new Array(20 - chunk.length).join(\"0\") + chunk;\n }).reverse(); \n });\n\n // iterate in reverse order by reversed chunks array\n while (--precision >= 0) {\n // 4) compare: \"000000009\" > \"000000010\" = fals e (but \"9\" > \"10\" = true)\n if (chunks[0][precision] > chunks[1][precis ion]) {\n return 1;\n }\n else if (chunks[0][precision] === chu nks[1][precision]) {\n if (precision === 0) {\n // all version c hunks are same\n return 0;\n }\n }\n else {\n r eturn -1;\n }\n }\n }\n\n /**\n * Check if browser is unsupported\n *\n * @example\n * bowser.isUnsupportedBrowser({\n * msie: \"10\", \n * firefox: \"23\",\n * chrome: \"29\",\n * safari: \"5.1\", \n * opera: \"16\",\n * phantom: \"534\"\n * });\n *\n * @pa ram {Object} minVersions map of minimal version to browser\n * @param {Bool ean} [strictMode = false] flag to return false if browser wasn't found in map\n * @param {String} [ua] user agent string\n * @return {Boolean}\n */\n f unction isUnsupportedBrowser(minVersions, strictMode, ua) {\n var _bowser = b owser;\n\n // make strictMode param optional with ua param usage\n if (typ eof strictMode === 'string') {\n ua = strictMode;\n strictMode = void( 0);\n }\n\n if (strictMode === void(0)) {\n strictMode = false;\n }\n if (ua) {\n _bowser = detect(ua);\n }\n\n var version = \"\" + _bowser.version;\n for (var browser in minVersions) {\n if (minVersions .hasOwnProperty(browser)) {\n if (_bowser[browser]) {\n if (type of minVersions[browser] !== 'string') {\n throw new Error('Browser ve rsion in the minVersion map should be a string: ' + browser + ': ' + String(minV ersions));\n }\n\n // browser version and min supported versio n.\n return compareVersions([version, minVersions[browser]]) < 0;\n }\n }\n }\n\n return strictMode; // not found\n }\n\n /**\n * Check if browser is supported\n *\n * @param {Object} minVersions map of m inimal version to browser\n * @param {Boolean} [strictMode = false] flag to r eturn false if browser wasn't found in map\n * @param {String} [ua] user age nt string\n * @return {Boolean}\n */\n function check(minVersions, strictMo de, ua) {\n return !isUnsupportedBrowser(minVersions, strictMode, ua);\n }\n \n bowser.isUnsupportedBrowser = isUnsupportedBrowser;\n bowser.compareVersion s = compareVersions;\n bowser.check = check;\n\n /*\n * Set our detect metho d to the main bowser object so we can\n * reuse it to test other user agents.\ n * This is needed to implement future tests.\n */\n bowser._detect = detec t;\n\n return bowser\n});"],"file":"bowser.js"}
OLDNEW

Powered by Google App Engine
This is Rietveld