jquery-ui-rails 3.0.1 → 4.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.
- data/History.md +10 -0
- data/README.md +1 -1
- data/Rakefile +4 -5
- data/lib/jquery/ui/rails/version.rb +1 -1
- data/vendor/assets/javascripts/jquery.ui.accordion.js +130 -290
- data/vendor/assets/javascripts/jquery.ui.autocomplete.js +30 -18
- data/vendor/assets/javascripts/jquery.ui.button.js +9 -8
- data/vendor/assets/javascripts/jquery.ui.core.js +19 -53
- data/vendor/assets/javascripts/jquery.ui.datepicker-be.js +23 -0
- data/vendor/assets/javascripts/jquery.ui.datepicker-fr-CA.js +23 -0
- data/vendor/assets/javascripts/jquery.ui.datepicker-ky.js +24 -0
- data/vendor/assets/javascripts/jquery.ui.datepicker-nb.js +22 -0
- data/vendor/assets/javascripts/jquery.ui.datepicker-nn.js +22 -0
- data/vendor/assets/javascripts/jquery.ui.datepicker.js +1076 -878
- data/vendor/assets/javascripts/jquery.ui.dialog.js +456 -547
- data/vendor/assets/javascripts/jquery.ui.draggable.js +317 -207
- data/vendor/assets/javascripts/jquery.ui.droppable.js +177 -100
- data/vendor/assets/javascripts/jquery.ui.effect-blind.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-bounce.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-clip.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-drop.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-explode.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-fade.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-fold.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-highlight.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-pulsate.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-scale.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-shake.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-slide.js +2 -2
- data/vendor/assets/javascripts/jquery.ui.effect-transfer.js +3 -3
- data/vendor/assets/javascripts/jquery.ui.effect.js +91 -99
- data/vendor/assets/javascripts/jquery.ui.menu.js +20 -9
- data/vendor/assets/javascripts/jquery.ui.mouse.js +25 -25
- data/vendor/assets/javascripts/jquery.ui.position.js +39 -59
- data/vendor/assets/javascripts/jquery.ui.progressbar.js +73 -33
- data/vendor/assets/javascripts/jquery.ui.resizable.js +461 -294
- data/vendor/assets/javascripts/jquery.ui.selectable.js +67 -51
- data/vendor/assets/javascripts/jquery.ui.slider.js +100 -95
- data/vendor/assets/javascripts/jquery.ui.sortable.js +411 -257
- data/vendor/assets/javascripts/jquery.ui.spinner.js +19 -5
- data/vendor/assets/javascripts/jquery.ui.tabs.js +47 -567
- data/vendor/assets/javascripts/jquery.ui.tooltip.js +14 -10
- data/vendor/assets/javascripts/jquery.ui.widget.js +33 -40
- data/vendor/assets/stylesheets/jquery.ui.accordion.css.erb +30 -8
- data/vendor/assets/stylesheets/jquery.ui.all.css.erb +2 -2
- data/vendor/assets/stylesheets/jquery.ui.autocomplete.css.erb +2 -5
- data/vendor/assets/stylesheets/jquery.ui.base.css.erb +2 -2
- data/vendor/assets/stylesheets/jquery.ui.button.css.erb +100 -26
- data/vendor/assets/stylesheets/jquery.ui.core.css.erb +65 -12
- data/vendor/assets/stylesheets/jquery.ui.datepicker.css.erb +166 -55
- data/vendor/assets/stylesheets/jquery.ui.dialog.css.erb +61 -14
- data/vendor/assets/stylesheets/jquery.ui.menu.css.erb +61 -14
- data/vendor/assets/stylesheets/jquery.ui.progressbar.css.erb +20 -4
- data/vendor/assets/stylesheets/jquery.ui.resizable.css.erb +70 -13
- data/vendor/assets/stylesheets/jquery.ui.selectable.css.erb +7 -3
- data/vendor/assets/stylesheets/jquery.ui.slider.css.erb +63 -15
- data/vendor/assets/stylesheets/jquery.ui.spinner.css.erb +52 -10
- data/vendor/assets/stylesheets/jquery.ui.tabs.css.erb +44 -10
- data/vendor/assets/stylesheets/jquery.ui.theme.css.erb +196 -38
- data/vendor/assets/stylesheets/jquery.ui.tooltip.css.erb +4 -6
- metadata +8 -3
@@ -3,10 +3,10 @@
|
|
3
3
|
//= require jquery.ui.mouse
|
4
4
|
|
5
5
|
/*!
|
6
|
-
* jQuery UI Selectable 1.
|
6
|
+
* jQuery UI Selectable 1.10.0
|
7
7
|
* http://jqueryui.com
|
8
8
|
*
|
9
|
-
* Copyright
|
9
|
+
* Copyright 2013 jQuery Foundation and other contributors
|
10
10
|
* Released under the MIT license.
|
11
11
|
* http://jquery.org/license
|
12
12
|
*
|
@@ -20,29 +20,37 @@
|
|
20
20
|
(function( $, undefined ) {
|
21
21
|
|
22
22
|
$.widget("ui.selectable", $.ui.mouse, {
|
23
|
-
version: "1.
|
23
|
+
version: "1.10.0",
|
24
24
|
options: {
|
25
|
-
appendTo:
|
25
|
+
appendTo: "body",
|
26
26
|
autoRefresh: true,
|
27
27
|
distance: 0,
|
28
|
-
filter:
|
29
|
-
tolerance:
|
28
|
+
filter: "*",
|
29
|
+
tolerance: "touch",
|
30
|
+
|
31
|
+
// callbacks
|
32
|
+
selected: null,
|
33
|
+
selecting: null,
|
34
|
+
start: null,
|
35
|
+
stop: null,
|
36
|
+
unselected: null,
|
37
|
+
unselecting: null
|
30
38
|
},
|
31
39
|
_create: function() {
|
32
|
-
var
|
40
|
+
var selectees,
|
41
|
+
that = this;
|
33
42
|
|
34
43
|
this.element.addClass("ui-selectable");
|
35
44
|
|
36
45
|
this.dragged = false;
|
37
46
|
|
38
47
|
// cache selectee children based on filter
|
39
|
-
var selectees;
|
40
48
|
this.refresh = function() {
|
41
49
|
selectees = $(that.options.filter, that.element[0]);
|
42
50
|
selectees.addClass("ui-selectee");
|
43
51
|
selectees.each(function() {
|
44
|
-
var $this = $(this)
|
45
|
-
|
52
|
+
var $this = $(this),
|
53
|
+
pos = $this.offset();
|
46
54
|
$.data(this, "selectable-item", {
|
47
55
|
element: this,
|
48
56
|
$element: $this,
|
@@ -51,9 +59,9 @@ $.widget("ui.selectable", $.ui.mouse, {
|
|
51
59
|
right: pos.left + $this.outerWidth(),
|
52
60
|
bottom: pos.top + $this.outerHeight(),
|
53
61
|
startselected: false,
|
54
|
-
selected: $this.hasClass(
|
55
|
-
selecting: $this.hasClass(
|
56
|
-
unselecting: $this.hasClass(
|
62
|
+
selected: $this.hasClass("ui-selected"),
|
63
|
+
selecting: $this.hasClass("ui-selecting"),
|
64
|
+
unselecting: $this.hasClass("ui-unselecting")
|
57
65
|
});
|
58
66
|
});
|
59
67
|
};
|
@@ -76,14 +84,14 @@ $.widget("ui.selectable", $.ui.mouse, {
|
|
76
84
|
},
|
77
85
|
|
78
86
|
_mouseStart: function(event) {
|
79
|
-
var that = this
|
87
|
+
var that = this,
|
88
|
+
options = this.options;
|
80
89
|
|
81
90
|
this.opos = [event.pageX, event.pageY];
|
82
91
|
|
83
|
-
if (this.options.disabled)
|
92
|
+
if (this.options.disabled) {
|
84
93
|
return;
|
85
|
-
|
86
|
-
var options = this.options;
|
94
|
+
}
|
87
95
|
|
88
96
|
this.selectees = $(options.filter, this.element[0]);
|
89
97
|
|
@@ -92,8 +100,8 @@ $.widget("ui.selectable", $.ui.mouse, {
|
|
92
100
|
$(options.appendTo).append(this.helper);
|
93
101
|
// position helper (lasso)
|
94
102
|
this.helper.css({
|
95
|
-
"left": event.
|
96
|
-
"top": event.
|
103
|
+
"left": event.pageX,
|
104
|
+
"top": event.pageY,
|
97
105
|
"width": 0,
|
98
106
|
"height": 0
|
99
107
|
});
|
@@ -102,13 +110,13 @@ $.widget("ui.selectable", $.ui.mouse, {
|
|
102
110
|
this.refresh();
|
103
111
|
}
|
104
112
|
|
105
|
-
this.selectees.filter(
|
113
|
+
this.selectees.filter(".ui-selected").each(function() {
|
106
114
|
var selectee = $.data(this, "selectable-item");
|
107
115
|
selectee.startselected = true;
|
108
116
|
if (!event.metaKey && !event.ctrlKey) {
|
109
|
-
selectee.$element.removeClass(
|
117
|
+
selectee.$element.removeClass("ui-selected");
|
110
118
|
selectee.selected = false;
|
111
|
-
selectee.$element.addClass(
|
119
|
+
selectee.$element.addClass("ui-unselecting");
|
112
120
|
selectee.unselecting = true;
|
113
121
|
// selectable UNSELECTING callback
|
114
122
|
that._trigger("unselecting", event, {
|
@@ -117,10 +125,11 @@ $.widget("ui.selectable", $.ui.mouse, {
|
|
117
125
|
}
|
118
126
|
});
|
119
127
|
|
120
|
-
$(event.target).parents().
|
121
|
-
var
|
128
|
+
$(event.target).parents().addBack().each(function() {
|
129
|
+
var doSelect,
|
130
|
+
selectee = $.data(this, "selectable-item");
|
122
131
|
if (selectee) {
|
123
|
-
|
132
|
+
doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass("ui-selected");
|
124
133
|
selectee.$element
|
125
134
|
.removeClass(doSelect ? "ui-unselecting" : "ui-selected")
|
126
135
|
.addClass(doSelect ? "ui-selecting" : "ui-unselecting");
|
@@ -144,43 +153,52 @@ $.widget("ui.selectable", $.ui.mouse, {
|
|
144
153
|
},
|
145
154
|
|
146
155
|
_mouseDrag: function(event) {
|
147
|
-
|
156
|
+
|
148
157
|
this.dragged = true;
|
149
158
|
|
150
|
-
if (this.options.disabled)
|
159
|
+
if (this.options.disabled) {
|
151
160
|
return;
|
161
|
+
}
|
152
162
|
|
153
|
-
var
|
163
|
+
var tmp,
|
164
|
+
that = this,
|
165
|
+
options = this.options,
|
166
|
+
x1 = this.opos[0],
|
167
|
+
y1 = this.opos[1],
|
168
|
+
x2 = event.pageX,
|
169
|
+
y2 = event.pageY;
|
154
170
|
|
155
|
-
|
156
|
-
if (
|
157
|
-
if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; }
|
171
|
+
if (x1 > x2) { tmp = x2; x2 = x1; x1 = tmp; }
|
172
|
+
if (y1 > y2) { tmp = y2; y2 = y1; y1 = tmp; }
|
158
173
|
this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});
|
159
174
|
|
160
175
|
this.selectees.each(function() {
|
161
|
-
var selectee = $.data(this, "selectable-item")
|
176
|
+
var selectee = $.data(this, "selectable-item"),
|
177
|
+
hit = false;
|
178
|
+
|
162
179
|
//prevent helper from being selected if appendTo: selectable
|
163
|
-
if (!selectee || selectee.element
|
180
|
+
if (!selectee || selectee.element === that.element[0]) {
|
164
181
|
return;
|
165
|
-
|
166
|
-
|
182
|
+
}
|
183
|
+
|
184
|
+
if (options.tolerance === "touch") {
|
167
185
|
hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );
|
168
|
-
} else if (options.tolerance
|
186
|
+
} else if (options.tolerance === "fit") {
|
169
187
|
hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
|
170
188
|
}
|
171
189
|
|
172
190
|
if (hit) {
|
173
191
|
// SELECT
|
174
192
|
if (selectee.selected) {
|
175
|
-
selectee.$element.removeClass(
|
193
|
+
selectee.$element.removeClass("ui-selected");
|
176
194
|
selectee.selected = false;
|
177
195
|
}
|
178
196
|
if (selectee.unselecting) {
|
179
|
-
selectee.$element.removeClass(
|
197
|
+
selectee.$element.removeClass("ui-unselecting");
|
180
198
|
selectee.unselecting = false;
|
181
199
|
}
|
182
200
|
if (!selectee.selecting) {
|
183
|
-
selectee.$element.addClass(
|
201
|
+
selectee.$element.addClass("ui-selecting");
|
184
202
|
selectee.selecting = true;
|
185
203
|
// selectable SELECTING callback
|
186
204
|
that._trigger("selecting", event, {
|
@@ -191,15 +209,15 @@ $.widget("ui.selectable", $.ui.mouse, {
|
|
191
209
|
// UNSELECT
|
192
210
|
if (selectee.selecting) {
|
193
211
|
if ((event.metaKey || event.ctrlKey) && selectee.startselected) {
|
194
|
-
selectee.$element.removeClass(
|
212
|
+
selectee.$element.removeClass("ui-selecting");
|
195
213
|
selectee.selecting = false;
|
196
|
-
selectee.$element.addClass(
|
214
|
+
selectee.$element.addClass("ui-selected");
|
197
215
|
selectee.selected = true;
|
198
216
|
} else {
|
199
|
-
selectee.$element.removeClass(
|
217
|
+
selectee.$element.removeClass("ui-selecting");
|
200
218
|
selectee.selecting = false;
|
201
219
|
if (selectee.startselected) {
|
202
|
-
selectee.$element.addClass(
|
220
|
+
selectee.$element.addClass("ui-unselecting");
|
203
221
|
selectee.unselecting = true;
|
204
222
|
}
|
205
223
|
// selectable UNSELECTING callback
|
@@ -210,10 +228,10 @@ $.widget("ui.selectable", $.ui.mouse, {
|
|
210
228
|
}
|
211
229
|
if (selectee.selected) {
|
212
230
|
if (!event.metaKey && !event.ctrlKey && !selectee.startselected) {
|
213
|
-
selectee.$element.removeClass(
|
231
|
+
selectee.$element.removeClass("ui-selected");
|
214
232
|
selectee.selected = false;
|
215
233
|
|
216
|
-
selectee.$element.addClass(
|
234
|
+
selectee.$element.addClass("ui-unselecting");
|
217
235
|
selectee.unselecting = true;
|
218
236
|
// selectable UNSELECTING callback
|
219
237
|
that._trigger("unselecting", event, {
|
@@ -232,20 +250,18 @@ $.widget("ui.selectable", $.ui.mouse, {
|
|
232
250
|
|
233
251
|
this.dragged = false;
|
234
252
|
|
235
|
-
|
236
|
-
|
237
|
-
$('.ui-unselecting', this.element[0]).each(function() {
|
253
|
+
$(".ui-unselecting", this.element[0]).each(function() {
|
238
254
|
var selectee = $.data(this, "selectable-item");
|
239
|
-
selectee.$element.removeClass(
|
255
|
+
selectee.$element.removeClass("ui-unselecting");
|
240
256
|
selectee.unselecting = false;
|
241
257
|
selectee.startselected = false;
|
242
258
|
that._trigger("unselected", event, {
|
243
259
|
unselected: selectee.element
|
244
260
|
});
|
245
261
|
});
|
246
|
-
$(
|
262
|
+
$(".ui-selecting", this.element[0]).each(function() {
|
247
263
|
var selectee = $.data(this, "selectable-item");
|
248
|
-
selectee.$element.removeClass(
|
264
|
+
selectee.$element.removeClass("ui-selecting").addClass("ui-selected");
|
249
265
|
selectee.selecting = false;
|
250
266
|
selectee.selected = true;
|
251
267
|
selectee.startselected = true;
|
@@ -3,10 +3,10 @@
|
|
3
3
|
//= require jquery.ui.mouse
|
4
4
|
|
5
5
|
/*!
|
6
|
-
* jQuery UI Slider 1.
|
6
|
+
* jQuery UI Slider 1.10.0
|
7
7
|
* http://jqueryui.com
|
8
8
|
*
|
9
|
-
* Copyright
|
9
|
+
* Copyright 2013 jQuery Foundation and other contributors
|
10
10
|
* Released under the MIT license.
|
11
11
|
* http://jquery.org/license
|
12
12
|
*
|
@@ -24,7 +24,7 @@
|
|
24
24
|
var numPages = 5;
|
25
25
|
|
26
26
|
$.widget( "ui.slider", $.ui.mouse, {
|
27
|
-
version: "1.
|
27
|
+
version: "1.10.0",
|
28
28
|
widgetEventPrefix: "slide",
|
29
29
|
|
30
30
|
options: {
|
@@ -36,7 +36,13 @@ $.widget( "ui.slider", $.ui.mouse, {
|
|
36
36
|
range: false,
|
37
37
|
step: 1,
|
38
38
|
value: 0,
|
39
|
-
values: null
|
39
|
+
values: null,
|
40
|
+
|
41
|
+
// callbacks
|
42
|
+
change: null,
|
43
|
+
slide: null,
|
44
|
+
start: null,
|
45
|
+
stop: null
|
40
46
|
},
|
41
47
|
|
42
48
|
_create: function() {
|
@@ -58,8 +64,7 @@ $.widget( "ui.slider", $.ui.mouse, {
|
|
58
64
|
" ui-slider-" + this.orientation +
|
59
65
|
" ui-widget" +
|
60
66
|
" ui-widget-content" +
|
61
|
-
" ui-corner-all"
|
62
|
-
( o.disabled ? " ui-slider-disabled ui-disabled" : "" ) );
|
67
|
+
" ui-corner-all");
|
63
68
|
|
64
69
|
this.range = $([]);
|
65
70
|
|
@@ -67,9 +72,10 @@ $.widget( "ui.slider", $.ui.mouse, {
|
|
67
72
|
if ( o.range === true ) {
|
68
73
|
if ( !o.values ) {
|
69
74
|
o.values = [ this._valueMin(), this._valueMin() ];
|
70
|
-
}
|
71
|
-
if ( o.values.length && o.values.length !== 2 ) {
|
75
|
+
} else if ( o.values.length && o.values.length !== 2 ) {
|
72
76
|
o.values = [ o.values[0], o.values[0] ];
|
77
|
+
} else if ( $.isArray( o.values ) ) {
|
78
|
+
o.values = o.values.slice(0);
|
73
79
|
}
|
74
80
|
}
|
75
81
|
|
@@ -120,81 +126,9 @@ $.widget( "ui.slider", $.ui.mouse, {
|
|
120
126
|
$( this ).data( "ui-slider-handle-index", i );
|
121
127
|
});
|
122
128
|
|
123
|
-
this.
|
124
|
-
keydown: function( event ) {
|
125
|
-
var allowed, curVal, newVal, step,
|
126
|
-
index = $( event.target ).data( "ui-slider-handle-index" );
|
127
|
-
|
128
|
-
switch ( event.keyCode ) {
|
129
|
-
case $.ui.keyCode.HOME:
|
130
|
-
case $.ui.keyCode.END:
|
131
|
-
case $.ui.keyCode.PAGE_UP:
|
132
|
-
case $.ui.keyCode.PAGE_DOWN:
|
133
|
-
case $.ui.keyCode.UP:
|
134
|
-
case $.ui.keyCode.RIGHT:
|
135
|
-
case $.ui.keyCode.DOWN:
|
136
|
-
case $.ui.keyCode.LEFT:
|
137
|
-
event.preventDefault();
|
138
|
-
if ( !this._keySliding ) {
|
139
|
-
this._keySliding = true;
|
140
|
-
$( event.target ).addClass( "ui-state-active" );
|
141
|
-
allowed = this._start( event, index );
|
142
|
-
if ( allowed === false ) {
|
143
|
-
return;
|
144
|
-
}
|
145
|
-
}
|
146
|
-
break;
|
147
|
-
}
|
148
|
-
|
149
|
-
step = this.options.step;
|
150
|
-
if ( this.options.values && this.options.values.length ) {
|
151
|
-
curVal = newVal = this.values( index );
|
152
|
-
} else {
|
153
|
-
curVal = newVal = this.value();
|
154
|
-
}
|
155
|
-
|
156
|
-
switch ( event.keyCode ) {
|
157
|
-
case $.ui.keyCode.HOME:
|
158
|
-
newVal = this._valueMin();
|
159
|
-
break;
|
160
|
-
case $.ui.keyCode.END:
|
161
|
-
newVal = this._valueMax();
|
162
|
-
break;
|
163
|
-
case $.ui.keyCode.PAGE_UP:
|
164
|
-
newVal = this._trimAlignValue( curVal + ( (this._valueMax() - this._valueMin()) / numPages ) );
|
165
|
-
break;
|
166
|
-
case $.ui.keyCode.PAGE_DOWN:
|
167
|
-
newVal = this._trimAlignValue( curVal - ( (this._valueMax() - this._valueMin()) / numPages ) );
|
168
|
-
break;
|
169
|
-
case $.ui.keyCode.UP:
|
170
|
-
case $.ui.keyCode.RIGHT:
|
171
|
-
if ( curVal === this._valueMax() ) {
|
172
|
-
return;
|
173
|
-
}
|
174
|
-
newVal = this._trimAlignValue( curVal + step );
|
175
|
-
break;
|
176
|
-
case $.ui.keyCode.DOWN:
|
177
|
-
case $.ui.keyCode.LEFT:
|
178
|
-
if ( curVal === this._valueMin() ) {
|
179
|
-
return;
|
180
|
-
}
|
181
|
-
newVal = this._trimAlignValue( curVal - step );
|
182
|
-
break;
|
183
|
-
}
|
184
|
-
|
185
|
-
this._slide( event, index, newVal );
|
186
|
-
},
|
187
|
-
keyup: function( event ) {
|
188
|
-
var index = $( event.target ).data( "ui-slider-handle-index" );
|
129
|
+
this._setOption( "disabled", o.disabled );
|
189
130
|
|
190
|
-
|
191
|
-
this._keySliding = false;
|
192
|
-
this._stop( event, index );
|
193
|
-
this._change( event, index );
|
194
|
-
$( event.target ).removeClass( "ui-state-active" );
|
195
|
-
}
|
196
|
-
}
|
197
|
-
});
|
131
|
+
this._on( this.handles, this._handleEvents );
|
198
132
|
|
199
133
|
this._refreshValue();
|
200
134
|
|
@@ -209,7 +143,6 @@ $.widget( "ui.slider", $.ui.mouse, {
|
|
209
143
|
.removeClass( "ui-slider" +
|
210
144
|
" ui-slider-horizontal" +
|
211
145
|
" ui-slider-vertical" +
|
212
|
-
" ui-slider-disabled" +
|
213
146
|
" ui-widget" +
|
214
147
|
" ui-widget-content" +
|
215
148
|
" ui-corner-all" );
|
@@ -237,21 +170,15 @@ $.widget( "ui.slider", $.ui.mouse, {
|
|
237
170
|
distance = this._valueMax() - this._valueMin() + 1;
|
238
171
|
this.handles.each(function( i ) {
|
239
172
|
var thisDistance = Math.abs( normValue - that.values(i) );
|
240
|
-
if ( distance > thisDistance )
|
173
|
+
if (( distance > thisDistance ) ||
|
174
|
+
( distance === thisDistance &&
|
175
|
+
(i === that._lastChangedValue || that.values(i) === o.min ))) {
|
241
176
|
distance = thisDistance;
|
242
177
|
closestHandle = $( this );
|
243
178
|
index = i;
|
244
179
|
}
|
245
180
|
});
|
246
181
|
|
247
|
-
// workaround for bug #3736 (if both handles of a range are at 0,
|
248
|
-
// the first is always used as the one with least distance,
|
249
|
-
// and moving it is obviously prevented by preventing negative ranges)
|
250
|
-
if( o.range === true && this.values(1) === o.min ) {
|
251
|
-
index += 1;
|
252
|
-
closestHandle = $( this.handles[index] );
|
253
|
-
}
|
254
|
-
|
255
182
|
allowed = this._start( event, index );
|
256
183
|
if ( allowed === false ) {
|
257
184
|
return false;
|
@@ -265,7 +192,7 @@ $.widget( "ui.slider", $.ui.mouse, {
|
|
265
192
|
.focus();
|
266
193
|
|
267
194
|
offset = closestHandle.offset();
|
268
|
-
mouseOverHandle = !$( event.target ).parents().
|
195
|
+
mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" );
|
269
196
|
this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
|
270
197
|
left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
|
271
198
|
top: event.pageY - offset.top -
|
@@ -423,6 +350,9 @@ $.widget( "ui.slider", $.ui.mouse, {
|
|
423
350
|
uiHash.values = this.values();
|
424
351
|
}
|
425
352
|
|
353
|
+
//store the last changed value index for reference when handles overlap
|
354
|
+
this._lastChangedValue = index;
|
355
|
+
|
426
356
|
this._trigger( "change", event, uiHash );
|
427
357
|
}
|
428
358
|
},
|
@@ -487,10 +417,8 @@ $.widget( "ui.slider", $.ui.mouse, {
|
|
487
417
|
this.handles.filter( ".ui-state-focus" ).blur();
|
488
418
|
this.handles.removeClass( "ui-state-hover" );
|
489
419
|
this.handles.prop( "disabled", true );
|
490
|
-
this.element.addClass( "ui-disabled" );
|
491
420
|
} else {
|
492
421
|
this.handles.prop( "disabled", false );
|
493
|
-
this.element.removeClass( "ui-disabled" );
|
494
422
|
}
|
495
423
|
break;
|
496
424
|
case "orientation":
|
@@ -641,6 +569,83 @@ $.widget( "ui.slider", $.ui.mouse, {
|
|
641
569
|
this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
|
642
570
|
}
|
643
571
|
}
|
572
|
+
},
|
573
|
+
|
574
|
+
_handleEvents: {
|
575
|
+
keydown: function( event ) {
|
576
|
+
/*jshint maxcomplexity:25*/
|
577
|
+
var allowed, curVal, newVal, step,
|
578
|
+
index = $( event.target ).data( "ui-slider-handle-index" );
|
579
|
+
|
580
|
+
switch ( event.keyCode ) {
|
581
|
+
case $.ui.keyCode.HOME:
|
582
|
+
case $.ui.keyCode.END:
|
583
|
+
case $.ui.keyCode.PAGE_UP:
|
584
|
+
case $.ui.keyCode.PAGE_DOWN:
|
585
|
+
case $.ui.keyCode.UP:
|
586
|
+
case $.ui.keyCode.RIGHT:
|
587
|
+
case $.ui.keyCode.DOWN:
|
588
|
+
case $.ui.keyCode.LEFT:
|
589
|
+
event.preventDefault();
|
590
|
+
if ( !this._keySliding ) {
|
591
|
+
this._keySliding = true;
|
592
|
+
$( event.target ).addClass( "ui-state-active" );
|
593
|
+
allowed = this._start( event, index );
|
594
|
+
if ( allowed === false ) {
|
595
|
+
return;
|
596
|
+
}
|
597
|
+
}
|
598
|
+
break;
|
599
|
+
}
|
600
|
+
|
601
|
+
step = this.options.step;
|
602
|
+
if ( this.options.values && this.options.values.length ) {
|
603
|
+
curVal = newVal = this.values( index );
|
604
|
+
} else {
|
605
|
+
curVal = newVal = this.value();
|
606
|
+
}
|
607
|
+
|
608
|
+
switch ( event.keyCode ) {
|
609
|
+
case $.ui.keyCode.HOME:
|
610
|
+
newVal = this._valueMin();
|
611
|
+
break;
|
612
|
+
case $.ui.keyCode.END:
|
613
|
+
newVal = this._valueMax();
|
614
|
+
break;
|
615
|
+
case $.ui.keyCode.PAGE_UP:
|
616
|
+
newVal = this._trimAlignValue( curVal + ( (this._valueMax() - this._valueMin()) / numPages ) );
|
617
|
+
break;
|
618
|
+
case $.ui.keyCode.PAGE_DOWN:
|
619
|
+
newVal = this._trimAlignValue( curVal - ( (this._valueMax() - this._valueMin()) / numPages ) );
|
620
|
+
break;
|
621
|
+
case $.ui.keyCode.UP:
|
622
|
+
case $.ui.keyCode.RIGHT:
|
623
|
+
if ( curVal === this._valueMax() ) {
|
624
|
+
return;
|
625
|
+
}
|
626
|
+
newVal = this._trimAlignValue( curVal + step );
|
627
|
+
break;
|
628
|
+
case $.ui.keyCode.DOWN:
|
629
|
+
case $.ui.keyCode.LEFT:
|
630
|
+
if ( curVal === this._valueMin() ) {
|
631
|
+
return;
|
632
|
+
}
|
633
|
+
newVal = this._trimAlignValue( curVal - step );
|
634
|
+
break;
|
635
|
+
}
|
636
|
+
|
637
|
+
this._slide( event, index, newVal );
|
638
|
+
},
|
639
|
+
keyup: function( event ) {
|
640
|
+
var index = $( event.target ).data( "ui-slider-handle-index" );
|
641
|
+
|
642
|
+
if ( this._keySliding ) {
|
643
|
+
this._keySliding = false;
|
644
|
+
this._stop( event, index );
|
645
|
+
this._change( event, index );
|
646
|
+
$( event.target ).removeClass( "ui-state-active" );
|
647
|
+
}
|
648
|
+
}
|
644
649
|
}
|
645
650
|
|
646
651
|
});
|