ng-device-detector
Advanced tools
Comparing version 1.1.2 to 1.1.3
@@ -89,6 +89,6 @@ (function (angular) { | ||
var BROWSERS_RE = { | ||
CHROME: {or: [/\bChrome\b/, /\bCriOS\b/]}, | ||
CHROME: {and:[{or: [/\bChrome\b/, /\bCriOS\b/]},{not:/\bOPR\b/}]}, | ||
FIREFOX: /\bFirefox\b/, | ||
SAFARI: /^((?!CriOS).)*\Safari\b.*$/, | ||
OPERA: /Opera\b/, | ||
SAFARI: {and:[/^((?!CriOS).)*\Safari\b.*$/,{not:/\bOPR\b/}]}, | ||
OPERA: {or:[/Opera\b/,/\bOPR\b/]}, | ||
IE: {or: [/\bMSIE\b/, /\bTrident\b/]}, | ||
@@ -131,3 +131,3 @@ PS4: /\bMozilla\/5.0 \(PlayStation 4\b/, | ||
SAFARI:/\bVersion\/([\d\.]+)\b/, | ||
OPERA:/\bVersion\/([\d\.]+)\b/, | ||
OPERA:[/\bVersion\/([\d\.]+)\b/,/\bOPR\/([\d\.]+)\b/], | ||
IE:[/\bMSIE ([\d\.]+\w?)\b/,/\brv:([\d\.]+\w?)\b/] | ||
@@ -134,0 +134,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
!function(n){"use strict";n.module("ng.deviceDetector",[]).constant("BROWSERS",{CHROME:"chrome",FIREFOX:"firefox",SAFARI:"safari",OPERA:"opera",IE:"ie",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("DEVICES",{ANDROID:"android",IPAD:"ipad",IPHONE:"iphone",IPOD:"ipod",BLACKBERRY:"blackberry",FIREFOXOS:"firefoxos",WINDOWSPHONE:"windows-phone",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("OS",{WINDOWS:"windows",MAC:"mac",IOS:"ios",ANDROID:"android",LINUX:"linux",UNIX:"unix",FIREFOXOS:"firefoxos",WINDOWSPHONE:"windows-phone",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("OS_VERSIONS",{WINDOWS_3_11:"windows-3-11",WINDOWS_95:"windows-95",WINDOWS_ME:"windows-me",WINDOWS_98:"windows-98",WINDOWS_CE:"windows-ce",WINDOWS_2000:"windows-2000",WINDOWS_XP:"windows-xp",WINDOWS_SERVER_2003:"windows-server-2003",WINDOWS_VISTA:"windows-vista",WINDOWS_7:"windows-7",WINDOWS_8_1:"windows-8-1",WINDOWS_8:"windows-8",WINDOWS_NT_4_0:"windows-nt-4-0",UNKNOWN:"unknown"}).service("detectUtils",["deviceDetector","DEVICES","BROWSERS","OS",function(n,i,e,o){var r=n;this.isMobile=function(){return"unknown"!==r.device},this.isAndroid=function(){return r.device===i.ANDROID||r.OS===o.ANDROID},this.isIOS=function(){return r.os===o.IOS||r.device===i.IPOD||r.device===i.IPHONE}}]).factory("deviceDetector",["$window","DEVICES","BROWSERS","OS","OS_VERSIONS",function(n,i,e,o,r){function W(n,i){return i instanceof RegExp?i.test(n):i&&Array.isArray(i.and)?i.and.every(function(i){return W(n,i)}):i&&Array.isArray(i.or)?i.or.some(function(i){return W(n,i)}):i&&i.not?!W(n,i.not):!1}var O={WINDOWS:{and:[{or:[/\bWindows|(Win\d\d)\b/,/\bWin 9x\b/]},{not:/\bWindows Phone\b/}]},MAC:/\bMac OS\b/,IOS:{or:[/\biPad\b/,/\biPhone\b/,/\biPod\b/]},ANDROID:/\bAndroid\b/,LINUX:/\bLinux\b/,UNIX:/\bUNIX\b/,FIREFOXOS:{and:[/\bFirefox\b/,/Mobile\b/]},WINDOWSPHONE:/\bIEMobile\b/,PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/},N={CHROME:{or:[/\bChrome\b/,/\bCriOS\b/]},FIREFOX:/\bFirefox\b/,SAFARI:/^((?!CriOS).)*\Safari\b.*$/,OPERA:/Opera\b/,IE:/\bMSIE\b/,PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/},I={ANDROID:/\bAndroid\b/,IPAD:/\biPad\b/,IPHONE:/\biPhone\b/,IPOD:/\biPod\b/,BLACKBERRY:/\bblackberry\b/,FIREFOXOS:{and:[/\bFirefox\b/,/\bMobile\b/]},WINDOWSPHONE:/\bIEMobile\b/,PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/},s={WINDOWS_3_11:/Win16/,WINDOWS_95:/(Windows 95|Win95|Windows_95)/,WINDOWS_ME:/(Win 9x 4.90|Windows ME)/,WINDOWS_98:/(Windows 98|Win98)/,WINDOWS_CE:/Windows CE/,WINDOWS_2000:/(Windows NT 5.0|Windows 2000)/,WINDOWS_XP:/(Windows NT 5.1|Windows XP)/,WINDOWS_SERVER_2003:/Windows NT 5.2/,WINDOWS_VISTA:/Windows NT 6.0/,WINDOWS_7:/(Windows 7|Windows NT 6.1)/,WINDOWS_8_1:/(Windows 8.1|Windows NT 6.3)/,WINDOWS_8:/(Windows 8|Windows NT 6.2)/,WINDOWS_NT_4_0:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},t={CHROME:/\bChrome\/([\d\.]+)\b/,FIREFOX:/\bFirefox\/([\d\.]+)\b/,SAFARI:/\bVersion\/([\d\.]+)\b/,OPERA:/\bVersion\/([\d\.]+)\b/,IE:/\bMSIE ([\d\.]+\w?)\b/},S=Object.keys(t).reduce(function(n,i){return n[e[i]]=t[i],n},{}),d=n.navigator.userAgent,b={raw:{userAgent:d,os:{},browser:{},device:{}}};if(b.raw.os=Object.keys(o).reduce(function(n,i){return n[o[i]]=W(d,O[i]),n},{}),b.raw.browser=Object.keys(e).reduce(function(n,i){return n[e[i]]=W(d,N[i]),n},{}),b.raw.device=Object.keys(i).reduce(function(n,e){return n[i[e]]=W(d,I[e]),n},{}),b.raw.os_version=Object.keys(r).reduce(function(n,i){return n[r[i]]=W(d,s[i]),n},{}),b.os=[o.WINDOWS,o.IOS,o.MAC,o.ANDROID,o.LINUX,o.UNIX,o.FIREFOXOS,o.WINDOWSPHONE,o.PS4,o.VITA].reduce(function(n,i){return n===o.UNKNOWN&&b.raw.os[i]?i:n},o.UNKNOWN),b.browser=[e.CHROME,e.FIREFOX,e.SAFARI,e.OPERA,e.IE,e.PS4,e.VITA].reduce(function(n,i){return n===e.UNKNOWN&&b.raw.browser[i]?i:n},e.UNKNOWN),b.device=[i.ANDROID,i.IPAD,i.IPHONE,i.IPOD,i.BLACKBERRY,i.FIREFOXOS,i.WINDOWSPHONE,i.PS4,i.VITA].reduce(function(n,e){return n===i.UNKNOWN&&b.raw.device[e]?e:n},i.UNKNOWN),b.os_version=[r.WINDOWS_3_11,r.WINDOWS_95,r.WINDOWS_ME,r.WINDOWS_98,r.WINDOWS_CE,r.WINDOWS_2000,r.WINDOWS_XP,r.WINDOWS_SERVER_2003,r.WINDOWS_VISTA,r.WINDOWS_7,r.WINDOWS_8_1,r.WINDOWS_8,r.WINDOWS_NT_4_0].reduce(function(n,i){return n===r.UNKNOWN&&b.raw.os_version[i]?i:n},r.UNKNOWN),b.browser_version="0",b.browser!==e.UNKNOWN){var D=S[b.browser];if(D){var c=D.exec(d);c&&(b.browser_version=c[1])}}return b.isMobile=function(){return[i.ANDROID,i.IPAD,i.IPHONE,i.IPOD,i.BLACKBERRY,i.FIREFOXOS,i.WINDOWSPHONE,i.VITA].some(function(n){return b.device==n})},b.isTablet=function(){return[i.IPAD,i.FIREFOXOS].some(function(n){return b.device==n})},b.isDesktop=function(){return[i.PS4,i.UNKNOWN].some(function(n){return b.device==n})},b}]).directive("deviceDetector",["deviceDetector",function(n){return{restrict:"A",link:function(i,e){e.addClass("os-"+n.os),e.addClass("browser-"+n.browser),e.addClass("device-"+n.device)}}}])}(angular); | ||
!function(n){"use strict";n.module("ng.deviceDetector",[]).constant("BROWSERS",{CHROME:"chrome",FIREFOX:"firefox",SAFARI:"safari",OPERA:"opera",IE:"ie",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("DEVICES",{ANDROID:"android",IPAD:"ipad",IPHONE:"iphone",IPOD:"ipod",BLACKBERRY:"blackberry",FIREFOXOS:"firefoxos",WINDOWSPHONE:"windows-phone",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("OS",{WINDOWS:"windows",MAC:"mac",IOS:"ios",ANDROID:"android",LINUX:"linux",UNIX:"unix",FIREFOXOS:"firefoxos",WINDOWSPHONE:"windows-phone",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("OS_VERSIONS",{WINDOWS_3_11:"windows-3-11",WINDOWS_95:"windows-95",WINDOWS_ME:"windows-me",WINDOWS_98:"windows-98",WINDOWS_CE:"windows-ce",WINDOWS_2000:"windows-2000",WINDOWS_XP:"windows-xp",WINDOWS_SERVER_2003:"windows-server-2003",WINDOWS_VISTA:"windows-vista",WINDOWS_7:"windows-7",WINDOWS_8_1:"windows-8-1",WINDOWS_8:"windows-8",WINDOWS_NT_4_0:"windows-nt-4-0",UNKNOWN:"unknown"}).service("detectUtils",["deviceDetector","DEVICES","BROWSERS","OS",function(n,e,i,o){var r=n;this.isMobile=function(){return"unknown"!==r.device},this.isAndroid=function(){return r.device===e.ANDROID||r.OS===o.ANDROID},this.isIOS=function(){return r.os===o.IOS||r.device===e.IPOD||r.device===e.IPHONE}}]).factory("deviceDetector",["$window","DEVICES","BROWSERS","OS","OS_VERSIONS",function(n,e,i,o,r){function O(n,e){return e instanceof RegExp?e.test(n):e&&Array.isArray(e.and)?e.and.every(function(e){return O(n,e)}):e&&Array.isArray(e.or)?e.or.some(function(e){return O(n,e)}):e&&e.not?!O(n,e.not):!1}function W(n,e){return e instanceof RegExp?e.exec(n):e&&Array.isArray(e)?e.reduce(function(e,i){return e?e:W(n,i)},null):null}var N={WINDOWS:{and:[{or:[/\bWindows|(Win\d\d)\b/,/\bWin 9x\b/]},{not:/\bWindows Phone\b/}]},MAC:/\bMac OS\b/,IOS:{or:[/\biPad\b/,/\biPhone\b/,/\biPod\b/]},ANDROID:/\bAndroid\b/,LINUX:/\bLinux\b/,UNIX:/\bUNIX\b/,FIREFOXOS:{and:[/\bFirefox\b/,/Mobile\b/]},WINDOWSPHONE:/\bIEMobile\b/,PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/},I={CHROME:{and:[{or:[/\bChrome\b/,/\bCriOS\b/]},{not:/\bOPR\b/}]},FIREFOX:/\bFirefox\b/,SAFARI:{and:[/^((?!CriOS).)*\Safari\b.*$/,{not:/\bOPR\b/}]},OPERA:{or:[/Opera\b/,/\bOPR\b/]},IE:{or:[/\bMSIE\b/,/\bTrident\b/]},PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/},t={ANDROID:/\bAndroid\b/,IPAD:/\biPad\b/,IPHONE:/\biPhone\b/,IPOD:/\biPod\b/,BLACKBERRY:/\bblackberry\b/,FIREFOXOS:{and:[/\bFirefox\b/,/\bMobile\b/]},WINDOWSPHONE:/\bIEMobile\b/,PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/},s={WINDOWS_3_11:/Win16/,WINDOWS_95:/(Windows 95|Win95|Windows_95)/,WINDOWS_ME:/(Win 9x 4.90|Windows ME)/,WINDOWS_98:/(Windows 98|Win98)/,WINDOWS_CE:/Windows CE/,WINDOWS_2000:/(Windows NT 5.0|Windows 2000)/,WINDOWS_XP:/(Windows NT 5.1|Windows XP)/,WINDOWS_SERVER_2003:/Windows NT 5.2/,WINDOWS_VISTA:/Windows NT 6.0/,WINDOWS_7:/(Windows 7|Windows NT 6.1)/,WINDOWS_8_1:/(Windows 8.1|Windows NT 6.3)/,WINDOWS_8:/(Windows 8|Windows NT 6.2)/,WINDOWS_NT_4_0:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},S={CHROME:/\bChrome\/([\d\.]+)\b/,FIREFOX:/\bFirefox\/([\d\.]+)\b/,SAFARI:/\bVersion\/([\d\.]+)\b/,OPERA:[/\bVersion\/([\d\.]+)\b/,/\bOPR\/([\d\.]+)\b/],IE:[/\bMSIE ([\d\.]+\w?)\b/,/\brv:([\d\.]+\w?)\b/]},b=Object.keys(S).reduce(function(n,e){return n[i[e]]=S[e],n},{}),d=n.navigator.userAgent,D={raw:{userAgent:d,os:{},browser:{},device:{}}};if(D.raw.os=Object.keys(o).reduce(function(n,e){return n[o[e]]=O(d,N[e]),n},{}),D.raw.browser=Object.keys(i).reduce(function(n,e){return n[i[e]]=O(d,I[e]),n},{}),D.raw.device=Object.keys(e).reduce(function(n,i){return n[e[i]]=O(d,t[i]),n},{}),D.raw.os_version=Object.keys(r).reduce(function(n,e){return n[r[e]]=O(d,s[e]),n},{}),D.os=[o.WINDOWS,o.IOS,o.MAC,o.ANDROID,o.LINUX,o.UNIX,o.FIREFOXOS,o.WINDOWSPHONE,o.PS4,o.VITA].reduce(function(n,e){return n===o.UNKNOWN&&D.raw.os[e]?e:n},o.UNKNOWN),D.browser=[i.CHROME,i.FIREFOX,i.SAFARI,i.OPERA,i.IE,i.PS4,i.VITA].reduce(function(n,e){return n===i.UNKNOWN&&D.raw.browser[e]?e:n},i.UNKNOWN),D.device=[e.ANDROID,e.IPAD,e.IPHONE,e.IPOD,e.BLACKBERRY,e.FIREFOXOS,e.WINDOWSPHONE,e.PS4,e.VITA].reduce(function(n,i){return n===e.UNKNOWN&&D.raw.device[i]?i:n},e.UNKNOWN),D.os_version=[r.WINDOWS_3_11,r.WINDOWS_95,r.WINDOWS_ME,r.WINDOWS_98,r.WINDOWS_CE,r.WINDOWS_2000,r.WINDOWS_XP,r.WINDOWS_SERVER_2003,r.WINDOWS_VISTA,r.WINDOWS_7,r.WINDOWS_8_1,r.WINDOWS_8,r.WINDOWS_NT_4_0].reduce(function(n,e){return n===r.UNKNOWN&&D.raw.os_version[e]?e:n},r.UNKNOWN),D.browser_version="0",D.browser!==i.UNKNOWN){var c=b[D.browser],a=W(d,c);a&&(D.browser_version=a[1])}return D.isMobile=function(){return[e.ANDROID,e.IPAD,e.IPHONE,e.IPOD,e.BLACKBERRY,e.FIREFOXOS,e.WINDOWSPHONE,e.VITA].some(function(n){return D.device==n})},D.isTablet=function(){return[e.IPAD,e.FIREFOXOS].some(function(n){return D.device==n})},D.isDesktop=function(){return[e.PS4,e.UNKNOWN].some(function(n){return D.device==n})},D}]).directive("deviceDetector",["deviceDetector",function(n){return{restrict:"A",link:function(e,i){i.addClass("os-"+n.os),i.addClass("browser-"+n.browser),i.addClass("device-"+n.device)}}}])}(angular); |
{ | ||
"name": "ng-device-detector", | ||
"version": "1.1.2", | ||
"version": "1.1.3", | ||
"devDependencies": { | ||
@@ -5,0 +5,0 @@ "karma": "*", |
@@ -187,3 +187,7 @@ describe("ng-device-detector", function () { | ||
"windows", "windows-7", "ie", "11.0", "unknown", false, false, true); | ||
// Issue 24 | ||
describeUserAgent("Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36 OPR/29.0.1795.47", | ||
"windows", "windows-8-1", "opera", "29.0.1795.47", "unknown", false, false, true); | ||
}); | ||
}); |
44808
659