ext_yarn 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +41 -47
  3. data/README.md +10 -0
  4. data/bin/yarn_after +12 -0
  5. data/lib/ext_yarn/version.rb +1 -1
  6. data/package.json +14 -13
  7. data/vendor/.yarn-integrity +35 -39
  8. data/vendor/bootswatch-sass/package.json +1 -1
  9. data/vendor/chart.js/dist/Chart.bundle.js +5754 -5711
  10. data/vendor/chart.js/dist/Chart.js +2118 -2046
  11. data/vendor/chart.js/package.json +1 -1
  12. data/vendor/chartkick/LICENSE.txt +1 -1
  13. data/vendor/chartkick/dist/chartkick.js +2239 -0
  14. data/vendor/chartkick/package.json +18 -8
  15. data/vendor/file-saver/dist/FileSaver.js +180 -0
  16. data/vendor/file-saver/package.json +16 -4
  17. data/vendor/jquery/dist/jquery.js +453 -342
  18. data/vendor/jquery/dist/jquery.slim.js +428 -319
  19. data/vendor/jquery/package.json +32 -21
  20. data/vendor/{tempusdominus-bootstrap-4 → jquery-touch-events}/LICENSE +21 -21
  21. data/vendor/jquery-touch-events/package.json +32 -0
  22. data/vendor/jquery-touch-events/src/jquery.mobile-events.js +920 -0
  23. data/vendor/jquery-ui-touch-punch-zoom-fork/jquery.ui.touch-punch.js +186 -0
  24. data/vendor/jquery-ujs/package.json +1 -1
  25. data/vendor/jquery-ujs/src/rails.js +14 -4
  26. data/vendor/{bootswatch → jquery.iframe-transport}/LICENSE +2 -2
  27. data/vendor/jquery.iframe-transport/jquery.iframe-transport.js +247 -0
  28. data/vendor/jquery.iframe-transport/package.json +28 -0
  29. data/vendor/jstz/dist/jstz.js +9 -1
  30. data/vendor/jstz/package.json +6 -4
  31. data/vendor/lazysizes/LICENSE +22 -0
  32. data/vendor/lazysizes/lazysizes-umd.js +706 -0
  33. data/vendor/lazysizes/lazysizes.js +703 -0
  34. data/vendor/lazysizes/package.json +65 -0
  35. data/vendor/lazysizes/plugins/artdirect/ls.artdirect.js +160 -0
  36. data/vendor/lazysizes/plugins/aspectratio/ls.aspectratio.js +209 -0
  37. data/vendor/lazysizes/plugins/attrchange/ls.attrchange.js +129 -0
  38. data/vendor/lazysizes/plugins/bgset/ls.bgset.js +198 -0
  39. data/vendor/lazysizes/plugins/blur-up/ls.blur-up.js +191 -0
  40. data/vendor/lazysizes/plugins/custommedia/ls.custommedia.js +75 -0
  41. data/vendor/lazysizes/plugins/fix-ios-sizes/fix-ios-sizes.js +80 -0
  42. data/vendor/lazysizes/plugins/include/ls.include.js +589 -0
  43. data/vendor/lazysizes/plugins/noscript/ls.noscript.js +87 -0
  44. data/vendor/lazysizes/plugins/object-fit/ls.object-fit.js +149 -0
  45. data/vendor/lazysizes/plugins/optimumx/ls.optimumx.js +273 -0
  46. data/vendor/lazysizes/plugins/parent-fit/ls.parent-fit.js +157 -0
  47. data/vendor/lazysizes/plugins/print/ls.print.js +51 -0
  48. data/vendor/lazysizes/plugins/progressive/ls.progressive.js +49 -0
  49. data/vendor/lazysizes/plugins/respimg/ls.respimg.js +314 -0
  50. data/vendor/lazysizes/plugins/rias/ls.rias.js +391 -0
  51. data/vendor/lazysizes/plugins/static-gecko-picture/ls.static-gecko-picture.js +82 -0
  52. data/vendor/lazysizes/plugins/twitter/ls.twitter.js +63 -0
  53. data/vendor/lazysizes/plugins/unload/ls.unload.js +155 -0
  54. data/vendor/lazysizes/plugins/unveilhooks/ls.unveilhooks.js +145 -0
  55. data/vendor/lazysizes/plugins/video-embed/ls.video-embed.js +114 -0
  56. data/vendor/lodash/core.js +75 -57
  57. data/vendor/lodash/lodash.js +105 -82
  58. data/vendor/lodash/package.json +2 -2
  59. data/vendor/moment/locale/af.js +58 -60
  60. data/vendor/moment/locale/ar-dz.js +45 -47
  61. data/vendor/moment/locale/ar-kw.js +45 -47
  62. data/vendor/moment/locale/ar-ly.js +106 -112
  63. data/vendor/moment/locale/ar-ma.js +45 -48
  64. data/vendor/moment/locale/ar-sa.js +88 -91
  65. data/vendor/moment/locale/ar-tn.js +45 -47
  66. data/vendor/moment/locale/ar.js +119 -128
  67. data/vendor/moment/locale/az.js +89 -91
  68. data/vendor/moment/locale/be.js +111 -115
  69. data/vendor/moment/locale/bg.js +73 -75
  70. data/vendor/moment/locale/bm.js +44 -47
  71. data/vendor/moment/locale/bn.js +103 -105
  72. data/vendor/moment/locale/bo.js +103 -105
  73. data/vendor/moment/locale/br.js +88 -90
  74. data/vendor/moment/locale/bs.js +133 -136
  75. data/vendor/moment/locale/ca.js +68 -70
  76. data/vendor/moment/locale/cs.js +160 -162
  77. data/vendor/moment/locale/cv.js +48 -50
  78. data/vendor/moment/locale/cy.js +64 -67
  79. data/vendor/moment/locale/da.js +46 -48
  80. data/vendor/moment/locale/de-at.js +61 -66
  81. data/vendor/moment/locale/de-ch.js +61 -65
  82. data/vendor/moment/locale/de.js +61 -65
  83. data/vendor/moment/locale/dv.js +82 -85
  84. data/vendor/moment/locale/el.js +82 -84
  85. data/vendor/moment/locale/en-au.js +53 -55
  86. data/vendor/moment/locale/en-ca.js +49 -51
  87. data/vendor/moment/locale/en-gb.js +53 -55
  88. data/vendor/moment/locale/en-ie.js +53 -55
  89. data/vendor/moment/locale/en-il.js +61 -0
  90. data/vendor/moment/locale/en-nz.js +53 -55
  91. data/vendor/moment/locale/eo.js +56 -60
  92. data/vendor/moment/locale/es-do.js +72 -73
  93. data/vendor/moment/locale/es-us.js +64 -66
  94. data/vendor/moment/locale/es.js +72 -74
  95. data/vendor/moment/locale/et.js +64 -67
  96. data/vendor/moment/locale/eu.js +52 -54
  97. data/vendor/moment/locale/fa.js +90 -93
  98. data/vendor/moment/locale/fi.js +93 -95
  99. data/vendor/moment/locale/fo.js +46 -48
  100. data/vendor/moment/locale/fr-ca.js +58 -60
  101. data/vendor/moment/locale/fr-ch.js +62 -64
  102. data/vendor/moment/locale/fr.js +66 -68
  103. data/vendor/moment/locale/fy.js +59 -61
  104. data/vendor/moment/locale/gd.js +57 -59
  105. data/vendor/moment/locale/gl.js +60 -62
  106. data/vendor/moment/locale/gom-latn.js +107 -109
  107. data/vendor/moment/locale/gu.js +108 -110
  108. data/vendor/moment/locale/he.js +77 -81
  109. data/vendor/moment/locale/hi.js +108 -110
  110. data/vendor/moment/locale/hr.js +136 -138
  111. data/vendor/moment/locale/hu.js +92 -94
  112. data/vendor/moment/locale/hy-am.js +78 -80
  113. data/vendor/moment/locale/id.js +67 -70
  114. data/vendor/moment/locale/is.js +110 -112
  115. data/vendor/moment/locale/it.js +53 -56
  116. data/vendor/moment/locale/ja.js +77 -67
  117. data/vendor/moment/locale/jv.js +67 -70
  118. data/vendor/moment/locale/ka.js +70 -72
  119. data/vendor/moment/locale/kk.js +72 -74
  120. data/vendor/moment/locale/km.js +96 -46
  121. data/vendor/moment/locale/kn.js +110 -112
  122. data/vendor/moment/locale/ko.js +66 -69
  123. data/vendor/moment/locale/ky.js +72 -75
  124. data/vendor/moment/locale/lb.js +113 -116
  125. data/vendor/moment/locale/lo.js +55 -57
  126. data/vendor/moment/locale/lt.js +100 -102
  127. data/vendor/moment/locale/lv.js +81 -84
  128. data/vendor/moment/locale/me.js +93 -95
  129. data/vendor/moment/locale/mi.js +50 -52
  130. data/vendor/moment/locale/mk.js +73 -75
  131. data/vendor/moment/locale/ml.js +66 -68
  132. data/vendor/moment/locale/mn.js +103 -0
  133. data/vendor/moment/locale/mr.js +140 -143
  134. data/vendor/moment/locale/ms-my.js +67 -70
  135. data/vendor/moment/locale/ms.js +67 -69
  136. data/vendor/moment/locale/mt.js +46 -48
  137. data/vendor/moment/locale/my.js +77 -82
  138. data/vendor/moment/locale/nb.js +48 -51
  139. data/vendor/moment/locale/ne.js +107 -109
  140. data/vendor/moment/locale/nl-be.js +68 -71
  141. data/vendor/moment/locale/nl.js +68 -71
  142. data/vendor/moment/locale/nn.js +46 -48
  143. data/vendor/moment/locale/pa-in.js +108 -110
  144. data/vendor/moment/locale/pl.js +104 -106
  145. data/vendor/moment/locale/pt-br.js +46 -48
  146. data/vendor/moment/locale/pt.js +50 -52
  147. data/vendor/moment/locale/ro.js +59 -62
  148. data/vendor/moment/locale/ru.js +153 -157
  149. data/vendor/moment/locale/sd.js +82 -84
  150. data/vendor/moment/locale/se.js +46 -49
  151. data/vendor/moment/locale/si.js +56 -58
  152. data/vendor/moment/locale/sk.js +138 -141
  153. data/vendor/moment/locale/sl.js +154 -156
  154. data/vendor/moment/locale/sq.js +54 -58
  155. data/vendor/moment/locale/sr-cyrl.js +93 -95
  156. data/vendor/moment/locale/sr.js +93 -95
  157. data/vendor/moment/locale/ss.js +72 -75
  158. data/vendor/moment/locale/sv.js +55 -57
  159. data/vendor/moment/locale/sw.js +45 -47
  160. data/vendor/moment/locale/ta.js +113 -116
  161. data/vendor/moment/locale/te.js +74 -76
  162. data/vendor/moment/locale/tet.js +53 -56
  163. data/vendor/moment/locale/tg.js +115 -0
  164. data/vendor/moment/locale/th.js +52 -54
  165. data/vendor/moment/locale/tl-ph.js +48 -50
  166. data/vendor/moment/locale/tlh.js +101 -103
  167. data/vendor/moment/locale/tr.js +80 -78
  168. data/vendor/moment/locale/tzl.js +75 -78
  169. data/vendor/moment/locale/tzm-latn.js +44 -46
  170. data/vendor/moment/locale/tzm.js +44 -46
  171. data/vendor/moment/locale/ug-cn.js +118 -0
  172. data/vendor/moment/locale/uk.js +129 -132
  173. data/vendor/moment/locale/ur.js +82 -85
  174. data/vendor/moment/locale/uz-latn.js +44 -46
  175. data/vendor/moment/locale/uz.js +44 -46
  176. data/vendor/moment/locale/vi.js +64 -66
  177. data/vendor/moment/locale/x-pseudo.js +54 -56
  178. data/vendor/moment/locale/yo.js +46 -48
  179. data/vendor/moment/locale/zh-cn.js +95 -98
  180. data/vendor/moment/locale/zh-hk.js +88 -92
  181. data/vendor/moment/locale/zh-tw.js +88 -91
  182. data/vendor/moment/min/locales.js +9701 -9581
  183. data/vendor/moment/min/moment-with-locales.js +13426 -13335
  184. data/vendor/moment/moment.js +3780 -3809
  185. data/vendor/moment/package.json +10 -10
  186. data/vendor/moment-timezone/builds/moment-timezone-with-data-2012-2022.js +43 -35
  187. data/vendor/moment-timezone/builds/moment-timezone-with-data.js +290 -282
  188. data/vendor/moment-timezone/moment-timezone-utils.js +12 -10
  189. data/vendor/moment-timezone/moment-timezone.js +15 -7
  190. data/vendor/moment-timezone/package.json +5 -3
  191. data/vendor/{bootstrap → pako}/LICENSE +2 -3
  192. data/vendor/pako/dist/pako.js +6811 -0
  193. data/vendor/pako/dist/pako_deflate.js +3995 -0
  194. data/vendor/pako/dist/pako_inflate.js +3295 -0
  195. data/vendor/pako/package.json +48 -0
  196. data/yarn.lock +51 -78
  197. metadata +45 -155
  198. data/vendor/bootstrap/dist/js/bootstrap.bundle.js +0 -6461
  199. data/vendor/bootstrap/dist/js/bootstrap.js +0 -3944
  200. data/vendor/bootstrap/js/dist/alert.js +0 -204
  201. data/vendor/bootstrap/js/dist/button.js +0 -192
  202. data/vendor/bootstrap/js/dist/carousel.js +0 -567
  203. data/vendor/bootstrap/js/dist/collapse.js +0 -431
  204. data/vendor/bootstrap/js/dist/dropdown.js +0 -552
  205. data/vendor/bootstrap/js/dist/index.js +0 -23
  206. data/vendor/bootstrap/js/dist/modal.js +0 -634
  207. data/vendor/bootstrap/js/dist/popover.js +0 -266
  208. data/vendor/bootstrap/js/dist/scrollspy.js +0 -379
  209. data/vendor/bootstrap/js/dist/tab.js +0 -278
  210. data/vendor/bootstrap/js/dist/tooltip.js +0 -734
  211. data/vendor/bootstrap/js/dist/util.js +0 -144
  212. data/vendor/bootstrap/package.json +0 -217
  213. data/vendor/bootstrap/scss/_alert.scss +0 -51
  214. data/vendor/bootstrap/scss/_badge.scss +0 -47
  215. data/vendor/bootstrap/scss/_breadcrumb.scss +0 -41
  216. data/vendor/bootstrap/scss/_button-group.scss +0 -172
  217. data/vendor/bootstrap/scss/_buttons.scss +0 -143
  218. data/vendor/bootstrap/scss/_card.scss +0 -301
  219. data/vendor/bootstrap/scss/_carousel.scss +0 -236
  220. data/vendor/bootstrap/scss/_close.scss +0 -35
  221. data/vendor/bootstrap/scss/_code.scss +0 -48
  222. data/vendor/bootstrap/scss/_custom-forms.scss +0 -433
  223. data/vendor/bootstrap/scss/_dropdown.scss +0 -166
  224. data/vendor/bootstrap/scss/_forms.scss +0 -333
  225. data/vendor/bootstrap/scss/_functions.scss +0 -86
  226. data/vendor/bootstrap/scss/_grid.scss +0 -52
  227. data/vendor/bootstrap/scss/_images.scss +0 -42
  228. data/vendor/bootstrap/scss/_input-group.scss +0 -173
  229. data/vendor/bootstrap/scss/_jumbotron.scss +0 -16
  230. data/vendor/bootstrap/scss/_list-group.scss +0 -115
  231. data/vendor/bootstrap/scss/_media.scss +0 -8
  232. data/vendor/bootstrap/scss/_mixins.scss +0 -41
  233. data/vendor/bootstrap/scss/_modal.scss +0 -180
  234. data/vendor/bootstrap/scss/_nav.scss +0 -118
  235. data/vendor/bootstrap/scss/_navbar.scss +0 -299
  236. data/vendor/bootstrap/scss/_pagination.scss +0 -78
  237. data/vendor/bootstrap/scss/_popover.scss +0 -183
  238. data/vendor/bootstrap/scss/_print.scss +0 -141
  239. data/vendor/bootstrap/scss/_progress.scss +0 -34
  240. data/vendor/bootstrap/scss/_reboot.scss +0 -483
  241. data/vendor/bootstrap/scss/_root.scss +0 -19
  242. data/vendor/bootstrap/scss/_tables.scss +0 -187
  243. data/vendor/bootstrap/scss/_tooltip.scss +0 -115
  244. data/vendor/bootstrap/scss/_transitions.scss +0 -22
  245. data/vendor/bootstrap/scss/_type.scss +0 -125
  246. data/vendor/bootstrap/scss/_utilities.scss +0 -15
  247. data/vendor/bootstrap/scss/_variables.scss +0 -952
  248. data/vendor/bootstrap/scss/bootstrap-grid.scss +0 -32
  249. data/vendor/bootstrap/scss/bootstrap-reboot.scss +0 -12
  250. data/vendor/bootstrap/scss/bootstrap.scss +0 -42
  251. data/vendor/bootstrap/scss/mixins/_alert.scss +0 -13
  252. data/vendor/bootstrap/scss/mixins/_background-variant.scss +0 -21
  253. data/vendor/bootstrap/scss/mixins/_badge.scss +0 -12
  254. data/vendor/bootstrap/scss/mixins/_border-radius.scss +0 -35
  255. data/vendor/bootstrap/scss/mixins/_box-shadow.scss +0 -5
  256. data/vendor/bootstrap/scss/mixins/_breakpoints.scss +0 -123
  257. data/vendor/bootstrap/scss/mixins/_buttons.scss +0 -109
  258. data/vendor/bootstrap/scss/mixins/_caret.scss +0 -66
  259. data/vendor/bootstrap/scss/mixins/_clearfix.scss +0 -7
  260. data/vendor/bootstrap/scss/mixins/_float.scss +0 -11
  261. data/vendor/bootstrap/scss/mixins/_forms.scss +0 -147
  262. data/vendor/bootstrap/scss/mixins/_gradients.scss +0 -45
  263. data/vendor/bootstrap/scss/mixins/_grid-framework.scss +0 -67
  264. data/vendor/bootstrap/scss/mixins/_grid.scss +0 -52
  265. data/vendor/bootstrap/scss/mixins/_hover.scss +0 -37
  266. data/vendor/bootstrap/scss/mixins/_image.scss +0 -36
  267. data/vendor/bootstrap/scss/mixins/_list-group.scss +0 -21
  268. data/vendor/bootstrap/scss/mixins/_lists.scss +0 -7
  269. data/vendor/bootstrap/scss/mixins/_nav-divider.scss +0 -10
  270. data/vendor/bootstrap/scss/mixins/_pagination.scss +0 -22
  271. data/vendor/bootstrap/scss/mixins/_reset-text.scss +0 -17
  272. data/vendor/bootstrap/scss/mixins/_resize.scss +0 -6
  273. data/vendor/bootstrap/scss/mixins/_screen-reader.scss +0 -33
  274. data/vendor/bootstrap/scss/mixins/_size.scss +0 -6
  275. data/vendor/bootstrap/scss/mixins/_table-row.scss +0 -30
  276. data/vendor/bootstrap/scss/mixins/_text-emphasis.scss +0 -14
  277. data/vendor/bootstrap/scss/mixins/_text-hide.scss +0 -13
  278. data/vendor/bootstrap/scss/mixins/_text-truncate.scss +0 -8
  279. data/vendor/bootstrap/scss/mixins/_transition.scss +0 -13
  280. data/vendor/bootstrap/scss/mixins/_visibility.scss +0 -7
  281. data/vendor/bootstrap/scss/utilities/_align.scss +0 -8
  282. data/vendor/bootstrap/scss/utilities/_background.scss +0 -19
  283. data/vendor/bootstrap/scss/utilities/_borders.scss +0 -59
  284. data/vendor/bootstrap/scss/utilities/_clearfix.scss +0 -3
  285. data/vendor/bootstrap/scss/utilities/_display.scss +0 -38
  286. data/vendor/bootstrap/scss/utilities/_embed.scss +0 -52
  287. data/vendor/bootstrap/scss/utilities/_flex.scss +0 -51
  288. data/vendor/bootstrap/scss/utilities/_float.scss +0 -9
  289. data/vendor/bootstrap/scss/utilities/_position.scss +0 -37
  290. data/vendor/bootstrap/scss/utilities/_screenreaders.scss +0 -11
  291. data/vendor/bootstrap/scss/utilities/_shadows.scss +0 -6
  292. data/vendor/bootstrap/scss/utilities/_sizing.scss +0 -12
  293. data/vendor/bootstrap/scss/utilities/_spacing.scss +0 -51
  294. data/vendor/bootstrap/scss/utilities/_text.scss +0 -58
  295. data/vendor/bootstrap/scss/utilities/_visibility.scss +0 -11
  296. data/vendor/bootswatch/dist/cerulean/_bootswatch.scss +0 -99
  297. data/vendor/bootswatch/dist/cerulean/_variables.scss +0 -57
  298. data/vendor/bootswatch/dist/cosmo/_bootswatch.scss +0 -38
  299. data/vendor/bootswatch/dist/cosmo/_variables.scss +0 -68
  300. data/vendor/bootswatch/dist/cyborg/_bootswatch.scss +0 -230
  301. data/vendor/bootswatch/dist/cyborg/_variables.scss +0 -173
  302. data/vendor/bootswatch/dist/darkly/_bootswatch.scss +0 -186
  303. data/vendor/bootswatch/dist/darkly/_variables.scss +0 -178
  304. data/vendor/bootswatch/dist/flatly/_bootswatch.scss +0 -185
  305. data/vendor/bootswatch/dist/flatly/_variables.scss +0 -113
  306. data/vendor/bootswatch/dist/journal/_bootswatch.scss +0 -73
  307. data/vendor/bootswatch/dist/journal/_variables.scss +0 -60
  308. data/vendor/bootswatch/dist/litera/_bootswatch.scss +0 -212
  309. data/vendor/bootswatch/dist/litera/_variables.scss +0 -77
  310. data/vendor/bootswatch/dist/lumen/_bootswatch.scss +0 -429
  311. data/vendor/bootswatch/dist/lumen/_variables.scss +0 -82
  312. data/vendor/bootswatch/dist/lux/_bootswatch.scss +0 -157
  313. data/vendor/bootswatch/dist/lux/_variables.scss +0 -120
  314. data/vendor/bootswatch/dist/materia/_bootswatch.scss +0 -677
  315. data/vendor/bootswatch/dist/materia/_variables.scss +0 -131
  316. data/vendor/bootswatch/dist/minty/_bootswatch.scss +0 -258
  317. data/vendor/bootswatch/dist/minty/_variables.scss +0 -97
  318. data/vendor/bootswatch/dist/pulse/_bootswatch.scss +0 -154
  319. data/vendor/bootswatch/dist/pulse/_variables.scss +0 -100
  320. data/vendor/bootswatch/dist/sandstone/_bootswatch.scss +0 -235
  321. data/vendor/bootswatch/dist/sandstone/_variables.scss +0 -143
  322. data/vendor/bootswatch/dist/simplex/_bootswatch.scss +0 -130
  323. data/vendor/bootswatch/dist/simplex/_variables.scss +0 -108
  324. data/vendor/bootswatch/dist/sketchy/_bootswatch.scss +0 -411
  325. data/vendor/bootswatch/dist/sketchy/_variables.scss +0 -164
  326. data/vendor/bootswatch/dist/slate/_bootswatch.scss +0 -425
  327. data/vendor/bootswatch/dist/slate/_variables.scss +0 -160
  328. data/vendor/bootswatch/dist/solar/_bootswatch.scss +0 -119
  329. data/vendor/bootswatch/dist/solar/_variables.scss +0 -175
  330. data/vendor/bootswatch/dist/spacelab/_bootswatch.scss +0 -167
  331. data/vendor/bootswatch/dist/spacelab/_variables.scss +0 -63
  332. data/vendor/bootswatch/dist/superhero/_bootswatch.scss +0 -200
  333. data/vendor/bootswatch/dist/superhero/_variables.scss +0 -148
  334. data/vendor/bootswatch/dist/united/_bootswatch.scss +0 -26
  335. data/vendor/bootswatch/dist/united/_variables.scss +0 -53
  336. data/vendor/bootswatch/dist/yeti/_bootswatch.scss +0 -468
  337. data/vendor/bootswatch/dist/yeti/_variables.scss +0 -110
  338. data/vendor/bootswatch/package.json +0 -38
  339. data/vendor/chartkick/chartkick.js +0 -1872
  340. data/vendor/file-saver/FileSaver.js +0 -188
  341. data/vendor/popper.js/dist/umd/popper-utils.js +0 -1133
  342. data/vendor/popper.js/dist/umd/popper.js +0 -2540
  343. data/vendor/popper.js/package.json +0 -54
  344. data/vendor/tempusdominus-bootstrap-4/build/js/tempusdominus-bootstrap-4.js +0 -2779
  345. data/vendor/tempusdominus-bootstrap-4/package.json +0 -79
  346. data/vendor/tempusdominus-bootstrap-4/src/sass/_tempusdominus-bootstrap-4.scss +0 -342
  347. data/vendor/tempusdominus-bootstrap-4/src/sass/tempusdominus-bootstrap-4-build.scss +0 -12
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * jQuery JavaScript Library v3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector
2
+ * jQuery JavaScript Library v3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector
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: 2017-03-20T19:00Z
12
+ * Date: 2018-01-20T17:24Z
13
13
  */
14
14
  ( function( global, factory ) {
15
15
 
@@ -71,16 +71,57 @@ var ObjectFunctionString = fnToString.call( Object );
71
71
 
72
72
  var support = {};
73
73
 
74
+ var isFunction = function isFunction( obj ) {
74
75
 
76
+ // Support: Chrome <=57, Firefox <=52
77
+ // In some browsers, typeof returns "function" for HTML <object> elements
78
+ // (i.e., `typeof document.createElement( "object" ) === "function"`).
79
+ // We don't want to classify *any* DOM node as a function.
80
+ return typeof obj === "function" && typeof obj.nodeType !== "number";
81
+ };
75
82
 
76
- function DOMEval( code, doc ) {
83
+
84
+ var isWindow = function isWindow( obj ) {
85
+ return obj != null && obj === obj.window;
86
+ };
87
+
88
+
89
+
90
+
91
+ var preservedScriptAttributes = {
92
+ type: true,
93
+ src: true,
94
+ noModule: true
95
+ };
96
+
97
+ function DOMEval( code, doc, node ) {
77
98
  doc = doc || document;
78
99
 
79
- var script = doc.createElement( "script" );
100
+ var i,
101
+ script = doc.createElement( "script" );
80
102
 
81
103
  script.text = code;
104
+ if ( node ) {
105
+ for ( i in preservedScriptAttributes ) {
106
+ if ( node[ i ] ) {
107
+ script[ i ] = node[ i ];
108
+ }
109
+ }
110
+ }
82
111
  doc.head.appendChild( script ).parentNode.removeChild( script );
83
112
  }
113
+
114
+
115
+ function toType( obj ) {
116
+ if ( obj == null ) {
117
+ return obj + "";
118
+ }
119
+
120
+ // Support: Android <=2.3 only (functionish RegExp)
121
+ return typeof obj === "object" || typeof obj === "function" ?
122
+ class2type[ toString.call( obj ) ] || "object" :
123
+ typeof obj;
124
+ }
84
125
  /* global Symbol */
85
126
  // Defining this global in .eslintrc.json would create a danger of using the global
86
127
  // unguarded in another place, it seems safer to define global only for this module
@@ -88,7 +129,7 @@ var support = {};
88
129
 
89
130
 
90
131
  var
91
- version = "3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",
132
+ version = "3.3.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",
92
133
 
93
134
  // Define a local copy of jQuery
94
135
  jQuery = function( selector, context ) {
@@ -100,16 +141,7 @@ var
100
141
 
101
142
  // Support: Android <=4.0 only
102
143
  // Make sure we trim BOM and NBSP
103
- rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
104
-
105
- // Matches dashed string for camelizing
106
- rmsPrefix = /^-ms-/,
107
- rdashAlpha = /-([a-z])/g,
108
-
109
- // Used by jQuery.camelCase as callback to replace()
110
- fcamelCase = function( all, letter ) {
111
- return letter.toUpperCase();
112
- };
144
+ rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
113
145
 
114
146
  jQuery.fn = jQuery.prototype = {
115
147
 
@@ -209,7 +241,7 @@ jQuery.extend = jQuery.fn.extend = function() {
209
241
  }
210
242
 
211
243
  // Handle case when target is a string or something (possible in deep copy)
212
- if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
244
+ if ( typeof target !== "object" && !isFunction( target ) ) {
213
245
  target = {};
214
246
  }
215
247
 
@@ -275,28 +307,6 @@ jQuery.extend( {
275
307
 
276
308
  noop: function() {},
277
309
 
278
- isFunction: function( obj ) {
279
- return jQuery.type( obj ) === "function";
280
- },
281
-
282
- isWindow: function( obj ) {
283
- return obj != null && obj === obj.window;
284
- },
285
-
286
- isNumeric: function( obj ) {
287
-
288
- // As of jQuery 3.0, isNumeric is limited to
289
- // strings and numbers (primitives or objects)
290
- // that can be coerced to finite numbers (gh-2662)
291
- var type = jQuery.type( obj );
292
- return ( type === "number" || type === "string" ) &&
293
-
294
- // parseFloat NaNs numeric-cast false positives ("")
295
- // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
296
- // subtraction forces infinities to NaN
297
- !isNaN( obj - parseFloat( obj ) );
298
- },
299
-
300
310
  isPlainObject: function( obj ) {
301
311
  var proto, Ctor;
302
312
 
@@ -330,29 +340,11 @@ jQuery.extend( {
330
340
  return true;
331
341
  },
332
342
 
333
- type: function( obj ) {
334
- if ( obj == null ) {
335
- return obj + "";
336
- }
337
-
338
- // Support: Android <=2.3 only (functionish RegExp)
339
- return typeof obj === "object" || typeof obj === "function" ?
340
- class2type[ toString.call( obj ) ] || "object" :
341
- typeof obj;
342
- },
343
-
344
343
  // Evaluates a script in a global context
345
344
  globalEval: function( code ) {
346
345
  DOMEval( code );
347
346
  },
348
347
 
349
- // Convert dashed to camelCase; used by the css and data modules
350
- // Support: IE <=9 - 11, Edge 12 - 13
351
- // Microsoft forgot to hump their vendor prefix (#9572)
352
- camelCase: function( string ) {
353
- return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
354
- },
355
-
356
348
  each: function( obj, callback ) {
357
349
  var length, i = 0;
358
350
 
@@ -473,37 +465,6 @@ jQuery.extend( {
473
465
  // A global GUID counter for objects
474
466
  guid: 1,
475
467
 
476
- // Bind a function to a context, optionally partially applying any
477
- // arguments.
478
- proxy: function( fn, context ) {
479
- var tmp, args, proxy;
480
-
481
- if ( typeof context === "string" ) {
482
- tmp = fn[ context ];
483
- context = fn;
484
- fn = tmp;
485
- }
486
-
487
- // Quick check to determine if target is callable, in the spec
488
- // this throws a TypeError, but we will just return undefined.
489
- if ( !jQuery.isFunction( fn ) ) {
490
- return undefined;
491
- }
492
-
493
- // Simulated bind
494
- args = slice.call( arguments, 2 );
495
- proxy = function() {
496
- return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
497
- };
498
-
499
- // Set the guid of unique handler to the same of original handler, so it can be removed
500
- proxy.guid = fn.guid = fn.guid || jQuery.guid++;
501
-
502
- return proxy;
503
- },
504
-
505
- now: Date.now,
506
-
507
468
  // jQuery.support is not used in Core but other projects attach their
508
469
  // properties to it so it needs to exist.
509
470
  support: support
@@ -526,9 +487,9 @@ function isArrayLike( obj ) {
526
487
  // hasOwn isn't used here due to false negatives
527
488
  // regarding Nodelist length in IE
528
489
  var length = !!obj && "length" in obj && obj.length,
529
- type = jQuery.type( obj );
490
+ type = toType( obj );
530
491
 
531
- if ( type === "function" || jQuery.isWindow( obj ) ) {
492
+ if ( isFunction( obj ) || isWindow( obj ) ) {
532
493
  return false;
533
494
  }
534
495
 
@@ -2848,11 +2809,9 @@ var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|
2848
2809
 
2849
2810
 
2850
2811
 
2851
- var risSimple = /^.[^:#\[\.,]*$/;
2852
-
2853
2812
  // Implement the identical functionality for filter and not
2854
2813
  function winnow( elements, qualifier, not ) {
2855
- if ( jQuery.isFunction( qualifier ) ) {
2814
+ if ( isFunction( qualifier ) ) {
2856
2815
  return jQuery.grep( elements, function( elem, i ) {
2857
2816
  return !!qualifier.call( elem, i, elem ) !== not;
2858
2817
  } );
@@ -2872,16 +2831,8 @@ function winnow( elements, qualifier, not ) {
2872
2831
  } );
2873
2832
  }
2874
2833
 
2875
- // Simple selector that can be filtered directly, removing non-Elements
2876
- if ( risSimple.test( qualifier ) ) {
2877
- return jQuery.filter( qualifier, elements, not );
2878
- }
2879
-
2880
- // Complex selector, compare the two sets, removing non-Elements
2881
- qualifier = jQuery.filter( qualifier, elements );
2882
- return jQuery.grep( elements, function( elem ) {
2883
- return ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;
2884
- } );
2834
+ // Filtered directly for both simple and complex selectors
2835
+ return jQuery.filter( qualifier, elements, not );
2885
2836
  }
2886
2837
 
2887
2838
  jQuery.filter = function( expr, elems, not ) {
@@ -3002,7 +2953,7 @@ var rootjQuery,
3002
2953
  for ( match in context ) {
3003
2954
 
3004
2955
  // Properties of context are called as methods if possible
3005
- if ( jQuery.isFunction( this[ match ] ) ) {
2956
+ if ( isFunction( this[ match ] ) ) {
3006
2957
  this[ match ]( context[ match ] );
3007
2958
 
3008
2959
  // ...and otherwise set as attributes
@@ -3045,7 +2996,7 @@ var rootjQuery,
3045
2996
 
3046
2997
  // HANDLE: $(function)
3047
2998
  // Shortcut for document ready
3048
- } else if ( jQuery.isFunction( selector ) ) {
2999
+ } else if ( isFunction( selector ) ) {
3049
3000
  return root.ready !== undefined ?
3050
3001
  root.ready( selector ) :
3051
3002
 
@@ -3360,11 +3311,11 @@ jQuery.Callbacks = function( options ) {
3360
3311
 
3361
3312
  ( function add( args ) {
3362
3313
  jQuery.each( args, function( _, arg ) {
3363
- if ( jQuery.isFunction( arg ) ) {
3314
+ if ( isFunction( arg ) ) {
3364
3315
  if ( !options.unique || !self.has( arg ) ) {
3365
3316
  list.push( arg );
3366
3317
  }
3367
- } else if ( arg && arg.length && jQuery.type( arg ) !== "string" ) {
3318
+ } else if ( arg && arg.length && toType( arg ) !== "string" ) {
3368
3319
 
3369
3320
  // Inspect recursively
3370
3321
  add( arg );
@@ -3479,11 +3430,11 @@ function adoptValue( value, resolve, reject, noValue ) {
3479
3430
  try {
3480
3431
 
3481
3432
  // Check for promise aspect first to privilege synchronous behavior
3482
- if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
3433
+ if ( value && isFunction( ( method = value.promise ) ) ) {
3483
3434
  method.call( value ).done( resolve ).fail( reject );
3484
3435
 
3485
3436
  // Other thenables
3486
- } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
3437
+ } else if ( value && isFunction( ( method = value.then ) ) ) {
3487
3438
  method.call( value, resolve, reject );
3488
3439
 
3489
3440
  // Other non-thenables
@@ -3541,14 +3492,14 @@ jQuery.extend( {
3541
3492
  jQuery.each( tuples, function( i, tuple ) {
3542
3493
 
3543
3494
  // Map tuples (progress, done, fail) to arguments (done, fail, progress)
3544
- var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
3495
+ var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
3545
3496
 
3546
3497
  // deferred.progress(function() { bind to newDefer or newDefer.notify })
3547
3498
  // deferred.done(function() { bind to newDefer or newDefer.resolve })
3548
3499
  // deferred.fail(function() { bind to newDefer or newDefer.reject })
3549
3500
  deferred[ tuple[ 1 ] ]( function() {
3550
3501
  var returned = fn && fn.apply( this, arguments );
3551
- if ( returned && jQuery.isFunction( returned.promise ) ) {
3502
+ if ( returned && isFunction( returned.promise ) ) {
3552
3503
  returned.promise()
3553
3504
  .progress( newDefer.notify )
3554
3505
  .done( newDefer.resolve )
@@ -3602,7 +3553,7 @@ jQuery.extend( {
3602
3553
  returned.then;
3603
3554
 
3604
3555
  // Handle a returned thenable
3605
- if ( jQuery.isFunction( then ) ) {
3556
+ if ( isFunction( then ) ) {
3606
3557
 
3607
3558
  // Special processors (notify) just wait for resolution
3608
3559
  if ( special ) {
@@ -3698,7 +3649,7 @@ jQuery.extend( {
3698
3649
  resolve(
3699
3650
  0,
3700
3651
  newDefer,
3701
- jQuery.isFunction( onProgress ) ?
3652
+ isFunction( onProgress ) ?
3702
3653
  onProgress :
3703
3654
  Identity,
3704
3655
  newDefer.notifyWith
@@ -3710,7 +3661,7 @@ jQuery.extend( {
3710
3661
  resolve(
3711
3662
  0,
3712
3663
  newDefer,
3713
- jQuery.isFunction( onFulfilled ) ?
3664
+ isFunction( onFulfilled ) ?
3714
3665
  onFulfilled :
3715
3666
  Identity
3716
3667
  )
@@ -3721,7 +3672,7 @@ jQuery.extend( {
3721
3672
  resolve(
3722
3673
  0,
3723
3674
  newDefer,
3724
- jQuery.isFunction( onRejected ) ?
3675
+ isFunction( onRejected ) ?
3725
3676
  onRejected :
3726
3677
  Thrower
3727
3678
  )
@@ -3761,8 +3712,15 @@ jQuery.extend( {
3761
3712
  // fulfilled_callbacks.disable
3762
3713
  tuples[ 3 - i ][ 2 ].disable,
3763
3714
 
3715
+ // rejected_handlers.disable
3716
+ // fulfilled_handlers.disable
3717
+ tuples[ 3 - i ][ 3 ].disable,
3718
+
3764
3719
  // progress_callbacks.lock
3765
- tuples[ 0 ][ 2 ].lock
3720
+ tuples[ 0 ][ 2 ].lock,
3721
+
3722
+ // progress_handlers.lock
3723
+ tuples[ 0 ][ 3 ].lock
3766
3724
  );
3767
3725
  }
3768
3726
 
@@ -3832,7 +3790,7 @@ jQuery.extend( {
3832
3790
 
3833
3791
  // Use .then() to unwrap secondary thenables (cf. gh-3000)
3834
3792
  if ( master.state() === "pending" ||
3835
- jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
3793
+ isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
3836
3794
 
3837
3795
  return master.then();
3838
3796
  }
@@ -3960,7 +3918,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
3960
3918
  bulk = key == null;
3961
3919
 
3962
3920
  // Sets many values
3963
- if ( jQuery.type( key ) === "object" ) {
3921
+ if ( toType( key ) === "object" ) {
3964
3922
  chainable = true;
3965
3923
  for ( i in key ) {
3966
3924
  access( elems, fn, i, key[ i ], true, emptyGet, raw );
@@ -3970,7 +3928,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
3970
3928
  } else if ( value !== undefined ) {
3971
3929
  chainable = true;
3972
3930
 
3973
- if ( !jQuery.isFunction( value ) ) {
3931
+ if ( !isFunction( value ) ) {
3974
3932
  raw = true;
3975
3933
  }
3976
3934
 
@@ -4012,6 +3970,23 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
4012
3970
 
4013
3971
  return len ? fn( elems[ 0 ], key ) : emptyGet;
4014
3972
  };
3973
+
3974
+
3975
+ // Matches dashed string for camelizing
3976
+ var rmsPrefix = /^-ms-/,
3977
+ rdashAlpha = /-([a-z])/g;
3978
+
3979
+ // Used by camelCase as callback to replace()
3980
+ function fcamelCase( all, letter ) {
3981
+ return letter.toUpperCase();
3982
+ }
3983
+
3984
+ // Convert dashed to camelCase; used by the css and data modules
3985
+ // Support: IE <=9 - 11, Edge 12 - 15
3986
+ // Microsoft forgot to hump their vendor prefix (#9572)
3987
+ function camelCase( string ) {
3988
+ return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
3989
+ }
4015
3990
  var acceptData = function( owner ) {
4016
3991
 
4017
3992
  // Accepts only:
@@ -4074,14 +4049,14 @@ Data.prototype = {
4074
4049
  // Handle: [ owner, key, value ] args
4075
4050
  // Always use camelCase key (gh-2257)
4076
4051
  if ( typeof data === "string" ) {
4077
- cache[ jQuery.camelCase( data ) ] = value;
4052
+ cache[ camelCase( data ) ] = value;
4078
4053
 
4079
4054
  // Handle: [ owner, { properties } ] args
4080
4055
  } else {
4081
4056
 
4082
4057
  // Copy the properties one-by-one to the cache object
4083
4058
  for ( prop in data ) {
4084
- cache[ jQuery.camelCase( prop ) ] = data[ prop ];
4059
+ cache[ camelCase( prop ) ] = data[ prop ];
4085
4060
  }
4086
4061
  }
4087
4062
  return cache;
@@ -4091,7 +4066,7 @@ Data.prototype = {
4091
4066
  this.cache( owner ) :
4092
4067
 
4093
4068
  // Always use camelCase key (gh-2257)
4094
- owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
4069
+ owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];
4095
4070
  },
4096
4071
  access: function( owner, key, value ) {
4097
4072
 
@@ -4139,9 +4114,9 @@ Data.prototype = {
4139
4114
 
4140
4115
  // If key is an array of keys...
4141
4116
  // We always set camelCase keys, so remove that.
4142
- key = key.map( jQuery.camelCase );
4117
+ key = key.map( camelCase );
4143
4118
  } else {
4144
- key = jQuery.camelCase( key );
4119
+ key = camelCase( key );
4145
4120
 
4146
4121
  // If a key with the spaces exists, use it.
4147
4122
  // Otherwise, create an array by matching non-whitespace
@@ -4287,7 +4262,7 @@ jQuery.fn.extend( {
4287
4262
  if ( attrs[ i ] ) {
4288
4263
  name = attrs[ i ].name;
4289
4264
  if ( name.indexOf( "data-" ) === 0 ) {
4290
- name = jQuery.camelCase( name.slice( 5 ) );
4265
+ name = camelCase( name.slice( 5 ) );
4291
4266
  dataAttr( elem, name, data[ name ] );
4292
4267
  }
4293
4268
  }
@@ -4534,8 +4509,7 @@ var swap = function( elem, options, callback, args ) {
4534
4509
 
4535
4510
 
4536
4511
  function adjustCSS( elem, prop, valueParts, tween ) {
4537
- var adjusted,
4538
- scale = 1,
4512
+ var adjusted, scale,
4539
4513
  maxIterations = 20,
4540
4514
  currentValue = tween ?
4541
4515
  function() {
@@ -4553,30 +4527,33 @@ function adjustCSS( elem, prop, valueParts, tween ) {
4553
4527
 
4554
4528
  if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
4555
4529
 
4530
+ // Support: Firefox <=54
4531
+ // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)
4532
+ initial = initial / 2;
4533
+
4556
4534
  // Trust units reported by jQuery.css
4557
4535
  unit = unit || initialInUnit[ 3 ];
4558
4536
 
4559
- // Make sure we update the tween properties later on
4560
- valueParts = valueParts || [];
4561
-
4562
4537
  // Iteratively approximate from a nonzero starting point
4563
4538
  initialInUnit = +initial || 1;
4564
4539
 
4565
- do {
4540
+ while ( maxIterations-- ) {
4566
4541
 
4567
- // If previous iteration zeroed out, double until we get *something*.
4568
- // Use string for doubling so we don't accidentally see scale as unchanged below
4569
- scale = scale || ".5";
4570
-
4571
- // Adjust and apply
4572
- initialInUnit = initialInUnit / scale;
4542
+ // Evaluate and update our best guess (doubling guesses that zero out).
4543
+ // Finish if the scale equals or crosses 1 (making the old*new product non-positive).
4573
4544
  jQuery.style( elem, prop, initialInUnit + unit );
4545
+ if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {
4546
+ maxIterations = 0;
4547
+ }
4548
+ initialInUnit = initialInUnit / scale;
4574
4549
 
4575
- // Update scale, tolerating zero or NaN from tween.cur()
4576
- // Break the loop if scale is unchanged or perfect, or if we've just had enough.
4577
- } while (
4578
- scale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations
4579
- );
4550
+ }
4551
+
4552
+ initialInUnit = initialInUnit * 2;
4553
+ jQuery.style( elem, prop, initialInUnit + unit );
4554
+
4555
+ // Make sure we update the tween properties later on
4556
+ valueParts = valueParts || [];
4580
4557
  }
4581
4558
 
4582
4559
  if ( valueParts ) {
@@ -4694,7 +4671,7 @@ var rcheckableType = ( /^(?:checkbox|radio)$/i );
4694
4671
 
4695
4672
  var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
4696
4673
 
4697
- var rscriptType = ( /^$|\/(?:java|ecma)script/i );
4674
+ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
4698
4675
 
4699
4676
 
4700
4677
 
@@ -4776,7 +4753,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
4776
4753
  if ( elem || elem === 0 ) {
4777
4754
 
4778
4755
  // Add nodes directly
4779
- if ( jQuery.type( elem ) === "object" ) {
4756
+ if ( toType( elem ) === "object" ) {
4780
4757
 
4781
4758
  // Support: Android <=4.0 only, PhantomJS 1 only
4782
4759
  // push.apply(_, arraylike) throws on ancient WebKit
@@ -5286,7 +5263,7 @@ jQuery.event = {
5286
5263
  enumerable: true,
5287
5264
  configurable: true,
5288
5265
 
5289
- get: jQuery.isFunction( hook ) ?
5266
+ get: isFunction( hook ) ?
5290
5267
  function() {
5291
5268
  if ( this.originalEvent ) {
5292
5269
  return hook( this.originalEvent );
@@ -5421,7 +5398,7 @@ jQuery.Event = function( src, props ) {
5421
5398
  }
5422
5399
 
5423
5400
  // Create a timestamp if incoming event doesn't have one
5424
- this.timeStamp = src && src.timeStamp || jQuery.now();
5401
+ this.timeStamp = src && src.timeStamp || Date.now();
5425
5402
 
5426
5403
  // Mark it as fixed
5427
5404
  this[ jQuery.expando ] = true;
@@ -5620,14 +5597,13 @@ var
5620
5597
 
5621
5598
  /* eslint-enable */
5622
5599
 
5623
- // Support: IE <=10 - 11, Edge 12 - 13
5600
+ // Support: IE <=10 - 11, Edge 12 - 13 only
5624
5601
  // In IE/Edge using regex groups here causes severe slowdowns.
5625
5602
  // See https://connect.microsoft.com/IE/feedback/details/1736512/
5626
5603
  rnoInnerhtml = /<script|<style|<link/i,
5627
5604
 
5628
5605
  // checked="checked" or checked
5629
5606
  rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
5630
- rscriptTypeMasked = /^true\/(.*)/,
5631
5607
  rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
5632
5608
 
5633
5609
  // Prefer a tbody over its parent table for containing new rows
@@ -5635,7 +5611,7 @@ function manipulationTarget( elem, content ) {
5635
5611
  if ( nodeName( elem, "table" ) &&
5636
5612
  nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
5637
5613
 
5638
- return jQuery( ">tbody", elem )[ 0 ] || elem;
5614
+ return jQuery( elem ).children( "tbody" )[ 0 ] || elem;
5639
5615
  }
5640
5616
 
5641
5617
  return elem;
@@ -5647,10 +5623,8 @@ function disableScript( elem ) {
5647
5623
  return elem;
5648
5624
  }
5649
5625
  function restoreScript( elem ) {
5650
- var match = rscriptTypeMasked.exec( elem.type );
5651
-
5652
- if ( match ) {
5653
- elem.type = match[ 1 ];
5626
+ if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) {
5627
+ elem.type = elem.type.slice( 5 );
5654
5628
  } else {
5655
5629
  elem.removeAttribute( "type" );
5656
5630
  }
@@ -5716,15 +5690,15 @@ function domManip( collection, args, callback, ignored ) {
5716
5690
  l = collection.length,
5717
5691
  iNoClone = l - 1,
5718
5692
  value = args[ 0 ],
5719
- isFunction = jQuery.isFunction( value );
5693
+ valueIsFunction = isFunction( value );
5720
5694
 
5721
5695
  // We can't cloneNode fragments that contain checked, in WebKit
5722
- if ( isFunction ||
5696
+ if ( valueIsFunction ||
5723
5697
  ( l > 1 && typeof value === "string" &&
5724
5698
  !support.checkClone && rchecked.test( value ) ) ) {
5725
5699
  return collection.each( function( index ) {
5726
5700
  var self = collection.eq( index );
5727
- if ( isFunction ) {
5701
+ if ( valueIsFunction ) {
5728
5702
  args[ 0 ] = value.call( this, index, self.html() );
5729
5703
  }
5730
5704
  domManip( self, args, callback, ignored );
@@ -5778,14 +5752,14 @@ function domManip( collection, args, callback, ignored ) {
5778
5752
  !dataPriv.access( node, "globalEval" ) &&
5779
5753
  jQuery.contains( doc, node ) ) {
5780
5754
 
5781
- if ( node.src ) {
5755
+ if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) {
5782
5756
 
5783
5757
  // Optional AJAX dependency, but won't run scripts if not present
5784
5758
  if ( jQuery._evalUrl ) {
5785
5759
  jQuery._evalUrl( node.src );
5786
5760
  }
5787
5761
  } else {
5788
- DOMEval( node.textContent.replace( rcleanScript, "" ), doc );
5762
+ DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
5789
5763
  }
5790
5764
  }
5791
5765
  }
@@ -6065,8 +6039,6 @@ jQuery.each( {
6065
6039
  return this.pushStack( ret );
6066
6040
  };
6067
6041
  } );
6068
- var rmargin = ( /^margin/ );
6069
-
6070
6042
  var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
6071
6043
 
6072
6044
  var getStyles = function( elem ) {
@@ -6083,6 +6055,8 @@ var getStyles = function( elem ) {
6083
6055
  return view.getComputedStyle( elem );
6084
6056
  };
6085
6057
 
6058
+ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
6059
+
6086
6060
 
6087
6061
 
6088
6062
  ( function() {
@@ -6096,25 +6070,33 @@ var getStyles = function( elem ) {
6096
6070
  return;
6097
6071
  }
6098
6072
 
6073
+ container.style.cssText = "position:absolute;left:-11111px;width:60px;" +
6074
+ "margin-top:1px;padding:0;border:0";
6099
6075
  div.style.cssText =
6100
- "box-sizing:border-box;" +
6101
- "position:relative;display:block;" +
6076
+ "position:relative;display:block;box-sizing:border-box;overflow:scroll;" +
6102
6077
  "margin:auto;border:1px;padding:1px;" +
6103
- "top:1%;width:50%";
6104
- div.innerHTML = "";
6105
- documentElement.appendChild( container );
6078
+ "width:60%;top:1%";
6079
+ documentElement.appendChild( container ).appendChild( div );
6106
6080
 
6107
6081
  var divStyle = window.getComputedStyle( div );
6108
6082
  pixelPositionVal = divStyle.top !== "1%";
6109
6083
 
6110
6084
  // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44
6111
- reliableMarginLeftVal = divStyle.marginLeft === "2px";
6112
- boxSizingReliableVal = divStyle.width === "4px";
6085
+ reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;
6113
6086
 
6114
- // Support: Android 4.0 - 4.3 only
6087
+ // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3
6115
6088
  // Some styles come back with percentage values, even though they shouldn't
6116
- div.style.marginRight = "50%";
6117
- pixelMarginRightVal = divStyle.marginRight === "4px";
6089
+ div.style.right = "60%";
6090
+ pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;
6091
+
6092
+ // Support: IE 9 - 11 only
6093
+ // Detect misreporting of content dimensions for box-sizing:border-box elements
6094
+ boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;
6095
+
6096
+ // Support: IE 9 only
6097
+ // Detect overflow:scroll screwiness (gh-3699)
6098
+ div.style.position = "absolute";
6099
+ scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
6118
6100
 
6119
6101
  documentElement.removeChild( container );
6120
6102
 
@@ -6123,7 +6105,12 @@ var getStyles = function( elem ) {
6123
6105
  div = null;
6124
6106
  }
6125
6107
 
6126
- var pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,
6108
+ function roundPixelMeasures( measure ) {
6109
+ return Math.round( parseFloat( measure ) );
6110
+ }
6111
+
6112
+ var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,
6113
+ reliableMarginLeftVal,
6127
6114
  container = document.createElement( "div" ),
6128
6115
  div = document.createElement( "div" );
6129
6116
 
@@ -6138,26 +6125,26 @@ var getStyles = function( elem ) {
6138
6125
  div.cloneNode( true ).style.backgroundClip = "";
6139
6126
  support.clearCloneStyle = div.style.backgroundClip === "content-box";
6140
6127
 
6141
- container.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;" +
6142
- "padding:0;margin-top:1px;position:absolute";
6143
- container.appendChild( div );
6144
-
6145
6128
  jQuery.extend( support, {
6146
- pixelPosition: function() {
6147
- computeStyleTests();
6148
- return pixelPositionVal;
6149
- },
6150
6129
  boxSizingReliable: function() {
6151
6130
  computeStyleTests();
6152
6131
  return boxSizingReliableVal;
6153
6132
  },
6154
- pixelMarginRight: function() {
6133
+ pixelBoxStyles: function() {
6134
+ computeStyleTests();
6135
+ return pixelBoxStylesVal;
6136
+ },
6137
+ pixelPosition: function() {
6155
6138
  computeStyleTests();
6156
- return pixelMarginRightVal;
6139
+ return pixelPositionVal;
6157
6140
  },
6158
6141
  reliableMarginLeft: function() {
6159
6142
  computeStyleTests();
6160
6143
  return reliableMarginLeftVal;
6144
+ },
6145
+ scrollboxSize: function() {
6146
+ computeStyleTests();
6147
+ return scrollboxSizeVal;
6161
6148
  }
6162
6149
  } );
6163
6150
  } )();
@@ -6189,7 +6176,7 @@ function curCSS( elem, name, computed ) {
6189
6176
  // but width seems to be reliably pixels.
6190
6177
  // This is against the CSSOM draft spec:
6191
6178
  // https://drafts.csswg.org/cssom/#resolved-values
6192
- if ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {
6179
+ if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {
6193
6180
 
6194
6181
  // Remember the original values
6195
6182
  width = style.width;
@@ -6294,87 +6281,120 @@ function setPositiveNumber( elem, value, subtract ) {
6294
6281
  value;
6295
6282
  }
6296
6283
 
6297
- function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
6298
- var i,
6299
- val = 0;
6300
-
6301
- // If we already have the right measurement, avoid augmentation
6302
- if ( extra === ( isBorderBox ? "border" : "content" ) ) {
6303
- i = 4;
6284
+ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
6285
+ var i = dimension === "width" ? 1 : 0,
6286
+ extra = 0,
6287
+ delta = 0;
6304
6288
 
6305
- // Otherwise initialize for horizontal or vertical properties
6306
- } else {
6307
- i = name === "width" ? 1 : 0;
6289
+ // Adjustment may not be necessary
6290
+ if ( box === ( isBorderBox ? "border" : "content" ) ) {
6291
+ return 0;
6308
6292
  }
6309
6293
 
6310
6294
  for ( ; i < 4; i += 2 ) {
6311
6295
 
6312
- // Both box models exclude margin, so add it if we want it
6313
- if ( extra === "margin" ) {
6314
- val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
6296
+ // Both box models exclude margin
6297
+ if ( box === "margin" ) {
6298
+ delta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
6315
6299
  }
6316
6300
 
6317
- if ( isBorderBox ) {
6301
+ // If we get here with a content-box, we're seeking "padding" or "border" or "margin"
6302
+ if ( !isBorderBox ) {
6318
6303
 
6319
- // border-box includes padding, so remove it if we want content
6320
- if ( extra === "content" ) {
6321
- val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
6322
- }
6304
+ // Add padding
6305
+ delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
6323
6306
 
6324
- // At this point, extra isn't border nor margin, so remove border
6325
- if ( extra !== "margin" ) {
6326
- val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
6307
+ // For "border" or "margin", add border
6308
+ if ( box !== "padding" ) {
6309
+ delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
6310
+
6311
+ // But still keep track of it otherwise
6312
+ } else {
6313
+ extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
6327
6314
  }
6315
+
6316
+ // If we get here with a border-box (content + padding + border), we're seeking "content" or
6317
+ // "padding" or "margin"
6328
6318
  } else {
6329
6319
 
6330
- // At this point, extra isn't content, so add padding
6331
- val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
6320
+ // For "content", subtract padding
6321
+ if ( box === "content" ) {
6322
+ delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
6323
+ }
6332
6324
 
6333
- // At this point, extra isn't content nor padding, so add border
6334
- if ( extra !== "padding" ) {
6335
- val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
6325
+ // For "content" or "padding", subtract border
6326
+ if ( box !== "margin" ) {
6327
+ delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
6336
6328
  }
6337
6329
  }
6338
6330
  }
6339
6331
 
6340
- return val;
6332
+ // Account for positive content-box scroll gutter when requested by providing computedVal
6333
+ if ( !isBorderBox && computedVal >= 0 ) {
6334
+
6335
+ // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
6336
+ // Assuming integer scroll gutter, subtract the rest and round down
6337
+ delta += Math.max( 0, Math.ceil(
6338
+ elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
6339
+ computedVal -
6340
+ delta -
6341
+ extra -
6342
+ 0.5
6343
+ ) );
6344
+ }
6345
+
6346
+ return delta;
6341
6347
  }
6342
6348
 
6343
- function getWidthOrHeight( elem, name, extra ) {
6349
+ function getWidthOrHeight( elem, dimension, extra ) {
6344
6350
 
6345
6351
  // Start with computed style
6346
- var valueIsBorderBox,
6347
- styles = getStyles( elem ),
6348
- val = curCSS( elem, name, styles ),
6349
- isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
6352
+ var styles = getStyles( elem ),
6353
+ val = curCSS( elem, dimension, styles ),
6354
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6355
+ valueIsBorderBox = isBorderBox;
6350
6356
 
6351
- // Computed unit is not pixels. Stop here and return.
6357
+ // Support: Firefox <=54
6358
+ // Return a confounding non-pixel value or feign ignorance, as appropriate.
6352
6359
  if ( rnumnonpx.test( val ) ) {
6353
- return val;
6360
+ if ( !extra ) {
6361
+ return val;
6362
+ }
6363
+ val = "auto";
6354
6364
  }
6355
6365
 
6356
6366
  // Check for style in case a browser which returns unreliable values
6357
6367
  // for getComputedStyle silently falls back to the reliable elem.style
6358
- valueIsBorderBox = isBorderBox &&
6359
- ( support.boxSizingReliable() || val === elem.style[ name ] );
6368
+ valueIsBorderBox = valueIsBorderBox &&
6369
+ ( support.boxSizingReliable() || val === elem.style[ dimension ] );
6360
6370
 
6361
- // Fall back to offsetWidth/Height when value is "auto"
6371
+ // Fall back to offsetWidth/offsetHeight when value is "auto"
6362
6372
  // This happens for inline elements with no explicit setting (gh-3571)
6363
- if ( val === "auto" ) {
6364
- val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ];
6373
+ // Support: Android <=4.1 - 4.3 only
6374
+ // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
6375
+ if ( val === "auto" ||
6376
+ !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
6377
+
6378
+ val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
6379
+
6380
+ // offsetWidth/offsetHeight provide border-box values
6381
+ valueIsBorderBox = true;
6365
6382
  }
6366
6383
 
6367
- // Normalize "", auto, and prepare for extra
6384
+ // Normalize "" and auto
6368
6385
  val = parseFloat( val ) || 0;
6369
6386
 
6370
- // Use the active box-sizing model to add/subtract irrelevant styles
6387
+ // Adjust for the element's box model
6371
6388
  return ( val +
6372
- augmentWidthOrHeight(
6389
+ boxModelAdjustment(
6373
6390
  elem,
6374
- name,
6391
+ dimension,
6375
6392
  extra || ( isBorderBox ? "border" : "content" ),
6376
6393
  valueIsBorderBox,
6377
- styles
6394
+ styles,
6395
+
6396
+ // Provide the current computed size to request scroll gutter calculation (gh-3589)
6397
+ val
6378
6398
  )
6379
6399
  ) + "px";
6380
6400
  }
@@ -6415,9 +6435,7 @@ jQuery.extend( {
6415
6435
 
6416
6436
  // Add in properties whose names you wish to fix before
6417
6437
  // setting or getting the value
6418
- cssProps: {
6419
- "float": "cssFloat"
6420
- },
6438
+ cssProps: {},
6421
6439
 
6422
6440
  // Get and set the style property on a DOM Node
6423
6441
  style: function( elem, name, value, extra ) {
@@ -6429,7 +6447,7 @@ jQuery.extend( {
6429
6447
 
6430
6448
  // Make sure that we're working with the right name
6431
6449
  var ret, type, hooks,
6432
- origName = jQuery.camelCase( name ),
6450
+ origName = camelCase( name ),
6433
6451
  isCustomProp = rcustomProp.test( name ),
6434
6452
  style = elem.style;
6435
6453
 
@@ -6497,7 +6515,7 @@ jQuery.extend( {
6497
6515
 
6498
6516
  css: function( elem, name, extra, styles ) {
6499
6517
  var val, num, hooks,
6500
- origName = jQuery.camelCase( name ),
6518
+ origName = camelCase( name ),
6501
6519
  isCustomProp = rcustomProp.test( name );
6502
6520
 
6503
6521
  // Make sure that we're working with the right name. We don't
@@ -6535,8 +6553,8 @@ jQuery.extend( {
6535
6553
  }
6536
6554
  } );
6537
6555
 
6538
- jQuery.each( [ "height", "width" ], function( i, name ) {
6539
- jQuery.cssHooks[ name ] = {
6556
+ jQuery.each( [ "height", "width" ], function( i, dimension ) {
6557
+ jQuery.cssHooks[ dimension ] = {
6540
6558
  get: function( elem, computed, extra ) {
6541
6559
  if ( computed ) {
6542
6560
 
@@ -6552,29 +6570,41 @@ jQuery.each( [ "height", "width" ], function( i, name ) {
6552
6570
  // in IE throws an error.
6553
6571
  ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
6554
6572
  swap( elem, cssShow, function() {
6555
- return getWidthOrHeight( elem, name, extra );
6573
+ return getWidthOrHeight( elem, dimension, extra );
6556
6574
  } ) :
6557
- getWidthOrHeight( elem, name, extra );
6575
+ getWidthOrHeight( elem, dimension, extra );
6558
6576
  }
6559
6577
  },
6560
6578
 
6561
6579
  set: function( elem, value, extra ) {
6562
6580
  var matches,
6563
- styles = extra && getStyles( elem ),
6564
- subtract = extra && augmentWidthOrHeight(
6581
+ styles = getStyles( elem ),
6582
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6583
+ subtract = extra && boxModelAdjustment(
6565
6584
  elem,
6566
- name,
6585
+ dimension,
6567
6586
  extra,
6568
- jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
6587
+ isBorderBox,
6569
6588
  styles
6570
6589
  );
6571
6590
 
6591
+ // Account for unreliable border-box dimensions by comparing offset* to computed and
6592
+ // faking a content-box to get border and padding (gh-3699)
6593
+ if ( isBorderBox && support.scrollboxSize() === styles.position ) {
6594
+ subtract -= Math.ceil(
6595
+ elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
6596
+ parseFloat( styles[ dimension ] ) -
6597
+ boxModelAdjustment( elem, dimension, "border", false, styles ) -
6598
+ 0.5
6599
+ );
6600
+ }
6601
+
6572
6602
  // Convert to pixels if value adjustment is needed
6573
6603
  if ( subtract && ( matches = rcssNum.exec( value ) ) &&
6574
6604
  ( matches[ 3 ] || "px" ) !== "px" ) {
6575
6605
 
6576
- elem.style[ name ] = value;
6577
- value = jQuery.css( elem, name );
6606
+ elem.style[ dimension ] = value;
6607
+ value = jQuery.css( elem, dimension );
6578
6608
  }
6579
6609
 
6580
6610
  return setPositiveNumber( elem, value, subtract );
@@ -6618,7 +6648,7 @@ jQuery.each( {
6618
6648
  }
6619
6649
  };
6620
6650
 
6621
- if ( !rmargin.test( prefix ) ) {
6651
+ if ( prefix !== "margin" ) {
6622
6652
  jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
6623
6653
  }
6624
6654
  } );
@@ -6957,7 +6987,7 @@ jQuery.each( [
6957
6987
 
6958
6988
 
6959
6989
  // Strip and collapse whitespace according to HTML spec
6960
- // https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace
6990
+ // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace
6961
6991
  function stripAndCollapse( value ) {
6962
6992
  var tokens = value.match( rnothtmlwhite ) || [];
6963
6993
  return tokens.join( " " );
@@ -6968,20 +6998,30 @@ function getClass( elem ) {
6968
6998
  return elem.getAttribute && elem.getAttribute( "class" ) || "";
6969
6999
  }
6970
7000
 
7001
+ function classesToArray( value ) {
7002
+ if ( Array.isArray( value ) ) {
7003
+ return value;
7004
+ }
7005
+ if ( typeof value === "string" ) {
7006
+ return value.match( rnothtmlwhite ) || [];
7007
+ }
7008
+ return [];
7009
+ }
7010
+
6971
7011
  jQuery.fn.extend( {
6972
7012
  addClass: function( value ) {
6973
7013
  var classes, elem, cur, curValue, clazz, j, finalValue,
6974
7014
  i = 0;
6975
7015
 
6976
- if ( jQuery.isFunction( value ) ) {
7016
+ if ( isFunction( value ) ) {
6977
7017
  return this.each( function( j ) {
6978
7018
  jQuery( this ).addClass( value.call( this, j, getClass( this ) ) );
6979
7019
  } );
6980
7020
  }
6981
7021
 
6982
- if ( typeof value === "string" && value ) {
6983
- classes = value.match( rnothtmlwhite ) || [];
7022
+ classes = classesToArray( value );
6984
7023
 
7024
+ if ( classes.length ) {
6985
7025
  while ( ( elem = this[ i++ ] ) ) {
6986
7026
  curValue = getClass( elem );
6987
7027
  cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
@@ -7010,7 +7050,7 @@ jQuery.fn.extend( {
7010
7050
  var classes, elem, cur, curValue, clazz, j, finalValue,
7011
7051
  i = 0;
7012
7052
 
7013
- if ( jQuery.isFunction( value ) ) {
7053
+ if ( isFunction( value ) ) {
7014
7054
  return this.each( function( j ) {
7015
7055
  jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );
7016
7056
  } );
@@ -7020,9 +7060,9 @@ jQuery.fn.extend( {
7020
7060
  return this.attr( "class", "" );
7021
7061
  }
7022
7062
 
7023
- if ( typeof value === "string" && value ) {
7024
- classes = value.match( rnothtmlwhite ) || [];
7063
+ classes = classesToArray( value );
7025
7064
 
7065
+ if ( classes.length ) {
7026
7066
  while ( ( elem = this[ i++ ] ) ) {
7027
7067
  curValue = getClass( elem );
7028
7068
 
@@ -7052,13 +7092,14 @@ jQuery.fn.extend( {
7052
7092
  },
7053
7093
 
7054
7094
  toggleClass: function( value, stateVal ) {
7055
- var type = typeof value;
7095
+ var type = typeof value,
7096
+ isValidValue = type === "string" || Array.isArray( value );
7056
7097
 
7057
- if ( typeof stateVal === "boolean" && type === "string" ) {
7098
+ if ( typeof stateVal === "boolean" && isValidValue ) {
7058
7099
  return stateVal ? this.addClass( value ) : this.removeClass( value );
7059
7100
  }
7060
7101
 
7061
- if ( jQuery.isFunction( value ) ) {
7102
+ if ( isFunction( value ) ) {
7062
7103
  return this.each( function( i ) {
7063
7104
  jQuery( this ).toggleClass(
7064
7105
  value.call( this, i, getClass( this ), stateVal ),
@@ -7070,12 +7111,12 @@ jQuery.fn.extend( {
7070
7111
  return this.each( function() {
7071
7112
  var className, i, self, classNames;
7072
7113
 
7073
- if ( type === "string" ) {
7114
+ if ( isValidValue ) {
7074
7115
 
7075
7116
  // Toggle individual class names
7076
7117
  i = 0;
7077
7118
  self = jQuery( this );
7078
- classNames = value.match( rnothtmlwhite ) || [];
7119
+ classNames = classesToArray( value );
7079
7120
 
7080
7121
  while ( ( className = classNames[ i++ ] ) ) {
7081
7122
 
@@ -7134,7 +7175,7 @@ var rreturn = /\r/g;
7134
7175
 
7135
7176
  jQuery.fn.extend( {
7136
7177
  val: function( value ) {
7137
- var hooks, ret, isFunction,
7178
+ var hooks, ret, valueIsFunction,
7138
7179
  elem = this[ 0 ];
7139
7180
 
7140
7181
  if ( !arguments.length ) {
@@ -7163,7 +7204,7 @@ jQuery.fn.extend( {
7163
7204
  return;
7164
7205
  }
7165
7206
 
7166
- isFunction = jQuery.isFunction( value );
7207
+ valueIsFunction = isFunction( value );
7167
7208
 
7168
7209
  return this.each( function( i ) {
7169
7210
  var val;
@@ -7172,7 +7213,7 @@ jQuery.fn.extend( {
7172
7213
  return;
7173
7214
  }
7174
7215
 
7175
- if ( isFunction ) {
7216
+ if ( valueIsFunction ) {
7176
7217
  val = value.call( this, i, jQuery( this ).val() );
7177
7218
  } else {
7178
7219
  val = value;
@@ -7314,18 +7355,24 @@ jQuery.each( [ "radio", "checkbox" ], function() {
7314
7355
  // Return jQuery for attributes-only inclusion
7315
7356
 
7316
7357
 
7317
- var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;
7358
+ support.focusin = "onfocusin" in window;
7359
+
7360
+
7361
+ var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
7362
+ stopPropagationCallback = function( e ) {
7363
+ e.stopPropagation();
7364
+ };
7318
7365
 
7319
7366
  jQuery.extend( jQuery.event, {
7320
7367
 
7321
7368
  trigger: function( event, data, elem, onlyHandlers ) {
7322
7369
 
7323
- var i, cur, tmp, bubbleType, ontype, handle, special,
7370
+ var i, cur, tmp, bubbleType, ontype, handle, special, lastElement,
7324
7371
  eventPath = [ elem || document ],
7325
7372
  type = hasOwn.call( event, "type" ) ? event.type : event,
7326
7373
  namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : [];
7327
7374
 
7328
- cur = tmp = elem = elem || document;
7375
+ cur = lastElement = tmp = elem = elem || document;
7329
7376
 
7330
7377
  // Don't do events on text and comment nodes
7331
7378
  if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
@@ -7377,7 +7424,7 @@ jQuery.extend( jQuery.event, {
7377
7424
 
7378
7425
  // Determine event propagation path in advance, per W3C events spec (#9951)
7379
7426
  // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
7380
- if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
7427
+ if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
7381
7428
 
7382
7429
  bubbleType = special.delegateType || type;
7383
7430
  if ( !rfocusMorph.test( bubbleType + type ) ) {
@@ -7397,7 +7444,7 @@ jQuery.extend( jQuery.event, {
7397
7444
  // Fire handlers on the event path
7398
7445
  i = 0;
7399
7446
  while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {
7400
-
7447
+ lastElement = cur;
7401
7448
  event.type = i > 1 ?
7402
7449
  bubbleType :
7403
7450
  special.bindType || type;
@@ -7429,7 +7476,7 @@ jQuery.extend( jQuery.event, {
7429
7476
 
7430
7477
  // Call a native DOM method on the target with the same name as the event.
7431
7478
  // Don't do default actions on window, that's where global variables be (#6170)
7432
- if ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {
7479
+ if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
7433
7480
 
7434
7481
  // Don't re-trigger an onFOO event when we call its FOO() method
7435
7482
  tmp = elem[ ontype ];
@@ -7440,7 +7487,17 @@ jQuery.extend( jQuery.event, {
7440
7487
 
7441
7488
  // Prevent re-triggering of the same event, since we already bubbled it above
7442
7489
  jQuery.event.triggered = type;
7490
+
7491
+ if ( event.isPropagationStopped() ) {
7492
+ lastElement.addEventListener( type, stopPropagationCallback );
7493
+ }
7494
+
7443
7495
  elem[ type ]();
7496
+
7497
+ if ( event.isPropagationStopped() ) {
7498
+ lastElement.removeEventListener( type, stopPropagationCallback );
7499
+ }
7500
+
7444
7501
  jQuery.event.triggered = undefined;
7445
7502
 
7446
7503
  if ( tmp ) {
@@ -7486,31 +7543,6 @@ jQuery.fn.extend( {
7486
7543
  } );
7487
7544
 
7488
7545
 
7489
- jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
7490
- "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
7491
- "change select submit keydown keypress keyup contextmenu" ).split( " " ),
7492
- function( i, name ) {
7493
-
7494
- // Handle event binding
7495
- jQuery.fn[ name ] = function( data, fn ) {
7496
- return arguments.length > 0 ?
7497
- this.on( name, null, data, fn ) :
7498
- this.trigger( name );
7499
- };
7500
- } );
7501
-
7502
- jQuery.fn.extend( {
7503
- hover: function( fnOver, fnOut ) {
7504
- return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
7505
- }
7506
- } );
7507
-
7508
-
7509
-
7510
-
7511
- support.focusin = "onfocusin" in window;
7512
-
7513
-
7514
7546
  // Support: Firefox <=44
7515
7547
  // Firefox doesn't have focus(in | out) events
7516
7548
  // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
@@ -7584,7 +7616,7 @@ function buildParams( prefix, obj, traditional, add ) {
7584
7616
  }
7585
7617
  } );
7586
7618
 
7587
- } else if ( !traditional && jQuery.type( obj ) === "object" ) {
7619
+ } else if ( !traditional && toType( obj ) === "object" ) {
7588
7620
 
7589
7621
  // Serialize object item.
7590
7622
  for ( name in obj ) {
@@ -7606,7 +7638,7 @@ jQuery.param = function( a, traditional ) {
7606
7638
  add = function( key, valueOrFunction ) {
7607
7639
 
7608
7640
  // If value is a function, invoke it and use its return value
7609
- var value = jQuery.isFunction( valueOrFunction ) ?
7641
+ var value = isFunction( valueOrFunction ) ?
7610
7642
  valueOrFunction() :
7611
7643
  valueOrFunction;
7612
7644
 
@@ -7678,7 +7710,7 @@ jQuery.fn.extend( {
7678
7710
  var wrap;
7679
7711
 
7680
7712
  if ( this[ 0 ] ) {
7681
- if ( jQuery.isFunction( html ) ) {
7713
+ if ( isFunction( html ) ) {
7682
7714
  html = html.call( this[ 0 ] );
7683
7715
  }
7684
7716
 
@@ -7704,7 +7736,7 @@ jQuery.fn.extend( {
7704
7736
  },
7705
7737
 
7706
7738
  wrapInner: function( html ) {
7707
- if ( jQuery.isFunction( html ) ) {
7739
+ if ( isFunction( html ) ) {
7708
7740
  return this.each( function( i ) {
7709
7741
  jQuery( this ).wrapInner( html.call( this, i ) );
7710
7742
  } );
@@ -7724,10 +7756,10 @@ jQuery.fn.extend( {
7724
7756
  },
7725
7757
 
7726
7758
  wrap: function( html ) {
7727
- var isFunction = jQuery.isFunction( html );
7759
+ var htmlIsFunction = isFunction( html );
7728
7760
 
7729
7761
  return this.each( function( i ) {
7730
- jQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );
7762
+ jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );
7731
7763
  } );
7732
7764
  },
7733
7765
 
@@ -7843,7 +7875,7 @@ jQuery.offset = {
7843
7875
  curLeft = parseFloat( curCSSLeft ) || 0;
7844
7876
  }
7845
7877
 
7846
- if ( jQuery.isFunction( options ) ) {
7878
+ if ( isFunction( options ) ) {
7847
7879
 
7848
7880
  // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)
7849
7881
  options = options.call( elem, i, jQuery.extend( {}, curOffset ) );
@@ -7866,6 +7898,8 @@ jQuery.offset = {
7866
7898
  };
7867
7899
 
7868
7900
  jQuery.fn.extend( {
7901
+
7902
+ // offset() relates an element's border box to the document origin
7869
7903
  offset: function( options ) {
7870
7904
 
7871
7905
  // Preserve chaining for setter
@@ -7877,7 +7911,7 @@ jQuery.fn.extend( {
7877
7911
  } );
7878
7912
  }
7879
7913
 
7880
- var doc, docElem, rect, win,
7914
+ var rect, win,
7881
7915
  elem = this[ 0 ];
7882
7916
 
7883
7917
  if ( !elem ) {
@@ -7892,50 +7926,52 @@ jQuery.fn.extend( {
7892
7926
  return { top: 0, left: 0 };
7893
7927
  }
7894
7928
 
7929
+ // Get document-relative position by adding viewport scroll to viewport-relative gBCR
7895
7930
  rect = elem.getBoundingClientRect();
7896
-
7897
- doc = elem.ownerDocument;
7898
- docElem = doc.documentElement;
7899
- win = doc.defaultView;
7900
-
7931
+ win = elem.ownerDocument.defaultView;
7901
7932
  return {
7902
- top: rect.top + win.pageYOffset - docElem.clientTop,
7903
- left: rect.left + win.pageXOffset - docElem.clientLeft
7933
+ top: rect.top + win.pageYOffset,
7934
+ left: rect.left + win.pageXOffset
7904
7935
  };
7905
7936
  },
7906
7937
 
7938
+ // position() relates an element's margin box to its offset parent's padding box
7939
+ // This corresponds to the behavior of CSS absolute positioning
7907
7940
  position: function() {
7908
7941
  if ( !this[ 0 ] ) {
7909
7942
  return;
7910
7943
  }
7911
7944
 
7912
- var offsetParent, offset,
7945
+ var offsetParent, offset, doc,
7913
7946
  elem = this[ 0 ],
7914
7947
  parentOffset = { top: 0, left: 0 };
7915
7948
 
7916
- // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
7917
- // because it is its only offset parent
7949
+ // position:fixed elements are offset from the viewport, which itself always has zero offset
7918
7950
  if ( jQuery.css( elem, "position" ) === "fixed" ) {
7919
7951
 
7920
- // Assume getBoundingClientRect is there when computed position is fixed
7952
+ // Assume position:fixed implies availability of getBoundingClientRect
7921
7953
  offset = elem.getBoundingClientRect();
7922
7954
 
7923
7955
  } else {
7956
+ offset = this.offset();
7924
7957
 
7925
- // Get *real* offsetParent
7926
- offsetParent = this.offsetParent();
7958
+ // Account for the *real* offset parent, which can be the document or its root element
7959
+ // when a statically positioned element is identified
7960
+ doc = elem.ownerDocument;
7961
+ offsetParent = elem.offsetParent || doc.documentElement;
7962
+ while ( offsetParent &&
7963
+ ( offsetParent === doc.body || offsetParent === doc.documentElement ) &&
7964
+ jQuery.css( offsetParent, "position" ) === "static" ) {
7927
7965
 
7928
- // Get correct offsets
7929
- offset = this.offset();
7930
- if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
7931
- parentOffset = offsetParent.offset();
7966
+ offsetParent = offsetParent.parentNode;
7932
7967
  }
7968
+ if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {
7933
7969
 
7934
- // Add offsetParent borders
7935
- parentOffset = {
7936
- top: parentOffset.top + jQuery.css( offsetParent[ 0 ], "borderTopWidth", true ),
7937
- left: parentOffset.left + jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true )
7938
- };
7970
+ // Incorporate borders into its offset, since they are outside its content origin
7971
+ parentOffset = jQuery( offsetParent ).offset();
7972
+ parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true );
7973
+ parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true );
7974
+ }
7939
7975
  }
7940
7976
 
7941
7977
  // Subtract parent offsets and element margins
@@ -7977,7 +8013,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
7977
8013
 
7978
8014
  // Coalesce documents and windows
7979
8015
  var win;
7980
- if ( jQuery.isWindow( elem ) ) {
8016
+ if ( isWindow( elem ) ) {
7981
8017
  win = elem;
7982
8018
  } else if ( elem.nodeType === 9 ) {
7983
8019
  win = elem.defaultView;
@@ -8035,7 +8071,7 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
8035
8071
  return access( this, function( elem, type, value ) {
8036
8072
  var doc;
8037
8073
 
8038
- if ( jQuery.isWindow( elem ) ) {
8074
+ if ( isWindow( elem ) ) {
8039
8075
 
8040
8076
  // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)
8041
8077
  return funcName.indexOf( "outer" ) === 0 ?
@@ -8069,6 +8105,28 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
8069
8105
  } );
8070
8106
 
8071
8107
 
8108
+ jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " +
8109
+ "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
8110
+ "change select submit keydown keypress keyup contextmenu" ).split( " " ),
8111
+ function( i, name ) {
8112
+
8113
+ // Handle event binding
8114
+ jQuery.fn[ name ] = function( data, fn ) {
8115
+ return arguments.length > 0 ?
8116
+ this.on( name, null, data, fn ) :
8117
+ this.trigger( name );
8118
+ };
8119
+ } );
8120
+
8121
+ jQuery.fn.extend( {
8122
+ hover: function( fnOver, fnOut ) {
8123
+ return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
8124
+ }
8125
+ } );
8126
+
8127
+
8128
+
8129
+
8072
8130
  jQuery.fn.extend( {
8073
8131
 
8074
8132
  bind: function( types, data, fn ) {
@@ -8090,6 +8148,37 @@ jQuery.fn.extend( {
8090
8148
  }
8091
8149
  } );
8092
8150
 
8151
+ // Bind a function to a context, optionally partially applying any
8152
+ // arguments.
8153
+ // jQuery.proxy is deprecated to promote standards (specifically Function#bind)
8154
+ // However, it is not slated for removal any time soon
8155
+ jQuery.proxy = function( fn, context ) {
8156
+ var tmp, args, proxy;
8157
+
8158
+ if ( typeof context === "string" ) {
8159
+ tmp = fn[ context ];
8160
+ context = fn;
8161
+ fn = tmp;
8162
+ }
8163
+
8164
+ // Quick check to determine if target is callable, in the spec
8165
+ // this throws a TypeError, but we will just return undefined.
8166
+ if ( !isFunction( fn ) ) {
8167
+ return undefined;
8168
+ }
8169
+
8170
+ // Simulated bind
8171
+ args = slice.call( arguments, 2 );
8172
+ proxy = function() {
8173
+ return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
8174
+ };
8175
+
8176
+ // Set the guid of unique handler to the same of original handler, so it can be removed
8177
+ proxy.guid = fn.guid = fn.guid || jQuery.guid++;
8178
+
8179
+ return proxy;
8180
+ };
8181
+
8093
8182
  jQuery.holdReady = function( hold ) {
8094
8183
  if ( hold ) {
8095
8184
  jQuery.readyWait++;
@@ -8100,6 +8189,26 @@ jQuery.holdReady = function( hold ) {
8100
8189
  jQuery.isArray = Array.isArray;
8101
8190
  jQuery.parseJSON = JSON.parse;
8102
8191
  jQuery.nodeName = nodeName;
8192
+ jQuery.isFunction = isFunction;
8193
+ jQuery.isWindow = isWindow;
8194
+ jQuery.camelCase = camelCase;
8195
+ jQuery.type = toType;
8196
+
8197
+ jQuery.now = Date.now;
8198
+
8199
+ jQuery.isNumeric = function( obj ) {
8200
+
8201
+ // As of jQuery 3.0, isNumeric is limited to
8202
+ // strings and numbers (primitives or objects)
8203
+ // that can be coerced to finite numbers (gh-2662)
8204
+ var type = jQuery.type( obj );
8205
+ return ( type === "number" || type === "string" ) &&
8206
+
8207
+ // parseFloat NaNs numeric-cast false positives ("")
8208
+ // ...but misinterprets leading-number strings, particularly hex literals ("0x...")
8209
+ // subtraction forces infinities to NaN
8210
+ !isNaN( obj - parseFloat( obj ) );
8211
+ };
8103
8212
 
8104
8213
 
8105
8214