jekyll-theme-clean-blog 4.0.7 → 4.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/assets/vendor/bootstrap/css/bootstrap.css +378 -227
  3. data/assets/vendor/bootstrap/css/bootstrap.css.map +1 -1
  4. data/assets/vendor/bootstrap/css/bootstrap.min.css +4 -4
  5. data/assets/vendor/bootstrap/css/bootstrap.min.css.map +1 -1
  6. data/assets/vendor/bootstrap/js/bootstrap.bundle.js +302 -107
  7. data/assets/vendor/bootstrap/js/bootstrap.bundle.js.map +1 -1
  8. data/assets/vendor/bootstrap/js/bootstrap.bundle.min.js +3 -3
  9. data/assets/vendor/bootstrap/js/bootstrap.bundle.min.js.map +1 -1
  10. data/assets/vendor/bootstrap/js/bootstrap.js +287 -101
  11. data/assets/vendor/bootstrap/js/bootstrap.js.map +1 -1
  12. data/assets/vendor/bootstrap/js/bootstrap.min.js +3 -3
  13. data/assets/vendor/bootstrap/js/bootstrap.min.js.map +1 -1
  14. data/assets/vendor/fontawesome-free/css/all.css +106 -4
  15. data/assets/vendor/fontawesome-free/css/all.min.css +2 -2
  16. data/assets/vendor/fontawesome-free/css/brands.css +4 -0
  17. data/assets/vendor/fontawesome-free/css/brands.min.css +4 -0
  18. data/assets/vendor/fontawesome-free/css/fontawesome.css +109 -3
  19. data/assets/vendor/fontawesome-free/css/fontawesome.min.css +5 -1
  20. data/assets/vendor/fontawesome-free/css/regular.css +4 -0
  21. data/assets/vendor/fontawesome-free/css/regular.min.css +4 -0
  22. data/assets/vendor/fontawesome-free/css/solid.css +4 -0
  23. data/assets/vendor/fontawesome-free/css/solid.min.css +4 -0
  24. data/assets/vendor/fontawesome-free/css/svg-with-js.css +4 -0
  25. data/assets/vendor/fontawesome-free/css/svg-with-js.min.css +4 -0
  26. data/assets/vendor/fontawesome-free/css/v4-shims.css +4 -0
  27. data/assets/vendor/fontawesome-free/css/v4-shims.min.css +4 -0
  28. data/assets/vendor/fontawesome-free/js/all.js +190 -132
  29. data/assets/vendor/fontawesome-free/js/all.min.js +5 -1
  30. data/assets/vendor/fontawesome-free/js/brands.js +74 -57
  31. data/assets/vendor/fontawesome-free/js/brands.min.js +5 -1
  32. data/assets/vendor/fontawesome-free/js/fontawesome.js +51 -27
  33. data/assets/vendor/fontawesome-free/js/fontawesome.min.js +5 -1
  34. data/assets/vendor/fontawesome-free/js/regular.js +4 -0
  35. data/assets/vendor/fontawesome-free/js/regular.min.js +4 -0
  36. data/assets/vendor/fontawesome-free/js/solid.js +73 -48
  37. data/assets/vendor/fontawesome-free/js/solid.min.js +5 -1
  38. data/assets/vendor/fontawesome-free/js/v4-shims.js +4 -0
  39. data/assets/vendor/fontawesome-free/js/v4-shims.min.js +4 -0
  40. data/assets/vendor/fontawesome-free/less/_icons.less +35 -1
  41. data/assets/vendor/fontawesome-free/less/_list.less +1 -1
  42. data/assets/vendor/fontawesome-free/less/_mixins.less +0 -1
  43. data/assets/vendor/fontawesome-free/less/_variables.less +36 -2
  44. data/assets/vendor/fontawesome-free/less/brands.less +4 -0
  45. data/assets/vendor/fontawesome-free/less/fontawesome.less +4 -0
  46. data/assets/vendor/fontawesome-free/less/regular.less +4 -0
  47. data/assets/vendor/fontawesome-free/less/solid.less +4 -0
  48. data/assets/vendor/fontawesome-free/less/v4-shims.less +4 -0
  49. data/assets/vendor/fontawesome-free/package.json +31 -53
  50. data/assets/vendor/fontawesome-free/scss/_icons.scss +35 -1
  51. data/assets/vendor/fontawesome-free/scss/_mixins.scss +0 -1
  52. data/assets/vendor/fontawesome-free/scss/_variables.scss +37 -3
  53. data/assets/vendor/fontawesome-free/scss/brands.scss +4 -0
  54. data/assets/vendor/fontawesome-free/scss/fontawesome.scss +4 -0
  55. data/assets/vendor/fontawesome-free/scss/regular.scss +4 -0
  56. data/assets/vendor/fontawesome-free/scss/solid.scss +4 -0
  57. data/assets/vendor/fontawesome-free/scss/v4-shims.scss +4 -0
  58. data/assets/vendor/fontawesome-free/sprites/brands.svg +155 -527
  59. data/assets/vendor/fontawesome-free/sprites/regular.svg +4 -152
  60. data/assets/vendor/fontawesome-free/sprites/solid.svg +121 -990
  61. data/assets/vendor/fontawesome-free/svgs/brands/acquisitions-incorporated.svg +1 -1
  62. data/assets/vendor/fontawesome-free/svgs/brands/adobe.svg +1 -1
  63. data/assets/vendor/fontawesome-free/svgs/brands/airbnb.svg +1 -0
  64. data/assets/vendor/fontawesome-free/svgs/brands/amazon-pay.svg +1 -1
  65. data/assets/vendor/fontawesome-free/svgs/brands/angular.svg +1 -1
  66. data/assets/vendor/fontawesome-free/svgs/brands/apple.svg +1 -1
  67. data/assets/vendor/fontawesome-free/svgs/brands/artstation.svg +1 -1
  68. data/assets/vendor/fontawesome-free/svgs/brands/battle-net.svg +1 -0
  69. data/assets/vendor/fontawesome-free/svgs/brands/bitbucket.svg +1 -1
  70. data/assets/vendor/fontawesome-free/svgs/brands/bootstrap.svg +1 -0
  71. data/assets/vendor/fontawesome-free/svgs/brands/buffer.svg +1 -0
  72. data/assets/vendor/fontawesome-free/svgs/brands/canadian-maple-leaf.svg +1 -1
  73. data/assets/vendor/fontawesome-free/svgs/brands/centos.svg +1 -1
  74. data/assets/vendor/fontawesome-free/svgs/brands/chromecast.svg +1 -0
  75. data/assets/vendor/fontawesome-free/svgs/brands/critical-role.svg +1 -1
  76. data/assets/vendor/fontawesome-free/svgs/brands/diaspora.svg +1 -1
  77. data/assets/vendor/fontawesome-free/svgs/brands/evernote.svg +1 -0
  78. data/assets/vendor/fontawesome-free/svgs/brands/facebook-f.svg +1 -1
  79. data/assets/vendor/fontawesome-free/svgs/brands/facebook-messenger.svg +1 -1
  80. data/assets/vendor/fontawesome-free/svgs/brands/facebook-square.svg +1 -1
  81. data/assets/vendor/fontawesome-free/svgs/brands/facebook.svg +1 -1
  82. data/assets/vendor/fontawesome-free/svgs/brands/fedora.svg +1 -1
  83. data/assets/vendor/fontawesome-free/svgs/brands/figma.svg +1 -1
  84. data/assets/vendor/fontawesome-free/svgs/brands/fulcrum.svg +1 -1
  85. data/assets/vendor/fontawesome-free/svgs/brands/git-alt.svg +1 -0
  86. data/assets/vendor/fontawesome-free/svgs/brands/git-square.svg +1 -1
  87. data/assets/vendor/fontawesome-free/svgs/brands/git.svg +1 -1
  88. data/assets/vendor/fontawesome-free/svgs/brands/hackerrank.svg +1 -1
  89. data/assets/vendor/fontawesome-free/svgs/brands/hornbill.svg +1 -1
  90. data/assets/vendor/fontawesome-free/svgs/brands/houzz.svg +1 -1
  91. data/assets/vendor/fontawesome-free/svgs/brands/itch-io.svg +1 -0
  92. data/assets/vendor/fontawesome-free/svgs/brands/java.svg +1 -1
  93. data/assets/vendor/fontawesome-free/svgs/brands/kaggle.svg +1 -1
  94. data/assets/vendor/fontawesome-free/svgs/brands/keybase.svg +1 -1
  95. data/assets/vendor/fontawesome-free/svgs/brands/linkedin-in.svg +1 -1
  96. data/assets/vendor/fontawesome-free/svgs/brands/mailchimp.svg +1 -1
  97. data/assets/vendor/fontawesome-free/svgs/brands/mandalorian.svg +1 -1
  98. data/assets/vendor/fontawesome-free/svgs/brands/mastodon.svg +1 -1
  99. data/assets/vendor/fontawesome-free/svgs/brands/neos.svg +1 -1
  100. data/assets/vendor/fontawesome-free/svgs/brands/nimblr.svg +1 -1
  101. data/assets/vendor/fontawesome-free/svgs/brands/osi.svg +1 -1
  102. data/assets/vendor/fontawesome-free/svgs/brands/phoenix-squadron.svg +1 -1
  103. data/assets/vendor/fontawesome-free/svgs/brands/quinscape.svg +1 -1
  104. data/assets/vendor/fontawesome-free/svgs/brands/reacteurope.svg +1 -1
  105. data/assets/vendor/fontawesome-free/svgs/brands/redhat.svg +1 -1
  106. data/assets/vendor/fontawesome-free/svgs/brands/rev.svg +1 -1
  107. data/assets/vendor/fontawesome-free/svgs/brands/rocketchat.svg +1 -1
  108. data/assets/vendor/fontawesome-free/svgs/brands/salesforce.svg +1 -0
  109. data/assets/vendor/fontawesome-free/svgs/brands/sass.svg +1 -1
  110. data/assets/vendor/fontawesome-free/svgs/brands/shopware.svg +1 -1
  111. data/assets/vendor/fontawesome-free/svgs/brands/sketch.svg +1 -1
  112. data/assets/vendor/fontawesome-free/svgs/brands/sourcetree.svg +1 -1
  113. data/assets/vendor/fontawesome-free/svgs/brands/speakap.svg +1 -1
  114. data/assets/vendor/fontawesome-free/svgs/brands/speaker-deck.svg +1 -0
  115. data/assets/vendor/fontawesome-free/svgs/brands/stackpath.svg +1 -0
  116. data/assets/vendor/fontawesome-free/svgs/brands/strava.svg +1 -1
  117. data/assets/vendor/fontawesome-free/svgs/brands/stripe-s.svg +1 -1
  118. data/assets/vendor/fontawesome-free/svgs/brands/suse.svg +1 -1
  119. data/assets/vendor/fontawesome-free/svgs/brands/symfony.svg +1 -0
  120. data/assets/vendor/fontawesome-free/svgs/brands/teamspeak.svg +1 -1
  121. data/assets/vendor/fontawesome-free/svgs/brands/the-red-yeti.svg +1 -1
  122. data/assets/vendor/fontawesome-free/svgs/brands/themeco.svg +1 -1
  123. data/assets/vendor/fontawesome-free/svgs/brands/think-peaks.svg +1 -1
  124. data/assets/vendor/fontawesome-free/svgs/brands/typo3.svg +1 -1
  125. data/assets/vendor/fontawesome-free/svgs/brands/ups.svg +1 -1
  126. data/assets/vendor/fontawesome-free/svgs/brands/usps.svg +1 -1
  127. data/assets/vendor/fontawesome-free/svgs/brands/waze.svg +1 -0
  128. data/assets/vendor/fontawesome-free/svgs/brands/wolf-pack-battalion.svg +1 -1
  129. data/assets/vendor/fontawesome-free/svgs/brands/yammer.svg +1 -0
  130. data/assets/vendor/fontawesome-free/svgs/brands/yelp.svg +1 -1
  131. data/assets/vendor/fontawesome-free/svgs/solid/align-center.svg +1 -1
  132. data/assets/vendor/fontawesome-free/svgs/solid/align-justify.svg +1 -1
  133. data/assets/vendor/fontawesome-free/svgs/solid/align-left.svg +1 -1
  134. data/assets/vendor/fontawesome-free/svgs/solid/align-right.svg +1 -1
  135. data/assets/vendor/fontawesome-free/svgs/solid/balance-scale-left.svg +1 -0
  136. data/assets/vendor/fontawesome-free/svgs/solid/balance-scale-right.svg +1 -0
  137. data/assets/vendor/fontawesome-free/svgs/solid/biking.svg +1 -0
  138. data/assets/vendor/fontawesome-free/svgs/solid/bold.svg +1 -1
  139. data/assets/vendor/fontawesome-free/svgs/solid/border-all.svg +1 -0
  140. data/assets/vendor/fontawesome-free/svgs/solid/border-none.svg +1 -0
  141. data/assets/vendor/fontawesome-free/svgs/solid/border-style.svg +1 -0
  142. data/assets/vendor/fontawesome-free/svgs/solid/brain.svg +1 -1
  143. data/assets/vendor/fontawesome-free/svgs/solid/check-double.svg +1 -1
  144. data/assets/vendor/fontawesome-free/svgs/solid/chess-bishop.svg +1 -1
  145. data/assets/vendor/fontawesome-free/svgs/solid/chess-board.svg +1 -1
  146. data/assets/vendor/fontawesome-free/svgs/solid/chess-king.svg +1 -1
  147. data/assets/vendor/fontawesome-free/svgs/solid/chess-knight.svg +1 -1
  148. data/assets/vendor/fontawesome-free/svgs/solid/chess-pawn.svg +1 -1
  149. data/assets/vendor/fontawesome-free/svgs/solid/chess-queen.svg +1 -1
  150. data/assets/vendor/fontawesome-free/svgs/solid/chess-rook.svg +1 -1
  151. data/assets/vendor/fontawesome-free/svgs/solid/chess.svg +1 -1
  152. data/assets/vendor/fontawesome-free/svgs/solid/expand-arrows-alt.svg +1 -1
  153. data/assets/vendor/fontawesome-free/svgs/solid/fan.svg +1 -0
  154. data/assets/vendor/fontawesome-free/svgs/solid/font.svg +1 -1
  155. data/assets/vendor/fontawesome-free/svgs/solid/heading.svg +1 -1
  156. data/assets/vendor/fontawesome-free/svgs/solid/icons.svg +1 -0
  157. data/assets/vendor/fontawesome-free/svgs/solid/indent.svg +1 -1
  158. data/assets/vendor/fontawesome-free/svgs/solid/italic.svg +1 -1
  159. data/assets/vendor/fontawesome-free/svgs/solid/list-ol.svg +1 -1
  160. data/assets/vendor/fontawesome-free/svgs/solid/list-ul.svg +1 -1
  161. data/assets/vendor/fontawesome-free/svgs/solid/list.svg +1 -1
  162. data/assets/vendor/fontawesome-free/svgs/solid/magnet.svg +1 -1
  163. data/assets/vendor/fontawesome-free/svgs/solid/outdent.svg +1 -1
  164. data/assets/vendor/fontawesome-free/svgs/solid/paragraph.svg +1 -1
  165. data/assets/vendor/fontawesome-free/svgs/solid/phone-alt.svg +1 -0
  166. data/assets/vendor/fontawesome-free/svgs/solid/phone-square-alt.svg +1 -0
  167. data/assets/vendor/fontawesome-free/svgs/solid/photo-video.svg +1 -0
  168. data/assets/vendor/fontawesome-free/svgs/solid/radiation-alt.svg +1 -1
  169. data/assets/vendor/fontawesome-free/svgs/solid/radiation.svg +1 -1
  170. data/assets/vendor/fontawesome-free/svgs/solid/redo.svg +1 -1
  171. data/assets/vendor/fontawesome-free/svgs/solid/remove-format.svg +1 -0
  172. data/assets/vendor/fontawesome-free/svgs/solid/sim-card.svg +1 -1
  173. data/assets/vendor/fontawesome-free/svgs/solid/sort-alpha-down-alt.svg +1 -0
  174. data/assets/vendor/fontawesome-free/svgs/solid/sort-alpha-down.svg +1 -1
  175. data/assets/vendor/fontawesome-free/svgs/solid/sort-alpha-up-alt.svg +1 -0
  176. data/assets/vendor/fontawesome-free/svgs/solid/sort-alpha-up.svg +1 -1
  177. data/assets/vendor/fontawesome-free/svgs/solid/sort-amount-down-alt.svg +1 -0
  178. data/assets/vendor/fontawesome-free/svgs/solid/sort-amount-down.svg +1 -1
  179. data/assets/vendor/fontawesome-free/svgs/solid/sort-amount-up-alt.svg +1 -0
  180. data/assets/vendor/fontawesome-free/svgs/solid/sort-amount-up.svg +1 -1
  181. data/assets/vendor/fontawesome-free/svgs/solid/sort-numeric-down-alt.svg +1 -0
  182. data/assets/vendor/fontawesome-free/svgs/solid/sort-numeric-down.svg +1 -1
  183. data/assets/vendor/fontawesome-free/svgs/solid/sort-numeric-up-alt.svg +1 -0
  184. data/assets/vendor/fontawesome-free/svgs/solid/sort-numeric-up.svg +1 -1
  185. data/assets/vendor/fontawesome-free/svgs/solid/spell-check.svg +1 -0
  186. data/assets/vendor/fontawesome-free/svgs/solid/strikethrough.svg +1 -1
  187. data/assets/vendor/fontawesome-free/svgs/solid/subscript.svg +1 -1
  188. data/assets/vendor/fontawesome-free/svgs/solid/superscript.svg +1 -1
  189. data/assets/vendor/fontawesome-free/svgs/solid/sync.svg +1 -1
  190. data/assets/vendor/fontawesome-free/svgs/solid/tasks.svg +1 -1
  191. data/assets/vendor/fontawesome-free/svgs/solid/text-height.svg +1 -1
  192. data/assets/vendor/fontawesome-free/svgs/solid/text-width.svg +1 -1
  193. data/assets/vendor/fontawesome-free/svgs/solid/torah.svg +1 -1
  194. data/assets/vendor/fontawesome-free/svgs/solid/underline.svg +1 -1
  195. data/assets/vendor/fontawesome-free/svgs/solid/user-lock.svg +1 -1
  196. data/assets/vendor/fontawesome-free/svgs/solid/voicemail.svg +1 -0
  197. data/assets/vendor/fontawesome-free/svgs/solid/volleyball-ball.svg +1 -1
  198. data/assets/vendor/fontawesome-free/svgs/solid/volume-off.svg +1 -1
  199. data/assets/vendor/fontawesome-free/svgs/solid/wave-square.svg +1 -0
  200. data/assets/vendor/fontawesome-free/webfonts/fa-brands-400.eot +0 -0
  201. data/assets/vendor/fontawesome-free/webfonts/fa-brands-400.svg +772 -626
  202. data/assets/vendor/fontawesome-free/webfonts/fa-brands-400.ttf +0 -0
  203. data/assets/vendor/fontawesome-free/webfonts/fa-brands-400.woff +0 -0
  204. data/assets/vendor/fontawesome-free/webfonts/fa-brands-400.woff2 +0 -0
  205. data/assets/vendor/fontawesome-free/webfonts/fa-regular-400.eot +0 -0
  206. data/assets/vendor/fontawesome-free/webfonts/fa-regular-400.svg +13 -9
  207. data/assets/vendor/fontawesome-free/webfonts/fa-regular-400.ttf +0 -0
  208. data/assets/vendor/fontawesome-free/webfonts/fa-regular-400.woff +0 -0
  209. data/assets/vendor/fontawesome-free/webfonts/fa-regular-400.woff2 +0 -0
  210. data/assets/vendor/fontawesome-free/webfonts/fa-solid-900.eot +0 -0
  211. data/assets/vendor/fontawesome-free/webfonts/fa-solid-900.svg +437 -304
  212. data/assets/vendor/fontawesome-free/webfonts/fa-solid-900.ttf +0 -0
  213. data/assets/vendor/fontawesome-free/webfonts/fa-solid-900.woff +0 -0
  214. data/assets/vendor/fontawesome-free/webfonts/fa-solid-900.woff2 +0 -0
  215. data/assets/vendor/jquery/jquery.js +415 -181
  216. data/assets/vendor/jquery/jquery.min.js +2 -2
  217. data/assets/vendor/jquery/jquery.min.map +1 -1
  218. data/assets/vendor/jquery/jquery.slim.js +389 -163
  219. data/assets/vendor/jquery/jquery.slim.min.js +2 -2
  220. data/assets/vendor/jquery/jquery.slim.min.map +1 -1
  221. data/assets/vendor/startbootstrap-clean-blog/js/clean-blog.min.js +1 -1
  222. metadata +37 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * jQuery JavaScript Library v3.3.1
2
+ * jQuery JavaScript Library v3.4.1
3
3
  * https://jquery.com/
4
4
  *
5
5
  * Includes Sizzle.js
@@ -9,7 +9,7 @@
9
9
  * Released under the MIT license
10
10
  * https://jquery.org/license
11
11
  *
12
- * Date: 2018-01-20T17:24Z
12
+ * Date: 2019-05-01T21:04Z
13
13
  */
14
14
  ( function( global, factory ) {
15
15
 
@@ -91,20 +91,33 @@ var isWindow = function isWindow( obj ) {
91
91
  var preservedScriptAttributes = {
92
92
  type: true,
93
93
  src: true,
94
+ nonce: true,
94
95
  noModule: true
95
96
  };
96
97
 
97
- function DOMEval( code, doc, node ) {
98
+ function DOMEval( code, node, doc ) {
98
99
  doc = doc || document;
99
100
 
100
- var i,
101
+ var i, val,
101
102
  script = doc.createElement( "script" );
102
103
 
103
104
  script.text = code;
104
105
  if ( node ) {
105
106
  for ( i in preservedScriptAttributes ) {
106
- if ( node[ i ] ) {
107
- script[ i ] = node[ i ];
107
+
108
+ // Support: Firefox 64+, Edge 18+
109
+ // Some browsers don't support the "nonce" property on scripts.
110
+ // On the other hand, just using `getAttribute` is not enough as
111
+ // the `nonce` attribute is reset to an empty string whenever it
112
+ // becomes browsing-context connected.
113
+ // See https://github.com/whatwg/html/issues/2369
114
+ // See https://html.spec.whatwg.org/#nonce-attributes
115
+ // The `node.getAttribute` check was added for the sake of
116
+ // `jQuery.globalEval` so that it can fake a nonce-containing node
117
+ // via an object.
118
+ val = node[ i ] || node.getAttribute && node.getAttribute( i );
119
+ if ( val ) {
120
+ script.setAttribute( i, val );
108
121
  }
109
122
  }
110
123
  }
@@ -129,7 +142,7 @@ function toType( obj ) {
129
142
 
130
143
 
131
144
  var
132
- version = "3.3.1",
145
+ version = "3.4.1",
133
146
 
134
147
  // Define a local copy of jQuery
135
148
  jQuery = function( selector, context ) {
@@ -258,25 +271,28 @@ jQuery.extend = jQuery.fn.extend = function() {
258
271
 
259
272
  // Extend the base object
260
273
  for ( name in options ) {
261
- src = target[ name ];
262
274
  copy = options[ name ];
263
275
 
276
+ // Prevent Object.prototype pollution
264
277
  // Prevent never-ending loop
265
- if ( target === copy ) {
278
+ if ( name === "__proto__" || target === copy ) {
266
279
  continue;
267
280
  }
268
281
 
269
282
  // Recurse if we're merging plain objects or arrays
270
283
  if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
271
284
  ( copyIsArray = Array.isArray( copy ) ) ) ) {
285
+ src = target[ name ];
272
286
 
273
- if ( copyIsArray ) {
274
- copyIsArray = false;
275
- clone = src && Array.isArray( src ) ? src : [];
276
-
287
+ // Ensure proper type for the source value
288
+ if ( copyIsArray && !Array.isArray( src ) ) {
289
+ clone = [];
290
+ } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
291
+ clone = {};
277
292
  } else {
278
- clone = src && jQuery.isPlainObject( src ) ? src : {};
293
+ clone = src;
279
294
  }
295
+ copyIsArray = false;
280
296
 
281
297
  // Never move original objects, clone them
282
298
  target[ name ] = jQuery.extend( deep, clone, copy );
@@ -329,9 +345,6 @@ jQuery.extend( {
329
345
  },
330
346
 
331
347
  isEmptyObject: function( obj ) {
332
-
333
- /* eslint-disable no-unused-vars */
334
- // See https://github.com/eslint/eslint/issues/6125
335
348
  var name;
336
349
 
337
350
  for ( name in obj ) {
@@ -341,8 +354,8 @@ jQuery.extend( {
341
354
  },
342
355
 
343
356
  // Evaluates a script in a global context
344
- globalEval: function( code ) {
345
- DOMEval( code );
357
+ globalEval: function( code, options ) {
358
+ DOMEval( code, { nonce: options && options.nonce } );
346
359
  },
347
360
 
348
361
  each: function( obj, callback ) {
@@ -498,14 +511,14 @@ function isArrayLike( obj ) {
498
511
  }
499
512
  var Sizzle =
500
513
  /*!
501
- * Sizzle CSS Selector Engine v2.3.3
514
+ * Sizzle CSS Selector Engine v2.3.4
502
515
  * https://sizzlejs.com/
503
516
  *
504
- * Copyright jQuery Foundation and other contributors
517
+ * Copyright JS Foundation and other contributors
505
518
  * Released under the MIT license
506
- * http://jquery.org/license
519
+ * https://js.foundation/
507
520
  *
508
- * Date: 2016-08-08
521
+ * Date: 2019-04-08
509
522
  */
510
523
  (function( window ) {
511
524
 
@@ -539,6 +552,7 @@ var i,
539
552
  classCache = createCache(),
540
553
  tokenCache = createCache(),
541
554
  compilerCache = createCache(),
555
+ nonnativeSelectorCache = createCache(),
542
556
  sortOrder = function( a, b ) {
543
557
  if ( a === b ) {
544
558
  hasDuplicate = true;
@@ -600,8 +614,7 @@ var i,
600
614
 
601
615
  rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
602
616
  rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
603
-
604
- rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
617
+ rdescend = new RegExp( whitespace + "|>" ),
605
618
 
606
619
  rpseudo = new RegExp( pseudos ),
607
620
  ridentifier = new RegExp( "^" + identifier + "$" ),
@@ -622,6 +635,7 @@ var i,
622
635
  whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
623
636
  },
624
637
 
638
+ rhtml = /HTML$/i,
625
639
  rinputs = /^(?:input|select|textarea|button)$/i,
626
640
  rheader = /^h\d$/i,
627
641
 
@@ -676,9 +690,9 @@ var i,
676
690
  setDocument();
677
691
  },
678
692
 
679
- disabledAncestor = addCombinator(
693
+ inDisabledFieldset = addCombinator(
680
694
  function( elem ) {
681
- return elem.disabled === true && ("form" in elem || "label" in elem);
695
+ return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
682
696
  },
683
697
  { dir: "parentNode", next: "legend" }
684
698
  );
@@ -791,18 +805,22 @@ function Sizzle( selector, context, results, seed ) {
791
805
 
792
806
  // Take advantage of querySelectorAll
793
807
  if ( support.qsa &&
794
- !compilerCache[ selector + " " ] &&
795
- (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
796
-
797
- if ( nodeType !== 1 ) {
798
- newContext = context;
799
- newSelector = selector;
808
+ !nonnativeSelectorCache[ selector + " " ] &&
809
+ (!rbuggyQSA || !rbuggyQSA.test( selector )) &&
800
810
 
801
- // qSA looks outside Element context, which is not what we want
802
- // Thanks to Andrew Dupont for this workaround technique
803
- // Support: IE <=8
811
+ // Support: IE 8 only
804
812
  // Exclude object elements
805
- } else if ( context.nodeName.toLowerCase() !== "object" ) {
813
+ (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) {
814
+
815
+ newSelector = selector;
816
+ newContext = context;
817
+
818
+ // qSA considers elements outside a scoping root when evaluating child or
819
+ // descendant combinators, which is not what we want.
820
+ // In such cases, we work around the behavior by prefixing every selector in the
821
+ // list with an ID selector referencing the scope context.
822
+ // Thanks to Andrew Dupont for this technique.
823
+ if ( nodeType === 1 && rdescend.test( selector ) ) {
806
824
 
807
825
  // Capture the context ID, setting it first if necessary
808
826
  if ( (nid = context.getAttribute( "id" )) ) {
@@ -824,17 +842,16 @@ function Sizzle( selector, context, results, seed ) {
824
842
  context;
825
843
  }
826
844
 
827
- if ( newSelector ) {
828
- try {
829
- push.apply( results,
830
- newContext.querySelectorAll( newSelector )
831
- );
832
- return results;
833
- } catch ( qsaError ) {
834
- } finally {
835
- if ( nid === expando ) {
836
- context.removeAttribute( "id" );
837
- }
845
+ try {
846
+ push.apply( results,
847
+ newContext.querySelectorAll( newSelector )
848
+ );
849
+ return results;
850
+ } catch ( qsaError ) {
851
+ nonnativeSelectorCache( selector, true );
852
+ } finally {
853
+ if ( nid === expando ) {
854
+ context.removeAttribute( "id" );
838
855
  }
839
856
  }
840
857
  }
@@ -998,7 +1015,7 @@ function createDisabledPseudo( disabled ) {
998
1015
  // Where there is no isDisabled, check manually
999
1016
  /* jshint -W018 */
1000
1017
  elem.isDisabled !== !disabled &&
1001
- disabledAncestor( elem ) === disabled;
1018
+ inDisabledFieldset( elem ) === disabled;
1002
1019
  }
1003
1020
 
1004
1021
  return elem.disabled === disabled;
@@ -1055,10 +1072,13 @@ support = Sizzle.support = {};
1055
1072
  * @returns {Boolean} True iff elem is a non-HTML XML node
1056
1073
  */
1057
1074
  isXML = Sizzle.isXML = function( elem ) {
1058
- // documentElement is verified for cases where it doesn't yet exist
1059
- // (such as loading iframes in IE - #4833)
1060
- var documentElement = elem && (elem.ownerDocument || elem).documentElement;
1061
- return documentElement ? documentElement.nodeName !== "HTML" : false;
1075
+ var namespace = elem.namespaceURI,
1076
+ docElem = (elem.ownerDocument || elem).documentElement;
1077
+
1078
+ // Support: IE <=8
1079
+ // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
1080
+ // https://bugs.jquery.com/ticket/4833
1081
+ return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
1062
1082
  };
1063
1083
 
1064
1084
  /**
@@ -1480,11 +1500,8 @@ Sizzle.matchesSelector = function( elem, expr ) {
1480
1500
  setDocument( elem );
1481
1501
  }
1482
1502
 
1483
- // Make sure that attribute selectors are quoted
1484
- expr = expr.replace( rattributeQuotes, "='$1']" );
1485
-
1486
1503
  if ( support.matchesSelector && documentIsHTML &&
1487
- !compilerCache[ expr + " " ] &&
1504
+ !nonnativeSelectorCache[ expr + " " ] &&
1488
1505
  ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
1489
1506
  ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
1490
1507
 
@@ -1498,7 +1515,9 @@ Sizzle.matchesSelector = function( elem, expr ) {
1498
1515
  elem.document && elem.document.nodeType !== 11 ) {
1499
1516
  return ret;
1500
1517
  }
1501
- } catch (e) {}
1518
+ } catch (e) {
1519
+ nonnativeSelectorCache( expr, true );
1520
+ }
1502
1521
  }
1503
1522
 
1504
1523
  return Sizzle( expr, document, null, [ elem ] ).length > 0;
@@ -1957,7 +1976,7 @@ Expr = Sizzle.selectors = {
1957
1976
  "contains": markFunction(function( text ) {
1958
1977
  text = text.replace( runescape, funescape );
1959
1978
  return function( elem ) {
1960
- return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
1979
+ return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
1961
1980
  };
1962
1981
  }),
1963
1982
 
@@ -2096,7 +2115,11 @@ Expr = Sizzle.selectors = {
2096
2115
  }),
2097
2116
 
2098
2117
  "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
2099
- var i = argument < 0 ? argument + length : argument;
2118
+ var i = argument < 0 ?
2119
+ argument + length :
2120
+ argument > length ?
2121
+ length :
2122
+ argument;
2100
2123
  for ( ; --i >= 0; ) {
2101
2124
  matchIndexes.push( i );
2102
2125
  }
@@ -3146,18 +3169,18 @@ jQuery.each( {
3146
3169
  return siblings( elem.firstChild );
3147
3170
  },
3148
3171
  contents: function( elem ) {
3149
- if ( nodeName( elem, "iframe" ) ) {
3150
- return elem.contentDocument;
3151
- }
3172
+ if ( typeof elem.contentDocument !== "undefined" ) {
3173
+ return elem.contentDocument;
3174
+ }
3152
3175
 
3153
- // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
3154
- // Treat the template element as a regular one in browsers that
3155
- // don't support it.
3156
- if ( nodeName( elem, "template" ) ) {
3157
- elem = elem.content || elem;
3158
- }
3176
+ // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
3177
+ // Treat the template element as a regular one in browsers that
3178
+ // don't support it.
3179
+ if ( nodeName( elem, "template" ) ) {
3180
+ elem = elem.content || elem;
3181
+ }
3159
3182
 
3160
- return jQuery.merge( [], elem.childNodes );
3183
+ return jQuery.merge( [], elem.childNodes );
3161
3184
  }
3162
3185
  }, function( name, fn ) {
3163
3186
  jQuery.fn[ name ] = function( until, selector ) {
@@ -4466,6 +4489,26 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
4466
4489
 
4467
4490
  var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
4468
4491
 
4492
+ var documentElement = document.documentElement;
4493
+
4494
+
4495
+
4496
+ var isAttached = function( elem ) {
4497
+ return jQuery.contains( elem.ownerDocument, elem );
4498
+ },
4499
+ composed = { composed: true };
4500
+
4501
+ // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
4502
+ // Check attachment across shadow DOM boundaries when possible (gh-3504)
4503
+ // Support: iOS 10.0-10.2 only
4504
+ // Early iOS 10 versions support `attachShadow` but not `getRootNode`,
4505
+ // leading to errors. We need to check for `getRootNode`.
4506
+ if ( documentElement.getRootNode ) {
4507
+ isAttached = function( elem ) {
4508
+ return jQuery.contains( elem.ownerDocument, elem ) ||
4509
+ elem.getRootNode( composed ) === elem.ownerDocument;
4510
+ };
4511
+ }
4469
4512
  var isHiddenWithinTree = function( elem, el ) {
4470
4513
 
4471
4514
  // isHiddenWithinTree might be called from jQuery#filter function;
@@ -4480,7 +4523,7 @@ var isHiddenWithinTree = function( elem, el ) {
4480
4523
  // Support: Firefox <=43 - 45
4481
4524
  // Disconnected elements can have computed display: none, so first confirm that elem is
4482
4525
  // in the document.
4483
- jQuery.contains( elem.ownerDocument, elem ) &&
4526
+ isAttached( elem ) &&
4484
4527
 
4485
4528
  jQuery.css( elem, "display" ) === "none";
4486
4529
  };
@@ -4522,7 +4565,8 @@ function adjustCSS( elem, prop, valueParts, tween ) {
4522
4565
  unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
4523
4566
 
4524
4567
  // Starting value computation is required for potential unit mismatches
4525
- initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
4568
+ initialInUnit = elem.nodeType &&
4569
+ ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
4526
4570
  rcssNum.exec( jQuery.css( elem, prop ) );
4527
4571
 
4528
4572
  if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
@@ -4669,7 +4713,7 @@ jQuery.fn.extend( {
4669
4713
  } );
4670
4714
  var rcheckableType = ( /^(?:checkbox|radio)$/i );
4671
4715
 
4672
- var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
4716
+ var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
4673
4717
 
4674
4718
  var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
4675
4719
 
@@ -4741,7 +4785,7 @@ function setGlobalEval( elems, refElements ) {
4741
4785
  var rhtml = /<|&#?\w+;/;
4742
4786
 
4743
4787
  function buildFragment( elems, context, scripts, selection, ignored ) {
4744
- var elem, tmp, tag, wrap, contains, j,
4788
+ var elem, tmp, tag, wrap, attached, j,
4745
4789
  fragment = context.createDocumentFragment(),
4746
4790
  nodes = [],
4747
4791
  i = 0,
@@ -4805,13 +4849,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
4805
4849
  continue;
4806
4850
  }
4807
4851
 
4808
- contains = jQuery.contains( elem.ownerDocument, elem );
4852
+ attached = isAttached( elem );
4809
4853
 
4810
4854
  // Append to fragment
4811
4855
  tmp = getAll( fragment.appendChild( elem ), "script" );
4812
4856
 
4813
4857
  // Preserve script evaluation history
4814
- if ( contains ) {
4858
+ if ( attached ) {
4815
4859
  setGlobalEval( tmp );
4816
4860
  }
4817
4861
 
@@ -4854,8 +4898,6 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
4854
4898
  div.innerHTML = "<textarea>x</textarea>";
4855
4899
  support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
4856
4900
  } )();
4857
- var documentElement = document.documentElement;
4858
-
4859
4901
 
4860
4902
 
4861
4903
  var
@@ -4871,8 +4913,19 @@ function returnFalse() {
4871
4913
  return false;
4872
4914
  }
4873
4915
 
4916
+ // Support: IE <=9 - 11+
4917
+ // focus() and blur() are asynchronous, except when they are no-op.
4918
+ // So expect focus to be synchronous when the element is already active,
4919
+ // and blur to be synchronous when the element is not already active.
4920
+ // (focus and blur are always synchronous in other supported browsers,
4921
+ // this just defines when we can count on it).
4922
+ function expectSync( elem, type ) {
4923
+ return ( elem === safeActiveElement() ) === ( type === "focus" );
4924
+ }
4925
+
4874
4926
  // Support: IE <=9 only
4875
- // See #13393 for more info
4927
+ // Accessing document.activeElement can throw unexpectedly
4928
+ // https://bugs.jquery.com/ticket/13393
4876
4929
  function safeActiveElement() {
4877
4930
  try {
4878
4931
  return document.activeElement;
@@ -5172,9 +5225,10 @@ jQuery.event = {
5172
5225
  while ( ( handleObj = matched.handlers[ j++ ] ) &&
5173
5226
  !event.isImmediatePropagationStopped() ) {
5174
5227
 
5175
- // Triggered event must either 1) have no namespace, or 2) have namespace(s)
5176
- // a subset or equal to those in the bound event (both can have no namespace).
5177
- if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
5228
+ // If the event is namespaced, then each handler is only invoked if it is
5229
+ // specially universal or its namespaces are a superset of the event's.
5230
+ if ( !event.rnamespace || handleObj.namespace === false ||
5231
+ event.rnamespace.test( handleObj.namespace ) ) {
5178
5232
 
5179
5233
  event.handleObj = handleObj;
5180
5234
  event.data = handleObj.data;
@@ -5298,39 +5352,51 @@ jQuery.event = {
5298
5352
  // Prevent triggered image.load events from bubbling to window.load
5299
5353
  noBubble: true
5300
5354
  },
5301
- focus: {
5355
+ click: {
5302
5356
 
5303
- // Fire native event if possible so blur/focus sequence is correct
5304
- trigger: function() {
5305
- if ( this !== safeActiveElement() && this.focus ) {
5306
- this.focus();
5307
- return false;
5308
- }
5309
- },
5310
- delegateType: "focusin"
5311
- },
5312
- blur: {
5313
- trigger: function() {
5314
- if ( this === safeActiveElement() && this.blur ) {
5315
- this.blur();
5316
- return false;
5357
+ // Utilize native event to ensure correct state for checkable inputs
5358
+ setup: function( data ) {
5359
+
5360
+ // For mutual compressibility with _default, replace `this` access with a local var.
5361
+ // `|| data` is dead code meant only to preserve the variable through minification.
5362
+ var el = this || data;
5363
+
5364
+ // Claim the first handler
5365
+ if ( rcheckableType.test( el.type ) &&
5366
+ el.click && nodeName( el, "input" ) ) {
5367
+
5368
+ // dataPriv.set( el, "click", ... )
5369
+ leverageNative( el, "click", returnTrue );
5317
5370
  }
5371
+
5372
+ // Return false to allow normal processing in the caller
5373
+ return false;
5318
5374
  },
5319
- delegateType: "focusout"
5320
- },
5321
- click: {
5375
+ trigger: function( data ) {
5322
5376
 
5323
- // For checkbox, fire native event so checked state will be right
5324
- trigger: function() {
5325
- if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
5326
- this.click();
5327
- return false;
5377
+ // For mutual compressibility with _default, replace `this` access with a local var.
5378
+ // `|| data` is dead code meant only to preserve the variable through minification.
5379
+ var el = this || data;
5380
+
5381
+ // Force setup before triggering a click
5382
+ if ( rcheckableType.test( el.type ) &&
5383
+ el.click && nodeName( el, "input" ) ) {
5384
+
5385
+ leverageNative( el, "click" );
5328
5386
  }
5387
+
5388
+ // Return non-false to allow normal event-path propagation
5389
+ return true;
5329
5390
  },
5330
5391
 
5331
- // For cross-browser consistency, don't fire native .click() on links
5392
+ // For cross-browser consistency, suppress native .click() on links
5393
+ // Also prevent it if we're currently inside a leveraged native-event stack
5332
5394
  _default: function( event ) {
5333
- return nodeName( event.target, "a" );
5395
+ var target = event.target;
5396
+ return rcheckableType.test( target.type ) &&
5397
+ target.click && nodeName( target, "input" ) &&
5398
+ dataPriv.get( target, "click" ) ||
5399
+ nodeName( target, "a" );
5334
5400
  }
5335
5401
  },
5336
5402
 
@@ -5347,6 +5413,93 @@ jQuery.event = {
5347
5413
  }
5348
5414
  };
5349
5415
 
5416
+ // Ensure the presence of an event listener that handles manually-triggered
5417
+ // synthetic events by interrupting progress until reinvoked in response to
5418
+ // *native* events that it fires directly, ensuring that state changes have
5419
+ // already occurred before other listeners are invoked.
5420
+ function leverageNative( el, type, expectSync ) {
5421
+
5422
+ // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
5423
+ if ( !expectSync ) {
5424
+ if ( dataPriv.get( el, type ) === undefined ) {
5425
+ jQuery.event.add( el, type, returnTrue );
5426
+ }
5427
+ return;
5428
+ }
5429
+
5430
+ // Register the controller as a special universal handler for all event namespaces
5431
+ dataPriv.set( el, type, false );
5432
+ jQuery.event.add( el, type, {
5433
+ namespace: false,
5434
+ handler: function( event ) {
5435
+ var notAsync, result,
5436
+ saved = dataPriv.get( this, type );
5437
+
5438
+ if ( ( event.isTrigger & 1 ) && this[ type ] ) {
5439
+
5440
+ // Interrupt processing of the outer synthetic .trigger()ed event
5441
+ // Saved data should be false in such cases, but might be a leftover capture object
5442
+ // from an async native handler (gh-4350)
5443
+ if ( !saved.length ) {
5444
+
5445
+ // Store arguments for use when handling the inner native event
5446
+ // There will always be at least one argument (an event object), so this array
5447
+ // will not be confused with a leftover capture object.
5448
+ saved = slice.call( arguments );
5449
+ dataPriv.set( this, type, saved );
5450
+
5451
+ // Trigger the native event and capture its result
5452
+ // Support: IE <=9 - 11+
5453
+ // focus() and blur() are asynchronous
5454
+ notAsync = expectSync( this, type );
5455
+ this[ type ]();
5456
+ result = dataPriv.get( this, type );
5457
+ if ( saved !== result || notAsync ) {
5458
+ dataPriv.set( this, type, false );
5459
+ } else {
5460
+ result = {};
5461
+ }
5462
+ if ( saved !== result ) {
5463
+
5464
+ // Cancel the outer synthetic event
5465
+ event.stopImmediatePropagation();
5466
+ event.preventDefault();
5467
+ return result.value;
5468
+ }
5469
+
5470
+ // If this is an inner synthetic event for an event with a bubbling surrogate
5471
+ // (focus or blur), assume that the surrogate already propagated from triggering the
5472
+ // native event and prevent that from happening again here.
5473
+ // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
5474
+ // bubbling surrogate propagates *after* the non-bubbling base), but that seems
5475
+ // less bad than duplication.
5476
+ } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
5477
+ event.stopPropagation();
5478
+ }
5479
+
5480
+ // If this is a native event triggered above, everything is now in order
5481
+ // Fire an inner synthetic event with the original arguments
5482
+ } else if ( saved.length ) {
5483
+
5484
+ // ...and capture the result
5485
+ dataPriv.set( this, type, {
5486
+ value: jQuery.event.trigger(
5487
+
5488
+ // Support: IE <=9 - 11+
5489
+ // Extend with the prototype to reset the above stopImmediatePropagation()
5490
+ jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
5491
+ saved.slice( 1 ),
5492
+ this
5493
+ )
5494
+ } );
5495
+
5496
+ // Abort handling of the native event
5497
+ event.stopImmediatePropagation();
5498
+ }
5499
+ }
5500
+ } );
5501
+ }
5502
+
5350
5503
  jQuery.removeEvent = function( elem, type, handle ) {
5351
5504
 
5352
5505
  // This "if" is needed for plain objects
@@ -5459,6 +5612,7 @@ jQuery.each( {
5459
5612
  shiftKey: true,
5460
5613
  view: true,
5461
5614
  "char": true,
5615
+ code: true,
5462
5616
  charCode: true,
5463
5617
  key: true,
5464
5618
  keyCode: true,
@@ -5505,6 +5659,33 @@ jQuery.each( {
5505
5659
  }
5506
5660
  }, jQuery.event.addProp );
5507
5661
 
5662
+ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
5663
+ jQuery.event.special[ type ] = {
5664
+
5665
+ // Utilize native event if possible so blur/focus sequence is correct
5666
+ setup: function() {
5667
+
5668
+ // Claim the first handler
5669
+ // dataPriv.set( this, "focus", ... )
5670
+ // dataPriv.set( this, "blur", ... )
5671
+ leverageNative( this, type, expectSync );
5672
+
5673
+ // Return false to allow normal processing in the caller
5674
+ return false;
5675
+ },
5676
+ trigger: function() {
5677
+
5678
+ // Force setup before trigger
5679
+ leverageNative( this, type );
5680
+
5681
+ // Return non-false to allow normal event-path propagation
5682
+ return true;
5683
+ },
5684
+
5685
+ delegateType: delegateType
5686
+ };
5687
+ } );
5688
+
5508
5689
  // Create mouseenter/leave events using mouseover/out and event-time checks
5509
5690
  // so that event delegation works in jQuery.
5510
5691
  // Do the same for pointerenter/pointerleave and pointerover/pointerout
@@ -5755,11 +5936,13 @@ function domManip( collection, args, callback, ignored ) {
5755
5936
  if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) {
5756
5937
 
5757
5938
  // Optional AJAX dependency, but won't run scripts if not present
5758
- if ( jQuery._evalUrl ) {
5759
- jQuery._evalUrl( node.src );
5939
+ if ( jQuery._evalUrl && !node.noModule ) {
5940
+ jQuery._evalUrl( node.src, {
5941
+ nonce: node.nonce || node.getAttribute( "nonce" )
5942
+ } );
5760
5943
  }
5761
5944
  } else {
5762
- DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
5945
+ DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
5763
5946
  }
5764
5947
  }
5765
5948
  }
@@ -5781,7 +5964,7 @@ function remove( elem, selector, keepData ) {
5781
5964
  }
5782
5965
 
5783
5966
  if ( node.parentNode ) {
5784
- if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
5967
+ if ( keepData && isAttached( node ) ) {
5785
5968
  setGlobalEval( getAll( node, "script" ) );
5786
5969
  }
5787
5970
  node.parentNode.removeChild( node );
@@ -5799,7 +5982,7 @@ jQuery.extend( {
5799
5982
  clone: function( elem, dataAndEvents, deepDataAndEvents ) {
5800
5983
  var i, l, srcElements, destElements,
5801
5984
  clone = elem.cloneNode( true ),
5802
- inPage = jQuery.contains( elem.ownerDocument, elem );
5985
+ inPage = isAttached( elem );
5803
5986
 
5804
5987
  // Fix IE cloning issues
5805
5988
  if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
@@ -6095,8 +6278,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
6095
6278
 
6096
6279
  // Support: IE 9 only
6097
6280
  // Detect overflow:scroll screwiness (gh-3699)
6281
+ // Support: Chrome <=64
6282
+ // Don't get tricked when zoom affects offsetWidth (gh-4029)
6098
6283
  div.style.position = "absolute";
6099
- scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
6284
+ scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
6100
6285
 
6101
6286
  documentElement.removeChild( container );
6102
6287
 
@@ -6167,7 +6352,7 @@ function curCSS( elem, name, computed ) {
6167
6352
  if ( computed ) {
6168
6353
  ret = computed.getPropertyValue( name ) || computed[ name ];
6169
6354
 
6170
- if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
6355
+ if ( ret === "" && !isAttached( elem ) ) {
6171
6356
  ret = jQuery.style( elem, name );
6172
6357
  }
6173
6358
 
@@ -6223,30 +6408,13 @@ function addGetHookIf( conditionFn, hookFn ) {
6223
6408
  }
6224
6409
 
6225
6410
 
6226
- var
6411
+ var cssPrefixes = [ "Webkit", "Moz", "ms" ],
6412
+ emptyStyle = document.createElement( "div" ).style,
6413
+ vendorProps = {};
6227
6414
 
6228
- // Swappable if display is none or starts with table
6229
- // except "table", "table-cell", or "table-caption"
6230
- // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
6231
- rdisplayswap = /^(none|table(?!-c[ea]).+)/,
6232
- rcustomProp = /^--/,
6233
- cssShow = { position: "absolute", visibility: "hidden", display: "block" },
6234
- cssNormalTransform = {
6235
- letterSpacing: "0",
6236
- fontWeight: "400"
6237
- },
6238
-
6239
- cssPrefixes = [ "Webkit", "Moz", "ms" ],
6240
- emptyStyle = document.createElement( "div" ).style;
6241
-
6242
- // Return a css property mapped to a potentially vendor prefixed property
6415
+ // Return a vendor-prefixed property or undefined
6243
6416
  function vendorPropName( name ) {
6244
6417
 
6245
- // Shortcut for names that are not vendor prefixed
6246
- if ( name in emptyStyle ) {
6247
- return name;
6248
- }
6249
-
6250
6418
  // Check for vendor prefixed names
6251
6419
  var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
6252
6420
  i = cssPrefixes.length;
@@ -6259,16 +6427,33 @@ function vendorPropName( name ) {
6259
6427
  }
6260
6428
  }
6261
6429
 
6262
- // Return a property mapped along what jQuery.cssProps suggests or to
6263
- // a vendor prefixed property.
6430
+ // Return a potentially-mapped jQuery.cssProps or vendor prefixed property
6264
6431
  function finalPropName( name ) {
6265
- var ret = jQuery.cssProps[ name ];
6266
- if ( !ret ) {
6267
- ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
6432
+ var final = jQuery.cssProps[ name ] || vendorProps[ name ];
6433
+
6434
+ if ( final ) {
6435
+ return final;
6268
6436
  }
6269
- return ret;
6437
+ if ( name in emptyStyle ) {
6438
+ return name;
6439
+ }
6440
+ return vendorProps[ name ] = vendorPropName( name ) || name;
6270
6441
  }
6271
6442
 
6443
+
6444
+ var
6445
+
6446
+ // Swappable if display is none or starts with table
6447
+ // except "table", "table-cell", or "table-caption"
6448
+ // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
6449
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
6450
+ rcustomProp = /^--/,
6451
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
6452
+ cssNormalTransform = {
6453
+ letterSpacing: "0",
6454
+ fontWeight: "400"
6455
+ };
6456
+
6272
6457
  function setPositiveNumber( elem, value, subtract ) {
6273
6458
 
6274
6459
  // Any relative (+/-) values have already been
@@ -6340,7 +6525,10 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
6340
6525
  delta -
6341
6526
  extra -
6342
6527
  0.5
6343
- ) );
6528
+
6529
+ // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
6530
+ // Use an explicit zero to avoid NaN (gh-3964)
6531
+ ) ) || 0;
6344
6532
  }
6345
6533
 
6346
6534
  return delta;
@@ -6350,9 +6538,16 @@ function getWidthOrHeight( elem, dimension, extra ) {
6350
6538
 
6351
6539
  // Start with computed style
6352
6540
  var styles = getStyles( elem ),
6541
+
6542
+ // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
6543
+ // Fake content-box until we know it's needed to know the true value.
6544
+ boxSizingNeeded = !support.boxSizingReliable() || extra,
6545
+ isBorderBox = boxSizingNeeded &&
6546
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6547
+ valueIsBorderBox = isBorderBox,
6548
+
6353
6549
  val = curCSS( elem, dimension, styles ),
6354
- isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6355
- valueIsBorderBox = isBorderBox;
6550
+ offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
6356
6551
 
6357
6552
  // Support: Firefox <=54
6358
6553
  // Return a confounding non-pixel value or feign ignorance, as appropriate.
@@ -6363,22 +6558,29 @@ function getWidthOrHeight( elem, dimension, extra ) {
6363
6558
  val = "auto";
6364
6559
  }
6365
6560
 
6366
- // Check for style in case a browser which returns unreliable values
6367
- // for getComputedStyle silently falls back to the reliable elem.style
6368
- valueIsBorderBox = valueIsBorderBox &&
6369
- ( support.boxSizingReliable() || val === elem.style[ dimension ] );
6370
6561
 
6371
6562
  // Fall back to offsetWidth/offsetHeight when value is "auto"
6372
6563
  // This happens for inline elements with no explicit setting (gh-3571)
6373
6564
  // Support: Android <=4.1 - 4.3 only
6374
6565
  // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
6375
- if ( val === "auto" ||
6376
- !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
6566
+ // Support: IE 9-11 only
6567
+ // Also use offsetWidth/offsetHeight for when box sizing is unreliable
6568
+ // We use getClientRects() to check for hidden/disconnected.
6569
+ // In those cases, the computed value can be trusted to be border-box
6570
+ if ( ( !support.boxSizingReliable() && isBorderBox ||
6571
+ val === "auto" ||
6572
+ !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
6573
+ elem.getClientRects().length ) {
6377
6574
 
6378
- val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
6575
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
6379
6576
 
6380
- // offsetWidth/offsetHeight provide border-box values
6381
- valueIsBorderBox = true;
6577
+ // Where available, offsetWidth/offsetHeight approximate border box dimensions.
6578
+ // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
6579
+ // retrieved value as a content box dimension.
6580
+ valueIsBorderBox = offsetProp in elem;
6581
+ if ( valueIsBorderBox ) {
6582
+ val = elem[ offsetProp ];
6583
+ }
6382
6584
  }
6383
6585
 
6384
6586
  // Normalize "" and auto
@@ -6424,6 +6626,13 @@ jQuery.extend( {
6424
6626
  "flexGrow": true,
6425
6627
  "flexShrink": true,
6426
6628
  "fontWeight": true,
6629
+ "gridArea": true,
6630
+ "gridColumn": true,
6631
+ "gridColumnEnd": true,
6632
+ "gridColumnStart": true,
6633
+ "gridRow": true,
6634
+ "gridRowEnd": true,
6635
+ "gridRowStart": true,
6427
6636
  "lineHeight": true,
6428
6637
  "opacity": true,
6429
6638
  "order": true,
@@ -6479,7 +6688,9 @@ jQuery.extend( {
6479
6688
  }
6480
6689
 
6481
6690
  // If a number was passed in, add the unit (except for certain CSS properties)
6482
- if ( type === "number" ) {
6691
+ // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
6692
+ // "px" to a few hardcoded values.
6693
+ if ( type === "number" && !isCustomProp ) {
6483
6694
  value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
6484
6695
  }
6485
6696
 
@@ -6579,18 +6790,29 @@ jQuery.each( [ "height", "width" ], function( i, dimension ) {
6579
6790
  set: function( elem, value, extra ) {
6580
6791
  var matches,
6581
6792
  styles = getStyles( elem ),
6582
- isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6583
- subtract = extra && boxModelAdjustment(
6584
- elem,
6585
- dimension,
6586
- extra,
6587
- isBorderBox,
6588
- styles
6589
- );
6793
+
6794
+ // Only read styles.position if the test has a chance to fail
6795
+ // to avoid forcing a reflow.
6796
+ scrollboxSizeBuggy = !support.scrollboxSize() &&
6797
+ styles.position === "absolute",
6798
+
6799
+ // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
6800
+ boxSizingNeeded = scrollboxSizeBuggy || extra,
6801
+ isBorderBox = boxSizingNeeded &&
6802
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6803
+ subtract = extra ?
6804
+ boxModelAdjustment(
6805
+ elem,
6806
+ dimension,
6807
+ extra,
6808
+ isBorderBox,
6809
+ styles
6810
+ ) :
6811
+ 0;
6590
6812
 
6591
6813
  // Account for unreliable border-box dimensions by comparing offset* to computed and
6592
6814
  // faking a content-box to get border and padding (gh-3699)
6593
- if ( isBorderBox && support.scrollboxSize() === styles.position ) {
6815
+ if ( isBorderBox && scrollboxSizeBuggy ) {
6594
6816
  subtract -= Math.ceil(
6595
6817
  elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
6596
6818
  parseFloat( styles[ dimension ] ) -
@@ -6758,9 +6980,9 @@ Tween.propHooks = {
6758
6980
  // Use .style if available and use plain properties where available.
6759
6981
  if ( jQuery.fx.step[ tween.prop ] ) {
6760
6982
  jQuery.fx.step[ tween.prop ]( tween );
6761
- } else if ( tween.elem.nodeType === 1 &&
6762
- ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
6763
- jQuery.cssHooks[ tween.prop ] ) ) {
6983
+ } else if ( tween.elem.nodeType === 1 && (
6984
+ jQuery.cssHooks[ tween.prop ] ||
6985
+ tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
6764
6986
  jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
6765
6987
  } else {
6766
6988
  tween.elem[ tween.prop ] = tween.now;
@@ -8467,6 +8689,10 @@ jQuery.param = function( a, traditional ) {
8467
8689
  encodeURIComponent( value == null ? "" : value );
8468
8690
  };
8469
8691
 
8692
+ if ( a == null ) {
8693
+ return "";
8694
+ }
8695
+
8470
8696
  // If an array was passed in, assume that it is an array of form elements.
8471
8697
  if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
8472
8698
 
@@ -8969,12 +9195,14 @@ jQuery.extend( {
8969
9195
  if ( !responseHeaders ) {
8970
9196
  responseHeaders = {};
8971
9197
  while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
8972
- responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
9198
+ responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
9199
+ ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
9200
+ .concat( match[ 2 ] );
8973
9201
  }
8974
9202
  }
8975
- match = responseHeaders[ key.toLowerCase() ];
9203
+ match = responseHeaders[ key.toLowerCase() + " " ];
8976
9204
  }
8977
- return match == null ? null : match;
9205
+ return match == null ? null : match.join( ", " );
8978
9206
  },
8979
9207
 
8980
9208
  // Raw string
@@ -9363,7 +9591,7 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
9363
9591
  } );
9364
9592
 
9365
9593
 
9366
- jQuery._evalUrl = function( url ) {
9594
+ jQuery._evalUrl = function( url, options ) {
9367
9595
  return jQuery.ajax( {
9368
9596
  url: url,
9369
9597
 
@@ -9373,7 +9601,16 @@ jQuery._evalUrl = function( url ) {
9373
9601
  cache: true,
9374
9602
  async: false,
9375
9603
  global: false,
9376
- "throws": true
9604
+
9605
+ // Only evaluate the response if it is successful (gh-4126)
9606
+ // dataFilter is not invoked for failure responses, so using it instead
9607
+ // of the default converter is kludgy but it works.
9608
+ converters: {
9609
+ "text script": function() {}
9610
+ },
9611
+ dataFilter: function( response ) {
9612
+ jQuery.globalEval( response, options );
9613
+ }
9377
9614
  } );
9378
9615
  };
9379
9616
 
@@ -9656,24 +9893,21 @@ jQuery.ajaxPrefilter( "script", function( s ) {
9656
9893
  // Bind script tag hack transport
9657
9894
  jQuery.ajaxTransport( "script", function( s ) {
9658
9895
 
9659
- // This transport only deals with cross domain requests
9660
- if ( s.crossDomain ) {
9896
+ // This transport only deals with cross domain or forced-by-attrs requests
9897
+ if ( s.crossDomain || s.scriptAttrs ) {
9661
9898
  var script, callback;
9662
9899
  return {
9663
9900
  send: function( _, complete ) {
9664
- script = jQuery( "<script>" ).prop( {
9665
- charset: s.scriptCharset,
9666
- src: s.url
9667
- } ).on(
9668
- "load error",
9669
- callback = function( evt ) {
9901
+ script = jQuery( "<script>" )
9902
+ .attr( s.scriptAttrs || {} )
9903
+ .prop( { charset: s.scriptCharset, src: s.url } )
9904
+ .on( "load error", callback = function( evt ) {
9670
9905
  script.remove();
9671
9906
  callback = null;
9672
9907
  if ( evt ) {
9673
9908
  complete( evt.type === "error" ? 404 : 200, evt.type );
9674
9909
  }
9675
- }
9676
- );
9910
+ } );
9677
9911
 
9678
9912
  // Use native DOM manipulation to avoid our domManip AJAX trickery
9679
9913
  document.head.appendChild( script[ 0 ] );