jquery-ui-rails 7.0.0 → 8.0.1

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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +1 -1
  3. data/History.md +8 -0
  4. data/VERSIONS.md +2 -0
  5. data/app/assets/javascripts/jquery-ui/data.js +10 -16
  6. data/app/assets/javascripts/jquery-ui/disable-selection.js +5 -5
  7. data/app/assets/javascripts/jquery-ui/effect.js +18 -41
  8. data/app/assets/javascripts/jquery-ui/effects/effect-blind.js +6 -6
  9. data/app/assets/javascripts/jquery-ui/effects/effect-bounce.js +6 -6
  10. data/app/assets/javascripts/jquery-ui/effects/effect-clip.js +6 -6
  11. data/app/assets/javascripts/jquery-ui/effects/effect-drop.js +6 -6
  12. data/app/assets/javascripts/jquery-ui/effects/effect-explode.js +6 -8
  13. data/app/assets/javascripts/jquery-ui/effects/effect-fade.js +6 -6
  14. data/app/assets/javascripts/jquery-ui/effects/effect-fold.js +6 -6
  15. data/app/assets/javascripts/jquery-ui/effects/effect-highlight.js +6 -6
  16. data/app/assets/javascripts/jquery-ui/effects/effect-puff.js +6 -6
  17. data/app/assets/javascripts/jquery-ui/effects/effect-pulsate.js +6 -6
  18. data/app/assets/javascripts/jquery-ui/effects/effect-scale.js +6 -6
  19. data/app/assets/javascripts/jquery-ui/effects/effect-shake.js +6 -6
  20. data/app/assets/javascripts/jquery-ui/effects/effect-size.js +6 -6
  21. data/app/assets/javascripts/jquery-ui/effects/effect-slide.js +6 -6
  22. data/app/assets/javascripts/jquery-ui/effects/effect-transfer.js +7 -7
  23. data/app/assets/javascripts/jquery-ui/focusable.js +7 -17
  24. data/app/assets/javascripts/jquery-ui/form-reset-mixin.js +6 -8
  25. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ar-DZ.js +2 -2
  26. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ar.js +2 -2
  27. data/app/assets/javascripts/jquery-ui/i18n/datepicker-az.js +2 -2
  28. data/app/assets/javascripts/jquery-ui/i18n/datepicker-be.js +2 -2
  29. data/app/assets/javascripts/jquery-ui/i18n/datepicker-bg.js +3 -3
  30. data/app/assets/javascripts/jquery-ui/i18n/datepicker-bs.js +2 -2
  31. data/app/assets/javascripts/jquery-ui/i18n/datepicker-cs.js +2 -2
  32. data/app/assets/javascripts/jquery-ui/i18n/datepicker-da.js +2 -2
  33. data/app/assets/javascripts/jquery-ui/i18n/datepicker-de-AT.js +2 -2
  34. data/app/assets/javascripts/jquery-ui/i18n/datepicker-de.js +2 -2
  35. data/app/assets/javascripts/jquery-ui/i18n/datepicker-el.js +1 -1
  36. data/app/assets/javascripts/jquery-ui/i18n/datepicker-eo.js +2 -2
  37. data/app/assets/javascripts/jquery-ui/i18n/datepicker-es.js +2 -2
  38. data/app/assets/javascripts/jquery-ui/i18n/datepicker-eu.js +2 -2
  39. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fa.js +2 -2
  40. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fi.js +2 -2
  41. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fo.js +2 -2
  42. data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CH.js +2 -2
  43. data/app/assets/javascripts/jquery-ui/i18n/datepicker-gl.js +2 -2
  44. data/app/assets/javascripts/jquery-ui/i18n/datepicker-he.js +2 -2
  45. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hr.js +2 -2
  46. data/app/assets/javascripts/jquery-ui/i18n/datepicker-hy.js +2 -2
  47. data/app/assets/javascripts/jquery-ui/i18n/datepicker-id.js +6 -5
  48. data/app/assets/javascripts/jquery-ui/i18n/datepicker-is.js +2 -2
  49. data/app/assets/javascripts/jquery-ui/i18n/datepicker-it-CH.js +2 -2
  50. data/app/assets/javascripts/jquery-ui/i18n/datepicker-it.js +2 -2
  51. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ja.js +2 -2
  52. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ka.js +2 -2
  53. data/app/assets/javascripts/jquery-ui/i18n/datepicker-kk.js +2 -2
  54. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ky.js +2 -2
  55. data/app/assets/javascripts/jquery-ui/i18n/datepicker-lt.js +2 -2
  56. data/app/assets/javascripts/jquery-ui/i18n/datepicker-mk.js +2 -2
  57. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ms.js +2 -2
  58. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nb.js +2 -2
  59. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nl-BE.js +2 -2
  60. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nl.js +3 -3
  61. data/app/assets/javascripts/jquery-ui/i18n/datepicker-nn.js +2 -2
  62. data/app/assets/javascripts/jquery-ui/i18n/datepicker-no.js +2 -2
  63. data/app/assets/javascripts/jquery-ui/i18n/datepicker-pl.js +2 -2
  64. data/app/assets/javascripts/jquery-ui/i18n/datepicker-pt-BR.js +2 -2
  65. data/app/assets/javascripts/jquery-ui/i18n/datepicker-rm.js +2 -2
  66. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ro.js +2 -2
  67. data/app/assets/javascripts/jquery-ui/i18n/datepicker-ru.js +2 -2
  68. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sk.js +2 -2
  69. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sl.js +2 -2
  70. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sq.js +2 -2
  71. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sr-SR.js +2 -2
  72. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sr.js +2 -2
  73. data/app/assets/javascripts/jquery-ui/i18n/datepicker-sv.js +2 -2
  74. data/app/assets/javascripts/jquery-ui/i18n/datepicker-th.js +2 -2
  75. data/app/assets/javascripts/jquery-ui/i18n/datepicker-tj.js +2 -2
  76. data/app/assets/javascripts/jquery-ui/i18n/datepicker-tr.js +2 -2
  77. data/app/assets/javascripts/jquery-ui/i18n/datepicker-uk.js +2 -2
  78. data/app/assets/javascripts/jquery-ui/i18n/datepicker-vi.js +2 -2
  79. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-CN.js +2 -2
  80. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-HK.js +2 -2
  81. data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-TW.js +2 -2
  82. data/app/assets/javascripts/jquery-ui/jquery-patch.js +8 -41
  83. data/app/assets/javascripts/jquery-ui/keycode.js +5 -5
  84. data/app/assets/javascripts/jquery-ui/labels.js +8 -9
  85. data/app/assets/javascripts/jquery-ui/position.js +7 -7
  86. data/app/assets/javascripts/jquery-ui/scroll-parent.js +5 -5
  87. data/app/assets/javascripts/jquery-ui/tabbable.js +5 -5
  88. data/app/assets/javascripts/jquery-ui/unique-id.js +5 -5
  89. data/app/assets/javascripts/jquery-ui/vendor/jquery-color/jquery.color.js +19 -50
  90. data/app/assets/javascripts/jquery-ui/version.js +1 -1
  91. data/app/assets/javascripts/jquery-ui/widget.js +17 -10
  92. data/app/assets/javascripts/jquery-ui/widgets/accordion.js +18 -20
  93. data/app/assets/javascripts/jquery-ui/widgets/autocomplete.js +21 -55
  94. data/app/assets/javascripts/jquery-ui/widgets/button.js +11 -11
  95. data/app/assets/javascripts/jquery-ui/widgets/checkboxradio.js +22 -17
  96. data/app/assets/javascripts/jquery-ui/widgets/controlgroup.js +7 -7
  97. data/app/assets/javascripts/jquery-ui/widgets/datepicker.js +17 -20
  98. data/app/assets/javascripts/jquery-ui/widgets/dialog.js +25 -36
  99. data/app/assets/javascripts/jquery-ui/widgets/draggable.js +10 -14
  100. data/app/assets/javascripts/jquery-ui/widgets/droppable.js +8 -8
  101. data/app/assets/javascripts/jquery-ui/widgets/menu.js +9 -11
  102. data/app/assets/javascripts/jquery-ui/widgets/mouse.js +20 -35
  103. data/app/assets/javascripts/jquery-ui/widgets/progressbar.js +7 -9
  104. data/app/assets/javascripts/jquery-ui/widgets/resizable.js +83 -27
  105. data/app/assets/javascripts/jquery-ui/widgets/selectable.js +7 -7
  106. data/app/assets/javascripts/jquery-ui/widgets/selectmenu.js +22 -51
  107. data/app/assets/javascripts/jquery-ui/widgets/slider.js +7 -7
  108. data/app/assets/javascripts/jquery-ui/widgets/sortable.js +76 -85
  109. data/app/assets/javascripts/jquery-ui/widgets/spinner.js +35 -37
  110. data/app/assets/javascripts/jquery-ui/widgets/tabs.js +58 -71
  111. data/app/assets/javascripts/jquery-ui/widgets/tooltip.js +25 -27
  112. data/app/assets/javascripts/jquery-ui.js +0 -5
  113. data/app/assets/stylesheets/jquery-ui/accordion.css +5 -5
  114. data/app/assets/stylesheets/jquery-ui/all.css +5 -5
  115. data/app/assets/stylesheets/jquery-ui/autocomplete.css +5 -5
  116. data/app/assets/stylesheets/jquery-ui/base.css +5 -5
  117. data/app/assets/stylesheets/jquery-ui/button.css +6 -11
  118. data/app/assets/stylesheets/jquery-ui/checkboxradio.css +5 -5
  119. data/app/assets/stylesheets/jquery-ui/controlgroup.css +5 -8
  120. data/app/assets/stylesheets/jquery-ui/core.css +5 -9
  121. data/app/assets/stylesheets/jquery-ui/datepicker.css +5 -5
  122. data/app/assets/stylesheets/jquery-ui/dialog.css +5 -5
  123. data/app/assets/stylesheets/jquery-ui/draggable.css +4 -5
  124. data/app/assets/stylesheets/jquery-ui/menu.css +5 -7
  125. data/app/assets/stylesheets/jquery-ui/progressbar.css +5 -6
  126. data/app/assets/stylesheets/jquery-ui/resizable.css +4 -5
  127. data/app/assets/stylesheets/jquery-ui/selectable.css +4 -5
  128. data/app/assets/stylesheets/jquery-ui/selectmenu.css +5 -5
  129. data/app/assets/stylesheets/jquery-ui/slider.css +5 -12
  130. data/app/assets/stylesheets/jquery-ui/sortable.css +4 -5
  131. data/app/assets/stylesheets/jquery-ui/spinner.css +5 -5
  132. data/app/assets/stylesheets/jquery-ui/tabs.css +5 -5
  133. data/app/assets/stylesheets/jquery-ui/theme.css.erb +6 -13
  134. data/app/assets/stylesheets/jquery-ui/tooltip.css +5 -5
  135. data/lib/jquery/ui/rails/version.rb +2 -2
  136. metadata +6 -11
  137. data/app/assets/javascripts/jquery-ui/core.js +0 -15
  138. data/app/assets/javascripts/jquery-ui/form.js +0 -25
  139. data/app/assets/javascripts/jquery-ui/ie.js +0 -20
  140. data/app/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
  141. data/app/assets/javascripts/jquery-ui/safe-blur.js +0 -27
@@ -1,23 +1,22 @@
1
1
  //= require jquery-ui/widgets/button
2
2
  //= require jquery-ui/version
3
3
  //= require jquery-ui/keycode
4
- //= require jquery-ui/safe-active-element
5
4
  //= require jquery-ui/widget
6
5
 
7
6
  /*!
8
- * jQuery UI Spinner 1.13.0
9
- * http://jqueryui.com
7
+ * jQuery UI Spinner 1.14.2
8
+ * https://jqueryui.com
10
9
  *
11
- * Copyright jQuery Foundation and other contributors
10
+ * Copyright OpenJS Foundation and other contributors
12
11
  * Released under the MIT license.
13
- * http://jquery.org/license
12
+ * https://jquery.org/license
14
13
  */
15
14
 
16
15
  //>>label: Spinner
17
16
  //>>group: Widgets
18
17
  //>>description: Displays buttons to easily input numbers via the keyboard or mouse.
19
- //>>docs: http://api.jqueryui.com/spinner/
20
- //>>demos: http://jqueryui.com/spinner/
18
+ //>>docs: https://api.jqueryui.com/spinner/
19
+ //>>demos: https://jqueryui.com/spinner/
21
20
  //>>css.structure: ../../themes/base/core.css
22
21
  //>>css.structure: ../../themes/base/spinner.css
23
22
  //>>css.theme: ../../themes/base/theme.css
@@ -33,7 +32,6 @@
33
32
  "./button",
34
33
  "../version",
35
34
  "../keycode",
36
- "../safe-active-element",
37
35
  "../widget"
38
36
  ], factory );
39
37
  } else {
@@ -56,7 +54,7 @@ function spinnerModifier( fn ) {
56
54
  }
57
55
 
58
56
  $.widget( "ui.spinner", {
59
- version: "1.13.0",
57
+ version: "1.14.2",
60
58
  defaultElement: "<input>",
61
59
  widgetEventPrefix: "spin",
62
60
  options: {
@@ -137,20 +135,16 @@ $.widget( "ui.spinner", {
137
135
  this.previous = this.element.val();
138
136
  },
139
137
  blur: function( event ) {
140
- if ( this.cancelBlur ) {
141
- delete this.cancelBlur;
142
- return;
143
- }
144
-
145
138
  this._stop();
146
139
  this._refresh();
147
140
  if ( this.previous !== this.element.val() ) {
148
141
  this._trigger( "change", event );
149
142
  }
150
143
  },
151
- mousewheel: function( event, delta ) {
152
- var activeElement = $.ui.safeActiveElement( this.document[ 0 ] );
144
+ wheel: function( event ) {
145
+ var activeElement = this.document[ 0 ].activeElement;
153
146
  var isActive = this.element[ 0 ] === activeElement;
147
+ var delta = event.deltaY || event.originalEvent && event.originalEvent.deltaY;
154
148
 
155
149
  if ( !isActive || !delta ) {
156
150
  return;
@@ -160,7 +154,7 @@ $.widget( "ui.spinner", {
160
154
  return false;
161
155
  }
162
156
 
163
- this._spin( ( delta > 0 ? 1 : -1 ) * this.options.step, event );
157
+ this._spin( ( delta > 0 ? -1 : 1 ) * this.options.step, event );
164
158
  clearTimeout( this.mousewheelTimer );
165
159
  this.mousewheelTimer = this._delay( function() {
166
160
  if ( this.spinning ) {
@@ -169,6 +163,27 @@ $.widget( "ui.spinner", {
169
163
  }, 100 );
170
164
  event.preventDefault();
171
165
  },
166
+
167
+ // DEPRECATED
168
+ // Kept for backwards compatibility. Please use the modern `wheel`
169
+ // event. The `delta` parameter is provided by the jQuery Mousewheel
170
+ // plugin if one is loaded.
171
+ mousewheel: function( event, delta ) {
172
+ if ( !event.isTrigger ) {
173
+
174
+ // If this is not a trigger call, the `wheel` handler will
175
+ // fire as well, let's not duplicate it.
176
+ return;
177
+ }
178
+
179
+ var wheelEvent = $.Event( event );
180
+ wheelEvent.type = "wheel";
181
+ if ( delta ) {
182
+ wheelEvent.deltaY = -delta;
183
+ }
184
+ return this._events.wheel.call( this, wheelEvent );
185
+ },
186
+
172
187
  "mousedown .ui-spinner-button": function( event ) {
173
188
  var previous;
174
189
 
@@ -177,20 +192,13 @@ $.widget( "ui.spinner", {
177
192
  // If the input is focused then this.previous is properly set from
178
193
  // when the input first received focus. If the input is not focused
179
194
  // then we need to set this.previous based on the value before spinning.
180
- previous = this.element[ 0 ] === $.ui.safeActiveElement( this.document[ 0 ] ) ?
195
+ previous = this.element[ 0 ] === this.document[ 0 ].activeElement ?
181
196
  this.previous : this.element.val();
182
197
  function checkFocus() {
183
- var isActive = this.element[ 0 ] === $.ui.safeActiveElement( this.document[ 0 ] );
198
+ var isActive = this.element[ 0 ] === this.document[ 0 ].activeElement;
184
199
  if ( !isActive ) {
185
200
  this.element.trigger( "focus" );
186
201
  this.previous = previous;
187
-
188
- // support: IE
189
- // IE sets focus asynchronously, so we need to check if focus
190
- // moved off of the input because the user clicked on the button.
191
- this._delay( function() {
192
- this.previous = previous;
193
- } );
194
202
  }
195
203
  }
196
204
 
@@ -198,16 +206,6 @@ $.widget( "ui.spinner", {
198
206
  event.preventDefault();
199
207
  checkFocus.call( this );
200
208
 
201
- // Support: IE
202
- // IE doesn't prevent moving focus even with event.preventDefault()
203
- // so we set a flag to know when we should ignore the blur event
204
- // and check (again) if focus moved off of the input.
205
- this.cancelBlur = true;
206
- this._delay( function() {
207
- delete this.cancelBlur;
208
- checkFocus.call( this );
209
- } );
210
-
211
209
  if ( this._start( event ) === false ) {
212
210
  return;
213
211
  }
@@ -560,7 +558,7 @@ $.widget( "ui.spinner", {
560
558
 
561
559
  // DEPRECATED
562
560
  // TODO: switch return back to widget declaration at top of file when this is removed
563
- if ( $.uiBackCompat !== false ) {
561
+ if ( $.uiBackCompat === true ) {
564
562
 
565
563
  // Backcompat for spinner html extension points
566
564
  $.widget( "ui.spinner", $.ui.spinner, {
@@ -1,23 +1,22 @@
1
1
  //= require jquery-ui/keycode
2
- //= require jquery-ui/safe-active-element
3
2
  //= require jquery-ui/unique-id
4
3
  //= require jquery-ui/version
5
4
  //= require jquery-ui/widget
6
5
 
7
6
  /*!
8
- * jQuery UI Tabs 1.13.0
9
- * http://jqueryui.com
7
+ * jQuery UI Tabs 1.14.2
8
+ * https://jqueryui.com
10
9
  *
11
- * Copyright jQuery Foundation and other contributors
10
+ * Copyright OpenJS Foundation and other contributors
12
11
  * Released under the MIT license.
13
- * http://jquery.org/license
12
+ * https://jquery.org/license
14
13
  */
15
14
 
16
15
  //>>label: Tabs
17
16
  //>>group: Widgets
18
17
  //>>description: Transforms a set of container elements into a tab structure.
19
- //>>docs: http://api.jqueryui.com/tabs/
20
- //>>demos: http://jqueryui.com/tabs/
18
+ //>>docs: https://api.jqueryui.com/tabs/
19
+ //>>demos: https://jqueryui.com/tabs/
21
20
  //>>css.structure: ../../themes/base/core.css
22
21
  //>>css.structure: ../../themes/base/tabs.css
23
22
  //>>css.theme: ../../themes/base/theme.css
@@ -31,7 +30,6 @@
31
30
  define( [
32
31
  "jquery",
33
32
  "../keycode",
34
- "../safe-active-element",
35
33
  "../unique-id",
36
34
  "../version",
37
35
  "../widget"
@@ -45,7 +43,7 @@
45
43
  "use strict";
46
44
 
47
45
  $.widget( "ui.tabs", {
48
- version: "1.13.0",
46
+ version: "1.14.2",
49
47
  delay: 300,
50
48
  options: {
51
49
  active: null,
@@ -68,26 +66,19 @@ $.widget( "ui.tabs", {
68
66
  load: null
69
67
  },
70
68
 
71
- _isLocal: ( function() {
72
- var rhash = /#.*$/;
69
+ _isLocal: function( anchor ) {
70
+ var anchorUrl = new URL( anchor.href ),
71
+ locationUrl = new URL( location.href );
73
72
 
74
- return function( anchor ) {
75
- var anchorUrl, locationUrl;
73
+ return anchor.hash.length > 1 &&
76
74
 
77
- anchorUrl = anchor.href.replace( rhash, "" );
78
- locationUrl = location.href.replace( rhash, "" );
79
-
80
- // Decoding may throw an error if the URL isn't UTF-8 (#9518)
81
- try {
82
- anchorUrl = decodeURIComponent( anchorUrl );
83
- } catch ( error ) {}
84
- try {
85
- locationUrl = decodeURIComponent( locationUrl );
86
- } catch ( error ) {}
87
-
88
- return anchor.hash.length > 1 && anchorUrl === locationUrl;
89
- };
90
- } )(),
75
+ // `href` may contain a hash but also username & password;
76
+ // we want to ignore them, so we check the three fields
77
+ // below instead.
78
+ anchorUrl.origin === locationUrl.origin &&
79
+ anchorUrl.pathname === locationUrl.pathname &&
80
+ anchorUrl.search === locationUrl.search;
81
+ },
91
82
 
92
83
  _create: function() {
93
84
  var that = this,
@@ -128,7 +119,8 @@ $.widget( "ui.tabs", {
128
119
  _initialActive: function() {
129
120
  var active = this.options.active,
130
121
  collapsible = this.options.collapsible,
131
- locationHash = location.hash.substring( 1 );
122
+ locationHash = location.hash.substring( 1 ),
123
+ locationHashDecoded = decodeURIComponent( locationHash );
132
124
 
133
125
  if ( active === null ) {
134
126
 
@@ -140,6 +132,18 @@ $.widget( "ui.tabs", {
140
132
  return false;
141
133
  }
142
134
  } );
135
+
136
+ // If not found, decode the hash & try again.
137
+ // See the comment in `_processTabs` under the `_isLocal` check
138
+ // for more information.
139
+ if ( active === null ) {
140
+ this.tabs.each( function( i, tab ) {
141
+ if ( $( tab ).attr( "aria-controls" ) === locationHashDecoded ) {
142
+ active = i;
143
+ return false;
144
+ }
145
+ } );
146
+ }
143
147
  }
144
148
 
145
149
  // Check for a tab marked active via a class
@@ -177,7 +181,7 @@ $.widget( "ui.tabs", {
177
181
  },
178
182
 
179
183
  _tabKeydown: function( event ) {
180
- var focusedTab = $( $.ui.safeActiveElement( this.document[ 0 ] ) ).closest( "li" ),
184
+ var focusedTab = $( this.document[ 0 ].activeElement ).closest( "li" ),
181
185
  selectedIndex = this.tabs.index( focusedTab ),
182
186
  goingForward = true;
183
187
 
@@ -319,10 +323,6 @@ $.widget( "ui.tabs", {
319
323
  }
320
324
  },
321
325
 
322
- _sanitizeSelector: function( hash ) {
323
- return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : "";
324
- },
325
-
326
326
  refresh: function() {
327
327
  var options = this.options,
328
328
  lis = this.tablist.children( ":has(a[href])" );
@@ -414,18 +414,6 @@ $.widget( "ui.tabs", {
414
414
  if ( $( this ).is( ".ui-state-disabled" ) ) {
415
415
  event.preventDefault();
416
416
  }
417
- } )
418
-
419
- // Support: IE <9
420
- // Preventing the default action in mousedown doesn't prevent IE
421
- // from focusing the element, so if the anchor gets focused, blur.
422
- // We don't have to worry about focusing the previously focused
423
- // element since clicking on a non-focusable element should focus
424
- // the body anyway.
425
- .on( "focus" + this.eventNamespace, ".ui-tabs-anchor", function() {
426
- if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) {
427
- this.blur();
428
- }
429
417
  } );
430
418
 
431
419
  this.tabs = this.tablist.find( "> li:has(a[href])" )
@@ -453,9 +441,24 @@ $.widget( "ui.tabs", {
453
441
 
454
442
  // Inline tab
455
443
  if ( that._isLocal( anchor ) ) {
444
+
445
+ // The "scrolling to a fragment" section of the HTML spec:
446
+ // https://html.spec.whatwg.org/#scrolling-to-a-fragment
447
+ // uses a concept of document's indicated part:
448
+ // https://html.spec.whatwg.org/#the-indicated-part-of-the-document
449
+ // Slightly below there's an algorithm to compute the indicated
450
+ // part:
451
+ // https://html.spec.whatwg.org/#the-indicated-part-of-the-document
452
+ // First, the algorithm tries the hash as-is, without decoding.
453
+ // Then, if one is not found, the same is attempted with a decoded
454
+ // hash. Replicate this logic.
456
455
  selector = anchor.hash;
457
456
  panelId = selector.substring( 1 );
458
- panel = that.element.find( that._sanitizeSelector( selector ) );
457
+ panel = that.element.find( "#" + CSS.escape( panelId ) );
458
+ if ( !panel.length ) {
459
+ panelId = decodeURIComponent( panelId );
460
+ panel = that.element.find( "#" + CSS.escape( panelId ) );
461
+ }
459
462
 
460
463
  // remote tab
461
464
  } else {
@@ -741,7 +744,7 @@ $.widget( "ui.tabs", {
741
744
  // meta-function to give users option to provide a href string instead of a numerical index.
742
745
  if ( typeof index === "string" ) {
743
746
  index = this.anchors.index( this.anchors.filter( "[href$='" +
744
- $.escapeSelector( index ) + "']" ) );
747
+ CSS.escape( index ) + "']" ) );
745
748
  }
746
749
 
747
750
  return index;
@@ -863,32 +866,19 @@ $.widget( "ui.tabs", {
863
866
 
864
867
  this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) );
865
868
 
866
- // Support: jQuery <1.8
867
- // jQuery <1.8 returns false if the request is canceled in beforeSend,
868
- // but as of 1.8, $.ajax() always returns a jqXHR object.
869
- if ( this.xhr && this.xhr.statusText !== "canceled" ) {
869
+ if ( this.xhr.statusText !== "canceled" ) {
870
870
  this._addClass( tab, "ui-tabs-loading" );
871
871
  panel.attr( "aria-busy", "true" );
872
872
 
873
873
  this.xhr
874
874
  .done( function( response, status, jqXHR ) {
875
+ panel.html( response );
876
+ that._trigger( "load", event, eventData );
875
877
 
876
- // support: jQuery <1.8
877
- // http://bugs.jquery.com/ticket/11778
878
- setTimeout( function() {
879
- panel.html( response );
880
- that._trigger( "load", event, eventData );
881
-
882
- complete( jqXHR, status );
883
- }, 1 );
878
+ complete( jqXHR, status );
884
879
  } )
885
880
  .fail( function( jqXHR, status ) {
886
-
887
- // support: jQuery <1.8
888
- // http://bugs.jquery.com/ticket/11778
889
- setTimeout( function() {
890
- complete( jqXHR, status );
891
- }, 1 );
881
+ complete( jqXHR, status );
892
882
  } );
893
883
  }
894
884
  },
@@ -896,10 +886,7 @@ $.widget( "ui.tabs", {
896
886
  _ajaxSettings: function( anchor, event, eventData ) {
897
887
  var that = this;
898
888
  return {
899
-
900
- // Support: IE <11 only
901
- // Strip any hash that exists to prevent errors with the Ajax request
902
- url: anchor.attr( "href" ).replace( /#.*$/, "" ),
889
+ url: anchor.attr( "href" ),
903
890
  beforeSend: function( jqXHR, settings ) {
904
891
  return that._trigger( "beforeLoad", event,
905
892
  $.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) );
@@ -909,13 +896,13 @@ $.widget( "ui.tabs", {
909
896
 
910
897
  _getPanelForTab: function( tab ) {
911
898
  var id = $( tab ).attr( "aria-controls" );
912
- return this.element.find( this._sanitizeSelector( "#" + id ) );
899
+ return this.element.find( "#" + CSS.escape( id ) );
913
900
  }
914
901
  } );
915
902
 
916
903
  // DEPRECATED
917
904
  // TODO: Switch return back to widget declaration at top of file when this is removed
918
- if ( $.uiBackCompat !== false ) {
905
+ if ( $.uiBackCompat === true ) {
919
906
 
920
907
  // Backcompat for ui-tab class (now ui-tabs-tab)
921
908
  $.widget( "ui.tabs", $.ui.tabs, {
@@ -5,19 +5,19 @@
5
5
  //= require jquery-ui/widget
6
6
 
7
7
  /*!
8
- * jQuery UI Tooltip 1.13.0
9
- * http://jqueryui.com
8
+ * jQuery UI Tooltip 1.14.2
9
+ * https://jqueryui.com
10
10
  *
11
- * Copyright jQuery Foundation and other contributors
11
+ * Copyright OpenJS Foundation and other contributors
12
12
  * Released under the MIT license.
13
- * http://jquery.org/license
13
+ * https://jquery.org/license
14
14
  */
15
15
 
16
16
  //>>label: Tooltip
17
17
  //>>group: Widgets
18
18
  //>>description: Shows additional information for any element on hover or focus.
19
- //>>docs: http://api.jqueryui.com/tooltip/
20
- //>>demos: http://jqueryui.com/tooltip/
19
+ //>>docs: https://api.jqueryui.com/tooltip/
20
+ //>>demos: https://jqueryui.com/tooltip/
21
21
  //>>css.structure: ../../themes/base/core.css
22
22
  //>>css.structure: ../../themes/base/tooltip.css
23
23
  //>>css.theme: ../../themes/base/theme.css
@@ -45,7 +45,7 @@
45
45
  "use strict";
46
46
 
47
47
  $.widget( "ui.tooltip", {
48
- version: "1.13.0",
48
+ version: "1.14.2",
49
49
  options: {
50
50
  classes: {
51
51
  "ui-tooltip": "ui-corner-all ui-widget-shadow"
@@ -233,25 +233,20 @@ $.widget( "ui.tooltip", {
233
233
 
234
234
  content = contentOption.call( target[ 0 ], function( response ) {
235
235
 
236
- // IE may instantly serve a cached response for ajax requests
237
- // delay this call to _open so the other call to _open runs first
238
- that._delay( function() {
239
-
240
- // Ignore async response if tooltip was closed already
241
- if ( !target.data( "ui-tooltip-open" ) ) {
242
- return;
243
- }
236
+ // Ignore async response if tooltip was closed already
237
+ if ( !target.data( "ui-tooltip-open" ) ) {
238
+ return;
239
+ }
244
240
 
245
- // JQuery creates a special event for focusin when it doesn't
246
- // exist natively. To improve performance, the native event
247
- // object is reused and the type is changed. Therefore, we can't
248
- // rely on the type being correct after the event finished
249
- // bubbling, so we set it back to the previous value. (#8740)
250
- if ( event ) {
251
- event.type = eventType;
252
- }
253
- this._open( event, target, response );
254
- } );
241
+ // JQuery creates a special event for focusin when it doesn't
242
+ // exist natively. To improve performance, the native event
243
+ // object is reused and the type is changed. Therefore, we can't
244
+ // rely on the type being correct after the event finished
245
+ // bubbling, so we set it back to the previous value. (#8740)
246
+ if ( event ) {
247
+ event.type = eventType;
248
+ }
249
+ that._open( event, target, response );
255
250
  } );
256
251
  if ( content ) {
257
252
  this._open( event, target, content );
@@ -358,7 +353,10 @@ $.widget( "ui.tooltip", {
358
353
  // tooltips will handle this in destroy.
359
354
  if ( target[ 0 ] !== this.element[ 0 ] ) {
360
355
  events.remove = function() {
361
- this._removeTooltip( this._find( target ).tooltip );
356
+ var targetElement = this._find( target );
357
+ if ( targetElement ) {
358
+ this._removeTooltip( targetElement.tooltip );
359
+ }
362
360
  };
363
361
  }
364
362
 
@@ -508,7 +506,7 @@ $.widget( "ui.tooltip", {
508
506
 
509
507
  // DEPRECATED
510
508
  // TODO: Switch return back to widget declaration at top of file when this is removed
511
- if ( $.uiBackCompat !== false ) {
509
+ if ( $.uiBackCompat === true ) {
512
510
 
513
511
  // Backcompat for tooltipClass option
514
512
  $.widget( "ui.tooltip", $.ui.tooltip, {
@@ -1,19 +1,14 @@
1
- //= require jquery-ui/core
2
1
  //= require jquery-ui/data
3
2
  //= require jquery-ui/disable-selection
4
3
  //= require jquery-ui/effect
5
4
  //= require jquery-ui/focusable
6
5
  //= require jquery-ui/form-reset-mixin
7
- //= require jquery-ui/form
8
- //= require jquery-ui/ie
9
6
  //= require jquery-ui/jquery-patch
10
7
  //= require jquery-ui/jquery-var-for-color
11
8
  //= require jquery-ui/keycode
12
9
  //= require jquery-ui/labels
13
10
  //= require jquery-ui/plugin
14
11
  //= require jquery-ui/position
15
- //= require jquery-ui/safe-active-element
16
- //= require jquery-ui/safe-blur
17
12
  //= require jquery-ui/scroll-parent
18
13
  //= require jquery-ui/tabbable
19
14
  //= require jquery-ui/unique-id
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * jQuery UI Accordion 1.13.0
3
- * http://jqueryui.com
2
+ * jQuery UI Accordion 1.14.2
3
+ * https://jqueryui.com
4
4
  *
5
- * Copyright jQuery Foundation and other contributors
5
+ * Copyright OpenJS Foundation and other contributors
6
6
  * Released under the MIT license.
7
- * http://jquery.org/license
7
+ * https://jquery.org/license
8
8
  *
9
- * http://api.jqueryui.com/accordion/#theming
9
+ * https://api.jqueryui.com/accordion/#theming
10
10
  */
11
11
  /*
12
12
  *= require jquery-ui/theme
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * jQuery UI CSS Framework 1.13.0
3
- * http://jqueryui.com
2
+ * jQuery UI CSS Framework 1.14.2
3
+ * https://jqueryui.com
4
4
  *
5
- * Copyright jQuery Foundation and other contributors
5
+ * Copyright OpenJS Foundation and other contributors
6
6
  * Released under the MIT license.
7
- * http://jquery.org/license
7
+ * https://jquery.org/license
8
8
  *
9
- * http://api.jqueryui.com/category/theming/
9
+ * https://api.jqueryui.com/category/theming/
10
10
  */
11
11
  /*
12
12
  *= require jquery-ui/base
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * jQuery UI Autocomplete 1.13.0
3
- * http://jqueryui.com
2
+ * jQuery UI Autocomplete 1.14.2
3
+ * https://jqueryui.com
4
4
  *
5
- * Copyright jQuery Foundation and other contributors
5
+ * Copyright OpenJS Foundation and other contributors
6
6
  * Released under the MIT license.
7
- * http://jquery.org/license
7
+ * https://jquery.org/license
8
8
  *
9
- * http://api.jqueryui.com/autocomplete/#theming
9
+ * https://api.jqueryui.com/autocomplete/#theming
10
10
  */
11
11
  /*
12
12
  *= require jquery-ui/theme
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * jQuery UI CSS Framework 1.13.0
3
- * http://jqueryui.com
2
+ * jQuery UI CSS Framework 1.14.2
3
+ * https://jqueryui.com
4
4
  *
5
- * Copyright jQuery Foundation and other contributors
5
+ * Copyright OpenJS Foundation and other contributors
6
6
  * Released under the MIT license.
7
- * http://jquery.org/license
7
+ * https://jquery.org/license
8
8
  *
9
- * http://api.jqueryui.com/category/theming/
9
+ * https://api.jqueryui.com/category/theming/
10
10
  */
11
11
  /*
12
12
  *= require jquery-ui/core
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * jQuery UI Button 1.13.0
3
- * http://jqueryui.com
2
+ * jQuery UI Button 1.14.2
3
+ * https://jqueryui.com
4
4
  *
5
- * Copyright jQuery Foundation and other contributors
5
+ * Copyright OpenJS Foundation and other contributors
6
6
  * Released under the MIT license.
7
- * http://jquery.org/license
7
+ * https://jquery.org/license
8
8
  *
9
- * http://api.jqueryui.com/button/#theming
9
+ * https://api.jqueryui.com/button/#theming
10
10
  */
11
11
  /*
12
12
  *= require jquery-ui/theme
@@ -21,12 +21,7 @@
21
21
  vertical-align: middle;
22
22
  text-align: center;
23
23
  -webkit-user-select: none;
24
- -moz-user-select: none;
25
- -ms-user-select: none;
26
24
  user-select: none;
27
-
28
- /* Support: IE <= 11 */
29
- overflow: visible;
30
25
  }
31
26
 
32
27
  .ui-button,
@@ -77,7 +72,7 @@ input.ui-button.ui-icon-notext .ui-icon {
77
72
  }
78
73
 
79
74
  /* workarounds */
80
- /* Support: Firefox 5 - 40 */
75
+ /* Support: Firefox 5 - 125+ */
81
76
  input.ui-button::-moz-focus-inner,
82
77
  button.ui-button::-moz-focus-inner {
83
78
  border: 0;
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * jQuery UI Checkboxradio 1.13.0
3
- * http://jqueryui.com
2
+ * jQuery UI Checkboxradio 1.14.2
3
+ * https://jqueryui.com
4
4
  *
5
- * Copyright jQuery Foundation and other contributors
5
+ * Copyright OpenJS Foundation and other contributors
6
6
  * Released under the MIT license.
7
- * http://jquery.org/license
7
+ * https://jquery.org/license
8
8
  *
9
- * http://api.jqueryui.com/checkboxradio/#theming
9
+ * https://api.jqueryui.com/checkboxradio/#theming
10
10
  */
11
11
  /*
12
12
  *= require jquery-ui/theme