summaryrefslogtreecommitdiffstats
path: root/jquery/jquery.browser.js
diff options
context:
space:
mode:
authorJames Nylen <jnylen@gmail.com>2016-08-09 04:30:05 +0000
committerJames Nylen <jnylen@gmail.com>2016-08-09 04:30:05 +0000
commit07bd89e4aa89b83fff9da7a5ddba97e43e4cb219 (patch)
tree13d0a72b9b8f8dd69df420bc6f359bf3ad21bcd6 /jquery/jquery.browser.js
parentfb467fc6af82427d13a7964e2a1ac6f4cfc8a6f5 (diff)
downloadd3-process-map-07bd89e4aa89b83fff9da7a5ddba97e43e4cb219.zip
d3-process-map-07bd89e4aa89b83fff9da7a5ddba97e43e4cb219.tar.gz
d3-process-map-07bd89e4aa89b83fff9da7a5ddba97e43e4cb219.tar.bz2
Upgrade jQuery.browser plugin
Diffstat (limited to 'jquery/jquery.browser.js')
-rw-r--r--jquery/jquery.browser.js267
1 files changed, 174 insertions, 93 deletions
diff --git a/jquery/jquery.browser.js b/jquery/jquery.browser.js
index 3bb26d7..223eca6 100644
--- a/jquery/jquery.browser.js
+++ b/jquery/jquery.browser.js
@@ -1,112 +1,193 @@
/*!
- * jQuery Browser Plugin v0.0.6
+ * jQuery Browser Plugin 0.1.0
* https://github.com/gabceb/jquery-browser-plugin
*
- * Original jquery-browser code Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
+ * Original jquery-browser code Copyright 2005, 2015 jQuery Foundation, Inc. and other contributors
* http://jquery.org/license
*
- * Modifications Copyright 2013 Gabriel Cebrian
+ * Modifications Copyright 2015 Gabriel Cebrian
* https://github.com/gabceb
*
* Released under the MIT license
*
- * Date: 2013-07-29T17:23:27-07:00
+ * Date: 05-07-2015
*/
-
-(function( jQuery, window, undefined ) {
+/*global window: false */
+
+(function (factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(['jquery'], function ($) {
+ return factory($);
+ });
+ } else if (typeof module === 'object' && typeof module.exports === 'object') {
+ // Node-like environment
+ module.exports = factory(require('jquery'));
+ } else {
+ // Browser globals
+ factory(window.jQuery);
+ }
+}(function(jQuery) {
"use strict";
- var matched, browser;
-
- jQuery.uaMatch = function( ua ) {
+ function uaMatch( ua ) {
+ // If an UA is not provided, default to the current browser UA.
+ if ( ua === undefined ) {
+ ua = window.navigator.userAgent;
+ }
ua = ua.toLowerCase();
- var match = /(opr)[\/]([\w.]+)/.exec( ua ) ||
- /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
- /(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
- /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
- /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
- /(msie) ([\w.]+)/.exec( ua ) ||
- ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
- ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
- [];
-
- var platform_match = /(ipad)/.exec( ua ) ||
- /(iphone)/.exec( ua ) ||
- /(android)/.exec( ua ) ||
- /(windows phone)/.exec( ua ) ||
- /(win)/.exec( ua ) ||
- /(mac)/.exec( ua ) ||
- /(linux)/.exec( ua ) ||
- /(cros)/i.exec( ua ) ||
- [];
-
- return {
- browser: match[ 3 ] || match[ 1 ] || "",
- version: match[ 2 ] || "0",
- platform: platform_match[ 0 ] || ""
- };
- };
-
- matched = jQuery.uaMatch( window.navigator.userAgent );
- browser = {};
-
- if ( matched.browser ) {
- browser[ matched.browser ] = true;
- browser.version = matched.version;
- browser.versionNumber = parseInt(matched.version);
- }
-
- if ( matched.platform ) {
- browser[ matched.platform ] = true;
+ var match = /(edge)\/([\w.]+)/.exec( ua ) ||
+ /(opr)[\/]([\w.]+)/.exec( ua ) ||
+ /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
+ /(iemobile)[\/]([\w.]+)/.exec( ua ) ||
+ /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec( ua ) ||
+ /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+ /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
+ /(msie) ([\w.]+)/.exec( ua ) ||
+ ua.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec( ua ) ||
+ ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
+ [];
+
+ var platform_match = /(ipad)/.exec( ua ) ||
+ /(ipod)/.exec( ua ) ||
+ /(windows phone)/.exec( ua ) ||
+ /(iphone)/.exec( ua ) ||
+ /(kindle)/.exec( ua ) ||
+ /(silk)/.exec( ua ) ||
+ /(android)/.exec( ua ) ||
+ /(win)/.exec( ua ) ||
+ /(mac)/.exec( ua ) ||
+ /(linux)/.exec( ua ) ||
+ /(cros)/.exec( ua ) ||
+ /(playbook)/.exec( ua ) ||
+ /(bb)/.exec( ua ) ||
+ /(blackberry)/.exec( ua ) ||
+ [];
+
+ var browser = {},
+ matched = {
+ browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || "",
+ version: match[ 2 ] || match[ 4 ] || "0",
+ versionNumber: match[ 4 ] || match[ 2 ] || "0",
+ platform: platform_match[ 0 ] || ""
+ };
+
+ if ( matched.browser ) {
+ browser[ matched.browser ] = true;
+ browser.version = matched.version;
+ browser.versionNumber = parseInt(matched.versionNumber, 10);
+ }
+
+ if ( matched.platform ) {
+ browser[ matched.platform ] = true;
+ }
+
+ // These are all considered mobile platforms, meaning they run a mobile browser
+ if ( browser.android || browser.bb || browser.blackberry || browser.ipad || browser.iphone ||
+ browser.ipod || browser.kindle || browser.playbook || browser.silk || browser[ "windows phone" ]) {
+ browser.mobile = true;
+ }
+
+ // These are all considered desktop platforms, meaning they run a desktop browser
+ if ( browser.cros || browser.mac || browser.linux || browser.win ) {
+ browser.desktop = true;
+ }
+
+ // Chrome, Opera 15+ and Safari are webkit based browsers
+ if ( browser.chrome || browser.opr || browser.safari ) {
+ browser.webkit = true;
+ }
+
+ // IE11 has a new token so we will assign it msie to avoid breaking changes
+ if ( browser.rv || browser.iemobile) {
+ var ie = "msie";
+
+ matched.browser = ie;
+ browser[ie] = true;
+ }
+
+ // Edge is officially known as Microsoft Edge, so rewrite the key to match
+ if ( browser.edge ) {
+ delete browser.edge;
+ var msedge = "msedge";
+
+ matched.browser = msedge;
+ browser[msedge] = true;
+ }
+
+ // Blackberry browsers are marked as Safari on BlackBerry
+ if ( browser.safari && browser.blackberry ) {
+ var blackberry = "blackberry";
+
+ matched.browser = blackberry;
+ browser[blackberry] = true;
+ }
+
+ // Playbook browsers are marked as Safari on Playbook
+ if ( browser.safari && browser.playbook ) {
+ var playbook = "playbook";
+
+ matched.browser = playbook;
+ browser[playbook] = true;
+ }
+
+ // BB10 is a newer OS version of BlackBerry
+ if ( browser.bb ) {
+ var bb = "blackberry";
+
+ matched.browser = bb;
+ browser[bb] = true;
+ }
+
+ // Opera 15+ are identified as opr
+ if ( browser.opr ) {
+ var opera = "opera";
+
+ matched.browser = opera;
+ browser[opera] = true;
+ }
+
+ // Stock Android browsers are marked as Safari on Android.
+ if ( browser.safari && browser.android ) {
+ var android = "android";
+
+ matched.browser = android;
+ browser[android] = true;
+ }
+
+ // Kindle browsers are marked as Safari on Kindle
+ if ( browser.safari && browser.kindle ) {
+ var kindle = "kindle";
+
+ matched.browser = kindle;
+ browser[kindle] = true;
+ }
+
+ // Kindle Silk browsers are marked as Safari on Kindle
+ if ( browser.safari && browser.silk ) {
+ var silk = "silk";
+
+ matched.browser = silk;
+ browser[silk] = true;
+ }
+
+ // Assign the name and platform variable
+ browser.name = matched.browser;
+ browser.platform = matched.platform;
+ return browser;
}
- // These are all considered mobile platforms, meaning they run a mobile browser
- if ( browser.android || browser.ipad || browser.iphone || browser[ "windows phone" ] ) {
- browser.mobile = true;
- }
-
- // These are all considered desktop platforms, meaning they run a desktop browser
- if ( browser.cros || browser.mac || browser.linux || browser.win ) {
- browser.desktop = true;
- }
+ // Run the matching process, also assign the function to the returned object
+ // for manual, jQuery-free use if desired
+ window.jQBrowser = uaMatch( window.navigator.userAgent );
+ window.jQBrowser.uaMatch = uaMatch;
- // Chrome, Opera 15+ and Safari are webkit based browsers
- if ( browser.chrome || browser.opr || browser.safari ) {
- browser.webkit = true;
+ // Only assign to jQuery.browser if jQuery is loaded
+ if ( jQuery ) {
+ jQuery.browser = window.jQBrowser;
}
- // IE11 has a new token so we will assign it msie to avoid breaking changes
- if ( browser.rv )
- {
- var ie = "msie";
-
- matched.browser = ie;
- browser[ie] = true;
- }
-
- // Opera 15+ are identified as opr
- if ( browser.opr )
- {
- var opera = "opera";
-
- matched.browser = opera;
- browser[opera] = true;
- }
-
- // Stock Android browsers are marked as Safari on Android.
- if ( browser.safari && browser.android )
- {
- var android = "android";
-
- matched.browser = android;
- browser[android] = true;
- }
-
- // Assign the name and platform variable
- browser.name = matched.browser;
- browser.platform = matched.platform;
-
-
- jQuery.browser = browser;
-})( jQuery, window ); \ No newline at end of file
+ return window.jQBrowser;
+}));