jquery-ui-rails 5.0.5 → 6.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.

Potentially problematic release.


This version of jquery-ui-rails might be problematic. Click here for more details.

Files changed (275) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +1 -1
  3. data/History.md +12 -0
  4. data/README.md +47 -30
  5. data/Rakefile +48 -27
  6. data/VERSIONS.md +1 -0
  7. data/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  8. data/app/assets/images/jquery-ui/ui-icons_444444_256x240.png +0 -0
  9. data/app/assets/images/jquery-ui/ui-icons_555555_256x240.png +0 -0
  10. data/app/assets/images/jquery-ui/ui-icons_777620_256x240.png +0 -0
  11. data/app/assets/images/jquery-ui/ui-icons_777777_256x240.png +0 -0
  12. data/app/assets/images/jquery-ui/ui-icons_cc0000_256x240.png +0 -0
  13. data/app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  14. data/app/assets/javascripts/jquery-ui.js +52 -33
  15. data/app/assets/javascripts/jquery-ui/core.js +37 -304
  16. data/app/assets/javascripts/jquery-ui/data.js +41 -0
  17. data/app/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  18. data/app/assets/javascripts/jquery-ui/effect.all.js +15 -16
  19. data/app/assets/javascripts/jquery-ui/effect.js +620 -284
  20. data/app/assets/javascripts/jquery-ui/effects/effect-blind.js +73 -0
  21. data/app/assets/javascripts/jquery-ui/effects/effect-bounce.js +113 -0
  22. data/app/assets/javascripts/jquery-ui/effects/effect-clip.js +68 -0
  23. data/app/assets/javascripts/jquery-ui/effects/effect-drop.js +72 -0
  24. data/app/assets/javascripts/jquery-ui/effects/effect-explode.js +114 -0
  25. data/app/assets/javascripts/jquery-ui/effects/effect-fade.js +50 -0
  26. data/app/assets/javascripts/jquery-ui/effects/effect-fold.js +92 -0
  27. data/app/assets/javascripts/jquery-ui/effects/effect-highlight.js +60 -0
  28. data/app/assets/javascripts/jquery-ui/effects/effect-puff.js +46 -0
  29. data/app/assets/javascripts/jquery-ui/effects/effect-pulsate.js +67 -0
  30. data/app/assets/javascripts/jquery-ui/effects/effect-scale.js +60 -0
  31. data/app/assets/javascripts/jquery-ui/effects/effect-shake.js +77 -0
  32. data/app/assets/javascripts/jquery-ui/effects/effect-size.js +194 -0
  33. data/app/assets/javascripts/jquery-ui/effects/effect-slide.js +79 -0
  34. data/app/assets/javascripts/jquery-ui/effects/effect-transfer.js +43 -0
  35. data/app/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  36. data/app/assets/javascripts/jquery-ui/focusable.js +86 -0
  37. data/app/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  38. data/app/assets/javascripts/jquery-ui/form.js +22 -0
  39. data/app/assets/javascripts/jquery-ui/i18n/datepicker-af.js +37 -0
  40. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ar-DZ.js +39 -0
  41. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ar.js +39 -0
  42. data/app/assets/javascripts/jquery-ui/i18n/datepicker-az.js +37 -0
  43. data/app/assets/javascripts/jquery-ui/i18n/datepicker-be.js +37 -0
  44. data/app/assets/javascripts/jquery-ui/i18n/datepicker-bg.js +38 -0
  45. data/app/assets/javascripts/jquery-ui/i18n/datepicker-bs.js +37 -0
  46. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ca.js +37 -0
  47. data/app/assets/javascripts/jquery-ui/i18n/datepicker-cs.js +37 -0
  48. data/app/assets/javascripts/jquery-ui/i18n/datepicker-cy-GB.js +45 -0
  49. data/app/assets/javascripts/jquery-ui/i18n/datepicker-da.js +37 -0
  50. data/app/assets/javascripts/jquery-ui/i18n/datepicker-de.js +37 -0
  51. data/app/assets/javascripts/jquery-ui/i18n/datepicker-el.js +37 -0
  52. data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-AU.js +37 -0
  53. data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-GB.js +37 -0
  54. data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-NZ.js +37 -0
  55. data/app/assets/javascripts/jquery-ui/i18n/datepicker-eo.js +37 -0
  56. data/app/assets/javascripts/jquery-ui/i18n/datepicker-es.js +37 -0
  57. data/app/assets/javascripts/jquery-ui/i18n/datepicker-et.js +45 -0
  58. data/app/assets/javascripts/jquery-ui/i18n/datepicker-eu.js +36 -0
  59. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fa.js +73 -0
  60. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fi.js +37 -0
  61. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fo.js +45 -0
  62. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CA.js +37 -0
  63. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CH.js +37 -0
  64. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr.js +39 -0
  65. data/app/assets/javascripts/jquery-ui/i18n/datepicker-gl.js +37 -0
  66. data/app/assets/javascripts/jquery-ui/i18n/datepicker-he.js +37 -0
  67. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hi.js +37 -0
  68. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hr.js +37 -0
  69. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hu.js +36 -0
  70. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hy.js +37 -0
  71. data/app/assets/javascripts/jquery-ui/i18n/datepicker-id.js +37 -0
  72. data/app/assets/javascripts/jquery-ui/i18n/datepicker-is.js +45 -0
  73. data/app/assets/javascripts/jquery-ui/i18n/datepicker-it-CH.js +37 -0
  74. data/app/assets/javascripts/jquery-ui/i18n/datepicker-it.js +37 -0
  75. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ja.js +37 -0
  76. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ka.js +48 -0
  77. data/app/assets/javascripts/jquery-ui/i18n/datepicker-kk.js +37 -0
  78. data/app/assets/javascripts/jquery-ui/i18n/datepicker-km.js +37 -0
  79. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ko.js +37 -0
  80. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ky.js +38 -0
  81. data/app/assets/javascripts/jquery-ui/i18n/datepicker-lb.js +45 -0
  82. data/app/assets/javascripts/jquery-ui/i18n/datepicker-lt.js +45 -0
  83. data/app/assets/javascripts/jquery-ui/i18n/datepicker-lv.js +45 -0
  84. data/app/assets/javascripts/jquery-ui/i18n/datepicker-mk.js +37 -0
  85. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ml.js +37 -0
  86. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ms.js +37 -0
  87. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nb.js +49 -0
  88. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nl-BE.js +37 -0
  89. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nl.js +37 -0
  90. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nn.js +49 -0
  91. data/app/assets/javascripts/jquery-ui/i18n/datepicker-no.js +50 -0
  92. data/app/assets/javascripts/jquery-ui/i18n/datepicker-pl.js +37 -0
  93. data/app/assets/javascripts/jquery-ui/i18n/datepicker-pt-BR.js +45 -0
  94. data/app/assets/javascripts/jquery-ui/i18n/datepicker-pt.js +44 -0
  95. data/app/assets/javascripts/jquery-ui/i18n/datepicker-rm.js +61 -0
  96. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ro.js +40 -0
  97. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ru.js +37 -0
  98. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sk.js +37 -0
  99. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sl.js +38 -0
  100. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sq.js +37 -0
  101. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sr-SR.js +37 -0
  102. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sr.js +37 -0
  103. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sv.js +37 -0
  104. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ta.js +53 -0
  105. data/app/assets/javascripts/jquery-ui/i18n/datepicker-th.js +37 -0
  106. data/app/assets/javascripts/jquery-ui/i18n/datepicker-tj.js +37 -0
  107. data/app/assets/javascripts/jquery-ui/i18n/datepicker-tr.js +37 -0
  108. data/app/assets/javascripts/jquery-ui/i18n/datepicker-uk.js +38 -0
  109. data/app/assets/javascripts/jquery-ui/i18n/datepicker-vi.js +37 -0
  110. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-CN.js +37 -0
  111. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-HK.js +37 -0
  112. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-TW.js +37 -0
  113. data/app/assets/javascripts/jquery-ui/ie.js +17 -0
  114. data/app/assets/javascripts/jquery-ui/jquery-1-7.js +91 -0
  115. data/app/assets/javascripts/jquery-ui/keycode.js +47 -0
  116. data/app/assets/javascripts/jquery-ui/labels.js +65 -0
  117. data/app/assets/javascripts/jquery-ui/plugin.js +46 -0
  118. data/app/assets/javascripts/jquery-ui/position.js +92 -109
  119. data/app/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  120. data/app/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  121. data/app/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  122. data/app/assets/javascripts/jquery-ui/tabbable.js +38 -0
  123. data/app/assets/javascripts/jquery-ui/unique-id.js +51 -0
  124. data/app/assets/javascripts/jquery-ui/version.js +17 -0
  125. data/app/assets/javascripts/jquery-ui/widget.js +328 -151
  126. data/app/assets/javascripts/jquery-ui/{accordion.js → widgets/accordion.js} +187 -162
  127. data/app/assets/javascripts/jquery-ui/{autocomplete.js → widgets/autocomplete.js} +148 -92
  128. data/app/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  129. data/app/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  130. data/app/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  131. data/app/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  132. data/app/assets/javascripts/jquery-ui/{dialog.js → widgets/dialog.js} +229 -158
  133. data/app/assets/javascripts/jquery-ui/{draggable.js → widgets/draggable.js} +416 -293
  134. data/app/assets/javascripts/jquery-ui/{droppable.js → widgets/droppable.js} +167 -83
  135. data/app/assets/javascripts/jquery-ui/{menu.js → widgets/menu.js} +164 -134
  136. data/app/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  137. data/app/assets/javascripts/jquery-ui/{progressbar.js → widgets/progressbar.js} +60 -41
  138. data/app/assets/javascripts/jquery-ui/{resizable.js → widgets/resizable.js} +413 -362
  139. data/app/assets/javascripts/jquery-ui/widgets/selectable.js +314 -0
  140. data/app/assets/javascripts/jquery-ui/{selectmenu.js → widgets/selectmenu.js} +253 -176
  141. data/app/assets/javascripts/jquery-ui/{slider.js → widgets/slider.js} +193 -157
  142. data/app/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  143. data/app/assets/javascripts/jquery-ui/{spinner.js → widgets/spinner.js} +175 -112
  144. data/app/assets/javascripts/jquery-ui/{tabs.js → widgets/tabs.js} +237 -195
  145. data/app/assets/javascripts/jquery-ui/{tooltip.js → widgets/tooltip.js} +136 -87
  146. data/app/assets/stylesheets/jquery-ui/accordion.css +1 -15
  147. data/app/assets/stylesheets/jquery-ui/all.css +1 -1
  148. data/app/assets/stylesheets/jquery-ui/autocomplete.css +1 -3
  149. data/app/assets/stylesheets/jquery-ui/base.css +3 -1
  150. data/app/assets/stylesheets/jquery-ui/button.css +35 -68
  151. data/app/assets/stylesheets/jquery-ui/checkboxradio.css +37 -0
  152. data/app/assets/stylesheets/jquery-ui/controlgroup.css +68 -0
  153. data/app/assets/stylesheets/jquery-ui/core.css +11 -7
  154. data/app/assets/stylesheets/jquery-ui/datepicker.css +11 -2
  155. data/app/assets/stylesheets/jquery-ui/dialog.css +38 -11
  156. data/app/assets/stylesheets/jquery-ui/draggable.css +1 -2
  157. data/app/assets/stylesheets/jquery-ui/menu.css +7 -7
  158. data/app/assets/stylesheets/jquery-ui/progressbar.css +1 -2
  159. data/app/assets/stylesheets/jquery-ui/resizable.css +1 -2
  160. data/app/assets/stylesheets/jquery-ui/selectable.css +1 -2
  161. data/app/assets/stylesheets/jquery-ui/selectmenu.css +11 -22
  162. data/app/assets/stylesheets/jquery-ui/slider.css +1 -2
  163. data/app/assets/stylesheets/jquery-ui/sortable.css +1 -2
  164. data/app/assets/stylesheets/jquery-ui/spinner.css +7 -22
  165. data/app/assets/stylesheets/jquery-ui/tabs.css +1 -2
  166. data/app/assets/stylesheets/jquery-ui/theme.css.erb +113 -87
  167. data/app/assets/stylesheets/jquery-ui/tooltip.css +1 -4
  168. data/lib/jquery/ui/rails/version.rb +2 -2
  169. metadata +150 -144
  170. data/app/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  171. data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  172. data/app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  173. data/app/assets/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png +0 -0
  174. data/app/assets/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  175. data/app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  176. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  177. data/app/assets/images/jquery-ui/ui-icons_222222_256x240.png +0 -0
  178. data/app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png +0 -0
  179. data/app/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
  180. data/app/assets/images/jquery-ui/ui-icons_888888_256x240.png +0 -0
  181. data/app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png +0 -0
  182. data/app/assets/javascripts/jquery-ui/button.js +0 -414
  183. data/app/assets/javascripts/jquery-ui/datepicker-af.js +0 -37
  184. data/app/assets/javascripts/jquery-ui/datepicker-ar-DZ.js +0 -37
  185. data/app/assets/javascripts/jquery-ui/datepicker-ar.js +0 -38
  186. data/app/assets/javascripts/jquery-ui/datepicker-az.js +0 -37
  187. data/app/assets/javascripts/jquery-ui/datepicker-be.js +0 -37
  188. data/app/assets/javascripts/jquery-ui/datepicker-bg.js +0 -38
  189. data/app/assets/javascripts/jquery-ui/datepicker-bs.js +0 -37
  190. data/app/assets/javascripts/jquery-ui/datepicker-ca.js +0 -37
  191. data/app/assets/javascripts/jquery-ui/datepicker-cs.js +0 -37
  192. data/app/assets/javascripts/jquery-ui/datepicker-cy-GB.js +0 -37
  193. data/app/assets/javascripts/jquery-ui/datepicker-da.js +0 -37
  194. data/app/assets/javascripts/jquery-ui/datepicker-de.js +0 -37
  195. data/app/assets/javascripts/jquery-ui/datepicker-el.js +0 -37
  196. data/app/assets/javascripts/jquery-ui/datepicker-en-AU.js +0 -37
  197. data/app/assets/javascripts/jquery-ui/datepicker-en-GB.js +0 -37
  198. data/app/assets/javascripts/jquery-ui/datepicker-en-NZ.js +0 -37
  199. data/app/assets/javascripts/jquery-ui/datepicker-eo.js +0 -37
  200. data/app/assets/javascripts/jquery-ui/datepicker-es.js +0 -37
  201. data/app/assets/javascripts/jquery-ui/datepicker-et.js +0 -37
  202. data/app/assets/javascripts/jquery-ui/datepicker-eu.js +0 -36
  203. data/app/assets/javascripts/jquery-ui/datepicker-fa.js +0 -73
  204. data/app/assets/javascripts/jquery-ui/datepicker-fi.js +0 -37
  205. data/app/assets/javascripts/jquery-ui/datepicker-fo.js +0 -37
  206. data/app/assets/javascripts/jquery-ui/datepicker-fr-CA.js +0 -37
  207. data/app/assets/javascripts/jquery-ui/datepicker-fr-CH.js +0 -37
  208. data/app/assets/javascripts/jquery-ui/datepicker-fr.js +0 -39
  209. data/app/assets/javascripts/jquery-ui/datepicker-gl.js +0 -37
  210. data/app/assets/javascripts/jquery-ui/datepicker-he.js +0 -37
  211. data/app/assets/javascripts/jquery-ui/datepicker-hi.js +0 -37
  212. data/app/assets/javascripts/jquery-ui/datepicker-hr.js +0 -37
  213. data/app/assets/javascripts/jquery-ui/datepicker-hu.js +0 -36
  214. data/app/assets/javascripts/jquery-ui/datepicker-hy.js +0 -37
  215. data/app/assets/javascripts/jquery-ui/datepicker-id.js +0 -37
  216. data/app/assets/javascripts/jquery-ui/datepicker-is.js +0 -37
  217. data/app/assets/javascripts/jquery-ui/datepicker-it-CH.js +0 -37
  218. data/app/assets/javascripts/jquery-ui/datepicker-it.js +0 -37
  219. data/app/assets/javascripts/jquery-ui/datepicker-ja.js +0 -37
  220. data/app/assets/javascripts/jquery-ui/datepicker-ka.js +0 -35
  221. data/app/assets/javascripts/jquery-ui/datepicker-kk.js +0 -37
  222. data/app/assets/javascripts/jquery-ui/datepicker-km.js +0 -37
  223. data/app/assets/javascripts/jquery-ui/datepicker-ko.js +0 -37
  224. data/app/assets/javascripts/jquery-ui/datepicker-ky.js +0 -38
  225. data/app/assets/javascripts/jquery-ui/datepicker-lb.js +0 -37
  226. data/app/assets/javascripts/jquery-ui/datepicker-lt.js +0 -37
  227. data/app/assets/javascripts/jquery-ui/datepicker-lv.js +0 -37
  228. data/app/assets/javascripts/jquery-ui/datepicker-mk.js +0 -37
  229. data/app/assets/javascripts/jquery-ui/datepicker-ml.js +0 -37
  230. data/app/assets/javascripts/jquery-ui/datepicker-ms.js +0 -37
  231. data/app/assets/javascripts/jquery-ui/datepicker-nb.js +0 -36
  232. data/app/assets/javascripts/jquery-ui/datepicker-nl-BE.js +0 -37
  233. data/app/assets/javascripts/jquery-ui/datepicker-nl.js +0 -37
  234. data/app/assets/javascripts/jquery-ui/datepicker-nn.js +0 -36
  235. data/app/assets/javascripts/jquery-ui/datepicker-no.js +0 -37
  236. data/app/assets/javascripts/jquery-ui/datepicker-pl.js +0 -37
  237. data/app/assets/javascripts/jquery-ui/datepicker-pt-BR.js +0 -37
  238. data/app/assets/javascripts/jquery-ui/datepicker-pt.js +0 -36
  239. data/app/assets/javascripts/jquery-ui/datepicker-rm.js +0 -35
  240. data/app/assets/javascripts/jquery-ui/datepicker-ro.js +0 -40
  241. data/app/assets/javascripts/jquery-ui/datepicker-ru.js +0 -37
  242. data/app/assets/javascripts/jquery-ui/datepicker-sk.js +0 -37
  243. data/app/assets/javascripts/jquery-ui/datepicker-sl.js +0 -38
  244. data/app/assets/javascripts/jquery-ui/datepicker-sq.js +0 -37
  245. data/app/assets/javascripts/jquery-ui/datepicker-sr-SR.js +0 -37
  246. data/app/assets/javascripts/jquery-ui/datepicker-sr.js +0 -37
  247. data/app/assets/javascripts/jquery-ui/datepicker-sv.js +0 -37
  248. data/app/assets/javascripts/jquery-ui/datepicker-ta.js +0 -37
  249. data/app/assets/javascripts/jquery-ui/datepicker-th.js +0 -37
  250. data/app/assets/javascripts/jquery-ui/datepicker-tj.js +0 -37
  251. data/app/assets/javascripts/jquery-ui/datepicker-tr.js +0 -37
  252. data/app/assets/javascripts/jquery-ui/datepicker-uk.js +0 -38
  253. data/app/assets/javascripts/jquery-ui/datepicker-vi.js +0 -37
  254. data/app/assets/javascripts/jquery-ui/datepicker-zh-CN.js +0 -37
  255. data/app/assets/javascripts/jquery-ui/datepicker-zh-HK.js +0 -37
  256. data/app/assets/javascripts/jquery-ui/datepicker-zh-TW.js +0 -37
  257. data/app/assets/javascripts/jquery-ui/datepicker.js +0 -2086
  258. data/app/assets/javascripts/jquery-ui/effect-blind.js +0 -92
  259. data/app/assets/javascripts/jquery-ui/effect-bounce.js +0 -125
  260. data/app/assets/javascripts/jquery-ui/effect-clip.js +0 -79
  261. data/app/assets/javascripts/jquery-ui/effect-drop.js +0 -77
  262. data/app/assets/javascripts/jquery-ui/effect-explode.js +0 -109
  263. data/app/assets/javascripts/jquery-ui/effect-fade.js +0 -42
  264. data/app/assets/javascripts/jquery-ui/effect-fold.js +0 -88
  265. data/app/assets/javascripts/jquery-ui/effect-highlight.js +0 -62
  266. data/app/assets/javascripts/jquery-ui/effect-puff.js +0 -63
  267. data/app/assets/javascripts/jquery-ui/effect-pulsate.js +0 -75
  268. data/app/assets/javascripts/jquery-ui/effect-scale.js +0 -92
  269. data/app/assets/javascripts/jquery-ui/effect-shake.js +0 -86
  270. data/app/assets/javascripts/jquery-ui/effect-size.js +0 -235
  271. data/app/assets/javascripts/jquery-ui/effect-slide.js +0 -76
  272. data/app/assets/javascripts/jquery-ui/effect-transfer.js +0 -59
  273. data/app/assets/javascripts/jquery-ui/mouse.js +0 -202
  274. data/app/assets/javascripts/jquery-ui/selectable.js +0 -291
  275. data/app/assets/javascripts/jquery-ui/sortable.js +0 -1319
@@ -0,0 +1,314 @@
1
+ //= require jquery-ui/widgets/mouse
2
+ //= require jquery-ui/version
3
+ //= require jquery-ui/widget
4
+
5
+ /*!
6
+ * jQuery UI Selectable 1.12.1
7
+ * http://jqueryui.com
8
+ *
9
+ * Copyright jQuery Foundation and other contributors
10
+ * Released under the MIT license.
11
+ * http://jquery.org/license
12
+ */
13
+
14
+ //>>label: Selectable
15
+ //>>group: Interactions
16
+ //>>description: Allows groups of elements to be selected with the mouse.
17
+ //>>docs: http://api.jqueryui.com/selectable/
18
+ //>>demos: http://jqueryui.com/selectable/
19
+ //>>css.structure: ../../themes/base/selectable.css
20
+
21
+ ( function( factory ) {
22
+ if ( typeof define === "function" && define.amd ) {
23
+
24
+ // AMD. Register as an anonymous module.
25
+ define( [
26
+ "jquery",
27
+ "./mouse",
28
+ "../version",
29
+ "../widget"
30
+ ], factory );
31
+ } else {
32
+
33
+ // Browser globals
34
+ factory( jQuery );
35
+ }
36
+ }( function( $ ) {
37
+
38
+ return $.widget( "ui.selectable", $.ui.mouse, {
39
+ version: "1.12.1",
40
+ options: {
41
+ appendTo: "body",
42
+ autoRefresh: true,
43
+ distance: 0,
44
+ filter: "*",
45
+ tolerance: "touch",
46
+
47
+ // Callbacks
48
+ selected: null,
49
+ selecting: null,
50
+ start: null,
51
+ stop: null,
52
+ unselected: null,
53
+ unselecting: null
54
+ },
55
+ _create: function() {
56
+ var that = this;
57
+
58
+ this._addClass( "ui-selectable" );
59
+
60
+ this.dragged = false;
61
+
62
+ // Cache selectee children based on filter
63
+ this.refresh = function() {
64
+ that.elementPos = $( that.element[ 0 ] ).offset();
65
+ that.selectees = $( that.options.filter, that.element[ 0 ] );
66
+ that._addClass( that.selectees, "ui-selectee" );
67
+ that.selectees.each( function() {
68
+ var $this = $( this ),
69
+ selecteeOffset = $this.offset(),
70
+ pos = {
71
+ left: selecteeOffset.left - that.elementPos.left,
72
+ top: selecteeOffset.top - that.elementPos.top
73
+ };
74
+ $.data( this, "selectable-item", {
75
+ element: this,
76
+ $element: $this,
77
+ left: pos.left,
78
+ top: pos.top,
79
+ right: pos.left + $this.outerWidth(),
80
+ bottom: pos.top + $this.outerHeight(),
81
+ startselected: false,
82
+ selected: $this.hasClass( "ui-selected" ),
83
+ selecting: $this.hasClass( "ui-selecting" ),
84
+ unselecting: $this.hasClass( "ui-unselecting" )
85
+ } );
86
+ } );
87
+ };
88
+ this.refresh();
89
+
90
+ this._mouseInit();
91
+
92
+ this.helper = $( "<div>" );
93
+ this._addClass( this.helper, "ui-selectable-helper" );
94
+ },
95
+
96
+ _destroy: function() {
97
+ this.selectees.removeData( "selectable-item" );
98
+ this._mouseDestroy();
99
+ },
100
+
101
+ _mouseStart: function( event ) {
102
+ var that = this,
103
+ options = this.options;
104
+
105
+ this.opos = [ event.pageX, event.pageY ];
106
+ this.elementPos = $( this.element[ 0 ] ).offset();
107
+
108
+ if ( this.options.disabled ) {
109
+ return;
110
+ }
111
+
112
+ this.selectees = $( options.filter, this.element[ 0 ] );
113
+
114
+ this._trigger( "start", event );
115
+
116
+ $( options.appendTo ).append( this.helper );
117
+
118
+ // position helper (lasso)
119
+ this.helper.css( {
120
+ "left": event.pageX,
121
+ "top": event.pageY,
122
+ "width": 0,
123
+ "height": 0
124
+ } );
125
+
126
+ if ( options.autoRefresh ) {
127
+ this.refresh();
128
+ }
129
+
130
+ this.selectees.filter( ".ui-selected" ).each( function() {
131
+ var selectee = $.data( this, "selectable-item" );
132
+ selectee.startselected = true;
133
+ if ( !event.metaKey && !event.ctrlKey ) {
134
+ that._removeClass( selectee.$element, "ui-selected" );
135
+ selectee.selected = false;
136
+ that._addClass( selectee.$element, "ui-unselecting" );
137
+ selectee.unselecting = true;
138
+
139
+ // selectable UNSELECTING callback
140
+ that._trigger( "unselecting", event, {
141
+ unselecting: selectee.element
142
+ } );
143
+ }
144
+ } );
145
+
146
+ $( event.target ).parents().addBack().each( function() {
147
+ var doSelect,
148
+ selectee = $.data( this, "selectable-item" );
149
+ if ( selectee ) {
150
+ doSelect = ( !event.metaKey && !event.ctrlKey ) ||
151
+ !selectee.$element.hasClass( "ui-selected" );
152
+ that._removeClass( selectee.$element, doSelect ? "ui-unselecting" : "ui-selected" )
153
+ ._addClass( selectee.$element, doSelect ? "ui-selecting" : "ui-unselecting" );
154
+ selectee.unselecting = !doSelect;
155
+ selectee.selecting = doSelect;
156
+ selectee.selected = doSelect;
157
+
158
+ // selectable (UN)SELECTING callback
159
+ if ( doSelect ) {
160
+ that._trigger( "selecting", event, {
161
+ selecting: selectee.element
162
+ } );
163
+ } else {
164
+ that._trigger( "unselecting", event, {
165
+ unselecting: selectee.element
166
+ } );
167
+ }
168
+ return false;
169
+ }
170
+ } );
171
+
172
+ },
173
+
174
+ _mouseDrag: function( event ) {
175
+
176
+ this.dragged = true;
177
+
178
+ if ( this.options.disabled ) {
179
+ return;
180
+ }
181
+
182
+ var tmp,
183
+ that = this,
184
+ options = this.options,
185
+ x1 = this.opos[ 0 ],
186
+ y1 = this.opos[ 1 ],
187
+ x2 = event.pageX,
188
+ y2 = event.pageY;
189
+
190
+ if ( x1 > x2 ) { tmp = x2; x2 = x1; x1 = tmp; }
191
+ if ( y1 > y2 ) { tmp = y2; y2 = y1; y1 = tmp; }
192
+ this.helper.css( { left: x1, top: y1, width: x2 - x1, height: y2 - y1 } );
193
+
194
+ this.selectees.each( function() {
195
+ var selectee = $.data( this, "selectable-item" ),
196
+ hit = false,
197
+ offset = {};
198
+
199
+ //prevent helper from being selected if appendTo: selectable
200
+ if ( !selectee || selectee.element === that.element[ 0 ] ) {
201
+ return;
202
+ }
203
+
204
+ offset.left = selectee.left + that.elementPos.left;
205
+ offset.right = selectee.right + that.elementPos.left;
206
+ offset.top = selectee.top + that.elementPos.top;
207
+ offset.bottom = selectee.bottom + that.elementPos.top;
208
+
209
+ if ( options.tolerance === "touch" ) {
210
+ hit = ( !( offset.left > x2 || offset.right < x1 || offset.top > y2 ||
211
+ offset.bottom < y1 ) );
212
+ } else if ( options.tolerance === "fit" ) {
213
+ hit = ( offset.left > x1 && offset.right < x2 && offset.top > y1 &&
214
+ offset.bottom < y2 );
215
+ }
216
+
217
+ if ( hit ) {
218
+
219
+ // SELECT
220
+ if ( selectee.selected ) {
221
+ that._removeClass( selectee.$element, "ui-selected" );
222
+ selectee.selected = false;
223
+ }
224
+ if ( selectee.unselecting ) {
225
+ that._removeClass( selectee.$element, "ui-unselecting" );
226
+ selectee.unselecting = false;
227
+ }
228
+ if ( !selectee.selecting ) {
229
+ that._addClass( selectee.$element, "ui-selecting" );
230
+ selectee.selecting = true;
231
+
232
+ // selectable SELECTING callback
233
+ that._trigger( "selecting", event, {
234
+ selecting: selectee.element
235
+ } );
236
+ }
237
+ } else {
238
+
239
+ // UNSELECT
240
+ if ( selectee.selecting ) {
241
+ if ( ( event.metaKey || event.ctrlKey ) && selectee.startselected ) {
242
+ that._removeClass( selectee.$element, "ui-selecting" );
243
+ selectee.selecting = false;
244
+ that._addClass( selectee.$element, "ui-selected" );
245
+ selectee.selected = true;
246
+ } else {
247
+ that._removeClass( selectee.$element, "ui-selecting" );
248
+ selectee.selecting = false;
249
+ if ( selectee.startselected ) {
250
+ that._addClass( selectee.$element, "ui-unselecting" );
251
+ selectee.unselecting = true;
252
+ }
253
+
254
+ // selectable UNSELECTING callback
255
+ that._trigger( "unselecting", event, {
256
+ unselecting: selectee.element
257
+ } );
258
+ }
259
+ }
260
+ if ( selectee.selected ) {
261
+ if ( !event.metaKey && !event.ctrlKey && !selectee.startselected ) {
262
+ that._removeClass( selectee.$element, "ui-selected" );
263
+ selectee.selected = false;
264
+
265
+ that._addClass( selectee.$element, "ui-unselecting" );
266
+ selectee.unselecting = true;
267
+
268
+ // selectable UNSELECTING callback
269
+ that._trigger( "unselecting", event, {
270
+ unselecting: selectee.element
271
+ } );
272
+ }
273
+ }
274
+ }
275
+ } );
276
+
277
+ return false;
278
+ },
279
+
280
+ _mouseStop: function( event ) {
281
+ var that = this;
282
+
283
+ this.dragged = false;
284
+
285
+ $( ".ui-unselecting", this.element[ 0 ] ).each( function() {
286
+ var selectee = $.data( this, "selectable-item" );
287
+ that._removeClass( selectee.$element, "ui-unselecting" );
288
+ selectee.unselecting = false;
289
+ selectee.startselected = false;
290
+ that._trigger( "unselected", event, {
291
+ unselected: selectee.element
292
+ } );
293
+ } );
294
+ $( ".ui-selecting", this.element[ 0 ] ).each( function() {
295
+ var selectee = $.data( this, "selectable-item" );
296
+ that._removeClass( selectee.$element, "ui-selecting" )
297
+ ._addClass( selectee.$element, "ui-selected" );
298
+ selectee.selecting = false;
299
+ selectee.selected = true;
300
+ selectee.startselected = true;
301
+ that._trigger( "selected", event, {
302
+ selected: selectee.element
303
+ } );
304
+ } );
305
+ this._trigger( "stop", event );
306
+
307
+ this.helper.remove();
308
+
309
+ return false;
310
+ }
311
+
312
+ } );
313
+
314
+ } ) );
@@ -1,41 +1,65 @@
1
- //= require jquery-ui/core
2
- //= require jquery-ui/widget
1
+ //= require jquery-ui/widgets/menu
2
+ //= require jquery-ui/escape-selector
3
+ //= require jquery-ui/form-reset-mixin
4
+ //= require jquery-ui/keycode
5
+ //= require jquery-ui/labels
3
6
  //= require jquery-ui/position
4
- //= require jquery-ui/menu
7
+ //= require jquery-ui/unique-id
8
+ //= require jquery-ui/version
9
+ //= require jquery-ui/widget
5
10
 
6
11
  /*!
7
- * jQuery UI Selectmenu 1.11.4
12
+ * jQuery UI Selectmenu 1.12.1
8
13
  * http://jqueryui.com
9
14
  *
10
15
  * Copyright jQuery Foundation and other contributors
11
16
  * Released under the MIT license.
12
17
  * http://jquery.org/license
13
- *
14
- * http://api.jqueryui.com/selectmenu
15
18
  */
16
- (function( factory ) {
19
+
20
+ //>>label: Selectmenu
21
+ //>>group: Widgets
22
+ // jscs:disable maximumLineLength
23
+ //>>description: Duplicates and extends the functionality of a native HTML select element, allowing it to be customizable in behavior and appearance far beyond the limitations of a native select.
24
+ // jscs:enable maximumLineLength
25
+ //>>docs: http://api.jqueryui.com/selectmenu/
26
+ //>>demos: http://jqueryui.com/selectmenu/
27
+ //>>css.structure: ../../themes/base/core.css
28
+ //>>css.structure: ../../themes/base/selectmenu.css, ../../themes/base/button.css
29
+ //>>css.theme: ../../themes/base/theme.css
30
+
31
+ ( function( factory ) {
17
32
  if ( typeof define === "function" && define.amd ) {
18
33
 
19
34
  // AMD. Register as an anonymous module.
20
- define([
35
+ define( [
21
36
  "jquery",
22
- "./core",
23
- "./widget",
24
- "./position",
25
- "./menu"
37
+ "./menu",
38
+ "../escape-selector",
39
+ "../form-reset-mixin",
40
+ "../keycode",
41
+ "../labels",
42
+ "../position",
43
+ "../unique-id",
44
+ "../version",
45
+ "../widget"
26
46
  ], factory );
27
47
  } else {
28
48
 
29
49
  // Browser globals
30
50
  factory( jQuery );
31
51
  }
32
- }(function( $ ) {
52
+ }( function( $ ) {
33
53
 
34
- return $.widget( "ui.selectmenu", {
35
- version: "1.11.4",
54
+ return $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
55
+ version: "1.12.1",
36
56
  defaultElement: "<select>",
37
57
  options: {
38
58
  appendTo: null,
59
+ classes: {
60
+ "ui-selectmenu-button-open": "ui-corner-top",
61
+ "ui-selectmenu-button-closed": "ui-corner-all"
62
+ },
39
63
  disabled: null,
40
64
  icons: {
41
65
  button: "ui-icon-triangle-1-s"
@@ -45,9 +69,9 @@ return $.widget( "ui.selectmenu", {
45
69
  at: "left bottom",
46
70
  collision: "none"
47
71
  },
48
- width: null,
72
+ width: false,
49
73
 
50
- // callbacks
74
+ // Callbacks
51
75
  change: null,
52
76
  close: null,
53
77
  focus: null,
@@ -65,64 +89,66 @@ return $.widget( "ui.selectmenu", {
65
89
 
66
90
  this._drawButton();
67
91
  this._drawMenu();
92
+ this._bindFormResetHandler();
68
93
 
69
- if ( this.options.disabled ) {
70
- this.disable();
71
- }
94
+ this._rendered = false;
95
+ this.menuItems = $();
72
96
  },
73
97
 
74
98
  _drawButton: function() {
75
- var that = this;
99
+ var icon,
100
+ that = this,
101
+ item = this._parseOption(
102
+ this.element.find( "option:selected" ),
103
+ this.element[ 0 ].selectedIndex
104
+ );
76
105
 
77
106
  // Associate existing label with the new button
78
- this.label = $( "label[for='" + this.ids.element + "']" ).attr( "for", this.ids.button );
79
- this._on( this.label, {
107
+ this.labels = this.element.labels().attr( "for", this.ids.button );
108
+ this._on( this.labels, {
80
109
  click: function( event ) {
81
110
  this.button.focus();
82
111
  event.preventDefault();
83
112
  }
84
- });
113
+ } );
85
114
 
86
115
  // Hide original select element
87
116
  this.element.hide();
88
117
 
89
118
  // Create button
90
119
  this.button = $( "<span>", {
91
- "class": "ui-selectmenu-button ui-widget ui-state-default ui-corner-all",
92
120
  tabindex: this.options.disabled ? -1 : 0,
93
121
  id: this.ids.button,
94
122
  role: "combobox",
95
123
  "aria-expanded": "false",
96
124
  "aria-autocomplete": "list",
97
125
  "aria-owns": this.ids.menu,
98
- "aria-haspopup": "true"
99
- })
126
+ "aria-haspopup": "true",
127
+ title: this.element.attr( "title" )
128
+ } )
100
129
  .insertAfter( this.element );
101
130
 
102
- $( "<span>", {
103
- "class": "ui-icon " + this.options.icons.button
104
- })
105
- .prependTo( this.button );
131
+ this._addClass( this.button, "ui-selectmenu-button ui-selectmenu-button-closed",
132
+ "ui-button ui-widget" );
106
133
 
107
- this.buttonText = $( "<span>", {
108
- "class": "ui-selectmenu-text"
109
- })
134
+ icon = $( "<span>" ).appendTo( this.button );
135
+ this._addClass( icon, "ui-selectmenu-icon", "ui-icon " + this.options.icons.button );
136
+ this.buttonItem = this._renderButtonItem( item )
110
137
  .appendTo( this.button );
111
138
 
112
- this._setText( this.buttonText, this.element.find( "option:selected" ).text() );
113
- this._resizeButton();
139
+ if ( this.options.width !== false ) {
140
+ this._resizeButton();
141
+ }
114
142
 
115
143
  this._on( this.button, this._buttonEvents );
116
144
  this.button.one( "focusin", function() {
117
145
 
118
146
  // Delay rendering the menu items until the button receives focus.
119
147
  // The menu may have already been rendered via a programmatic open.
120
- if ( !that.menuItems ) {
148
+ if ( !that._rendered ) {
121
149
  that._refreshMenu();
122
150
  }
123
- });
124
- this._hoverable( this.button );
125
- this._focusable( this.button );
151
+ } );
126
152
  },
127
153
 
128
154
  _drawMenu: function() {
@@ -133,23 +159,24 @@ return $.widget( "ui.selectmenu", {
133
159
  "aria-hidden": "true",
134
160
  "aria-labelledby": this.ids.button,
135
161
  id: this.ids.menu
136
- });
162
+ } );
137
163
 
138
164
  // Wrap menu
139
- this.menuWrap = $( "<div>", {
140
- "class": "ui-selectmenu-menu ui-front"
141
- })
142
- .append( this.menu )
143
- .appendTo( this._appendTo() );
165
+ this.menuWrap = $( "<div>" ).append( this.menu );
166
+ this._addClass( this.menuWrap, "ui-selectmenu-menu", "ui-front" );
167
+ this.menuWrap.appendTo( this._appendTo() );
144
168
 
145
169
  // Initialize menu widget
146
170
  this.menuInstance = this.menu
147
- .menu({
171
+ .menu( {
172
+ classes: {
173
+ "ui-menu": "ui-corner-bottom"
174
+ },
148
175
  role: "listbox",
149
176
  select: function( event, ui ) {
150
177
  event.preventDefault();
151
178
 
152
- // support: IE8
179
+ // Support: IE8
153
180
  // If the item was selected via a click, the text selection
154
181
  // will be destroyed in IE
155
182
  that._setSelection();
@@ -171,14 +198,9 @@ return $.widget( "ui.selectmenu", {
171
198
  that.button.attr( "aria-activedescendant",
172
199
  that.menuItems.eq( item.index ).attr( "id" ) );
173
200
  }
174
- })
201
+ } )
175
202
  .menu( "instance" );
176
203
 
177
- // Adjust menu styles to dropdown
178
- this.menu
179
- .addClass( "ui-corner-bottom" )
180
- .removeClass( "ui-corner-all" );
181
-
182
204
  // Don't close the menu on mouseleave
183
205
  this.menuInstance._off( this.menu, "mouseleave" );
184
206
 
@@ -195,27 +217,37 @@ return $.widget( "ui.selectmenu", {
195
217
 
196
218
  refresh: function() {
197
219
  this._refreshMenu();
198
- this._setText( this.buttonText, this._getSelectedItem().text() );
199
- if ( !this.options.width ) {
220
+ this.buttonItem.replaceWith(
221
+ this.buttonItem = this._renderButtonItem(
222
+
223
+ // Fall back to an empty object in case there are no options
224
+ this._getSelectedItem().data( "ui-selectmenu-item" ) || {}
225
+ )
226
+ );
227
+ if ( this.options.width === null ) {
200
228
  this._resizeButton();
201
229
  }
202
230
  },
203
231
 
204
232
  _refreshMenu: function() {
205
- this.menu.empty();
206
-
207
233
  var item,
208
234
  options = this.element.find( "option" );
209
235
 
210
- if ( !options.length ) {
211
- return;
212
- }
236
+ this.menu.empty();
213
237
 
214
238
  this._parseOptions( options );
215
239
  this._renderMenu( this.menu, this.items );
216
240
 
217
241
  this.menuInstance.refresh();
218
- this.menuItems = this.menu.find( "li" ).not( ".ui-selectmenu-optgroup" );
242
+ this.menuItems = this.menu.find( "li" )
243
+ .not( ".ui-selectmenu-optgroup" )
244
+ .find( ".ui-menu-item-wrapper" );
245
+
246
+ this._rendered = true;
247
+
248
+ if ( !options.length ) {
249
+ return;
250
+ }
219
251
 
220
252
  item = this._getSelectedItem();
221
253
 
@@ -233,15 +265,20 @@ return $.widget( "ui.selectmenu", {
233
265
  }
234
266
 
235
267
  // If this is the first time the menu is being opened, render the items
236
- if ( !this.menuItems ) {
268
+ if ( !this._rendered ) {
237
269
  this._refreshMenu();
238
270
  } else {
239
271
 
240
272
  // Menu clears focus on close, reset focus to selected item
241
- this.menu.find( ".ui-state-focus" ).removeClass( "ui-state-focus" );
273
+ this._removeClass( this.menu.find( ".ui-state-active" ), null, "ui-state-active" );
242
274
  this.menuInstance.focus( null, this._getSelectedItem() );
243
275
  }
244
276
 
277
+ // If there are no options, don't open the menu
278
+ if ( !this.menuItems.length ) {
279
+ return;
280
+ }
281
+
245
282
  this.isOpen = true;
246
283
  this._toggleAttr();
247
284
  this._resizeMenu();
@@ -278,26 +315,38 @@ return $.widget( "ui.selectmenu", {
278
315
  return this.menu;
279
316
  },
280
317
 
318
+ _renderButtonItem: function( item ) {
319
+ var buttonItem = $( "<span>" );
320
+
321
+ this._setText( buttonItem, item.label );
322
+ this._addClass( buttonItem, "ui-selectmenu-text" );
323
+
324
+ return buttonItem;
325
+ },
326
+
281
327
  _renderMenu: function( ul, items ) {
282
328
  var that = this,
283
329
  currentOptgroup = "";
284
330
 
285
331
  $.each( items, function( index, item ) {
332
+ var li;
333
+
286
334
  if ( item.optgroup !== currentOptgroup ) {
287
- $( "<li>", {
288
- "class": "ui-selectmenu-optgroup ui-menu-divider" +
289
- ( item.element.parent( "optgroup" ).prop( "disabled" ) ?
290
- " ui-state-disabled" :
291
- "" ),
335
+ li = $( "<li>", {
292
336
  text: item.optgroup
293
- })
294
- .appendTo( ul );
337
+ } );
338
+ that._addClass( li, "ui-selectmenu-optgroup", "ui-menu-divider" +
339
+ ( item.element.parent( "optgroup" ).prop( "disabled" ) ?
340
+ " ui-state-disabled" :
341
+ "" ) );
342
+
343
+ li.appendTo( ul );
295
344
 
296
345
  currentOptgroup = item.optgroup;
297
346
  }
298
347
 
299
348
  that._renderItemData( ul, item );
300
- });
349
+ } );
301
350
  },
302
351
 
303
352
  _renderItemData: function( ul, item ) {
@@ -305,14 +354,17 @@ return $.widget( "ui.selectmenu", {
305
354
  },
306
355
 
307
356
  _renderItem: function( ul, item ) {
308
- var li = $( "<li>" );
357
+ var li = $( "<li>" ),
358
+ wrapper = $( "<div>", {
359
+ title: item.element.attr( "title" )
360
+ } );
309
361
 
310
362
  if ( item.disabled ) {
311
- li.addClass( "ui-state-disabled" );
363
+ this._addClass( li, null, "ui-state-disabled" );
312
364
  }
313
- this._setText( li, item.label );
365
+ this._setText( wrapper, item.label );
314
366
 
315
- return li.appendTo( ul );
367
+ return li.append( wrapper ).appendTo( ul );
316
368
  },
317
369
 
318
370
  _setText: function( element, value ) {
@@ -328,9 +380,9 @@ return $.widget( "ui.selectmenu", {
328
380
  filter = ".ui-menu-item";
329
381
 
330
382
  if ( this.isOpen ) {
331
- item = this.menuItems.eq( this.focusIndex );
383
+ item = this.menuItems.eq( this.focusIndex ).parent( "li" );
332
384
  } else {
333
- item = this.menuItems.eq( this.element[ 0 ].selectedIndex );
385
+ item = this.menuItems.eq( this.element[ 0 ].selectedIndex ).parent( "li" );
334
386
  filter += ":not(.ui-state-disabled)";
335
387
  }
336
388
 
@@ -346,7 +398,7 @@ return $.widget( "ui.selectmenu", {
346
398
  },
347
399
 
348
400
  _getSelectedItem: function() {
349
- return this.menuItems.eq( this.element[ 0 ].selectedIndex );
401
+ return this.menuItems.eq( this.element[ 0 ].selectedIndex ).parent( "li" );
350
402
  },
351
403
 
352
404
  _toggle: function( event ) {
@@ -365,12 +417,12 @@ return $.widget( "ui.selectmenu", {
365
417
  selection.removeAllRanges();
366
418
  selection.addRange( this.range );
367
419
 
368
- // support: IE8
420
+ // Support: IE8
369
421
  } else {
370
422
  this.range.select();
371
423
  }
372
424
 
373
- // support: IE
425
+ // Support: IE
374
426
  // Setting the text selection kills the button focus in IE, but
375
427
  // restoring the focus doesn't kill the selection.
376
428
  this.button.focus();
@@ -382,7 +434,8 @@ return $.widget( "ui.selectmenu", {
382
434
  return;
383
435
  }
384
436
 
385
- if ( !$( event.target ).closest( ".ui-selectmenu-menu, #" + this.ids.button ).length ) {
437
+ if ( !$( event.target ).closest( ".ui-selectmenu-menu, #" +
438
+ $.ui.escapeSelector( this.ids.button ) ).length ) {
386
439
  this.close( event );
387
440
  }
388
441
  }
@@ -400,7 +453,7 @@ return $.widget( "ui.selectmenu", {
400
453
  this.range = selection.getRangeAt( 0 );
401
454
  }
402
455
 
403
- // support: IE8
456
+ // Support: IE8
404
457
  } else {
405
458
  this.range = document.selection.createRange();
406
459
  }
@@ -414,54 +467,54 @@ return $.widget( "ui.selectmenu", {
414
467
  keydown: function( event ) {
415
468
  var preventDefault = true;
416
469
  switch ( event.keyCode ) {
417
- case $.ui.keyCode.TAB:
418
- case $.ui.keyCode.ESCAPE:
419
- this.close( event );
420
- preventDefault = false;
421
- break;
422
- case $.ui.keyCode.ENTER:
423
- if ( this.isOpen ) {
424
- this._selectFocusedItem( event );
425
- }
426
- break;
427
- case $.ui.keyCode.UP:
428
- if ( event.altKey ) {
429
- this._toggle( event );
430
- } else {
431
- this._move( "prev", event );
432
- }
433
- break;
434
- case $.ui.keyCode.DOWN:
435
- if ( event.altKey ) {
436
- this._toggle( event );
437
- } else {
438
- this._move( "next", event );
439
- }
440
- break;
441
- case $.ui.keyCode.SPACE:
442
- if ( this.isOpen ) {
443
- this._selectFocusedItem( event );
444
- } else {
445
- this._toggle( event );
446
- }
447
- break;
448
- case $.ui.keyCode.LEFT:
470
+ case $.ui.keyCode.TAB:
471
+ case $.ui.keyCode.ESCAPE:
472
+ this.close( event );
473
+ preventDefault = false;
474
+ break;
475
+ case $.ui.keyCode.ENTER:
476
+ if ( this.isOpen ) {
477
+ this._selectFocusedItem( event );
478
+ }
479
+ break;
480
+ case $.ui.keyCode.UP:
481
+ if ( event.altKey ) {
482
+ this._toggle( event );
483
+ } else {
449
484
  this._move( "prev", event );
450
- break;
451
- case $.ui.keyCode.RIGHT:
485
+ }
486
+ break;
487
+ case $.ui.keyCode.DOWN:
488
+ if ( event.altKey ) {
489
+ this._toggle( event );
490
+ } else {
452
491
  this._move( "next", event );
453
- break;
454
- case $.ui.keyCode.HOME:
455
- case $.ui.keyCode.PAGE_UP:
456
- this._move( "first", event );
457
- break;
458
- case $.ui.keyCode.END:
459
- case $.ui.keyCode.PAGE_DOWN:
460
- this._move( "last", event );
461
- break;
462
- default:
463
- this.menu.trigger( event );
464
- preventDefault = false;
492
+ }
493
+ break;
494
+ case $.ui.keyCode.SPACE:
495
+ if ( this.isOpen ) {
496
+ this._selectFocusedItem( event );
497
+ } else {
498
+ this._toggle( event );
499
+ }
500
+ break;
501
+ case $.ui.keyCode.LEFT:
502
+ this._move( "prev", event );
503
+ break;
504
+ case $.ui.keyCode.RIGHT:
505
+ this._move( "next", event );
506
+ break;
507
+ case $.ui.keyCode.HOME:
508
+ case $.ui.keyCode.PAGE_UP:
509
+ this._move( "first", event );
510
+ break;
511
+ case $.ui.keyCode.END:
512
+ case $.ui.keyCode.PAGE_DOWN:
513
+ this._move( "last", event );
514
+ break;
515
+ default:
516
+ this.menu.trigger( event );
517
+ preventDefault = false;
465
518
  }
466
519
 
467
520
  if ( preventDefault ) {
@@ -471,7 +524,7 @@ return $.widget( "ui.selectmenu", {
471
524
  },
472
525
 
473
526
  _selectFocusedItem: function( event ) {
474
- var item = this.menuItems.eq( this.focusIndex );
527
+ var item = this.menuItems.eq( this.focusIndex ).parent( "li" );
475
528
  if ( !item.hasClass( "ui-state-disabled" ) ) {
476
529
  this._select( item.data( "ui-selectmenu-item" ), event );
477
530
  }
@@ -482,7 +535,7 @@ return $.widget( "ui.selectmenu", {
482
535
 
483
536
  // Change native select element
484
537
  this.element[ 0 ].selectedIndex = item.index;
485
- this._setText( this.buttonText, item.label );
538
+ this.buttonItem.replaceWith( this.buttonItem = this._renderButtonItem( item ) );
486
539
  this._setAria( item );
487
540
  this._trigger( "select", event, { item: item } );
488
541
 
@@ -496,18 +549,18 @@ return $.widget( "ui.selectmenu", {
496
549
  _setAria: function( item ) {
497
550
  var id = this.menuItems.eq( item.index ).attr( "id" );
498
551
 
499
- this.button.attr({
552
+ this.button.attr( {
500
553
  "aria-labelledby": id,
501
554
  "aria-activedescendant": id
502
- });
555
+ } );
503
556
  this.menu.attr( "aria-activedescendant", id );
504
557
  },
505
558
 
506
559
  _setOption: function( key, value ) {
507
560
  if ( key === "icons" ) {
508
- this.button.find( "span.ui-icon" )
509
- .removeClass( this.options.icons.button )
510
- .addClass( value.button );
561
+ var icon = this.button.find( "span.ui-icon" );
562
+ this._removeClass( icon, null, this.options.icons.button )
563
+ ._addClass( icon, null, value.button );
511
564
  }
512
565
 
513
566
  this._super( key, value );
@@ -516,26 +569,27 @@ return $.widget( "ui.selectmenu", {
516
569
  this.menuWrap.appendTo( this._appendTo() );
517
570
  }
518
571
 
519
- if ( key === "disabled" ) {
520
- this.menuInstance.option( "disabled", value );
521
- this.button
522
- .toggleClass( "ui-state-disabled", value )
523
- .attr( "aria-disabled", value );
524
-
525
- this.element.prop( "disabled", value );
526
- if ( value ) {
527
- this.button.attr( "tabindex", -1 );
528
- this.close();
529
- } else {
530
- this.button.attr( "tabindex", 0 );
531
- }
532
- }
533
-
534
572
  if ( key === "width" ) {
535
573
  this._resizeButton();
536
574
  }
537
575
  },
538
576
 
577
+ _setOptionDisabled: function( value ) {
578
+ this._super( value );
579
+
580
+ this.menuInstance.option( "disabled", value );
581
+ this.button.attr( "aria-disabled", value );
582
+ this._toggleClass( this.button, null, "ui-state-disabled", value );
583
+
584
+ this.element.prop( "disabled", value );
585
+ if ( value ) {
586
+ this.button.attr( "tabindex", -1 );
587
+ this.close();
588
+ } else {
589
+ this.button.attr( "tabindex", 0 );
590
+ }
591
+ },
592
+
539
593
  _appendTo: function() {
540
594
  var element = this.options.appendTo;
541
595
 
@@ -546,7 +600,7 @@ return $.widget( "ui.selectmenu", {
546
600
  }
547
601
 
548
602
  if ( !element || !element[ 0 ] ) {
549
- element = this.element.closest( ".ui-front" );
603
+ element = this.element.closest( ".ui-front, dialog" );
550
604
  }
551
605
 
552
606
  if ( !element.length ) {
@@ -557,18 +611,31 @@ return $.widget( "ui.selectmenu", {
557
611
  },
558
612
 
559
613
  _toggleAttr: function() {
560
- this.button
561
- .toggleClass( "ui-corner-top", this.isOpen )
562
- .toggleClass( "ui-corner-all", !this.isOpen )
563
- .attr( "aria-expanded", this.isOpen );
564
- this.menuWrap.toggleClass( "ui-selectmenu-open", this.isOpen );
614
+ this.button.attr( "aria-expanded", this.isOpen );
615
+
616
+ // We can't use two _toggleClass() calls here, because we need to make sure
617
+ // we always remove classes first and add them second, otherwise if both classes have the
618
+ // same theme class, it will be removed after we add it.
619
+ this._removeClass( this.button, "ui-selectmenu-button-" +
620
+ ( this.isOpen ? "closed" : "open" ) )
621
+ ._addClass( this.button, "ui-selectmenu-button-" +
622
+ ( this.isOpen ? "open" : "closed" ) )
623
+ ._toggleClass( this.menuWrap, "ui-selectmenu-open", null, this.isOpen );
624
+
565
625
  this.menu.attr( "aria-hidden", !this.isOpen );
566
626
  },
567
627
 
568
628
  _resizeButton: function() {
569
629
  var width = this.options.width;
570
630
 
571
- if ( !width ) {
631
+ // For `width: false`, just remove inline style and stop
632
+ if ( width === false ) {
633
+ this.button.css( "width", "" );
634
+ return;
635
+ }
636
+
637
+ // For `width: null`, match the width of the original element
638
+ if ( width === null ) {
572
639
  width = this.element.show().outerWidth();
573
640
  this.element.hide();
574
641
  }
@@ -580,7 +647,7 @@ return $.widget( "ui.selectmenu", {
580
647
  this.menu.outerWidth( Math.max(
581
648
  this.button.outerWidth(),
582
649
 
583
- // support: IE10
650
+ // Support: IE10
584
651
  // IE10 wraps long text (possibly a rounding bug)
585
652
  // so we add 1px to avoid the wrapping
586
653
  this.menu.width( "" ).outerWidth() + 1
@@ -588,33 +655,43 @@ return $.widget( "ui.selectmenu", {
588
655
  },
589
656
 
590
657
  _getCreateOptions: function() {
591
- return { disabled: this.element.prop( "disabled" ) };
658
+ var options = this._super();
659
+
660
+ options.disabled = this.element.prop( "disabled" );
661
+
662
+ return options;
592
663
  },
593
664
 
594
665
  _parseOptions: function( options ) {
595
- var data = [];
596
- options.each(function( index, item ) {
597
- var option = $( item ),
598
- optgroup = option.parent( "optgroup" );
599
- data.push({
600
- element: option,
601
- index: index,
602
- value: option.val(),
603
- label: option.text(),
604
- optgroup: optgroup.attr( "label" ) || "",
605
- disabled: optgroup.prop( "disabled" ) || option.prop( "disabled" )
606
- });
607
- });
666
+ var that = this,
667
+ data = [];
668
+ options.each( function( index, item ) {
669
+ data.push( that._parseOption( $( item ), index ) );
670
+ } );
608
671
  this.items = data;
609
672
  },
610
673
 
674
+ _parseOption: function( option, index ) {
675
+ var optgroup = option.parent( "optgroup" );
676
+
677
+ return {
678
+ element: option,
679
+ index: index,
680
+ value: option.val(),
681
+ label: option.text(),
682
+ optgroup: optgroup.attr( "label" ) || "",
683
+ disabled: optgroup.prop( "disabled" ) || option.prop( "disabled" )
684
+ };
685
+ },
686
+
611
687
  _destroy: function() {
688
+ this._unbindFormResetHandler();
612
689
  this.menuWrap.remove();
613
690
  this.button.remove();
614
691
  this.element.show();
615
692
  this.element.removeUniqueId();
616
- this.label.attr( "for", this.ids.element );
693
+ this.labels.attr( "for", this.ids.element );
617
694
  }
618
- });
695
+ } ] );
619
696
 
620
- }));
697
+ } ) );