1/*! device.js 0.2.0 */ 2(function () { 3 "use strict"; 4 var a, b, c, d, e, f, g, h, i, j; 5 b = window.device, a = {}, window.device = a, d = window.document.documentElement, j = window.navigator.userAgent.toLowerCase(), a.ios = function () { 6 return a.iphone() || a.ipod() || a.ipad() 7 }, a.iphone = function () { 8 return e("iphone") 9 }, a.ipod = function () { 10 return e("ipod") 11 }, a.ipad = function () { 12 return e("ipad") 13 }, a.android = function () { 14 return e("android") 15 }, a.androidPhone = function () { 16 return a.android() && e("mobile") 17 }, a.androidTablet = function () { 18 return a.android() && !e("mobile") 19 }, a.blackberry = function () { 20 return e("blackberry") || e("bb10") || e("rim") 21 }, a.blackberryPhone = function () { 22 return a.blackberry() && !e("tablet") 23 }, a.blackberryTablet = function () { 24 return a.blackberry() && e("tablet") 25 }, a.windows = function () { 26 return e("windows") 27 }, a.windowsPhone = function () { 28 return a.windows() && e("phone") 29 }, a.windowsTablet = function () { 30 return a.windows() && e("touch") && !a.windowsPhone() 31 }, a.fxos = function () { 32 return (e("(mobile;") || e("(tablet;")) && e("; rv:") 33 }, a.fxosPhone = function () { 34 return a.fxos() && e("mobile") 35 }, a.fxosTablet = function () { 36 return a.fxos() && e("tablet") 37 }, a.meego = function () { 38 return e("meego") 39 }, a.cordova = function () { 40 return window.cordova && "file:" === location.protocol 41 }, a.nodeWebkit = function () { 42 return "object" == typeof window.process 43 }, a.mobile = function () { 44 return a.androidPhone() || a.iphone() || a.ipod() || a.windowsPhone() || a.blackberryPhone() || a.fxosPhone() || a.meego() 45 }, a.tablet = function () { 46 return a.ipad() || a.androidTablet() || a.blackberryTablet() || a.windowsTablet() || a.fxosTablet() 47 }, a.desktop = function () { 48 return !a.tablet() && !a.mobile() 49 }, a.portrait = function () { 50 return window.innerHeight / window.innerWidth > 1 51 }, a.landscape = function () { 52 return window.innerHeight / window.innerWidth < 1 53 }, a.noConflict = function () { 54 return window.device = b, this 55 }, e = function (a) { 56 return -1 !== j.indexOf(a) 57 }, g = function (a) { 58 var b; 59 return b = new RegExp(a, "i"), d.className.match(b) 60 }, c = function (a) { 61 g(a) || (d.className += " " + a) 62 }, i = function (a) { 63 g(a) && (d.className = d.className.replace(" " + a, "")) 64 }, a.ios() ? a.ipad() ? c("ios ipad tablet") : a.iphone() ? c("ios iphone mobile") : a.ipod() && c("ios ipod mobile") : c(a.android() ? a.androidTablet() ? "android tablet" : "android mobile" : a.blackberry() ? a.blackberryTablet() ? "blackberry tablet" : "blackberry mobile" : a.windows() ? a.windowsTablet() ? "windows tablet" : a.windowsPhone() ? "windows mobile" : "desktop" : a.fxos() ? a.fxosTablet() ? "fxos tablet" : "fxos mobile" : a.meego() ? "meego mobile" : a.nodeWebkit() ? "node-webkit" : "desktop"), a.cordova() && c("cordova"), f = function () { 65 a.landscape() ? (i("portrait"), c("landscape")) : (i("landscape"), c("portrait")) 66 }, h = window.hasOwnProperty("onorientationchange") ? "orientationchange" : "resize", window.addEventListener ? window.addEventListener(h, f, !1) : window.attachEvent ? window.attachEvent(h, f) : window[h] = f, f(), "function" == typeof define && "object" == typeof define.amd && define.amd ? define(function () { 67 return a 68 }) : "undefined" != typeof module && module.exports ? module.exports = a : window.device = a 69}).call(this);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.