jquery-ui-rails 5.0.4 → 7.0.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 (279) hide show
  1. checksums.yaml +7 -0
  2. data/.gitmodules +1 -1
  3. data/.travis.yml +1 -1
  4. data/History.md +23 -2
  5. data/README.md +67 -50
  6. data/Rakefile +58 -29
  7. data/VERSIONS.md +4 -0
  8. data/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  9. data/app/assets/images/jquery-ui/ui-icons_444444_256x240.png +0 -0
  10. data/app/assets/images/jquery-ui/ui-icons_555555_256x240.png +0 -0
  11. data/app/assets/images/jquery-ui/ui-icons_777620_256x240.png +0 -0
  12. data/app/assets/images/jquery-ui/ui-icons_777777_256x240.png +0 -0
  13. data/app/assets/images/jquery-ui/ui-icons_cc0000_256x240.png +0 -0
  14. data/app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  15. data/app/assets/javascripts/jquery-ui/core.js +15 -304
  16. data/app/assets/javascripts/jquery-ui/data.js +45 -0
  17. data/app/assets/javascripts/jquery-ui/disable-selection.js +51 -0
  18. data/app/assets/javascripts/jquery-ui/effect.all.js +15 -16
  19. data/app/assets/javascripts/jquery-ui/effect.js +565 -891
  20. data/app/assets/javascripts/jquery-ui/effects/effect-blind.js +76 -0
  21. data/app/assets/javascripts/jquery-ui/effects/effect-bounce.js +116 -0
  22. data/app/assets/javascripts/jquery-ui/effects/effect-clip.js +71 -0
  23. data/app/assets/javascripts/jquery-ui/effects/effect-drop.js +75 -0
  24. data/app/assets/javascripts/jquery-ui/effects/effect-explode.js +117 -0
  25. data/app/assets/javascripts/jquery-ui/effects/effect-fade.js +53 -0
  26. data/app/assets/javascripts/jquery-ui/effects/effect-fold.js +95 -0
  27. data/app/assets/javascripts/jquery-ui/effects/effect-highlight.js +63 -0
  28. data/app/assets/javascripts/jquery-ui/effects/effect-puff.js +49 -0
  29. data/app/assets/javascripts/jquery-ui/effects/effect-pulsate.js +70 -0
  30. data/app/assets/javascripts/jquery-ui/effects/effect-scale.js +63 -0
  31. data/app/assets/javascripts/jquery-ui/effects/effect-shake.js +80 -0
  32. data/app/assets/javascripts/jquery-ui/effects/effect-size.js +199 -0
  33. data/app/assets/javascripts/jquery-ui/effects/effect-slide.js +82 -0
  34. data/app/assets/javascripts/jquery-ui/effects/effect-transfer.js +46 -0
  35. data/app/assets/javascripts/jquery-ui/focusable.js +89 -0
  36. data/app/assets/javascripts/jquery-ui/form-reset-mixin.js +83 -0
  37. data/app/assets/javascripts/jquery-ui/form.js +25 -0
  38. data/app/assets/javascripts/jquery-ui/i18n/datepicker-af.js +40 -0
  39. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ar-DZ.js +42 -0
  40. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ar.js +42 -0
  41. data/app/assets/javascripts/jquery-ui/i18n/datepicker-az.js +40 -0
  42. data/app/assets/javascripts/jquery-ui/i18n/datepicker-be.js +40 -0
  43. data/app/assets/javascripts/jquery-ui/i18n/datepicker-bg.js +41 -0
  44. data/app/assets/javascripts/jquery-ui/i18n/datepicker-bs.js +40 -0
  45. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ca.js +40 -0
  46. data/app/assets/javascripts/jquery-ui/i18n/datepicker-cs.js +40 -0
  47. data/app/assets/javascripts/jquery-ui/i18n/datepicker-cy-GB.js +48 -0
  48. data/app/assets/javascripts/jquery-ui/i18n/datepicker-da.js +40 -0
  49. data/app/assets/javascripts/jquery-ui/i18n/datepicker-de-AT.js +41 -0
  50. data/app/assets/javascripts/jquery-ui/i18n/datepicker-de.js +40 -0
  51. data/app/assets/javascripts/jquery-ui/i18n/datepicker-el.js +40 -0
  52. data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-AU.js +40 -0
  53. data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-GB.js +40 -0
  54. data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-NZ.js +40 -0
  55. data/app/assets/javascripts/jquery-ui/i18n/datepicker-eo.js +40 -0
  56. data/app/assets/javascripts/jquery-ui/i18n/datepicker-es.js +40 -0
  57. data/app/assets/javascripts/jquery-ui/i18n/datepicker-et.js +48 -0
  58. data/app/assets/javascripts/jquery-ui/i18n/datepicker-eu.js +39 -0
  59. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fa.js +76 -0
  60. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fi.js +40 -0
  61. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fo.js +48 -0
  62. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CA.js +40 -0
  63. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CH.js +40 -0
  64. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr.js +42 -0
  65. data/app/assets/javascripts/jquery-ui/i18n/datepicker-gl.js +40 -0
  66. data/app/assets/javascripts/jquery-ui/i18n/datepicker-he.js +40 -0
  67. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hi.js +40 -0
  68. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hr.js +40 -0
  69. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hu.js +39 -0
  70. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hy.js +40 -0
  71. data/app/assets/javascripts/jquery-ui/i18n/datepicker-id.js +40 -0
  72. data/app/assets/javascripts/jquery-ui/i18n/datepicker-is.js +48 -0
  73. data/app/assets/javascripts/jquery-ui/i18n/datepicker-it-CH.js +40 -0
  74. data/app/assets/javascripts/jquery-ui/i18n/datepicker-it.js +40 -0
  75. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ja.js +40 -0
  76. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ka.js +51 -0
  77. data/app/assets/javascripts/jquery-ui/i18n/datepicker-kk.js +40 -0
  78. data/app/assets/javascripts/jquery-ui/i18n/datepicker-km.js +40 -0
  79. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ko.js +40 -0
  80. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ky.js +41 -0
  81. data/app/assets/javascripts/jquery-ui/i18n/datepicker-lb.js +48 -0
  82. data/app/assets/javascripts/jquery-ui/i18n/datepicker-lt.js +48 -0
  83. data/app/assets/javascripts/jquery-ui/i18n/datepicker-lv.js +48 -0
  84. data/app/assets/javascripts/jquery-ui/i18n/datepicker-mk.js +40 -0
  85. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ml.js +40 -0
  86. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ms.js +40 -0
  87. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nb.js +52 -0
  88. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nl-BE.js +40 -0
  89. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nl.js +40 -0
  90. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nn.js +52 -0
  91. data/app/assets/javascripts/jquery-ui/i18n/datepicker-no.js +53 -0
  92. data/app/assets/javascripts/jquery-ui/i18n/datepicker-pl.js +40 -0
  93. data/app/assets/javascripts/jquery-ui/i18n/datepicker-pt-BR.js +48 -0
  94. data/app/assets/javascripts/jquery-ui/i18n/datepicker-pt.js +47 -0
  95. data/app/assets/javascripts/jquery-ui/i18n/datepicker-rm.js +64 -0
  96. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ro.js +43 -0
  97. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ru.js +40 -0
  98. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sk.js +40 -0
  99. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sl.js +41 -0
  100. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sq.js +40 -0
  101. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sr-SR.js +40 -0
  102. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sr.js +40 -0
  103. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sv.js +40 -0
  104. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ta.js +56 -0
  105. data/app/assets/javascripts/jquery-ui/i18n/datepicker-th.js +40 -0
  106. data/app/assets/javascripts/jquery-ui/i18n/datepicker-tj.js +40 -0
  107. data/app/assets/javascripts/jquery-ui/i18n/datepicker-tr.js +40 -0
  108. data/app/assets/javascripts/jquery-ui/i18n/datepicker-uk.js +41 -0
  109. data/app/assets/javascripts/jquery-ui/i18n/datepicker-vi.js +40 -0
  110. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-CN.js +40 -0
  111. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-HK.js +40 -0
  112. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-TW.js +40 -0
  113. data/app/assets/javascripts/jquery-ui/ie.js +20 -0
  114. data/app/assets/javascripts/jquery-ui/jquery-patch.js +91 -0
  115. data/app/assets/javascripts/jquery-ui/jquery-var-for-color.js +24 -0
  116. data/app/assets/javascripts/jquery-ui/keycode.js +51 -0
  117. data/app/assets/javascripts/jquery-ui/labels.js +71 -0
  118. data/app/assets/javascripts/jquery-ui/plugin.js +49 -0
  119. data/app/assets/javascripts/jquery-ui/position.js +107 -111
  120. data/app/assets/javascripts/jquery-ui/safe-active-element.js +46 -0
  121. data/app/assets/javascripts/jquery-ui/safe-blur.js +27 -0
  122. data/app/assets/javascripts/jquery-ui/scroll-parent.js +50 -0
  123. data/app/assets/javascripts/jquery-ui/tabbable.js +41 -0
  124. data/app/assets/javascripts/jquery-ui/unique-id.js +54 -0
  125. data/app/assets/javascripts/jquery-ui/vendor/jquery-color/jquery.color.js +722 -0
  126. data/app/assets/javascripts/jquery-ui/version.js +20 -0
  127. data/app/assets/javascripts/jquery-ui/widget.js +359 -163
  128. data/app/assets/javascripts/jquery-ui/{accordion.js → widgets/accordion.js} +200 -163
  129. data/app/assets/javascripts/jquery-ui/{autocomplete.js → widgets/autocomplete.js} +153 -106
  130. data/app/assets/javascripts/jquery-ui/widgets/button.js +454 -0
  131. data/app/assets/javascripts/jquery-ui/widgets/checkboxradio.js +289 -0
  132. data/app/assets/javascripts/jquery-ui/widgets/controlgroup.js +304 -0
  133. data/app/assets/javascripts/jquery-ui/widgets/datepicker.js +2243 -0
  134. data/app/assets/javascripts/jquery-ui/{dialog.js → widgets/dialog.js} +267 -181
  135. data/app/assets/javascripts/jquery-ui/{draggable.js → widgets/draggable.js} +430 -294
  136. data/app/assets/javascripts/jquery-ui/{droppable.js → widgets/droppable.js} +174 -84
  137. data/app/assets/javascripts/jquery-ui/{menu.js → widgets/menu.js} +228 -158
  138. data/app/assets/javascripts/jquery-ui/widgets/mouse.js +241 -0
  139. data/app/assets/javascripts/jquery-ui/{progressbar.js → widgets/progressbar.js} +63 -41
  140. data/app/assets/javascripts/jquery-ui/widgets/resizable.js +1225 -0
  141. data/app/assets/javascripts/jquery-ui/widgets/selectable.js +321 -0
  142. data/app/assets/javascripts/jquery-ui/{selectmenu.js → widgets/selectmenu.js} +259 -177
  143. data/app/assets/javascripts/jquery-ui/{slider.js → widgets/slider.js} +199 -160
  144. data/app/assets/javascripts/jquery-ui/widgets/sortable.js +1623 -0
  145. data/app/assets/javascripts/jquery-ui/{spinner.js → widgets/spinner.js} +184 -114
  146. data/app/assets/javascripts/jquery-ui/{tabs.js → widgets/tabs.js} +258 -211
  147. data/app/assets/javascripts/jquery-ui/{tooltip.js → widgets/tooltip.js} +165 -100
  148. data/app/assets/javascripts/jquery-ui.js +53 -33
  149. data/app/assets/stylesheets/jquery-ui/accordion.css +1 -15
  150. data/app/assets/stylesheets/jquery-ui/all.css +1 -1
  151. data/app/assets/stylesheets/jquery-ui/autocomplete.css +1 -3
  152. data/app/assets/stylesheets/jquery-ui/base.css +3 -1
  153. data/app/assets/stylesheets/jquery-ui/button.css +35 -68
  154. data/app/assets/stylesheets/jquery-ui/checkboxradio.css +37 -0
  155. data/app/assets/stylesheets/jquery-ui/controlgroup.css +68 -0
  156. data/app/assets/stylesheets/jquery-ui/core.css +12 -8
  157. data/app/assets/stylesheets/jquery-ui/datepicker.css +11 -2
  158. data/app/assets/stylesheets/jquery-ui/dialog.css +38 -11
  159. data/app/assets/stylesheets/jquery-ui/draggable.css +1 -2
  160. data/app/assets/stylesheets/jquery-ui/menu.css +7 -7
  161. data/app/assets/stylesheets/jquery-ui/progressbar.css +2 -3
  162. data/app/assets/stylesheets/jquery-ui/resizable.css +1 -2
  163. data/app/assets/stylesheets/jquery-ui/selectable.css +1 -2
  164. data/app/assets/stylesheets/jquery-ui/selectmenu.css +11 -22
  165. data/app/assets/stylesheets/jquery-ui/slider.css +2 -3
  166. data/app/assets/stylesheets/jquery-ui/sortable.css +1 -2
  167. data/app/assets/stylesheets/jquery-ui/spinner.css +7 -22
  168. data/app/assets/stylesheets/jquery-ui/tabs.css +1 -2
  169. data/app/assets/stylesheets/jquery-ui/theme.css.erb +121 -92
  170. data/app/assets/stylesheets/jquery-ui/tooltip.css +1 -4
  171. data/lib/jquery/ui/rails/version.rb +2 -2
  172. metadata +153 -146
  173. data/app/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  174. data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  175. data/app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  176. data/app/assets/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png +0 -0
  177. data/app/assets/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  178. data/app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  179. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  180. data/app/assets/images/jquery-ui/ui-icons_222222_256x240.png +0 -0
  181. data/app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png +0 -0
  182. data/app/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
  183. data/app/assets/images/jquery-ui/ui-icons_888888_256x240.png +0 -0
  184. data/app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png +0 -0
  185. data/app/assets/javascripts/jquery-ui/button.js +0 -414
  186. data/app/assets/javascripts/jquery-ui/datepicker-af.js +0 -37
  187. data/app/assets/javascripts/jquery-ui/datepicker-ar-DZ.js +0 -37
  188. data/app/assets/javascripts/jquery-ui/datepicker-ar.js +0 -38
  189. data/app/assets/javascripts/jquery-ui/datepicker-az.js +0 -37
  190. data/app/assets/javascripts/jquery-ui/datepicker-be.js +0 -37
  191. data/app/assets/javascripts/jquery-ui/datepicker-bg.js +0 -38
  192. data/app/assets/javascripts/jquery-ui/datepicker-bs.js +0 -37
  193. data/app/assets/javascripts/jquery-ui/datepicker-ca.js +0 -37
  194. data/app/assets/javascripts/jquery-ui/datepicker-cs.js +0 -37
  195. data/app/assets/javascripts/jquery-ui/datepicker-cy-GB.js +0 -37
  196. data/app/assets/javascripts/jquery-ui/datepicker-da.js +0 -37
  197. data/app/assets/javascripts/jquery-ui/datepicker-de.js +0 -37
  198. data/app/assets/javascripts/jquery-ui/datepicker-el.js +0 -37
  199. data/app/assets/javascripts/jquery-ui/datepicker-en-AU.js +0 -37
  200. data/app/assets/javascripts/jquery-ui/datepicker-en-GB.js +0 -37
  201. data/app/assets/javascripts/jquery-ui/datepicker-en-NZ.js +0 -37
  202. data/app/assets/javascripts/jquery-ui/datepicker-eo.js +0 -37
  203. data/app/assets/javascripts/jquery-ui/datepicker-es.js +0 -37
  204. data/app/assets/javascripts/jquery-ui/datepicker-et.js +0 -37
  205. data/app/assets/javascripts/jquery-ui/datepicker-eu.js +0 -36
  206. data/app/assets/javascripts/jquery-ui/datepicker-fa.js +0 -73
  207. data/app/assets/javascripts/jquery-ui/datepicker-fi.js +0 -37
  208. data/app/assets/javascripts/jquery-ui/datepicker-fo.js +0 -37
  209. data/app/assets/javascripts/jquery-ui/datepicker-fr-CA.js +0 -37
  210. data/app/assets/javascripts/jquery-ui/datepicker-fr-CH.js +0 -37
  211. data/app/assets/javascripts/jquery-ui/datepicker-fr.js +0 -39
  212. data/app/assets/javascripts/jquery-ui/datepicker-gl.js +0 -37
  213. data/app/assets/javascripts/jquery-ui/datepicker-he.js +0 -37
  214. data/app/assets/javascripts/jquery-ui/datepicker-hi.js +0 -37
  215. data/app/assets/javascripts/jquery-ui/datepicker-hr.js +0 -37
  216. data/app/assets/javascripts/jquery-ui/datepicker-hu.js +0 -36
  217. data/app/assets/javascripts/jquery-ui/datepicker-hy.js +0 -37
  218. data/app/assets/javascripts/jquery-ui/datepicker-id.js +0 -37
  219. data/app/assets/javascripts/jquery-ui/datepicker-is.js +0 -37
  220. data/app/assets/javascripts/jquery-ui/datepicker-it-CH.js +0 -37
  221. data/app/assets/javascripts/jquery-ui/datepicker-it.js +0 -37
  222. data/app/assets/javascripts/jquery-ui/datepicker-ja.js +0 -37
  223. data/app/assets/javascripts/jquery-ui/datepicker-ka.js +0 -35
  224. data/app/assets/javascripts/jquery-ui/datepicker-kk.js +0 -37
  225. data/app/assets/javascripts/jquery-ui/datepicker-km.js +0 -37
  226. data/app/assets/javascripts/jquery-ui/datepicker-ko.js +0 -37
  227. data/app/assets/javascripts/jquery-ui/datepicker-ky.js +0 -38
  228. data/app/assets/javascripts/jquery-ui/datepicker-lb.js +0 -37
  229. data/app/assets/javascripts/jquery-ui/datepicker-lt.js +0 -37
  230. data/app/assets/javascripts/jquery-ui/datepicker-lv.js +0 -37
  231. data/app/assets/javascripts/jquery-ui/datepicker-mk.js +0 -37
  232. data/app/assets/javascripts/jquery-ui/datepicker-ml.js +0 -37
  233. data/app/assets/javascripts/jquery-ui/datepicker-ms.js +0 -37
  234. data/app/assets/javascripts/jquery-ui/datepicker-nb.js +0 -36
  235. data/app/assets/javascripts/jquery-ui/datepicker-nl-BE.js +0 -37
  236. data/app/assets/javascripts/jquery-ui/datepicker-nl.js +0 -37
  237. data/app/assets/javascripts/jquery-ui/datepicker-nn.js +0 -36
  238. data/app/assets/javascripts/jquery-ui/datepicker-no.js +0 -37
  239. data/app/assets/javascripts/jquery-ui/datepicker-pl.js +0 -37
  240. data/app/assets/javascripts/jquery-ui/datepicker-pt-BR.js +0 -37
  241. data/app/assets/javascripts/jquery-ui/datepicker-pt.js +0 -36
  242. data/app/assets/javascripts/jquery-ui/datepicker-rm.js +0 -35
  243. data/app/assets/javascripts/jquery-ui/datepicker-ro.js +0 -40
  244. data/app/assets/javascripts/jquery-ui/datepicker-ru.js +0 -37
  245. data/app/assets/javascripts/jquery-ui/datepicker-sk.js +0 -37
  246. data/app/assets/javascripts/jquery-ui/datepicker-sl.js +0 -38
  247. data/app/assets/javascripts/jquery-ui/datepicker-sq.js +0 -37
  248. data/app/assets/javascripts/jquery-ui/datepicker-sr-SR.js +0 -37
  249. data/app/assets/javascripts/jquery-ui/datepicker-sr.js +0 -37
  250. data/app/assets/javascripts/jquery-ui/datepicker-sv.js +0 -37
  251. data/app/assets/javascripts/jquery-ui/datepicker-ta.js +0 -37
  252. data/app/assets/javascripts/jquery-ui/datepicker-th.js +0 -37
  253. data/app/assets/javascripts/jquery-ui/datepicker-tj.js +0 -37
  254. data/app/assets/javascripts/jquery-ui/datepicker-tr.js +0 -37
  255. data/app/assets/javascripts/jquery-ui/datepicker-uk.js +0 -38
  256. data/app/assets/javascripts/jquery-ui/datepicker-vi.js +0 -37
  257. data/app/assets/javascripts/jquery-ui/datepicker-zh-CN.js +0 -37
  258. data/app/assets/javascripts/jquery-ui/datepicker-zh-HK.js +0 -37
  259. data/app/assets/javascripts/jquery-ui/datepicker-zh-TW.js +0 -37
  260. data/app/assets/javascripts/jquery-ui/datepicker.js +0 -2086
  261. data/app/assets/javascripts/jquery-ui/effect-blind.js +0 -92
  262. data/app/assets/javascripts/jquery-ui/effect-bounce.js +0 -125
  263. data/app/assets/javascripts/jquery-ui/effect-clip.js +0 -79
  264. data/app/assets/javascripts/jquery-ui/effect-drop.js +0 -77
  265. data/app/assets/javascripts/jquery-ui/effect-explode.js +0 -109
  266. data/app/assets/javascripts/jquery-ui/effect-fade.js +0 -42
  267. data/app/assets/javascripts/jquery-ui/effect-fold.js +0 -88
  268. data/app/assets/javascripts/jquery-ui/effect-highlight.js +0 -62
  269. data/app/assets/javascripts/jquery-ui/effect-puff.js +0 -63
  270. data/app/assets/javascripts/jquery-ui/effect-pulsate.js +0 -75
  271. data/app/assets/javascripts/jquery-ui/effect-scale.js +0 -92
  272. data/app/assets/javascripts/jquery-ui/effect-shake.js +0 -86
  273. data/app/assets/javascripts/jquery-ui/effect-size.js +0 -235
  274. data/app/assets/javascripts/jquery-ui/effect-slide.js +0 -76
  275. data/app/assets/javascripts/jquery-ui/effect-transfer.js +0 -59
  276. data/app/assets/javascripts/jquery-ui/mouse.js +0 -202
  277. data/app/assets/javascripts/jquery-ui/resizable.js +0 -1183
  278. data/app/assets/javascripts/jquery-ui/selectable.js +0 -291
  279. data/app/assets/javascripts/jquery-ui/sortable.js +0 -1308
@@ -1,50 +1,77 @@
1
- //= require jquery-ui/core
2
- //= require jquery-ui/widget
3
- //= require jquery-ui/button
4
- //= require jquery-ui/draggable
1
+ //= require jquery-ui/widgets/button
2
+ //= require jquery-ui/widgets/draggable
3
+ //= require jquery-ui/widgets/mouse
4
+ //= require jquery-ui/widgets/resizable
5
+ //= require jquery-ui/focusable
6
+ //= require jquery-ui/keycode
5
7
  //= require jquery-ui/position
6
- //= require jquery-ui/resizable
8
+ //= require jquery-ui/safe-active-element
9
+ //= require jquery-ui/safe-blur
10
+ //= require jquery-ui/tabbable
11
+ //= require jquery-ui/unique-id
12
+ //= require jquery-ui/version
13
+ //= require jquery-ui/widget
7
14
 
8
15
  /*!
9
- * jQuery UI Dialog 1.11.3
16
+ * jQuery UI Dialog 1.13.0
10
17
  * http://jqueryui.com
11
18
  *
12
19
  * Copyright jQuery Foundation and other contributors
13
20
  * Released under the MIT license.
14
21
  * http://jquery.org/license
15
- *
16
- * http://api.jqueryui.com/dialog/
17
22
  */
18
- (function( factory ) {
23
+
24
+ //>>label: Dialog
25
+ //>>group: Widgets
26
+ //>>description: Displays customizable dialog windows.
27
+ //>>docs: http://api.jqueryui.com/dialog/
28
+ //>>demos: http://jqueryui.com/dialog/
29
+ //>>css.structure: ../../themes/base/core.css
30
+ //>>css.structure: ../../themes/base/dialog.css
31
+ //>>css.theme: ../../themes/base/theme.css
32
+
33
+ ( function( factory ) {
34
+ "use strict";
35
+
19
36
  if ( typeof define === "function" && define.amd ) {
20
37
 
21
38
  // AMD. Register as an anonymous module.
22
- define([
39
+ define( [
23
40
  "jquery",
24
- "./core",
25
- "./widget",
26
41
  "./button",
27
42
  "./draggable",
28
43
  "./mouse",
29
- "./position",
30
- "./resizable"
44
+ "./resizable",
45
+ "../focusable",
46
+ "../keycode",
47
+ "../position",
48
+ "../safe-active-element",
49
+ "../safe-blur",
50
+ "../tabbable",
51
+ "../unique-id",
52
+ "../version",
53
+ "../widget"
31
54
  ], factory );
32
55
  } else {
33
56
 
34
57
  // Browser globals
35
58
  factory( jQuery );
36
59
  }
37
- }(function( $ ) {
60
+ } )( function( $ ) {
61
+ "use strict";
38
62
 
39
- return $.widget( "ui.dialog", {
40
- version: "1.11.3",
63
+ $.widget( "ui.dialog", {
64
+ version: "1.13.0",
41
65
  options: {
42
66
  appendTo: "body",
43
67
  autoOpen: true,
44
68
  buttons: [],
69
+ classes: {
70
+ "ui-dialog": "ui-corner-all",
71
+ "ui-dialog-titlebar": "ui-corner-all"
72
+ },
45
73
  closeOnEscape: true,
46
74
  closeText: "Close",
47
- dialogClass: "",
48
75
  draggable: true,
49
76
  hide: null,
50
77
  height: "auto",
@@ -58,6 +85,7 @@ return $.widget( "ui.dialog", {
58
85
  at: "center",
59
86
  of: window,
60
87
  collision: "fit",
88
+
61
89
  // Ensure the titlebar is always visible
62
90
  using: function( pos ) {
63
91
  var topOffset = $( this ).css( pos ).offset().top;
@@ -71,7 +99,7 @@ return $.widget( "ui.dialog", {
71
99
  title: null,
72
100
  width: 300,
73
101
 
74
- // callbacks
102
+ // Callbacks
75
103
  beforeClose: null,
76
104
  close: null,
77
105
  drag: null,
@@ -114,16 +142,24 @@ return $.widget( "ui.dialog", {
114
142
  index: this.element.parent().children().index( this.element )
115
143
  };
116
144
  this.originalTitle = this.element.attr( "title" );
117
- this.options.title = this.options.title || this.originalTitle;
145
+ if ( this.options.title == null && this.originalTitle != null ) {
146
+ this.options.title = this.originalTitle;
147
+ }
148
+
149
+ // Dialogs can't be disabled
150
+ if ( this.options.disabled ) {
151
+ this.options.disabled = false;
152
+ }
118
153
 
119
154
  this._createWrapper();
120
155
 
121
156
  this.element
122
157
  .show()
123
158
  .removeAttr( "title" )
124
- .addClass( "ui-dialog-content ui-widget-content" )
125
159
  .appendTo( this.uiDialog );
126
160
 
161
+ this._addClass( "ui-dialog-content", "ui-widget-content" );
162
+
127
163
  this._createTitlebar();
128
164
  this._createButtonPane();
129
165
 
@@ -147,7 +183,7 @@ return $.widget( "ui.dialog", {
147
183
 
148
184
  _appendTo: function() {
149
185
  var element = this.options.appendTo;
150
- if ( element && (element.jquery || element.nodeType) ) {
186
+ if ( element && ( element.jquery || element.nodeType ) ) {
151
187
  return $( element );
152
188
  }
153
189
  return this.document.find( element || "body" ).eq( 0 );
@@ -157,22 +193,24 @@ return $.widget( "ui.dialog", {
157
193
  var next,
158
194
  originalPosition = this.originalPosition;
159
195
 
196
+ this._untrackInstance();
160
197
  this._destroyOverlay();
161
198
 
162
199
  this.element
163
200
  .removeUniqueId()
164
- .removeClass( "ui-dialog-content ui-widget-content" )
165
201
  .css( this.originalCss )
202
+
166
203
  // Without detaching first, the following becomes really slow
167
204
  .detach();
168
205
 
169
- this.uiDialog.stop( true, true ).remove();
206
+ this.uiDialog.remove();
170
207
 
171
208
  if ( this.originalTitle ) {
172
209
  this.element.attr( "title", this.originalTitle );
173
210
  }
174
211
 
175
212
  next = originalPosition.parent.children().eq( originalPosition.index );
213
+
176
214
  // Don't try to place the dialog next to itself (#8613)
177
215
  if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {
178
216
  next.before( this.element );
@@ -189,8 +227,7 @@ return $.widget( "ui.dialog", {
189
227
  enable: $.noop,
190
228
 
191
229
  close: function( event ) {
192
- var activeElement,
193
- that = this;
230
+ var that = this;
194
231
 
195
232
  if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) {
196
233
  return;
@@ -201,28 +238,17 @@ return $.widget( "ui.dialog", {
201
238
  this._destroyOverlay();
202
239
  this._untrackInstance();
203
240
 
204
- if ( !this.opener.filter( ":focusable" ).focus().length ) {
241
+ if ( !this.opener.filter( ":focusable" ).trigger( "focus" ).length ) {
205
242
 
206
- // support: IE9
207
- // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
208
- try {
209
- activeElement = this.document[ 0 ].activeElement;
210
-
211
- // Support: IE9, IE10
212
- // If the <body> is blurred, IE will switch windows, see #4520
213
- if ( activeElement && activeElement.nodeName.toLowerCase() !== "body" ) {
214
-
215
- // Hiding a focused element doesn't trigger blur in WebKit
216
- // so in case we have nothing to focus on, explicitly blur the active element
217
- // https://bugs.webkit.org/show_bug.cgi?id=47182
218
- $( activeElement ).blur();
219
- }
220
- } catch ( error ) {}
243
+ // Hiding a focused element doesn't trigger blur in WebKit
244
+ // so in case we have nothing to focus on, explicitly blur the active element
245
+ // https://bugs.webkit.org/show_bug.cgi?id=47182
246
+ $.ui.safeBlur( $.ui.safeActiveElement( this.document[ 0 ] ) );
221
247
  }
222
248
 
223
249
  this._hide( this.uiDialog, this.options.hide, function() {
224
250
  that._trigger( "close", event );
225
- });
251
+ } );
226
252
  },
227
253
 
228
254
  isOpen: function() {
@@ -235,10 +261,10 @@ return $.widget( "ui.dialog", {
235
261
 
236
262
  _moveToTop: function( event, silent ) {
237
263
  var moved = false,
238
- zIndicies = this.uiDialog.siblings( ".ui-front:visible" ).map(function() {
264
+ zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map( function() {
239
265
  return +$( this ).css( "z-index" );
240
- }).get(),
241
- zIndexMax = Math.max.apply( null, zIndicies );
266
+ } ).get(),
267
+ zIndexMax = Math.max.apply( null, zIndices );
242
268
 
243
269
  if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) {
244
270
  this.uiDialog.css( "z-index", zIndexMax + 1 );
@@ -261,7 +287,7 @@ return $.widget( "ui.dialog", {
261
287
  }
262
288
 
263
289
  this._isOpen = true;
264
- this.opener = $( this.document[ 0 ].activeElement );
290
+ this.opener = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
265
291
 
266
292
  this._size();
267
293
  this._position();
@@ -278,9 +304,9 @@ return $.widget( "ui.dialog", {
278
304
  this._show( this.uiDialog, this.options.show, function() {
279
305
  that._focusTabbable();
280
306
  that._trigger( "focus" );
281
- });
307
+ } );
282
308
 
283
- // Track the dialog immediately upon openening in case a focus event
309
+ // Track the dialog immediately upon opening in case a focus event
284
310
  // somehow occurs outside of the dialog before an element inside the
285
311
  // dialog is focused (#10152)
286
312
  this._makeFocusTarget();
@@ -289,6 +315,7 @@ return $.widget( "ui.dialog", {
289
315
  },
290
316
 
291
317
  _focusTabbable: function() {
318
+
292
319
  // Set focus to the first match:
293
320
  // 1. An element that was focused previously
294
321
  // 2. First element inside the dialog matching [autofocus]
@@ -312,38 +339,40 @@ return $.widget( "ui.dialog", {
312
339
  if ( !hasFocus.length ) {
313
340
  hasFocus = this.uiDialog;
314
341
  }
315
- hasFocus.eq( 0 ).focus();
342
+ hasFocus.eq( 0 ).trigger( "focus" );
316
343
  },
317
344
 
318
- _keepFocus: function( event ) {
319
- function checkFocus() {
320
- var activeElement = this.document[0].activeElement,
321
- isActive = this.uiDialog[0] === activeElement ||
322
- $.contains( this.uiDialog[0], activeElement );
323
- if ( !isActive ) {
324
- this._focusTabbable();
325
- }
345
+ _restoreTabbableFocus: function() {
346
+ var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),
347
+ isActive = this.uiDialog[ 0 ] === activeElement ||
348
+ $.contains( this.uiDialog[ 0 ], activeElement );
349
+ if ( !isActive ) {
350
+ this._focusTabbable();
326
351
  }
352
+ },
353
+
354
+ _keepFocus: function( event ) {
327
355
  event.preventDefault();
328
- checkFocus.call( this );
356
+ this._restoreTabbableFocus();
357
+
329
358
  // support: IE
330
359
  // IE <= 8 doesn't prevent moving focus even with event.preventDefault()
331
360
  // so we check again later
332
- this._delay( checkFocus );
361
+ this._delay( this._restoreTabbableFocus );
333
362
  },
334
363
 
335
364
  _createWrapper: function() {
336
- this.uiDialog = $("<div>")
337
- .addClass( "ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " +
338
- this.options.dialogClass )
365
+ this.uiDialog = $( "<div>" )
339
366
  .hide()
340
- .attr({
367
+ .attr( {
368
+
341
369
  // Setting tabIndex makes the div focusable
342
370
  tabIndex: -1,
343
371
  role: "dialog"
344
- })
372
+ } )
345
373
  .appendTo( this._appendTo() );
346
374
 
375
+ this._addClass( this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front" );
347
376
  this._on( this.uiDialog, {
348
377
  keydown: function( event ) {
349
378
  if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
@@ -353,23 +382,25 @@ return $.widget( "ui.dialog", {
353
382
  return;
354
383
  }
355
384
 
356
- // prevent tabbing out of dialogs
385
+ // Prevent tabbing out of dialogs
357
386
  if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {
358
387
  return;
359
388
  }
360
389
  var tabbables = this.uiDialog.find( ":tabbable" ),
361
- first = tabbables.filter( ":first" ),
362
- last = tabbables.filter( ":last" );
363
-
364
- if ( ( event.target === last[0] || event.target === this.uiDialog[0] ) && !event.shiftKey ) {
365
- this._delay(function() {
366
- first.focus();
367
- });
390
+ first = tabbables.first(),
391
+ last = tabbables.last();
392
+
393
+ if ( ( event.target === last[ 0 ] || event.target === this.uiDialog[ 0 ] ) &&
394
+ !event.shiftKey ) {
395
+ this._delay( function() {
396
+ first.trigger( "focus" );
397
+ } );
368
398
  event.preventDefault();
369
- } else if ( ( event.target === first[0] || event.target === this.uiDialog[0] ) && event.shiftKey ) {
370
- this._delay(function() {
371
- last.focus();
372
- });
399
+ } else if ( ( event.target === first[ 0 ] ||
400
+ event.target === this.uiDialog[ 0 ] ) && event.shiftKey ) {
401
+ this._delay( function() {
402
+ last.trigger( "focus" );
403
+ } );
373
404
  event.preventDefault();
374
405
  }
375
406
  },
@@ -378,81 +409,84 @@ return $.widget( "ui.dialog", {
378
409
  this._focusTabbable();
379
410
  }
380
411
  }
381
- });
412
+ } );
382
413
 
383
414
  // We assume that any existing aria-describedby attribute means
384
415
  // that the dialog content is marked up properly
385
416
  // otherwise we brute force the content as the description
386
417
  if ( !this.element.find( "[aria-describedby]" ).length ) {
387
- this.uiDialog.attr({
418
+ this.uiDialog.attr( {
388
419
  "aria-describedby": this.element.uniqueId().attr( "id" )
389
- });
420
+ } );
390
421
  }
391
422
  },
392
423
 
393
424
  _createTitlebar: function() {
394
425
  var uiDialogTitle;
395
426
 
396
- this.uiDialogTitlebar = $( "<div>" )
397
- .addClass( "ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix" )
398
- .prependTo( this.uiDialog );
427
+ this.uiDialogTitlebar = $( "<div>" );
428
+ this._addClass( this.uiDialogTitlebar,
429
+ "ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix" );
399
430
  this._on( this.uiDialogTitlebar, {
400
431
  mousedown: function( event ) {
432
+
401
433
  // Don't prevent click on close button (#8838)
402
434
  // Focusing a dialog that is partially scrolled out of view
403
435
  // causes the browser to scroll it into view, preventing the click event
404
436
  if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) {
437
+
405
438
  // Dialog isn't getting focus when dragging (#8063)
406
- this.uiDialog.focus();
439
+ this.uiDialog.trigger( "focus" );
407
440
  }
408
441
  }
409
- });
442
+ } );
410
443
 
411
- // support: IE
444
+ // Support: IE
412
445
  // Use type="button" to prevent enter keypresses in textboxes from closing the
413
446
  // dialog in IE (#9312)
414
447
  this.uiDialogTitlebarClose = $( "<button type='button'></button>" )
415
- .button({
416
- label: this.options.closeText,
417
- icons: {
418
- primary: "ui-icon-closethick"
419
- },
420
- text: false
421
- })
422
- .addClass( "ui-dialog-titlebar-close" )
448
+ .button( {
449
+ label: $( "<a>" ).text( this.options.closeText ).html(),
450
+ icon: "ui-icon-closethick",
451
+ showLabel: false
452
+ } )
423
453
  .appendTo( this.uiDialogTitlebar );
454
+
455
+ this._addClass( this.uiDialogTitlebarClose, "ui-dialog-titlebar-close" );
424
456
  this._on( this.uiDialogTitlebarClose, {
425
457
  click: function( event ) {
426
458
  event.preventDefault();
427
459
  this.close( event );
428
460
  }
429
- });
461
+ } );
430
462
 
431
- uiDialogTitle = $( "<span>" )
432
- .uniqueId()
433
- .addClass( "ui-dialog-title" )
434
- .prependTo( this.uiDialogTitlebar );
463
+ uiDialogTitle = $( "<span>" ).uniqueId().prependTo( this.uiDialogTitlebar );
464
+ this._addClass( uiDialogTitle, "ui-dialog-title" );
435
465
  this._title( uiDialogTitle );
436
466
 
437
- this.uiDialog.attr({
467
+ this.uiDialogTitlebar.prependTo( this.uiDialog );
468
+
469
+ this.uiDialog.attr( {
438
470
  "aria-labelledby": uiDialogTitle.attr( "id" )
439
- });
471
+ } );
440
472
  },
441
473
 
442
474
  _title: function( title ) {
443
- if ( !this.options.title ) {
475
+ if ( this.options.title ) {
476
+ title.text( this.options.title );
477
+ } else {
444
478
  title.html( "&#160;" );
445
479
  }
446
- title.text( this.options.title );
447
480
  },
448
481
 
449
482
  _createButtonPane: function() {
450
- this.uiDialogButtonPane = $( "<div>" )
451
- .addClass( "ui-dialog-buttonpane ui-widget-content ui-helper-clearfix" );
483
+ this.uiDialogButtonPane = $( "<div>" );
484
+ this._addClass( this.uiDialogButtonPane, "ui-dialog-buttonpane",
485
+ "ui-widget-content ui-helper-clearfix" );
452
486
 
453
487
  this.uiButtonSet = $( "<div>" )
454
- .addClass( "ui-dialog-buttonset" )
455
488
  .appendTo( this.uiDialogButtonPane );
489
+ this._addClass( this.uiButtonSet, "ui-dialog-buttonset" );
456
490
 
457
491
  this._createButtons();
458
492
  },
@@ -461,38 +495,55 @@ return $.widget( "ui.dialog", {
461
495
  var that = this,
462
496
  buttons = this.options.buttons;
463
497
 
464
- // if we already have a button pane, remove it
498
+ // If we already have a button pane, remove it
465
499
  this.uiDialogButtonPane.remove();
466
500
  this.uiButtonSet.empty();
467
501
 
468
- if ( $.isEmptyObject( buttons ) || ($.isArray( buttons ) && !buttons.length) ) {
469
- this.uiDialog.removeClass( "ui-dialog-buttons" );
502
+ if ( $.isEmptyObject( buttons ) || ( Array.isArray( buttons ) && !buttons.length ) ) {
503
+ this._removeClass( this.uiDialog, "ui-dialog-buttons" );
470
504
  return;
471
505
  }
472
506
 
473
507
  $.each( buttons, function( name, props ) {
474
508
  var click, buttonOptions;
475
- props = $.isFunction( props ) ?
509
+ props = typeof props === "function" ?
476
510
  { click: props, text: name } :
477
511
  props;
512
+
478
513
  // Default to a non-submitting button
479
514
  props = $.extend( { type: "button" }, props );
515
+
480
516
  // Change the context for the click callback to be the main element
481
517
  click = props.click;
482
- props.click = function() {
483
- click.apply( that.element[ 0 ], arguments );
484
- };
485
518
  buttonOptions = {
519
+ icon: props.icon,
520
+ iconPosition: props.iconPosition,
521
+ showLabel: props.showLabel,
522
+
523
+ // Deprecated options
486
524
  icons: props.icons,
487
- text: props.showText
525
+ text: props.text
488
526
  };
527
+
528
+ delete props.click;
529
+ delete props.icon;
530
+ delete props.iconPosition;
531
+ delete props.showLabel;
532
+
533
+ // Deprecated options
489
534
  delete props.icons;
490
- delete props.showText;
535
+ if ( typeof props.text === "boolean" ) {
536
+ delete props.text;
537
+ }
538
+
491
539
  $( "<button></button>", props )
492
540
  .button( buttonOptions )
493
- .appendTo( that.uiButtonSet );
494
- });
495
- this.uiDialog.addClass( "ui-dialog-buttons" );
541
+ .appendTo( that.uiButtonSet )
542
+ .on( "click", function() {
543
+ click.apply( that.element[ 0 ], arguments );
544
+ } );
545
+ } );
546
+ this._addClass( this.uiDialog, "ui-dialog-buttons" );
496
547
  this.uiDialogButtonPane.appendTo( this.uiDialog );
497
548
  },
498
549
 
@@ -507,12 +558,12 @@ return $.widget( "ui.dialog", {
507
558
  };
508
559
  }
509
560
 
510
- this.uiDialog.draggable({
561
+ this.uiDialog.draggable( {
511
562
  cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
512
563
  handle: ".ui-dialog-titlebar",
513
564
  containment: "document",
514
565
  start: function( event, ui ) {
515
- $( this ).addClass( "ui-dialog-dragging" );
566
+ that._addClass( $( this ), "ui-dialog-dragging" );
516
567
  that._blockFrames();
517
568
  that._trigger( "dragStart", event, filteredUi( ui ) );
518
569
  },
@@ -525,26 +576,27 @@ return $.widget( "ui.dialog", {
525
576
 
526
577
  options.position = {
527
578
  my: "left top",
528
- at: "left" + (left >= 0 ? "+" : "") + left + " " +
529
- "top" + (top >= 0 ? "+" : "") + top,
579
+ at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
580
+ "top" + ( top >= 0 ? "+" : "" ) + top,
530
581
  of: that.window
531
582
  };
532
- $( this ).removeClass( "ui-dialog-dragging" );
583
+ that._removeClass( $( this ), "ui-dialog-dragging" );
533
584
  that._unblockFrames();
534
585
  that._trigger( "dragStop", event, filteredUi( ui ) );
535
586
  }
536
- });
587
+ } );
537
588
  },
538
589
 
539
590
  _makeResizable: function() {
540
591
  var that = this,
541
592
  options = this.options,
542
593
  handles = options.resizable,
594
+
543
595
  // .ui-resizable has position: relative defined in the stylesheet
544
596
  // but dialogs have to use absolute or fixed positioning
545
- position = this.uiDialog.css("position"),
597
+ position = this.uiDialog.css( "position" ),
546
598
  resizeHandles = typeof handles === "string" ?
547
- handles :
599
+ handles :
548
600
  "n,e,s,w,se,sw,ne,nw";
549
601
 
550
602
  function filteredUi( ui ) {
@@ -556,7 +608,7 @@ return $.widget( "ui.dialog", {
556
608
  };
557
609
  }
558
610
 
559
- this.uiDialog.resizable({
611
+ this.uiDialog.resizable( {
560
612
  cancel: ".ui-dialog-content",
561
613
  containment: "document",
562
614
  alsoResize: this.element,
@@ -566,7 +618,7 @@ return $.widget( "ui.dialog", {
566
618
  minHeight: this._minHeight(),
567
619
  handles: resizeHandles,
568
620
  start: function( event, ui ) {
569
- $( this ).addClass( "ui-dialog-resizing" );
621
+ that._addClass( $( this ), "ui-dialog-resizing" );
570
622
  that._blockFrames();
571
623
  that._trigger( "resizeStart", event, filteredUi( ui ) );
572
624
  },
@@ -582,16 +634,16 @@ return $.widget( "ui.dialog", {
582
634
  options.width = that.uiDialog.width();
583
635
  options.position = {
584
636
  my: "left top",
585
- at: "left" + (left >= 0 ? "+" : "") + left + " " +
586
- "top" + (top >= 0 ? "+" : "") + top,
637
+ at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
638
+ "top" + ( top >= 0 ? "+" : "" ) + top,
587
639
  of: that.window
588
640
  };
589
- $( this ).removeClass( "ui-dialog-resizing" );
641
+ that._removeClass( $( this ), "ui-dialog-resizing" );
590
642
  that._unblockFrames();
591
643
  that._trigger( "resizeStop", event, filteredUi( ui ) );
592
644
  }
593
- })
594
- .css( "position", position );
645
+ } )
646
+ .css( "position", position );
595
647
  },
596
648
 
597
649
  _trackFocus: function() {
@@ -600,7 +652,7 @@ return $.widget( "ui.dialog", {
600
652
  this._makeFocusTarget();
601
653
  this._focusedElement = $( event.target );
602
654
  }
603
- });
655
+ } );
604
656
  },
605
657
 
606
658
  _makeFocusTarget: function() {
@@ -634,6 +686,7 @@ return $.widget( "ui.dialog", {
634
686
  },
635
687
 
636
688
  _position: function() {
689
+
637
690
  // Need to show the dialog to get the actual offset in the position plugin
638
691
  var isVisible = this.uiDialog.is( ":visible" );
639
692
  if ( !isVisible ) {
@@ -659,7 +712,7 @@ return $.widget( "ui.dialog", {
659
712
  if ( key in that.resizableRelatedOptions ) {
660
713
  resizableOptions[ key ] = value;
661
714
  }
662
- });
715
+ } );
663
716
 
664
717
  if ( resize ) {
665
718
  this._size();
@@ -674,12 +727,6 @@ return $.widget( "ui.dialog", {
674
727
  var isDraggable, isResizable,
675
728
  uiDialog = this.uiDialog;
676
729
 
677
- if ( key === "dialogClass" ) {
678
- uiDialog
679
- .removeClass( this.options.dialogClass )
680
- .addClass( value );
681
- }
682
-
683
730
  if ( key === "disabled" ) {
684
731
  return;
685
732
  }
@@ -695,10 +742,11 @@ return $.widget( "ui.dialog", {
695
742
  }
696
743
 
697
744
  if ( key === "closeText" ) {
698
- this.uiDialogTitlebarClose.button({
745
+ this.uiDialogTitlebarClose.button( {
746
+
699
747
  // Ensure that we always pass a string
700
- label: "" + value
701
- });
748
+ label: $( "<a>" ).text( "" + this.options.closeText ).html()
749
+ } );
702
750
  }
703
751
 
704
752
  if ( key === "draggable" ) {
@@ -717,18 +765,19 @@ return $.widget( "ui.dialog", {
717
765
  }
718
766
 
719
767
  if ( key === "resizable" ) {
768
+
720
769
  // currently resizable, becoming non-resizable
721
770
  isResizable = uiDialog.is( ":data(ui-resizable)" );
722
771
  if ( isResizable && !value ) {
723
772
  uiDialog.resizable( "destroy" );
724
773
  }
725
774
 
726
- // currently resizable, changing handles
775
+ // Currently resizable, changing handles
727
776
  if ( isResizable && typeof value === "string" ) {
728
777
  uiDialog.resizable( "option", "handles", value );
729
778
  }
730
779
 
731
- // currently non-resizable, becoming resizable
780
+ // Currently non-resizable, becoming resizable
732
781
  if ( !isResizable && value !== false ) {
733
782
  this._makeResizable();
734
783
  }
@@ -740,29 +789,30 @@ return $.widget( "ui.dialog", {
740
789
  },
741
790
 
742
791
  _size: function() {
792
+
743
793
  // If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
744
794
  // divs will both have width and height set, so we need to reset them
745
795
  var nonContentHeight, minContentHeight, maxContentHeight,
746
796
  options = this.options;
747
797
 
748
798
  // Reset content sizing
749
- this.element.show().css({
799
+ this.element.show().css( {
750
800
  width: "auto",
751
801
  minHeight: 0,
752
802
  maxHeight: "none",
753
803
  height: 0
754
- });
804
+ } );
755
805
 
756
806
  if ( options.minWidth > options.width ) {
757
807
  options.width = options.minWidth;
758
808
  }
759
809
 
760
- // reset wrapper sizing
810
+ // Reset wrapper sizing
761
811
  // determine the height of all the non-content elements
762
- nonContentHeight = this.uiDialog.css({
763
- height: "auto",
764
- width: options.width
765
- })
812
+ nonContentHeight = this.uiDialog.css( {
813
+ height: "auto",
814
+ width: options.width
815
+ } )
766
816
  .outerHeight();
767
817
  minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
768
818
  maxContentHeight = typeof options.maxHeight === "number" ?
@@ -770,11 +820,11 @@ return $.widget( "ui.dialog", {
770
820
  "none";
771
821
 
772
822
  if ( options.height === "auto" ) {
773
- this.element.css({
823
+ this.element.css( {
774
824
  minHeight: minContentHeight,
775
825
  maxHeight: maxContentHeight,
776
826
  height: "auto"
777
- });
827
+ } );
778
828
  } else {
779
829
  this.element.height( Math.max( 0, options.height - nonContentHeight ) );
780
830
  }
@@ -785,18 +835,18 @@ return $.widget( "ui.dialog", {
785
835
  },
786
836
 
787
837
  _blockFrames: function() {
788
- this.iframeBlocks = this.document.find( "iframe" ).map(function() {
838
+ this.iframeBlocks = this.document.find( "iframe" ).map( function() {
789
839
  var iframe = $( this );
790
840
 
791
841
  return $( "<div>" )
792
- .css({
842
+ .css( {
793
843
  position: "absolute",
794
844
  width: iframe.outerWidth(),
795
845
  height: iframe.outerHeight()
796
- })
846
+ } )
797
847
  .appendTo( iframe.parent() )
798
- .offset( iframe.offset() )[0];
799
- });
848
+ .offset( iframe.offset() )[ 0 ];
849
+ } );
800
850
  },
801
851
 
802
852
  _unblockFrames: function() {
@@ -821,40 +871,51 @@ return $.widget( "ui.dialog", {
821
871
  return;
822
872
  }
823
873
 
874
+ var jqMinor = $.fn.jquery.substring( 0, 4 );
875
+
824
876
  // We use a delay in case the overlay is created from an
825
877
  // event that we're going to be cancelling (#2804)
826
878
  var isOpening = true;
827
- this._delay(function() {
879
+ this._delay( function() {
828
880
  isOpening = false;
829
- });
881
+ } );
830
882
 
831
883
  if ( !this.document.data( "ui-dialog-overlays" ) ) {
832
884
 
833
885
  // Prevent use of anchors and inputs
834
- // Using _on() for an event handler shared across many instances is
835
- // safe because the dialogs stack and must be closed in reverse order
836
- this._on( this.document, {
837
- focusin: function( event ) {
838
- if ( isOpening ) {
839
- return;
840
- }
886
+ // This doesn't use `_on()` because it is a shared event handler
887
+ // across all open modal dialogs.
888
+ this.document.on( "focusin.ui-dialog", function( event ) {
889
+ if ( isOpening ) {
890
+ return;
891
+ }
841
892
 
842
- if ( !this._allowInteraction( event ) ) {
843
- event.preventDefault();
844
- this._trackingInstances()[ 0 ]._focusTabbable();
893
+ var instance = this._trackingInstances()[ 0 ];
894
+ if ( !instance._allowInteraction( event ) ) {
895
+ event.preventDefault();
896
+ instance._focusTabbable();
897
+
898
+ // Support: jQuery >=3.4 <3.6 only
899
+ // Focus re-triggering in jQuery 3.4/3.5 makes the original element
900
+ // have its focus event propagated last, breaking the re-targeting.
901
+ // Trigger focus in a delay in addition if needed to avoid the issue
902
+ // See https://github.com/jquery/jquery/issues/4382
903
+ if ( jqMinor === "3.4." || jqMinor === "3.5." ) {
904
+ instance._delay( instance._restoreTabbableFocus );
845
905
  }
846
906
  }
847
- });
907
+ }.bind( this ) );
848
908
  }
849
909
 
850
910
  this.overlay = $( "<div>" )
851
- .addClass( "ui-widget-overlay ui-front" )
852
911
  .appendTo( this._appendTo() );
912
+
913
+ this._addClass( this.overlay, null, "ui-widget-overlay ui-front" );
853
914
  this._on( this.overlay, {
854
915
  mousedown: "_keepFocus"
855
- });
916
+ } );
856
917
  this.document.data( "ui-dialog-overlays",
857
- (this.document.data( "ui-dialog-overlays" ) || 0) + 1 );
918
+ ( this.document.data( "ui-dialog-overlays" ) || 0 ) + 1 );
858
919
  },
859
920
 
860
921
  _destroyOverlay: function() {
@@ -866,9 +927,8 @@ return $.widget( "ui.dialog", {
866
927
  var overlays = this.document.data( "ui-dialog-overlays" ) - 1;
867
928
 
868
929
  if ( !overlays ) {
869
- this.document
870
- .unbind( "focusin" )
871
- .removeData( "ui-dialog-overlays" );
930
+ this.document.off( "focusin.ui-dialog" );
931
+ this.document.removeData( "ui-dialog-overlays" );
872
932
  } else {
873
933
  this.document.data( "ui-dialog-overlays", overlays );
874
934
  }
@@ -877,6 +937,32 @@ return $.widget( "ui.dialog", {
877
937
  this.overlay = null;
878
938
  }
879
939
  }
880
- });
940
+ } );
941
+
942
+ // DEPRECATED
943
+ // TODO: switch return back to widget declaration at top of file when this is removed
944
+ if ( $.uiBackCompat !== false ) {
945
+
946
+ // Backcompat for dialogClass option
947
+ $.widget( "ui.dialog", $.ui.dialog, {
948
+ options: {
949
+ dialogClass: ""
950
+ },
951
+ _createWrapper: function() {
952
+ this._super();
953
+ this.uiDialog.addClass( this.options.dialogClass );
954
+ },
955
+ _setOption: function( key, value ) {
956
+ if ( key === "dialogClass" ) {
957
+ this.uiDialog
958
+ .removeClass( this.options.dialogClass )
959
+ .addClass( value );
960
+ }
961
+ this._superApply( arguments );
962
+ }
963
+ } );
964
+ }
965
+
966
+ return $.ui.dialog;
881
967
 
882
- }));
968
+ } );