jquery-ui-rails 4.2.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

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