{"version":3,"sources":["kendo.dataviz.chart.funnel.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","window","deepExtend","PI","Number","MAX_VALUE","now","Date","getTime","util","drawing","dataviz","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","FunnelSegment","isFn","isFunction","draw","geom","geometry","Color","ChartElement","PieChartMixin","PlotAreaBase","PlotAreaFactory","Point2D","Box2D","SeriesBinder","TextBox","autoFormat","evalOptions","seriesTotal","CATEGORY","COLOR","FUNNEL","VALUE","BLACK","WHITE","FunnelPlotArea","render","plotArea","series","createFunnelChart","firstSeries","funnelChart","FunnelChart","legend","neckRatio","dynamicHeight","dynamicSlope","segmentSpacing","highlight","appendChart","chart","pane","fn","call","items","legendItems","points","labels","visible","align","position","formatPointValue","point","format","pointData","fields","total","segment","label","colors","seriesColors","colorsCount","data","bindPoint","valueFields","owner","category","dataItem","percentage","abs","visibleInLegend","createSegment","createLabel","evalSegmentOptions","defaults","_defaults","excluded","seriesOptions","createLegendItem","textBox","labelTemplate","brightnessValue","percBrightness","vAlign","labelPadding","padding","reflow","chartBox","lastUpperSide","offset","firstSegment","maxSegment","nextSegment","nextPercentage","topMostWidth","finalNarrow","segments","count","decreasingWidth","clone","unpad","previousHeight","previousOffset","totalHeight","each","Point","x1","y1","segmentOptions","border","children","y","x2","createVisual","visual","createPath","path","Path","fromPoints","fill","opacity","stroke","close","createHighlight","highlightVisual","highlightVisualArgs","highlightOverlay","view","opt","calcOptions","hlOptions","strokeOpacity","strokeWidth","fillOpacity","createPolyline","tooltipAnchor","tooltipWidth","center","formatValue","PointEventsMixin","register"],"mappings":"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","file":"kendo.dataviz.chart.funnel.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 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 }\n });\n kendo.drawing.util = kendo.util;\n kendo.dataviz.util = kendo.util;\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.funnel', [\n 'kendo.dataviz.chart',\n 'kendo.drawing'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'dataviz.chart.funnel',\n name: 'Funnel Chart',\n category: 'dataviz',\n depends: ['dataviz.chart'],\n hidden: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, deepExtend = kendo.deepExtend, extend = $.extend, isFn = kendo.isFunction, template = kendo.template, util = kendo.util, append = util.append, draw = kendo.drawing, geom = kendo.geometry, dataviz = kendo.dataviz, Color = kendo.drawing.Color, ChartElement = dataviz.ChartElement, PieChartMixin = dataviz.PieChartMixin, PlotAreaBase = dataviz.PlotAreaBase, PlotAreaFactory = dataviz.PlotAreaFactory, Point2D = dataviz.Point2D, Box2D = dataviz.Box2D, SeriesBinder = dataviz.SeriesBinder, TextBox = dataviz.TextBox, autoFormat = dataviz.autoFormat, evalOptions = dataviz.evalOptions, limitValue = util.limitValue, seriesTotal = dataviz.seriesTotal;\n var CATEGORY = 'category', COLOR = 'color', FUNNEL = 'funnel', VALUE = 'value', BLACK = 'black', WHITE = 'white';\n var FunnelPlotArea = PlotAreaBase.extend({\n render: function () {\n var plotArea = this, series = plotArea.series;\n plotArea.createFunnelChart(series);\n },\n createFunnelChart: function (series) {\n var plotArea = this, firstSeries = series[0], funnelChart = new FunnelChart(plotArea, {\n series: series,\n legend: plotArea.options.legend,\n neckRatio: firstSeries.neckRatio,\n dynamicHeight: firstSeries.dynamicHeight,\n dynamicSlope: firstSeries.dynamicSlope,\n segmentSpacing: firstSeries.segmentSpacing,\n highlight: firstSeries.highlight\n });\n plotArea.appendChart(funnelChart);\n },\n appendChart: function (chart, pane) {\n PlotAreaBase.fn.appendChart.call(this, chart, pane);\n append(this.options.legend.items, chart.legendItems);\n }\n });\n var FunnelChart = ChartElement.extend({\n init: function (plotArea, options) {\n var chart = this;\n ChartElement.fn.init.call(chart, options);\n chart.plotArea = plotArea;\n chart.points = [];\n chart.labels = [];\n chart.legendItems = [];\n chart.render();\n },\n options: {\n neckRatio: 0.3,\n width: 300,\n dynamicSlope: false,\n dynamicHeight: true,\n segmentSpacing: 0,\n labels: {\n visible: false,\n align: 'center',\n position: 'center'\n }\n },\n formatPointValue: function (point, format) {\n return autoFormat(format, point.value);\n },\n render: function () {\n var chart = this, options = chart.options, colors = chart.plotArea.options.seriesColors || [], colorsCount = colors.length, series = options.series[0], pointData, fields, data = series.data;\n if (!data) {\n return;\n }\n var total = seriesTotal(series), value, i;\n for (i = 0; i < data.length; i++) {\n pointData = SeriesBinder.current.bindPoint(series, i);\n value = pointData.valueFields.value;\n if (value === null || value === undefined) {\n continue;\n }\n fields = pointData.fields;\n if (!isFn(series.color)) {\n series.color = fields.color || colors[i % colorsCount];\n }\n fields = deepExtend({\n index: i,\n owner: chart,\n series: series,\n category: fields.category,\n dataItem: data[i],\n percentage: Math.abs(value) / total,\n visibleInLegend: fields.visibleInLegend,\n visible: fields.visible\n }, fields);\n var segment = chart.createSegment(value, fields);\n var label = chart.createLabel(value, fields);\n if (segment && label) {\n segment.append(label);\n }\n }\n },\n evalSegmentOptions: function (options, value, fields) {\n var series = fields.series;\n evalOptions(options, {\n value: value,\n series: series,\n dataItem: fields.dataItem,\n index: fields.index\n }, {\n defaults: series._defaults,\n excluded: [\n 'data',\n 'toggle',\n 'visual'\n ]\n });\n },\n createSegment: function (value, fields) {\n var chart = this, segment;\n var seriesOptions = deepExtend({}, fields.series);\n chart.evalSegmentOptions(seriesOptions, value, fields);\n chart.createLegendItem(value, seriesOptions, fields);\n if (fields.visible !== false) {\n segment = new FunnelSegment(value, seriesOptions, fields);\n extend(segment, fields);\n chart.append(segment);\n chart.points.push(segment);\n return segment;\n }\n },\n createLabel: function (value, fields) {\n var chart = this, series = fields.series, dataItem = fields.dataItem, labels = deepExtend({}, chart.options.labels, series.labels), text = value, textBox;\n if (labels.visible) {\n if (labels.template) {\n var labelTemplate = template(labels.template);\n text = labelTemplate({\n dataItem: dataItem,\n value: value,\n percentage: fields.percentage,\n category: fields.category,\n series: series\n });\n } else if (labels.format) {\n text = autoFormat(labels.format, text);\n }\n if (!labels.color && labels.align === 'center') {\n var brightnessValue = new Color(series.color).percBrightness();\n if (brightnessValue > 180) {\n labels.color = BLACK;\n } else {\n labels.color = WHITE;\n }\n }\n chart.evalSegmentOptions(labels, value, fields);\n textBox = new TextBox(text, deepExtend({ vAlign: labels.position }, labels));\n chart.labels.push(textBox);\n return textBox;\n }\n },\n labelPadding: function () {\n var labels = this.labels, label, align, width, padding = {\n left: 0,\n right: 0\n }, i;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n align = label.options.align;\n if (align !== 'center') {\n width = labels[i].box.width();\n if (align === 'left') {\n padding.left = Math.max(padding.left, width);\n } else {\n padding.right = Math.max(padding.right, width);\n }\n }\n }\n return padding;\n },\n reflow: function (chartBox) {\n var chart = this, options = chart.options, segments = chart.points, count = segments.length, decreasingWidth = options.neckRatio <= 1, i, height, lastUpperSide, points, percentage, offset, box = chartBox.clone().unpad(chart.labelPadding()), width = box.width(), previousHeight = 0, previousOffset = decreasingWidth ? 0 : (width - width / options.neckRatio) / 2, segmentSpacing = options.segmentSpacing, dynamicSlope = options.dynamicSlope, totalHeight = box.height() - segmentSpacing * (count - 1), neckRatio = decreasingWidth ? options.neckRatio * width : width;\n if (!count) {\n return;\n }\n if (dynamicSlope) {\n var firstSegment = segments[0], maxSegment = firstSegment, nextSegment, nextPercentage;\n $.each(segments, function (idx, val) {\n if (val.percentage > maxSegment.percentage) {\n maxSegment = val;\n }\n });\n lastUpperSide = firstSegment.percentage / maxSegment.percentage * width;\n previousOffset = (width - lastUpperSide) / 2;\n for (i = 0; i < count; i++) {\n percentage = segments[i].percentage;\n nextSegment = segments[i + 1];\n nextPercentage = nextSegment ? nextSegment.percentage : percentage;\n points = segments[i].points = [];\n height = options.dynamicHeight ? totalHeight * percentage : totalHeight / count;\n if (!percentage) {\n offset = nextPercentage ? 0 : width / 2;\n } else {\n offset = (width - lastUpperSide * (nextPercentage / percentage)) / 2;\n }\n offset = limitValue(offset, 0, width);\n points.push(new geom.Point(box.x1 + previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - offset, box.y1 + height + previousHeight));\n points.push(new geom.Point(box.x1 + offset, box.y1 + height + previousHeight));\n previousOffset = offset;\n previousHeight += height + segmentSpacing;\n lastUpperSide = limitValue(width - 2 * offset, 0, width);\n }\n } else {\n var topMostWidth = decreasingWidth ? width : width - previousOffset * 2, finalNarrow = (topMostWidth - neckRatio) / 2;\n for (i = 0; i < count; i++) {\n points = segments[i].points = [];\n percentage = segments[i].percentage;\n offset = options.dynamicHeight ? finalNarrow * percentage : finalNarrow / count;\n height = options.dynamicHeight ? totalHeight * percentage : totalHeight / count;\n points.push(new geom.Point(box.x1 + previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - previousOffset - offset, box.y1 + height + previousHeight));\n points.push(new geom.Point(box.x1 + previousOffset + offset, box.y1 + height + previousHeight));\n previousOffset += offset;\n previousHeight += height + segmentSpacing;\n }\n }\n for (i = 0; i < count; i++) {\n segments[i].reflow(chartBox);\n }\n }\n });\n deepExtend(FunnelChart.fn, PieChartMixin);\n var FunnelSegment = ChartElement.extend({\n init: function (value, options, segmentOptions) {\n var segment = this;\n ChartElement.fn.init.call(segment, options);\n segment.value = value;\n segment.options.index = segmentOptions.index;\n },\n options: {\n color: WHITE,\n border: { width: 1 }\n },\n reflow: function (chartBox) {\n var segment = this, points = segment.points, label = segment.children[0];\n segment.box = new Box2D(points[0].x, points[0].y, points[1].x, points[2].y);\n if (label) {\n label.reflow(new Box2D(chartBox.x1, points[0].y, chartBox.x2, points[2].y));\n }\n },\n createVisual: function () {\n var segment = this;\n var options = segment.options;\n var visual;\n ChartElement.fn.createVisual.call(this);\n if (options.visual) {\n visual = options.visual({\n category: segment.category,\n dataItem: segment.dataItem,\n value: segment.value,\n series: segment.series,\n percentage: segment.percentage,\n points: segment.points,\n options: options,\n createVisual: function () {\n return segment.createPath();\n }\n });\n } else {\n visual = segment.createPath();\n }\n if (visual) {\n this.visual.append(visual);\n }\n },\n createPath: function () {\n var options = this.options;\n var border = options.border;\n var path = draw.Path.fromPoints(this.points, {\n fill: {\n color: options.color,\n opacity: options.opacity\n },\n stroke: {\n color: border.color,\n opacity: border.opacity,\n width: border.width\n }\n }).close();\n return path;\n },\n createHighlight: function (style) {\n return draw.Path.fromPoints(this.points, style);\n },\n highlightVisual: function () {\n return this.visual.children[0];\n },\n highlightVisualArgs: function () {\n var path = draw.Path.fromPoints(this.points).close();\n return {\n options: this.options,\n path: path\n };\n },\n highlightOverlay: function (view, opt) {\n var options = this.options, hlOptions = options.highlight || {};\n if (hlOptions.visible === false) {\n return;\n }\n var border = hlOptions.border || {};\n var calcOptions = extend({}, opt, {\n fill: hlOptions.color,\n stroke: border.color,\n strokeOpacity: border.opacity,\n strokeWidth: border.width,\n fillOpacity: hlOptions.opacity\n });\n var element = view.createPolyline(this.points, true, calcOptions);\n return element;\n },\n tooltipAnchor: function (tooltipWidth) {\n var box = this.box;\n return new Point2D(box.center().x - tooltipWidth / 2, box.y1);\n },\n formatValue: function (format) {\n var point = this;\n return point.owner.formatPointValue(point, format);\n }\n });\n deepExtend(FunnelSegment.fn, dataviz.PointEventsMixin);\n PlotAreaFactory.current.register(FunnelPlotArea, [FUNNEL]);\n SeriesBinder.current.register([FUNNEL], [VALUE], [\n CATEGORY,\n COLOR,\n 'visibleInLegend',\n 'visible'\n ]);\n deepExtend(dataviz, {\n FunnelChart: FunnelChart,\n FunnelSegment: FunnelSegment\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/"}