jquery-ui-rails 4.2.1 → 5.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 (217) hide show
  1. data/History.md +6 -0
  2. data/README.md +69 -73
  3. data/Rakefile +28 -24
  4. data/VERSIONS.md +1 -0
  5. data/app/assets/javascripts/jquery-ui.js +37 -0
  6. data/app/assets/javascripts/{jquery.ui.accordion.js → jquery-ui/accordion.js} +62 -57
  7. data/app/assets/javascripts/{jquery.ui.autocomplete.js → jquery-ui/autocomplete.js} +70 -50
  8. data/app/assets/javascripts/{jquery.ui.button.js → jquery-ui/button.js} +41 -25
  9. data/app/assets/javascripts/{jquery.ui.core.js → jquery-ui/core.js} +106 -123
  10. data/app/assets/javascripts/jquery-ui/datepicker-af.js +37 -0
  11. data/app/assets/javascripts/jquery-ui/datepicker-ar-DZ.js +37 -0
  12. data/app/assets/javascripts/jquery-ui/datepicker-ar.js +37 -0
  13. data/app/assets/javascripts/jquery-ui/datepicker-az.js +37 -0
  14. data/app/assets/javascripts/jquery-ui/datepicker-be.js +37 -0
  15. data/app/assets/javascripts/jquery-ui/datepicker-bg.js +38 -0
  16. data/app/assets/javascripts/jquery-ui/datepicker-bs.js +37 -0
  17. data/app/assets/javascripts/jquery-ui/datepicker-ca.js +37 -0
  18. data/app/assets/javascripts/jquery-ui/datepicker-cs.js +37 -0
  19. data/app/assets/javascripts/jquery-ui/datepicker-cy-GB.js +37 -0
  20. data/app/assets/javascripts/jquery-ui/datepicker-da.js +37 -0
  21. data/app/assets/javascripts/jquery-ui/datepicker-de.js +37 -0
  22. data/app/assets/javascripts/jquery-ui/datepicker-el.js +37 -0
  23. data/app/assets/javascripts/jquery-ui/datepicker-en-AU.js +37 -0
  24. data/app/assets/javascripts/jquery-ui/datepicker-en-GB.js +37 -0
  25. data/app/assets/javascripts/jquery-ui/datepicker-en-NZ.js +37 -0
  26. data/app/assets/javascripts/jquery-ui/datepicker-eo.js +37 -0
  27. data/app/assets/javascripts/jquery-ui/datepicker-es.js +37 -0
  28. data/app/assets/javascripts/jquery-ui/datepicker-et.js +37 -0
  29. data/app/assets/javascripts/jquery-ui/datepicker-eu.js +36 -0
  30. data/app/assets/javascripts/jquery-ui/datepicker-fa.js +73 -0
  31. data/app/assets/javascripts/jquery-ui/datepicker-fi.js +37 -0
  32. data/app/assets/javascripts/jquery-ui/datepicker-fo.js +37 -0
  33. data/app/assets/javascripts/jquery-ui/datepicker-fr-CA.js +37 -0
  34. data/app/assets/javascripts/jquery-ui/datepicker-fr-CH.js +37 -0
  35. data/app/assets/javascripts/jquery-ui/datepicker-fr.js +39 -0
  36. data/app/assets/javascripts/jquery-ui/datepicker-gl.js +37 -0
  37. data/app/assets/javascripts/jquery-ui/datepicker-he.js +37 -0
  38. data/app/assets/javascripts/jquery-ui/datepicker-hi.js +37 -0
  39. data/app/assets/javascripts/jquery-ui/datepicker-hr.js +37 -0
  40. data/app/assets/javascripts/jquery-ui/datepicker-hu.js +36 -0
  41. data/app/assets/javascripts/jquery-ui/datepicker-hy.js +37 -0
  42. data/app/assets/javascripts/jquery-ui/datepicker-id.js +37 -0
  43. data/app/assets/javascripts/jquery-ui/datepicker-is.js +37 -0
  44. data/app/assets/javascripts/jquery-ui/datepicker-it-CH.js +37 -0
  45. data/app/assets/javascripts/jquery-ui/datepicker-it.js +37 -0
  46. data/app/assets/javascripts/jquery-ui/datepicker-ja.js +37 -0
  47. data/app/assets/javascripts/jquery-ui/datepicker-ka.js +35 -0
  48. data/app/assets/javascripts/jquery-ui/datepicker-kk.js +37 -0
  49. data/app/assets/javascripts/jquery-ui/datepicker-km.js +37 -0
  50. data/app/assets/javascripts/jquery-ui/datepicker-ko.js +37 -0
  51. data/app/assets/javascripts/jquery-ui/datepicker-ky.js +38 -0
  52. data/app/assets/javascripts/jquery-ui/datepicker-lb.js +37 -0
  53. data/app/assets/javascripts/jquery-ui/datepicker-lt.js +37 -0
  54. data/app/assets/javascripts/jquery-ui/datepicker-lv.js +37 -0
  55. data/app/assets/javascripts/jquery-ui/datepicker-mk.js +37 -0
  56. data/app/assets/javascripts/jquery-ui/datepicker-ml.js +37 -0
  57. data/app/assets/javascripts/jquery-ui/datepicker-ms.js +37 -0
  58. data/app/assets/javascripts/jquery-ui/datepicker-nb.js +36 -0
  59. data/app/assets/javascripts/jquery-ui/datepicker-nl-BE.js +37 -0
  60. data/app/assets/javascripts/jquery-ui/datepicker-nl.js +37 -0
  61. data/app/assets/javascripts/jquery-ui/datepicker-nn.js +36 -0
  62. data/app/assets/javascripts/jquery-ui/datepicker-no.js +37 -0
  63. data/app/assets/javascripts/jquery-ui/datepicker-pl.js +37 -0
  64. data/app/assets/javascripts/jquery-ui/datepicker-pt-BR.js +37 -0
  65. data/app/assets/javascripts/jquery-ui/datepicker-pt.js +36 -0
  66. data/app/assets/javascripts/jquery-ui/datepicker-rm.js +35 -0
  67. data/app/assets/javascripts/jquery-ui/datepicker-ro.js +40 -0
  68. data/app/assets/javascripts/jquery-ui/datepicker-ru.js +37 -0
  69. data/app/assets/javascripts/jquery-ui/datepicker-sk.js +37 -0
  70. data/app/assets/javascripts/jquery-ui/datepicker-sl.js +38 -0
  71. data/app/assets/javascripts/jquery-ui/datepicker-sq.js +37 -0
  72. data/app/assets/javascripts/jquery-ui/datepicker-sr-SR.js +37 -0
  73. data/app/assets/javascripts/jquery-ui/datepicker-sr.js +37 -0
  74. data/app/assets/javascripts/jquery-ui/datepicker-sv.js +37 -0
  75. data/app/assets/javascripts/jquery-ui/datepicker-ta.js +37 -0
  76. data/app/assets/javascripts/jquery-ui/datepicker-th.js +37 -0
  77. data/app/assets/javascripts/jquery-ui/datepicker-tj.js +37 -0
  78. data/app/assets/javascripts/jquery-ui/datepicker-tr.js +37 -0
  79. data/app/assets/javascripts/jquery-ui/datepicker-uk.js +38 -0
  80. data/app/assets/javascripts/jquery-ui/datepicker-vi.js +37 -0
  81. data/app/assets/javascripts/jquery-ui/datepicker-zh-CN.js +37 -0
  82. data/app/assets/javascripts/jquery-ui/datepicker-zh-HK.js +37 -0
  83. data/app/assets/javascripts/jquery-ui/datepicker-zh-TW.js +37 -0
  84. data/app/assets/javascripts/{jquery.ui.datepicker.js → jquery-ui/datepicker.js} +72 -37
  85. data/app/assets/javascripts/{jquery.ui.dialog.js → jquery-ui/dialog.js} +215 -180
  86. data/app/assets/javascripts/{jquery.ui.draggable.js → jquery-ui/draggable.js} +219 -161
  87. data/app/assets/javascripts/jquery-ui/droppable.js +421 -0
  88. data/app/assets/javascripts/{jquery.ui.effect-blind.js → jquery-ui/effect-blind.js} +20 -12
  89. data/app/assets/javascripts/{jquery.ui.effect-bounce.js → jquery-ui/effect-bounce.js} +18 -8
  90. data/app/assets/javascripts/{jquery.ui.effect-clip.js → jquery-ui/effect-clip.js} +18 -8
  91. data/app/assets/javascripts/{jquery.ui.effect-drop.js → jquery-ui/effect-drop.js} +18 -8
  92. data/app/assets/javascripts/{jquery.ui.effect-explode.js → jquery-ui/effect-explode.js} +20 -10
  93. data/app/assets/javascripts/{jquery.ui.effect-fade.js → jquery-ui/effect-fade.js} +18 -8
  94. data/app/assets/javascripts/{jquery.ui.effect-fold.js → jquery-ui/effect-fold.js} +18 -8
  95. data/app/assets/javascripts/{jquery.ui.effect-highlight.js → jquery-ui/effect-highlight.js} +18 -8
  96. data/app/assets/javascripts/jquery-ui/effect-puff.js +63 -0
  97. data/app/assets/javascripts/{jquery.ui.effect-pulsate.js → jquery-ui/effect-pulsate.js} +18 -8
  98. data/app/assets/javascripts/jquery-ui/effect-scale.js +92 -0
  99. data/app/assets/javascripts/{jquery.ui.effect-shake.js → jquery-ui/effect-shake.js} +19 -9
  100. data/app/assets/javascripts/{jquery.ui.effect-scale.js → jquery-ui/effect-size.js} +19 -104
  101. data/app/assets/javascripts/{jquery.ui.effect-slide.js → jquery-ui/effect-slide.js} +18 -8
  102. data/app/assets/javascripts/{jquery.ui.effect-transfer.js → jquery-ui/effect-transfer.js} +22 -12
  103. data/app/assets/javascripts/jquery-ui/effect.all.js +16 -0
  104. data/app/assets/javascripts/{jquery.ui.effect.js → jquery-ui/effect.js} +28 -20
  105. data/app/assets/javascripts/{jquery.ui.menu.js → jquery-ui/menu.js} +93 -80
  106. data/app/assets/javascripts/{jquery.ui.mouse.js → jquery-ui/mouse.js} +41 -23
  107. data/app/assets/javascripts/{jquery.ui.position.js → jquery-ui/position.js} +25 -12
  108. data/app/assets/javascripts/{jquery.ui.progressbar.js → jquery-ui/progressbar.js} +26 -12
  109. data/app/assets/javascripts/{jquery.ui.resizable.js → jquery-ui/resizable.js} +196 -146
  110. data/app/assets/javascripts/{jquery.ui.selectable.js → jquery-ui/selectable.js} +25 -15
  111. data/app/assets/javascripts/jquery-ui/selectmenu.js +560 -0
  112. data/app/assets/javascripts/{jquery.ui.slider.js → jquery-ui/slider.js} +43 -31
  113. data/app/assets/javascripts/{jquery.ui.sortable.js → jquery-ui/sortable.js} +71 -50
  114. data/app/assets/javascripts/{jquery.ui.spinner.js → jquery-ui/spinner.js} +46 -29
  115. data/app/assets/javascripts/{jquery.ui.tabs.js → jquery-ui/tabs.js} +69 -52
  116. data/app/assets/javascripts/{jquery.ui.tooltip.js → jquery-ui/tooltip.js} +97 -55
  117. data/app/assets/javascripts/{jquery.ui.widget.js → jquery-ui/widget.js} +52 -30
  118. data/app/assets/stylesheets/jquery-ui.css +1 -0
  119. data/app/assets/stylesheets/{jquery.ui.accordion.css.erb → jquery-ui/accordion.css.erb} +5 -7
  120. data/app/assets/stylesheets/{jquery.ui.all.css.erb → jquery-ui/all.css.erb} +3 -3
  121. data/app/assets/stylesheets/{jquery.ui.autocomplete.css.erb → jquery-ui/autocomplete.css.erb} +4 -4
  122. data/app/assets/stylesheets/jquery-ui/base.css.erb +30 -0
  123. data/app/assets/stylesheets/{jquery.ui.button.css.erb → jquery-ui/button.css.erb} +3 -3
  124. data/app/assets/stylesheets/{jquery.ui.core.css.erb → jquery-ui/core.css.erb} +4 -1
  125. data/app/assets/stylesheets/{jquery.ui.datepicker.css.erb → jquery-ui/datepicker.css.erb} +3 -3
  126. data/app/assets/stylesheets/{jquery.ui.dialog.css.erb → jquery-ui/dialog.css.erb} +6 -5
  127. data/app/assets/stylesheets/jquery-ui/draggable.css.erb +16 -0
  128. data/app/assets/stylesheets/{jquery.ui.menu.css.erb → jquery-ui/menu.css.erb} +18 -34
  129. data/app/assets/stylesheets/{jquery.ui.progressbar.css.erb → jquery-ui/progressbar.css.erb} +3 -3
  130. data/app/assets/stylesheets/{jquery.ui.resizable.css.erb → jquery-ui/resizable.css.erb} +5 -3
  131. data/app/assets/stylesheets/{jquery.ui.selectable.css.erb → jquery-ui/selectable.css.erb} +7 -3
  132. data/app/assets/stylesheets/jquery-ui/selectmenu.css.erb +64 -0
  133. data/app/assets/stylesheets/{jquery.ui.slider.css.erb → jquery-ui/slider.css.erb} +5 -3
  134. data/app/assets/stylesheets/jquery-ui/sortable.css.erb +16 -0
  135. data/app/assets/stylesheets/{jquery.ui.spinner.css.erb → jquery-ui/spinner.css.erb} +4 -4
  136. data/app/assets/stylesheets/{jquery.ui.tabs.css.erb → jquery-ui/tabs.css.erb} +3 -3
  137. data/app/assets/stylesheets/{jquery.ui.theme.css.erb → jquery-ui/theme.css.erb} +1 -4
  138. data/app/assets/stylesheets/{jquery.ui.tooltip.css.erb → jquery-ui/tooltip.css.erb} +3 -3
  139. data/lib/jquery/ui/rails/version.rb +2 -2
  140. metadata +137 -129
  141. data/app/assets/javascripts/jquery.ui.all.js +0 -34
  142. data/app/assets/javascripts/jquery.ui.datepicker-af.js +0 -23
  143. data/app/assets/javascripts/jquery.ui.datepicker-ar-DZ.js +0 -23
  144. data/app/assets/javascripts/jquery.ui.datepicker-ar.js +0 -23
  145. data/app/assets/javascripts/jquery.ui.datepicker-az.js +0 -23
  146. data/app/assets/javascripts/jquery.ui.datepicker-be.js +0 -23
  147. data/app/assets/javascripts/jquery.ui.datepicker-bg.js +0 -24
  148. data/app/assets/javascripts/jquery.ui.datepicker-bs.js +0 -23
  149. data/app/assets/javascripts/jquery.ui.datepicker-ca.js +0 -23
  150. data/app/assets/javascripts/jquery.ui.datepicker-cs.js +0 -23
  151. data/app/assets/javascripts/jquery.ui.datepicker-cy-GB.js +0 -23
  152. data/app/assets/javascripts/jquery.ui.datepicker-da.js +0 -23
  153. data/app/assets/javascripts/jquery.ui.datepicker-de.js +0 -23
  154. data/app/assets/javascripts/jquery.ui.datepicker-el.js +0 -23
  155. data/app/assets/javascripts/jquery.ui.datepicker-en-AU.js +0 -23
  156. data/app/assets/javascripts/jquery.ui.datepicker-en-GB.js +0 -23
  157. data/app/assets/javascripts/jquery.ui.datepicker-en-NZ.js +0 -23
  158. data/app/assets/javascripts/jquery.ui.datepicker-eo.js +0 -23
  159. data/app/assets/javascripts/jquery.ui.datepicker-es.js +0 -23
  160. data/app/assets/javascripts/jquery.ui.datepicker-et.js +0 -23
  161. data/app/assets/javascripts/jquery.ui.datepicker-eu.js +0 -23
  162. data/app/assets/javascripts/jquery.ui.datepicker-fa.js +0 -59
  163. data/app/assets/javascripts/jquery.ui.datepicker-fi.js +0 -23
  164. data/app/assets/javascripts/jquery.ui.datepicker-fo.js +0 -23
  165. data/app/assets/javascripts/jquery.ui.datepicker-fr-CA.js +0 -23
  166. data/app/assets/javascripts/jquery.ui.datepicker-fr-CH.js +0 -23
  167. data/app/assets/javascripts/jquery.ui.datepicker-fr.js +0 -25
  168. data/app/assets/javascripts/jquery.ui.datepicker-gl.js +0 -23
  169. data/app/assets/javascripts/jquery.ui.datepicker-he.js +0 -23
  170. data/app/assets/javascripts/jquery.ui.datepicker-hi.js +0 -23
  171. data/app/assets/javascripts/jquery.ui.datepicker-hr.js +0 -23
  172. data/app/assets/javascripts/jquery.ui.datepicker-hu.js +0 -23
  173. data/app/assets/javascripts/jquery.ui.datepicker-hy.js +0 -23
  174. data/app/assets/javascripts/jquery.ui.datepicker-id.js +0 -23
  175. data/app/assets/javascripts/jquery.ui.datepicker-is.js +0 -23
  176. data/app/assets/javascripts/jquery.ui.datepicker-it.js +0 -23
  177. data/app/assets/javascripts/jquery.ui.datepicker-ja.js +0 -23
  178. data/app/assets/javascripts/jquery.ui.datepicker-ka.js +0 -21
  179. data/app/assets/javascripts/jquery.ui.datepicker-kk.js +0 -23
  180. data/app/assets/javascripts/jquery.ui.datepicker-km.js +0 -23
  181. data/app/assets/javascripts/jquery.ui.datepicker-ko.js +0 -23
  182. data/app/assets/javascripts/jquery.ui.datepicker-ky.js +0 -24
  183. data/app/assets/javascripts/jquery.ui.datepicker-lb.js +0 -23
  184. data/app/assets/javascripts/jquery.ui.datepicker-lt.js +0 -23
  185. data/app/assets/javascripts/jquery.ui.datepicker-lv.js +0 -23
  186. data/app/assets/javascripts/jquery.ui.datepicker-mk.js +0 -23
  187. data/app/assets/javascripts/jquery.ui.datepicker-ml.js +0 -23
  188. data/app/assets/javascripts/jquery.ui.datepicker-ms.js +0 -23
  189. data/app/assets/javascripts/jquery.ui.datepicker-nb.js +0 -22
  190. data/app/assets/javascripts/jquery.ui.datepicker-nl-BE.js +0 -23
  191. data/app/assets/javascripts/jquery.ui.datepicker-nl.js +0 -23
  192. data/app/assets/javascripts/jquery.ui.datepicker-nn.js +0 -22
  193. data/app/assets/javascripts/jquery.ui.datepicker-no.js +0 -23
  194. data/app/assets/javascripts/jquery.ui.datepicker-pl.js +0 -23
  195. data/app/assets/javascripts/jquery.ui.datepicker-pt-BR.js +0 -23
  196. data/app/assets/javascripts/jquery.ui.datepicker-pt.js +0 -22
  197. data/app/assets/javascripts/jquery.ui.datepicker-rm.js +0 -21
  198. data/app/assets/javascripts/jquery.ui.datepicker-ro.js +0 -26
  199. data/app/assets/javascripts/jquery.ui.datepicker-ru.js +0 -23
  200. data/app/assets/javascripts/jquery.ui.datepicker-sk.js +0 -23
  201. data/app/assets/javascripts/jquery.ui.datepicker-sl.js +0 -24
  202. data/app/assets/javascripts/jquery.ui.datepicker-sq.js +0 -23
  203. data/app/assets/javascripts/jquery.ui.datepicker-sr-SR.js +0 -23
  204. data/app/assets/javascripts/jquery.ui.datepicker-sr.js +0 -23
  205. data/app/assets/javascripts/jquery.ui.datepicker-sv.js +0 -23
  206. data/app/assets/javascripts/jquery.ui.datepicker-ta.js +0 -23
  207. data/app/assets/javascripts/jquery.ui.datepicker-th.js +0 -23
  208. data/app/assets/javascripts/jquery.ui.datepicker-tj.js +0 -23
  209. data/app/assets/javascripts/jquery.ui.datepicker-tr.js +0 -23
  210. data/app/assets/javascripts/jquery.ui.datepicker-uk.js +0 -24
  211. data/app/assets/javascripts/jquery.ui.datepicker-vi.js +0 -23
  212. data/app/assets/javascripts/jquery.ui.datepicker-zh-CN.js +0 -23
  213. data/app/assets/javascripts/jquery.ui.datepicker-zh-HK.js +0 -23
  214. data/app/assets/javascripts/jquery.ui.datepicker-zh-TW.js +0 -23
  215. data/app/assets/javascripts/jquery.ui.droppable.js +0 -394
  216. data/app/assets/javascripts/jquery.ui.effect.all.js +0 -14
  217. data/app/assets/stylesheets/jquery.ui.base.css.erb +0 -27
@@ -1,8 +1,8 @@
1
- //= require jquery.ui.core
2
- //= require jquery.ui.widget
1
+ //= require jquery-ui/core
2
+ //= require jquery-ui/widget
3
3
 
4
4
  /*!
5
- * jQuery UI Tabs 1.10.4
5
+ * jQuery UI Tabs 1.11.0
6
6
  * http://jqueryui.com
7
7
  *
8
8
  * Copyright 2014 jQuery Foundation and other contributors
@@ -10,32 +10,25 @@
10
10
  * http://jquery.org/license
11
11
  *
12
12
  * http://api.jqueryui.com/tabs/
13
- *
14
- * Depends:
15
- * jquery.ui.core.js
16
- * jquery.ui.widget.js
17
13
  */
18
- (function( $, undefined ) {
19
-
20
- var tabId = 0,
21
- rhash = /#.*$/;
22
-
23
- function getNextTabId() {
24
- return ++tabId;
25
- }
26
-
27
- function isLocal( anchor ) {
28
- // support: IE7
29
- // IE7 doesn't normalize the href property when set via script (#9317)
30
- anchor = anchor.cloneNode( false );
31
-
32
- return anchor.hash.length > 1 &&
33
- decodeURIComponent( anchor.href.replace( rhash, "" ) ) ===
34
- decodeURIComponent( location.href.replace( rhash, "" ) );
35
- }
14
+ (function( factory ) {
15
+ if ( typeof define === "function" && define.amd ) {
16
+
17
+ // AMD. Register as an anonymous module.
18
+ define([
19
+ "jquery",
20
+ "./core",
21
+ "./widget"
22
+ ], factory );
23
+ } else {
24
+
25
+ // Browser globals
26
+ factory( jQuery );
27
+ }
28
+ }(function( $ ) {
36
29
 
37
- $.widget( "ui.tabs", {
38
- version: "1.10.4",
30
+ return $.widget( "ui.tabs", {
31
+ version: "1.11.0",
39
32
  delay: 300,
40
33
  options: {
41
34
  active: null,
@@ -52,6 +45,31 @@ $.widget( "ui.tabs", {
52
45
  load: null
53
46
  },
54
47
 
48
+ _isLocal: (function() {
49
+ var rhash = /#.*$/;
50
+
51
+ return function( anchor ) {
52
+ var anchorUrl, locationUrl;
53
+
54
+ // support: IE7
55
+ // IE7 doesn't normalize the href property when set via script (#9317)
56
+ anchor = anchor.cloneNode( false );
57
+
58
+ anchorUrl = anchor.href.replace( rhash, "" );
59
+ locationUrl = location.href.replace( rhash, "" );
60
+
61
+ // decoding may throw an error if the URL isn't UTF-8 (#9518)
62
+ try {
63
+ anchorUrl = decodeURIComponent( anchorUrl );
64
+ } catch ( error ) {}
65
+ try {
66
+ locationUrl = decodeURIComponent( locationUrl );
67
+ } catch ( error ) {}
68
+
69
+ return anchor.hash.length > 1 && anchorUrl === locationUrl;
70
+ };
71
+ })(),
72
+
55
73
  _create: function() {
56
74
  var that = this,
57
75
  options = this.options;
@@ -299,10 +317,6 @@ $.widget( "ui.tabs", {
299
317
  }
300
318
  },
301
319
 
302
- _tabId: function( tab ) {
303
- return tab.attr( "aria-controls" ) || "ui-tabs-" + getNextTabId();
304
- },
305
-
306
320
  _sanitizeSelector: function( hash ) {
307
321
  return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : "";
308
322
  },
@@ -349,12 +363,12 @@ $.widget( "ui.tabs", {
349
363
 
350
364
  this.tabs.not( this.active ).attr({
351
365
  "aria-selected": "false",
366
+ "aria-expanded": "false",
352
367
  tabIndex: -1
353
368
  });
354
369
  this.panels.not( this._getPanelForTab( this.active ) )
355
370
  .hide()
356
371
  .attr({
357
- "aria-expanded": "false",
358
372
  "aria-hidden": "true"
359
373
  });
360
374
 
@@ -366,12 +380,12 @@ $.widget( "ui.tabs", {
366
380
  .addClass( "ui-tabs-active ui-state-active" )
367
381
  .attr({
368
382
  "aria-selected": "true",
383
+ "aria-expanded": "true",
369
384
  tabIndex: 0
370
385
  });
371
386
  this._getPanelForTab( this.active )
372
387
  .show()
373
388
  .attr({
374
- "aria-expanded": "true",
375
389
  "aria-hidden": "false"
376
390
  });
377
391
  }
@@ -409,12 +423,15 @@ $.widget( "ui.tabs", {
409
423
  originalAriaControls = tab.attr( "aria-controls" );
410
424
 
411
425
  // inline tab
412
- if ( isLocal( anchor ) ) {
426
+ if ( that._isLocal( anchor ) ) {
413
427
  selector = anchor.hash;
428
+ panelId = selector.substring( 1 );
414
429
  panel = that.element.find( that._sanitizeSelector( selector ) );
415
430
  // remote tab
416
431
  } else {
417
- panelId = that._tabId( tab );
432
+ // If the tab doesn't already have aria-controls,
433
+ // generate an id by using a throw-away element
434
+ panelId = tab.attr( "aria-controls" ) || $( {} ).uniqueId()[ 0 ].id;
418
435
  selector = "#" + panelId;
419
436
  panel = that.element.find( selector );
420
437
  if ( !panel.length ) {
@@ -431,7 +448,7 @@ $.widget( "ui.tabs", {
431
448
  tab.data( "ui-tabs-aria-controls", originalAriaControls );
432
449
  }
433
450
  tab.attr({
434
- "aria-controls": selector.substring( 1 ),
451
+ "aria-controls": panelId,
435
452
  "aria-labelledby": anchorId
436
453
  });
437
454
  panel.attr( "aria-labelledby", anchorId );
@@ -480,11 +497,7 @@ $.widget( "ui.tabs", {
480
497
  },
481
498
 
482
499
  _setupEvents: function( event ) {
483
- var events = {
484
- click: function( event ) {
485
- event.preventDefault();
486
- }
487
- };
500
+ var events = {};
488
501
  if ( event ) {
489
502
  $.each( event.split(" "), function( index, eventName ) {
490
503
  events[ eventName ] = "_eventHandler";
@@ -492,6 +505,12 @@ $.widget( "ui.tabs", {
492
505
  }
493
506
 
494
507
  this._off( this.anchors.add( this.tabs ).add( this.panels ) );
508
+ // Always prevent the default action, even when disabled
509
+ this._on( true, this.anchors, {
510
+ click: function( event ) {
511
+ event.preventDefault();
512
+ }
513
+ });
495
514
  this._on( this.anchors, events );
496
515
  this._on( this.tabs, { keydown: "_tabKeydown" } );
497
516
  this._on( this.panels, { keydown: "_panelKeydown" } );
@@ -618,11 +637,11 @@ $.widget( "ui.tabs", {
618
637
  show();
619
638
  }
620
639
 
621
- toHide.attr({
622
- "aria-expanded": "false",
623
- "aria-hidden": "true"
640
+ toHide.attr( "aria-hidden", "true" );
641
+ eventData.oldTab.attr({
642
+ "aria-selected": "false",
643
+ "aria-expanded": "false"
624
644
  });
625
- eventData.oldTab.attr( "aria-selected", "false" );
626
645
  // If we're switching tabs, remove the old tab from the tab order.
627
646
  // If we're opening from collapsed state, remove the previous tab from the tab order.
628
647
  // If we're collapsing, then keep the collapsing tab in the tab order.
@@ -635,12 +654,10 @@ $.widget( "ui.tabs", {
635
654
  .attr( "tabIndex", -1 );
636
655
  }
637
656
 
638
- toShow.attr({
639
- "aria-expanded": "true",
640
- "aria-hidden": "false"
641
- });
657
+ toShow.attr( "aria-hidden", "false" );
642
658
  eventData.newTab.attr({
643
659
  "aria-selected": "true",
660
+ "aria-expanded": "true",
644
661
  tabIndex: 0
645
662
  });
646
663
  },
@@ -791,7 +808,7 @@ $.widget( "ui.tabs", {
791
808
  };
792
809
 
793
810
  // not remote
794
- if ( isLocal( anchor[ 0 ] ) ) {
811
+ if ( this._isLocal( anchor[ 0 ] ) ) {
795
812
  return;
796
813
  }
797
814
 
@@ -838,7 +855,7 @@ $.widget( "ui.tabs", {
838
855
  url: anchor.attr( "href" ),
839
856
  beforeSend: function( jqXHR, settings ) {
840
857
  return that._trigger( "beforeLoad", event,
841
- $.extend( { jqXHR : jqXHR, ajaxSettings: settings }, eventData ) );
858
+ $.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) );
842
859
  }
843
860
  };
844
861
  },
@@ -849,4 +866,4 @@ $.widget( "ui.tabs", {
849
866
  }
850
867
  });
851
868
 
852
- })( jQuery );
869
+ }));
@@ -1,9 +1,9 @@
1
- //= require jquery.ui.core
2
- //= require jquery.ui.widget
3
- //= require jquery.ui.position
1
+ //= require jquery-ui/core
2
+ //= require jquery-ui/widget
3
+ //= require jquery-ui/position
4
4
 
5
5
  /*!
6
- * jQuery UI Tooltip 1.10.4
6
+ * jQuery UI Tooltip 1.11.0
7
7
  * http://jqueryui.com
8
8
  *
9
9
  * Copyright 2014 jQuery Foundation and other contributors
@@ -11,43 +11,26 @@
11
11
  * http://jquery.org/license
12
12
  *
13
13
  * http://api.jqueryui.com/tooltip/
14
- *
15
- * Depends:
16
- * jquery.ui.core.js
17
- * jquery.ui.widget.js
18
- * jquery.ui.position.js
19
14
  */
20
- (function( $ ) {
21
-
22
- var increments = 0;
23
-
24
- function addDescribedBy( elem, id ) {
25
- var describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ );
26
- describedby.push( id );
27
- elem
28
- .data( "ui-tooltip-id", id )
29
- .attr( "aria-describedby", $.trim( describedby.join( " " ) ) );
30
- }
31
-
32
- function removeDescribedBy( elem ) {
33
- var id = elem.data( "ui-tooltip-id" ),
34
- describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ),
35
- index = $.inArray( id, describedby );
36
- if ( index !== -1 ) {
37
- describedby.splice( index, 1 );
38
- }
39
-
40
- elem.removeData( "ui-tooltip-id" );
41
- describedby = $.trim( describedby.join( " " ) );
42
- if ( describedby ) {
43
- elem.attr( "aria-describedby", describedby );
15
+ (function( factory ) {
16
+ if ( typeof define === "function" && define.amd ) {
17
+
18
+ // AMD. Register as an anonymous module.
19
+ define([
20
+ "jquery",
21
+ "./core",
22
+ "./widget",
23
+ "./position"
24
+ ], factory );
44
25
  } else {
45
- elem.removeAttr( "aria-describedby" );
26
+
27
+ // Browser globals
28
+ factory( jQuery );
46
29
  }
47
- }
30
+ }(function( $ ) {
48
31
 
49
- $.widget( "ui.tooltip", {
50
- version: "1.10.4",
32
+ return $.widget( "ui.tooltip", {
33
+ version: "1.11.0",
51
34
  options: {
52
35
  content: function() {
53
36
  // support: IE<9, Opera in jQuery <1.7
@@ -73,6 +56,32 @@ $.widget( "ui.tooltip", {
73
56
  open: null
74
57
  },
75
58
 
59
+ _addDescribedBy: function( elem, id ) {
60
+ var describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ );
61
+ describedby.push( id );
62
+ elem
63
+ .data( "ui-tooltip-id", id )
64
+ .attr( "aria-describedby", $.trim( describedby.join( " " ) ) );
65
+ },
66
+
67
+ _removeDescribedBy: function( elem ) {
68
+ var id = elem.data( "ui-tooltip-id" ),
69
+ describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ),
70
+ index = $.inArray( id, describedby );
71
+
72
+ if ( index !== -1 ) {
73
+ describedby.splice( index, 1 );
74
+ }
75
+
76
+ elem.removeData( "ui-tooltip-id" );
77
+ describedby = $.trim( describedby.join( " " ) );
78
+ if ( describedby ) {
79
+ elem.attr( "aria-describedby", describedby );
80
+ } else {
81
+ elem.removeAttr( "aria-describedby" );
82
+ }
83
+ },
84
+
76
85
  _create: function() {
77
86
  this._on({
78
87
  mouseover: "open",
@@ -87,6 +96,16 @@ $.widget( "ui.tooltip", {
87
96
  if ( this.options.disabled ) {
88
97
  this._disable();
89
98
  }
99
+
100
+ // Append the aria-live region so tooltips announce correctly
101
+ this.liveRegion = $( "<div>" )
102
+ .attr({
103
+ role: "log",
104
+ "aria-live": "assertive",
105
+ "aria-relevant": "additions"
106
+ })
107
+ .addClass( "ui-helper-hidden-accessible" )
108
+ .appendTo( this.document[ 0 ].body );
90
109
  },
91
110
 
92
111
  _setOption: function( key, value ) {
@@ -124,7 +143,7 @@ $.widget( "ui.tooltip", {
124
143
  if ( element.is( "[title]" ) ) {
125
144
  element
126
145
  .data( "ui-tooltip-title", element.attr( "title" ) )
127
- .attr( "title", "" );
146
+ .removeAttr( "title" );
128
147
  }
129
148
  });
130
149
  },
@@ -216,7 +235,7 @@ $.widget( "ui.tooltip", {
216
235
  },
217
236
 
218
237
  _open: function( event, target, content ) {
219
- var tooltip, events, delayedShow,
238
+ var tooltip, events, delayedShow, a11yContent,
220
239
  positionOption = $.extend( {}, this.options.position );
221
240
 
222
241
  if ( !content ) {
@@ -247,9 +266,21 @@ $.widget( "ui.tooltip", {
247
266
  }
248
267
 
249
268
  tooltip = this._tooltip( target );
250
- addDescribedBy( target, tooltip.attr( "id" ) );
269
+ this._addDescribedBy( target, tooltip.attr( "id" ) );
251
270
  tooltip.find( ".ui-tooltip-content" ).html( content );
252
271
 
272
+ // Support: Voiceover on OS X, JAWS on IE <= 9
273
+ // JAWS announces deletions even when aria-relevant="additions"
274
+ // Voiceover will sometimes re-read the entire log region's contents from the beginning
275
+ this.liveRegion.children().hide();
276
+ if ( content.clone ) {
277
+ a11yContent = content.clone();
278
+ a11yContent.removeAttr( "id" ).find( "[id]" ).removeAttr( "id" );
279
+ } else {
280
+ a11yContent = content;
281
+ }
282
+ $( "<div>" ).html( a11yContent ).appendTo( this.liveRegion );
283
+
253
284
  function position( event ) {
254
285
  positionOption.of = event;
255
286
  if ( tooltip.is( ":hidden" ) ) {
@@ -293,11 +324,17 @@ $.widget( "ui.tooltip", {
293
324
  fakeEvent.currentTarget = target[0];
294
325
  this.close( fakeEvent, true );
295
326
  }
296
- },
297
- remove: function() {
298
- this._removeTooltip( tooltip );
299
327
  }
300
328
  };
329
+
330
+ // Only bind remove handler for delegated targets. Non-delegated
331
+ // tooltips will handle this in destroy.
332
+ if ( target[ 0 ] !== this.element[ 0 ] ) {
333
+ events.remove = function() {
334
+ this._removeTooltip( tooltip );
335
+ };
336
+ }
337
+
301
338
  if ( !event || event.type === "mouseover" ) {
302
339
  events.mouseleave = "close";
303
340
  }
@@ -322,11 +359,12 @@ $.widget( "ui.tooltip", {
322
359
  clearInterval( this.delayedShow );
323
360
 
324
361
  // only set title if we had one before (see comment in _open())
325
- if ( target.data( "ui-tooltip-title" ) ) {
362
+ // If the title attribute has changed since open(), don't restore
363
+ if ( target.data( "ui-tooltip-title" ) && !target.attr( "title" ) ) {
326
364
  target.attr( "title", target.data( "ui-tooltip-title" ) );
327
365
  }
328
366
 
329
- removeDescribedBy( target );
367
+ this._removeDescribedBy( target );
330
368
 
331
369
  tooltip.stop( true );
332
370
  this._hide( tooltip, this.options.hide, function() {
@@ -335,8 +373,9 @@ $.widget( "ui.tooltip", {
335
373
 
336
374
  target.removeData( "ui-tooltip-open" );
337
375
  this._off( target, "mouseleave focusout keyup" );
376
+
338
377
  // Remove 'remove' binding only on delegated targets
339
- if ( target[0] !== this.element[0] ) {
378
+ if ( target[ 0 ] !== this.element[ 0 ] ) {
340
379
  this._off( target, "remove" );
341
380
  }
342
381
  this._off( this.document, "mousemove" );
@@ -354,17 +393,16 @@ $.widget( "ui.tooltip", {
354
393
  },
355
394
 
356
395
  _tooltip: function( element ) {
357
- var id = "ui-tooltip-" + increments++,
358
- tooltip = $( "<div>" )
359
- .attr({
360
- id: id,
361
- role: "tooltip"
362
- })
396
+ var tooltip = $( "<div>" )
397
+ .attr( "role", "tooltip" )
363
398
  .addClass( "ui-tooltip ui-widget ui-corner-all ui-widget-content " +
364
- ( this.options.tooltipClass || "" ) );
399
+ ( this.options.tooltipClass || "" ) ),
400
+ id = tooltip.uniqueId().attr( "id" );
401
+
365
402
  $( "<div>" )
366
403
  .addClass( "ui-tooltip-content" )
367
404
  .appendTo( tooltip );
405
+
368
406
  tooltip.appendTo( this.document[0].body );
369
407
  this.tooltips[ id ] = element;
370
408
  return tooltip;
@@ -396,11 +434,15 @@ $.widget( "ui.tooltip", {
396
434
 
397
435
  // Restore the title
398
436
  if ( element.data( "ui-tooltip-title" ) ) {
399
- element.attr( "title", element.data( "ui-tooltip-title" ) );
437
+ // If the title attribute has changed since open(), don't restore
438
+ if ( !element.attr( "title" ) ) {
439
+ element.attr( "title", element.data( "ui-tooltip-title" ) );
440
+ }
400
441
  element.removeData( "ui-tooltip-title" );
401
442
  }
402
443
  });
444
+ this.liveRegion.remove();
403
445
  }
404
446
  });
405
447
 
406
- }( jQuery ) );
448
+ }));