/*! * jQuery UI Progressbar - v1.10.4 * http://jqueryui.com * * Copyright 2014 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/progressbar/ */ define([ 'jquery', 'jquery-ui-modules/core', 'jquery-ui-modules/widget' ], function ($, undefined) { $.widget("ui.progressbar", { version: "1.10.4", 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 = $("
") .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 = $("").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"); } } }); });