{"version":3,"sources":["kendo.progressbar.js"],"names":["f","define","$","undefined","kendo","window","ui","Widget","HORIZONTAL","VERTICAL","DEFAULTMIN","DEFAULTMAX","DEFAULTVALUE","DEFAULTCHUNKCOUNT","KPROGRESSBAR","KPROGRESSBARREVERSE","KPROGRESSBARINDETERMINATE","KPROGRESSBARCOMPLETE","KPROGRESSWRAPPER","KPROGRESSSTATUS","LABEL_POSITION_END","KCOMPLETEDCHUNK","KUPCOMINGCHUNK","STATEDISABLED","PROGRESSTYPE","VALUE","PERCENT","CHUNK","CHANGE","COMPLETE","BOOLEAN","math","Math","extend","proxy","HUNDREDPERCENT","DEFAULTANIMATIONDURATION","PRECISION","templates","progressStatus","announceElement","ProgressBar","init","element","options","that","this","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","aria-valuemin","aria-valuemax","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","progress","_onProgressAnimate","complete","_onProgressAnimateComplete","always","show","e","progressStatusWrapSize","progressInPercent","elem","style","css","currentValue","progressValue","progressWrapperSize","hide","trigger","destroy","remove","i","chunkSize","html","append","first","end","last","_normalizeChunkSize","lastChunk","currentSize","difference","_calculateChunkSize","chunkContainer","_onePercent","abs","plugin","amd","a1","a2","a3"],"mappings":"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","file":"kendo.progressbar.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.progressbar', ['kendo.core'], f);\n}(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 (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, HORIZONTAL = 'horizontal', VERTICAL = 'vertical', DEFAULTMIN = 0, DEFAULTMAX = 100, DEFAULTVALUE = 0, DEFAULTCHUNKCOUNT = 5, KPROGRESSBAR = 'k-progressbar', KPROGRESSBARREVERSE = 'k-progressbar-reverse', KPROGRESSBARINDETERMINATE = 'k-progressbar-indeterminate', KPROGRESSBARCOMPLETE = 'k-complete', KPROGRESSWRAPPER = 'k-state-selected', KPROGRESSSTATUS = 'k-progress-status', LABEL_POSITION_END = 'k-progress-end', KCOMPLETEDCHUNK = 'k-state-selected', KUPCOMINGCHUNK = 'k-state-default', STATEDISABLED = 'k-state-disabled', PROGRESSTYPE = {\n VALUE: 'value',\n PERCENT: 'percent',\n CHUNK: 'chunk'\n }, CHANGE = 'change', COMPLETE = 'complete', BOOLEAN = 'boolean', math = Math, extend = $.extend, proxy = $.proxy, HUNDREDPERCENT = 100, DEFAULTANIMATIONDURATION = 400, PRECISION = 3, templates = {\n progressStatus: '',\n announceElement: ''\n };\n var ProgressBar = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(this, element, options);\n options = that.options;\n that._progressProperty = options.orientation === HORIZONTAL ? 'width' : 'height';\n that._fields();\n options.value = that._validateValue(options.value);\n that._validateType(options.type);\n that._wrapper();\n if (options.ariaRole) {\n that._aria();\n }\n that._progressAnimation();\n if (options.value !== options.min && options.value !== false) {\n that._updateProgress();\n }\n },\n setOptions: function (options) {\n var that = this, wrapper = that.wrapper;\n Widget.fn.setOptions.call(that, options);\n if (options.hasOwnProperty('reverse')) {\n wrapper.toggleClass('k-progressbar-reverse', options.reverse);\n }\n if (options.hasOwnProperty('enable')) {\n that.enable(options.enable);\n }\n if (options.ariaRole) {\n that._aria();\n }\n that._progressAnimation();\n that._validateValue();\n that._updateProgress();\n },\n events: [\n CHANGE,\n COMPLETE\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 _aria: function () {\n var that = this, options = that.options, wrapper = that.wrapper;\n wrapper.attr({\n 'role': 'progressbar',\n 'aria-valuemin': options.min,\n 'aria-valuemax': options.max\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 that.announce = $(templates.announceElement);\n that.announce.appendTo($('body'));\n if (options.value !== false) {\n wrapper.attr('aria-valuenow', options.value);\n that.announce.text(that._calculatePercentage().toFixed() + '%');\n }\n },\n _fields: function () {\n var that = this;\n that._isStarted = false;\n that.progressWrapper = that.progressStatus = $();\n },\n _validateType: function (currentType) {\n var isValid = false;\n $.each(PROGRESSTYPE, function (k, type) {\n if (type === currentType) {\n isValid = true;\n return false;\n }\n });\n if (!isValid) {\n throw new Error(kendo.format('Invalid ProgressBar type \\'{0}\\'', currentType));\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 container.addClass('k-widget ' + KPROGRESSBAR);\n container.addClass(KPROGRESSBAR + '-' + (orientation === HORIZONTAL ? HORIZONTAL : VERTICAL));\n if (options.enable === false) {\n container.addClass(STATEDISABLED);\n }\n if (options.reverse) {\n container.addClass(KPROGRESSBARREVERSE);\n }\n if (options.value === false) {\n container.addClass(KPROGRESSBARINDETERMINATE);\n }\n if (options.type === PROGRESSTYPE.CHUNK) {\n that._addChunkProgressWrapper();\n } else {\n if (options.showStatus) {\n that.progressStatus = that.wrapper.prepend(templates.progressStatus).find('.' + KPROGRESSSTATUS);\n if (options.type === PROGRESSTYPE.VALUE) {\n that.progressStatus.text(initialValue);\n } else {\n that.progressStatus.text(that._calculatePercentage(initialValue).toFixed() + '%');\n }\n }\n }\n },\n value: function (value) {\n return this._value(value);\n },\n _value: function (value) {\n var that = this;\n var options = that.options;\n var validated;\n if (value === undefined) {\n return options.value;\n } else {\n if (typeof value !== BOOLEAN) {\n value = that._roundValue(value);\n if (!isNaN(value)) {\n validated = that._validateValue(value);\n if (validated !== options.value) {\n that.wrapper.removeClass(KPROGRESSBARINDETERMINATE);\n options.value = validated;\n that._isStarted = true;\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 if (that.announce) {\n that.announce.text('');\n }\n }\n }\n },\n _roundValue: function (value) {\n value = parseFloat(value);\n var power = math.pow(10, PRECISION);\n return kendo._round(value * power) / power;\n },\n _validateValue: function (value) {\n var that = this;\n var options = that.options;\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 if (isNaN(that._roundValue(value))) {\n return options.min;\n }\n return value;\n },\n _updateProgress: function () {\n var that = this;\n var options = that.options;\n var percentage = that._calculatePercentage();\n if (options.type === PROGRESSTYPE.CHUNK) {\n that._updateChunks(percentage);\n that._onProgressUpdateAlways(options.value);\n } else {\n that._updateProgressWrapper(percentage);\n }\n if (options.ariaRole) {\n that.wrapper.attr('aria-valuenow', that.options.value);\n if (that.announce) {\n that.announce.text(percentage.toFixed() + '%');\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 if (options.orientation === HORIZONTAL && !options.reverse || options.orientation === VERTICAL && options.reverse) {\n completedChunks = that.wrapper.find('li.k-item').slice(0, completedChunksCount);\n } else if (completedChunksCount === 0) {\n completedChunks = kendo.jQuery();\n } else {\n completedChunks = that.wrapper.find('li.k-item').slice(completedChunksCount * -1);\n }\n that.wrapper.find('.' + KCOMPLETEDCHUNK).removeClass(KCOMPLETEDCHUNK).addClass(KUPCOMINGCHUNK);\n completedChunks.removeClass(KUPCOMINGCHUNK).addClass(KCOMPLETEDCHUNK);\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 if (progressWrapper.length === 0) {\n that._addRegularProgressWrapper();\n }\n animationCssOptions[that._progressProperty] = percentage + '%';\n that.progressWrapper.animate(animationCssOptions, {\n duration: animationDuration,\n start: proxy(that._onProgressAnimateStart, that),\n progress: proxy(that._onProgressAnimate, that),\n complete: proxy(that._onProgressAnimateComplete, that, options.value),\n always: proxy(that._onProgressUpdateAlways, that, options.value)\n });\n },\n _onProgressAnimateStart: function () {\n this.progressWrapper.show();\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 if (options.showStatus) {\n progressStatusWrapSize = 10000 / parseFloat(that.progressWrapper[0].style[that._progressProperty]);\n that.progressWrapper.find('.k-progress-status-wrap').css(that._progressProperty, progressStatusWrapSize + '%');\n }\n if (options.type !== PROGRESSTYPE.CHUNK && progressInPercent <= 98) {\n that.progressWrapper.removeClass(KPROGRESSBARCOMPLETE);\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 if (options.type !== PROGRESSTYPE.CHUNK && progressWrapperSize > 98) {\n that.progressWrapper.addClass(KPROGRESSBARCOMPLETE);\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 if (currentValue === options.min) {\n that.progressWrapper.hide();\n }\n },\n _onProgressUpdateAlways: function (currentValue) {\n var that = this;\n var options = that.options;\n if (that._isStarted) {\n that.trigger(CHANGE, { value: currentValue });\n }\n if (currentValue === options.max && that._isStarted) {\n that.trigger(COMPLETE, { value: options.max });\n }\n },\n enable: function (enable) {\n var that = this;\n var options = that.options;\n options.enable = typeof enable === 'undefined' ? true : enable;\n that.wrapper.toggleClass(STATEDISABLED, !options.enable);\n },\n destroy: function () {\n var that = this;\n if (that.announce) {\n that.announce.remove();\n }\n Widget.fn.destroy.call(that);\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 if (options.chunkCount <= 1) {\n options.chunkCount = 1;\n }\n html += '