jquery-rails 3.1.0 → 3.1.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of jquery-rails might be problematic. Click here for more details.

@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1600db8b878446c499e08563ee1da26606ff6276
4
+ data.tar.gz: 55c7dde6ecb3794cc82fc459e3ea9225c7d3daa5
5
+ SHA512:
6
+ metadata.gz: b75b2ec02b1d1aa63fb82344542d3c5de4da1557353b393a3d31a417bf70bf2a25eade3b1a20364712cdd863994241ddfe1e7f9e506a3decbb41bc78c158f044
7
+ data.tar.gz: 9c9c2a90d36aaa6e025859b2ab0cabd4cba00f1d1fc4ccbedb5b6a29648d90dc57896a95fd0b8d035f3dd064153355df97eba0f0f259b3757cad1e00d84dd8a2
@@ -1,3 +1,8 @@
1
+ ## 3.1.1 (23 June 2013)
2
+
3
+ - Updated to jQuery 1.11.1
4
+ - Updated to jquery-ujs 1.0.0
5
+
1
6
  ## 3.1.0 (29 January 2014)
2
7
 
3
8
  - Updated to jQuery 1.11.0
@@ -7,7 +12,7 @@
7
12
  ## 3.0.4 (10 July 2013)
8
13
 
9
14
  - Fixed jQuery source map
10
-
15
+
11
16
  ## 3.0.3 (10 July 2013)
12
17
 
13
18
  - Updated to jQuery 1.10.2
data/README.md CHANGED
@@ -4,7 +4,7 @@ jQuery! For Rails! So great.
4
4
 
5
5
  This gem provides:
6
6
 
7
- * jQuery 1.10.2
7
+ * jQuery 1.11.0
8
8
  * the jQuery UJS adapter
9
9
  * assert_select_jquery to test jQuery responses in Ruby tests
10
10
 
@@ -1,43 +1,45 @@
1
1
  # Bundled Versions
2
2
 
3
- | Gem | jQuery | jQuery UI |
4
- |--------|--------|-----------|
5
- | 3.0.5 | 1.11.0 | - |
6
- | 3.0.4 | | - |
7
- | 3.0.3 | 1.10.2 | - |
8
- | 3.0.2 | ↾ | - |
9
- | 3.0.1 | 1.10.1 | - |
10
- | 3.0.0 | ↾ | - |
11
- | 2.3.0 | 1.10.0 | 1.10.3 |
12
- | 2.2.2 | ↾ | |
13
- | 2.2.1 | 1.9.1 | |
14
- | 2.2.0 | 1.9.0 | ↾ |
15
- | 2.1.4 | 1.8.3 | 1.9.2 |
16
- | 2.1.3 | 1.8.2 | ↾ |
17
- | 2.1.2 | 1.8.1 | |
18
- | 2.1.1 | | ↾ |
19
- | 2.1.0 | 1.8.0 | 1.8.23 |
20
- | 2.0.3 | ↾ | ↾ |
21
- | 2.0.2 | 1.7.2 | 1.8.18 |
22
- | 2.0.1 | ↾ | ↾ |
23
- | 2.0.0 | | |
24
- | 1.0.19 | 1.7.1 | ↾ |
25
- | 1.0.18 | ↾ | ↾ |
26
- | 1.0.17 | 1.7.0 | ↾ |
27
- | 1.0.16 | 1.6.4 | 1.8.16 |
28
- | 1.0.15 | | ↾ |
29
- | 1.0.14 | | |
30
- | 1.0.13 | 1.6.2 | 1.8.14 |
31
- | 1.0.12 | ↾ | ↾ |
32
- | 1.0.11 | | |
33
- | 1.0.10 | ↾ | ↾ |
34
- | 1.0.9 | ↾ | ↾ |
35
- | 1.0.8 | ↾ | ↾ |
36
- | 1.0.7 | ↾ | ↾ |
37
- | 1.0.6 | ↾ | ↾ |
38
- | 1.0.5 | ↾ | ↾ |
39
- | 1.0.4 | ↾ | ↾ |
40
- | 1.0.3 | 1.6.1 | ↾ |
41
- | 1.0.2 | ↾ | ↾ |
42
- | 1.0.1 | ↾ | 1.8.12 |
43
- | 1.0.0 | 1.6.0 | - |
3
+ | Gem | jQuery | jQuery UJS | jQuery UI |
4
+ |--------|--------|------------| ----------|
5
+ | 3.1.1 | 1.11.1 | 1.0.0 | - |
6
+ | 3.1.0 | 1.11.0 | - | - |
7
+ | 3.0.5 | 1.11.0 | - | - |
8
+ | 3.0.4 | ↾ | - | - |
9
+ | 3.0.3 | 1.10.2 | - | - |
10
+ | 3.0.2 | ↾ | - | - |
11
+ | 3.0.1 | 1.10.1 | - | - |
12
+ | 3.0.0 | ↾ | - | - |
13
+ | 2.3.0 | 1.10.0 | - | 1.10.3 |
14
+ | 2.2.2 | | - | ↾ |
15
+ | 2.2.1 | 1.9.1 | - | ↾ |
16
+ | 2.2.0 | 1.9.0 | - | ↾ |
17
+ | 2.1.4 | 1.8.3 | - | 1.9.2 |
18
+ | 2.1.3 | 1.8.2 | - | ↾ |
19
+ | 2.1.2 | 1.8.1 | - | ↾ |
20
+ | 2.1.1 | ↾ | - | ↾ |
21
+ | 2.1.0 | 1.8.0 | - | 1.8.23 |
22
+ | 2.0.3 | ↾ | - | ↾ |
23
+ | 2.0.2 | 1.7.2 | - | 1.8.18 |
24
+ | 2.0.1 | | - | ↾ |
25
+ | 2.0.0 | ↾ | - | ↾ |
26
+ | 1.0.19 | 1.7.1 | - | ↾ |
27
+ | 1.0.18 | | - | ↾ |
28
+ | 1.0.17 | 1.7.0 | - | ↾ |
29
+ | 1.0.16 | 1.6.4 | - | 1.8.16 |
30
+ | 1.0.15 | | - | ↾ |
31
+ | 1.0.14 | ↾ | - | ↾ |
32
+ | 1.0.13 | 1.6.2 | - | 1.8.14 |
33
+ | 1.0.12 | ↾ | - | ↾ |
34
+ | 1.0.11 | ↾ | - | ↾ |
35
+ | 1.0.10 | ↾ | - | ↾ |
36
+ | 1.0.9 | ↾ | - | ↾ |
37
+ | 1.0.8 | ↾ | - | ↾ |
38
+ | 1.0.7 | ↾ | - | ↾ |
39
+ | 1.0.6 | ↾ | - | ↾ |
40
+ | 1.0.5 | | - | ↾ |
41
+ | 1.0.4 | ↾ | - | ↾ |
42
+ | 1.0.3 | 1.6.1 | - | ↾ |
43
+ | 1.0.2 | | - | ↾ |
44
+ | 1.0.1 | ↾ | - | 1.8.12 |
45
+ | 1.0.0 | 1.6.0 | - | - |
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
8
8
  s.authors = ["André Arko"]
9
9
  s.email = ["andre@arko.net"]
10
10
  s.homepage = "http://rubygems.org/gems/jquery-rails"
11
- s.summary = "Use jQuery with Rails 3"
12
- s.description = "This gem provides jQuery and the jQuery-ujs driver for your Rails 3 application."
11
+ s.summary = "Use jQuery with Rails 3+"
12
+ s.description = "This gem provides jQuery and the jQuery-ujs driver for your Rails 3+ application."
13
13
  s.license = "MIT"
14
14
 
15
15
  s.required_rubygems_version = ">= 1.3.6"
@@ -1,7 +1,7 @@
1
1
  module Jquery
2
2
  module Rails
3
- VERSION = "3.1.0"
4
- JQUERY_VERSION = "1.11.0"
5
- JQUERY_UJS_VERSION = "f160fa2f4615f93e1a0d75e49de59d19c18c8728"
3
+ VERSION = "3.1.1"
4
+ JQUERY_VERSION = "1.11.1"
5
+ JQUERY_UJS_VERSION = "1.0.0"
6
6
  end
7
7
  end
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * jQuery JavaScript Library v1.11.0
2
+ * jQuery JavaScript Library v1.11.1
3
3
  * http://jquery.com/
4
4
  *
5
5
  * Includes Sizzle.js
@@ -9,7 +9,7 @@
9
9
  * Released under the MIT license
10
10
  * http://jquery.org/license
11
11
  *
12
- * Date: 2014-01-23T21:02Z
12
+ * Date: 2014-05-01T17:42Z
13
13
  */
14
14
 
15
15
  (function( global, factory ) {
@@ -59,14 +59,12 @@ var toString = class2type.toString;
59
59
 
60
60
  var hasOwn = class2type.hasOwnProperty;
61
61
 
62
- var trim = "".trim;
63
-
64
62
  var support = {};
65
63
 
66
64
 
67
65
 
68
66
  var
69
- version = "1.11.0",
67
+ version = "1.11.1",
70
68
 
71
69
  // Define a local copy of jQuery
72
70
  jQuery = function( selector, context ) {
@@ -75,7 +73,8 @@ var
75
73
  return new jQuery.fn.init( selector, context );
76
74
  },
77
75
 
78
- // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)
76
+ // Support: Android<4.1, IE<9
77
+ // Make sure we trim BOM and NBSP
79
78
  rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
80
79
 
81
80
  // Matches dashed string for camelizing
@@ -108,10 +107,10 @@ jQuery.fn = jQuery.prototype = {
108
107
  get: function( num ) {
109
108
  return num != null ?
110
109
 
111
- // Return a 'clean' array
110
+ // Return just the one element from the set
112
111
  ( num < 0 ? this[ num + this.length ] : this[ num ] ) :
113
112
 
114
- // Return just the object
113
+ // Return all the elements in a clean array
115
114
  slice.call( this );
116
115
  },
117
116
 
@@ -270,7 +269,7 @@ jQuery.extend({
270
269
  // parseFloat NaNs numeric-cast false positives (null|true|false|"")
271
270
  // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
272
271
  // subtraction forces infinities to NaN
273
- return obj - parseFloat( obj ) >= 0;
272
+ return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0;
274
273
  },
275
274
 
276
275
  isEmptyObject: function( obj ) {
@@ -401,20 +400,12 @@ jQuery.extend({
401
400
  return obj;
402
401
  },
403
402
 
404
- // Use native String.trim function wherever possible
405
- trim: trim && !trim.call("\uFEFF\xA0") ?
406
- function( text ) {
407
- return text == null ?
408
- "" :
409
- trim.call( text );
410
- } :
411
-
412
- // Otherwise use our own trimming functionality
413
- function( text ) {
414
- return text == null ?
415
- "" :
416
- ( text + "" ).replace( rtrim, "" );
417
- },
403
+ // Support: Android<4.1, IE<9
404
+ trim: function( text ) {
405
+ return text == null ?
406
+ "" :
407
+ ( text + "" ).replace( rtrim, "" );
408
+ },
418
409
 
419
410
  // results is for internal usage only
420
411
  makeArray: function( arr, results ) {
@@ -593,14 +584,14 @@ function isArraylike( obj ) {
593
584
  }
594
585
  var Sizzle =
595
586
  /*!
596
- * Sizzle CSS Selector Engine v1.10.16
587
+ * Sizzle CSS Selector Engine v1.10.19
597
588
  * http://sizzlejs.com/
598
589
  *
599
590
  * Copyright 2013 jQuery Foundation, Inc. and other contributors
600
591
  * Released under the MIT license
601
592
  * http://jquery.org/license
602
593
  *
603
- * Date: 2014-01-13
594
+ * Date: 2014-04-18
604
595
  */
605
596
  (function( window ) {
606
597
 
@@ -609,7 +600,9 @@ var i,
609
600
  Expr,
610
601
  getText,
611
602
  isXML,
603
+ tokenize,
612
604
  compile,
605
+ select,
613
606
  outermostContext,
614
607
  sortInput,
615
608
  hasDuplicate,
@@ -676,17 +669,23 @@ var i,
676
669
  // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
677
670
  identifier = characterEncoding.replace( "w", "w#" ),
678
671
 
679
- // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
680
- attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
681
- "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
682
-
683
- // Prefer arguments quoted,
684
- // then not containing pseudos/brackets,
685
- // then attribute selectors/non-parenthetical expressions,
686
- // then anything else
687
- // These preferences are here to reduce the number of selectors
688
- // needing tokenize in the PSEUDO preFilter
689
- pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)",
672
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
673
+ attributes = "\\[" + whitespace + "*(" + characterEncoding + ")(?:" + whitespace +
674
+ // Operator (capture 2)
675
+ "*([*^$|!~]?=)" + whitespace +
676
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
677
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
678
+ "*\\]",
679
+
680
+ pseudos = ":(" + characterEncoding + ")(?:\\((" +
681
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
682
+ // 1. quoted (capture 3; capture 4 or capture 5)
683
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
684
+ // 2. simple (capture 6)
685
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
686
+ // 3. anything else (capture 2)
687
+ ".*" +
688
+ ")\\)|)",
690
689
 
691
690
  // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
692
691
  rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
@@ -731,7 +730,7 @@ var i,
731
730
  funescape = function( _, escaped, escapedWhitespace ) {
732
731
  var high = "0x" + escaped - 0x10000;
733
732
  // NaN means non-codepoint
734
- // Support: Firefox
733
+ // Support: Firefox<24
735
734
  // Workaround erroneous numeric interpretation of +"0x"
736
735
  return high !== high || escapedWhitespace ?
737
736
  escaped :
@@ -1127,7 +1126,7 @@ setDocument = Sizzle.setDocument = function( node ) {
1127
1126
  var m = context.getElementById( id );
1128
1127
  // Check parentNode to catch when Blackberry 4.6 returns
1129
1128
  // nodes that are no longer in the document #6963
1130
- return m && m.parentNode ? [m] : [];
1129
+ return m && m.parentNode ? [ m ] : [];
1131
1130
  }
1132
1131
  };
1133
1132
  Expr.filter["ID"] = function( id ) {
@@ -1207,11 +1206,13 @@ setDocument = Sizzle.setDocument = function( node ) {
1207
1206
  // setting a boolean content attribute,
1208
1207
  // since its presence should be enough
1209
1208
  // http://bugs.jquery.com/ticket/12359
1210
- div.innerHTML = "<select t=''><option selected=''></option></select>";
1209
+ div.innerHTML = "<select msallowclip=''><option selected=''></option></select>";
1211
1210
 
1212
- // Support: IE8, Opera 10-12
1211
+ // Support: IE8, Opera 11-12.16
1213
1212
  // Nothing should be selected when empty strings follow ^= or $= or *=
1214
- if ( div.querySelectorAll("[t^='']").length ) {
1213
+ // The test attribute must be unknown in Opera but "safe" for WinRT
1214
+ // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
1215
+ if ( div.querySelectorAll("[msallowclip^='']").length ) {
1215
1216
  rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
1216
1217
  }
1217
1218
 
@@ -1254,7 +1255,8 @@ setDocument = Sizzle.setDocument = function( node ) {
1254
1255
  });
1255
1256
  }
1256
1257
 
1257
- if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||
1258
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
1259
+ docElem.webkitMatchesSelector ||
1258
1260
  docElem.mozMatchesSelector ||
1259
1261
  docElem.oMatchesSelector ||
1260
1262
  docElem.msMatchesSelector) )) ) {
@@ -1435,7 +1437,7 @@ Sizzle.matchesSelector = function( elem, expr ) {
1435
1437
  } catch(e) {}
1436
1438
  }
1437
1439
 
1438
- return Sizzle( expr, document, null, [elem] ).length > 0;
1440
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
1439
1441
  };
1440
1442
 
1441
1443
  Sizzle.contains = function( context, elem ) {
@@ -1564,7 +1566,7 @@ Expr = Sizzle.selectors = {
1564
1566
  match[1] = match[1].replace( runescape, funescape );
1565
1567
 
1566
1568
  // Move the given value to match[3] whether quoted or unquoted
1567
- match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape );
1569
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
1568
1570
 
1569
1571
  if ( match[2] === "~=" ) {
1570
1572
  match[3] = " " + match[3] + " ";
@@ -1607,15 +1609,15 @@ Expr = Sizzle.selectors = {
1607
1609
 
1608
1610
  "PSEUDO": function( match ) {
1609
1611
  var excess,
1610
- unquoted = !match[5] && match[2];
1612
+ unquoted = !match[6] && match[2];
1611
1613
 
1612
1614
  if ( matchExpr["CHILD"].test( match[0] ) ) {
1613
1615
  return null;
1614
1616
  }
1615
1617
 
1616
1618
  // Accept quoted arguments as-is
1617
- if ( match[3] && match[4] !== undefined ) {
1618
- match[2] = match[4];
1619
+ if ( match[3] ) {
1620
+ match[2] = match[4] || match[5] || "";
1619
1621
 
1620
1622
  // Strip excess characters from unquoted arguments
1621
1623
  } else if ( unquoted && rpseudo.test( unquoted ) &&
@@ -2020,7 +2022,7 @@ function setFilters() {}
2020
2022
  setFilters.prototype = Expr.filters = Expr.pseudos;
2021
2023
  Expr.setFilters = new setFilters();
2022
2024
 
2023
- function tokenize( selector, parseOnly ) {
2025
+ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
2024
2026
  var matched, match, tokens, type,
2025
2027
  soFar, groups, preFilters,
2026
2028
  cached = tokenCache[ selector + " " ];
@@ -2085,7 +2087,7 @@ function tokenize( selector, parseOnly ) {
2085
2087
  Sizzle.error( selector ) :
2086
2088
  // Cache the tokens
2087
2089
  tokenCache( selector, groups ).slice( 0 );
2088
- }
2090
+ };
2089
2091
 
2090
2092
  function toSelector( tokens ) {
2091
2093
  var i = 0,
@@ -2164,6 +2166,15 @@ function elementMatcher( matchers ) {
2164
2166
  matchers[0];
2165
2167
  }
2166
2168
 
2169
+ function multipleContexts( selector, contexts, results ) {
2170
+ var i = 0,
2171
+ len = contexts.length;
2172
+ for ( ; i < len; i++ ) {
2173
+ Sizzle( selector, contexts[i], results );
2174
+ }
2175
+ return results;
2176
+ }
2177
+
2167
2178
  function condense( unmatched, map, filter, context, xml ) {
2168
2179
  var elem,
2169
2180
  newUnmatched = [],
@@ -2432,7 +2443,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
2432
2443
  superMatcher;
2433
2444
  }
2434
2445
 
2435
- compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
2446
+ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
2436
2447
  var i,
2437
2448
  setMatchers = [],
2438
2449
  elementMatchers = [],
@@ -2440,12 +2451,12 @@ compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
2440
2451
 
2441
2452
  if ( !cached ) {
2442
2453
  // Generate a function of recursive functions that can be used to check each element
2443
- if ( !group ) {
2444
- group = tokenize( selector );
2454
+ if ( !match ) {
2455
+ match = tokenize( selector );
2445
2456
  }
2446
- i = group.length;
2457
+ i = match.length;
2447
2458
  while ( i-- ) {
2448
- cached = matcherFromTokens( group[i] );
2459
+ cached = matcherFromTokens( match[i] );
2449
2460
  if ( cached[ expando ] ) {
2450
2461
  setMatchers.push( cached );
2451
2462
  } else {
@@ -2455,74 +2466,83 @@ compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
2455
2466
 
2456
2467
  // Cache the compiled function
2457
2468
  cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
2469
+
2470
+ // Save selector and tokenization
2471
+ cached.selector = selector;
2458
2472
  }
2459
2473
  return cached;
2460
2474
  };
2461
2475
 
2462
- function multipleContexts( selector, contexts, results ) {
2463
- var i = 0,
2464
- len = contexts.length;
2465
- for ( ; i < len; i++ ) {
2466
- Sizzle( selector, contexts[i], results );
2467
- }
2468
- return results;
2469
- }
2470
-
2471
- function select( selector, context, results, seed ) {
2476
+ /**
2477
+ * A low-level selection function that works with Sizzle's compiled
2478
+ * selector functions
2479
+ * @param {String|Function} selector A selector or a pre-compiled
2480
+ * selector function built with Sizzle.compile
2481
+ * @param {Element} context
2482
+ * @param {Array} [results]
2483
+ * @param {Array} [seed] A set of elements to match against
2484
+ */
2485
+ select = Sizzle.select = function( selector, context, results, seed ) {
2472
2486
  var i, tokens, token, type, find,
2473
- match = tokenize( selector );
2487
+ compiled = typeof selector === "function" && selector,
2488
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
2489
+
2490
+ results = results || [];
2474
2491
 
2475
- if ( !seed ) {
2476
- // Try to minimize operations if there is only one group
2477
- if ( match.length === 1 ) {
2492
+ // Try to minimize operations if there is no seed and only one group
2493
+ if ( match.length === 1 ) {
2478
2494
 
2479
- // Take a shortcut and set the context if the root selector is an ID
2480
- tokens = match[0] = match[0].slice( 0 );
2481
- if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
2482
- support.getById && context.nodeType === 9 && documentIsHTML &&
2483
- Expr.relative[ tokens[1].type ] ) {
2495
+ // Take a shortcut and set the context if the root selector is an ID
2496
+ tokens = match[0] = match[0].slice( 0 );
2497
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
2498
+ support.getById && context.nodeType === 9 && documentIsHTML &&
2499
+ Expr.relative[ tokens[1].type ] ) {
2484
2500
 
2485
- context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
2486
- if ( !context ) {
2487
- return results;
2488
- }
2489
- selector = selector.slice( tokens.shift().value.length );
2501
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
2502
+ if ( !context ) {
2503
+ return results;
2504
+
2505
+ // Precompiled matchers will still verify ancestry, so step up a level
2506
+ } else if ( compiled ) {
2507
+ context = context.parentNode;
2490
2508
  }
2491
2509
 
2492
- // Fetch a seed set for right-to-left matching
2493
- i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
2494
- while ( i-- ) {
2495
- token = tokens[i];
2510
+ selector = selector.slice( tokens.shift().value.length );
2511
+ }
2496
2512
 
2497
- // Abort if we hit a combinator
2498
- if ( Expr.relative[ (type = token.type) ] ) {
2499
- break;
2500
- }
2501
- if ( (find = Expr.find[ type ]) ) {
2502
- // Search, expanding context for leading sibling combinators
2503
- if ( (seed = find(
2504
- token.matches[0].replace( runescape, funescape ),
2505
- rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
2506
- )) ) {
2507
-
2508
- // If seed is empty or no tokens remain, we can return early
2509
- tokens.splice( i, 1 );
2510
- selector = seed.length && toSelector( tokens );
2511
- if ( !selector ) {
2512
- push.apply( results, seed );
2513
- return results;
2514
- }
2513
+ // Fetch a seed set for right-to-left matching
2514
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
2515
+ while ( i-- ) {
2516
+ token = tokens[i];
2515
2517
 
2516
- break;
2518
+ // Abort if we hit a combinator
2519
+ if ( Expr.relative[ (type = token.type) ] ) {
2520
+ break;
2521
+ }
2522
+ if ( (find = Expr.find[ type ]) ) {
2523
+ // Search, expanding context for leading sibling combinators
2524
+ if ( (seed = find(
2525
+ token.matches[0].replace( runescape, funescape ),
2526
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
2527
+ )) ) {
2528
+
2529
+ // If seed is empty or no tokens remain, we can return early
2530
+ tokens.splice( i, 1 );
2531
+ selector = seed.length && toSelector( tokens );
2532
+ if ( !selector ) {
2533
+ push.apply( results, seed );
2534
+ return results;
2517
2535
  }
2536
+
2537
+ break;
2518
2538
  }
2519
2539
  }
2520
2540
  }
2521
2541
  }
2522
2542
 
2523
- // Compile and execute a filtering function
2543
+ // Compile and execute a filtering function if one is not provided
2524
2544
  // Provide `match` to avoid retokenization if we modified the selector above
2525
- compile( selector, match )(
2545
+ ( compiled || compile( selector, match ) )(
2526
2546
  seed,
2527
2547
  context,
2528
2548
  !documentIsHTML,
@@ -2530,7 +2550,7 @@ function select( selector, context, results, seed ) {
2530
2550
  rsibling.test( selector ) && testContext( context.parentNode ) || context
2531
2551
  );
2532
2552
  return results;
2533
- }
2553
+ };
2534
2554
 
2535
2555
  // One-time assignments
2536
2556
 
@@ -3423,8 +3443,9 @@ jQuery.extend({
3423
3443
  readyList.resolveWith( document, [ jQuery ] );
3424
3444
 
3425
3445
  // Trigger any bound ready events
3426
- if ( jQuery.fn.trigger ) {
3427
- jQuery( document ).trigger("ready").off("ready");
3446
+ if ( jQuery.fn.triggerHandler ) {
3447
+ jQuery( document ).triggerHandler( "ready" );
3448
+ jQuery( document ).off( "ready" );
3428
3449
  }
3429
3450
  }
3430
3451
  });
@@ -3532,23 +3553,21 @@ support.ownLast = i !== "0";
3532
3553
  // false until the test is run
3533
3554
  support.inlineBlockNeedsLayout = false;
3534
3555
 
3556
+ // Execute ASAP in case we need to set body.style.zoom
3535
3557
  jQuery(function() {
3536
- // We need to execute this one support test ASAP because we need to know
3537
- // if body.style.zoom needs to be set.
3558
+ // Minified: var a,b,c,d
3559
+ var val, div, body, container;
3538
3560
 
3539
- var container, div,
3540
- body = document.getElementsByTagName("body")[0];
3541
-
3542
- if ( !body ) {
3561
+ body = document.getElementsByTagName( "body" )[ 0 ];
3562
+ if ( !body || !body.style ) {
3543
3563
  // Return for frameset docs that don't have a body
3544
3564
  return;
3545
3565
  }
3546
3566
 
3547
3567
  // Setup
3548
- container = document.createElement( "div" );
3549
- container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";
3550
-
3551
3568
  div = document.createElement( "div" );
3569
+ container = document.createElement( "div" );
3570
+ container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
3552
3571
  body.appendChild( container ).appendChild( div );
3553
3572
 
3554
3573
  if ( typeof div.style.zoom !== strundefined ) {
@@ -3556,9 +3575,10 @@ jQuery(function() {
3556
3575
  // Check if natively block-level elements act like inline-block
3557
3576
  // elements when setting their display to 'inline' and giving
3558
3577
  // them layout
3559
- div.style.cssText = "border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1";
3578
+ div.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1";
3560
3579
 
3561
- if ( (support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 )) ) {
3580
+ support.inlineBlockNeedsLayout = val = div.offsetWidth === 3;
3581
+ if ( val ) {
3562
3582
  // Prevent IE 6 from affecting layout for positioned elements #11048
3563
3583
  // Prevent IE from shrinking the body in IE 7 mode #12869
3564
3584
  // Support: IE<8
@@ -3567,9 +3587,6 @@ jQuery(function() {
3567
3587
  }
3568
3588
 
3569
3589
  body.removeChild( container );
3570
-
3571
- // Null elements to avoid leaks in IE
3572
- container = div = null;
3573
3590
  });
3574
3591
 
3575
3592
 
@@ -3892,12 +3909,15 @@ jQuery.fn.extend({
3892
3909
  if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
3893
3910
  i = attrs.length;
3894
3911
  while ( i-- ) {
3895
- name = attrs[i].name;
3896
3912
 
3897
- if ( name.indexOf("data-") === 0 ) {
3898
- name = jQuery.camelCase( name.slice(5) );
3899
-
3900
- dataAttr( elem, name, data[ name ] );
3913
+ // Support: IE11+
3914
+ // The attrs elements can be null (#14894)
3915
+ if ( attrs[ i ] ) {
3916
+ name = attrs[ i ].name;
3917
+ if ( name.indexOf( "data-" ) === 0 ) {
3918
+ name = jQuery.camelCase( name.slice(5) );
3919
+ dataAttr( elem, name, data[ name ] );
3920
+ }
3901
3921
  }
3902
3922
  }
3903
3923
  jQuery._data( elem, "parsedAttrs", true );
@@ -4137,13 +4157,13 @@ var rcheckableType = (/^(?:checkbox|radio)$/i);
4137
4157
 
4138
4158
 
4139
4159
  (function() {
4140
- var fragment = document.createDocumentFragment(),
4141
- div = document.createElement("div"),
4142
- input = document.createElement("input");
4160
+ // Minified: var a,b,c
4161
+ var input = document.createElement( "input" ),
4162
+ div = document.createElement( "div" ),
4163
+ fragment = document.createDocumentFragment();
4143
4164
 
4144
4165
  // Setup
4145
- div.setAttribute( "className", "t" );
4146
- div.innerHTML = " <link/><table></table><a href='/a'>a</a>";
4166
+ div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
4147
4167
 
4148
4168
  // IE strips leading whitespace when .innerHTML is used
4149
4169
  support.leadingWhitespace = div.firstChild.nodeType === 3;
@@ -4203,9 +4223,6 @@ var rcheckableType = (/^(?:checkbox|radio)$/i);
4203
4223
  support.deleteExpando = false;
4204
4224
  }
4205
4225
  }
4206
-
4207
- // Null elements to avoid leaks in IE.
4208
- fragment = div = input = null;
4209
4226
  })();
4210
4227
 
4211
4228
 
@@ -4231,7 +4248,7 @@ var rcheckableType = (/^(?:checkbox|radio)$/i);
4231
4248
 
4232
4249
  var rformElems = /^(?:input|select|textarea)$/i,
4233
4250
  rkeyEvent = /^key/,
4234
- rmouseEvent = /^(?:mouse|contextmenu)|click/,
4251
+ rmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,
4235
4252
  rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
4236
4253
  rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
4237
4254
 
@@ -4834,8 +4851,9 @@ jQuery.event = {
4834
4851
  beforeunload: {
4835
4852
  postDispatch: function( event ) {
4836
4853
 
4837
- // Even when returnValue equals to undefined Firefox will still show alert
4838
- if ( event.result !== undefined ) {
4854
+ // Support: Firefox 20+
4855
+ // Firefox doesn't alert if the returnValue field is not set.
4856
+ if ( event.result !== undefined && event.originalEvent ) {
4839
4857
  event.originalEvent.returnValue = event.result;
4840
4858
  }
4841
4859
  }
@@ -4901,11 +4919,9 @@ jQuery.Event = function( src, props ) {
4901
4919
  // Events bubbling up the document may have been marked as prevented
4902
4920
  // by a handler lower down the tree; reflect the correct value.
4903
4921
  this.isDefaultPrevented = src.defaultPrevented ||
4904
- src.defaultPrevented === undefined && (
4905
- // Support: IE < 9
4906
- src.returnValue === false ||
4907
- // Support: Android < 4.0
4908
- src.getPreventDefault && src.getPreventDefault() ) ?
4922
+ src.defaultPrevented === undefined &&
4923
+ // Support: IE < 9, Android < 4.0
4924
+ src.returnValue === false ?
4909
4925
  returnTrue :
4910
4926
  returnFalse;
4911
4927
 
@@ -4968,7 +4984,14 @@ jQuery.Event.prototype = {
4968
4984
  e.cancelBubble = true;
4969
4985
  },
4970
4986
  stopImmediatePropagation: function() {
4987
+ var e = this.originalEvent;
4988
+
4971
4989
  this.isImmediatePropagationStopped = returnTrue;
4990
+
4991
+ if ( e && e.stopImmediatePropagation ) {
4992
+ e.stopImmediatePropagation();
4993
+ }
4994
+
4972
4995
  this.stopPropagation();
4973
4996
  }
4974
4997
  };
@@ -4976,7 +4999,9 @@ jQuery.Event.prototype = {
4976
4999
  // Create mouseenter/leave events using mouseover/out and event-time checks
4977
5000
  jQuery.each({
4978
5001
  mouseenter: "mouseover",
4979
- mouseleave: "mouseout"
5002
+ mouseleave: "mouseout",
5003
+ pointerenter: "pointerover",
5004
+ pointerleave: "pointerout"
4980
5005
  }, function( orig, fix ) {
4981
5006
  jQuery.event.special[ orig ] = {
4982
5007
  delegateType: fix,
@@ -5980,14 +6005,15 @@ var iframe,
5980
6005
  */
5981
6006
  // Called only from within defaultDisplay
5982
6007
  function actualDisplay( name, doc ) {
5983
- var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
6008
+ var style,
6009
+ elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
5984
6010
 
5985
6011
  // getDefaultComputedStyle might be reliably used only on attached element
5986
- display = window.getDefaultComputedStyle ?
6012
+ display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?
5987
6013
 
5988
6014
  // Use of this method is a temporary fix (more like optmization) until something better comes along,
5989
6015
  // since it was removed from specification and supported only in FF
5990
- window.getDefaultComputedStyle( elem[ 0 ] ).display : jQuery.css( elem[ 0 ], "display" );
6016
+ style.display : jQuery.css( elem[ 0 ], "display" );
5991
6017
 
5992
6018
  // We don't have any data stored on the element,
5993
6019
  // so use "detach" method as fast way to get rid of the element
@@ -6033,68 +6059,47 @@ function defaultDisplay( nodeName ) {
6033
6059
 
6034
6060
 
6035
6061
  (function() {
6036
- var a, shrinkWrapBlocksVal,
6037
- div = document.createElement( "div" ),
6038
- divReset =
6039
- "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" +
6040
- "display:block;padding:0;margin:0;border:0";
6041
-
6042
- // Setup
6043
- div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
6044
- a = div.getElementsByTagName( "a" )[ 0 ];
6045
-
6046
- a.style.cssText = "float:left;opacity:.5";
6047
-
6048
- // Make sure that element opacity exists
6049
- // (IE uses filter instead)
6050
- // Use a regex to work around a WebKit issue. See #5145
6051
- support.opacity = /^0.5/.test( a.style.opacity );
6052
-
6053
- // Verify style float existence
6054
- // (IE uses styleFloat instead of cssFloat)
6055
- support.cssFloat = !!a.style.cssFloat;
6056
-
6057
- div.style.backgroundClip = "content-box";
6058
- div.cloneNode( true ).style.backgroundClip = "";
6059
- support.clearCloneStyle = div.style.backgroundClip === "content-box";
6060
-
6061
- // Null elements to avoid leaks in IE.
6062
- a = div = null;
6062
+ var shrinkWrapBlocksVal;
6063
6063
 
6064
6064
  support.shrinkWrapBlocks = function() {
6065
- var body, container, div, containerStyles;
6066
-
6067
- if ( shrinkWrapBlocksVal == null ) {
6068
- body = document.getElementsByTagName( "body" )[ 0 ];
6069
- if ( !body ) {
6070
- // Test fired too early or in an unsupported environment, exit.
6071
- return;
6072
- }
6073
-
6074
- containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px";
6075
- container = document.createElement( "div" );
6076
- div = document.createElement( "div" );
6065
+ if ( shrinkWrapBlocksVal != null ) {
6066
+ return shrinkWrapBlocksVal;
6067
+ }
6077
6068
 
6078
- body.appendChild( container ).appendChild( div );
6069
+ // Will be changed later if needed.
6070
+ shrinkWrapBlocksVal = false;
6079
6071
 
6080
- // Will be changed later if needed.
6081
- shrinkWrapBlocksVal = false;
6072
+ // Minified: var b,c,d
6073
+ var div, body, container;
6082
6074
 
6083
- if ( typeof div.style.zoom !== strundefined ) {
6084
- // Support: IE6
6085
- // Check if elements with layout shrink-wrap their children
6086
- div.style.cssText = divReset + ";width:1px;padding:1px;zoom:1";
6087
- div.innerHTML = "<div></div>";
6088
- div.firstChild.style.width = "5px";
6089
- shrinkWrapBlocksVal = div.offsetWidth !== 3;
6090
- }
6075
+ body = document.getElementsByTagName( "body" )[ 0 ];
6076
+ if ( !body || !body.style ) {
6077
+ // Test fired too early or in an unsupported environment, exit.
6078
+ return;
6079
+ }
6091
6080
 
6092
- body.removeChild( container );
6081
+ // Setup
6082
+ div = document.createElement( "div" );
6083
+ container = document.createElement( "div" );
6084
+ container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
6085
+ body.appendChild( container ).appendChild( div );
6093
6086
 
6094
- // Null elements to avoid leaks in IE.
6095
- body = container = div = null;
6087
+ // Support: IE6
6088
+ // Check if elements with layout shrink-wrap their children
6089
+ if ( typeof div.style.zoom !== strundefined ) {
6090
+ // Reset CSS: box-sizing; display; margin; border
6091
+ div.style.cssText =
6092
+ // Support: Firefox<29, Android 2.3
6093
+ // Vendor-prefix box-sizing
6094
+ "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
6095
+ "box-sizing:content-box;display:block;margin:0;border:0;" +
6096
+ "padding:1px;width:1px;zoom:1";
6097
+ div.appendChild( document.createElement( "div" ) ).style.width = "5px";
6098
+ shrinkWrapBlocksVal = div.offsetWidth !== 3;
6096
6099
  }
6097
6100
 
6101
+ body.removeChild( container );
6102
+
6098
6103
  return shrinkWrapBlocksVal;
6099
6104
  };
6100
6105
 
@@ -6242,92 +6247,46 @@ function addGetHookIf( conditionFn, hookFn ) {
6242
6247
 
6243
6248
 
6244
6249
  (function() {
6245
- var a, reliableHiddenOffsetsVal, boxSizingVal, boxSizingReliableVal,
6246
- pixelPositionVal, reliableMarginRightVal,
6247
- div = document.createElement( "div" ),
6248
- containerStyles = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px",
6249
- divReset =
6250
- "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;" +
6251
- "display:block;padding:0;margin:0;border:0";
6250
+ // Minified: var b,c,d,e,f,g, h,i
6251
+ var div, style, a, pixelPositionVal, boxSizingReliableVal,
6252
+ reliableHiddenOffsetsVal, reliableMarginRightVal;
6252
6253
 
6253
6254
  // Setup
6255
+ div = document.createElement( "div" );
6254
6256
  div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
6255
6257
  a = div.getElementsByTagName( "a" )[ 0 ];
6258
+ style = a && a.style;
6256
6259
 
6257
- a.style.cssText = "float:left;opacity:.5";
6260
+ // Finish early in limited (non-browser) environments
6261
+ if ( !style ) {
6262
+ return;
6263
+ }
6258
6264
 
6259
- // Make sure that element opacity exists
6260
- // (IE uses filter instead)
6261
- // Use a regex to work around a WebKit issue. See #5145
6262
- support.opacity = /^0.5/.test( a.style.opacity );
6265
+ style.cssText = "float:left;opacity:.5";
6266
+
6267
+ // Support: IE<9
6268
+ // Make sure that element opacity exists (as opposed to filter)
6269
+ support.opacity = style.opacity === "0.5";
6263
6270
 
6264
6271
  // Verify style float existence
6265
6272
  // (IE uses styleFloat instead of cssFloat)
6266
- support.cssFloat = !!a.style.cssFloat;
6273
+ support.cssFloat = !!style.cssFloat;
6267
6274
 
6268
6275
  div.style.backgroundClip = "content-box";
6269
6276
  div.cloneNode( true ).style.backgroundClip = "";
6270
6277
  support.clearCloneStyle = div.style.backgroundClip === "content-box";
6271
6278
 
6272
- // Null elements to avoid leaks in IE.
6273
- a = div = null;
6279
+ // Support: Firefox<29, Android 2.3
6280
+ // Vendor-prefix box-sizing
6281
+ support.boxSizing = style.boxSizing === "" || style.MozBoxSizing === "" ||
6282
+ style.WebkitBoxSizing === "";
6274
6283
 
6275
6284
  jQuery.extend(support, {
6276
6285
  reliableHiddenOffsets: function() {
6277
- if ( reliableHiddenOffsetsVal != null ) {
6278
- return reliableHiddenOffsetsVal;
6279
- }
6280
-
6281
- var container, tds, isSupported,
6282
- div = document.createElement( "div" ),
6283
- body = document.getElementsByTagName( "body" )[ 0 ];
6284
-
6285
- if ( !body ) {
6286
- // Return for frameset docs that don't have a body
6287
- return;
6288
- }
6289
-
6290
- // Setup
6291
- div.setAttribute( "className", "t" );
6292
- div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
6293
-
6294
- container = document.createElement( "div" );
6295
- container.style.cssText = containerStyles;
6296
-
6297
- body.appendChild( container ).appendChild( div );
6298
-
6299
- // Support: IE8
6300
- // Check if table cells still have offsetWidth/Height when they are set
6301
- // to display:none and there are still other visible table cells in a
6302
- // table row; if so, offsetWidth/Height are not reliable for use when
6303
- // determining if an element has been hidden directly using
6304
- // display:none (it is still safe to use offsets if a parent element is
6305
- // hidden; don safety goggles and see bug #4512 for more information).
6306
- div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
6307
- tds = div.getElementsByTagName( "td" );
6308
- tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
6309
- isSupported = ( tds[ 0 ].offsetHeight === 0 );
6310
-
6311
- tds[ 0 ].style.display = "";
6312
- tds[ 1 ].style.display = "none";
6313
-
6314
- // Support: IE8
6315
- // Check if empty table cells still have offsetWidth/Height
6316
- reliableHiddenOffsetsVal = isSupported && ( tds[ 0 ].offsetHeight === 0 );
6317
-
6318
- body.removeChild( container );
6319
-
6320
- // Null elements to avoid leaks in IE.
6321
- div = body = null;
6322
-
6323
- return reliableHiddenOffsetsVal;
6324
- },
6325
-
6326
- boxSizing: function() {
6327
- if ( boxSizingVal == null ) {
6286
+ if ( reliableHiddenOffsetsVal == null ) {
6328
6287
  computeStyleTests();
6329
6288
  }
6330
- return boxSizingVal;
6289
+ return reliableHiddenOffsetsVal;
6331
6290
  },
6332
6291
 
6333
6292
  boxSizingReliable: function() {
@@ -6344,84 +6303,86 @@ function addGetHookIf( conditionFn, hookFn ) {
6344
6303
  return pixelPositionVal;
6345
6304
  },
6346
6305
 
6306
+ // Support: Android 2.3
6347
6307
  reliableMarginRight: function() {
6348
- var body, container, div, marginDiv;
6349
-
6350
- // Use window.getComputedStyle because jsdom on node.js will break without it.
6351
- if ( reliableMarginRightVal == null && window.getComputedStyle ) {
6352
- body = document.getElementsByTagName( "body" )[ 0 ];
6353
- if ( !body ) {
6354
- // Test fired too early or in an unsupported environment, exit.
6355
- return;
6356
- }
6357
-
6358
- container = document.createElement( "div" );
6359
- div = document.createElement( "div" );
6360
- container.style.cssText = containerStyles;
6361
-
6362
- body.appendChild( container ).appendChild( div );
6363
-
6364
- // Check if div with explicit width and no margin-right incorrectly
6365
- // gets computed margin-right based on width of container. (#3333)
6366
- // Fails in WebKit before Feb 2011 nightlies
6367
- // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
6368
- marginDiv = div.appendChild( document.createElement( "div" ) );
6369
- marginDiv.style.cssText = div.style.cssText = divReset;
6370
- marginDiv.style.marginRight = marginDiv.style.width = "0";
6371
- div.style.width = "1px";
6372
-
6373
- reliableMarginRightVal =
6374
- !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
6375
-
6376
- body.removeChild( container );
6308
+ if ( reliableMarginRightVal == null ) {
6309
+ computeStyleTests();
6377
6310
  }
6378
-
6379
6311
  return reliableMarginRightVal;
6380
6312
  }
6381
6313
  });
6382
6314
 
6383
6315
  function computeStyleTests() {
6384
- var container, div,
6385
- body = document.getElementsByTagName( "body" )[ 0 ];
6316
+ // Minified: var b,c,d,j
6317
+ var div, body, container, contents;
6386
6318
 
6387
- if ( !body ) {
6319
+ body = document.getElementsByTagName( "body" )[ 0 ];
6320
+ if ( !body || !body.style ) {
6388
6321
  // Test fired too early or in an unsupported environment, exit.
6389
6322
  return;
6390
6323
  }
6391
6324
 
6392
- container = document.createElement( "div" );
6325
+ // Setup
6393
6326
  div = document.createElement( "div" );
6394
- container.style.cssText = containerStyles;
6395
-
6327
+ container = document.createElement( "div" );
6328
+ container.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px";
6396
6329
  body.appendChild( container ).appendChild( div );
6397
6330
 
6398
6331
  div.style.cssText =
6399
- "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;" +
6400
- "position:absolute;display:block;padding:1px;border:1px;width:4px;" +
6401
- "margin-top:1%;top:1%";
6402
-
6403
- // Workaround failing boxSizing test due to offsetWidth returning wrong value
6404
- // with some non-1 values of body zoom, ticket #13543
6405
- jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {
6406
- boxSizingVal = div.offsetWidth === 4;
6407
- });
6332
+ // Support: Firefox<29, Android 2.3
6333
+ // Vendor-prefix box-sizing
6334
+ "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" +
6335
+ "box-sizing:border-box;display:block;margin-top:1%;top:1%;" +
6336
+ "border:1px;padding:1px;width:4px;position:absolute";
6408
6337
 
6409
- // Will be changed later if needed.
6410
- boxSizingReliableVal = true;
6411
- pixelPositionVal = false;
6338
+ // Support: IE<9
6339
+ // Assume reasonable values in the absence of getComputedStyle
6340
+ pixelPositionVal = boxSizingReliableVal = false;
6412
6341
  reliableMarginRightVal = true;
6413
6342
 
6414
- // Use window.getComputedStyle because jsdom on node.js will break without it.
6343
+ // Check for getComputedStyle so that this code is not run in IE<9.
6415
6344
  if ( window.getComputedStyle ) {
6416
6345
  pixelPositionVal = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
6417
6346
  boxSizingReliableVal =
6418
6347
  ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
6348
+
6349
+ // Support: Android 2.3
6350
+ // Div with explicit width and no margin-right incorrectly
6351
+ // gets computed margin-right based on width of container (#3333)
6352
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
6353
+ contents = div.appendChild( document.createElement( "div" ) );
6354
+
6355
+ // Reset CSS: box-sizing; display; margin; border; padding
6356
+ contents.style.cssText = div.style.cssText =
6357
+ // Support: Firefox<29, Android 2.3
6358
+ // Vendor-prefix box-sizing
6359
+ "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
6360
+ "box-sizing:content-box;display:block;margin:0;border:0;padding:0";
6361
+ contents.style.marginRight = contents.style.width = "0";
6362
+ div.style.width = "1px";
6363
+
6364
+ reliableMarginRightVal =
6365
+ !parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight );
6366
+ }
6367
+
6368
+ // Support: IE8
6369
+ // Check if table cells still have offsetWidth/Height when they are set
6370
+ // to display:none and there are still other visible table cells in a
6371
+ // table row; if so, offsetWidth/Height are not reliable for use when
6372
+ // determining if an element has been hidden directly using
6373
+ // display:none (it is still safe to use offsets if a parent element is
6374
+ // hidden; don safety goggles and see bug #4512 for more information).
6375
+ div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
6376
+ contents = div.getElementsByTagName( "td" );
6377
+ contents[ 0 ].style.cssText = "margin:0;border:0;padding:0;display:none";
6378
+ reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
6379
+ if ( reliableHiddenOffsetsVal ) {
6380
+ contents[ 0 ].style.display = "";
6381
+ contents[ 1 ].style.display = "none";
6382
+ reliableHiddenOffsetsVal = contents[ 0 ].offsetHeight === 0;
6419
6383
  }
6420
6384
 
6421
6385
  body.removeChild( container );
6422
-
6423
- // Null elements to avoid leaks in IE.
6424
- div = body = null;
6425
6386
  }
6426
6387
 
6427
6388
  })();
@@ -6461,8 +6422,8 @@ var
6461
6422
 
6462
6423
  cssShow = { position: "absolute", visibility: "hidden", display: "block" },
6463
6424
  cssNormalTransform = {
6464
- letterSpacing: 0,
6465
- fontWeight: 400
6425
+ letterSpacing: "0",
6426
+ fontWeight: "400"
6466
6427
  },
6467
6428
 
6468
6429
  cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
@@ -6519,13 +6480,10 @@ function showHide( elements, show ) {
6519
6480
  values[ index ] = jQuery._data( elem, "olddisplay", defaultDisplay(elem.nodeName) );
6520
6481
  }
6521
6482
  } else {
6483
+ hidden = isHidden( elem );
6522
6484
 
6523
- if ( !values[ index ] ) {
6524
- hidden = isHidden( elem );
6525
-
6526
- if ( display && display !== "none" || !hidden ) {
6527
- jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
6528
- }
6485
+ if ( display && display !== "none" || !hidden ) {
6486
+ jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
6529
6487
  }
6530
6488
  }
6531
6489
  }
@@ -6598,7 +6556,7 @@ function getWidthOrHeight( elem, name, extra ) {
6598
6556
  var valueIsBorderBox = true,
6599
6557
  val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
6600
6558
  styles = getStyles( elem ),
6601
- isBorderBox = support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
6559
+ isBorderBox = support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
6602
6560
 
6603
6561
  // some non-html elements return undefined for offsetWidth, so check for null/undefined
6604
6562
  // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
@@ -6654,6 +6612,8 @@ jQuery.extend({
6654
6612
  cssNumber: {
6655
6613
  "columnCount": true,
6656
6614
  "fillOpacity": true,
6615
+ "flexGrow": true,
6616
+ "flexShrink": true,
6657
6617
  "fontWeight": true,
6658
6618
  "lineHeight": true,
6659
6619
  "opacity": true,
@@ -6722,9 +6682,6 @@ jQuery.extend({
6722
6682
  // Support: IE
6723
6683
  // Swallow errors from 'invalid' CSS values (#5509)
6724
6684
  try {
6725
- // Support: Chrome, Safari
6726
- // Setting style to blank string required to delete "style: x !important;"
6727
- style[ name ] = "";
6728
6685
  style[ name ] = value;
6729
6686
  } catch(e) {}
6730
6687
  }
@@ -6781,7 +6738,7 @@ jQuery.each([ "height", "width" ], function( i, name ) {
6781
6738
  if ( computed ) {
6782
6739
  // certain elements can have dimension info if we invisibly show them
6783
6740
  // however, it must have a current display style that would benefit from this
6784
- return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ?
6741
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ?
6785
6742
  jQuery.swap( elem, cssShow, function() {
6786
6743
  return getWidthOrHeight( elem, name, extra );
6787
6744
  }) :
@@ -6796,7 +6753,7 @@ jQuery.each([ "height", "width" ], function( i, name ) {
6796
6753
  elem,
6797
6754
  name,
6798
6755
  extra,
6799
- support.boxSizing() && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6756
+ support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6800
6757
  styles
6801
6758
  ) : 0
6802
6759
  );
@@ -7145,7 +7102,7 @@ function createTween( value, prop, animation ) {
7145
7102
 
7146
7103
  function defaultPrefilter( elem, props, opts ) {
7147
7104
  /* jshint validthis: true */
7148
- var prop, value, toggle, tween, hooks, oldfire, display, dDisplay,
7105
+ var prop, value, toggle, tween, hooks, oldfire, display, checkDisplay,
7149
7106
  anim = this,
7150
7107
  orig = {},
7151
7108
  style = elem.style,
@@ -7189,16 +7146,16 @@ function defaultPrefilter( elem, props, opts ) {
7189
7146
  // Set display property to inline-block for height/width
7190
7147
  // animations on inline elements that are having width/height animated
7191
7148
  display = jQuery.css( elem, "display" );
7192
- dDisplay = defaultDisplay( elem.nodeName );
7193
- if ( display === "none" ) {
7194
- display = dDisplay;
7195
- }
7196
- if ( display === "inline" &&
7197
- jQuery.css( elem, "float" ) === "none" ) {
7149
+
7150
+ // Test default display if display is currently "none"
7151
+ checkDisplay = display === "none" ?
7152
+ jQuery._data( elem, "olddisplay" ) || defaultDisplay( elem.nodeName ) : display;
7153
+
7154
+ if ( checkDisplay === "inline" && jQuery.css( elem, "float" ) === "none" ) {
7198
7155
 
7199
7156
  // inline-level elements accept inline-block;
7200
7157
  // block-level elements need to be inline with layout
7201
- if ( !support.inlineBlockNeedsLayout || dDisplay === "inline" ) {
7158
+ if ( !support.inlineBlockNeedsLayout || defaultDisplay( elem.nodeName ) === "inline" ) {
7202
7159
  style.display = "inline-block";
7203
7160
  } else {
7204
7161
  style.zoom = 1;
@@ -7233,6 +7190,10 @@ function defaultPrefilter( elem, props, opts ) {
7233
7190
  }
7234
7191
  }
7235
7192
  orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
7193
+
7194
+ // Any non-fx value stops us from restoring the original display value
7195
+ } else {
7196
+ display = undefined;
7236
7197
  }
7237
7198
  }
7238
7199
 
@@ -7274,6 +7235,10 @@ function defaultPrefilter( elem, props, opts ) {
7274
7235
  }
7275
7236
  }
7276
7237
  }
7238
+
7239
+ // If this is a noop like .hide().hide(), restore an overwritten display value
7240
+ } else if ( (display === "none" ? defaultDisplay( elem.nodeName ) : display) === "inline" ) {
7241
+ style.display = display;
7277
7242
  }
7278
7243
  }
7279
7244
 
@@ -7690,10 +7655,11 @@ jQuery.fn.delay = function( time, type ) {
7690
7655
 
7691
7656
 
7692
7657
  (function() {
7693
- var a, input, select, opt,
7694
- div = document.createElement("div" );
7658
+ // Minified: var a,b,c,d,e
7659
+ var input, div, select, a, opt;
7695
7660
 
7696
7661
  // Setup
7662
+ div = document.createElement( "div" );
7697
7663
  div.setAttribute( "className", "t" );
7698
7664
  div.innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
7699
7665
  a = div.getElementsByTagName("a")[ 0 ];
@@ -7741,9 +7707,6 @@ jQuery.fn.delay = function( time, type ) {
7741
7707
  input.value = "t";
7742
7708
  input.setAttribute( "type", "radio" );
7743
7709
  support.radioValue = input.value === "t";
7744
-
7745
- // Null elements to avoid leaks in IE.
7746
- a = input = select = opt = div = null;
7747
7710
  })();
7748
7711
 
7749
7712
 
@@ -7817,7 +7780,9 @@ jQuery.extend({
7817
7780
  var val = jQuery.find.attr( elem, "value" );
7818
7781
  return val != null ?
7819
7782
  val :
7820
- jQuery.text( elem );
7783
+ // Support: IE10-11+
7784
+ // option.text throws exceptions (#14686, #14858)
7785
+ jQuery.trim( jQuery.text( elem ) );
7821
7786
  }
7822
7787
  },
7823
7788
  select: {
@@ -9981,7 +9946,7 @@ jQuery.fn.load = function( url, params, callback ) {
9981
9946
  off = url.indexOf(" ");
9982
9947
 
9983
9948
  if ( off >= 0 ) {
9984
- selector = url.slice( off, url.length );
9949
+ selector = jQuery.trim( url.slice( off, url.length ) );
9985
9950
  url = url.slice( 0, off );
9986
9951
  }
9987
9952
 
@@ -10294,6 +10259,12 @@ jQuery.fn.andSelf = jQuery.fn.addBack;
10294
10259
  // derived from file names, and jQuery is normally delivered in a lowercase
10295
10260
  // file name. Do this after creating the global so that if an AMD module wants
10296
10261
  // to call noConflict to hide this version of jQuery, it will work.
10262
+
10263
+ // Note that for maximum portability, libraries that are not jQuery should
10264
+ // declare themselves as anonymous modules, and avoid setting a global if an
10265
+ // AMD loader is present. jQuery is a special case. For more information, see
10266
+ // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon
10267
+
10297
10268
  if ( typeof define === "function" && define.amd ) {
10298
10269
  define( "jquery", [], function() {
10299
10270
  return jQuery;