{"version":3,"sources":["kendo.dataviz.chart.polar.js"],"names":["f","define","defined","value","UNDEFINED","round","precision","power","pow","math","p","limitValue","min","max","rad","degrees","DEG_TO_RAD","deg","radians","isNumber","val","isNaN","valueOrDefault","defaultValue","sqr","objectKey","object","key","parts","push","sort","join","hashKey","str","i","hash","length","charCodeAt","hashObject","arrayLimits","arr","MAX_NUM","MIN_NUM","arrayMin","arrayMax","sparseArrayMin","sparseArrayLimits","sparseArrayMax","n","isFinite","undefined","last","array","append","first","second","apply","renderTemplate","text","kendo","template","useWithBlock","paramName","renderAttr","name","renderAllAttr","attrs","output","renderStyle","renderSize","size","renderPos","pos","result","toHyphens","split","isTransparent","color","arabicToRoman","literals","1","10","100","2","20","200","3","30","300","4","40","400","5","50","500","6","60","600","7","70","700","8","80","800","9","90","900","1000","values","roman","shift","romanToArabic","r","digits","prev","v","toLowerCase","x","l","c","d","m","charAt","memoize","cache","Object","create","id","arguments","this","ucs2decode","string","extra","counter","ucs2encode","map","String","fromCharCode","mergeSort","a","cmp","merge","b","ai","bi","slice","left","right","Math","floor","isUnicodeLetter","ch","RX_UNICODE_LETTER","test","window","deepExtend","PI","Number","MAX_VALUE","now","Date","getTime","util","drawing","dataviz","RegExp","amd","a1","a2","a3","$","zeroSize","width","height","baseline","measureText","style","measureBox","TextMetrics","current","measure","loadFonts","fonts","callback","promises","document","font","load","e","logToConsole","Promise","all","then","doc","Class","LRUCache","extend","init","_size","_length","_map","put","lru","entry","_head","_tail","newer","older","get","defaultMeasureBox","options","_cache","_initOptions","baselineMarkerSize","box","styleKey","cacheKey","cachedResult","baselineMarker","_baselineMarker","cloneNode","appendChild","body","offsetWidth","offsetHeight","offsetTop","parentNode","removeChild","jQuery","encodeBase64","input","chr1","chr2","chr3","enc1","enc2","enc3","enc4","encodeUTF8","KEY_STR","inArray","ObserversMixin","observers","_observers","addObserver","element","removeObserver","index","splice","trigger","methodName","event","observer","idx","_suspended","optionsChange","geometryChange","suspend","resume","_observerField","field","mixins","xComparer","angularDistance","abs","RadarNumericAxisMixin","RadarNumericAxis","RadarLogarithmicAxis","PolarAxis","RadarClusterLayout","RadarStackLayout","RadarSegment","RadarBarChart","RadarLineChart","RadarAreaSegment","SplineRadarAreaSegment","RadarAreaChart","PolarScatterChart","PolarLineChart","PolarAreaSegment","SplinePolarAreaSegment","PolarAreaChart","PolarPlotAreaBase","RadarPlotArea","PolarPlotArea","draw","geom","geometry","AreaSegment","Axis","AxisGroupRangeTracker","BarChart","Box2D","CategoryAxis","CategoricalChart","CategoricalPlotArea","ChartElement","CurveProcessor","DonutSegment","LineChart","LineSegment","LogarithmicAxis","NumericAxis","PlotAreaBase","PlotAreaEventsMixin","PlotAreaFactory","Point2D","Ring","ScatterChart","ScatterLineChart","SeriesBinder","ShapeBuilder","SplineSegment","SplineAreaSegment","eventTargetElement","getSpacing","filterSeriesByType","ARC","BLACK","COORD_PRECISION","DEFAULT_PADDING","GAP","INTERPOLATE","LOGARITHMIC","POLAR_AREA","POLAR_LINE","POLAR_SCATTER","RADAR_AREA","RADAR_COLUMN","RADAR_LINE","SMOOTH","X","Y","ZERO","POLAR_CHARTS","RADAR_CHARTS","GridLinesMixin","createGridLines","altAxis","majorAngles","minorAngles","axis","radius","center","y","lineBox","y1","skipMajor","gridLines","majorGridLines","visible","majorGridLineAngles","renderMajorGridLines","minorGridLines","minorGridLineAngles","renderMinorGridLines","angles","renderGridLines","radiusCallback","line","stroke","dashType","circle","Circle","container","gridLinesVisual","Path","moveTo","lineTo","pointAt","children","gridLineAngles","skip","step","skipAngles","divs","intervals","altAxisVisible","alpha","intervalAngle","RadarCategoryAxis","startAngle","labels","margin","justified","range","categories","reflow","reflowLabels","labelBox","labelOptions","getSlot","adjacentBox","angle","divCount","divAngle","reverse","majorIntervals","minorIntervals","interval","proxy","createLine","minorAngle","minorRadius","type","cos","createPlotBands","band","slot","singleSlot","head","tail","ring","plotBands","group","_plotbandGroup","Group","zIndex","plotBandSlot","from","ceil","to","createRing","fill","opacity","appendVisual","slots","slotStart","totalDivs","slotAngle","endAngle","Arc","radiusX","radiusY","pointCategoryIndex","point","containsPoint","fn","bandStyle","shape","plotArea","polarAxis","y2","fromPoints","plotBandPoints","close","innerPoints","outerPoints","innerCircle","ir","outerCircle","concat","minorTicks","majorTicks","radarMajorGridLinePositions","radarMinorGridLinePositions","ticks","tickRadius","tickIx","angleIx","getValue","dx","dy","theta","midAngle","gamma","beta","distanceTo","distance","atan2","sin","axisType","call","x1","getTickPositions","majorUnit","minorSkipStep","minorUnit","positions","traverseMajorTicksPositions","position","traverseMinorTicksPositions","getDivisions","stepValue","divisions","tmp","start","valueRange","labelsCount","createAxisLabel","gap","spacing","sector","slotSector","cluster","count","clone","childSector","stack","isReversed","childrenCount","overlay","gradient","pointType","clusterType","stackType","categorySlot","categoryAxis","categoryIx","pointSlot","valueSlot","reflowPoint","clip","animation","createAnimation","toRect","valueRadius","onCircle","middle","createSegment","linePoints","currentSeries","seriesIx","segment","data","closed","points","stackPoints","closeFill","noop","prevSegment","chart","isStacked","seriesMissingValues","series","missingValues","slotX","slotY","parent","unshift","fillPath","_polarAxisCenter","strokeSegments","curveProcessor","segments","_strokeSegments","process","pop","createMissingValue","missingValue","hasValue","_hasMissingValuesGap","sortPoints","valueAxisRangeTracker","render","addToLegend","createPolarAxis","createCharts","createValueAxis","alignAxes","valueAxis","crossingValue","axisBox","translate","axisDefaultRange","tracker","defaultRange","query","axisOptions","valueAxisOptions","roundToMajorUnit","appendAxis","reflowAxes","heightDiff","defaultPadding","padding","unpad","valueAxisBox","shrink","top","backgroundBox","aggregateCategories","defaults","_hasBarCharts","_isStacked100","format","appendChart","aggregateSeries","panes","filterSeries","filterVisibleSeries","pane","createAreaChart","createLineChart","createBarChart","chartOptions","filteredSeries","firstSeries","isStacked100","areaChart","lineChart","barChart","seriesCategoryAxis","_dispatchEvent","eventType","category","coords","_eventCoordinates","getCategory","createCrosshairs","xAxis","yAxis","axisX","axisY","update","yAxisRanges","createScatterChart","scatterChart","xValue","yValue","register","DefaultAggregates"],"mappings":"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","file":"kendo.dataviz.chart.polar.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('util/main', ['kendo.core'], f);\n}(function () {\n (function () {\n var math = Math, kendo = window.kendo, deepExtend = kendo.deepExtend;\n var DEG_TO_RAD = math.PI / 180, MAX_NUM = Number.MAX_VALUE, MIN_NUM = -Number.MAX_VALUE, UNDEFINED = 'undefined';\n function defined(value) {\n return typeof value !== UNDEFINED;\n }\n function round(value, precision) {\n var power = pow(precision);\n return math.round(value * power) / power;\n }\n function pow(p) {\n if (p) {\n return math.pow(10, p);\n } else {\n return 1;\n }\n }\n function limitValue(value, min, max) {\n return math.max(math.min(value, max), min);\n }\n function rad(degrees) {\n return degrees * DEG_TO_RAD;\n }\n function deg(radians) {\n return radians / DEG_TO_RAD;\n }\n function isNumber(val) {\n return typeof val === 'number' && !isNaN(val);\n }\n function valueOrDefault(value, defaultValue) {\n return defined(value) ? value : defaultValue;\n }\n function sqr(value) {\n return value * value;\n }\n function objectKey(object) {\n var parts = [];\n for (var key in object) {\n parts.push(key + object[key]);\n }\n return parts.sort().join('');\n }\n function hashKey(str) {\n var hash = 2166136261;\n for (var i = 0; i < str.length; ++i) {\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n hash ^= str.charCodeAt(i);\n }\n return hash >>> 0;\n }\n function hashObject(object) {\n return hashKey(objectKey(object));\n }\n var now = Date.now;\n if (!now) {\n now = function () {\n return new Date().getTime();\n };\n }\n function arrayLimits(arr) {\n var length = arr.length, i, min = MAX_NUM, max = MIN_NUM;\n for (i = 0; i < length; i++) {\n max = math.max(max, arr[i]);\n min = math.min(min, arr[i]);\n }\n return {\n min: min,\n max: max\n };\n }\n function arrayMin(arr) {\n return arrayLimits(arr).min;\n }\n function arrayMax(arr) {\n return arrayLimits(arr).max;\n }\n function sparseArrayMin(arr) {\n return sparseArrayLimits(arr).min;\n }\n function sparseArrayMax(arr) {\n return sparseArrayLimits(arr).max;\n }\n function sparseArrayLimits(arr) {\n var min = MAX_NUM, max = MIN_NUM;\n for (var i = 0, length = arr.length; i < length; i++) {\n var n = arr[i];\n if (n !== null && isFinite(n)) {\n min = math.min(min, n);\n max = math.max(max, n);\n }\n }\n return {\n min: min === MAX_NUM ? undefined : min,\n max: max === MIN_NUM ? undefined : max\n };\n }\n function last(array) {\n if (array) {\n return array[array.length - 1];\n }\n }\n function append(first, second) {\n first.push.apply(first, second);\n return first;\n }\n function renderTemplate(text) {\n return kendo.template(text, {\n useWithBlock: false,\n paramName: 'd'\n });\n }\n function renderAttr(name, value) {\n return defined(value) && value !== null ? ' ' + name + '=\\'' + value + '\\' ' : '';\n }\n function renderAllAttr(attrs) {\n var output = '';\n for (var i = 0; i < attrs.length; i++) {\n output += renderAttr(attrs[i][0], attrs[i][1]);\n }\n return output;\n }\n function renderStyle(attrs) {\n var output = '';\n for (var i = 0; i < attrs.length; i++) {\n var value = attrs[i][1];\n if (defined(value)) {\n output += attrs[i][0] + ':' + value + ';';\n }\n }\n if (output !== '') {\n return output;\n }\n }\n function renderSize(size) {\n if (typeof size !== 'string') {\n size += 'px';\n }\n return size;\n }\n function renderPos(pos) {\n var result = [];\n if (pos) {\n var parts = kendo.toHyphens(pos).split('-');\n for (var i = 0; i < parts.length; i++) {\n result.push('k-pos-' + parts[i]);\n }\n }\n return result.join(' ');\n }\n function isTransparent(color) {\n return color === '' || color === null || color === 'none' || color === 'transparent' || !defined(color);\n }\n function arabicToRoman(n) {\n var literals = {\n 1: 'i',\n 10: 'x',\n 100: 'c',\n 2: 'ii',\n 20: 'xx',\n 200: 'cc',\n 3: 'iii',\n 30: 'xxx',\n 300: 'ccc',\n 4: 'iv',\n 40: 'xl',\n 400: 'cd',\n 5: 'v',\n 50: 'l',\n 500: 'd',\n 6: 'vi',\n 60: 'lx',\n 600: 'dc',\n 7: 'vii',\n 70: 'lxx',\n 700: 'dcc',\n 8: 'viii',\n 80: 'lxxx',\n 800: 'dccc',\n 9: 'ix',\n 90: 'xc',\n 900: 'cm',\n 1000: 'm'\n };\n var values = [\n 1000,\n 900,\n 800,\n 700,\n 600,\n 500,\n 400,\n 300,\n 200,\n 100,\n 90,\n 80,\n 70,\n 60,\n 50,\n 40,\n 30,\n 20,\n 10,\n 9,\n 8,\n 7,\n 6,\n 5,\n 4,\n 3,\n 2,\n 1\n ];\n var roman = '';\n while (n > 0) {\n if (n < values[0]) {\n values.shift();\n } else {\n roman += literals[values[0]];\n n -= values[0];\n }\n }\n return roman;\n }\n function romanToArabic(r) {\n r = r.toLowerCase();\n var digits = {\n i: 1,\n v: 5,\n x: 10,\n l: 50,\n c: 100,\n d: 500,\n m: 1000\n };\n var value = 0, prev = 0;\n for (var i = 0; i < r.length; ++i) {\n var v = digits[r.charAt(i)];\n if (!v) {\n return null;\n }\n value += v;\n if (v > prev) {\n value -= 2 * prev;\n }\n prev = v;\n }\n return value;\n }\n function memoize(f) {\n var cache = Object.create(null);\n return function () {\n var id = '';\n for (var i = arguments.length; --i >= 0;) {\n id += ':' + arguments[i];\n }\n return id in cache ? cache[id] : cache[id] = f.apply(this, arguments);\n };\n }\n function ucs2decode(string) {\n var output = [], counter = 0, length = string.length, value, extra;\n while (counter < length) {\n value = string.charCodeAt(counter++);\n if (value >= 55296 && value <= 56319 && counter < length) {\n extra = string.charCodeAt(counter++);\n if ((extra & 64512) == 56320) {\n output.push(((value & 1023) << 10) + (extra & 1023) + 65536);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n }\n function ucs2encode(array) {\n return array.map(function (value) {\n var output = '';\n if (value > 65535) {\n value -= 65536;\n output += String.fromCharCode(value >>> 10 & 1023 | 55296);\n value = 56320 | value & 1023;\n }\n output += String.fromCharCode(value);\n return output;\n }).join('');\n }\n function mergeSort(a, cmp) {\n if (a.length < 2) {\n return a.slice();\n }\n function merge(a, b) {\n var r = [], ai = 0, bi = 0, i = 0;\n while (ai < a.length && bi < b.length) {\n if (cmp(a[ai], b[bi]) <= 0) {\n r[i++] = a[ai++];\n } else {\n r[i++] = b[bi++];\n }\n }\n if (ai < a.length) {\n r.push.apply(r, a.slice(ai));\n }\n if (bi < b.length) {\n r.push.apply(r, b.slice(bi));\n }\n return r;\n }\n return function sort(a) {\n if (a.length <= 1) {\n return a;\n }\n var m = Math.floor(a.length / 2);\n var left = a.slice(0, m);\n var right = a.slice(m);\n left = sort(left);\n right = sort(right);\n return merge(left, right);\n }(a);\n }\n function isUnicodeLetter(ch) {\n return RX_UNICODE_LETTER.test(ch);\n }\n deepExtend(kendo, {\n util: {\n MAX_NUM: MAX_NUM,\n MIN_NUM: MIN_NUM,\n append: append,\n arrayLimits: arrayLimits,\n arrayMin: arrayMin,\n arrayMax: arrayMax,\n defined: defined,\n deg: deg,\n hashKey: hashKey,\n hashObject: hashObject,\n isNumber: isNumber,\n isTransparent: isTransparent,\n last: last,\n limitValue: limitValue,\n now: now,\n objectKey: objectKey,\n round: round,\n rad: rad,\n renderAttr: renderAttr,\n renderAllAttr: renderAllAttr,\n renderPos: renderPos,\n renderSize: renderSize,\n renderStyle: renderStyle,\n renderTemplate: renderTemplate,\n sparseArrayLimits: sparseArrayLimits,\n sparseArrayMin: sparseArrayMin,\n sparseArrayMax: sparseArrayMax,\n sqr: sqr,\n valueOrDefault: valueOrDefault,\n romanToArabic: romanToArabic,\n arabicToRoman: arabicToRoman,\n memoize: memoize,\n ucs2encode: ucs2encode,\n ucs2decode: ucs2decode,\n mergeSort: mergeSort,\n isUnicodeLetter: isUnicodeLetter\n }\n });\n kendo.drawing.util = kendo.util;\n kendo.dataviz.util = kendo.util;\n var RX_UNICODE_LETTER = new RegExp('[\\\\u0041-\\\\u005A\\\\u0061-\\\\u007A\\\\u00AA\\\\u00B5\\\\u00BA\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B2\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58\\\\u0C59\\\\u0C60\\\\u0C61\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D60\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F4\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19C1-\\\\u19C7\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FCC\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA78E\\\\uA790-\\\\uA7AD\\\\uA7B0\\\\uA7B1\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB5F\\\\uAB64\\\\uAB65\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]');\n }());\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('util/text-metrics', [\n 'kendo.core',\n 'util/main'\n ], f);\n}(function () {\n (function ($) {\n var doc = document, kendo = window.kendo, Class = kendo.Class, util = kendo.util, defined = util.defined;\n var LRUCache = Class.extend({\n init: function (size) {\n this._size = size;\n this._length = 0;\n this._map = {};\n },\n put: function (key, value) {\n var lru = this, map = lru._map, entry = {\n key: key,\n value: value\n };\n map[key] = entry;\n if (!lru._head) {\n lru._head = lru._tail = entry;\n } else {\n lru._tail.newer = entry;\n entry.older = lru._tail;\n lru._tail = entry;\n }\n if (lru._length >= lru._size) {\n map[lru._head.key] = null;\n lru._head = lru._head.newer;\n lru._head.older = null;\n } else {\n lru._length++;\n }\n },\n get: function (key) {\n var lru = this, entry = lru._map[key];\n if (entry) {\n if (entry === lru._head && entry !== lru._tail) {\n lru._head = entry.newer;\n lru._head.older = null;\n }\n if (entry !== lru._tail) {\n if (entry.older) {\n entry.older.newer = entry.newer;\n entry.newer.older = entry.older;\n }\n entry.older = lru._tail;\n entry.newer = null;\n lru._tail.newer = entry;\n lru._tail = entry;\n }\n return entry.value;\n }\n }\n });\n var defaultMeasureBox = $('
')[0];\n function zeroSize() {\n return {\n width: 0,\n height: 0,\n baseline: 0\n };\n }\n var TextMetrics = Class.extend({\n init: function (options) {\n this._cache = new LRUCache(1000);\n this._initOptions(options);\n },\n options: { baselineMarkerSize: 1 },\n measure: function (text, style, box) {\n if (!text) {\n return zeroSize();\n }\n var styleKey = util.objectKey(style), cacheKey = util.hashKey(text + styleKey), cachedResult = this._cache.get(cacheKey);\n if (cachedResult) {\n return cachedResult;\n }\n var size = zeroSize();\n var measureBox = box ? box : defaultMeasureBox;\n var baselineMarker = this._baselineMarker().cloneNode(false);\n for (var key in style) {\n var value = style[key];\n if (defined(value)) {\n measureBox.style[key] = value;\n }\n }\n $(measureBox).text(text);\n measureBox.appendChild(baselineMarker);\n doc.body.appendChild(measureBox);\n if ((text + '').length) {\n size.width = measureBox.offsetWidth - this.options.baselineMarkerSize;\n size.height = measureBox.offsetHeight;\n size.baseline = baselineMarker.offsetTop + this.options.baselineMarkerSize;\n }\n if (size.width > 0 && size.height > 0) {\n this._cache.put(cacheKey, size);\n }\n measureBox.parentNode.removeChild(measureBox);\n return size;\n },\n _baselineMarker: function () {\n return $('')[0];\n }\n });\n TextMetrics.current = new TextMetrics();\n function measureText(text, style, measureBox) {\n return TextMetrics.current.measure(text, style, measureBox);\n }\n function loadFonts(fonts, callback) {\n var promises = [];\n if (fonts.length > 0 && document.fonts) {\n try {\n promises = fonts.map(function (font) {\n return document.fonts.load(font);\n });\n } catch (e) {\n kendo.logToConsole(e);\n }\n Promise.all(promises).then(callback, callback);\n } else {\n callback();\n }\n }\n kendo.util.TextMetrics = TextMetrics;\n kendo.util.LRUCache = LRUCache;\n kendo.util.loadFonts = loadFonts;\n kendo.util.measureText = measureText;\n }(window.kendo.jQuery));\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('util/base64', ['util/main'], f);\n}(function () {\n (function () {\n var kendo = window.kendo, deepExtend = kendo.deepExtend, fromCharCode = String.fromCharCode;\n var KEY_STR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n function encodeBase64(input) {\n var output = '';\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0;\n input = encodeUTF8(input);\n while (i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n enc1 = chr1 >> 2;\n enc2 = (chr1 & 3) << 4 | chr2 >> 4;\n enc3 = (chr2 & 15) << 2 | chr3 >> 6;\n enc4 = chr3 & 63;\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n output = output + KEY_STR.charAt(enc1) + KEY_STR.charAt(enc2) + KEY_STR.charAt(enc3) + KEY_STR.charAt(enc4);\n }\n return output;\n }\n function encodeUTF8(input) {\n var output = '';\n for (var i = 0; i < input.length; i++) {\n var c = input.charCodeAt(i);\n if (c < 128) {\n output += fromCharCode(c);\n } else if (c < 2048) {\n output += fromCharCode(192 | c >>> 6);\n output += fromCharCode(128 | c & 63);\n } else if (c < 65536) {\n output += fromCharCode(224 | c >>> 12);\n output += fromCharCode(128 | c >>> 6 & 63);\n output += fromCharCode(128 | c & 63);\n }\n }\n return output;\n }\n deepExtend(kendo.util, {\n encodeBase64: encodeBase64,\n encodeUTF8: encodeUTF8\n });\n }());\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('mixins/observers', ['kendo.core'], f);\n}(function () {\n (function ($) {\n var math = Math, kendo = window.kendo, deepExtend = kendo.deepExtend, inArray = $.inArray;\n var ObserversMixin = {\n observers: function () {\n this._observers = this._observers || [];\n return this._observers;\n },\n addObserver: function (element) {\n if (!this._observers) {\n this._observers = [element];\n } else {\n this._observers.push(element);\n }\n return this;\n },\n removeObserver: function (element) {\n var observers = this.observers();\n var index = inArray(element, observers);\n if (index != -1) {\n observers.splice(index, 1);\n }\n return this;\n },\n trigger: function (methodName, event) {\n var observers = this._observers;\n var observer;\n var idx;\n if (observers && !this._suspended) {\n for (idx = 0; idx < observers.length; idx++) {\n observer = observers[idx];\n if (observer[methodName]) {\n observer[methodName](event);\n }\n }\n }\n return this;\n },\n optionsChange: function (e) {\n e = e || {};\n e.element = this;\n this.trigger('optionsChange', e);\n },\n geometryChange: function () {\n this.trigger('geometryChange', { element: this });\n },\n suspend: function () {\n this._suspended = (this._suspended || 0) + 1;\n return this;\n },\n resume: function () {\n this._suspended = math.max((this._suspended || 0) - 1, 0);\n return this;\n },\n _observerField: function (field, value) {\n if (this[field]) {\n this[field].removeObserver(this);\n }\n this[field] = value;\n value.addObserver(this);\n }\n };\n deepExtend(kendo, { mixins: { ObserversMixin: ObserversMixin } });\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));\n(function (f, define) {\n define('kendo.dataviz.chart.polar', [\n 'kendo.dataviz.chart',\n 'kendo.drawing'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'dataviz.chart.polar',\n name: 'Polar Charts',\n category: 'dataviz',\n depends: ['dataviz.chart'],\n hidden: true\n };\n (function ($, undefined) {\n var math = Math, kendo = window.kendo, deepExtend = kendo.deepExtend, util = kendo.util, append = util.append, draw = kendo.drawing, geom = kendo.geometry, dataviz = kendo.dataviz, AreaSegment = dataviz.AreaSegment, Axis = dataviz.Axis, AxisGroupRangeTracker = dataviz.AxisGroupRangeTracker, BarChart = dataviz.BarChart, Box2D = dataviz.Box2D, CategoryAxis = dataviz.CategoryAxis, CategoricalChart = dataviz.CategoricalChart, CategoricalPlotArea = dataviz.CategoricalPlotArea, ChartElement = dataviz.ChartElement, CurveProcessor = dataviz.CurveProcessor, DonutSegment = dataviz.DonutSegment, LineChart = dataviz.LineChart, LineSegment = dataviz.LineSegment, LogarithmicAxis = dataviz.LogarithmicAxis, NumericAxis = dataviz.NumericAxis, PlotAreaBase = dataviz.PlotAreaBase, PlotAreaEventsMixin = dataviz.PlotAreaEventsMixin, PlotAreaFactory = dataviz.PlotAreaFactory, Point2D = dataviz.Point2D, Ring = dataviz.Ring, ScatterChart = dataviz.ScatterChart, ScatterLineChart = dataviz.ScatterLineChart, SeriesBinder = dataviz.SeriesBinder, ShapeBuilder = dataviz.ShapeBuilder, SplineSegment = dataviz.SplineSegment, SplineAreaSegment = dataviz.SplineAreaSegment, eventTargetElement = dataviz.eventTargetElement, getSpacing = dataviz.getSpacing, filterSeriesByType = dataviz.filterSeriesByType, limitValue = util.limitValue, round = dataviz.round;\n var ARC = 'arc', BLACK = '#000', COORD_PRECISION = dataviz.COORD_PRECISION, DEFAULT_PADDING = 0.15, DEG_TO_RAD = math.PI / 180, GAP = 'gap', INTERPOLATE = 'interpolate', LOGARITHMIC = 'log', POLAR_AREA = 'polarArea', POLAR_LINE = 'polarLine', POLAR_SCATTER = 'polarScatter', RADAR_AREA = 'radarArea', RADAR_COLUMN = 'radarColumn', RADAR_LINE = 'radarLine', SMOOTH = 'smooth', X = 'x', Y = 'y', ZERO = 'zero', POLAR_CHARTS = [\n POLAR_AREA,\n POLAR_LINE,\n POLAR_SCATTER\n ], RADAR_CHARTS = [\n RADAR_AREA,\n RADAR_COLUMN,\n RADAR_LINE\n ];\n var GridLinesMixin = {\n createGridLines: function (altAxis) {\n var axis = this, options = axis.options, radius = math.abs(axis.box.center().y - altAxis.lineBox().y1), majorAngles, minorAngles, skipMajor = false, gridLines = [];\n if (options.majorGridLines.visible) {\n majorAngles = axis.majorGridLineAngles(altAxis);\n skipMajor = true;\n gridLines = axis.renderMajorGridLines(majorAngles, radius, options.majorGridLines);\n }\n if (options.minorGridLines.visible) {\n minorAngles = axis.minorGridLineAngles(altAxis, skipMajor);\n append(gridLines, axis.renderMinorGridLines(minorAngles, radius, options.minorGridLines, altAxis, skipMajor));\n }\n return gridLines;\n },\n renderMajorGridLines: function (angles, radius, options) {\n return this.renderGridLines(angles, radius, options);\n },\n renderMinorGridLines: function (angles, radius, options, altAxis, skipMajor) {\n var radiusCallback = this.radiusCallback && this.radiusCallback(radius, altAxis, skipMajor);\n return this.renderGridLines(angles, radius, options, radiusCallback);\n },\n renderGridLines: function (angles, radius, options, radiusCallback) {\n var style = {\n stroke: {\n width: options.width,\n color: options.color,\n dashType: options.dashType\n }\n };\n var center = this.box.center();\n var circle = new geom.Circle([\n center.x,\n center.y\n ], radius);\n var container = this.gridLinesVisual();\n for (var i = 0; i < angles.length; i++) {\n var line = new draw.Path(style);\n if (radiusCallback) {\n circle.radius = radiusCallback(angles[i]);\n }\n line.moveTo(circle.center).lineTo(circle.pointAt(angles[i]));\n container.append(line);\n }\n return container.children;\n },\n gridLineAngles: function (altAxis, size, skip, step, skipAngles) {\n var axis = this, divs = axis.intervals(size, skip, step, skipAngles), options = altAxis.options, altAxisVisible = options.visible && (options.line || {}).visible !== false;\n return $.map(divs, function (d) {\n var alpha = axis.intervalAngle(d);\n if (!altAxisVisible || alpha !== 90) {\n return alpha;\n }\n });\n }\n };\n var RadarCategoryAxis = CategoryAxis.extend({\n options: {\n startAngle: 90,\n labels: { margin: getSpacing(10) },\n majorGridLines: { visible: true },\n justified: true\n },\n range: function () {\n return {\n min: 0,\n max: this.options.categories.length\n };\n },\n reflow: function (box) {\n this.box = box;\n this.reflowLabels();\n },\n lineBox: function () {\n return this.box;\n },\n reflowLabels: function () {\n var axis = this, labelOptions = axis.options.labels, skip = labelOptions.skip || 0, step = labelOptions.step || 1, measureBox = new Box2D(), labels = axis.labels, labelBox, i;\n for (i = 0; i < labels.length; i++) {\n labels[i].reflow(measureBox);\n labelBox = labels[i].box;\n labels[i].reflow(axis.getSlot(skip + i * step).adjacentBox(0, labelBox.width(), labelBox.height()));\n }\n },\n intervals: function (size, skip, step, skipAngles) {\n var axis = this, options = axis.options, categories = options.categories.length, angle = 0, divCount = categories / size || 1, divAngle = 360 / divCount, divs = [], i;\n skip = skip || 0;\n step = step || 1;\n for (i = skip; i < divCount; i += step) {\n if (options.reverse) {\n angle = 360 - i * divAngle;\n } else {\n angle = i * divAngle;\n }\n angle = round(angle, COORD_PRECISION) % 360;\n if (!(skipAngles && dataviz.inArray(angle, skipAngles))) {\n divs.push(angle);\n }\n }\n return divs;\n },\n majorIntervals: function () {\n return this.intervals(1);\n },\n minorIntervals: function () {\n return this.intervals(0.5);\n },\n intervalAngle: function (interval) {\n return (360 + interval + this.options.startAngle) % 360;\n },\n majorAngles: function () {\n return $.map(this.majorIntervals(), $.proxy(this.intervalAngle, this));\n },\n createLine: function () {\n return [];\n },\n majorGridLineAngles: function (altAxis) {\n var majorGridLines = this.options.majorGridLines;\n return this.gridLineAngles(altAxis, 1, majorGridLines.skip, majorGridLines.step);\n },\n minorGridLineAngles: function (altAxis, skipMajor) {\n var options = this.options;\n var minorGridLines = options.minorGridLines;\n var majorGridLines = options.majorGridLines;\n var majorGridLineAngles = skipMajor ? this.intervals(1, majorGridLines.skip, majorGridLines.step) : null;\n return this.gridLineAngles(altAxis, 0.5, minorGridLines.skip, minorGridLines.step, majorGridLineAngles);\n },\n radiusCallback: function (radius, altAxis, skipMajor) {\n if (altAxis.options.type !== ARC) {\n var minorAngle = 360 / (this.options.categories.length * 2);\n var minorRadius = math.cos(minorAngle * DEG_TO_RAD) * radius;\n var majorAngles = this.majorAngles();\n var radiusCallback = function (angle) {\n if (!skipMajor && dataviz.inArray(angle, majorAngles)) {\n return radius;\n } else {\n return minorRadius;\n }\n };\n return radiusCallback;\n }\n },\n createPlotBands: function () {\n var axis = this, options = axis.options, plotBands = options.plotBands || [], i, band, slot, singleSlot, head, tail;\n var group = this._plotbandGroup = new draw.Group({ zIndex: -1 });\n for (i = 0; i < plotBands.length; i++) {\n band = plotBands[i];\n slot = axis.plotBandSlot(band);\n singleSlot = axis.getSlot(band.from);\n head = band.from - math.floor(band.from);\n slot.startAngle += head * singleSlot.angle;\n tail = math.ceil(band.to) - band.to;\n slot.angle -= (tail + head) * singleSlot.angle;\n var ring = ShapeBuilder.current.createRing(slot, {\n fill: {\n color: band.color,\n opacity: band.opacity\n },\n stroke: { opacity: band.opacity }\n });\n group.append(ring);\n }\n axis.appendVisual(group);\n },\n plotBandSlot: function (band) {\n return this.getSlot(band.from, band.to - 1);\n },\n getSlot: function (from, to) {\n var axis = this, options = axis.options, justified = options.justified, box = axis.box, divs = axis.majorAngles(), totalDivs = divs.length, slots, slotAngle = 360 / totalDivs, slotStart, angle;\n if (options.reverse && !justified) {\n from = (from + 1) % totalDivs;\n }\n from = limitValue(math.floor(from), 0, totalDivs - 1);\n slotStart = divs[from];\n if (justified) {\n slotStart = slotStart - slotAngle / 2;\n if (slotStart < 0) {\n slotStart += 360;\n }\n }\n to = limitValue(math.ceil(to || from), from, totalDivs - 1);\n slots = to - from + 1;\n angle = slotAngle * slots;\n return new Ring(box.center(), 0, box.height() / 2, slotStart, angle);\n },\n slot: function (from, to) {\n var slot = this.getSlot(from, to);\n var startAngle = slot.startAngle + 180;\n var endAngle = startAngle + slot.angle;\n return new geom.Arc([\n slot.c.x,\n slot.c.y\n ], {\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: slot.r,\n radiusY: slot.r\n });\n },\n pointCategoryIndex: function (point) {\n var axis = this, index = null, i, length = axis.options.categories.length, slot;\n for (i = 0; i < length; i++) {\n slot = axis.getSlot(i);\n if (slot.containsPoint(point)) {\n index = i;\n break;\n }\n }\n return index;\n }\n });\n deepExtend(RadarCategoryAxis.fn, GridLinesMixin);\n var RadarNumericAxisMixin = {\n options: { majorGridLines: { visible: true } },\n createPlotBands: function () {\n var axis = this, options = axis.options, plotBands = options.plotBands || [], type = options.majorGridLines.type, altAxis = axis.plotArea.polarAxis, majorAngles = altAxis.majorAngles(), center = altAxis.box.center(), i, band, bandStyle, slot, ring;\n var group = this._plotbandGroup = new draw.Group({ zIndex: -1 });\n for (i = 0; i < plotBands.length; i++) {\n band = plotBands[i];\n bandStyle = {\n fill: {\n color: band.color,\n opacity: band.opacity\n },\n stroke: { opacity: band.opacity }\n };\n slot = axis.getSlot(band.from, band.to, true);\n ring = new Ring(center, center.y - slot.y2, center.y - slot.y1, 0, 360);\n var shape;\n if (type === ARC) {\n shape = ShapeBuilder.current.createRing(ring, bandStyle);\n } else {\n shape = draw.Path.fromPoints(axis.plotBandPoints(ring, majorAngles), bandStyle).close();\n }\n group.append(shape);\n }\n axis.appendVisual(group);\n },\n plotBandPoints: function (ring, angles) {\n var innerPoints = [], outerPoints = [];\n var center = [\n ring.c.x,\n ring.c.y\n ];\n var innerCircle = new geom.Circle(center, ring.ir);\n var outerCircle = new geom.Circle(center, ring.r);\n for (var i = 0; i < angles.length; i++) {\n innerPoints.push(innerCircle.pointAt(angles[i]));\n outerPoints.push(outerCircle.pointAt(angles[i]));\n }\n innerPoints.reverse();\n innerPoints.push(innerPoints[0]);\n outerPoints.push(outerPoints[0]);\n return outerPoints.concat(innerPoints);\n },\n createGridLines: function (altAxis) {\n var axis = this, options = axis.options, majorTicks = axis.radarMajorGridLinePositions(), majorAngles = altAxis.majorAngles(), minorTicks, center = altAxis.box.center(), gridLines = [];\n if (options.majorGridLines.visible) {\n gridLines = axis.renderGridLines(center, majorTicks, majorAngles, options.majorGridLines);\n }\n if (options.minorGridLines.visible) {\n minorTicks = axis.radarMinorGridLinePositions();\n append(gridLines, axis.renderGridLines(center, minorTicks, majorAngles, options.minorGridLines));\n }\n return gridLines;\n },\n renderGridLines: function (center, ticks, angles, options) {\n var tickRadius, tickIx, angleIx;\n var style = {\n stroke: {\n width: options.width,\n color: options.color,\n dashType: options.dashType\n }\n };\n var skip = options.skip || 0;\n var step = options.step || 1;\n var container = this.gridLinesVisual();\n for (tickIx = skip; tickIx < ticks.length; tickIx += step) {\n tickRadius = center.y - ticks[tickIx];\n if (tickRadius > 0) {\n var circle = new geom.Circle([\n center.x,\n center.y\n ], tickRadius);\n if (options.type === ARC) {\n container.append(new draw.Circle(circle, style));\n } else {\n var line = new draw.Path(style);\n for (angleIx = 0; angleIx < angles.length; angleIx++) {\n line.lineTo(circle.pointAt(angles[angleIx]));\n }\n line.close();\n container.append(line);\n }\n }\n }\n return container.children;\n },\n getValue: function (point) {\n var axis = this, options = axis.options, lineBox = axis.lineBox(), altAxis = axis.plotArea.polarAxis, majorAngles = altAxis.majorAngles(), center = altAxis.box.center(), r = point.distanceTo(center), distance = r;\n if (options.majorGridLines.type !== ARC && majorAngles.length > 1) {\n var dx = point.x - center.x, dy = point.y - center.y, theta = (math.atan2(dy, dx) / DEG_TO_RAD + 540) % 360;\n majorAngles.sort(function (a, b) {\n return angularDistance(a, theta) - angularDistance(b, theta);\n });\n var midAngle = angularDistance(majorAngles[0], majorAngles[1]) / 2, alpha = angularDistance(theta, majorAngles[0]), gamma = 90 - midAngle, beta = 180 - alpha - gamma;\n distance = r * (math.sin(beta * DEG_TO_RAD) / math.sin(gamma * DEG_TO_RAD));\n }\n return axis.axisType().fn.getValue.call(axis, new Point2D(lineBox.x1, lineBox.y2 - distance));\n }\n };\n var RadarNumericAxis = NumericAxis.extend({\n radarMajorGridLinePositions: function () {\n return this.getTickPositions(this.options.majorUnit);\n },\n radarMinorGridLinePositions: function () {\n var axis = this, options = axis.options, minorSkipStep = 0;\n if (options.majorGridLines.visible) {\n minorSkipStep = options.majorUnit;\n }\n return axis.getTickPositions(options.minorUnit, minorSkipStep);\n },\n axisType: function () {\n return NumericAxis;\n }\n });\n deepExtend(RadarNumericAxis.fn, RadarNumericAxisMixin);\n var RadarLogarithmicAxis = LogarithmicAxis.extend({\n radarMajorGridLinePositions: function () {\n var axis = this, positions = [];\n axis.traverseMajorTicksPositions(function (position) {\n positions.push(position);\n }, axis.options.majorGridLines);\n return positions;\n },\n radarMinorGridLinePositions: function () {\n var axis = this, positions = [];\n axis.traverseMinorTicksPositions(function (position) {\n positions.push(position);\n }, axis.options.minorGridLines);\n return positions;\n },\n axisType: function () {\n return LogarithmicAxis;\n }\n });\n deepExtend(RadarLogarithmicAxis.fn, RadarNumericAxisMixin);\n var PolarAxis = Axis.extend({\n init: function (options) {\n var axis = this;\n Axis.fn.init.call(axis, options);\n options = axis.options;\n options.minorUnit = options.minorUnit || axis.options.majorUnit / 2;\n },\n options: {\n type: 'polar',\n startAngle: 0,\n reverse: false,\n majorUnit: 60,\n min: 0,\n max: 360,\n labels: { margin: getSpacing(10) },\n majorGridLines: {\n color: BLACK,\n visible: true,\n width: 1\n },\n minorGridLines: { color: '#aaa' }\n },\n getDivisions: function (stepValue) {\n return NumericAxis.fn.getDivisions.call(this, stepValue) - 1;\n },\n reflow: function (box) {\n this.box = box;\n this.reflowLabels();\n },\n reflowLabels: function () {\n var axis = this, options = axis.options, labelOptions = options.labels, skip = labelOptions.skip || 0, step = labelOptions.step || 1, measureBox = new Box2D(), divs = axis.intervals(options.majorUnit, skip, step), labels = axis.labels, labelBox, i;\n for (i = 0; i < labels.length; i++) {\n labels[i].reflow(measureBox);\n labelBox = labels[i].box;\n labels[i].reflow(axis.getSlot(divs[i]).adjacentBox(0, labelBox.width(), labelBox.height()));\n }\n },\n lineBox: function () {\n return this.box;\n },\n intervals: function (size, skip, step, skipAngles) {\n var axis = this, options = axis.options, divisions = axis.getDivisions(size), min = options.min, current, divs = [], i;\n skip = skip || 0;\n step = step || 1;\n for (i = skip; i < divisions; i += step) {\n current = (360 + min + i * size) % 360;\n if (!(skipAngles && dataviz.inArray(current, skipAngles))) {\n divs.push(current);\n }\n }\n return divs;\n },\n majorIntervals: function () {\n return this.intervals(this.options.majorUnit);\n },\n minorIntervals: function () {\n return this.intervals(this.options.minorUnit);\n },\n intervalAngle: function (i) {\n return (540 - i - this.options.startAngle) % 360;\n },\n majorAngles: RadarCategoryAxis.fn.majorAngles,\n createLine: function () {\n return [];\n },\n majorGridLineAngles: function (altAxis) {\n var majorGridLines = this.options.majorGridLines;\n return this.gridLineAngles(altAxis, this.options.majorUnit, majorGridLines.skip, majorGridLines.step);\n },\n minorGridLineAngles: function (altAxis, skipMajor) {\n var options = this.options;\n var minorGridLines = options.minorGridLines;\n var majorGridLines = options.majorGridLines;\n var majorGridLineAngles = skipMajor ? this.intervals(options.majorUnit, majorGridLines.skip, majorGridLines.step) : null;\n return this.gridLineAngles(altAxis, this.options.minorUnit, minorGridLines.skip, minorGridLines.step, majorGridLineAngles);\n },\n createPlotBands: RadarCategoryAxis.fn.createPlotBands,\n plotBandSlot: function (band) {\n return this.getSlot(band.from, band.to);\n },\n getSlot: function (a, b) {\n var axis = this, options = axis.options, start = options.startAngle, box = axis.box, tmp;\n a = limitValue(a, options.min, options.max);\n b = limitValue(b || a, a, options.max);\n if (options.reverse) {\n a *= -1;\n b *= -1;\n }\n a = (540 - a - start) % 360;\n b = (540 - b - start) % 360;\n if (b < a) {\n tmp = a;\n a = b;\n b = tmp;\n }\n return new Ring(box.center(), 0, box.height() / 2, a, b - a);\n },\n slot: function (from, to) {\n var options = this.options;\n var start = 360 - options.startAngle;\n var slot = this.getSlot(from, to);\n var startAngle;\n var endAngle;\n var min;\n var max;\n if (!dataviz.util.defined(to)) {\n to = from;\n }\n min = math.min(from, to);\n max = math.max(from, to);\n if (options.reverse) {\n startAngle = min;\n endAngle = max;\n } else {\n startAngle = 360 - max;\n endAngle = 360 - min;\n }\n startAngle = (startAngle + start) % 360;\n endAngle = (endAngle + start) % 360;\n return new geom.Arc([\n slot.c.x,\n slot.c.y\n ], {\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: slot.r,\n radiusY: slot.r\n });\n },\n getValue: function (point) {\n var axis = this, options = axis.options, center = axis.box.center(), dx = point.x - center.x, dy = point.y - center.y, theta = math.round(math.atan2(dy, dx) / DEG_TO_RAD), start = options.startAngle;\n if (!options.reverse) {\n theta *= -1;\n start *= -1;\n }\n return (theta + start + 360) % 360;\n },\n valueRange: function () {\n return {\n min: 0,\n max: math.PI * 2\n };\n },\n range: NumericAxis.fn.range,\n labelsCount: NumericAxis.fn.labelsCount,\n createAxisLabel: NumericAxis.fn.createAxisLabel\n });\n deepExtend(PolarAxis.fn, GridLinesMixin);\n var RadarClusterLayout = ChartElement.extend({\n options: {\n gap: 1,\n spacing: 0\n },\n reflow: function (sector) {\n var cluster = this, options = cluster.options, children = cluster.children, gap = options.gap, spacing = options.spacing, count = children.length, slots = count + gap + spacing * (count - 1), slotAngle = sector.angle / slots, slotSector, angle = sector.startAngle + slotAngle * (gap / 2), i;\n for (i = 0; i < count; i++) {\n slotSector = sector.clone();\n slotSector.startAngle = angle;\n slotSector.angle = slotAngle;\n if (children[i].sector) {\n slotSector.r = children[i].sector.r;\n }\n children[i].reflow(slotSector);\n children[i].sector = slotSector;\n angle += slotAngle + slotAngle * spacing;\n }\n }\n });\n var RadarStackLayout = ChartElement.extend({\n reflow: function (sector) {\n var stack = this, reverse = stack.options.isReversed, children = stack.children, childrenCount = children.length, childSector, i, first = reverse ? childrenCount - 1 : 0, step = reverse ? -1 : 1;\n stack.box = new Box2D();\n for (i = first; i >= 0 && i < childrenCount; i += step) {\n childSector = children[i].sector;\n childSector.startAngle = sector.startAngle;\n childSector.angle = sector.angle;\n }\n }\n });\n var RadarSegment = DonutSegment.extend({\n init: function (value, options) {\n DonutSegment.fn.init.call(this, value, null, options);\n },\n options: {\n overlay: { gradient: null },\n labels: { distance: 10 }\n }\n });\n var RadarBarChart = BarChart.extend({\n pointType: function () {\n return RadarSegment;\n },\n clusterType: function () {\n return RadarClusterLayout;\n },\n stackType: function () {\n return RadarStackLayout;\n },\n categorySlot: function (categoryAxis, categoryIx) {\n return categoryAxis.getSlot(categoryIx);\n },\n pointSlot: function (categorySlot, valueSlot) {\n var slot = categorySlot.clone(), y = categorySlot.c.y;\n slot.r = y - valueSlot.y1;\n slot.ir = y - valueSlot.y2;\n return slot;\n },\n reflow: CategoricalChart.fn.reflow,\n reflowPoint: function (point, pointSlot) {\n point.sector = pointSlot;\n point.reflow();\n },\n options: {\n clip: false,\n animation: { type: 'pie' }\n },\n createAnimation: function () {\n this.options.animation.center = this.box.toRect().center();\n BarChart.fn.createAnimation.call(this);\n }\n });\n var RadarLineChart = LineChart.extend({\n options: { clip: false },\n pointSlot: function (categorySlot, valueSlot) {\n var valueRadius = categorySlot.c.y - valueSlot.y1, slot = Point2D.onCircle(categorySlot.c, categorySlot.middle(), valueRadius);\n return new Box2D(slot.x, slot.y, slot.x, slot.y);\n },\n createSegment: function (linePoints, currentSeries, seriesIx) {\n var segment, pointType, style = currentSeries.style;\n if (style == SMOOTH) {\n pointType = SplineSegment;\n } else {\n pointType = LineSegment;\n }\n segment = new pointType(linePoints, currentSeries, seriesIx);\n if (linePoints.length === currentSeries.data.length) {\n segment.options.closed = true;\n }\n return segment;\n }\n });\n var RadarAreaSegment = AreaSegment.extend({\n points: function () {\n return LineSegment.fn.points.call(this, this.stackPoints);\n }\n });\n var SplineRadarAreaSegment = SplineAreaSegment.extend({ closeFill: $.noop });\n var RadarAreaChart = RadarLineChart.extend({\n createSegment: function (linePoints, currentSeries, seriesIx, prevSegment) {\n var chart = this, options = chart.options, isStacked = options.isStacked, stackPoints, segment, style = (currentSeries.line || {}).style;\n if (style === SMOOTH) {\n segment = new SplineRadarAreaSegment(linePoints, prevSegment, isStacked, currentSeries, seriesIx);\n segment.options.closed = true;\n } else {\n if (isStacked && seriesIx > 0 && prevSegment) {\n stackPoints = prevSegment.linePoints.slice(0).reverse();\n }\n linePoints.push(linePoints[0]);\n segment = new RadarAreaSegment(linePoints, stackPoints, currentSeries, seriesIx);\n }\n return segment;\n },\n seriesMissingValues: function (series) {\n return series.missingValues || ZERO;\n }\n });\n var PolarScatterChart = ScatterChart.extend({\n pointSlot: function (slotX, slotY) {\n var valueRadius = slotX.c.y - slotY.y1, slot = Point2D.onCircle(slotX.c, slotX.startAngle, valueRadius);\n return new Box2D(slot.x, slot.y, slot.x, slot.y);\n },\n options: { clip: false }\n });\n var PolarLineChart = ScatterLineChart.extend({\n pointSlot: PolarScatterChart.fn.pointSlot,\n options: { clip: false }\n });\n var PolarAreaSegment = AreaSegment.extend({\n points: function () {\n var segment = this, chart = segment.parent, plotArea = chart.plotArea, polarAxis = plotArea.polarAxis, center = polarAxis.box.center(), stackPoints = segment.stackPoints, points = LineSegment.fn.points.call(segment, stackPoints);\n points.unshift([\n center.x,\n center.y\n ]);\n points.push([\n center.x,\n center.y\n ]);\n return points;\n }\n });\n var SplinePolarAreaSegment = SplineAreaSegment.extend({\n closeFill: function (fillPath) {\n var center = this._polarAxisCenter();\n fillPath.lineTo(center.x, center.y);\n },\n _polarAxisCenter: function () {\n var chart = this.parent, plotArea = chart.plotArea, polarAxis = plotArea.polarAxis, center = polarAxis.box.center();\n return center;\n },\n strokeSegments: function () {\n var segments = this._strokeSegments;\n if (!segments) {\n var center = this._polarAxisCenter(), curveProcessor = new CurveProcessor(false), linePoints = LineSegment.fn.points.call(this);\n linePoints.push(center);\n segments = this._strokeSegments = curveProcessor.process(linePoints);\n segments.pop();\n }\n return segments;\n }\n });\n var PolarAreaChart = PolarLineChart.extend({\n createSegment: function (linePoints, currentSeries, seriesIx) {\n var segment, style = (currentSeries.line || {}).style;\n if (style == SMOOTH) {\n segment = new SplinePolarAreaSegment(linePoints, null, false, currentSeries, seriesIx);\n } else {\n segment = new PolarAreaSegment(linePoints, [], currentSeries, seriesIx);\n }\n return segment;\n },\n createMissingValue: function (value, missingValues) {\n var missingValue;\n if (dataviz.hasValue(value.x) && missingValues != INTERPOLATE) {\n missingValue = {\n x: value.x,\n y: value.y\n };\n if (missingValues == ZERO) {\n missingValue.y = 0;\n }\n }\n return missingValue;\n },\n seriesMissingValues: function (series) {\n return series.missingValues || ZERO;\n },\n _hasMissingValuesGap: function () {\n var series = this.options.series;\n for (var idx = 0; idx < series.length; idx++) {\n if (this.seriesMissingValues(series[idx]) === GAP) {\n return true;\n }\n }\n },\n sortPoints: function (points) {\n var value, point;\n points.sort(xComparer);\n if (this._hasMissingValuesGap()) {\n for (var idx = 0; idx < points.length; idx++) {\n point = points[idx];\n if (point) {\n value = point.value;\n if (!dataviz.hasValue(value.y) && this.seriesMissingValues(point.series) === GAP) {\n delete points[idx];\n }\n }\n }\n }\n return points;\n }\n });\n var PolarPlotAreaBase = PlotAreaBase.extend({\n init: function (series, options) {\n var plotArea = this;\n plotArea.valueAxisRangeTracker = new AxisGroupRangeTracker();\n PlotAreaBase.fn.init.call(plotArea, series, options);\n },\n render: function () {\n var plotArea = this;\n plotArea.addToLegend(plotArea.series);\n plotArea.createPolarAxis();\n plotArea.createCharts();\n plotArea.createValueAxis();\n },\n alignAxes: function () {\n var axis = this.valueAxis;\n var range = axis.range();\n var crossingValue = axis.options.reverse ? range.max : range.min;\n var slot = axis.getSlot(crossingValue);\n var center = this.polarAxis.getSlot(0).c;\n var axisBox = axis.box.translate(center.x - slot.x1, center.y - slot.y1);\n axis.reflow(axisBox);\n },\n createValueAxis: function () {\n var plotArea = this, tracker = plotArea.valueAxisRangeTracker, defaultRange = tracker.query(), range, valueAxis, axisOptions = plotArea.valueAxisOptions({\n roundToMajorUnit: false,\n zIndex: -1\n }), axisType, axisDefaultRange;\n if (axisOptions.type === LOGARITHMIC) {\n axisType = RadarLogarithmicAxis;\n axisDefaultRange = {\n min: 0.1,\n max: 1\n };\n } else {\n axisType = RadarNumericAxis;\n axisDefaultRange = {\n min: 0,\n max: 1\n };\n }\n range = tracker.query(name) || defaultRange || axisDefaultRange;\n if (range && defaultRange) {\n range.min = math.min(range.min, defaultRange.min);\n range.max = math.max(range.max, defaultRange.max);\n }\n valueAxis = new axisType(range.min, range.max, axisOptions);\n plotArea.valueAxis = valueAxis;\n plotArea.appendAxis(valueAxis);\n },\n reflowAxes: function () {\n var plotArea = this, options = plotArea.options.plotArea, valueAxis = plotArea.valueAxis, polarAxis = plotArea.polarAxis, box = plotArea.box, defaultPadding = math.min(box.width(), box.height()) * DEFAULT_PADDING, padding = getSpacing(options.padding || {}, defaultPadding), axisBox = box.clone().unpad(padding), valueAxisBox = axisBox.clone().shrink(0, axisBox.height() / 2);\n polarAxis.reflow(axisBox);\n valueAxis.reflow(valueAxisBox);\n var heightDiff = valueAxis.lineBox().height() - valueAxis.box.height();\n valueAxis.reflow(valueAxis.box.unpad({ top: heightDiff }));\n plotArea.axisBox = axisBox;\n plotArea.alignAxes(axisBox);\n },\n backgroundBox: function () {\n return this.box;\n }\n });\n var RadarPlotArea = PolarPlotAreaBase.extend({\n options: {\n categoryAxis: { categories: [] },\n valueAxis: {}\n },\n createPolarAxis: function () {\n var plotArea = this, categoryAxis;\n categoryAxis = new RadarCategoryAxis(plotArea.options.categoryAxis);\n plotArea.polarAxis = categoryAxis;\n plotArea.categoryAxis = categoryAxis;\n plotArea.appendAxis(categoryAxis);\n plotArea.aggregateCategories();\n },\n valueAxisOptions: function (defaults) {\n var plotArea = this;\n if (plotArea._hasBarCharts) {\n deepExtend(defaults, {\n majorGridLines: { type: ARC },\n minorGridLines: { type: ARC }\n });\n }\n if (plotArea._isStacked100) {\n deepExtend(defaults, {\n roundToMajorUnit: false,\n labels: { format: 'P0' }\n });\n }\n return deepExtend(defaults, plotArea.options.valueAxis);\n },\n appendChart: CategoricalPlotArea.fn.appendChart,\n aggregateSeries: CategoricalPlotArea.fn.aggregateSeries,\n aggregateCategories: function () {\n CategoricalPlotArea.fn.aggregateCategories.call(this, this.panes);\n },\n filterSeries: function (currentSeries) {\n return currentSeries;\n },\n createCharts: function () {\n var plotArea = this, series = plotArea.filterVisibleSeries(plotArea.series), pane = plotArea.panes[0];\n plotArea.createAreaChart(filterSeriesByType(series, [RADAR_AREA]), pane);\n plotArea.createLineChart(filterSeriesByType(series, [RADAR_LINE]), pane);\n plotArea.createBarChart(filterSeriesByType(series, [RADAR_COLUMN]), pane);\n },\n chartOptions: function (series) {\n var options = { series: series };\n var firstSeries = series[0];\n if (firstSeries) {\n var filteredSeries = this.filterVisibleSeries(series);\n var stack = firstSeries.stack;\n options.isStacked = stack && filteredSeries.length > 1;\n options.isStacked100 = stack && stack.type === '100%' && filteredSeries.length > 1;\n if (options.isStacked100) {\n this._isStacked100 = true;\n }\n }\n return options;\n },\n createAreaChart: function (series, pane) {\n if (series.length === 0) {\n return;\n }\n var areaChart = new RadarAreaChart(this, this.chartOptions(series));\n this.appendChart(areaChart, pane);\n },\n createLineChart: function (series, pane) {\n if (series.length === 0) {\n return;\n }\n var lineChart = new RadarLineChart(this, this.chartOptions(series));\n this.appendChart(lineChart, pane);\n },\n createBarChart: function (series, pane) {\n if (series.length === 0) {\n return;\n }\n var firstSeries = series[0];\n var options = this.chartOptions(series);\n options.gap = firstSeries.gap;\n options.spacing = firstSeries.spacing;\n var barChart = new RadarBarChart(this, options);\n this.appendChart(barChart, pane);\n this._hasBarCharts = true;\n },\n seriesCategoryAxis: function () {\n return this.categoryAxis;\n },\n _dispatchEvent: function (chart, e, eventType) {\n var plotArea = this, coords = chart._eventCoordinates(e), point = new Point2D(coords.x, coords.y), category, value;\n category = plotArea.categoryAxis.getCategory(point);\n value = plotArea.valueAxis.getValue(point);\n if (category !== null && value !== null) {\n chart.trigger(eventType, {\n element: eventTargetElement(e),\n category: category,\n value: value\n });\n }\n },\n createCrosshairs: $.noop\n });\n deepExtend(RadarPlotArea.fn, PlotAreaEventsMixin);\n var PolarPlotArea = PolarPlotAreaBase.extend({\n options: {\n xAxis: {},\n yAxis: {}\n },\n createPolarAxis: function () {\n var plotArea = this, polarAxis;\n polarAxis = new PolarAxis(plotArea.options.xAxis);\n plotArea.polarAxis = polarAxis;\n plotArea.axisX = polarAxis;\n plotArea.appendAxis(polarAxis);\n },\n valueAxisOptions: function (defaults) {\n var plotArea = this;\n return deepExtend(defaults, {\n majorGridLines: { type: ARC },\n minorGridLines: { type: ARC }\n }, plotArea.options.yAxis);\n },\n createValueAxis: function () {\n var plotArea = this;\n PolarPlotAreaBase.fn.createValueAxis.call(plotArea);\n plotArea.axisY = plotArea.valueAxis;\n },\n appendChart: function (chart, pane) {\n var plotArea = this;\n plotArea.valueAxisRangeTracker.update(chart.yAxisRanges);\n PlotAreaBase.fn.appendChart.call(plotArea, chart, pane);\n },\n createCharts: function () {\n var plotArea = this, series = plotArea.filterVisibleSeries(plotArea.series), pane = plotArea.panes[0];\n plotArea.createLineChart(filterSeriesByType(series, [POLAR_LINE]), pane);\n plotArea.createScatterChart(filterSeriesByType(series, [POLAR_SCATTER]), pane);\n plotArea.createAreaChart(filterSeriesByType(series, [POLAR_AREA]), pane);\n },\n createLineChart: function (series, pane) {\n if (series.length === 0) {\n return;\n }\n var plotArea = this, lineChart = new PolarLineChart(plotArea, { series: series });\n plotArea.appendChart(lineChart, pane);\n },\n createScatterChart: function (series, pane) {\n if (series.length === 0) {\n return;\n }\n var plotArea = this, scatterChart = new PolarScatterChart(plotArea, { series: series });\n plotArea.appendChart(scatterChart, pane);\n },\n createAreaChart: function (series, pane) {\n if (series.length === 0) {\n return;\n }\n var plotArea = this, areaChart = new PolarAreaChart(plotArea, { series: series });\n plotArea.appendChart(areaChart, pane);\n },\n _dispatchEvent: function (chart, e, eventType) {\n var plotArea = this, coords = chart._eventCoordinates(e), point = new Point2D(coords.x, coords.y), xValue, yValue;\n xValue = plotArea.axisX.getValue(point);\n yValue = plotArea.axisY.getValue(point);\n if (xValue !== null && yValue !== null) {\n chart.trigger(eventType, {\n element: eventTargetElement(e),\n x: xValue,\n y: yValue\n });\n }\n },\n createCrosshairs: $.noop\n });\n deepExtend(PolarPlotArea.fn, PlotAreaEventsMixin);\n function xComparer(a, b) {\n return a.value.x - b.value.x;\n }\n function angularDistance(a, b) {\n return 180 - math.abs(math.abs(a - b) - 180);\n }\n PlotAreaFactory.current.register(PolarPlotArea, POLAR_CHARTS);\n PlotAreaFactory.current.register(RadarPlotArea, RADAR_CHARTS);\n SeriesBinder.current.register(POLAR_CHARTS, [\n X,\n Y\n ], ['color']);\n SeriesBinder.current.register(RADAR_CHARTS, ['value'], ['color']);\n dataviz.DefaultAggregates.current.register(RADAR_CHARTS, {\n value: 'max',\n color: 'first'\n });\n deepExtend(dataviz, {\n PolarAreaChart: PolarAreaChart,\n PolarAxis: PolarAxis,\n PolarLineChart: PolarLineChart,\n PolarPlotArea: PolarPlotArea,\n RadarAreaChart: RadarAreaChart,\n RadarBarChart: RadarBarChart,\n RadarCategoryAxis: RadarCategoryAxis,\n RadarClusterLayout: RadarClusterLayout,\n RadarLineChart: RadarLineChart,\n RadarNumericAxis: RadarNumericAxis,\n RadarPlotArea: RadarPlotArea,\n SplinePolarAreaSegment: SplinePolarAreaSegment,\n SplineRadarAreaSegment: SplineRadarAreaSegment,\n RadarStackLayout: RadarStackLayout\n });\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"],"sourceRoot":"/source/"}