You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					146 lines
				
				3.3 KiB
			
		
		
			
		
	
	
					146 lines
				
				3.3 KiB
			| 
											13 years ago
										 | /*!
 | ||
|  |  * jQuery UI Progressbar 1.10.3
 | ||
|  |  * http://jqueryui.com
 | ||
|  |  *
 | ||
|  |  * Copyright 2013 jQuery Foundation and other contributors
 | ||
|  |  * Released under the MIT license.
 | ||
|  |  * http://jquery.org/license
 | ||
|  |  *
 | ||
|  |  * http://api.jqueryui.com/progressbar/
 | ||
|  |  *
 | ||
|  |  * Depends:
 | ||
|  |  *   jquery.ui.core.js
 | ||
|  |  *   jquery.ui.widget.js
 | ||
|  |  */
 | ||
|  | (function( $, undefined ) {
 | ||
|  | 
 | ||
|  | $.widget( "ui.progressbar", {
 | ||
|  | 	version: "1.10.3",
 | ||
|  | 	options: {
 | ||
|  | 		max: 100,
 | ||
|  | 		value: 0,
 | ||
|  | 
 | ||
|  | 		change: null,
 | ||
|  | 		complete: null
 | ||
|  | 	},
 | ||
|  | 
 | ||
|  | 	min: 0,
 | ||
|  | 
 | ||
|  | 	_create: function() {
 | ||
|  | 		// Constrain initial value
 | ||
|  | 		this.oldValue = this.options.value = this._constrainedValue();
 | ||
|  | 
 | ||
|  | 		this.element
 | ||
|  | 			.addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
 | ||
|  | 			.attr({
 | ||
|  | 				// Only set static values, aria-valuenow and aria-valuemax are
 | ||
|  | 				// set inside _refreshValue()
 | ||
|  | 				role: "progressbar",
 | ||
|  | 				"aria-valuemin": this.min
 | ||
|  | 			});
 | ||
|  | 
 | ||
|  | 		this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
 | ||
|  | 			.appendTo( this.element );
 | ||
|  | 
 | ||
|  | 		this._refreshValue();
 | ||
|  | 	},
 | ||
|  | 
 | ||
|  | 	_destroy: function() {
 | ||
|  | 		this.element
 | ||
|  | 			.removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
 | ||
|  | 			.removeAttr( "role" )
 | ||
|  | 			.removeAttr( "aria-valuemin" )
 | ||
|  | 			.removeAttr( "aria-valuemax" )
 | ||
|  | 			.removeAttr( "aria-valuenow" );
 | ||
|  | 
 | ||
|  | 		this.valueDiv.remove();
 | ||
|  | 	},
 | ||
|  | 
 | ||
|  | 	value: function( newValue ) {
 | ||
|  | 		if ( newValue === undefined ) {
 | ||
|  | 			return this.options.value;
 | ||
|  | 		}
 | ||
|  | 
 | ||
|  | 		this.options.value = this._constrainedValue( newValue );
 | ||
|  | 		this._refreshValue();
 | ||
|  | 	},
 | ||
|  | 
 | ||
|  | 	_constrainedValue: function( newValue ) {
 | ||
|  | 		if ( newValue === undefined ) {
 | ||
|  | 			newValue = this.options.value;
 | ||
|  | 		}
 | ||
|  | 
 | ||
|  | 		this.indeterminate = newValue === false;
 | ||
|  | 
 | ||
|  | 		// sanitize value
 | ||
|  | 		if ( typeof newValue !== "number" ) {
 | ||
|  | 			newValue = 0;
 | ||
|  | 		}
 | ||
|  | 
 | ||
|  | 		return this.indeterminate ? false :
 | ||
|  | 			Math.min( this.options.max, Math.max( this.min, newValue ) );
 | ||
|  | 	},
 | ||
|  | 
 | ||
|  | 	_setOptions: function( options ) {
 | ||
|  | 		// Ensure "value" option is set after other values (like max)
 | ||
|  | 		var value = options.value;
 | ||
|  | 		delete options.value;
 | ||
|  | 
 | ||
|  | 		this._super( options );
 | ||
|  | 
 | ||
|  | 		this.options.value = this._constrainedValue( value );
 | ||
|  | 		this._refreshValue();
 | ||
|  | 	},
 | ||
|  | 
 | ||
|  | 	_setOption: function( key, value ) {
 | ||
|  | 		if ( key === "max" ) {
 | ||
|  | 			// Don't allow a max less than min
 | ||
|  | 			value = Math.max( this.min, value );
 | ||
|  | 		}
 | ||
|  | 
 | ||
|  | 		this._super( key, value );
 | ||
|  | 	},
 | ||
|  | 
 | ||
|  | 	_percentage: function() {
 | ||
|  | 		return this.indeterminate ? 100 : 100 * ( this.options.value - this.min ) / ( this.options.max - this.min );
 | ||
|  | 	},
 | ||
|  | 
 | ||
|  | 	_refreshValue: function() {
 | ||
|  | 		var value = this.options.value,
 | ||
|  | 			percentage = this._percentage();
 | ||
|  | 
 | ||
|  | 		this.valueDiv
 | ||
|  | 			.toggle( this.indeterminate || value > this.min )
 | ||
|  | 			.toggleClass( "ui-corner-right", value === this.options.max )
 | ||
|  | 			.width( percentage.toFixed(0) + "%" );
 | ||
|  | 
 | ||
|  | 		this.element.toggleClass( "ui-progressbar-indeterminate", this.indeterminate );
 | ||
|  | 
 | ||
|  | 		if ( this.indeterminate ) {
 | ||
|  | 			this.element.removeAttr( "aria-valuenow" );
 | ||
|  | 			if ( !this.overlayDiv ) {
 | ||
|  | 				this.overlayDiv = $( "<div class='ui-progressbar-overlay'></div>" ).appendTo( this.valueDiv );
 | ||
|  | 			}
 | ||
|  | 		} else {
 | ||
|  | 			this.element.attr({
 | ||
|  | 				"aria-valuemax": this.options.max,
 | ||
|  | 				"aria-valuenow": value
 | ||
|  | 			});
 | ||
|  | 			if ( this.overlayDiv ) {
 | ||
|  | 				this.overlayDiv.remove();
 | ||
|  | 				this.overlayDiv = null;
 | ||
|  | 			}
 | ||
|  | 		}
 | ||
|  | 
 | ||
|  | 		if ( this.oldValue !== value ) {
 | ||
|  | 			this.oldValue = value;
 | ||
|  | 			this._trigger( "change" );
 | ||
|  | 		}
 | ||
|  | 		if ( value === this.options.max ) {
 | ||
|  | 			this._trigger( "complete" );
 | ||
|  | 		}
 | ||
|  | 	}
 | ||
|  | });
 | ||
|  | 
 | ||
|  | })( jQuery );
 |