ext_yarn 0.4.0 → 0.5.0

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 (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