{"version":3,"file":"kendo.circularprogressbar.min.js","names":["factory","define","amd","$","undefined$1","window","kendo","dataviz","interpolateValue","drawing","ui","Widget","Surface","geometry","Animation","Arc","limitValue","round","DrawingGroup","Group","PointerAnimation","extend","init","element","options","fn","call","this","animationOptions","color","endColor","startColor","duration","Math","abs","newAngle","oldAngle","Color","step","pos","that","angle","setEndAngle","r","g","b","stroke","toHex","CircularProgressBar","userOptions","theme","themes","themeName","lowerName","toLowerCase","SASS_THEMES","indexOf","autoTheme","gauge","themeOptions","_value","value","addClass","redraw","_centerTemplate","_aria","name","ariaRole","centerTemplate","colors","transitions","pointerWidth","indeterminate","label","labelId","events","_restrictValue","_centerSvgElements","_pointerChange","_updateProgress","_initSurface","_buildVisual","_draw","resize","destroy","announce","remove","wrapper","attr","role","appendTo","text","center","_getCenter","circle","_geometry","x","y","arc","geometryChange","position","template","centerElement","_getCenterElement","html","_getColor","_centerTemplatePosition","width","height","css","_centerElement","append","oldValue","newValue","_slotAngle","play","surface","clear","draw","_visuals","find","innerHTML","format","visuals","pointer","radius","min","circleGeometry","Circle","fill","scale","rangePlaceholderColor","_createArc","currentValue","isNumber","idx","length","range","rangeColor","from","to","endAngle","rangeRadius","rangeSize","rangeGeom","radiusX","radiusY","startAngle","opacity","right","bottom","size","_getSize","left","top","max","Point","defaultSize","offsetWidth","offsetHeight","_surfaceElement","surfaceElement","document","createElement","appendChild","elementSize","create","type","renderAs","plugin","jQuery"],"sources":["kendo.circularprogressbar.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.dataviz.themes'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"circularprogressBar\",\n name: \"CircularProgressBar\",\n category: \"web\",\n description: \"The Circular ProgressBar component represents an SVG loader\",\n depends: [ \"core\", \"dataviz.themes\" ]\n };\n\n (function($, undefined$1) {\n\n window.kendo.dataviz = window.kendo.dataviz || {};\n var dataviz = kendo.dataviz;\n var interpolateValue = dataviz.interpolateValue;\n var drawing = kendo.drawing;\n var ui = kendo.ui;\n var Widget = ui.Widget;\n var Surface = drawing.Surface;\n var geometry = kendo.geometry;\n var Animation = drawing.Animation;\n var Arc = drawing.Arc;\n var limitValue = dataviz.limitValue;\n var round = dataviz.round;\n var DrawingGroup = drawing.Group;\n var DEFAULT_HEIGHT = 200;\n var GEO_ARC_ADJUST_ANGLE = 180;\n var MINVALUE = 0;\n var MAXVALUE = 100;\n var DEFAULT_MARGIN = 5;\n var ANGULAR_SPEED = 150;\n var DEFAULT_WIDTH = 200;\n var MAX_DURATION = 800;\n var announceElement = '';\n\n var PointerAnimation = Animation.extend({\n init: function(element, options) {\n Animation.fn.init.call(this, element, options);\n\n var animationOptions = this.options;\n var color = options.endColor;\n var startColor = options.startColor;\n var duration = (Math.abs(animationOptions.newAngle - animationOptions.oldAngle) / animationOptions.duration) * 1000;\n animationOptions.duration = limitValue(duration, ANGULAR_SPEED, MAX_DURATION);\n\n this.element = element;\n\n if (startColor !== color) {\n this.startColor = new kendo.Color(startColor);\n this.color = new kendo.Color(color);\n }\n },\n\n step: function(pos) {\n var that = this;\n var options = that.options;\n var startColor = that.startColor;\n var color = that.color;\n var angle = interpolateValue(options.oldAngle, options.newAngle, pos);\n\n this.element.geometry().setEndAngle(angle);\n\n if (color) {\n var r = round(interpolateValue(startColor.r, color.r, pos));\n var g = round(interpolateValue(startColor.g, color.g, pos));\n var b = round(interpolateValue(startColor.b, color.b, pos));\n\n this.element.stroke(new kendo.Color(r, g, b).toHex());\n }\n },\n });\n\n var CircularProgressBar = Widget.extend({\n init: function(element, userOptions) {\n\n var that = this;\n Widget.fn.init.call(that, element, userOptions);\n this.theme = themeOptions(this.options);\n this._value = this.options.value;\n this.element.addClass(\"k-gauge\");\n\n this.redraw();\n this._centerTemplate();\n this._aria();\n },\n\n options: {\n name: \"CircularProgressBar\",\n ariaRole: false,\n theme: \"default\",\n centerTemplate: '',\n color: \"\",\n colors: [],\n transitions: true,\n pointerWidth: 5,\n indeterminate: false,\n label: null,\n labelId: null\n },\n\n events: [ ],\n\n value: function(value) {\n var that = this;\n\n if (value === undefined$1) {\n return that._value;\n }\n\n value = that._restrictValue(value);\n\n that._centerSvgElements();\n that._pointerChange(that._value, value);\n that._value = value;\n that._centerTemplate();\n that._updateProgress();\n },\n\n redraw: function() {\n this._initSurface();\n this._buildVisual();\n this._draw();\n },\n\n resize: function() {\n var transitions = this.options.transitions;\n\n this.options.transitions = false;\n this._initSurface();\n this._buildVisual();\n this._draw();\n this._centerTemplate();\n this.options.transitions = transitions;\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 _aria: function() {\n var that = this,\n options = that.options,\n value = that.value() || 0,\n wrapper = that.element;\n\n if (!options.ariaRole) {\n return;\n }\n\n wrapper.attr({\n \"role\": \"progressbar\"\n });\n\n if (!options.indeterminate) {\n wrapper.attr({\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100\n });\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 = $(announceElement);\n that.announce.appendTo($(\"body\"));\n\n if (!options.indeterminate) {\n wrapper.attr(\"aria-valuenow\", value);\n\n that.announce.text(value + \"%\");\n } else {\n that.announce.text(\"Loading...\");\n }\n },\n\n _restrictValue: function(value) {\n\n if (value < MINVALUE) {\n return MINVALUE;\n }\n\n if (value > MAXVALUE) {\n return MAXVALUE;\n }\n\n return value;\n },\n\n _updateProgress: function() {\n var that = this;\n var options = that.options;\n var value = that.value() || 0;\n\n if (options.ariaRole && !options.indeterminate) {\n that.element.attr(\"aria-valuenow\", value);\n\n if (that.announce) {\n that.announce.text(value + \"%\");\n }\n }\n },\n\n _centerSvgElements: function() {\n var center = this._getCenter();\n\n if (this.circle._geometry.center.x !== center.x ||\n this.circle._geometry.center.y !== center.y) {\n\n this.circle._geometry.center.x = center.x;\n this.circle._geometry.center.y = center.y;\n this.arc._geometry.center.x = center.x;\n this.arc._geometry.center.y = center.y;\n this.circle.geometryChange();\n this.arc.geometryChange();\n }\n },\n\n _centerTemplate: function() {\n var position;\n var template;\n var centerElement;\n\n if (this.options.centerTemplate) {\n template = kendo.template(this.options.centerTemplate);\n\n centerElement = this._getCenterElement();\n\n centerElement.html(template({ color: this._getColor(this.value()), value: this.value() }));\n\n position = this._centerTemplatePosition(centerElement.width(), centerElement.height());\n\n centerElement.css(position);\n } else if (this._centerElement) {\n this._centerElement.remove();\n this._centerElement = null;\n }\n },\n\n _getCenterElement: function() {\n var centerElement = this._centerElement;\n if (!centerElement) {\n centerElement = this._centerElement = $('
').addClass('k-arcgauge-label');\n this.element.append(centerElement);\n }\n\n return centerElement;\n },\n\n _pointerChange: function(oldValue, newValue) {\n var animation;\n\n if (this.options.transitions) {\n animation = new PointerAnimation(this.arc, {\n oldAngle: this._slotAngle(oldValue),\n startColor: this._getColor(oldValue),\n newAngle: this._slotAngle(newValue),\n endColor: this._getColor(newValue)\n });\n animation.play();\n } else {\n this.arc.stroke(this._getColor(newValue));\n this.arc.geometry().setEndAngle(this._slotAngle(newValue));\n }\n },\n\n _draw: function() {\n var arc;\n var center;\n var animation;\n var surface = this.surface;\n\n surface.clear();\n surface.draw(this._visuals);\n\n if (this.options.indeterminate) {\n arc = surface.element.find(\"path\");\n center = this._getCenter();\n arc[0].innerHTML = kendo.format('', center.x, center.y);\n } else if (this.options.transitions) {\n animation = new PointerAnimation(this.arc, {\n oldAngle: this._slotAngle(0),\n startColor: this._getColor(0),\n newAngle: this._slotAngle(this.value()),\n endColor: this._getColor(this.value()),\n });\n animation.play();\n }\n },\n\n\n _buildVisual: function() {\n var visuals = this._visuals = new DrawingGroup();\n var center = this._getCenter();\n var color = this._getColor(this.value()) || this.theme.pointer.color;\n var radius = Math.min(center.x, center.y) - DEFAULT_MARGIN - this.options.pointerWidth;\n\n var circleGeometry = new geometry.Circle([center.x, center.y], radius + (this.options.pointerWidth / 2));\n var circle = this.circle = new drawing.Circle(circleGeometry, {\n fill: { color: \"none\" },\n stroke: { color: this.theme.scale.rangePlaceholderColor, width: this.options.pointerWidth }\n });\n\n visuals.append(circle);\n\n if (this.options.indeterminate) {\n this.arc = this._createArc(360, radius, center, color);\n } else {\n this.arc = this._createArc(this._slotAngle(this.value()), radius, center, color);\n }\n\n visuals.append(this.arc);\n },\n\n _slotAngle: function(value) {\n var result;\n\n result = ((value - MINVALUE) / (MAXVALUE) * 360) + 90;\n\n return result + GEO_ARC_ADJUST_ANGLE;\n },\n\n _getColor: function(value) {\n var options = this.options;\n var colors = options.colors;\n var color = options.color;\n var currentValue = dataviz.isNumber(value) ? value : 0;\n\n if (colors) {\n for (var idx = 0; idx < colors.length; idx++) {\n var range = colors[idx];\n var rangeColor = range.color;\n var from = range.from; if (from === void 0) { from = 0; }\n var to = range.to; if (to === void 0) { to = 100; }\n\n if (from <= currentValue && currentValue <= to) {\n return rangeColor;\n }\n }\n }\n\n return color;\n },\n\n _createArc: function(endAngle, rangeRadius, center, color) {\n var rangeSize = this.options.pointerWidth;\n var rangeGeom = new geometry.Arc([center.x, center.y], {\n radiusX: rangeRadius + (rangeSize / 2),\n radiusY: rangeRadius + (rangeSize / 2),\n startAngle: 270,\n endAngle: endAngle\n });\n\n return new Arc(rangeGeom, {\n stroke: {\n width: rangeSize,\n color: this.options.color || color,\n opacity: this.options.opacity\n }\n });\n },\n\n _centerTemplatePosition: function(width, height) {\n var size = this._getSize();\n var center = this._getCenter();\n\n var left = center.x - width / 2;\n var top = center.y - height / 2;\n var right;\n var bottom;\n\n if (width < size.width) {\n right = left + width;\n\n left = Math.max(left, 0);\n\n if (right > size.width) {\n left -= right - size.width;\n }\n }\n\n if (height < size.height) {\n bottom = top + height;\n\n if (bottom > size.height) {\n top -= bottom - size.height;\n }\n }\n\n return {\n left: left,\n top: top\n };\n },\n\n _getCenter: function() {\n var size = this._getSize();\n return new dataviz.Point(size.width / 2, size.height / 2);\n },\n\n _getSize: function() {\n var element = this.element;\n var defaultSize = {\n width: DEFAULT_WIDTH,\n height: DEFAULT_HEIGHT\n };\n var width = element[0].offsetWidth;\n var height = element[0].offsetHeight;\n\n if (!width) {\n width = defaultSize.width;\n }\n\n if (!height) {\n height = defaultSize.height;\n }\n\n return { width: width, height: height };\n },\n\n _surfaceElement: function() {\n if (!this.surfaceElement) {\n this.surfaceElement = document.createElement('div');\n this.element[0].appendChild(this.surfaceElement);\n }\n\n return this.surfaceElement;\n },\n\n _initSurface: function() {\n var that = this;\n var options = that.options;\n var surface = that.surface;\n var element = this._surfaceElement();\n var size = this._getSize();\n\n dataviz.elementSize(element, size);\n\n if (!surface) {\n this.surface = Surface.create(element, {\n type: options.renderAs\n });\n } else {\n this.surface.clear();\n this.surface.resize();\n }\n }\n\n });\n\n function themeOptions(options) {\n var themes = dataviz.ui.themes || {};\n var themeName = options.theme || \"\";\n var lowerName = themeName.toLowerCase();\n\n if (dataviz.SASS_THEMES.indexOf(lowerName) != -1) {\n return dataviz.autoTheme().gauge;\n }\n\n return (themes[themeName] || themes[lowerName] || {}).gauge;\n }\n\n ui.plugin(CircularProgressBar);\n\n })(window.kendo.jQuery);\n\n}));\n"]}