{"version":3,"sources":["webpack://device/webpack/universalModuleDefinition","webpack://device/webpack/bootstrap","webpack://device/./src/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","previousDevice","device","changeOrientationList","documentElement","document","userAgent","navigator","toLowerCase","television","includes","haystack","needle","indexOf","find","hasClass","className","match","RegExp","addClass","currentClassNames","replace","removeClass","handleOrientation","landscape","walkOnChangeOrientationList","setOrientationCache","newOrientation","index","length","macos","ios","iphone","ipod","ipad","windows","iPadOS13Up","platform","maxTouchPoints","android","androidPhone","androidTablet","blackberry","blackberryPhone","blackberryTablet","windowsPhone","windowsTablet","fxos","fxosPhone","fxosTablet","meego","cordova","location","protocol","nodeWebkit","_typeof","process","mobile","tablet","desktop","portrait","screen","orientation","type","Math","abs","innerHeight","innerWidth","noConflict","this","onChangeOrientation","cb","push","orientationEvent","findMatch","arr","addEventListener","attachEvent","os"],"mappings":";;;;CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,eAAAC,IACAD,UAAAH,GACA,iBAAAC,QACAA,QAAA,OAAAD,IAEAD,EAAA,OAAAC,IARA,CASCK,OAAA,WACD,mBCTA,IAAAC,KAGA,SAAAC,EAAAC,GAGA,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAP,QAGA,IAAAC,EAAAI,EAAAE,IACAC,EAAAD,EACAE,GAAA,EACAT,YAUA,OANAU,EAAAH,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAQ,GAAA,EAGAR,EAAAD,QA0DA,OArDAM,EAAAM,EAAAF,EAGAJ,EAAAO,EAAAR,EAGAC,EAAAQ,EAAA,SAAAd,EAAAe,EAAAC,GACAV,EAAAW,EAAAjB,EAAAe,IACAG,OAAAC,eAAAnB,EAAAe,GAA0CK,YAAA,EAAAC,IAAAL,KAK1CV,EAAAgB,EAAA,SAAAtB,GACA,oBAAAuB,eAAAC,aACAN,OAAAC,eAAAnB,EAAAuB,OAAAC,aAAwDC,MAAA,WAExDP,OAAAC,eAAAnB,EAAA,cAAiDyB,OAAA,KAQjDnB,EAAAoB,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAAnB,EAAAmB,IACA,EAAAE,EAAA,OAAAF,EACA,KAAAE,GAAA,iBAAAF,QAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAX,OAAAY,OAAA,MAGA,GAFAxB,EAAAgB,EAAAO,GACAX,OAAAC,eAAAU,EAAA,WAAyCT,YAAA,EAAAK,UACzC,EAAAE,GAAA,iBAAAF,EAAA,QAAAM,KAAAN,EAAAnB,EAAAQ,EAAAe,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBC,KAAA,KAAAD,IACrI,OAAAF,GAIAvB,EAAA2B,EAAA,SAAAhC,GACA,IAAAe,EAAAf,KAAA2B,WACA,WAA2B,OAAA3B,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAK,EAAAQ,EAAAE,EAAA,IAAAA,GACAA,GAIAV,EAAAW,EAAA,SAAAiB,EAAAC,GAAsD,OAAAjB,OAAAkB,UAAAC,eAAA1B,KAAAuB,EAAAC,IAGtD7B,EAAAgC,EAAA,GAIAhC,IAAAiC,EAAA,yRCjFMC,EAAiBpC,OAAOqC,OAExBA,KAEAC,KAGNtC,OAAOqC,OAASA,EAGhB,IAAME,EAAkBvC,OAAOwC,SAASD,gBAIlCE,EAAYzC,OAAO0C,UAAUD,UAAUE,cAGvCC,GACJ,WACA,QACA,UACA,cACA,UACA,QACA,UACA,QACA,OACA,OACA,UACA,SACA,QACA,WA2KF,SAASC,EAASC,EAAUC,GAC1B,OAAqC,IAA9BD,EAASE,QAAQD,GAI1B,SAASE,EAAKF,GACZ,OAAOF,EAASJ,EAAWM,GAI7B,SAASG,EAASC,GAChB,OAAOZ,EAAgBY,UAAUC,MAAM,IAAIC,OAAOF,EAAW,MAI/D,SAASG,EAASH,GAChB,IAAII,EAAoB,KACnBL,EAASC,KACZI,EAAoBhB,EAAgBY,UAAUK,QAAQ,aAAc,IACpEjB,EAAgBY,UAAeI,EAA/B,IAAoDJ,GAKxD,SAASM,EAAYN,GACfD,EAASC,KACXZ,EAAgBY,UAAYZ,EAAgBY,UAAUK,QAA1B,IACtBL,EACJ,KAgEN,SAASO,IACHrB,EAAOsB,aACTF,EAAY,YACZH,EAAS,aACTM,EAA4B,eAE5BH,EAAY,aACZH,EAAS,YACTM,EAA4B,aAE9BC,IAGF,SAASD,EAA4BE,GACnC,IAAK,IAAIC,EAAQ,EAAGA,EAAQzB,EAAsB0B,OAAQD,IACxDzB,EAAsByB,GAAOD,GAhRjCzB,EAAO4B,MAAQ,WACb,OAAOhB,EAAK,QAGdZ,EAAO6B,IAAM,WACX,OAAO7B,EAAO8B,UAAY9B,EAAO+B,QAAU/B,EAAOgC,QAGpDhC,EAAO8B,OAAS,WACd,OAAQ9B,EAAOiC,WAAarB,EAAK,WAGnCZ,EAAO+B,KAAO,WACZ,OAAOnB,EAAK,SAGdZ,EAAOgC,KAAO,WACZ,IAAME,EACmB,aAAvB7B,UAAU8B,UAA2B9B,UAAU+B,eAAiB,EAClE,OAAOxB,EAAK,SAAWsB,GAGzBlC,EAAOqC,QAAU,WACf,OAAQrC,EAAOiC,WAAarB,EAAK,YAGnCZ,EAAOsC,aAAe,WACpB,OAAOtC,EAAOqC,WAAazB,EAAK,WAGlCZ,EAAOuC,cAAgB,WACrB,OAAOvC,EAAOqC,YAAczB,EAAK,WAGnCZ,EAAOwC,WAAa,WAClB,OAAO5B,EAAK,eAAiBA,EAAK,SAGpCZ,EAAOyC,gBAAkB,WACvB,OAAOzC,EAAOwC,eAAiB5B,EAAK,WAGtCZ,EAAO0C,iBAAmB,WACxB,OAAO1C,EAAOwC,cAAgB5B,EAAK,WAGrCZ,EAAOiC,QAAU,WACf,OAAOrB,EAAK,YAGdZ,EAAO2C,aAAe,WACpB,OAAO3C,EAAOiC,WAAarB,EAAK,UAGlCZ,EAAO4C,cAAgB,WACrB,OAAO5C,EAAOiC,WAAcrB,EAAK,WAAaZ,EAAO2C,gBAGvD3C,EAAO6C,KAAO,WACZ,OAAQjC,EAAK,YAAcA,EAAK,aAAeA,EAAK,SAGtDZ,EAAO8C,UAAY,WACjB,OAAO9C,EAAO6C,QAAUjC,EAAK,WAG/BZ,EAAO+C,WAAa,WAClB,OAAO/C,EAAO6C,QAAUjC,EAAK,WAG/BZ,EAAOgD,MAAQ,WACb,OAAOpC,EAAK,UAGdZ,EAAOiD,QAAU,WACf,OAAOtF,OAAOsF,SAAiC,UAAtBC,SAASC,UAGpCnD,EAAOoD,WAAa,WAClB,MAAiC,WAA1BC,EAAO1F,OAAO2F,UAGvBtD,EAAOuD,OAAS,WACd,OACEvD,EAAOsC,gBACPtC,EAAO8B,UACP9B,EAAO+B,QACP/B,EAAO2C,gBACP3C,EAAOyC,mBACPzC,EAAO8C,aACP9C,EAAOgD,SAIXhD,EAAOwD,OAAS,WACd,OACExD,EAAOgC,QACPhC,EAAOuC,iBACPvC,EAAO0C,oBACP1C,EAAO4C,iBACP5C,EAAO+C,cAIX/C,EAAOyD,QAAU,WACf,OAAQzD,EAAOwD,WAAaxD,EAAOuD,UAGrCvD,EAAOO,WAAa,WAElB,IADA,IAAIxC,EAAI,EACDA,EAAIwC,EAAWoB,QAAQ,CAC5B,GAAIf,EAAKL,EAAWxC,IAClB,OAAO,EAETA,IAEF,OAAO,GAGTiC,EAAO0D,SAAW,WAChB,OACEC,OAAOC,aACPnF,OAAOkB,UAAUC,eAAe1B,KAAKP,OAAQ,uBAEtC6C,EAASmD,OAAOC,YAAYC,KAAM,YAGzC7D,EAAO6B,OACPpD,OAAOkB,UAAUC,eAAe1B,KAAKP,OAAQ,eAEL,KAAjCmG,KAAKC,IAAIpG,OAAOiG,aAElBjG,OAAOqG,YAAcrG,OAAOsG,WAAa,GAGlDjE,EAAOsB,UAAY,WACjB,OACEqC,OAAOC,aACPnF,OAAOkB,UAAUC,eAAe1B,KAAKP,OAAQ,uBAEtC6C,EAASmD,OAAOC,YAAYC,KAAM,aAGzC7D,EAAO6B,OACPpD,OAAOkB,UAAUC,eAAe1B,KAAKP,OAAQ,eAEL,KAAjCmG,KAAKC,IAAIpG,OAAOiG,aAElBjG,OAAOqG,YAAcrG,OAAOsG,WAAa,GAQlDjE,EAAOkE,WAAa,WAElB,OADAvG,OAAOqC,OAASD,EACToE,MA6CLnE,EAAO6B,MACL7B,EAAOgC,OACTf,EAAS,mBACAjB,EAAO8B,SAChBb,EAAS,qBACAjB,EAAO+B,QAChBd,EAAS,mBAEFjB,EAAO4B,QAChBX,EAAS,iBACAjB,EAAOqC,UACZrC,EAAOuC,gBACTtB,EAAS,kBAETA,EAAS,kBAEFjB,EAAOwC,aACZxC,EAAO0C,mBACTzB,EAAS,qBAETA,EAAS,qBAEFjB,EAAOiC,UACZjC,EAAO4C,gBACT3B,EAAS,kBACAjB,EAAO2C,eAChB1B,EAAS,kBAETA,EAAS,mBAEFjB,EAAO6C,OACZ7C,EAAO+C,aACT9B,EAAS,eAETA,EAAS,eAEFjB,EAAOgD,QAChB/B,EAAS,gBACAjB,EAAOoD,aAChBnC,EAAS,eACAjB,EAAOO,aAChBU,EAAS,cACAjB,EAAOyD,WAChBxC,EAAS,WAGPjB,EAAOiD,WACThC,EAAS,WA0BXjB,EAAOoE,oBAAsB,SAASC,GACnB,mBAANA,GACTpE,EAAsBqE,KAAKD,IAM/B,IAAIE,EAAmB,SAmBvB,SAASC,EAAUC,GACjB,IAAK,IAAI1G,EAAI,EAAGA,EAAI0G,EAAI9C,OAAQ5D,IAC9B,GAAIiC,EAAOyE,EAAI1G,MACb,OAAO0G,EAAI1G,GAGf,MAAO,UAkBT,SAASyD,IACPxB,EAAO4D,YAAcY,GAAW,WAAY,cA3C1C/F,OAAOkB,UAAUC,eAAe1B,KAAKP,OAAQ,yBAC/C4G,EAAmB,qBAIjB5G,OAAO+G,iBACT/G,OAAO+G,iBAAiBH,EAAkBlD,GAAmB,GACpD1D,OAAOgH,YAChBhH,OAAOgH,YAAYJ,EAAkBlD,GAErC1D,OAAO4G,GAAoBlD,EAG7BA,IAcArB,EAAO6D,KAAOW,GAAW,SAAU,SAAU,YAC7CxE,EAAO4E,GAAKJ,GACV,MACA,SACA,OACA,OACA,UACA,aACA,QACA,UACA,OACA,QACA,eAOFhD,IAEexB","file":"current-device.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"device\"] = factory();\n\telse\n\t\troot[\"device\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","// Save the previous value of the device variable.\nconst previousDevice = window.device\n\nconst device = {}\n\nconst changeOrientationList = []\n\n// Add device as a global object.\nwindow.device = device\n\n// The element.\nconst documentElement = window.document.documentElement\n\n// The client user agent string.\n// Lowercase, so we can use the more efficient indexOf(), instead of Regex\nconst userAgent = window.navigator.userAgent.toLowerCase()\n\n// Detectable television devices.\nconst television = [\n 'googletv',\n 'viera',\n 'smarttv',\n 'internet.tv',\n 'netcast',\n 'nettv',\n 'appletv',\n 'boxee',\n 'kylo',\n 'roku',\n 'dlnadoc',\n 'pov_tv',\n 'hbbtv',\n 'ce-html'\n]\n\n// Main functions\n// --------------\n\ndevice.macos = function() {\n return find('mac')\n}\n\ndevice.ios = function() {\n return device.iphone() || device.ipod() || device.ipad()\n}\n\ndevice.iphone = function() {\n return !device.windows() && find('iphone')\n}\n\ndevice.ipod = function() {\n return find('ipod')\n}\n\ndevice.ipad = function() {\n const iPadOS13Up =\n navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1\n return find('ipad') || iPadOS13Up\n};\n\ndevice.android = function() {\n return !device.windows() && find('android')\n}\n\ndevice.androidPhone = function() {\n return device.android() && find('mobile')\n}\n\ndevice.androidTablet = function() {\n return device.android() && !find('mobile')\n}\n\ndevice.blackberry = function() {\n return find('blackberry') || find('bb10')\n}\n\ndevice.blackberryPhone = function() {\n return device.blackberry() && !find('tablet')\n}\n\ndevice.blackberryTablet = function() {\n return device.blackberry() && find('tablet')\n}\n\ndevice.windows = function() {\n return find('windows')\n}\n\ndevice.windowsPhone = function() {\n return device.windows() && find('phone')\n}\n\ndevice.windowsTablet = function() {\n return device.windows() && (find('touch') && !device.windowsPhone())\n}\n\ndevice.fxos = function() {\n return (find('(mobile') || find('(tablet')) && find(' rv:')\n}\n\ndevice.fxosPhone = function() {\n return device.fxos() && find('mobile')\n}\n\ndevice.fxosTablet = function() {\n return device.fxos() && find('tablet')\n}\n\ndevice.meego = function() {\n return find('meego')\n}\n\ndevice.cordova = function() {\n return window.cordova && location.protocol === 'file:'\n}\n\ndevice.nodeWebkit = function() {\n return typeof window.process === 'object'\n}\n\ndevice.mobile = function() {\n return (\n device.androidPhone() ||\n device.iphone() ||\n device.ipod() ||\n device.windowsPhone() ||\n device.blackberryPhone() ||\n device.fxosPhone() ||\n device.meego()\n )\n}\n\ndevice.tablet = function() {\n return (\n device.ipad() ||\n device.androidTablet() ||\n device.blackberryTablet() ||\n device.windowsTablet() ||\n device.fxosTablet()\n )\n}\n\ndevice.desktop = function() {\n return !device.tablet() && !device.mobile()\n}\n\ndevice.television = function() {\n let i = 0\n while (i < television.length) {\n if (find(television[i])) {\n return true\n }\n i++\n }\n return false\n}\n\ndevice.portrait = function() {\n if (\n screen.orientation &&\n Object.prototype.hasOwnProperty.call(window, 'onorientationchange')\n ) {\n return includes(screen.orientation.type, 'portrait')\n }\n if (\n device.ios() &&\n Object.prototype.hasOwnProperty.call(window, 'orientation')\n ) {\n return Math.abs(window.orientation) !== 90\n }\n return window.innerHeight / window.innerWidth > 1\n}\n\ndevice.landscape = function() {\n if (\n screen.orientation &&\n Object.prototype.hasOwnProperty.call(window, 'onorientationchange')\n ) {\n return includes(screen.orientation.type, 'landscape')\n }\n if (\n device.ios() &&\n Object.prototype.hasOwnProperty.call(window, 'orientation')\n ) {\n return Math.abs(window.orientation) === 90\n }\n return window.innerHeight / window.innerWidth < 1\n}\n\n// Public Utility Functions\n// ------------------------\n\n// Run device.js in noConflict mode,\n// returning the device variable to its previous owner.\ndevice.noConflict = function() {\n window.device = previousDevice\n return this\n}\n\n// Private Utility Functions\n// -------------------------\n\n// Check if element exists\nfunction includes(haystack, needle) {\n return haystack.indexOf(needle) !== -1\n}\n\n// Simple UA string search\nfunction find(needle) {\n return includes(userAgent, needle)\n}\n\n// Check if documentElement already has a given class.\nfunction hasClass(className) {\n return documentElement.className.match(new RegExp(className, 'i'))\n}\n\n// Add one or more CSS classes to the element.\nfunction addClass(className) {\n let currentClassNames = null\n if (!hasClass(className)) {\n currentClassNames = documentElement.className.replace(/^\\s+|\\s+$/g, '')\n documentElement.className = `${currentClassNames} ${className}`\n }\n}\n\n// Remove single CSS class from the element.\nfunction removeClass(className) {\n if (hasClass(className)) {\n documentElement.className = documentElement.className.replace(\n ` ${className}`,\n ''\n )\n }\n}\n\n// HTML Element Handling\n// ---------------------\n\n// Insert the appropriate CSS class based on the _user_agent.\n\nif (device.ios()) {\n if (device.ipad()) {\n addClass('ios ipad tablet')\n } else if (device.iphone()) {\n addClass('ios iphone mobile')\n } else if (device.ipod()) {\n addClass('ios ipod mobile')\n }\n} else if (device.macos()) {\n addClass('macos desktop')\n} else if (device.android()) {\n if (device.androidTablet()) {\n addClass('android tablet')\n } else {\n addClass('android mobile')\n }\n} else if (device.blackberry()) {\n if (device.blackberryTablet()) {\n addClass('blackberry tablet')\n } else {\n addClass('blackberry mobile')\n }\n} else if (device.windows()) {\n if (device.windowsTablet()) {\n addClass('windows tablet')\n } else if (device.windowsPhone()) {\n addClass('windows mobile')\n } else {\n addClass('windows desktop')\n }\n} else if (device.fxos()) {\n if (device.fxosTablet()) {\n addClass('fxos tablet')\n } else {\n addClass('fxos mobile')\n }\n} else if (device.meego()) {\n addClass('meego mobile')\n} else if (device.nodeWebkit()) {\n addClass('node-webkit')\n} else if (device.television()) {\n addClass('television')\n} else if (device.desktop()) {\n addClass('desktop')\n}\n\nif (device.cordova()) {\n addClass('cordova')\n}\n\n// Orientation Handling\n// --------------------\n\n// Handle device orientation changes.\nfunction handleOrientation() {\n if (device.landscape()) {\n removeClass('portrait')\n addClass('landscape')\n walkOnChangeOrientationList('landscape')\n } else {\n removeClass('landscape')\n addClass('portrait')\n walkOnChangeOrientationList('portrait')\n }\n setOrientationCache()\n}\n\nfunction walkOnChangeOrientationList(newOrientation) {\n for (let index = 0; index < changeOrientationList.length; index++) {\n changeOrientationList[index](newOrientation)\n }\n}\n\ndevice.onChangeOrientation = function(cb) {\n if (typeof cb == 'function') {\n changeOrientationList.push(cb)\n }\n}\n\n// Detect whether device supports orientationchange event,\n// otherwise fall back to the resize event.\nlet orientationEvent = 'resize'\nif (Object.prototype.hasOwnProperty.call(window, 'onorientationchange')) {\n orientationEvent = 'orientationchange'\n}\n\n// Listen for changes in orientation.\nif (window.addEventListener) {\n window.addEventListener(orientationEvent, handleOrientation, false)\n} else if (window.attachEvent) {\n window.attachEvent(orientationEvent, handleOrientation)\n} else {\n window[orientationEvent] = handleOrientation\n}\n\nhandleOrientation()\n\n// Public functions to get the current value of type, os, or orientation\n// ---------------------------------------------------------------------\n\nfunction findMatch(arr) {\n for (let i = 0; i < arr.length; i++) {\n if (device[arr[i]]()) {\n return arr[i]\n }\n }\n return 'unknown'\n}\n\ndevice.type = findMatch(['mobile', 'tablet', 'desktop'])\ndevice.os = findMatch([\n 'ios',\n 'iphone',\n 'ipad',\n 'ipod',\n 'android',\n 'blackberry',\n 'macos',\n 'windows',\n 'fxos',\n 'meego',\n 'television'\n])\n\nfunction setOrientationCache() {\n device.orientation = findMatch(['portrait', 'landscape'])\n}\n\nsetOrientationCache()\n\nexport default device\n"],"sourceRoot":""}