{"version":3,"file":"kendo.progressbar.min.js","names":["factory","define","amd","$","undefined$1","kendo","Widget","HORIZONTAL","VERTICAL","KPROGRESSBARINDETERMINATE","KPROGRESSBARCOMPLETE","KPROGRESSSTATUS","KCOMPLETEDCHUNK","STATEDISABLED","PROGRESSTYPE","CHANGE","COMPLETE","math","extend","templates","ProgressBar","window","jQuery","ui","VALUE","PERCENT","CHUNK","Math","progressStatus","announceElement","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","announce","appendTo","text","_calculatePercentage","toFixed","_isStarted","progressWrapper","currentType","isValid","each","k","Error","format","container","initialValue","addClass","KPROGRESSBAR","_addChunkProgressWrapper","prepend","find","_value","validated","_roundValue","isNaN","removeClass","removeAttr","parseFloat","power","pow","_round","percentage","_updateChunks","_onProgressUpdateAlways","_updateProgressWrapper","completedChunks","percentagesPerChunk","parseInt","percentageParsed","completedChunksCount","floor","slice","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 (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.core'], factory) :\n factory();\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\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 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: \"\",\n announceElement: ''\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(\"k-widget \" + 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 }\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.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\n that.wrapper.find(\".\" + KCOMPLETEDCHUNK)\n .removeClass(KCOMPLETEDCHUNK);\n\n completedChunks.addClass(KCOMPLETEDCHUNK);\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 html += \"