{"dependencies":[{"name":"bowser","loc":{"line":8,"column":22}}],"generated":{"js":"'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = getBrowserInformation;\n\nvar _bowser = require('bowser');\n\nvar _bowser2 = _interopRequireDefault(_bowser);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar prefixByBrowser = {\n  chrome: 'Webkit',\n  safari: 'Webkit',\n  ios: 'Webkit',\n  android: 'Webkit',\n  phantom: 'Webkit',\n  opera: 'Webkit',\n  webos: 'Webkit',\n  blackberry: 'Webkit',\n  bada: 'Webkit',\n  tizen: 'Webkit',\n  chromium: 'Webkit',\n  vivaldi: 'Webkit',\n  firefox: 'Moz',\n  seamoney: 'Moz',\n  sailfish: 'Moz',\n  msie: 'ms',\n  msedge: 'ms'\n};\n\n\nvar browserByCanIuseAlias = {\n  chrome: 'chrome',\n  chromium: 'chrome',\n  safari: 'safari',\n  firfox: 'firefox',\n  msedge: 'edge',\n  opera: 'opera',\n  vivaldi: 'opera',\n  msie: 'ie'\n};\n\nfunction getBrowserName(browserInfo) {\n  if (browserInfo.firefox) {\n    return 'firefox';\n  }\n\n  if (browserInfo.mobile || browserInfo.tablet) {\n    if (browserInfo.ios) {\n      return 'ios_saf';\n    } else if (browserInfo.android) {\n      return 'android';\n    } else if (browserInfo.opera) {\n      return 'op_mini';\n    }\n  }\n\n  for (var browser in browserByCanIuseAlias) {\n    if (browserInfo.hasOwnProperty(browser)) {\n      return browserByCanIuseAlias[browser];\n    }\n  }\n}\n\n/**\n * Uses bowser to get default browser browserInformation such as version and name\n * Evaluates bowser browserInfo and adds vendorPrefix browserInformation\n * @param {string} userAgent - userAgent that gets evaluated\n */\nfunction getBrowserInformation(userAgent) {\n  var browserInfo = _bowser2.default._detect(userAgent);\n\n  if (browserInfo.yandexbrowser) {\n    browserInfo = _bowser2.default._detect(userAgent.replace(/YaBrowser\\/[0-9.]*/, ''));\n  }\n\n  for (var browser in prefixByBrowser) {\n    if (browserInfo.hasOwnProperty(browser)) {\n      var prefix = prefixByBrowser[browser];\n\n      browserInfo.jsPrefix = prefix;\n      browserInfo.cssPrefix = '-' + prefix.toLowerCase() + '-';\n      break;\n    }\n  }\n\n  browserInfo.browserName = getBrowserName(browserInfo);\n\n  // For cordova IOS 8 the version is missing, set truncated osversion to prevent NaN\n  if (browserInfo.version) {\n    browserInfo.browserVersion = parseFloat(browserInfo.version);\n  } else {\n    browserInfo.browserVersion = parseInt(parseFloat(browserInfo.osversion), 10);\n  }\n\n  browserInfo.osVersion = parseFloat(browserInfo.osversion);\n\n  // iOS forces all browsers to use Safari under the hood\n  // as the Safari version seems to match the iOS version\n  // we just explicitely use the osversion instead\n  // https://github.com/rofrischmann/inline-style-prefixer/issues/72\n  if (browserInfo.browserName === 'ios_saf' && browserInfo.browserVersion > browserInfo.osVersion) {\n    browserInfo.browserVersion = browserInfo.osVersion;\n  }\n\n  // seperate native android chrome\n  // https://github.com/rofrischmann/inline-style-prefixer/issues/45\n  if (browserInfo.browserName === 'android' && browserInfo.chrome && browserInfo.browserVersion > 37) {\n    browserInfo.browserName = 'and_chr';\n  }\n\n  // For android < 4.4 we want to check the osversion\n  // not the chrome version, see issue #26\n  // https://github.com/rofrischmann/inline-style-prefixer/issues/26\n  if (browserInfo.browserName === 'android' && browserInfo.osVersion < 5) {\n    browserInfo.browserVersion = browserInfo.osVersion;\n  }\n\n  // Samsung browser are basically build on Chrome > 44\n  // https://github.com/rofrischmann/inline-style-prefixer/issues/102\n  if (browserInfo.browserName === 'android' && browserInfo.samsungBrowser) {\n    browserInfo.browserName = 'and_chr';\n    browserInfo.browserVersion = 44;\n  }\n\n  return browserInfo;\n}\nmodule.exports = exports['default'];"},"hash":"3197243c1edb89d6d4356a70c2936e87"}