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,42 @@
1
+ //= require jquery-ui/version
2
+
3
+ ( function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define( [ "jquery", "./version" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery );
12
+ }
13
+ } ( function( $ ) {
14
+ return $.ui.safeActiveElement = function( document ) {
15
+ var activeElement;
16
+
17
+ // Support: IE 9 only
18
+ // IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
19
+ try {
20
+ activeElement = document.activeElement;
21
+ } catch ( error ) {
22
+ activeElement = document.body;
23
+ }
24
+
25
+ // Support: IE 9 - 11 only
26
+ // IE may return null instead of an element
27
+ // Interestingly, this only seems to occur when NOT in an iframe
28
+ if ( !activeElement ) {
29
+ activeElement = document.body;
30
+ }
31
+
32
+ // Support: IE 11 only
33
+ // IE11 returns a seemingly empty object in some cases when accessing
34
+ // document.activeElement from an <iframe>
35
+ if ( !activeElement.nodeName ) {
36
+ activeElement = document.body;
37
+ }
38
+
39
+ return activeElement;
40
+ };
41
+
42
+ } ) );
@@ -0,0 +1,23 @@
1
+ //= require jquery-ui/version
2
+
3
+ ( function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define( [ "jquery", "./version" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery );
12
+ }
13
+ } ( function( $ ) {
14
+ return $.ui.safeBlur = function( element ) {
15
+
16
+ // Support: IE9 - 10 only
17
+ // If the <body> is blurred, IE will switch windows, see #9420
18
+ if ( element && element.nodeName.toLowerCase() !== "body" ) {
19
+ $( element ).trigger( "blur" );
20
+ }
21
+ };
22
+
23
+ } ) );
@@ -0,0 +1,47 @@
1
+ //= require jquery-ui/version
2
+
3
+ /*!
4
+ * jQuery UI Scroll Parent 1.12.1
5
+ * http://jqueryui.com
6
+ *
7
+ * Copyright jQuery Foundation and other contributors
8
+ * Released under the MIT license.
9
+ * http://jquery.org/license
10
+ */
11
+
12
+ //>>label: scrollParent
13
+ //>>group: Core
14
+ //>>description: Get the closest ancestor element that is scrollable.
15
+ //>>docs: http://api.jqueryui.com/scrollParent/
16
+
17
+ ( function( factory ) {
18
+ if ( typeof define === "function" && define.amd ) {
19
+
20
+ // AMD. Register as an anonymous module.
21
+ define( [ "jquery", "./version" ], factory );
22
+ } else {
23
+
24
+ // Browser globals
25
+ factory( jQuery );
26
+ }
27
+ } ( function( $ ) {
28
+
29
+ return $.fn.scrollParent = function( includeHidden ) {
30
+ var position = this.css( "position" ),
31
+ excludeStaticParent = position === "absolute",
32
+ overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
33
+ scrollParent = this.parents().filter( function() {
34
+ var parent = $( this );
35
+ if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
36
+ return false;
37
+ }
38
+ return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) +
39
+ parent.css( "overflow-x" ) );
40
+ } ).eq( 0 );
41
+
42
+ return position === "fixed" || !scrollParent.length ?
43
+ $( this[ 0 ].ownerDocument || document ) :
44
+ scrollParent;
45
+ };
46
+
47
+ } ) );
@@ -0,0 +1,38 @@
1
+ //= require jquery-ui/version
2
+ //= require jquery-ui/focusable
3
+
4
+ /*!
5
+ * jQuery UI Tabbable 1.12.1
6
+ * http://jqueryui.com
7
+ *
8
+ * Copyright jQuery Foundation and other contributors
9
+ * Released under the MIT license.
10
+ * http://jquery.org/license
11
+ */
12
+
13
+ //>>label: :tabbable Selector
14
+ //>>group: Core
15
+ //>>description: Selects elements which can be tabbed to.
16
+ //>>docs: http://api.jqueryui.com/tabbable-selector/
17
+
18
+ ( function( factory ) {
19
+ if ( typeof define === "function" && define.amd ) {
20
+
21
+ // AMD. Register as an anonymous module.
22
+ define( [ "jquery", "./version", "./focusable" ], factory );
23
+ } else {
24
+
25
+ // Browser globals
26
+ factory( jQuery );
27
+ }
28
+ } ( function( $ ) {
29
+
30
+ return $.extend( $.expr[ ":" ], {
31
+ tabbable: function( element ) {
32
+ var tabIndex = $.attr( element, "tabindex" ),
33
+ hasTabindex = tabIndex != null;
34
+ return ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex );
35
+ }
36
+ } );
37
+
38
+ } ) );
@@ -0,0 +1,51 @@
1
+ //= require jquery-ui/version
2
+
3
+ /*!
4
+ * jQuery UI Unique ID 1.12.1
5
+ * http://jqueryui.com
6
+ *
7
+ * Copyright jQuery Foundation and other contributors
8
+ * Released under the MIT license.
9
+ * http://jquery.org/license
10
+ */
11
+
12
+ //>>label: uniqueId
13
+ //>>group: Core
14
+ //>>description: Functions to generate and remove uniqueId's
15
+ //>>docs: http://api.jqueryui.com/uniqueId/
16
+
17
+ ( function( factory ) {
18
+ if ( typeof define === "function" && define.amd ) {
19
+
20
+ // AMD. Register as an anonymous module.
21
+ define( [ "jquery", "./version" ], factory );
22
+ } else {
23
+
24
+ // Browser globals
25
+ factory( jQuery );
26
+ }
27
+ } ( function( $ ) {
28
+
29
+ return $.fn.extend( {
30
+ uniqueId: ( function() {
31
+ var uuid = 0;
32
+
33
+ return function() {
34
+ return this.each( function() {
35
+ if ( !this.id ) {
36
+ this.id = "ui-id-" + ( ++uuid );
37
+ }
38
+ } );
39
+ };
40
+ } )(),
41
+
42
+ removeUniqueId: function() {
43
+ return this.each( function() {
44
+ if ( /^ui-id-\d+$/.test( this.id ) ) {
45
+ $( this ).removeAttr( "id" );
46
+ }
47
+ } );
48
+ }
49
+ } );
50
+
51
+ } ) );
@@ -0,0 +1,17 @@
1
+ ( function( factory ) {
2
+ if ( typeof define === "function" && define.amd ) {
3
+
4
+ // AMD. Register as an anonymous module.
5
+ define( [ "jquery" ], factory );
6
+ } else {
7
+
8
+ // Browser globals
9
+ factory( jQuery );
10
+ }
11
+ } ( function( $ ) {
12
+
13
+ $.ui = $.ui || {};
14
+
15
+ return $.ui.version = "1.12.1";
16
+
17
+ } ) );
@@ -1,32 +1,39 @@
1
+ //= require jquery-ui/version
2
+
1
3
  /*!
2
- * jQuery UI Widget 1.11.4
4
+ * jQuery UI Widget 1.12.1
3
5
  * http://jqueryui.com
4
6
  *
5
7
  * Copyright jQuery Foundation and other contributors
6
8
  * Released under the MIT license.
7
9
  * http://jquery.org/license
8
- *
9
- * http://api.jqueryui.com/jQuery.widget/
10
10
  */
11
- (function( factory ) {
11
+
12
+ //>>label: Widget
13
+ //>>group: Core
14
+ //>>description: Provides a factory for creating stateful widgets with a common API.
15
+ //>>docs: http://api.jqueryui.com/jQuery.widget/
16
+ //>>demos: http://jqueryui.com/widget/
17
+
18
+ ( function( factory ) {
12
19
  if ( typeof define === "function" && define.amd ) {
13
20
 
14
21
  // AMD. Register as an anonymous module.
15
- define( [ "jquery" ], factory );
22
+ define( [ "jquery", "./version" ], factory );
16
23
  } else {
17
24
 
18
25
  // Browser globals
19
26
  factory( jQuery );
20
27
  }
21
- }(function( $ ) {
28
+ }( function( $ ) {
22
29
 
23
- var widget_uuid = 0,
24
- widget_slice = Array.prototype.slice;
30
+ var widgetUuid = 0;
31
+ var widgetSlice = Array.prototype.slice;
25
32
 
26
- $.cleanData = (function( orig ) {
33
+ $.cleanData = ( function( orig ) {
27
34
  return function( elems ) {
28
35
  var events, elem, i;
29
- for ( i = 0; (elem = elems[i]) != null; i++ ) {
36
+ for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
30
37
  try {
31
38
 
32
39
  // Only trigger remove when necessary to save time
@@ -35,29 +42,34 @@ $.cleanData = (function( orig ) {
35
42
  $( elem ).triggerHandler( "remove" );
36
43
  }
37
44
 
38
- // http://bugs.jquery.com/ticket/8235
45
+ // Http://bugs.jquery.com/ticket/8235
39
46
  } catch ( e ) {}
40
47
  }
41
48
  orig( elems );
42
49
  };
43
- })( $.cleanData );
50
+ } )( $.cleanData );
44
51
 
45
52
  $.widget = function( name, base, prototype ) {
46
- var fullName, existingConstructor, constructor, basePrototype,
47
- // proxiedPrototype allows the provided prototype to remain unmodified
48
- // so that it can be used as a mixin for multiple widgets (#8876)
49
- proxiedPrototype = {},
50
- namespace = name.split( "." )[ 0 ];
53
+ var existingConstructor, constructor, basePrototype;
51
54
 
55
+ // ProxiedPrototype allows the provided prototype to remain unmodified
56
+ // so that it can be used as a mixin for multiple widgets (#8876)
57
+ var proxiedPrototype = {};
58
+
59
+ var namespace = name.split( "." )[ 0 ];
52
60
  name = name.split( "." )[ 1 ];
53
- fullName = namespace + "-" + name;
61
+ var fullName = namespace + "-" + name;
54
62
 
55
63
  if ( !prototype ) {
56
64
  prototype = base;
57
65
  base = $.Widget;
58
66
  }
59
67
 
60
- // create selector for plugin
68
+ if ( $.isArray( prototype ) ) {
69
+ prototype = $.extend.apply( null, [ {} ].concat( prototype ) );
70
+ }
71
+
72
+ // Create selector for plugin
61
73
  $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
62
74
  return !!$.data( elem, fullName );
63
75
  };
@@ -65,30 +77,35 @@ $.widget = function( name, base, prototype ) {
65
77
  $[ namespace ] = $[ namespace ] || {};
66
78
  existingConstructor = $[ namespace ][ name ];
67
79
  constructor = $[ namespace ][ name ] = function( options, element ) {
68
- // allow instantiation without "new" keyword
80
+
81
+ // Allow instantiation without "new" keyword
69
82
  if ( !this._createWidget ) {
70
83
  return new constructor( options, element );
71
84
  }
72
85
 
73
- // allow instantiation without initializing for simple inheritance
86
+ // Allow instantiation without initializing for simple inheritance
74
87
  // must use "new" keyword (the code above always passes args)
75
88
  if ( arguments.length ) {
76
89
  this._createWidget( options, element );
77
90
  }
78
91
  };
79
- // extend with the existing constructor to carry over any static properties
92
+
93
+ // Extend with the existing constructor to carry over any static properties
80
94
  $.extend( constructor, existingConstructor, {
81
95
  version: prototype.version,
82
- // copy the object used to create the prototype in case we need to
96
+
97
+ // Copy the object used to create the prototype in case we need to
83
98
  // redefine the widget later
84
99
  _proto: $.extend( {}, prototype ),
85
- // track widgets that inherit from this widget in case this widget is
100
+
101
+ // Track widgets that inherit from this widget in case this widget is
86
102
  // redefined after a widget inherits from it
87
103
  _childConstructors: []
88
- });
104
+ } );
89
105
 
90
106
  basePrototype = new base();
91
- // we need to make the options hash a property directly on the new instance
107
+
108
+ // We need to make the options hash a property directly on the new instance
92
109
  // otherwise we'll modify the options hash on the prototype that we're
93
110
  // inheriting from
94
111
  basePrototype.options = $.widget.extend( {}, basePrototype.options );
@@ -97,17 +114,19 @@ $.widget = function( name, base, prototype ) {
97
114
  proxiedPrototype[ prop ] = value;
98
115
  return;
99
116
  }
100
- proxiedPrototype[ prop ] = (function() {
101
- var _super = function() {
102
- return base.prototype[ prop ].apply( this, arguments );
103
- },
104
- _superApply = function( args ) {
105
- return base.prototype[ prop ].apply( this, args );
106
- };
117
+ proxiedPrototype[ prop ] = ( function() {
118
+ function _super() {
119
+ return base.prototype[ prop ].apply( this, arguments );
120
+ }
121
+
122
+ function _superApply( args ) {
123
+ return base.prototype[ prop ].apply( this, args );
124
+ }
125
+
107
126
  return function() {
108
- var __super = this._super,
109
- __superApply = this._superApply,
110
- returnValue;
127
+ var __super = this._super;
128
+ var __superApply = this._superApply;
129
+ var returnValue;
111
130
 
112
131
  this._super = _super;
113
132
  this._superApply = _superApply;
@@ -119,19 +138,20 @@ $.widget = function( name, base, prototype ) {
119
138
 
120
139
  return returnValue;
121
140
  };
122
- })();
123
- });
141
+ } )();
142
+ } );
124
143
  constructor.prototype = $.widget.extend( basePrototype, {
144
+
125
145
  // TODO: remove support for widgetEventPrefix
126
146
  // always use the name + a colon as the prefix, e.g., draggable:start
127
147
  // don't prefix for widgets that aren't DOM-based
128
- widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
148
+ widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name
129
149
  }, proxiedPrototype, {
130
150
  constructor: constructor,
131
151
  namespace: namespace,
132
152
  widgetName: name,
133
153
  widgetFullName: fullName
134
- });
154
+ } );
135
155
 
136
156
  // If this widget is being redefined then we need to find all widgets that
137
157
  // are inheriting from it and redefine all of them so that they inherit from
@@ -141,11 +161,13 @@ $.widget = function( name, base, prototype ) {
141
161
  $.each( existingConstructor._childConstructors, function( i, child ) {
142
162
  var childPrototype = child.prototype;
143
163
 
144
- // redefine the child widget using the same prototype that was
164
+ // Redefine the child widget using the same prototype that was
145
165
  // originally used, but inherit from the new version of the base
146
- $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto );
147
- });
148
- // remove the list of existing child constructors from the old constructor
166
+ $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
167
+ child._proto );
168
+ } );
169
+
170
+ // Remove the list of existing child constructors from the old constructor
149
171
  // so the old child constructors can be garbage collected
150
172
  delete existingConstructor._childConstructors;
151
173
  } else {
@@ -158,21 +180,25 @@ $.widget = function( name, base, prototype ) {
158
180
  };
159
181
 
160
182
  $.widget.extend = function( target ) {
161
- var input = widget_slice.call( arguments, 1 ),
162
- inputIndex = 0,
163
- inputLength = input.length,
164
- key,
165
- value;
183
+ var input = widgetSlice.call( arguments, 1 );
184
+ var inputIndex = 0;
185
+ var inputLength = input.length;
186
+ var key;
187
+ var value;
188
+
166
189
  for ( ; inputIndex < inputLength; inputIndex++ ) {
167
190
  for ( key in input[ inputIndex ] ) {
168
191
  value = input[ inputIndex ][ key ];
169
192
  if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
193
+
170
194
  // Clone objects
171
195
  if ( $.isPlainObject( value ) ) {
172
196
  target[ key ] = $.isPlainObject( target[ key ] ) ?
173
197
  $.widget.extend( {}, target[ key ], value ) :
198
+
174
199
  // Don't extend strings, arrays, etc. with objects
175
200
  $.widget.extend( {}, value );
201
+
176
202
  // Copy everything else by reference
177
203
  } else {
178
204
  target[ key ] = value;
@@ -186,41 +212,55 @@ $.widget.extend = function( target ) {
186
212
  $.widget.bridge = function( name, object ) {
187
213
  var fullName = object.prototype.widgetFullName || name;
188
214
  $.fn[ name ] = function( options ) {
189
- var isMethodCall = typeof options === "string",
190
- args = widget_slice.call( arguments, 1 ),
191
- returnValue = this;
215
+ var isMethodCall = typeof options === "string";
216
+ var args = widgetSlice.call( arguments, 1 );
217
+ var returnValue = this;
192
218
 
193
219
  if ( isMethodCall ) {
194
- this.each(function() {
195
- var methodValue,
196
- instance = $.data( this, fullName );
197
- if ( options === "instance" ) {
198
- returnValue = instance;
199
- return false;
200
- }
201
- if ( !instance ) {
202
- return $.error( "cannot call methods on " + name + " prior to initialization; " +
203
- "attempted to call method '" + options + "'" );
204
- }
205
- if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) {
206
- return $.error( "no such method '" + options + "' for " + name + " widget instance" );
207
- }
208
- methodValue = instance[ options ].apply( instance, args );
209
- if ( methodValue !== instance && methodValue !== undefined ) {
210
- returnValue = methodValue && methodValue.jquery ?
211
- returnValue.pushStack( methodValue.get() ) :
212
- methodValue;
213
- return false;
214
- }
215
- });
220
+
221
+ // If this is an empty collection, we need to have the instance method
222
+ // return undefined instead of the jQuery instance
223
+ if ( !this.length && options === "instance" ) {
224
+ returnValue = undefined;
225
+ } else {
226
+ this.each( function() {
227
+ var methodValue;
228
+ var instance = $.data( this, fullName );
229
+
230
+ if ( options === "instance" ) {
231
+ returnValue = instance;
232
+ return false;
233
+ }
234
+
235
+ if ( !instance ) {
236
+ return $.error( "cannot call methods on " + name +
237
+ " prior to initialization; " +
238
+ "attempted to call method '" + options + "'" );
239
+ }
240
+
241
+ if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) {
242
+ return $.error( "no such method '" + options + "' for " + name +
243
+ " widget instance" );
244
+ }
245
+
246
+ methodValue = instance[ options ].apply( instance, args );
247
+
248
+ if ( methodValue !== instance && methodValue !== undefined ) {
249
+ returnValue = methodValue && methodValue.jquery ?
250
+ returnValue.pushStack( methodValue.get() ) :
251
+ methodValue;
252
+ return false;
253
+ }
254
+ } );
255
+ }
216
256
  } else {
217
257
 
218
258
  // Allow multiple hashes to be passed on init
219
259
  if ( args.length ) {
220
- options = $.widget.extend.apply( null, [ options ].concat(args) );
260
+ options = $.widget.extend.apply( null, [ options ].concat( args ) );
221
261
  }
222
262
 
223
- this.each(function() {
263
+ this.each( function() {
224
264
  var instance = $.data( this, fullName );
225
265
  if ( instance ) {
226
266
  instance.option( options || {} );
@@ -230,7 +270,7 @@ $.widget.bridge = function( name, object ) {
230
270
  } else {
231
271
  $.data( this, fullName, new object( options, this ) );
232
272
  }
233
- });
273
+ } );
234
274
  }
235
275
 
236
276
  return returnValue;
@@ -244,21 +284,25 @@ $.Widget.prototype = {
244
284
  widgetName: "widget",
245
285
  widgetEventPrefix: "",
246
286
  defaultElement: "<div>",
287
+
247
288
  options: {
289
+ classes: {},
248
290
  disabled: false,
249
291
 
250
- // callbacks
292
+ // Callbacks
251
293
  create: null
252
294
  },
295
+
253
296
  _createWidget: function( options, element ) {
254
297
  element = $( element || this.defaultElement || this )[ 0 ];
255
298
  this.element = $( element );
256
- this.uuid = widget_uuid++;
299
+ this.uuid = widgetUuid++;
257
300
  this.eventNamespace = "." + this.widgetName + this.uuid;
258
301
 
259
302
  this.bindings = $();
260
303
  this.hoverable = $();
261
304
  this.focusable = $();
305
+ this.classesElementLookup = {};
262
306
 
263
307
  if ( element !== this ) {
264
308
  $.data( element, this.widgetFullName, this );
@@ -268,13 +312,15 @@ $.Widget.prototype = {
268
312
  this.destroy();
269
313
  }
270
314
  }
271
- });
315
+ } );
272
316
  this.document = $( element.style ?
273
- // element within the document
317
+
318
+ // Element within the document
274
319
  element.ownerDocument :
275
- // element is window or document
320
+
321
+ // Element is window or document
276
322
  element.document || element );
277
- this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
323
+ this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );
278
324
  }
279
325
 
280
326
  this.options = $.widget.extend( {},
@@ -283,36 +329,46 @@ $.Widget.prototype = {
283
329
  options );
284
330
 
285
331
  this._create();
332
+
333
+ if ( this.options.disabled ) {
334
+ this._setOptionDisabled( this.options.disabled );
335
+ }
336
+
286
337
  this._trigger( "create", null, this._getCreateEventData() );
287
338
  this._init();
288
339
  },
289
- _getCreateOptions: $.noop,
340
+
341
+ _getCreateOptions: function() {
342
+ return {};
343
+ },
344
+
290
345
  _getCreateEventData: $.noop,
346
+
291
347
  _create: $.noop,
348
+
292
349
  _init: $.noop,
293
350
 
294
351
  destroy: function() {
352
+ var that = this;
353
+
295
354
  this._destroy();
296
- // we can probably remove the unbind calls in 2.0
355
+ $.each( this.classesElementLookup, function( key, value ) {
356
+ that._removeClass( value, key );
357
+ } );
358
+
359
+ // We can probably remove the unbind calls in 2.0
297
360
  // all event bindings should go through this._on()
298
361
  this.element
299
- .unbind( this.eventNamespace )
300
- .removeData( this.widgetFullName )
301
- // support: jquery <1.6.3
302
- // http://bugs.jquery.com/ticket/9413
303
- .removeData( $.camelCase( this.widgetFullName ) );
362
+ .off( this.eventNamespace )
363
+ .removeData( this.widgetFullName );
304
364
  this.widget()
305
- .unbind( this.eventNamespace )
306
- .removeAttr( "aria-disabled" )
307
- .removeClass(
308
- this.widgetFullName + "-disabled " +
309
- "ui-state-disabled" );
310
-
311
- // clean up events and states
312
- this.bindings.unbind( this.eventNamespace );
313
- this.hoverable.removeClass( "ui-state-hover" );
314
- this.focusable.removeClass( "ui-state-focus" );
365
+ .off( this.eventNamespace )
366
+ .removeAttr( "aria-disabled" );
367
+
368
+ // Clean up events and states
369
+ this.bindings.off( this.eventNamespace );
315
370
  },
371
+
316
372
  _destroy: $.noop,
317
373
 
318
374
  widget: function() {
@@ -320,18 +376,20 @@ $.Widget.prototype = {
320
376
  },
321
377
 
322
378
  option: function( key, value ) {
323
- var options = key,
324
- parts,
325
- curOption,
326
- i;
379
+ var options = key;
380
+ var parts;
381
+ var curOption;
382
+ var i;
327
383
 
328
384
  if ( arguments.length === 0 ) {
329
- // don't return a reference to the internal hash
385
+
386
+ // Don't return a reference to the internal hash
330
387
  return $.widget.extend( {}, this.options );
331
388
  }
332
389
 
333
390
  if ( typeof key === "string" ) {
334
- // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
391
+
392
+ // Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
335
393
  options = {};
336
394
  parts = key.split( "." );
337
395
  key = parts.shift();
@@ -358,6 +416,7 @@ $.Widget.prototype = {
358
416
 
359
417
  return this;
360
418
  },
419
+
361
420
  _setOptions: function( options ) {
362
421
  var key;
363
422
 
@@ -367,42 +426,152 @@ $.Widget.prototype = {
367
426
 
368
427
  return this;
369
428
  },
429
+
370
430
  _setOption: function( key, value ) {
431
+ if ( key === "classes" ) {
432
+ this._setOptionClasses( value );
433
+ }
434
+
371
435
  this.options[ key ] = value;
372
436
 
373
437
  if ( key === "disabled" ) {
374
- this.widget()
375
- .toggleClass( this.widgetFullName + "-disabled", !!value );
438
+ this._setOptionDisabled( value );
439
+ }
440
+
441
+ return this;
442
+ },
443
+
444
+ _setOptionClasses: function( value ) {
445
+ var classKey, elements, currentElements;
376
446
 
377
- // If the widget is becoming disabled, then nothing is interactive
378
- if ( value ) {
379
- this.hoverable.removeClass( "ui-state-hover" );
380
- this.focusable.removeClass( "ui-state-focus" );
447
+ for ( classKey in value ) {
448
+ currentElements = this.classesElementLookup[ classKey ];
449
+ if ( value[ classKey ] === this.options.classes[ classKey ] ||
450
+ !currentElements ||
451
+ !currentElements.length ) {
452
+ continue;
381
453
  }
454
+
455
+ // We are doing this to create a new jQuery object because the _removeClass() call
456
+ // on the next line is going to destroy the reference to the current elements being
457
+ // tracked. We need to save a copy of this collection so that we can add the new classes
458
+ // below.
459
+ elements = $( currentElements.get() );
460
+ this._removeClass( currentElements, classKey );
461
+
462
+ // We don't use _addClass() here, because that uses this.options.classes
463
+ // for generating the string of classes. We want to use the value passed in from
464
+ // _setOption(), this is the new value of the classes option which was passed to
465
+ // _setOption(). We pass this value directly to _classes().
466
+ elements.addClass( this._classes( {
467
+ element: elements,
468
+ keys: classKey,
469
+ classes: value,
470
+ add: true
471
+ } ) );
382
472
  }
473
+ },
383
474
 
384
- return this;
475
+ _setOptionDisabled: function( value ) {
476
+ this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value );
477
+
478
+ // If the widget is becoming disabled, then nothing is interactive
479
+ if ( value ) {
480
+ this._removeClass( this.hoverable, null, "ui-state-hover" );
481
+ this._removeClass( this.focusable, null, "ui-state-focus" );
482
+ }
385
483
  },
386
484
 
387
485
  enable: function() {
388
- return this._setOptions({ disabled: false });
486
+ return this._setOptions( { disabled: false } );
389
487
  },
488
+
390
489
  disable: function() {
391
- return this._setOptions({ disabled: true });
490
+ return this._setOptions( { disabled: true } );
491
+ },
492
+
493
+ _classes: function( options ) {
494
+ var full = [];
495
+ var that = this;
496
+
497
+ options = $.extend( {
498
+ element: this.element,
499
+ classes: this.options.classes || {}
500
+ }, options );
501
+
502
+ function processClassString( classes, checkOption ) {
503
+ var current, i;
504
+ for ( i = 0; i < classes.length; i++ ) {
505
+ current = that.classesElementLookup[ classes[ i ] ] || $();
506
+ if ( options.add ) {
507
+ current = $( $.unique( current.get().concat( options.element.get() ) ) );
508
+ } else {
509
+ current = $( current.not( options.element ).get() );
510
+ }
511
+ that.classesElementLookup[ classes[ i ] ] = current;
512
+ full.push( classes[ i ] );
513
+ if ( checkOption && options.classes[ classes[ i ] ] ) {
514
+ full.push( options.classes[ classes[ i ] ] );
515
+ }
516
+ }
517
+ }
518
+
519
+ this._on( options.element, {
520
+ "remove": "_untrackClassesElement"
521
+ } );
522
+
523
+ if ( options.keys ) {
524
+ processClassString( options.keys.match( /\S+/g ) || [], true );
525
+ }
526
+ if ( options.extra ) {
527
+ processClassString( options.extra.match( /\S+/g ) || [] );
528
+ }
529
+
530
+ return full.join( " " );
531
+ },
532
+
533
+ _untrackClassesElement: function( event ) {
534
+ var that = this;
535
+ $.each( that.classesElementLookup, function( key, value ) {
536
+ if ( $.inArray( event.target, value ) !== -1 ) {
537
+ that.classesElementLookup[ key ] = $( value.not( event.target ).get() );
538
+ }
539
+ } );
540
+ },
541
+
542
+ _removeClass: function( element, keys, extra ) {
543
+ return this._toggleClass( element, keys, extra, false );
544
+ },
545
+
546
+ _addClass: function( element, keys, extra ) {
547
+ return this._toggleClass( element, keys, extra, true );
548
+ },
549
+
550
+ _toggleClass: function( element, keys, extra, add ) {
551
+ add = ( typeof add === "boolean" ) ? add : extra;
552
+ var shift = ( typeof element === "string" || element === null ),
553
+ options = {
554
+ extra: shift ? keys : extra,
555
+ keys: shift ? element : keys,
556
+ element: shift ? this.element : element,
557
+ add: add
558
+ };
559
+ options.element.toggleClass( this._classes( options ), add );
560
+ return this;
392
561
  },
393
562
 
394
563
  _on: function( suppressDisabledCheck, element, handlers ) {
395
- var delegateElement,
396
- instance = this;
564
+ var delegateElement;
565
+ var instance = this;
397
566
 
398
- // no suppressDisabledCheck flag, shuffle arguments
567
+ // No suppressDisabledCheck flag, shuffle arguments
399
568
  if ( typeof suppressDisabledCheck !== "boolean" ) {
400
569
  handlers = element;
401
570
  element = suppressDisabledCheck;
402
571
  suppressDisabledCheck = false;
403
572
  }
404
573
 
405
- // no element argument, shuffle and use this.element
574
+ // No element argument, shuffle and use this.element
406
575
  if ( !handlers ) {
407
576
  handlers = element;
408
577
  element = this.element;
@@ -414,39 +583,41 @@ $.Widget.prototype = {
414
583
 
415
584
  $.each( handlers, function( event, handler ) {
416
585
  function handlerProxy() {
417
- // allow widgets to customize the disabled handling
586
+
587
+ // Allow widgets to customize the disabled handling
418
588
  // - disabled as an array instead of boolean
419
589
  // - disabled class as method for disabling individual parts
420
590
  if ( !suppressDisabledCheck &&
421
591
  ( instance.options.disabled === true ||
422
- $( this ).hasClass( "ui-state-disabled" ) ) ) {
592
+ $( this ).hasClass( "ui-state-disabled" ) ) ) {
423
593
  return;
424
594
  }
425
595
  return ( typeof handler === "string" ? instance[ handler ] : handler )
426
596
  .apply( instance, arguments );
427
597
  }
428
598
 
429
- // copy the guid so direct unbinding works
599
+ // Copy the guid so direct unbinding works
430
600
  if ( typeof handler !== "string" ) {
431
601
  handlerProxy.guid = handler.guid =
432
602
  handler.guid || handlerProxy.guid || $.guid++;
433
603
  }
434
604
 
435
- var match = event.match( /^([\w:-]*)\s*(.*)$/ ),
436
- eventName = match[1] + instance.eventNamespace,
437
- selector = match[2];
605
+ var match = event.match( /^([\w:-]*)\s*(.*)$/ );
606
+ var eventName = match[ 1 ] + instance.eventNamespace;
607
+ var selector = match[ 2 ];
608
+
438
609
  if ( selector ) {
439
- delegateElement.delegate( selector, eventName, handlerProxy );
610
+ delegateElement.on( eventName, selector, handlerProxy );
440
611
  } else {
441
- element.bind( eventName, handlerProxy );
612
+ element.on( eventName, handlerProxy );
442
613
  }
443
- });
614
+ } );
444
615
  },
445
616
 
446
617
  _off: function( element, eventName ) {
447
- eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) +
618
+ eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) +
448
619
  this.eventNamespace;
449
- element.unbind( eventName ).undelegate( eventName );
620
+ element.off( eventName ).off( eventName );
450
621
 
451
622
  // Clear the stack to avoid memory leaks (#10056)
452
623
  this.bindings = $( this.bindings.not( element ).get() );
@@ -467,40 +638,41 @@ $.Widget.prototype = {
467
638
  this.hoverable = this.hoverable.add( element );
468
639
  this._on( element, {
469
640
  mouseenter: function( event ) {
470
- $( event.currentTarget ).addClass( "ui-state-hover" );
641
+ this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
471
642
  },
472
643
  mouseleave: function( event ) {
473
- $( event.currentTarget ).removeClass( "ui-state-hover" );
644
+ this._removeClass( $( event.currentTarget ), null, "ui-state-hover" );
474
645
  }
475
- });
646
+ } );
476
647
  },
477
648
 
478
649
  _focusable: function( element ) {
479
650
  this.focusable = this.focusable.add( element );
480
651
  this._on( element, {
481
652
  focusin: function( event ) {
482
- $( event.currentTarget ).addClass( "ui-state-focus" );
653
+ this._addClass( $( event.currentTarget ), null, "ui-state-focus" );
483
654
  },
484
655
  focusout: function( event ) {
485
- $( event.currentTarget ).removeClass( "ui-state-focus" );
656
+ this._removeClass( $( event.currentTarget ), null, "ui-state-focus" );
486
657
  }
487
- });
658
+ } );
488
659
  },
489
660
 
490
661
  _trigger: function( type, event, data ) {
491
- var prop, orig,
492
- callback = this.options[ type ];
662
+ var prop, orig;
663
+ var callback = this.options[ type ];
493
664
 
494
665
  data = data || {};
495
666
  event = $.Event( event );
496
667
  event.type = ( type === this.widgetEventPrefix ?
497
668
  type :
498
669
  this.widgetEventPrefix + type ).toLowerCase();
499
- // the original event may come from any element
670
+
671
+ // The original event may come from any element
500
672
  // so we need to reset the target on the new event
501
673
  event.target = this.element[ 0 ];
502
674
 
503
- // copy original event properties over to the new event
675
+ // Copy original event properties over to the new event
504
676
  orig = event.originalEvent;
505
677
  if ( orig ) {
506
678
  for ( prop in orig ) {
@@ -512,7 +684,7 @@ $.Widget.prototype = {
512
684
 
513
685
  this.element.trigger( event, data );
514
686
  return !( $.isFunction( callback ) &&
515
- callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
687
+ callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||
516
688
  event.isDefaultPrevented() );
517
689
  }
518
690
  };
@@ -522,37 +694,42 @@ $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
522
694
  if ( typeof options === "string" ) {
523
695
  options = { effect: options };
524
696
  }
525
- var hasOptions,
526
- effectName = !options ?
527
- method :
528
- options === true || typeof options === "number" ?
529
- defaultEffect :
530
- options.effect || defaultEffect;
697
+
698
+ var hasOptions;
699
+ var effectName = !options ?
700
+ method :
701
+ options === true || typeof options === "number" ?
702
+ defaultEffect :
703
+ options.effect || defaultEffect;
704
+
531
705
  options = options || {};
532
706
  if ( typeof options === "number" ) {
533
707
  options = { duration: options };
534
708
  }
709
+
535
710
  hasOptions = !$.isEmptyObject( options );
536
711
  options.complete = callback;
712
+
537
713
  if ( options.delay ) {
538
714
  element.delay( options.delay );
539
715
  }
716
+
540
717
  if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
541
718
  element[ method ]( options );
542
719
  } else if ( effectName !== method && element[ effectName ] ) {
543
720
  element[ effectName ]( options.duration, options.easing, callback );
544
721
  } else {
545
- element.queue(function( next ) {
722
+ element.queue( function( next ) {
546
723
  $( this )[ method ]();
547
724
  if ( callback ) {
548
725
  callback.call( element[ 0 ] );
549
726
  }
550
727
  next();
551
- });
728
+ } );
552
729
  }
553
730
  };
554
- });
731
+ } );
555
732
 
556
733
  return $.widget;
557
734
 
558
- }));
735
+ } ) );