UNPKG

create-expo-cljs-app

Version:

Create a react native application with Expo and Shadow-CLJS!

1 lines 41.3 kB
["^ ","~:resource-id",["~:shadow.build.classpath/resource","goog/labs/useragent/browser.js"],"~:js","goog.provide(\"goog.labs.userAgent.browser\");\ngoog.require(\"goog.array\");\ngoog.require(\"goog.labs.userAgent.util\");\ngoog.require(\"goog.object\");\ngoog.require(\"goog.string.internal\");\ngoog.labs.userAgent.browser.matchOpera_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Opera\");\n};\ngoog.labs.userAgent.browser.matchIE_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Trident\") || goog.labs.userAgent.util.matchUserAgent(\"MSIE\");\n};\ngoog.labs.userAgent.browser.matchEdgeHtml_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Edge\");\n};\ngoog.labs.userAgent.browser.matchEdgeChromium_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Edg/\");\n};\ngoog.labs.userAgent.browser.matchOperaChromium_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"OPR\");\n};\ngoog.labs.userAgent.browser.matchFirefox_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Firefox\") || goog.labs.userAgent.util.matchUserAgent(\"FxiOS\");\n};\ngoog.labs.userAgent.browser.matchSafari_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Safari\") && !(goog.labs.userAgent.browser.matchChrome_() || goog.labs.userAgent.browser.matchCoast_() || goog.labs.userAgent.browser.matchOpera_() || goog.labs.userAgent.browser.matchEdgeHtml_() || goog.labs.userAgent.browser.matchEdgeChromium_() || goog.labs.userAgent.browser.matchOperaChromium_() || goog.labs.userAgent.browser.matchFirefox_() || goog.labs.userAgent.browser.isSilk() || goog.labs.userAgent.util.matchUserAgent(\"Android\"));\n};\ngoog.labs.userAgent.browser.matchCoast_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Coast\");\n};\ngoog.labs.userAgent.browser.matchIosWebview_ = function() {\n return (goog.labs.userAgent.util.matchUserAgent(\"iPad\") || goog.labs.userAgent.util.matchUserAgent(\"iPhone\")) && !goog.labs.userAgent.browser.matchSafari_() && !goog.labs.userAgent.browser.matchChrome_() && !goog.labs.userAgent.browser.matchCoast_() && !goog.labs.userAgent.browser.matchFirefox_() && goog.labs.userAgent.util.matchUserAgent(\"AppleWebKit\");\n};\ngoog.labs.userAgent.browser.matchChrome_ = function() {\n return (goog.labs.userAgent.util.matchUserAgent(\"Chrome\") || goog.labs.userAgent.util.matchUserAgent(\"CriOS\")) && !goog.labs.userAgent.browser.matchEdgeHtml_();\n};\ngoog.labs.userAgent.browser.matchAndroidBrowser_ = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Android\") && !(goog.labs.userAgent.browser.isChrome() || goog.labs.userAgent.browser.isFirefox() || goog.labs.userAgent.browser.isOpera() || goog.labs.userAgent.browser.isSilk());\n};\ngoog.labs.userAgent.browser.isOpera = goog.labs.userAgent.browser.matchOpera_;\ngoog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_;\ngoog.labs.userAgent.browser.isEdge = goog.labs.userAgent.browser.matchEdgeHtml_;\ngoog.labs.userAgent.browser.isEdgeChromium = goog.labs.userAgent.browser.matchEdgeChromium_;\ngoog.labs.userAgent.browser.isOperaChromium = goog.labs.userAgent.browser.matchOperaChromium_;\ngoog.labs.userAgent.browser.isFirefox = goog.labs.userAgent.browser.matchFirefox_;\ngoog.labs.userAgent.browser.isSafari = goog.labs.userAgent.browser.matchSafari_;\ngoog.labs.userAgent.browser.isCoast = goog.labs.userAgent.browser.matchCoast_;\ngoog.labs.userAgent.browser.isIosWebview = goog.labs.userAgent.browser.matchIosWebview_;\ngoog.labs.userAgent.browser.isChrome = goog.labs.userAgent.browser.matchChrome_;\ngoog.labs.userAgent.browser.isAndroidBrowser = goog.labs.userAgent.browser.matchAndroidBrowser_;\ngoog.labs.userAgent.browser.isSilk = function() {\n return goog.labs.userAgent.util.matchUserAgent(\"Silk\");\n};\ngoog.labs.userAgent.browser.getVersion = function() {\n var userAgentString = goog.labs.userAgent.util.getUserAgent();\n if (goog.labs.userAgent.browser.isIE()) {\n return goog.labs.userAgent.browser.getIEVersion_(userAgentString);\n }\n var versionTuples = goog.labs.userAgent.util.extractVersionTuples(userAgentString);\n var versionMap = {};\n goog.array.forEach(versionTuples, function(tuple) {\n var key = tuple[0];\n var value = tuple[1];\n versionMap[key] = value;\n });\n var versionMapHasKey = goog.partial(goog.object.containsKey, versionMap);\n function lookUpValueWithKeys(keys) {\n var key = goog.array.find(keys, versionMapHasKey);\n return versionMap[key] || \"\";\n }\n if (goog.labs.userAgent.browser.isOpera()) {\n return lookUpValueWithKeys([\"Version\", \"Opera\"]);\n }\n if (goog.labs.userAgent.browser.isEdge()) {\n return lookUpValueWithKeys([\"Edge\"]);\n }\n if (goog.labs.userAgent.browser.isEdgeChromium()) {\n return lookUpValueWithKeys([\"Edg\"]);\n }\n if (goog.labs.userAgent.browser.isChrome()) {\n return lookUpValueWithKeys([\"Chrome\", \"CriOS\"]);\n }\n var tuple = versionTuples[2];\n return tuple && tuple[1] || \"\";\n};\ngoog.labs.userAgent.browser.isVersionOrHigher = function(version) {\n return goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(), version) >= 0;\n};\ngoog.labs.userAgent.browser.getIEVersion_ = function(userAgent) {\n var rv = /rv: *([\\d\\.]*)/.exec(userAgent);\n if (rv && rv[1]) {\n return rv[1];\n }\n var version = \"\";\n var msie = /MSIE +([\\d\\.]+)/.exec(userAgent);\n if (msie && msie[1]) {\n var tridentVersion = /Trident\\/(\\d.\\d)/.exec(userAgent);\n if (msie[1] == \"7.0\") {\n if (tridentVersion && tridentVersion[1]) {\n switch(tridentVersion[1]) {\n case \"4.0\":\n version = \"8.0\";\n break;\n case \"5.0\":\n version = \"9.0\";\n break;\n case \"6.0\":\n version = \"10.0\";\n break;\n case \"7.0\":\n version = \"11.0\";\n break;\n }\n } else {\n version = \"7.0\";\n }\n } else {\n version = msie[1];\n }\n }\n return version;\n};\n","~:source","// Copyright 2013 The Closure Library Authors. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS-IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * @fileoverview Closure user agent detection (Browser).\n * @see <a href=\"http://www.useragentstring.com/\">User agent strings</a>\n * For more information on rendering engine, platform, or device see the other\n * sub-namespaces in goog.labs.userAgent, goog.labs.userAgent.platform,\n * goog.labs.userAgent.device respectively.)\n *\n * @author martone@google.com (Andy Martone)\n */\n\ngoog.provide('goog.labs.userAgent.browser');\n\ngoog.require('goog.array');\ngoog.require('goog.labs.userAgent.util');\ngoog.require('goog.object');\ngoog.require('goog.string.internal');\n\n\n// TODO(nnaze): Refactor to remove excessive exclusion logic in matching\n// functions.\n\n\n/**\n * @return {boolean} Whether the user's browser is Opera. Note: Chromium\n * based Opera (Opera 15+) is detected as Chrome to avoid unnecessary\n * special casing.\n * @private\n */\ngoog.labs.userAgent.browser.matchOpera_ = function() {\n return goog.labs.userAgent.util.matchUserAgent('Opera');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is IE.\n * @private\n */\ngoog.labs.userAgent.browser.matchIE_ = function() {\n return goog.labs.userAgent.util.matchUserAgent('Trident') ||\n goog.labs.userAgent.util.matchUserAgent('MSIE');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Edge. This refers to EdgeHTML\n * based Edge.\n * @private\n */\ngoog.labs.userAgent.browser.matchEdgeHtml_ = function() {\n return goog.labs.userAgent.util.matchUserAgent('Edge');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Chromium based Edge.\n * @private\n */\ngoog.labs.userAgent.browser.matchEdgeChromium_ = function() {\n return goog.labs.userAgent.util.matchUserAgent('Edg/');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Chromium based Opera.\n * @private\n */\ngoog.labs.userAgent.browser.matchOperaChromium_ = function() {\n return goog.labs.userAgent.util.matchUserAgent('OPR');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Firefox.\n * @private\n */\ngoog.labs.userAgent.browser.matchFirefox_ = function() {\n return goog.labs.userAgent.util.matchUserAgent('Firefox') ||\n goog.labs.userAgent.util.matchUserAgent('FxiOS');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Safari.\n * @private\n */\ngoog.labs.userAgent.browser.matchSafari_ = function() {\n return goog.labs.userAgent.util.matchUserAgent('Safari') &&\n !(goog.labs.userAgent.browser.matchChrome_() ||\n goog.labs.userAgent.browser.matchCoast_() ||\n goog.labs.userAgent.browser.matchOpera_() ||\n goog.labs.userAgent.browser.matchEdgeHtml_() ||\n goog.labs.userAgent.browser.matchEdgeChromium_() ||\n goog.labs.userAgent.browser.matchOperaChromium_() ||\n goog.labs.userAgent.browser.matchFirefox_() ||\n goog.labs.userAgent.browser.isSilk() ||\n goog.labs.userAgent.util.matchUserAgent('Android'));\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Coast (Opera's Webkit-based\n * iOS browser).\n * @private\n */\ngoog.labs.userAgent.browser.matchCoast_ = function() {\n return goog.labs.userAgent.util.matchUserAgent('Coast');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is iOS Webview.\n * @private\n */\ngoog.labs.userAgent.browser.matchIosWebview_ = function() {\n // iOS Webview does not show up as Chrome or Safari. Also check for Opera's\n // WebKit-based iOS browser, Coast.\n return (goog.labs.userAgent.util.matchUserAgent('iPad') ||\n goog.labs.userAgent.util.matchUserAgent('iPhone')) &&\n !goog.labs.userAgent.browser.matchSafari_() &&\n !goog.labs.userAgent.browser.matchChrome_() &&\n !goog.labs.userAgent.browser.matchCoast_() &&\n !goog.labs.userAgent.browser.matchFirefox_() &&\n goog.labs.userAgent.util.matchUserAgent('AppleWebKit');\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is any Chromium browser. This\n * returns true for Chrome, Opera 15+, and Edge Chromium.\n * @private\n */\ngoog.labs.userAgent.browser.matchChrome_ = function() {\n return (goog.labs.userAgent.util.matchUserAgent('Chrome') ||\n goog.labs.userAgent.util.matchUserAgent('CriOS')) &&\n !goog.labs.userAgent.browser.matchEdgeHtml_();\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is the Android browser.\n * @private\n */\ngoog.labs.userAgent.browser.matchAndroidBrowser_ = function() {\n // Android can appear in the user agent string for Chrome on Android.\n // This is not the Android standalone browser if it does.\n return goog.labs.userAgent.util.matchUserAgent('Android') &&\n !(goog.labs.userAgent.browser.isChrome() ||\n goog.labs.userAgent.browser.isFirefox() ||\n goog.labs.userAgent.browser.isOpera() ||\n goog.labs.userAgent.browser.isSilk());\n};\n\n\n/**\n * @return {boolean} Whether the user's browser is Opera.\n */\ngoog.labs.userAgent.browser.isOpera = goog.labs.userAgent.browser.matchOpera_;\n\n\n/**\n * @return {boolean} Whether the user's browser is IE.\n */\ngoog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_;\n\n\n/**\n * @return {boolean} Whether the user's browser is EdgeHTML based Edge.\n */\ngoog.labs.userAgent.browser.isEdge = goog.labs.userAgent.browser.matchEdgeHtml_;\n\n\n/**\n * @return {boolean} Whether the user's browser is Chromium based Edge.\n */\ngoog.labs.userAgent.browser.isEdgeChromium =\n goog.labs.userAgent.browser.matchEdgeChromium_;\n\n/**\n * @return {boolean} Whether the user's browser is Chromium based Opera.\n */\ngoog.labs.userAgent.browser.isOperaChromium =\n goog.labs.userAgent.browser.matchOperaChromium_;\n\n/**\n * @return {boolean} Whether the user's browser is Firefox.\n */\ngoog.labs.userAgent.browser.isFirefox =\n goog.labs.userAgent.browser.matchFirefox_;\n\n\n/**\n * @return {boolean} Whether the user's browser is Safari.\n */\ngoog.labs.userAgent.browser.isSafari = goog.labs.userAgent.browser.matchSafari_;\n\n\n/**\n * @return {boolean} Whether the user's browser is Coast (Opera's Webkit-based\n * iOS browser).\n */\ngoog.labs.userAgent.browser.isCoast = goog.labs.userAgent.browser.matchCoast_;\n\n\n/**\n * @return {boolean} Whether the user's browser is iOS Webview.\n */\ngoog.labs.userAgent.browser.isIosWebview =\n goog.labs.userAgent.browser.matchIosWebview_;\n\n\n/**\n * @return {boolean} Whether the user's browser is any Chromium based browser (\n * Chrome, Blink-based Opera (15+) and Edge Chromium).\n */\ngoog.labs.userAgent.browser.isChrome = goog.labs.userAgent.browser.matchChrome_;\n\n\n/**\n * @return {boolean} Whether the user's browser is the Android browser.\n */\ngoog.labs.userAgent.browser.isAndroidBrowser =\n goog.labs.userAgent.browser.matchAndroidBrowser_;\n\n\n/**\n * For more information, see:\n * http://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html\n * @return {boolean} Whether the user's browser is Silk.\n */\ngoog.labs.userAgent.browser.isSilk = function() {\n return goog.labs.userAgent.util.matchUserAgent('Silk');\n};\n\n\n/**\n * @return {string} The browser version or empty string if version cannot be\n * determined. Note that for Internet Explorer, this returns the version of\n * the browser, not the version of the rendering engine. (IE 8 in\n * compatibility mode will return 8.0 rather than 7.0. To determine the\n * rendering engine version, look at document.documentMode instead. See\n * http://msdn.microsoft.com/en-us/library/cc196988(v=vs.85).aspx for more\n * details.)\n */\ngoog.labs.userAgent.browser.getVersion = function() {\n var userAgentString = goog.labs.userAgent.util.getUserAgent();\n // Special case IE since IE's version is inside the parenthesis and\n // without the '/'.\n if (goog.labs.userAgent.browser.isIE()) {\n return goog.labs.userAgent.browser.getIEVersion_(userAgentString);\n }\n\n var versionTuples =\n goog.labs.userAgent.util.extractVersionTuples(userAgentString);\n\n // Construct a map for easy lookup.\n var versionMap = {};\n goog.array.forEach(versionTuples, function(tuple) {\n // Note that the tuple is of length three, but we only care about the\n // first two.\n var key = tuple[0];\n var value = tuple[1];\n versionMap[key] = value;\n });\n\n var versionMapHasKey = goog.partial(goog.object.containsKey, versionMap);\n\n // Gives the value with the first key it finds, otherwise empty string.\n function lookUpValueWithKeys(keys) {\n var key = goog.array.find(keys, versionMapHasKey);\n return versionMap[key] || '';\n }\n\n // Check Opera before Chrome since Opera 15+ has \"Chrome\" in the string.\n // See\n // http://my.opera.com/ODIN/blog/2013/07/15/opera-user-agent-strings-opera-15-and-beyond\n if (goog.labs.userAgent.browser.isOpera()) {\n // Opera 10 has Version/10.0 but Opera/9.8, so look for \"Version\" first.\n // Opera uses 'OPR' for more recent UAs.\n return lookUpValueWithKeys(['Version', 'Opera']);\n }\n\n // Check Edge before Chrome since it has Chrome in the string.\n if (goog.labs.userAgent.browser.isEdge()) {\n return lookUpValueWithKeys(['Edge']);\n }\n\n // Check Chromium Edge before Chrome since it has Chrome in the string.\n if (goog.labs.userAgent.browser.isEdgeChromium()) {\n return lookUpValueWithKeys(['Edg']);\n }\n\n if (goog.labs.userAgent.browser.isChrome()) {\n return lookUpValueWithKeys(['Chrome', 'CriOS']);\n }\n\n // Usually products browser versions are in the third tuple after \"Mozilla\"\n // and the engine.\n var tuple = versionTuples[2];\n return tuple && tuple[1] || '';\n};\n\n\n/**\n * @param {string|number} version The version to check.\n * @return {boolean} Whether the browser version is higher or the same as the\n * given version.\n */\ngoog.labs.userAgent.browser.isVersionOrHigher = function(version) {\n return goog.string.internal.compareVersions(\n goog.labs.userAgent.browser.getVersion(), version) >= 0;\n};\n\n\n/**\n * Determines IE version. More information:\n * http://msdn.microsoft.com/en-us/library/ie/bg182625(v=vs.85).aspx#uaString\n * http://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx\n * http://blogs.msdn.com/b/ie/archive/2010/03/23/introducing-ie9-s-user-agent-string.aspx\n * http://blogs.msdn.com/b/ie/archive/2009/01/09/the-internet-explorer-8-user-agent-string-updated-edition.aspx\n *\n * @param {string} userAgent the User-Agent.\n * @return {string}\n * @private\n */\ngoog.labs.userAgent.browser.getIEVersion_ = function(userAgent) {\n // IE11 may identify itself as MSIE 9.0 or MSIE 10.0 due to an IE 11 upgrade\n // bug. Example UA:\n // Mozilla/5.0 (MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; rv:11.0)\n // like Gecko.\n // See http://www.whatismybrowser.com/developers/unknown-user-agent-fragments.\n var rv = /rv: *([\\d\\.]*)/.exec(userAgent);\n if (rv && rv[1]) {\n return rv[1];\n }\n\n var version = '';\n var msie = /MSIE +([\\d\\.]+)/.exec(userAgent);\n if (msie && msie[1]) {\n // IE in compatibility mode usually identifies itself as MSIE 7.0; in this\n // case, use the Trident version to determine the version of IE. For more\n // details, see the links above.\n var tridentVersion = /Trident\\/(\\d.\\d)/.exec(userAgent);\n if (msie[1] == '7.0') {\n if (tridentVersion && tridentVersion[1]) {\n switch (tridentVersion[1]) {\n case '4.0':\n version = '8.0';\n break;\n case '5.0':\n version = '9.0';\n break;\n case '6.0':\n version = '10.0';\n break;\n case '7.0':\n version = '11.0';\n break;\n }\n } else {\n version = '7.0';\n }\n } else {\n version = msie[1];\n }\n }\n return version;\n};\n","~:compiled-at",1613924115769,"~:source-map-json","{\n\"version\":3,\n\"file\":\"goog.labs.useragent.browser.js\",\n\"lineCount\":122,\n\"mappings\":\"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\",\n\"sources\":[\"goog/labs/useragent/browser.js\"],\n\"sourcesContent\":[\"// Copyright 2013 The Closure Library Authors. All Rights Reserved.\\n//\\n// Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n// you may not use this file except in compliance with the License.\\n// You may obtain a copy of the License at\\n//\\n// http://www.apache.org/licenses/LICENSE-2.0\\n//\\n// Unless required by applicable law or agreed to in writing, software\\n// distributed under the License is distributed on an \\\"AS-IS\\\" BASIS,\\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n// See the License for the specific language governing permissions and\\n// limitations under the License.\\n\\n/**\\n * @fileoverview Closure user agent detection (Browser).\\n * @see <a href=\\\"http://www.useragentstring.com/\\\">User agent strings</a>\\n * For more information on rendering engine, platform, or device see the other\\n * sub-namespaces in goog.labs.userAgent, goog.labs.userAgent.platform,\\n * goog.labs.userAgent.device respectively.)\\n *\\n * @author martone@google.com (Andy Martone)\\n */\\n\\ngoog.provide('goog.labs.userAgent.browser');\\n\\ngoog.require('goog.array');\\ngoog.require('goog.labs.userAgent.util');\\ngoog.require('goog.object');\\ngoog.require('goog.string.internal');\\n\\n\\n// TODO(nnaze): Refactor to remove excessive exclusion logic in matching\\n// functions.\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Opera. Note: Chromium\\n * based Opera (Opera 15+) is detected as Chrome to avoid unnecessary\\n * special casing.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchOpera_ = function() {\\n return goog.labs.userAgent.util.matchUserAgent('Opera');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is IE.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchIE_ = function() {\\n return goog.labs.userAgent.util.matchUserAgent('Trident') ||\\n goog.labs.userAgent.util.matchUserAgent('MSIE');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Edge. This refers to EdgeHTML\\n * based Edge.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchEdgeHtml_ = function() {\\n return goog.labs.userAgent.util.matchUserAgent('Edge');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Chromium based Edge.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchEdgeChromium_ = function() {\\n return goog.labs.userAgent.util.matchUserAgent('Edg/');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Chromium based Opera.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchOperaChromium_ = function() {\\n return goog.labs.userAgent.util.matchUserAgent('OPR');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Firefox.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchFirefox_ = function() {\\n return goog.labs.userAgent.util.matchUserAgent('Firefox') ||\\n goog.labs.userAgent.util.matchUserAgent('FxiOS');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Safari.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchSafari_ = function() {\\n return goog.labs.userAgent.util.matchUserAgent('Safari') &&\\n !(goog.labs.userAgent.browser.matchChrome_() ||\\n goog.labs.userAgent.browser.matchCoast_() ||\\n goog.labs.userAgent.browser.matchOpera_() ||\\n goog.labs.userAgent.browser.matchEdgeHtml_() ||\\n goog.labs.userAgent.browser.matchEdgeChromium_() ||\\n goog.labs.userAgent.browser.matchOperaChromium_() ||\\n goog.labs.userAgent.browser.matchFirefox_() ||\\n goog.labs.userAgent.browser.isSilk() ||\\n goog.labs.userAgent.util.matchUserAgent('Android'));\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Coast (Opera's Webkit-based\\n * iOS browser).\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchCoast_ = function() {\\n return goog.labs.userAgent.util.matchUserAgent('Coast');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is iOS Webview.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchIosWebview_ = function() {\\n // iOS Webview does not show up as Chrome or Safari. Also check for Opera's\\n // WebKit-based iOS browser, Coast.\\n return (goog.labs.userAgent.util.matchUserAgent('iPad') ||\\n goog.labs.userAgent.util.matchUserAgent('iPhone')) &&\\n !goog.labs.userAgent.browser.matchSafari_() &&\\n !goog.labs.userAgent.browser.matchChrome_() &&\\n !goog.labs.userAgent.browser.matchCoast_() &&\\n !goog.labs.userAgent.browser.matchFirefox_() &&\\n goog.labs.userAgent.util.matchUserAgent('AppleWebKit');\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is any Chromium browser. This\\n * returns true for Chrome, Opera 15+, and Edge Chromium.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchChrome_ = function() {\\n return (goog.labs.userAgent.util.matchUserAgent('Chrome') ||\\n goog.labs.userAgent.util.matchUserAgent('CriOS')) &&\\n !goog.labs.userAgent.browser.matchEdgeHtml_();\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is the Android browser.\\n * @private\\n */\\ngoog.labs.userAgent.browser.matchAndroidBrowser_ = function() {\\n // Android can appear in the user agent string for Chrome on Android.\\n // This is not the Android standalone browser if it does.\\n return goog.labs.userAgent.util.matchUserAgent('Android') &&\\n !(goog.labs.userAgent.browser.isChrome() ||\\n goog.labs.userAgent.browser.isFirefox() ||\\n goog.labs.userAgent.browser.isOpera() ||\\n goog.labs.userAgent.browser.isSilk());\\n};\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Opera.\\n */\\ngoog.labs.userAgent.browser.isOpera = goog.labs.userAgent.browser.matchOpera_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is IE.\\n */\\ngoog.labs.userAgent.browser.isIE = goog.labs.userAgent.browser.matchIE_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is EdgeHTML based Edge.\\n */\\ngoog.labs.userAgent.browser.isEdge = goog.labs.userAgent.browser.matchEdgeHtml_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Chromium based Edge.\\n */\\ngoog.labs.userAgent.browser.isEdgeChromium =\\n goog.labs.userAgent.browser.matchEdgeChromium_;\\n\\n/**\\n * @return {boolean} Whether the user's browser is Chromium based Opera.\\n */\\ngoog.labs.userAgent.browser.isOperaChromium =\\n goog.labs.userAgent.browser.matchOperaChromium_;\\n\\n/**\\n * @return {boolean} Whether the user's browser is Firefox.\\n */\\ngoog.labs.userAgent.browser.isFirefox =\\n goog.labs.userAgent.browser.matchFirefox_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Safari.\\n */\\ngoog.labs.userAgent.browser.isSafari = goog.labs.userAgent.browser.matchSafari_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is Coast (Opera's Webkit-based\\n * iOS browser).\\n */\\ngoog.labs.userAgent.browser.isCoast = goog.labs.userAgent.browser.matchCoast_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is iOS Webview.\\n */\\ngoog.labs.userAgent.browser.isIosWebview =\\n goog.labs.userAgent.browser.matchIosWebview_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is any Chromium based browser (\\n * Chrome, Blink-based Opera (15+) and Edge Chromium).\\n */\\ngoog.labs.userAgent.browser.isChrome = goog.labs.userAgent.browser.matchChrome_;\\n\\n\\n/**\\n * @return {boolean} Whether the user's browser is the Android browser.\\n */\\ngoog.labs.userAgent.browser.isAndroidBrowser =\\n goog.labs.userAgent.browser.matchAndroidBrowser_;\\n\\n\\n/**\\n * For more information, see:\\n * http://docs.aws.amazon.com/silk/latest/developerguide/user-agent.html\\n * @return {boolean} Whether the user's browser is Silk.\\n */\\ngoog.labs.userAgent.browser.isSilk = function() {\\n return goog.labs.userAgent.util.matchUserAgent('Silk');\\n};\\n\\n\\n/**\\n * @return {string} The browser version or empty string if version cannot be\\n * determined. Note that for Internet Explorer, this returns the version of\\n * the browser, not the version of the rendering engine. (IE 8 in\\n * compatibility mode will return 8.0 rather than 7.0. To determine the\\n * rendering engine version, look at document.documentMode instead. See\\n * http://msdn.microsoft.com/en-us/library/cc196988(v=vs.85).aspx for more\\n * details.)\\n */\\ngoog.labs.userAgent.browser.getVersion = function() {\\n var userAgentString = goog.labs.userAgent.util.getUserAgent();\\n // Special case IE since IE's version is inside the parenthesis and\\n // without the '/'.\\n if (goog.labs.userAgent.browser.isIE()) {\\n return goog.labs.userAgent.browser.getIEVersion_(userAgentString);\\n }\\n\\n var versionTuples =\\n goog.labs.userAgent.util.extractVersionTuples(userAgentString);\\n\\n // Construct a map for easy lookup.\\n var versionMap = {};\\n goog.array.forEach(versionTuples, function(tuple) {\\n // Note that the tuple is of length three, but we only care about the\\n // first two.\\n var key = tuple[0];\\n var value = tuple[1];\\n versionMap[key] = value;\\n });\\n\\n var versionMapHasKey = goog.partial(goog.object.containsKey, versionMap);\\n\\n // Gives the value with the first key it finds, otherwise empty string.\\n function lookUpValueWithKeys(keys) {\\n var key = goog.array.find(keys, versionMapHasKey);\\n return versionMap[key] || '';\\n }\\n\\n // Check Opera before Chrome since Opera 15+ has \\\"Chrome\\\" in the string.\\n // See\\n // http://my.opera.com/ODIN/blog/2013/07/15/opera-user-agent-strings-opera-15-and-beyond\\n if (goog.labs.userAgent.browser.isOpera()) {\\n // Opera 10 has Version/10.0 but Opera/9.8, so look for \\\"Version\\\" first.\\n // Opera uses 'OPR' for more recent UAs.\\n return lookUpValueWithKeys(['Version', 'Opera']);\\n }\\n\\n // Check Edge before Chrome since it has Chrome in the string.\\n if (goog.labs.userAgent.browser.isEdge()) {\\n return lookUpValueWithKeys(['Edge']);\\n }\\n\\n // Check Chromium Edge before Chrome since it has Chrome in the string.\\n if (goog.labs.userAgent.browser.isEdgeChromium()) {\\n return lookUpValueWithKeys(['Edg']);\\n }\\n\\n if (goog.labs.userAgent.browser.isChrome()) {\\n return lookUpValueWithKeys(['Chrome', 'CriOS']);\\n }\\n\\n // Usually products browser versions are in the third tuple after \\\"Mozilla\\\"\\n // and the engine.\\n var tuple = versionTuples[2];\\n return tuple && tuple[1] || '';\\n};\\n\\n\\n/**\\n * @param {string|number} version The version to check.\\n * @return {boolean} Whether the browser version is higher or the same as the\\n * given version.\\n */\\ngoog.labs.userAgent.browser.isVersionOrHigher = function(version) {\\n return goog.string.internal.compareVersions(\\n goog.labs.userAgent.browser.getVersion(), version) >= 0;\\n};\\n\\n\\n/**\\n * Determines IE version. More information:\\n * http://msdn.microsoft.com/en-us/library/ie/bg182625(v=vs.85).aspx#uaString\\n * http://msdn.microsoft.com/en-us/library/hh869301(v=vs.85).aspx\\n * http://blogs.msdn.com/b/ie/archive/2010/03/23/introducing-ie9-s-user-agent-string.aspx\\n * http://blogs.msdn.com/b/ie/archive/2009/01/09/the-internet-explorer-8-user-agent-string-updated-edition.aspx\\n *\\n * @param {string} userAgent the User-Agent.\\n * @return {string}\\n * @private\\n */\\ngoog.labs.userAgent.browser.getIEVersion_ = function(userAgent) {\\n // IE11 may identify itself as MSIE 9.0 or MSIE 10.0 due to an IE 11 upgrade\\n // bug. Example UA:\\n // Mozilla/5.0 (MSIE 9.0; Windows NT 6.1; WOW64; Trident/7.0; rv:11.0)\\n // like Gecko.\\n // See http://www.whatismybrowser.com/developers/unknown-user-agent-fragments.\\n var rv = /rv: *([\\\\d\\\\.]*)/.exec(userAgent);\\n if (rv && rv[1]) {\\n return rv[1];\\n }\\n\\n var version = '';\\n var msie = /MSIE +([\\\\d\\\\.]+)/.exec(userAgent);\\n if (msie && msie[1]) {\\n // IE in compatibility mode usually identifies itself as MSIE 7.0; in this\\n // case, use the Trident version to determine the version of IE. For more\\n // details, see the links above.\\n var tridentVersion = /Trident\\\\/(\\\\d.\\\\d)/.exec(userAgent);\\n if (msie[1] == '7.0') {\\n if (tridentVersion && tridentVersion[1]) {\\n switch (tridentVersion[1]) {\\n case '4.0':\\n version = '8.0';\\n break;\\n case '5.0':\\n version = '9.0';\\n break;\\n case '6.0':\\n version = '10.0';\\n break;\\n case '7.0':\\n version = '11.0';\\n break;\\n }\\n } else {\\n version = '7.0';\\n }\\n } else {\\n version = msie[1];\\n }\\n }\\n return version;\\n};\\n\"],\n\"names\":[\"goog\",\"provide\",\"require\",\"labs\",\"userAgent\",\"browser\",\"matchOpera_\",\"goog.labs.userAgent.browser.matchOpera_\",\"util\",\"matchUserAgent\",\"matchIE_\",\"goog.labs.userAgent.browser.matchIE_\",\"matchEdgeHtml_\",\"goog.labs.userAgent.browser.matchEdgeHtml_\",\"matchEdgeChromium_\",\"goog.labs.userAgent.browser.matchEdgeChromium_\",\"matchOperaChromium_\",\"goog.labs.userAgent.browser.matchOperaChromium_\",\"matchFirefox_\",\"goog.labs.userAgent.browser.matchFirefox_\",\"matchSafari_\",\"goog.labs.userAgent.browser.matchSafari_\",\"matchChrome_\",\"matchCoast_\",\"isSilk\",\"goog.labs.userAgent.browser.matchCoast_\",\"matchIosWebview_\",\"goog.labs.userAgent.browser.matchIosWebview_\",\"goog.labs.userAgent.browser.matchChrome_\",\"matchAndroidBrowser_\",\"goog.labs.userAgent.browser.matchAndroidBrowser_\",\"isChrome\",\"isFirefox\",\"isOpera\",\"isIE\",\"isEdge\",\"isEdgeChromium\",\"isOperaChromium\",\"isSafari\",\"isCoast\",\"isIosWebview\",\"isAndroidBrowser\",\"goog.labs.userAgent.browser.isSilk\",\"getVersion\",\"goog.labs.userAgent.browser.getVersion\",\"userAgentString\",\"getUserAgent\",\"getIEVersion_\",\"versionTuples\",\"extractVersionTuples\",\"versionMap\",\"array\",\"forEach\",\"tuple\",\"key\",\"value\",\"versionMapHasKey\",\"partial\",\"object\",\"containsKey\",\"lookUpValueWithKeys\",\"keys\",\"find\",\"isVersionOrHigher\",\"goog.labs.userAgent.browser.isVersionOrHigher\",\"version\",\"string\",\"internal\",\"compareVersions\",\"goog.labs.userAgent.browser.getIEVersion_\",\"rv\",\"exec\",\"msie\",\"tridentVersion\"]\n}\n"]