jquery-ui-rails 5.0.5 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.

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
+ } ) );