{"version":3,"file":"kendo.progressbar.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendoprogressbar","js","this","$","undefined$1","kendo","window","Widget","ui","HORIZONTAL","VERTICAL","KPROGRESSBAR","KPROGRESSBARINDETERMINATE","KPROGRESSBARCOMPLETE","KPROGRESSWRAPPER","KPROGRESSSTATUS","LABEL_POSITION_END","KCOMPLETEDCHUNK","STATEDISABLED","PROGRESS_VALUE","CHUNK_ITEM","PROGRESSTYPE","VALUE","PERCENT","CHUNK","CHANGE","COMPLETE","math","Math","extend","templates","progressStatus","noProgressStatus","announceElement","ProgressBar","init","element","options","that","fn","call","_progressProperty","orientation","_fields","value","_validateValue","_validateType","type","_wrapper","ariaRole","_aria","_progressAnimation","min","_updateProgress","setOptions","wrapper","hasOwnProperty","toggleClass","reverse","enable","events","name","max","chunkCount","showStatus","animation","label","labelId","attr","role","announce","appendTo","text","_calculatePercentage","toFixed","_isStarted","progressWrapper","currentType","isValid","each","k","Error","format","container","initialValue","addClass","_addChunkProgressWrapper","prepend","find","_value","validated","_roundValue","isNaN","removeClass","removeAttr","parseFloat","power","pow","_round","percentage","_updateChunks","_onProgressUpdateAlways","_updateProgressWrapper","completedChunks","percentagesPerChunk","parseInt","percentageParsed","completedChunksCount","floor","slice","jQuery","animationDuration","_animation","duration","animationCssOptions","length","_addRegularProgressWrapper","animate","start","_onProgressAnimateStart","bind","progress","_onProgressAnimate","complete","_onProgressAnimateComplete","always","show","e","progressStatusWrapSize","progressInPercent","elem","style","css","currentValue","progressValue","progressWrapperSize","hide","trigger","destroy","remove","chunkSize","html","i","append","first","end","last","_normalizeChunkSize","lastChunk","currentSize","difference","_calculateChunkSize","chunkContainer","_onePercent","abs","plugin"],"sources":["kendo.progressbar.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js')) :\n    typeof define === 'function' && define.amd ? define(['kendo.core'], factory) :\n    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendoprogressbar = global.kendoprogressbar || {}, global.kendoprogressbar.js = factory()));\n})(this, (function () {\n    var __meta__ = {\n        id: \"progressbar\",\n        name: \"ProgressBar\",\n        category: \"web\",\n        description: \"The ProgressBar offers rich functionality for displaying and tracking progress\",\n        depends: [ \"core\" ]\n    };\n\n    (function($, undefined$1) {\n        var kendo = window.kendo,\n            ui = kendo.ui,\n            Widget = ui.Widget,\n            HORIZONTAL = \"horizontal\",\n            VERTICAL = \"vertical\",\n            DEFAULTMIN = 0,\n            DEFAULTMAX = 100,\n            DEFAULTVALUE = 0,\n            DEFAULTCHUNKCOUNT = 5,\n            KPROGRESSBAR = \"k-progressbar\",\n            KPROGRESSBARREVERSE = \"k-progressbar-reverse\",\n            KPROGRESSBARINDETERMINATE = \"k-progressbar-indeterminate\",\n            KPROGRESSBARCOMPLETE = \"k-complete\",\n            KPROGRESSWRAPPER = \"k-selected\",\n            KPROGRESSSTATUS = \"k-progress-status\",\n            LABEL_POSITION_END = \"k-progress-end\",\n            KCOMPLETEDCHUNK = \"k-selected\",\n            STATEDISABLED = \"k-disabled\",\n            PROGRESS_VALUE = \"k-progressbar-value\",\n            CHUNK_ITEM = \"k-progressbar-chunk\",\n            PROGRESSTYPE = {\n                VALUE: \"value\",\n                PERCENT: \"percent\",\n                CHUNK: \"chunk\"\n            },\n            CHANGE = \"change\",\n            COMPLETE = \"complete\",\n            BOOLEAN = \"boolean\",\n            math = Math,\n            extend = $.extend,\n            HUNDREDPERCENT = 100,\n            DEFAULTANIMATIONDURATION = 400,\n            PRECISION = 3,\n            templates = {\n                progressStatus: \"<span class='k-progress-status-wrap \" + LABEL_POSITION_END + \"'><span class='k-progress-status'></span></span>\",\n                noProgressStatus: \"<span class='k-progress-status-wrap \" + LABEL_POSITION_END + \"'></span>\",\n                announceElement: '<span aria-live=\"polite\" class=\"k-sr-only k-progress-announce\"></span>'\n            };\n\n        var ProgressBar = Widget.extend({\n            init: function(element, options) {\n                var that = this;\n\n                Widget.fn.init.call(this, element, options);\n\n                options = that.options;\n\n                that._progressProperty = (options.orientation === HORIZONTAL) ? \"width\" : \"height\";\n\n                that._fields();\n\n                options.value = that._validateValue(options.value);\n\n                that._validateType(options.type);\n\n                that._wrapper();\n\n                if (options.ariaRole) {\n                    that._aria();\n                }\n\n                that._progressAnimation();\n\n                if ((options.value !== options.min) && (options.value !== false)) {\n                   that._updateProgress();\n                }\n            },\n\n            setOptions: function(options) {\n                var that = this,\n                    wrapper = that.wrapper;\n\n                Widget.fn.setOptions.call(that, options);\n\n                if (options.hasOwnProperty(\"reverse\")) {\n                    wrapper.toggleClass(\"k-progressbar-reverse\", options.reverse);\n                }\n\n                if (options.hasOwnProperty(\"enable\")) {\n                    that.enable(options.enable);\n                }\n\n                if (options.ariaRole) {\n                    that._aria();\n                }\n\n                that._progressAnimation();\n\n                that._validateValue();\n\n                that._updateProgress();\n            },\n\n            events: [\n                CHANGE,\n                COMPLETE\n            ],\n\n            options: {\n                name: \"ProgressBar\",\n                orientation: HORIZONTAL,\n                reverse: false,\n                min: DEFAULTMIN,\n                max: DEFAULTMAX,\n                value: DEFAULTVALUE,\n                enable: true,\n                type: PROGRESSTYPE.VALUE,\n                chunkCount: DEFAULTCHUNKCOUNT,\n                showStatus: true,\n                animation: { },\n                label: null,\n                labelId: null,\n                ariaRole: false\n            },\n\n            _aria: function() {\n                var that = this,\n                    options = that.options,\n                    wrapper = that.wrapper;\n\n                wrapper.attr({\n                    \"role\": \"progressbar\",\n                    \"aria-valuemin\": options.min,\n                    \"aria-valuemax\": options.max\n                });\n\n                if (!!options.labelId) {\n                    wrapper.attr(\"aria-labelledby\", options.labelId);\n                } else if (!!options.label) {\n                    wrapper.attr(\"aria-label\", options.label);\n                }\n\n                that.announce = $(templates.announceElement);\n                that.announce.appendTo($(\"body\"));\n\n                if (options.value !== false) {\n                    wrapper.attr(\"aria-valuenow\", options.value);\n\n                    that.announce.text(that._calculatePercentage().toFixed() + \"%\");\n                }\n            },\n\n            _fields: function() {\n                var that = this;\n\n                that._isStarted = false;\n\n                that.progressWrapper = that.progressStatus = $();\n            },\n\n            _validateType: function(currentType) {\n                var isValid = false;\n\n                $.each(PROGRESSTYPE, function(k, type) {\n                    if (type === currentType) {\n                        isValid = true;\n                        return false;\n                    }\n                });\n\n                if (!isValid) {\n                    throw new Error(kendo.format(\"Invalid ProgressBar type '{0}'\", currentType));\n                }\n            },\n\n            _wrapper: function() {\n                var that = this;\n                var container = that.wrapper = that.element;\n                var options = that.options;\n                var orientation = options.orientation;\n                var initialValue = (options.value !== false) ? options.value : options.min;\n\n                container.addClass(KPROGRESSBAR);\n\n                container.addClass(KPROGRESSBAR + \"-\" + ((orientation === HORIZONTAL) ? HORIZONTAL : VERTICAL));\n\n                if (options.enable === false) {\n                    container.addClass(STATEDISABLED);\n                }\n\n                if (options.reverse) {\n                    container.addClass(KPROGRESSBARREVERSE);\n                }\n\n                if (options.value === false) {\n                    container.addClass(KPROGRESSBARINDETERMINATE);\n                }\n\n                if (options.type === PROGRESSTYPE.CHUNK) {\n                    that._addChunkProgressWrapper();\n                } else {\n                    if (options.showStatus) {\n                        that.progressStatus = that.wrapper.prepend(templates.progressStatus)\n                                                  .find(\".\" + KPROGRESSSTATUS);\n\n                        if (options.type === PROGRESSTYPE.VALUE) {\n                            that.progressStatus.text(initialValue);\n                        } else {\n                            that.progressStatus.text(that._calculatePercentage(initialValue).toFixed() + \"%\");\n                        }\n                    } else {\n                        that.wrapper.prepend(templates.noProgressStatus);\n                    }\n                }\n            },\n\n            value: function(value) {\n                return this._value(value);\n            },\n\n            _value: function(value) {\n                var that = this;\n                var options = that.options;\n                var validated;\n\n                if (value === undefined$1) {\n                    return options.value;\n                } else {\n                    if (typeof value !== BOOLEAN) {\n                        value = that._roundValue(value);\n\n                        if (!isNaN(value)) {\n                            validated = that._validateValue(value);\n\n                            if (validated !== options.value) {\n                                that.wrapper.removeClass(KPROGRESSBARINDETERMINATE);\n\n                                options.value = validated;\n\n                                that._isStarted = true;\n\n                                that._updateProgress();\n                            }\n                        }\n                    } else if (!value) {\n                        that.wrapper.addClass(KPROGRESSBARINDETERMINATE);\n                        that.wrapper.removeAttr(\"aria-valuenow\");\n                        options.value = false;\n\n                        if (that.announce) {\n                            that.announce.text(\"\");\n                        }\n                    }\n                }\n            },\n\n            _roundValue: function(value) {\n                 value = parseFloat(value);\n\n                 var power = math.pow(10, PRECISION);\n\n                 return kendo._round(value * power) / power;\n            },\n\n            _validateValue: function(value) {\n                var that = this;\n                var options = that.options;\n\n                if (value !== false) {\n                    if (value <= options.min || value === true) {\n                        return options.min;\n                    } else if (value >= options.max) {\n                        return options.max;\n                    }\n                } else if (value === false) {\n                    return false;\n                }\n\n                if (isNaN(that._roundValue(value))) {\n                    return options.min;\n                }\n\n                return value;\n            },\n\n            _updateProgress: function() {\n                var that = this;\n                var options = that.options;\n                var percentage = that._calculatePercentage();\n\n                if (options.type === PROGRESSTYPE.CHUNK) {\n                    that._updateChunks(percentage);\n                    that._onProgressUpdateAlways(options.value);\n                } else {\n                    that._updateProgressWrapper(percentage);\n                }\n\n                if (options.ariaRole) {\n                    that.wrapper.attr(\"aria-valuenow\", that.options.value);\n\n                    if (that.announce) {\n                        that.announce.text(percentage.toFixed() + \"%\");\n                    }\n                }\n            },\n\n            _updateChunks: function(percentage) {\n                var that = this;\n                var options = that.options;\n                var chunkCount = options.chunkCount;\n                var percentagesPerChunk = parseInt((HUNDREDPERCENT / chunkCount) * 100, 10) / 100;\n                var percentageParsed = parseInt(percentage * 100, 10) / 100;\n                var completedChunksCount = math.floor(percentageParsed / percentagesPerChunk);\n                var completedChunks;\n\n                if ((options.orientation === HORIZONTAL && !(options.reverse)) ||\n                   (options.orientation === VERTICAL && options.reverse)) {\n                    completedChunks = that.wrapper.find(\"li.\" + CHUNK_ITEM).slice(0, completedChunksCount);\n                } else if (completedChunksCount === 0) {\n                    completedChunks = kendo.jQuery();\n                } else {\n                    completedChunks = that.wrapper.find(\"li.\" + CHUNK_ITEM).slice(completedChunksCount * -1);\n                }\n\n                that.wrapper.find(\".\" + KCOMPLETEDCHUNK)\n                            .removeClass(KCOMPLETEDCHUNK + \" \" + PROGRESS_VALUE);\n\n                completedChunks.addClass(KCOMPLETEDCHUNK + \" \" + PROGRESS_VALUE);\n            },\n\n            _updateProgressWrapper: function(percentage) {\n                var that = this;\n                var options = that.options;\n                var progressWrapper = that.wrapper.find(\".\" + KPROGRESSWRAPPER);\n                var animationDuration = that._isStarted ? that._animation.duration : 0;\n                var animationCssOptions = { };\n\n                if (progressWrapper.length === 0) {\n                    that._addRegularProgressWrapper();\n                }\n\n                animationCssOptions[that._progressProperty] = percentage + \"%\";\n                that.progressWrapper.animate(animationCssOptions, {\n                    duration: animationDuration,\n                    start: that._onProgressAnimateStart.bind(that),\n                    progress: that._onProgressAnimate.bind(that),\n                    complete: that._onProgressAnimateComplete.bind(that, options.value),\n                    always: that._onProgressUpdateAlways.bind(that, options.value)\n                });\n            },\n\n            _onProgressAnimateStart: function() {\n                this.progressWrapper.show();\n            },\n\n            _onProgressAnimate: function(e) {\n                var that = this;\n                var options = that.options;\n                var progressInPercent = parseFloat(e.elem.style[that._progressProperty], 10);\n                var progressStatusWrapSize;\n\n                if (options.showStatus) {\n                    progressStatusWrapSize = 10000 / parseFloat(that.progressWrapper[0].style[that._progressProperty]);\n\n                    that.progressWrapper.find(\".k-progress-status-wrap\").css(that._progressProperty, progressStatusWrapSize + \"%\");\n                }\n\n                if (options.type !== PROGRESSTYPE.CHUNK && progressInPercent <= 98) {\n                    that.progressWrapper.removeClass(KPROGRESSBARCOMPLETE);\n                }\n            },\n\n            _onProgressAnimateComplete: function(currentValue) {\n                var that = this;\n                var options = that.options;\n                var progressWrapperSize = parseFloat(that.progressWrapper[0].style[that._progressProperty]);\n                var progressValue;\n\n                if (options.type !== PROGRESSTYPE.CHUNK && progressWrapperSize > 98) {\n                    that.progressWrapper.addClass(KPROGRESSBARCOMPLETE);\n                }\n\n                if (options.showStatus) {\n                    if (options.type === PROGRESSTYPE.VALUE) {\n                        progressValue = currentValue;\n                    } else if (options.type == PROGRESSTYPE.PERCENT) {\n                        progressValue = that._calculatePercentage(currentValue).toFixed() + \"%\";\n                    } else {\n                        progressValue = math.floor(that._calculatePercentage(currentValue)) + \"%\";\n                    }\n                    that.progressStatus.text(progressValue);\n                }\n\n                if (currentValue === options.min) {\n                    that.progressWrapper.hide();\n                }\n            },\n\n            _onProgressUpdateAlways: function(currentValue) {\n                var that = this;\n                var options = that.options;\n\n                if (that._isStarted) {\n                    that.trigger(CHANGE, { value: currentValue });\n                }\n\n                if (currentValue === options.max && that._isStarted) {\n                    that.trigger(COMPLETE, { value: options.max });\n                }\n            },\n\n            enable: function(enable) {\n                var that = this;\n                var options = that.options;\n\n                options.enable = typeof(enable) === \"undefined\" ? true : enable;\n                that.wrapper.toggleClass(STATEDISABLED, !options.enable);\n            },\n\n            destroy: function() {\n                var that = this;\n\n                if (that.announce) {\n                    that.announce.remove();\n                }\n\n                Widget.fn.destroy.call(that);\n            },\n\n            _addChunkProgressWrapper: function() {\n                var that = this;\n                var options = that.options;\n                var container = that.wrapper;\n                var chunkSize = HUNDREDPERCENT / options.chunkCount;\n                var html = \"\";\n\n                if (options.chunkCount <= 1) {\n                    options.chunkCount = 1;\n                }\n\n                that.element.addClass(\"k-chunk-progressbar\");\n                html += \"<ul class='k-reset k-progressbar-chunks'>\";\n                for (var i = options.chunkCount - 1; i >= 0; i--) {\n                    html += \"<li class='\" + CHUNK_ITEM + \"'></li>\";\n                }\n                html += \"</ul>\";\n\n                container.append(html).find(\".\" + CHUNK_ITEM).css(that._progressProperty, chunkSize + \"%\")\n                         .first().addClass(\"k-first\")\n                         .end()\n                         .last().addClass(\"k-last\");\n\n                that._normalizeChunkSize();\n            },\n\n            _normalizeChunkSize: function() {\n                var that = this;\n                var options = that.options;\n                var lastChunk = that.wrapper.find(\".\" + CHUNK_ITEM).last();\n                var currentSize = parseFloat(lastChunk[0].style[that._progressProperty]);\n                var difference = HUNDREDPERCENT - (options.chunkCount * currentSize);\n\n                if (difference > 0) {\n                    lastChunk.css(that._progressProperty, (currentSize + difference) + \"%\");\n                }\n            },\n\n            _addRegularProgressWrapper: function() {\n                var that = this;\n\n                that.progressWrapper = $(\"<div class='\" + KPROGRESSWRAPPER + \" \" + PROGRESS_VALUE + \"'></div>\").appendTo(that.wrapper);\n\n                if (that.options.showStatus) {\n                    that.progressWrapper.append(templates.progressStatus);\n\n                    that.progressStatus = that.wrapper.find(\".\" + KPROGRESSSTATUS);\n                } else {\n                    that.progressWrapper.prepend(templates.noProgressStatus);\n                }\n            },\n\n            _calculateChunkSize: function() {\n                var that = this;\n                var chunkCount = that.options.chunkCount;\n                var chunkContainer = that.wrapper.find(\"ul.k-reset\");\n\n                return (parseInt(chunkContainer.css(that._progressProperty), 10) - (chunkCount - 1)) / chunkCount;\n            },\n\n            _calculatePercentage: function(currentValue) {\n                var that = this;\n                var options = that.options;\n                var value = (currentValue !== undefined$1) ? currentValue : options.value;\n                var min = options.min;\n                var max = options.max;\n                that._onePercent = math.abs((max - min) / 100);\n\n                return math.abs((value - min) / that._onePercent);\n            },\n\n            _progressAnimation: function() {\n                var that = this;\n                var options = that.options;\n                var animation = options.animation;\n\n                if (animation === false) {\n                    that._animation = { duration: 0 };\n                } else {\n                    that._animation = extend({\n                        duration: DEFAULTANIMATIONDURATION\n                    }, options.animation);\n                }\n            }\n        });\n\n        kendo.ui.plugin(ProgressBar);\n    })(window.kendo.jQuery);\n    var kendo$1 = kendo;\n\n    return kendo$1;\n\n}));\n"]}