jquery-ui-rails 4.2.1 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. checksums.yaml +7 -0
  2. data/.gitmodules +1 -1
  3. data/.travis.yml +1 -1
  4. data/History.md +41 -2
  5. data/README.md +100 -83
  6. data/Rakefile +82 -49
  7. data/VERSIONS.md +9 -0
  8. data/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  9. data/app/assets/images/jquery-ui/ui-icons_444444_256x240.png +0 -0
  10. data/app/assets/images/jquery-ui/ui-icons_555555_256x240.png +0 -0
  11. data/app/assets/images/jquery-ui/ui-icons_777620_256x240.png +0 -0
  12. data/app/assets/images/jquery-ui/ui-icons_777777_256x240.png +0 -0
  13. data/app/assets/images/jquery-ui/ui-icons_cc0000_256x240.png +0 -0
  14. data/app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  15. data/app/assets/javascripts/jquery-ui/core.js +15 -0
  16. data/app/assets/javascripts/jquery-ui/data.js +45 -0
  17. data/app/assets/javascripts/jquery-ui/disable-selection.js +51 -0
  18. data/app/assets/javascripts/jquery-ui/effect.all.js +15 -0
  19. data/app/assets/javascripts/jquery-ui/effect.js +975 -0
  20. data/app/assets/javascripts/jquery-ui/effects/effect-blind.js +76 -0
  21. data/app/assets/javascripts/jquery-ui/effects/effect-bounce.js +116 -0
  22. data/app/assets/javascripts/jquery-ui/effects/effect-clip.js +71 -0
  23. data/app/assets/javascripts/jquery-ui/effects/effect-drop.js +75 -0
  24. data/app/assets/javascripts/jquery-ui/effects/effect-explode.js +117 -0
  25. data/app/assets/javascripts/jquery-ui/effects/effect-fade.js +53 -0
  26. data/app/assets/javascripts/jquery-ui/effects/effect-fold.js +95 -0
  27. data/app/assets/javascripts/jquery-ui/effects/effect-highlight.js +63 -0
  28. data/app/assets/javascripts/jquery-ui/effects/effect-puff.js +49 -0
  29. data/app/assets/javascripts/jquery-ui/effects/effect-pulsate.js +70 -0
  30. data/app/assets/javascripts/jquery-ui/effects/effect-scale.js +63 -0
  31. data/app/assets/javascripts/jquery-ui/effects/effect-shake.js +80 -0
  32. data/app/assets/javascripts/jquery-ui/effects/effect-size.js +199 -0
  33. data/app/assets/javascripts/jquery-ui/effects/effect-slide.js +82 -0
  34. data/app/assets/javascripts/jquery-ui/effects/effect-transfer.js +46 -0
  35. data/app/assets/javascripts/jquery-ui/focusable.js +89 -0
  36. data/app/assets/javascripts/jquery-ui/form-reset-mixin.js +83 -0
  37. data/app/assets/javascripts/jquery-ui/form.js +25 -0
  38. data/app/assets/javascripts/jquery-ui/i18n/datepicker-af.js +40 -0
  39. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ar-DZ.js +42 -0
  40. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ar.js +42 -0
  41. data/app/assets/javascripts/jquery-ui/i18n/datepicker-az.js +40 -0
  42. data/app/assets/javascripts/jquery-ui/i18n/datepicker-be.js +40 -0
  43. data/app/assets/javascripts/jquery-ui/i18n/datepicker-bg.js +41 -0
  44. data/app/assets/javascripts/jquery-ui/i18n/datepicker-bs.js +40 -0
  45. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ca.js +40 -0
  46. data/app/assets/javascripts/jquery-ui/i18n/datepicker-cs.js +40 -0
  47. data/app/assets/javascripts/jquery-ui/i18n/datepicker-cy-GB.js +48 -0
  48. data/app/assets/javascripts/jquery-ui/i18n/datepicker-da.js +40 -0
  49. data/app/assets/javascripts/jquery-ui/i18n/datepicker-de-AT.js +41 -0
  50. data/app/assets/javascripts/jquery-ui/i18n/datepicker-de.js +40 -0
  51. data/app/assets/javascripts/jquery-ui/i18n/datepicker-el.js +40 -0
  52. data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-AU.js +40 -0
  53. data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-GB.js +40 -0
  54. data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-NZ.js +40 -0
  55. data/app/assets/javascripts/jquery-ui/i18n/datepicker-eo.js +40 -0
  56. data/app/assets/javascripts/jquery-ui/i18n/datepicker-es.js +40 -0
  57. data/app/assets/javascripts/jquery-ui/i18n/datepicker-et.js +48 -0
  58. data/app/assets/javascripts/jquery-ui/i18n/datepicker-eu.js +39 -0
  59. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fa.js +76 -0
  60. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fi.js +40 -0
  61. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fo.js +48 -0
  62. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CA.js +40 -0
  63. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CH.js +40 -0
  64. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr.js +42 -0
  65. data/app/assets/javascripts/jquery-ui/i18n/datepicker-gl.js +40 -0
  66. data/app/assets/javascripts/jquery-ui/i18n/datepicker-he.js +40 -0
  67. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hi.js +40 -0
  68. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hr.js +40 -0
  69. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hu.js +39 -0
  70. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hy.js +40 -0
  71. data/app/assets/javascripts/jquery-ui/i18n/datepicker-id.js +40 -0
  72. data/app/assets/javascripts/jquery-ui/i18n/datepicker-is.js +48 -0
  73. data/app/assets/javascripts/jquery-ui/i18n/datepicker-it-CH.js +40 -0
  74. data/app/assets/javascripts/jquery-ui/i18n/datepicker-it.js +40 -0
  75. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ja.js +40 -0
  76. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ka.js +51 -0
  77. data/app/assets/javascripts/jquery-ui/i18n/datepicker-kk.js +40 -0
  78. data/app/assets/javascripts/jquery-ui/i18n/datepicker-km.js +40 -0
  79. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ko.js +40 -0
  80. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ky.js +41 -0
  81. data/app/assets/javascripts/jquery-ui/i18n/datepicker-lb.js +48 -0
  82. data/app/assets/javascripts/jquery-ui/i18n/datepicker-lt.js +48 -0
  83. data/app/assets/javascripts/jquery-ui/i18n/datepicker-lv.js +48 -0
  84. data/app/assets/javascripts/jquery-ui/i18n/datepicker-mk.js +40 -0
  85. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ml.js +40 -0
  86. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ms.js +40 -0
  87. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nb.js +52 -0
  88. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nl-BE.js +40 -0
  89. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nl.js +40 -0
  90. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nn.js +52 -0
  91. data/app/assets/javascripts/jquery-ui/i18n/datepicker-no.js +53 -0
  92. data/app/assets/javascripts/jquery-ui/i18n/datepicker-pl.js +40 -0
  93. data/app/assets/javascripts/jquery-ui/i18n/datepicker-pt-BR.js +48 -0
  94. data/app/assets/javascripts/jquery-ui/i18n/datepicker-pt.js +47 -0
  95. data/app/assets/javascripts/jquery-ui/i18n/datepicker-rm.js +64 -0
  96. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ro.js +43 -0
  97. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ru.js +40 -0
  98. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sk.js +40 -0
  99. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sl.js +41 -0
  100. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sq.js +40 -0
  101. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sr-SR.js +40 -0
  102. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sr.js +40 -0
  103. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sv.js +40 -0
  104. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ta.js +56 -0
  105. data/app/assets/javascripts/jquery-ui/i18n/datepicker-th.js +40 -0
  106. data/app/assets/javascripts/jquery-ui/i18n/datepicker-tj.js +40 -0
  107. data/app/assets/javascripts/jquery-ui/i18n/datepicker-tr.js +40 -0
  108. data/app/assets/javascripts/jquery-ui/i18n/datepicker-uk.js +41 -0
  109. data/app/assets/javascripts/jquery-ui/i18n/datepicker-vi.js +40 -0
  110. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-CN.js +40 -0
  111. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-HK.js +40 -0
  112. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-TW.js +40 -0
  113. data/app/assets/javascripts/jquery-ui/ie.js +20 -0
  114. data/app/assets/javascripts/jquery-ui/jquery-patch.js +91 -0
  115. data/app/assets/javascripts/jquery-ui/jquery-var-for-color.js +24 -0
  116. data/app/assets/javascripts/jquery-ui/keycode.js +51 -0
  117. data/app/assets/javascripts/jquery-ui/labels.js +71 -0
  118. data/app/assets/javascripts/jquery-ui/plugin.js +49 -0
  119. data/app/assets/javascripts/{jquery.ui.position.js → jquery-ui/position.js} +120 -108
  120. data/app/assets/javascripts/jquery-ui/safe-active-element.js +46 -0
  121. data/app/assets/javascripts/jquery-ui/safe-blur.js +27 -0
  122. data/app/assets/javascripts/jquery-ui/scroll-parent.js +50 -0
  123. data/app/assets/javascripts/jquery-ui/tabbable.js +41 -0
  124. data/app/assets/javascripts/jquery-ui/unique-id.js +54 -0
  125. data/app/assets/javascripts/jquery-ui/vendor/jquery-color/jquery.color.js +722 -0
  126. data/app/assets/javascripts/jquery-ui/version.js +20 -0
  127. data/app/assets/javascripts/jquery-ui/widget.js +754 -0
  128. data/app/assets/javascripts/{jquery.ui.accordion.js → jquery-ui/widgets/accordion.js} +257 -203
  129. data/app/assets/javascripts/{jquery.ui.autocomplete.js → jquery-ui/widgets/autocomplete.js} +202 -133
  130. data/app/assets/javascripts/jquery-ui/widgets/button.js +454 -0
  131. data/app/assets/javascripts/jquery-ui/widgets/checkboxradio.js +289 -0
  132. data/app/assets/javascripts/jquery-ui/widgets/controlgroup.js +304 -0
  133. data/app/assets/javascripts/jquery-ui/widgets/datepicker.js +2243 -0
  134. data/app/assets/javascripts/jquery-ui/widgets/dialog.js +968 -0
  135. data/app/assets/javascripts/jquery-ui/widgets/draggable.js +1268 -0
  136. data/app/assets/javascripts/jquery-ui/widgets/droppable.js +508 -0
  137. data/app/assets/javascripts/{jquery.ui.menu.js → jquery-ui/widgets/menu.js} +276 -187
  138. data/app/assets/javascripts/jquery-ui/widgets/mouse.js +241 -0
  139. data/app/assets/javascripts/jquery-ui/widgets/progressbar.js +184 -0
  140. data/app/assets/javascripts/jquery-ui/widgets/resizable.js +1225 -0
  141. data/app/assets/javascripts/jquery-ui/widgets/selectable.js +321 -0
  142. data/app/assets/javascripts/jquery-ui/widgets/selectmenu.js +702 -0
  143. data/app/assets/javascripts/{jquery.ui.slider.js → jquery-ui/widgets/slider.js} +254 -174
  144. data/app/assets/javascripts/jquery-ui/widgets/sortable.js +1623 -0
  145. data/app/assets/javascripts/{jquery.ui.spinner.js → jquery-ui/widgets/spinner.js} +206 -119
  146. data/app/assets/javascripts/{jquery.ui.tabs.js → jquery-ui/widgets/tabs.js} +334 -255
  147. data/app/assets/javascripts/jquery-ui/widgets/tooltip.js +530 -0
  148. data/app/assets/javascripts/jquery-ui.js +57 -0
  149. data/app/assets/stylesheets/jquery-ui/accordion.css +26 -0
  150. data/app/assets/stylesheets/{jquery.ui.all.css.erb → jquery-ui/all.css} +4 -4
  151. data/app/assets/stylesheets/{jquery.ui.autocomplete.css.erb → jquery-ui/autocomplete.css} +3 -5
  152. data/app/assets/stylesheets/jquery-ui/base.css +32 -0
  153. data/app/assets/stylesheets/jquery-ui/button.css +85 -0
  154. data/app/assets/stylesheets/jquery-ui/checkboxradio.css +37 -0
  155. data/app/assets/stylesheets/jquery-ui/controlgroup.css +68 -0
  156. data/app/assets/stylesheets/{jquery.ui.core.css.erb → jquery-ui/core.css} +16 -9
  157. data/app/assets/stylesheets/{jquery.ui.datepicker.css.erb → jquery-ui/datepicker.css} +14 -5
  158. data/app/assets/stylesheets/{jquery.ui.dialog.css.erb → jquery-ui/dialog.css} +40 -12
  159. data/app/assets/stylesheets/jquery-ui/draggable.css +15 -0
  160. data/app/assets/stylesheets/jquery-ui/menu.css +67 -0
  161. data/app/assets/stylesheets/jquery-ui/progressbar.css +31 -0
  162. data/app/assets/stylesheets/{jquery.ui.resizable.css.erb → jquery-ui/resizable.css} +5 -4
  163. data/app/assets/stylesheets/{jquery.ui.selectable.css.erb → jquery-ui/selectable.css} +7 -4
  164. data/app/assets/stylesheets/jquery-ui/selectmenu.css +53 -0
  165. data/app/assets/stylesheets/{jquery.ui.slider.css.erb → jquery-ui/slider.css} +7 -6
  166. data/app/assets/stylesheets/jquery-ui/sortable.css +15 -0
  167. data/app/assets/stylesheets/{jquery.ui.spinner.css.erb → jquery-ui/spinner.css} +9 -24
  168. data/app/assets/stylesheets/{jquery.ui.tabs.css.erb → jquery-ui/tabs.css} +3 -4
  169. data/app/assets/stylesheets/{jquery.ui.theme.css.erb → jquery-ui/theme.css.erb} +122 -96
  170. data/app/assets/stylesheets/{jquery.ui.tooltip.css.erb → jquery-ui/tooltip.css} +3 -6
  171. data/app/assets/stylesheets/jquery-ui.css +1 -0
  172. data/lib/jquery/ui/rails/version.rb +2 -2
  173. metadata +180 -166
  174. data/app/assets/images/jquery-ui/animated-overlay.gif +0 -0
  175. data/app/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  176. data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  177. data/app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  178. data/app/assets/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png +0 -0
  179. data/app/assets/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  180. data/app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  181. data/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  182. data/app/assets/images/jquery-ui/ui-icons_222222_256x240.png +0 -0
  183. data/app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png +0 -0
  184. data/app/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
  185. data/app/assets/images/jquery-ui/ui-icons_888888_256x240.png +0 -0
  186. data/app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png +0 -0
  187. data/app/assets/javascripts/jquery.ui.all.js +0 -34
  188. data/app/assets/javascripts/jquery.ui.button.js +0 -398
  189. data/app/assets/javascripts/jquery.ui.core.js +0 -320
  190. data/app/assets/javascripts/jquery.ui.datepicker-af.js +0 -23
  191. data/app/assets/javascripts/jquery.ui.datepicker-ar-DZ.js +0 -23
  192. data/app/assets/javascripts/jquery.ui.datepicker-ar.js +0 -23
  193. data/app/assets/javascripts/jquery.ui.datepicker-az.js +0 -23
  194. data/app/assets/javascripts/jquery.ui.datepicker-be.js +0 -23
  195. data/app/assets/javascripts/jquery.ui.datepicker-bg.js +0 -24
  196. data/app/assets/javascripts/jquery.ui.datepicker-bs.js +0 -23
  197. data/app/assets/javascripts/jquery.ui.datepicker-ca.js +0 -23
  198. data/app/assets/javascripts/jquery.ui.datepicker-cs.js +0 -23
  199. data/app/assets/javascripts/jquery.ui.datepicker-cy-GB.js +0 -23
  200. data/app/assets/javascripts/jquery.ui.datepicker-da.js +0 -23
  201. data/app/assets/javascripts/jquery.ui.datepicker-de.js +0 -23
  202. data/app/assets/javascripts/jquery.ui.datepicker-el.js +0 -23
  203. data/app/assets/javascripts/jquery.ui.datepicker-en-AU.js +0 -23
  204. data/app/assets/javascripts/jquery.ui.datepicker-en-GB.js +0 -23
  205. data/app/assets/javascripts/jquery.ui.datepicker-en-NZ.js +0 -23
  206. data/app/assets/javascripts/jquery.ui.datepicker-eo.js +0 -23
  207. data/app/assets/javascripts/jquery.ui.datepicker-es.js +0 -23
  208. data/app/assets/javascripts/jquery.ui.datepicker-et.js +0 -23
  209. data/app/assets/javascripts/jquery.ui.datepicker-eu.js +0 -23
  210. data/app/assets/javascripts/jquery.ui.datepicker-fa.js +0 -59
  211. data/app/assets/javascripts/jquery.ui.datepicker-fi.js +0 -23
  212. data/app/assets/javascripts/jquery.ui.datepicker-fo.js +0 -23
  213. data/app/assets/javascripts/jquery.ui.datepicker-fr-CA.js +0 -23
  214. data/app/assets/javascripts/jquery.ui.datepicker-fr-CH.js +0 -23
  215. data/app/assets/javascripts/jquery.ui.datepicker-fr.js +0 -25
  216. data/app/assets/javascripts/jquery.ui.datepicker-gl.js +0 -23
  217. data/app/assets/javascripts/jquery.ui.datepicker-he.js +0 -23
  218. data/app/assets/javascripts/jquery.ui.datepicker-hi.js +0 -23
  219. data/app/assets/javascripts/jquery.ui.datepicker-hr.js +0 -23
  220. data/app/assets/javascripts/jquery.ui.datepicker-hu.js +0 -23
  221. data/app/assets/javascripts/jquery.ui.datepicker-hy.js +0 -23
  222. data/app/assets/javascripts/jquery.ui.datepicker-id.js +0 -23
  223. data/app/assets/javascripts/jquery.ui.datepicker-is.js +0 -23
  224. data/app/assets/javascripts/jquery.ui.datepicker-it.js +0 -23
  225. data/app/assets/javascripts/jquery.ui.datepicker-ja.js +0 -23
  226. data/app/assets/javascripts/jquery.ui.datepicker-ka.js +0 -21
  227. data/app/assets/javascripts/jquery.ui.datepicker-kk.js +0 -23
  228. data/app/assets/javascripts/jquery.ui.datepicker-km.js +0 -23
  229. data/app/assets/javascripts/jquery.ui.datepicker-ko.js +0 -23
  230. data/app/assets/javascripts/jquery.ui.datepicker-ky.js +0 -24
  231. data/app/assets/javascripts/jquery.ui.datepicker-lb.js +0 -23
  232. data/app/assets/javascripts/jquery.ui.datepicker-lt.js +0 -23
  233. data/app/assets/javascripts/jquery.ui.datepicker-lv.js +0 -23
  234. data/app/assets/javascripts/jquery.ui.datepicker-mk.js +0 -23
  235. data/app/assets/javascripts/jquery.ui.datepicker-ml.js +0 -23
  236. data/app/assets/javascripts/jquery.ui.datepicker-ms.js +0 -23
  237. data/app/assets/javascripts/jquery.ui.datepicker-nb.js +0 -22
  238. data/app/assets/javascripts/jquery.ui.datepicker-nl-BE.js +0 -23
  239. data/app/assets/javascripts/jquery.ui.datepicker-nl.js +0 -23
  240. data/app/assets/javascripts/jquery.ui.datepicker-nn.js +0 -22
  241. data/app/assets/javascripts/jquery.ui.datepicker-no.js +0 -23
  242. data/app/assets/javascripts/jquery.ui.datepicker-pl.js +0 -23
  243. data/app/assets/javascripts/jquery.ui.datepicker-pt-BR.js +0 -23
  244. data/app/assets/javascripts/jquery.ui.datepicker-pt.js +0 -22
  245. data/app/assets/javascripts/jquery.ui.datepicker-rm.js +0 -21
  246. data/app/assets/javascripts/jquery.ui.datepicker-ro.js +0 -26
  247. data/app/assets/javascripts/jquery.ui.datepicker-ru.js +0 -23
  248. data/app/assets/javascripts/jquery.ui.datepicker-sk.js +0 -23
  249. data/app/assets/javascripts/jquery.ui.datepicker-sl.js +0 -24
  250. data/app/assets/javascripts/jquery.ui.datepicker-sq.js +0 -23
  251. data/app/assets/javascripts/jquery.ui.datepicker-sr-SR.js +0 -23
  252. data/app/assets/javascripts/jquery.ui.datepicker-sr.js +0 -23
  253. data/app/assets/javascripts/jquery.ui.datepicker-sv.js +0 -23
  254. data/app/assets/javascripts/jquery.ui.datepicker-ta.js +0 -23
  255. data/app/assets/javascripts/jquery.ui.datepicker-th.js +0 -23
  256. data/app/assets/javascripts/jquery.ui.datepicker-tj.js +0 -23
  257. data/app/assets/javascripts/jquery.ui.datepicker-tr.js +0 -23
  258. data/app/assets/javascripts/jquery.ui.datepicker-uk.js +0 -24
  259. data/app/assets/javascripts/jquery.ui.datepicker-vi.js +0 -23
  260. data/app/assets/javascripts/jquery.ui.datepicker-zh-CN.js +0 -23
  261. data/app/assets/javascripts/jquery.ui.datepicker-zh-HK.js +0 -23
  262. data/app/assets/javascripts/jquery.ui.datepicker-zh-TW.js +0 -23
  263. data/app/assets/javascripts/jquery.ui.datepicker.js +0 -2040
  264. data/app/assets/javascripts/jquery.ui.dialog.js +0 -830
  265. data/app/assets/javascripts/jquery.ui.draggable.js +0 -962
  266. data/app/assets/javascripts/jquery.ui.droppable.js +0 -394
  267. data/app/assets/javascripts/jquery.ui.effect-blind.js +0 -84
  268. data/app/assets/javascripts/jquery.ui.effect-bounce.js +0 -115
  269. data/app/assets/javascripts/jquery.ui.effect-clip.js +0 -69
  270. data/app/assets/javascripts/jquery.ui.effect-drop.js +0 -67
  271. data/app/assets/javascripts/jquery.ui.effect-explode.js +0 -99
  272. data/app/assets/javascripts/jquery.ui.effect-fade.js +0 -32
  273. data/app/assets/javascripts/jquery.ui.effect-fold.js +0 -78
  274. data/app/assets/javascripts/jquery.ui.effect-highlight.js +0 -52
  275. data/app/assets/javascripts/jquery.ui.effect-pulsate.js +0 -65
  276. data/app/assets/javascripts/jquery.ui.effect-scale.js +0 -320
  277. data/app/assets/javascripts/jquery.ui.effect-shake.js +0 -76
  278. data/app/assets/javascripts/jquery.ui.effect-slide.js +0 -66
  279. data/app/assets/javascripts/jquery.ui.effect-transfer.js +0 -49
  280. data/app/assets/javascripts/jquery.ui.effect.all.js +0 -14
  281. data/app/assets/javascripts/jquery.ui.effect.js +0 -1289
  282. data/app/assets/javascripts/jquery.ui.mouse.js +0 -172
  283. data/app/assets/javascripts/jquery.ui.progressbar.js +0 -148
  284. data/app/assets/javascripts/jquery.ui.resizable.js +0 -982
  285. data/app/assets/javascripts/jquery.ui.selectable.js +0 -281
  286. data/app/assets/javascripts/jquery.ui.sortable.js +0 -1293
  287. data/app/assets/javascripts/jquery.ui.tooltip.js +0 -406
  288. data/app/assets/javascripts/jquery.ui.widget.js +0 -521
  289. data/app/assets/stylesheets/jquery.ui.accordion.css.erb +0 -42
  290. data/app/assets/stylesheets/jquery.ui.base.css.erb +0 -27
  291. data/app/assets/stylesheets/jquery.ui.button.css.erb +0 -118
  292. data/app/assets/stylesheets/jquery.ui.menu.css.erb +0 -83
  293. data/app/assets/stylesheets/jquery.ui.progressbar.css.erb +0 -37
@@ -1,28 +1,53 @@
1
- //= require jquery.ui.core
2
- //= require jquery.ui.widget
3
- //= require jquery.ui.menu
4
- //= require jquery.ui.position
1
+ //= require jquery-ui/widgets/menu
2
+ //= require jquery-ui/keycode
3
+ //= require jquery-ui/position
4
+ //= require jquery-ui/safe-active-element
5
+ //= require jquery-ui/version
6
+ //= require jquery-ui/widget
5
7
 
6
8
  /*!
7
- * jQuery UI Autocomplete 1.10.4
9
+ * jQuery UI Autocomplete 1.13.0
8
10
  * http://jqueryui.com
9
11
  *
10
- * Copyright 2014 jQuery Foundation and other contributors
12
+ * Copyright jQuery Foundation and other contributors
11
13
  * Released under the MIT license.
12
14
  * http://jquery.org/license
13
- *
14
- * http://api.jqueryui.com/autocomplete/
15
- *
16
- * Depends:
17
- * jquery.ui.core.js
18
- * jquery.ui.widget.js
19
- * jquery.ui.position.js
20
- * jquery.ui.menu.js
21
15
  */
22
- (function( $, undefined ) {
16
+
17
+ //>>label: Autocomplete
18
+ //>>group: Widgets
19
+ //>>description: Lists suggested words as the user is typing.
20
+ //>>docs: http://api.jqueryui.com/autocomplete/
21
+ //>>demos: http://jqueryui.com/autocomplete/
22
+ //>>css.structure: ../../themes/base/core.css
23
+ //>>css.structure: ../../themes/base/autocomplete.css
24
+ //>>css.theme: ../../themes/base/theme.css
25
+
26
+ ( function( factory ) {
27
+ "use strict";
28
+
29
+ if ( typeof define === "function" && define.amd ) {
30
+
31
+ // AMD. Register as an anonymous module.
32
+ define( [
33
+ "jquery",
34
+ "./menu",
35
+ "../keycode",
36
+ "../position",
37
+ "../safe-active-element",
38
+ "../version",
39
+ "../widget"
40
+ ], factory );
41
+ } else {
42
+
43
+ // Browser globals
44
+ factory( jQuery );
45
+ }
46
+ } )( function( $ ) {
47
+ "use strict";
23
48
 
24
49
  $.widget( "ui.autocomplete", {
25
- version: "1.10.4",
50
+ version: "1.13.0",
26
51
  defaultElement: "<input>",
27
52
  options: {
28
53
  appendTo: null,
@@ -36,7 +61,7 @@ $.widget( "ui.autocomplete", {
36
61
  },
37
62
  source: null,
38
63
 
39
- // callbacks
64
+ // Callbacks
40
65
  change: null,
41
66
  close: null,
42
67
  focus: null,
@@ -50,6 +75,7 @@ $.widget( "ui.autocomplete", {
50
75
  pending: 0,
51
76
 
52
77
  _create: function() {
78
+
53
79
  // Some browsers only repeat keydown events, not keypress events,
54
80
  // so we use the suppressKeyPress flag to determine if we've already
55
81
  // handled the keydown event. #7269
@@ -58,25 +84,21 @@ $.widget( "ui.autocomplete", {
58
84
  // events when we know the keydown event was used to modify the
59
85
  // search term. #7799
60
86
  var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
61
- nodeName = this.element[0].nodeName.toLowerCase(),
87
+ nodeName = this.element[ 0 ].nodeName.toLowerCase(),
62
88
  isTextarea = nodeName === "textarea",
63
89
  isInput = nodeName === "input";
64
90
 
65
- this.isMultiLine =
66
- // Textareas are always multi-line
67
- isTextarea ? true :
68
- // Inputs are always single-line, even if inside a contentEditable element
69
- // IE also treats inputs as contentEditable
70
- isInput ? false :
71
- // All other element types are determined by whether or not they're contentEditable
72
- this.element.prop( "isContentEditable" );
91
+ // Textareas are always multi-line
92
+ // Inputs are always single-line, even if inside a contentEditable element
93
+ // IE also treats inputs as contentEditable
94
+ // All other element types are determined by whether or not they're contentEditable
95
+ this.isMultiLine = isTextarea || !isInput && this._isContentEditable( this.element );
73
96
 
74
97
  this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
75
98
  this.isNewMenu = true;
76
99
 
77
- this.element
78
- .addClass( "ui-autocomplete-input" )
79
- .attr( "autocomplete", "off" );
100
+ this._addClass( "ui-autocomplete-input" );
101
+ this.element.attr( "autocomplete", "off" );
80
102
 
81
103
  this._on( this.element, {
82
104
  keydown: function( event ) {
@@ -91,7 +113,7 @@ $.widget( "ui.autocomplete", {
91
113
  suppressInput = false;
92
114
  suppressKeyPressRepeat = false;
93
115
  var keyCode = $.ui.keyCode;
94
- switch( event.keyCode ) {
116
+ switch ( event.keyCode ) {
95
117
  case keyCode.PAGE_UP:
96
118
  suppressKeyPress = true;
97
119
  this._move( "previousPage", event );
@@ -109,9 +131,10 @@ $.widget( "ui.autocomplete", {
109
131
  this._keyEvent( "next", event );
110
132
  break;
111
133
  case keyCode.ENTER:
112
- case keyCode.NUMPAD_ENTER:
134
+
113
135
  // when menu is open and has focus
114
136
  if ( this.menu.active ) {
137
+
115
138
  // #6055 - Opera still allows the keypress to occur
116
139
  // which causes forms to submit
117
140
  suppressKeyPress = true;
@@ -126,8 +149,11 @@ $.widget( "ui.autocomplete", {
126
149
  break;
127
150
  case keyCode.ESCAPE:
128
151
  if ( this.menu.element.is( ":visible" ) ) {
129
- this._value( this.term );
152
+ if ( !this.isMultiLine ) {
153
+ this._value( this.term );
154
+ }
130
155
  this.close( event );
156
+
131
157
  // Different browsers have different default behavior for escape
132
158
  // Single press can mean undo or clear
133
159
  // Double press in IE means clear the whole form
@@ -136,6 +162,7 @@ $.widget( "ui.autocomplete", {
136
162
  break;
137
163
  default:
138
164
  suppressKeyPressRepeat = true;
165
+
139
166
  // search timeout should be triggered before the input value is changed
140
167
  this._searchTimeout( event );
141
168
  break;
@@ -153,9 +180,9 @@ $.widget( "ui.autocomplete", {
153
180
  return;
154
181
  }
155
182
 
156
- // replicate some key handlers to allow them to repeat in Firefox and Opera
183
+ // Replicate some key handlers to allow them to repeat in Firefox and Opera
157
184
  var keyCode = $.ui.keyCode;
158
- switch( event.keyCode ) {
185
+ switch ( event.keyCode ) {
159
186
  case keyCode.PAGE_UP:
160
187
  this._move( "previousPage", event );
161
188
  break;
@@ -183,59 +210,43 @@ $.widget( "ui.autocomplete", {
183
210
  this.previous = this._value();
184
211
  },
185
212
  blur: function( event ) {
186
- if ( this.cancelBlur ) {
187
- delete this.cancelBlur;
188
- return;
189
- }
190
-
191
213
  clearTimeout( this.searching );
192
214
  this.close( event );
193
215
  this._change( event );
194
216
  }
195
- });
217
+ } );
196
218
 
197
219
  this._initSource();
198
220
  this.menu = $( "<ul>" )
199
- .addClass( "ui-autocomplete ui-front" )
200
221
  .appendTo( this._appendTo() )
201
- .menu({
222
+ .menu( {
223
+
202
224
  // disable ARIA support, the live region takes care of that
203
225
  role: null
204
- })
226
+ } )
205
227
  .hide()
206
- .data( "ui-menu" );
207
228
 
229
+ // Support: IE 11 only, Edge <= 14
230
+ // For other browsers, we preventDefault() on the mousedown event
231
+ // to keep the dropdown from taking focus from the input. This doesn't
232
+ // work for IE/Edge, causing problems with selection and scrolling (#9638)
233
+ // Happily, IE and Edge support an "unselectable" attribute that
234
+ // prevents an element from receiving focus, exactly what we want here.
235
+ .attr( {
236
+ "unselectable": "on"
237
+ } )
238
+ .menu( "instance" );
239
+
240
+ this._addClass( this.menu.element, "ui-autocomplete", "ui-front" );
208
241
  this._on( this.menu.element, {
209
242
  mousedown: function( event ) {
210
- // prevent moving focus out of the text field
211
- event.preventDefault();
212
243
 
213
- // IE doesn't prevent moving focus even with event.preventDefault()
214
- // so we set a flag to know when we should ignore the blur event
215
- this.cancelBlur = true;
216
- this._delay(function() {
217
- delete this.cancelBlur;
218
- });
219
-
220
- // clicking on the scrollbar causes focus to shift to the body
221
- // but we can't detect a mouseup or a click immediately afterward
222
- // so we have to track the next mousedown and close the menu if
223
- // the user clicks somewhere outside of the autocomplete
224
- var menuElement = this.menu.element[ 0 ];
225
- if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
226
- this._delay(function() {
227
- var that = this;
228
- this.document.one( "mousedown", function( event ) {
229
- if ( event.target !== that.element[ 0 ] &&
230
- event.target !== menuElement &&
231
- !$.contains( menuElement, event.target ) ) {
232
- that.close();
233
- }
234
- });
235
- });
236
- }
244
+ // Prevent moving focus out of the text field
245
+ event.preventDefault();
237
246
  },
238
247
  menufocus: function( event, ui ) {
248
+ var label, item;
249
+
239
250
  // support: Firefox
240
251
  // Prevent accidental activation of menu items in Firefox (#7024 #9118)
241
252
  if ( this.isNewMenu ) {
@@ -245,47 +256,50 @@ $.widget( "ui.autocomplete", {
245
256
 
246
257
  this.document.one( "mousemove", function() {
247
258
  $( event.target ).trigger( event.originalEvent );
248
- });
259
+ } );
249
260
 
250
261
  return;
251
262
  }
252
263
  }
253
264
 
254
- var item = ui.item.data( "ui-autocomplete-item" );
265
+ item = ui.item.data( "ui-autocomplete-item" );
255
266
  if ( false !== this._trigger( "focus", event, { item: item } ) ) {
267
+
256
268
  // use value to match what will end up in the input, if it was a key event
257
269
  if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
258
270
  this._value( item.value );
259
271
  }
260
- } else {
261
- // Normally the input is populated with the item's value as the
262
- // menu is navigated, causing screen readers to notice a change and
263
- // announce the item. Since the focus event was canceled, this doesn't
264
- // happen, so we update the live region so that screen readers can
265
- // still notice the change and announce it.
266
- this.liveRegion.text( item.value );
272
+ }
273
+
274
+ // Announce the value in the liveRegion
275
+ label = ui.item.attr( "aria-label" ) || item.value;
276
+ if ( label && String.prototype.trim.call( label ).length ) {
277
+ this.liveRegion.children().hide();
278
+ $( "<div>" ).text( label ).appendTo( this.liveRegion );
267
279
  }
268
280
  },
269
281
  menuselect: function( event, ui ) {
270
282
  var item = ui.item.data( "ui-autocomplete-item" ),
271
283
  previous = this.previous;
272
284
 
273
- // only trigger when focus was lost (click on menu)
274
- if ( this.element[0] !== this.document[0].activeElement ) {
275
- this.element.focus();
285
+ // Only trigger when focus was lost (click on menu)
286
+ if ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {
287
+ this.element.trigger( "focus" );
276
288
  this.previous = previous;
289
+
277
290
  // #6109 - IE triggers two focus events and the second
278
291
  // is asynchronous, so we need to reset the previous
279
292
  // term synchronously and asynchronously :-(
280
- this._delay(function() {
293
+ this._delay( function() {
281
294
  this.previous = previous;
282
295
  this.selectedItem = item;
283
- });
296
+ } );
284
297
  }
285
298
 
286
299
  if ( false !== this._trigger( "select", event, { item: item } ) ) {
287
300
  this._value( item.value );
288
301
  }
302
+
289
303
  // reset the term after the select event
290
304
  // this allows custom select handling to work properly
291
305
  this.term = this._value();
@@ -293,30 +307,30 @@ $.widget( "ui.autocomplete", {
293
307
  this.close( event );
294
308
  this.selectedItem = item;
295
309
  }
296
- });
310
+ } );
297
311
 
298
- this.liveRegion = $( "<span>", {
299
- role: "status",
300
- "aria-live": "polite"
301
- })
302
- .addClass( "ui-helper-hidden-accessible" )
303
- .insertBefore( this.element );
312
+ this.liveRegion = $( "<div>", {
313
+ role: "status",
314
+ "aria-live": "assertive",
315
+ "aria-relevant": "additions"
316
+ } )
317
+ .appendTo( this.document[ 0 ].body );
304
318
 
305
- // turning off autocomplete prevents the browser from remembering the
319
+ this._addClass( this.liveRegion, null, "ui-helper-hidden-accessible" );
320
+
321
+ // Turning off autocomplete prevents the browser from remembering the
306
322
  // value when navigating through history, so we re-enable autocomplete
307
323
  // if the page is unloaded before the widget is destroyed. #7790
308
324
  this._on( this.window, {
309
325
  beforeunload: function() {
310
326
  this.element.removeAttr( "autocomplete" );
311
327
  }
312
- });
328
+ } );
313
329
  },
314
330
 
315
331
  _destroy: function() {
316
332
  clearTimeout( this.searching );
317
- this.element
318
- .removeClass( "ui-autocomplete-input" )
319
- .removeAttr( "autocomplete" );
333
+ this.element.removeAttr( "autocomplete" );
320
334
  this.menu.element.remove();
321
335
  this.liveRegion.remove();
322
336
  },
@@ -334,6 +348,20 @@ $.widget( "ui.autocomplete", {
334
348
  }
335
349
  },
336
350
 
351
+ _isEventTargetInWidget: function( event ) {
352
+ var menuElement = this.menu.element[ 0 ];
353
+
354
+ return event.target === this.element[ 0 ] ||
355
+ event.target === menuElement ||
356
+ $.contains( menuElement, event.target );
357
+ },
358
+
359
+ _closeOnClickOutside: function( event ) {
360
+ if ( !this._isEventTargetInWidget( event ) ) {
361
+ this.close();
362
+ }
363
+ },
364
+
337
365
  _appendTo: function() {
338
366
  var element = this.options.appendTo;
339
367
 
@@ -343,12 +371,12 @@ $.widget( "ui.autocomplete", {
343
371
  this.document.find( element ).eq( 0 );
344
372
  }
345
373
 
346
- if ( !element ) {
347
- element = this.element.closest( ".ui-front" );
374
+ if ( !element || !element[ 0 ] ) {
375
+ element = this.element.closest( ".ui-front, dialog" );
348
376
  }
349
377
 
350
378
  if ( !element.length ) {
351
- element = this.document[0].body;
379
+ element = this.document[ 0 ].body;
352
380
  }
353
381
 
354
382
  return element;
@@ -357,7 +385,7 @@ $.widget( "ui.autocomplete", {
357
385
  _initSource: function() {
358
386
  var array, url,
359
387
  that = this;
360
- if ( $.isArray(this.options.source) ) {
388
+ if ( Array.isArray( this.options.source ) ) {
361
389
  array = this.options.source;
362
390
  this.source = function( request, response ) {
363
391
  response( $.ui.autocomplete.filter( array, request.term ) );
@@ -368,7 +396,7 @@ $.widget( "ui.autocomplete", {
368
396
  if ( that.xhr ) {
369
397
  that.xhr.abort();
370
398
  }
371
- that.xhr = $.ajax({
399
+ that.xhr = $.ajax( {
372
400
  url: url,
373
401
  data: request,
374
402
  dataType: "json",
@@ -378,7 +406,7 @@ $.widget( "ui.autocomplete", {
378
406
  error: function() {
379
407
  response( [] );
380
408
  }
381
- });
409
+ } );
382
410
  };
383
411
  } else {
384
412
  this.source = this.options.source;
@@ -387,9 +415,14 @@ $.widget( "ui.autocomplete", {
387
415
 
388
416
  _searchTimeout: function( event ) {
389
417
  clearTimeout( this.searching );
390
- this.searching = this._delay(function() {
391
- // only search if the value has changed
392
- if ( this.term !== this._value() ) {
418
+ this.searching = this._delay( function() {
419
+
420
+ // Search if the value has changed, or if the user retypes the same value (see #7434)
421
+ var equalValues = this.term === this._value(),
422
+ menuVisible = this.menu.element.is( ":visible" ),
423
+ modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
424
+
425
+ if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
393
426
  this.selectedItem = null;
394
427
  this.search( null, event );
395
428
  }
@@ -399,7 +432,7 @@ $.widget( "ui.autocomplete", {
399
432
  search: function( value, event ) {
400
433
  value = value != null ? value : this._value();
401
434
 
402
- // always save the actual value, not the one passed as an argument
435
+ // Always save the actual value, not the one passed as an argument
403
436
  this.term = this._value();
404
437
 
405
438
  if ( value.length < this.options.minLength ) {
@@ -415,7 +448,7 @@ $.widget( "ui.autocomplete", {
415
448
 
416
449
  _search: function( value ) {
417
450
  this.pending++;
418
- this.element.addClass( "ui-autocomplete-loading" );
451
+ this._addClass( "ui-autocomplete-loading" );
419
452
  this.cancelSearch = false;
420
453
 
421
454
  this.source( { term: value }, this._response() );
@@ -424,16 +457,16 @@ $.widget( "ui.autocomplete", {
424
457
  _response: function() {
425
458
  var index = ++this.requestIndex;
426
459
 
427
- return $.proxy(function( content ) {
460
+ return function( content ) {
428
461
  if ( index === this.requestIndex ) {
429
462
  this.__response( content );
430
463
  }
431
464
 
432
465
  this.pending--;
433
466
  if ( !this.pending ) {
434
- this.element.removeClass( "ui-autocomplete-loading" );
467
+ this._removeClass( "ui-autocomplete-loading" );
435
468
  }
436
- }, this );
469
+ }.bind( this );
437
470
  },
438
471
 
439
472
  __response: function( content ) {
@@ -445,6 +478,7 @@ $.widget( "ui.autocomplete", {
445
478
  this._suggest( content );
446
479
  this._trigger( "open" );
447
480
  } else {
481
+
448
482
  // use ._close() instead of .close() so we don't cancel future searches
449
483
  this._close();
450
484
  }
@@ -456,6 +490,10 @@ $.widget( "ui.autocomplete", {
456
490
  },
457
491
 
458
492
  _close: function( event ) {
493
+
494
+ // Remove the handler that closes the menu on outside clicks
495
+ this._off( this.document, "mousedown" );
496
+
459
497
  if ( this.menu.element.is( ":visible" ) ) {
460
498
  this.menu.element.hide();
461
499
  this.menu.blur();
@@ -471,8 +509,9 @@ $.widget( "ui.autocomplete", {
471
509
  },
472
510
 
473
511
  _normalize: function( items ) {
512
+
474
513
  // assume all items have the right format when the first item is complete
475
- if ( items.length && items[0].label && items[0].value ) {
514
+ if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
476
515
  return items;
477
516
  }
478
517
  return $.map( items, function( item ) {
@@ -482,11 +521,11 @@ $.widget( "ui.autocomplete", {
482
521
  value: item
483
522
  };
484
523
  }
485
- return $.extend({
524
+ return $.extend( {}, item, {
486
525
  label: item.label || item.value,
487
526
  value: item.value || item.label
488
- }, item );
489
- });
527
+ } );
528
+ } );
490
529
  },
491
530
 
492
531
  _suggest: function( items ) {
@@ -495,21 +534,27 @@ $.widget( "ui.autocomplete", {
495
534
  this.isNewMenu = true;
496
535
  this.menu.refresh();
497
536
 
498
- // size and position menu
537
+ // Size and position menu
499
538
  ul.show();
500
539
  this._resizeMenu();
501
- ul.position( $.extend({
540
+ ul.position( $.extend( {
502
541
  of: this.element
503
- }, this.options.position ));
542
+ }, this.options.position ) );
504
543
 
505
544
  if ( this.options.autoFocus ) {
506
545
  this.menu.next();
507
546
  }
547
+
548
+ // Listen for interactions outside of the widget (#6642)
549
+ this._on( this.document, {
550
+ mousedown: "_closeOnClickOutside"
551
+ } );
508
552
  },
509
553
 
510
554
  _resizeMenu: function() {
511
555
  var ul = this.menu.element;
512
556
  ul.outerWidth( Math.max(
557
+
513
558
  // Firefox wraps long text (possibly a rounding bug)
514
559
  // so we add 1px to avoid the wrapping (#7513)
515
560
  ul.width( "" ).outerWidth() + 1,
@@ -521,7 +566,7 @@ $.widget( "ui.autocomplete", {
521
566
  var that = this;
522
567
  $.each( items, function( index, item ) {
523
568
  that._renderItemData( ul, item );
524
- });
569
+ } );
525
570
  },
526
571
 
527
572
  _renderItemData: function( ul, item ) {
@@ -530,7 +575,7 @@ $.widget( "ui.autocomplete", {
530
575
 
531
576
  _renderItem: function( ul, item ) {
532
577
  return $( "<li>" )
533
- .append( $( "<a>" ).text( item.label ) )
578
+ .append( $( "<div>" ).text( item.label ) )
534
579
  .appendTo( ul );
535
580
  },
536
581
 
@@ -541,7 +586,11 @@ $.widget( "ui.autocomplete", {
541
586
  }
542
587
  if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
543
588
  this.menu.isLastItem() && /^next/.test( direction ) ) {
544
- this._value( this.term );
589
+
590
+ if ( !this.isMultiLine ) {
591
+ this._value( this.term );
592
+ }
593
+
545
594
  this.menu.blur();
546
595
  return;
547
596
  }
@@ -560,26 +609,43 @@ $.widget( "ui.autocomplete", {
560
609
  if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
561
610
  this._move( keyEvent, event );
562
611
 
563
- // prevents moving cursor to beginning/end of the text field in some browsers
612
+ // Prevents moving cursor to beginning/end of the text field in some browsers
564
613
  event.preventDefault();
565
614
  }
615
+ },
616
+
617
+ // Support: Chrome <=50
618
+ // We should be able to just use this.element.prop( "isContentEditable" )
619
+ // but hidden elements always report false in Chrome.
620
+ // https://code.google.com/p/chromium/issues/detail?id=313082
621
+ _isContentEditable: function( element ) {
622
+ if ( !element.length ) {
623
+ return false;
624
+ }
625
+
626
+ var editable = element.prop( "contentEditable" );
627
+
628
+ if ( editable === "inherit" ) {
629
+ return this._isContentEditable( element.parent() );
630
+ }
631
+
632
+ return editable === "true";
566
633
  }
567
- });
634
+ } );
568
635
 
569
636
  $.extend( $.ui.autocomplete, {
570
637
  escapeRegex: function( value ) {
571
- return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
638
+ return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
572
639
  },
573
- filter: function(array, term) {
574
- var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
575
- return $.grep( array, function(value) {
640
+ filter: function( array, term ) {
641
+ var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
642
+ return $.grep( array, function( value ) {
576
643
  return matcher.test( value.label || value.value || value );
577
- });
644
+ } );
578
645
  }
579
- });
580
-
646
+ } );
581
647
 
582
- // live region extension, adding a `messages` option
648
+ // Live region extension, adding a `messages` option
583
649
  // NOTE: This is an experimental API. We are still investigating
584
650
  // a full solution for string manipulation and internationalization.
585
651
  $.widget( "ui.autocomplete", $.ui.autocomplete, {
@@ -604,8 +670,11 @@ $.widget( "ui.autocomplete", $.ui.autocomplete, {
604
670
  } else {
605
671
  message = this.options.messages.noResults;
606
672
  }
607
- this.liveRegion.text( message );
673
+ this.liveRegion.children().hide();
674
+ $( "<div>" ).text( message ).appendTo( this.liveRegion );
608
675
  }
609
- });
676
+ } );
677
+
678
+ return $.ui.autocomplete;
610
679
 
611
- }( jQuery ));
680
+ } );