aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
Diffstat (limited to 'ui')
-rw-r--r--ui/i18n/jquery.ui.datepicker-pl.js2
-rw-r--r--ui/jquery.ui.accordion.js4
-rw-r--r--ui/jquery.ui.autocomplete.js11
-rw-r--r--ui/jquery.ui.core.js6
-rw-r--r--ui/jquery.ui.slider.js735
-rw-r--r--ui/jquery.ui.tooltip.js145
-rw-r--r--ui/jquery.ui.widget.js4
7 files changed, 412 insertions, 495 deletions
diff --git a/ui/i18n/jquery.ui.datepicker-pl.js b/ui/i18n/jquery.ui.datepicker-pl.js
index 2d2d4d765..d315bf523 100644
--- a/ui/i18n/jquery.ui.datepicker-pl.js
+++ b/ui/i18n/jquery.ui.datepicker-pl.js
@@ -10,7 +10,7 @@ jQuery(function($){
'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
'Lip','Sie','Wrz','Pa','Lis','Gru'],
- dayNames: ['Niedziela','Poniedzialek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
+ dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
weekHeader: 'Tydz',
diff --git a/ui/jquery.ui.accordion.js b/ui/jquery.ui.accordion.js
index bce78231b..0ac478b73 100644
--- a/ui/jquery.ui.accordion.js
+++ b/ui/jquery.ui.accordion.js
@@ -140,9 +140,9 @@ $.widget("ui.accordion", {
this.headers
.unbind(".accordion")
.removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top")
- .removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");
+ .removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
- this.headers.find("a").removeAttr("tabindex");
+ this.headers.find("a").removeAttr("tabIndex");
this._destroyIcons();
var contents = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");
if (o.autoHeight || o.fillHeight) {
diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js
index a1d798c59..14a19e4b2 100644
--- a/ui/jquery.ui.autocomplete.js
+++ b/ui/jquery.ui.autocomplete.js
@@ -83,6 +83,7 @@ $.widget( "ui.autocomplete", {
}
})
.bind( "focus.autocomplete", function() {
+ self.selectedItem = null;
self.previous = self.element.val();
})
.bind( "blur.autocomplete", function( event ) {
@@ -91,6 +92,7 @@ $.widget( "ui.autocomplete", {
// TODO try to implement this without a timeout, see clearTimeout in search()
self.closing = setTimeout(function() {
self.close( event );
+ self._change( event );
}, 150 );
});
this._initSource();
@@ -116,11 +118,13 @@ $.widget( "ui.autocomplete", {
self.element.val( item.value );
}
self.close( event );
- self.previous = self.element.val();
// only trigger when focus was lost (click on menu)
+ var previous = self.previous;
if ( self.element[0] !== doc.activeElement ) {
self.element.focus();
+ self.previous = previous;
}
+ self.selectedItem = item;
},
blur: function( event, ui ) {
if ( self.menu.element.is(":visible") ) {
@@ -219,8 +223,11 @@ $.widget( "ui.autocomplete", {
this.menu.element.hide();
this.menu.deactivate();
}
+ },
+
+ _change: function( event ) {
if ( this.previous !== this.element.val() ) {
- this._trigger( "change", event );
+ this._trigger( "change", event, { item: this.selectedItem } );
}
},
diff --git a/ui/jquery.ui.core.js b/ui/jquery.ui.core.js
index 197a1aba9..c0eab46b4 100644
--- a/ui/jquery.ui.core.js
+++ b/ui/jquery.ui.core.js
@@ -118,15 +118,13 @@ $.fn.extend({
enableSelection: function() {
return this
.attr('unselectable', 'off')
- .css('MozUserSelect', '')
- .unbind('selectstart.ui');
+ .css('MozUserSelect', '');
},
disableSelection: function() {
return this
.attr('unselectable', 'on')
- .css('MozUserSelect', 'none')
- .bind('selectstart.ui', function() { return false; });
+ .css('MozUserSelect', 'none');
},
scrollParent: function() {
diff --git a/ui/jquery.ui.slider.js b/ui/jquery.ui.slider.js
index 185fe809c..440e75635 100644
--- a/ui/jquery.ui.slider.js
+++ b/ui/jquery.ui.slider.js
@@ -13,28 +13,32 @@
* jquery.ui.widget.js
*/
-(function($) {
+(function( $ ) {
// number of pages in a slider
// (how many times can you page up/down to go through the whole range)
var numPages = 5;
-$.widget("ui.slider", $.ui.mouse, {
+$.widget( "ui.slider", $.ui.mouse, {
+
widgetEventPrefix: "slide",
+
options: {
animate: false,
distance: 0,
max: 100,
min: 0,
- orientation: 'horizontal',
+ orientation: "horizontal",
range: false,
step: 1,
value: 0,
values: null
},
+
_create: function() {
+ var self = this,
+ o = this.options;
- var self = this, o = this.options;
this._keySliding = false;
this._mouseSliding = false;
this._animateOff = true;
@@ -43,197 +47,218 @@ $.widget("ui.slider", $.ui.mouse, {
this._mouseInit();
this.element
- .addClass("ui-slider"
- + " ui-slider-" + this.orientation
- + " ui-widget"
- + " ui-widget-content"
- + " ui-corner-all");
+ .addClass( "ui-slider" +
+ " ui-slider-" + this.orientation +
+ " ui-widget" +
+ " ui-widget-content" +
+ " ui-corner-all" );
- if (o.disabled) {
- this.element.addClass('ui-slider-disabled ui-disabled');
+ if ( o.disabled ) {
+ this.element.addClass( "ui-slider-disabled ui-disabled" );
}
this.range = $([]);
- if (o.range) {
-
- if (o.range === true) {
- this.range = $('<div></div>');
- if (!o.values) o.values = [this._valueMin(), this._valueMin()];
- if (o.values.length && o.values.length != 2) {
- o.values = [o.values[0], o.values[0]];
+ if ( o.range ) {
+ if ( o.range === true ) {
+ this.range = $( "<div></div>" );
+ if ( !o.values ) {
+ o.values = [ this._valueMin(), this._valueMin() ];
+ }
+ if ( o.values.length && o.values.length !== 2 ) {
+ o.values = [ o.values[0], o.values[0] ];
}
} else {
- this.range = $('<div></div>');
+ this.range = $( "<div></div>" );
}
this.range
- .appendTo(this.element)
- .addClass("ui-slider-range");
+ .appendTo( this.element )
+ .addClass( "ui-slider-range" );
- if (o.range == "min" || o.range == "max") {
- this.range.addClass("ui-slider-range-" + o.range);
+ if ( o.range === "min" || o.range === "max" ) {
+ this.range.addClass( "ui-slider-range-" + o.range );
}
// note: this isn't the most fittingly semantic framework class for this element,
// but worked best visually with a variety of themes
- this.range.addClass("ui-widget-header");
-
+ this.range.addClass( "ui-widget-header" );
}
- if ($(".ui-slider-handle", this.element).length == 0)
- $('<a href="#"></a>')
- .appendTo(this.element)
- .addClass("ui-slider-handle");
+ if ( $( ".ui-slider-handle", this.element ).length === 0 ) {
+ $( "<a href='#'></a>" )
+ .appendTo( this.element )
+ .addClass( "ui-slider-handle" );
+ }
- if (o.values && o.values.length) {
- while ($(".ui-slider-handle", this.element).length < o.values.length)
- $('<a href="#"></a>')
- .appendTo(this.element)
- .addClass("ui-slider-handle");
+ if ( o.values && o.values.length ) {
+ while ( $(".ui-slider-handle", this.element).length < o.values.length ) {
+ $( "<a href='#'></a>" )
+ .appendTo( this.element )
+ .addClass( "ui-slider-handle" );
+ }
}
- this.handles = $(".ui-slider-handle", this.element)
- .addClass("ui-state-default"
- + " ui-corner-all");
+ this.handles = $( ".ui-slider-handle", this.element )
+ .addClass( "ui-state-default" +
+ " ui-corner-all" );
- this.handle = this.handles.eq(0);
+ this.handle = this.handles.eq( 0 );
- this.handles.add(this.range).filter("a")
- .click(function(event) {
+ this.handles.add( this.range ).filter( "a" )
+ .click(function( event ) {
event.preventDefault();
})
.hover(function() {
- if (!o.disabled) {
- $(this).addClass('ui-state-hover');
+ if ( !o.disabled ) {
+ $( this ).addClass( "ui-state-hover" );
}
}, function() {
- $(this).removeClass('ui-state-hover');
+ $( this ).removeClass( "ui-state-hover" );
})
.focus(function() {
- if (!o.disabled) {
- $(".ui-slider .ui-state-focus").removeClass('ui-state-focus'); $(this).addClass('ui-state-focus');
+ if ( !o.disabled ) {
+ $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );
+ $( this ).addClass( "ui-state-focus" );
} else {
- $(this).blur();
+ $( this ).blur();
}
})
.blur(function() {
- $(this).removeClass('ui-state-focus');
+ $( this ).removeClass( "ui-state-focus" );
});
- this.handles.each(function(i) {
- $(this).data("index.ui-slider-handle", i);
+ this.handles.each(function( i ) {
+ $( this ).data( "index.ui-slider-handle", i );
});
- this.handles.keydown(function(event) {
-
- var ret = true;
-
- var index = $(this).data("index.ui-slider-handle");
-
- if (self.options.disabled)
- return;
-
- switch (event.keyCode) {
- case $.ui.keyCode.HOME:
- case $.ui.keyCode.END:
- case $.ui.keyCode.PAGE_UP:
- case $.ui.keyCode.PAGE_DOWN:
- case $.ui.keyCode.UP:
- case $.ui.keyCode.RIGHT:
- case $.ui.keyCode.DOWN:
- case $.ui.keyCode.LEFT:
- ret = false;
- if (!self._keySliding) {
- self._keySliding = true;
- $(this).addClass("ui-state-active");
- self._start(event, index);
- }
- break;
- }
-
- var curVal, newVal, step = self.options.step;
- if (self.options.values && self.options.values.length) {
- curVal = newVal = self.values(index);
- } else {
- curVal = newVal = self.value();
- }
-
- switch (event.keyCode) {
- case $.ui.keyCode.HOME:
- newVal = self._valueMin();
- break;
- case $.ui.keyCode.END:
- newVal = self._valueMax();
- break;
- case $.ui.keyCode.PAGE_UP:
- newVal = curVal + ((self._valueMax() - self._valueMin()) / numPages);
- break;
- case $.ui.keyCode.PAGE_DOWN:
- newVal = curVal - ((self._valueMax() - self._valueMin()) / numPages);
- break;
- case $.ui.keyCode.UP:
- case $.ui.keyCode.RIGHT:
- if(curVal == self._valueMax()) return;
- newVal = curVal + step;
- break;
- case $.ui.keyCode.DOWN:
- case $.ui.keyCode.LEFT:
- if(curVal == self._valueMin()) return;
- newVal = curVal - step;
- break;
- }
-
- self._slide(event, index, newVal);
-
- return ret;
-
- }).keyup(function(event) {
-
- var index = $(this).data("index.ui-slider-handle");
-
- if (self._keySliding) {
- self._keySliding = false;
- self._stop(event, index);
- self._change(event, index);
- $(this).removeClass("ui-state-active");
- }
-
- });
+ this.handles
+ .keydown(function( event ) {
+ var ret = true,
+ index = $( this ).data( "index.ui-slider-handle" ),
+ allowed,
+ curVal,
+ newVal,
+ step;
+
+ if ( self.options.disabled ) {
+ return;
+ }
+
+ switch ( event.keyCode ) {
+ case $.ui.keyCode.HOME:
+ case $.ui.keyCode.END:
+ case $.ui.keyCode.PAGE_UP:
+ case $.ui.keyCode.PAGE_DOWN:
+ case $.ui.keyCode.UP:
+ case $.ui.keyCode.RIGHT:
+ case $.ui.keyCode.DOWN:
+ case $.ui.keyCode.LEFT:
+ ret = false;
+ if ( !self._keySliding ) {
+ self._keySliding = true;
+ $( this ).addClass( "ui-state-active" );
+ allowed = self._start( event, index );
+ if ( allowed === false ) {
+ return;
+ }
+ }
+ break;
+ }
+
+ step = self.options.step;
+ if ( self.options.values && self.options.values.length ) {
+ curVal = newVal = self.values( index );
+ } else {
+ curVal = newVal = self.value();
+ }
+
+ switch ( event.keyCode ) {
+ case $.ui.keyCode.HOME:
+ newVal = self._valueMin();
+ break;
+ case $.ui.keyCode.END:
+ newVal = self._valueMax();
+ break;
+ case $.ui.keyCode.PAGE_UP:
+ newVal = curVal + ( (self._valueMax() - self._valueMin()) / numPages );
+ break;
+ case $.ui.keyCode.PAGE_DOWN:
+ newVal = curVal - ( (self._valueMax() - self._valueMin()) / numPages );
+ break;
+ case $.ui.keyCode.UP:
+ case $.ui.keyCode.RIGHT:
+ if ( curVal === self._valueMax() ) {
+ return;
+ }
+ newVal = curVal + step;
+ break;
+ case $.ui.keyCode.DOWN:
+ case $.ui.keyCode.LEFT:
+ if ( curVal === self._valueMin() ) {
+ return;
+ }
+ newVal = curVal - step;
+ break;
+ }
+
+ self._slide( event, index, newVal );
+
+ return ret;
+
+ })
+ .keyup(function( event ) {
+ var index = $( this ).data( "index.ui-slider-handle" );
+
+ if ( self._keySliding ) {
+ self._keySliding = false;
+ self._stop( event, index );
+ self._change( event, index );
+ $( this ).removeClass( "ui-state-active" );
+ }
+
+ });
this._refreshValue();
this._animateOff = false;
-
},
destroy: function() {
-
this.handles.remove();
this.range.remove();
this.element
- .removeClass("ui-slider"
- + " ui-slider-horizontal"
- + " ui-slider-vertical"
- + " ui-slider-disabled"
- + " ui-widget"
- + " ui-widget-content"
- + " ui-corner-all")
- .removeData("slider")
- .unbind(".slider");
+ .removeClass( "ui-slider" +
+ " ui-slider-horizontal" +
+ " ui-slider-vertical" +
+ " ui-slider-disabled" +
+ " ui-widget" +
+ " ui-widget-content" +
+ " ui-corner-all" )
+ .removeData( "slider" )
+ .unbind( ".slider" );
this._mouseDestroy();
return this;
},
- _mouseCapture: function(event) {
-
- var o = this.options;
-
- if (o.disabled)
+ _mouseCapture: function( event ) {
+ var o = this.options,
+ position,
+ normValue,
+ distance,
+ closestHandle,
+ self,
+ index,
+ allowed,
+ offset,
+ mouseOverHandle;
+
+ if ( o.disabled ) {
return false;
+ }
this.elementSize = {
width: this.element.outerWidth(),
@@ -241,16 +266,15 @@ $.widget("ui.slider", $.ui.mouse, {
};
this.elementOffset = this.element.offset();
- var position = { x: event.pageX, y: event.pageY };
- var normValue = this._normValueFromMouse(position);
-
- var distance = this._valueMax() - this._valueMin() + 1, closestHandle;
- var self = this, index;
- this.handles.each(function(i) {
- var thisDistance = Math.abs(normValue - self.values(i));
- if (distance > thisDistance) {
+ position = { x: event.pageX, y: event.pageY };
+ normValue = this._normValueFromMouse( position );
+ distance = this._valueMax() - this._valueMin() + 1;
+ self = this;
+ this.handles.each(function( i ) {
+ var thisDistance = Math.abs( normValue - self.values(i) );
+ if ( distance > thisDistance ) {
distance = thisDistance;
- closestHandle = $(this);
+ closestHandle = $( this );
index = i;
}
});
@@ -258,216 +282,218 @@ $.widget("ui.slider", $.ui.mouse, {
// workaround for bug #3736 (if both handles of a range are at 0,
// the first is always used as the one with least distance,
// and moving it is obviously prevented by preventing negative ranges)
- if(o.range == true && this.values(1) == o.min) {
- closestHandle = $(this.handles[++index]);
+ if( o.range === true && this.values(1) === o.min ) {
+ index += 1;
+ closestHandle = $( this.handles[index] );
}
- this._start(event, index);
+ allowed = this._start( event, index );
+ if ( allowed === false ) {
+ return false;
+ }
this._mouseSliding = true;
self._handleIndex = index;
closestHandle
- .addClass("ui-state-active")
+ .addClass( "ui-state-active" )
.focus();
- var offset = closestHandle.offset();
- var mouseOverHandle = !$(event.target).parents().andSelf().is('.ui-slider-handle');
+ offset = closestHandle.offset();
+ mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" );
this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
- left: event.pageX - offset.left - (closestHandle.width() / 2),
- top: event.pageY - offset.top
- - (closestHandle.height() / 2)
- - (parseInt(closestHandle.css('borderTopWidth'),10) || 0)
- - (parseInt(closestHandle.css('borderBottomWidth'),10) || 0)
- + (parseInt(closestHandle.css('marginTop'),10) || 0)
+ left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
+ top: event.pageY - offset.top -
+ ( closestHandle.height() / 2 ) -
+ ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -
+ ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +
+ ( parseInt( closestHandle.css("marginTop"), 10 ) || 0)
};
- normValue = this._normValueFromMouse(position);
- this._slide(event, index, normValue);
+ normValue = this._normValueFromMouse( position );
+ this._slide( event, index, normValue );
this._animateOff = true;
return true;
-
},
- _mouseStart: function(event) {
+ _mouseStart: function( event ) {
return true;
},
- _mouseDrag: function(event) {
-
- var position = { x: event.pageX, y: event.pageY };
- var normValue = this._normValueFromMouse(position);
+ _mouseDrag: function( event ) {
+ var position = { x: event.pageX, y: event.pageY },
+ normValue = this._normValueFromMouse( position );
- this._slide(event, this._handleIndex, normValue);
+ this._slide( event, this._handleIndex, normValue );
return false;
-
},
- _mouseStop: function(event) {
-
- this.handles.removeClass("ui-state-active");
+ _mouseStop: function( event ) {
+ this.handles.removeClass( "ui-state-active" );
this._mouseSliding = false;
- this._stop(event, this._handleIndex);
- this._change(event, this._handleIndex);
+
+ this._stop( event, this._handleIndex );
+ this._change( event, this._handleIndex );
+
this._handleIndex = null;
this._clickOffset = null;
-
this._animateOff = false;
- return false;
+ return false;
},
_detectOrientation: function() {
- this.orientation = this.options.orientation == 'vertical' ? 'vertical' : 'horizontal';
+ this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
},
- _normValueFromMouse: function(position) {
+ _normValueFromMouse: function( position ) {
+ var pixelTotal,
+ pixelMouse,
+ percentMouse,
+ valueTotal,
+ valueMouse;
- var pixelTotal, pixelMouse;
- if ('horizontal' == this.orientation) {
+ if ( this.orientation === "horizontal" ) {
pixelTotal = this.elementSize.width;
- pixelMouse = position.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0);
+ pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
} else {
pixelTotal = this.elementSize.height;
- pixelMouse = position.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0);
+ pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
}
- var percentMouse = (pixelMouse / pixelTotal);
- if (percentMouse > 1) percentMouse = 1;
- if (percentMouse < 0) percentMouse = 0;
- if ('vertical' == this.orientation)
+ percentMouse = ( pixelMouse / pixelTotal );
+ if ( percentMouse > 1 ) {
+ percentMouse = 1;
+ }
+ if ( percentMouse < 0 ) {
+ percentMouse = 0;
+ }
+ if ( this.orientation === "vertical" ) {
percentMouse = 1 - percentMouse;
+ }
- var valueTotal = this._valueMax() - this._valueMin(),
- valueMouse = percentMouse * valueTotal,
- valueMouseModStep = valueMouse % this.options.step,
- normValue = this._valueMin() + valueMouse - valueMouseModStep;
-
- if (valueMouseModStep > (this.options.step / 2))
- normValue += this.options.step;
-
- // Since JavaScript has problems with large floats, round
- // the final value to 5 digits after the decimal point (see #4124)
- return parseFloat(normValue.toFixed(5));
+ valueTotal = this._valueMax() - this._valueMin();
+ valueMouse = this._valueMin() + percentMouse * valueTotal;
+ return this._trimAlignValue( valueMouse );
},
- _start: function(event, index) {
+ _start: function( event, index ) {
var uiHash = {
- handle: this.handles[index],
+ handle: this.handles[ index ],
value: this.value()
};
- if (this.options.values && this.options.values.length) {
- uiHash.value = this.values(index);
+ if ( this.options.values && this.options.values.length ) {
+ uiHash.value = this.values( index );
uiHash.values = this.values();
}
- this._trigger("start", event, uiHash);
+ return this._trigger( "start", event, uiHash );
},
- _slide: function(event, index, newVal) {
+ _slide: function( event, index, newVal ) {
+ var otherVal,
+ newValues,
+ allowed;
- var handle = this.handles[index];
+ if ( this.options.values && this.options.values.length ) {
+ otherVal = this.values( index ? 0 : 1 );
- if (this.options.values && this.options.values.length) {
-
- var otherVal = this.values(index ? 0 : 1);
-
- if ((this.options.values.length == 2 && this.options.range === true) &&
- ((index == 0 && newVal > otherVal) || (index == 1 && newVal < otherVal))){
- newVal = otherVal;
+ if ( ( this.options.values.length === 2 && this.options.range === true ) &&
+ ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
+ ) {
+ newVal = otherVal;
}
- if (newVal != this.values(index)) {
- var newValues = this.values();
- newValues[index] = newVal;
+ if ( newVal !== this.values( index ) ) {
+ newValues = this.values();
+ newValues[ index ] = newVal;
// A slide can be canceled by returning false from the slide callback
- var allowed = this._trigger("slide", event, {
- handle: this.handles[index],
+ allowed = this._trigger( "slide", event, {
+ handle: this.handles[ index ],
value: newVal,
values: newValues
- });
- var otherVal = this.values(index ? 0 : 1);
- if (allowed !== false) {
- this.values(index, newVal, true);
+ } );
+ otherVal = this.values( index ? 0 : 1 );
+ if ( allowed !== false ) {
+ this.values( index, newVal, true );
}
}
-
} else {
-
- if (newVal != this.value()) {
+ if ( newVal !== this.value() ) {
// A slide can be canceled by returning false from the slide callback
- var allowed = this._trigger("slide", event, {
- handle: this.handles[index],
+ allowed = this._trigger( "slide", event, {
+ handle: this.handles[ index ],
value: newVal
- });
- if (allowed !== false) {
- this.value(newVal);
+ } );
+ if ( allowed !== false ) {
+ this.value( newVal );
}
-
}
-
}
-
},
- _stop: function(event, index) {
+ _stop: function( event, index ) {
var uiHash = {
- handle: this.handles[index],
+ handle: this.handles[ index ],
value: this.value()
};
- if (this.options.values && this.options.values.length) {
- uiHash.value = this.values(index);
+ if ( this.options.values && this.options.values.length ) {
+ uiHash.value = this.values( index );
uiHash.values = this.values();
}
- this._trigger("stop", event, uiHash);
+
+ this._trigger( "stop", event, uiHash );
},
- _change: function(event, index) {
- if (!this._keySliding && !this._mouseSliding) {
+ _change: function( event, index ) {
+ if ( !this._keySliding && !this._mouseSliding ) {
var uiHash = {
- handle: this.handles[index],
+ handle: this.handles[ index ],
value: this.value()
};
- if (this.options.values && this.options.values.length) {
- uiHash.value = this.values(index);
+ if ( this.options.values && this.options.values.length ) {
+ uiHash.value = this.values( index );
uiHash.values = this.values();
}
- this._trigger("change", event, uiHash);
+
+ this._trigger( "change", event, uiHash );
}
},
- value: function(newValue) {
-
- if (arguments.length) {
- this.options.value = this._trimValue(newValue);
+ value: function( newValue ) {
+ if ( arguments.length ) {
+ this.options.value = this._trimAlignValue( newValue );
this._refreshValue();
- this._change(null, 0);
+ this._change( null, 0 );
}
return this._value();
-
},
- values: function(index, newValue) {
+ values: function( index, newValue ) {
+ var vals,
+ newValues,
+ i;
- if (arguments.length > 1) {
- this.options.values[index] = this._trimValue(newValue);
+ if ( arguments.length > 1 ) {
+ this.options.values[ index ] = this._trimAlignValue( newValue );
this._refreshValue();
- this._change(null, index);
+ this._change( null, index );
}
- if (arguments.length) {
- if ($.isArray(arguments[0])) {
- var vals = this.options.values, newValues = arguments[0];
- for (var i = 0, l = vals.length; i < l; i++) {
- vals[i] = this._trimValue(newValues[i]);
- this._change(null, i);
+ if ( arguments.length ) {
+ if ( $.isArray( arguments[ 0 ] ) ) {
+ vals = this.options.values;
+ newValues = arguments[ 0 ];
+ for ( i = 0; i < vals.length; i += 1 ) {
+ vals[ i ] = this._trimAlignValue( newValues[ i ] );
+ this._change( null, i );
}
this._refreshValue();
} else {
- if (this.options.values && this.options.values.length) {
- return this._values(index);
+ if ( this.options.values && this.options.values.length ) {
+ return this._values( index );
} else {
return this.value();
}
@@ -475,97 +501,107 @@ $.widget("ui.slider", $.ui.mouse, {
} else {
return this._values();
}
-
},
- _setOption: function(key, value) {
-
+ _setOption: function( key, value ) {
var i,
valsLength = 0;
- if ( jQuery.isArray(this.options.values) ) {
+
+ if ( $.isArray( this.options.values ) ) {
valsLength = this.options.values.length;
- };
+ }
- $.Widget.prototype._setOption.apply(this, arguments);
+ $.Widget.prototype._setOption.apply( this, arguments );
- switch (key) {
- case 'disabled':
- if (value) {
- this.handles.filter(".ui-state-focus").blur();
- this.handles.removeClass("ui-state-hover");
- this.handles.attr("disabled", "disabled");
- this.element.addClass("ui-disabled");
+ switch ( key ) {
+ case "disabled":
+ if ( value ) {
+ this.handles.filter( ".ui-state-focus" ).blur();
+ this.handles.removeClass( "ui-state-hover" );
+ this.handles.attr( "disabled", "disabled" );
+ this.element.addClass( "ui-disabled" );
} else {
- this.handles.removeAttr("disabled");
- this.element.removeClass("ui-disabled");
+ this.handles.removeAttr( "disabled" );
+ this.element.removeClass( "ui-disabled" );
}
- case 'orientation':
-
+ break;
+ case "orientation":
this._detectOrientation();
-
this.element
- .removeClass("ui-slider-horizontal ui-slider-vertical")
- .addClass("ui-slider-" + this.orientation);
+ .removeClass( "ui-slider-horizontal ui-slider-vertical" )
+ .addClass( "ui-slider-" + this.orientation );
this._refreshValue();
break;
- case 'value':
+ case "value":
this._animateOff = true;
this._refreshValue();
- this._change(null, 0);
+ this._change( null, 0 );
this._animateOff = false;
break;
- case 'values':
+ case "values":
this._animateOff = true;
this._refreshValue();
- for (i = 0; i < valsLength; i++) {
- this._change(null, i);
+ for ( i = 0; i < valsLength; i += 1 ) {
+ this._change( null, i );
}
this._animateOff = false;
break;
}
-
},
+ //internal value getter
+ // _value() returns value trimmed by min and max, aligned by step
_value: function() {
- //internal value getter
- // _value() returns value trimmed by min and max
var val = this.options.value;
- val = this._trimValue(val);
+ val = this._trimAlignValue( val );
return val;
},
- _values: function(index) {
- //internal values getter
- // _values() returns array of values trimmed by min and max
- // _values(index) returns single value trimmed by min and max
+ //internal values getter
+ // _values() returns array of values trimmed by min and max, aligned by step
+ // _values( index ) returns single value trimmed by min and max, aligned by step
+ _values: function( index ) {
+ var val,
+ vals,
+ i;
- if (arguments.length) {
- var val = this.options.values[index];
- val = this._trimValue(val);
+ if ( arguments.length ) {
+ val = this.options.values[ index ];
+ val = this._trimAlignValue( val );
return val;
} else {
// .slice() creates a copy of the array
// this copy gets trimmed by min and max and then returned
- var vals = this.options.values.slice();
- for (var i = 0, l = vals.length; i < l; i++) {
- vals[i] = this._trimValue(vals[i]);
+ vals = this.options.values.slice();
+ for ( i = 0; i < vals.length; i+= 1) {
+ vals[ i ] = this._trimAlignValue( vals[ i ] );
}
return vals;
}
-
},
- _trimValue: function(val) {
- if (val < this._valueMin()) {
+ // returns the step-aligned value that val is closest to, between (inclusive) min and max
+ _trimAlignValue: function( val ) {
+ if ( val < this._valueMin() ) {
return this._valueMin();
}
- if (val > this._valueMax()) {
+ if ( val > this._valueMax() ) {
return this._valueMax();
}
- return val;
+ var step = this.options.step,
+ valModStep = val % step,
+ alignValue = val - valModStep;
+
+ if ( valModStep >= ( step / 2 ) ) {
+ alignValue += step;
+ }
+
+ // Since JavaScript has problems with large floats, round
+ // the final value to 5 digits after the decimal point (see #4124)
+ return parseFloat( alignValue.toFixed(5) );
},
_valueMin: function() {
@@ -577,49 +613,70 @@ $.widget("ui.slider", $.ui.mouse, {
},
_refreshValue: function() {
-
- var oRange = this.options.range, o = this.options, self = this;
- var animate = (!this._animateOff) ? o.animate : false;
-
- if (this.options.values && this.options.values.length) {
- var vp0, vp1;
- this.handles.each(function(i, j) {
- var valPercent = (self.values(i) - self._valueMin()) / (self._valueMax() - self._valueMin()) * 100;
- var _set = {}; _set[self.orientation == 'horizontal' ? 'left' : 'bottom'] = valPercent + '%';
- $(this).stop(1,1)[animate ? 'animate' : 'css'](_set, o.animate);
- if (self.options.range === true) {
- if (self.orientation == 'horizontal') {
- (i == 0) && self.range.stop(1,1)[animate ? 'animate' : 'css']({ left: valPercent + '%' }, o.animate);
- (i == 1) && self.range[animate ? 'animate' : 'css']({ width: (valPercent - lastValPercent) + '%' }, { queue: false, duration: o.animate });
+ var oRange = this.options.range,
+ o = this.options,
+ self = this,
+ animate = ( !this._animateOff ) ? o.animate : false,
+ valPercent,
+ _set = {},
+ lastValPercent,
+ value,
+ valueMin,
+ valueMax;
+
+ if ( this.options.values && this.options.values.length ) {
+ this.handles.each(function( i, j ) {
+ valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100;
+ _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+ $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+ if ( self.options.range === true ) {
+ if ( self.orientation === "horizontal" ) {
+ if ( i === 0 ) {
+ self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
+ }
+ if ( i === 1 ) {
+ self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
+ }
} else {
- (i == 0) && self.range.stop(1,1)[animate ? 'animate' : 'css']({ bottom: (valPercent) + '%' }, o.animate);
- (i == 1) && self.range[animate ? 'animate' : 'css']({ height: (valPercent - lastValPercent) + '%' }, { queue: false, duration: o.animate });
+ if ( i === 0 ) {
+ self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
+ }
+ if ( i === 1 ) {
+ self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
+ }
}
}
lastValPercent = valPercent;
});
} else {
- var value = this.value(),
- valueMin = this._valueMin(),
- valueMax = this._valueMax(),
- valPercent = valueMax != valueMin
- ? (value - valueMin) / (valueMax - valueMin) * 100
- : 0;
- var _set = {}; _set[self.orientation == 'horizontal' ? 'left' : 'bottom'] = valPercent + '%';
- this.handle.stop(1,1)[animate ? 'animate' : 'css'](_set, o.animate);
-
- (oRange == "min") && (this.orientation == "horizontal") && this.range.stop(1,1)[animate ? 'animate' : 'css']({ width: valPercent + '%' }, o.animate);
- (oRange == "max") && (this.orientation == "horizontal") && this.range[animate ? 'animate' : 'css']({ width: (100 - valPercent) + '%' }, { queue: false, duration: o.animate });
- (oRange == "min") && (this.orientation == "vertical") && this.range.stop(1,1)[animate ? 'animate' : 'css']({ height: valPercent + '%' }, o.animate);
- (oRange == "max") && (this.orientation == "vertical") && this.range[animate ? 'animate' : 'css']({ height: (100 - valPercent) + '%' }, { queue: false, duration: o.animate });
+ value = this.value();
+ valueMin = this._valueMin();
+ valueMax = this._valueMax();
+ valPercent = ( valueMax !== valueMin ) ?
+ ( value - valueMin ) / ( valueMax - valueMin ) * 100 :
+ 0;
+ _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+ this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+
+ if ( oRange === "min" && this.orientation === "horizontal" ) {
+ this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate );
+ }
+ if ( oRange === "max" && this.orientation === "horizontal" ) {
+ this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
+ }
+ if ( oRange === "min" && this.orientation === "vertical" ) {
+ this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate );
+ }
+ if ( oRange === "max" && this.orientation === "vertical" ) {
+ this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
+ }
}
-
}
-
+
});
-$.extend($.ui.slider, {
+$.extend( $.ui.slider, {
version: "@VERSION"
});
-})(jQuery);
+}(jQuery));
diff --git a/ui/jquery.ui.tooltip.js b/ui/jquery.ui.tooltip.js
deleted file mode 100644
index 166bff407..000000000
--- a/ui/jquery.ui.tooltip.js
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * jQuery UI Tooltip @VERSION
- *
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI/Tooltip
- *
- * Depends:
- * jquery.ui.core.js
- * jquery.ui.widget.js
- * jquery.ui.position.js
- */
-(function($) {
-
-// role=application on body required for screenreaders to correctly interpret aria attributes
-if( !$(document.body).is('[role]') ){
- $(document.body).attr('role','application');
-}
-
-var increments = 0;
-
-$.widget("ui.tooltip", {
- options: {
- tooltipClass: "ui-widget-content",
- content: function() {
- return $(this).attr("title");
- },
- position: {
- my: "left center",
- at: "right center",
- offset: "15 0"
- }
- },
- _init: function() {
- var self = this;
- this.tooltip = $("<div></div>")
- .attr("id", "ui-tooltip-" + increments++)
- .attr("role", "tooltip")
- .attr("aria-hidden", "true")
- .addClass("ui-tooltip ui-widget ui-corner-all")
- .addClass(this.options.tooltipClass)
- .appendTo(document.body)
- .hide();
- this.tooltipContent = $("<div></div>")
- .addClass("ui-tooltip-content")
- .appendTo(this.tooltip);
- this.opacity = this.tooltip.css("opacity");
- this.element
- .bind("focus.tooltip mouseenter.tooltip", function(event) {
- self.open();
- })
- .bind("blur.tooltip mouseleave.tooltip", function(event) {
- self.close();
- });
- },
-
- enable: function() {
- this.options.disabled = false;
- },
-
- disable: function() {
- this.options.disabled = true;
- },
-
- destroy: function() {
- this.tooltip.remove();
- $.Widget.prototype.destroy.apply(this, arguments);
- },
-
- widget: function() {
- return this.tooltip;
- },
-
- open: function() {
- var target = this.element;
- // already visible? possible when both focus and mouseover events occur
- if (this.current && this.current[0] == target[0])
- return;
- var self = this;
- this.current = target;
- this.currentTitle = target.attr("title");
- var content = this.options.content.call(target[0], function(response) {
- // ignore async responses that come in after the tooltip is already hidden
- if (self.current == target)
- self._show(target, response);
- });
- if (content) {
- self._show(target, content);
- }
- },
-
- _show: function(target, content) {
- if (!content)
- return;
-
- target.attr("title", "");
-
- if (this.options.disabled)
- return;
-
- this.tooltipContent.html(content);
- this.tooltip.css({
- top: 0,
- left: 0
- }).position($.extend(this.options.position, {
- of: target
- }));
-
- this.tooltip.attr("aria-hidden", "false");
- target.attr("aria-describedby", this.tooltip.attr("id"));
-
- if (this.tooltip.is(":animated"))
- this.tooltip.stop().show().fadeTo("normal", this.opacity);
- else
- this.tooltip.is(':visible') ? this.tooltip.fadeTo("normal", this.opacity) : this.tooltip.fadeIn();
-
- this._trigger( "open" );
- },
-
- close: function() {
- if (!this.current)
- return;
-
- var current = this.current.attr("title", this.currentTitle);
- this.current = null;
-
- if (this.options.disabled)
- return;
-
- current.removeAttr("aria-describedby");
- this.tooltip.attr("aria-hidden", "true");
-
- if (this.tooltip.is(':animated'))
- this.tooltip.stop().fadeTo("normal", 0);
- else
- this.tooltip.stop().fadeOut();
-
- this._trigger( "close" );
- }
-
-});
-
-})(jQuery); \ No newline at end of file
diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js
index 49067449d..a9829d2e5 100644
--- a/ui/jquery.ui.widget.js
+++ b/ui/jquery.ui.widget.js
@@ -155,7 +155,7 @@ $.Widget.prototype = {
.removeAttr( "aria-disabled" )
.removeClass(
this.widgetBaseClass + "-disabled " +
- this.namespace + "-state-disabled" );
+ "ui-state-disabled" );
},
widget: function() {
@@ -192,7 +192,7 @@ $.Widget.prototype = {
this.widget()
[ value ? "addClass" : "removeClass"](
this.widgetBaseClass + "-disabled" + " " +
- this.namespace + "-state-disabled" )
+ "ui-state-disabled" )
.attr( "aria-disabled", value );
}