All Downloads are FREE. Search and download functionalities are using the official Maven repository.

template.js.base.jquery.ui.progressbar.js Maven / Gradle / Ivy

There is a newer version: 5.0.3
Show newest version
/*!
 * jQuery UI Progressbar 1.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/
 *
 * Depends:
 *   jquery.ui.core.js
 *   jquery.ui.widget.js
 */
(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"); } } }); })(jQuery);




© 2015 - 2024 Weber Informatics LLC | Privacy Policy