ng-device-detector
Advanced tools
Comparing version 1.1.3 to 1.1.4
{ | ||
"name": "ng-device-detector", | ||
"version": "1.1.1", | ||
"version": "1.1.4", | ||
"homepage": "https://github.com/srfrnk/ng-device-detector", | ||
@@ -5,0 +5,0 @@ "authors": [ |
@@ -13,2 +13,3 @@ module.exports = function (config) { | ||
'node_modules/angular-mocks/angular-mocks.js', | ||
'node_modules/re-tree/re-tree.js', | ||
'ng-device-detector.js', | ||
@@ -15,0 +16,0 @@ 'test/*.js' |
(function (angular) { | ||
"use strict"; | ||
angular.module("ng.deviceDetector", []) | ||
angular.module("ng.deviceDetector", ["reTree"]) | ||
.constant("BROWSERS", { | ||
@@ -72,4 +72,4 @@ CHROME: "chrome", | ||
]) | ||
.factory("deviceDetector", ["$window", "DEVICES", "BROWSERS", "OS", "OS_VERSIONS", | ||
function ($window, DEVICES, BROWSERS, OS, OS_VERSIONS) { | ||
.factory("deviceDetector", ["$window", "DEVICES", "BROWSERS", "OS", "OS_VERSIONS","reTree", | ||
function ($window, DEVICES, BROWSERS, OS, OS_VERSIONS,reTree) { | ||
@@ -140,38 +140,2 @@ var OS_RE = { | ||
function test(string, regex) { | ||
if (regex instanceof RegExp) { | ||
return regex.test(string); | ||
} | ||
else if (regex && Array.isArray(regex.and)) { | ||
return regex.and.every(function (item) { | ||
return test(string, item); | ||
}); | ||
} | ||
else if (regex && Array.isArray(regex.or)) { | ||
return regex.or.some(function (item) { | ||
return test(string, item); | ||
}); | ||
} | ||
else if (regex && regex.not) { | ||
return !test(string, regex.not); | ||
} | ||
else { | ||
return false; | ||
} | ||
} | ||
function exec(string, regex) { | ||
if (regex instanceof RegExp) { | ||
return regex.exec(string); | ||
} | ||
else if (regex && Array.isArray(regex)) { | ||
return regex.reduce(function (res,item) { | ||
return (!!res)?res:exec(string, item); | ||
},null); | ||
} | ||
else { | ||
return null; | ||
} | ||
} | ||
var ua = $window.navigator.userAgent; | ||
@@ -189,3 +153,3 @@ | ||
deviceInfo.raw.os = Object.keys(OS).reduce(function (obj, item) { | ||
obj[OS[item]] = test(ua, OS_RE[item]); | ||
obj[OS[item]] = reTree.test(ua, OS_RE[item]); | ||
return obj; | ||
@@ -195,3 +159,3 @@ }, {}); | ||
deviceInfo.raw.browser = Object.keys(BROWSERS).reduce(function (obj, item) { | ||
obj[BROWSERS[item]] = test(ua, BROWSERS_RE[item]); | ||
obj[BROWSERS[item]] = reTree.test(ua, BROWSERS_RE[item]); | ||
return obj; | ||
@@ -201,3 +165,3 @@ }, {}); | ||
deviceInfo.raw.device = Object.keys(DEVICES).reduce(function (obj, item) { | ||
obj[DEVICES[item]] = test(ua, DEVICES_RE[item]); | ||
obj[DEVICES[item]] = reTree.test(ua, DEVICES_RE[item]); | ||
return obj; | ||
@@ -207,3 +171,3 @@ }, {}); | ||
deviceInfo.raw.os_version = Object.keys(OS_VERSIONS).reduce(function (obj, item) { | ||
obj[OS_VERSIONS[item]] = test(ua, OS_VERSIONS_RE[item]); | ||
obj[OS_VERSIONS[item]] = reTree.test(ua, OS_VERSIONS_RE[item]); | ||
return obj; | ||
@@ -274,3 +238,3 @@ }, {}); | ||
var re = BROWSER_VERSIONS_RE[deviceInfo.browser]; | ||
var res = exec(ua,re); | ||
var res = reTree.exec(ua,re); | ||
if (!!res) { | ||
@@ -277,0 +241,0 @@ deviceInfo.browser_version = res[1]; |
@@ -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,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); | ||
!function(n){"use strict";n.module("ng.deviceDetector",["reTree"]).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 O=n;this.isMobile=function(){return"unknown"!==O.device},this.isAndroid=function(){return O.device===e.ANDROID||O.OS===o.ANDROID},this.isIOS=function(){return O.os===o.IOS||O.device===e.IPOD||O.device===e.IPHONE}}]).factory("deviceDetector",["$window","DEVICES","BROWSERS","OS","OS_VERSIONS","reTree",function(n,e,i,o,O,W){var r={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:{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/},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/,/\bOPR\/([\d\.]+)\b/],IE:[/\bMSIE ([\d\.]+\w?)\b/,/\brv:([\d\.]+\w?)\b/]},S=Object.keys(t).reduce(function(n,e){return n[i[e]]=t[e],n},{}),b=n.navigator.userAgent,d={raw:{userAgent:b,os:{},browser:{},device:{}}};if(d.raw.os=Object.keys(o).reduce(function(n,e){return n[o[e]]=W.test(b,r[e]),n},{}),d.raw.browser=Object.keys(i).reduce(function(n,e){return n[i[e]]=W.test(b,N[e]),n},{}),d.raw.device=Object.keys(e).reduce(function(n,i){return n[e[i]]=W.test(b,I[i]),n},{}),d.raw.os_version=Object.keys(O).reduce(function(n,e){return n[O[e]]=W.test(b,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=[O.WINDOWS_3_11,O.WINDOWS_95,O.WINDOWS_ME,O.WINDOWS_98,O.WINDOWS_CE,O.WINDOWS_2000,O.WINDOWS_XP,O.WINDOWS_SERVER_2003,O.WINDOWS_VISTA,O.WINDOWS_7,O.WINDOWS_8_1,O.WINDOWS_8,O.WINDOWS_NT_4_0].reduce(function(n,e){return n===O.UNKNOWN&&d.raw.os_version[e]?e:n},O.UNKNOWN),d.browser_version="0",d.browser!==i.UNKNOWN){var D=S[d.browser],w=W.exec(b,D);w&&(d.browser_version=w[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.3", | ||
"devDependencies": { | ||
"karma": "*", | ||
"karma-jasmine": "*", | ||
"karma-phantomjs-launcher": "*", | ||
"angular": "*", | ||
"angular-mocks": "*", | ||
"karma-nested-reporter": "*", | ||
"uglify-js":"*", | ||
"gulp":"*", | ||
"gulp-uglify":"*", | ||
"gulp-concat":"*", | ||
"gulp-karma":"*" | ||
}, | ||
"scripts": { | ||
"test": "./node_modules/karma/bin/karma start --single-run --browsers PhantomJS" | ||
}, | ||
"description": "Uses user-agent to set css classes or directly usable via JS.", | ||
"main": "ng-device-detector.js", | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/srfrnk/ng-device-detector.git" | ||
}, | ||
"keywords": [ | ||
"angularjs" | ||
], | ||
"author": "srfrnk", | ||
"license": "MIT", | ||
"bugs": { | ||
"url": "https://github.com/srfrnk/ng-device-detector/issues" | ||
}, | ||
"homepage": "https://github.com/srfrnk/ng-device-detector" | ||
"name": "ng-device-detector", | ||
"version": "1.1.4", | ||
"devDependencies": { | ||
"karma": "*", | ||
"karma-jasmine": "*", | ||
"karma-phantomjs-launcher": "*", | ||
"angular": "*", | ||
"angular-mocks": "*", | ||
"karma-nested-reporter": "*", | ||
"uglify-js": "*", | ||
"gulp": "*", | ||
"gulp-uglify": "*", | ||
"gulp-concat": "*", | ||
"gulp-karma": "*" | ||
}, | ||
"scripts": { | ||
"test": "./node_modules/karma/bin/karma start --single-run --browsers PhantomJS" | ||
}, | ||
"description": "Uses user-agent to set css classes or directly usable via JS.", | ||
"main": "ng-device-detector.js", | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/srfrnk/ng-device-detector.git" | ||
}, | ||
"keywords": [ | ||
"angularjs" | ||
], | ||
"author": "srfrnk", | ||
"license": "MIT", | ||
"bugs": { | ||
"url": "https://github.com/srfrnk/ng-device-detector/issues" | ||
}, | ||
"homepage": "https://github.com/srfrnk/ng-device-detector", | ||
"dependencies": { | ||
"re-tree": "0.0.1" | ||
} | ||
} |
@@ -11,2 +11,3 @@ #ng-device-detector | ||
* Run $ bower install ng-device-detector --save | ||
* Add script load to HTML:`<script type="text/javascript" src=".../re-tree.js"></script>` | ||
* Add script load to HTML:`<script type="text/javascript" src=".../ng-device-detector.js"></script>` | ||
@@ -13,0 +14,0 @@ * Add module to your app dependencies: `...angular.module("...", [..."ng.deviceDetector"...])...` |
38
43273
1
626
+ Addedre-tree@0.0.1
+ Addedre-tree@0.0.1(transitive)