jekyll-theme-clean-blog 4.0.7 → 4.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 ] );