{"version":3,"file":"kendo.dataviz.treemap.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendodataviz","treemap","js","this","$","undefined$1","math","Math","isArray","Array","kendo","window","outerHeight","_outerHeight","outerWidth","_outerWidth","Class","Widget","ui","template","deepExtend","HierarchicalDataSource","data","getter","dataviz","NS","CHANGE","DATA_BOUND","ITEM_CREATED","MAX_VALUE","Number","MOUSEOVER_NS","MOUSELEAVE_NS","TreeMap","extend","init","element","options","destroy","empty","fn","call","wrapper","_initTheme","addClass","_setLayout","_originalOptions","_initDataSource","_attachEvents","notify","name","theme","autoBind","textField","valueField","colorField","events","themeOptions","themes","toLowerCase","treeMap","on","_mouseover","bind","_mouseleave","_resizeHandler","resize","onResize","type","_layout","SliceAndDice","_view","SliceAndDiceView","Squarified","SquarifiedView","that","dataSource","_dataChangeHandler","_onDataChange","create","fetch","setDataSource","unbind","e","item","i","node","items","length","root","_getByUid","uid","children","Query","_sortForGrouping","push","_wrapItem","htmlSize","compute","coord","_setColors","render","createRoot","_root","_colorIdx","load","trigger","colorRange","colors","color","min","max","minRGBtoDecimal","rgbToDecimal","maxRGBtoDecimal","isDarker","colorBrightness","rgbColor","r","colorByIndex","g","b","buildColorFromRGB","colorsByLength","leafNodes","defined","dataItem","hasChildren","_contentSize","view","renderHeight","wrap","value","getField","text","level","pop","concat","attr","getByUid","findByUid","find","target","hasClass","_removeActiveState","removeClass","off","unbindResize","getSize","dimensions","_resize","rootElement","width","height","css","_resizeItems","child","childElement","elements","titleSize","idx","filter","setItemSize","setOptions","_setEvents","top","left","leaf","tree","layoutChildren","parentArea","totalArea","itemsArea","parseFloat","area","minimumSideValue","layoutHorizontal","firstElement","tail","slice","squarify","initElement","computeDim","worstAspectRatio","newCoords","layoutRow","dim","layoutLast","w","layoutV","layoutH","orientation","layoutVertical","layoutChange","areaSum","maxArea","minArea","rootCoord","newRootCoord","round","_totalArea","ans","total","offset","_clean","_getText","title","_createTitle","append","_compile","_createWrap","innerWidth","rootWrap","htmlElement","_createLeaf","_createTile","toggleClass","_tileColorBrightness","toggle","html","tile","_itemCoordinates","coordinates","_renderTemplate","titleTemplate","vertical","quotient","sliceAndDice","field","row","get","index","minColor","abs","maxColor","currentStep","decimalToRgb","colorLength","substring","colorToRGB","replace","rgbToHex","number","result","toString","toUpperCase","rgb","parseInt","brightness","sqrt","power","pow","plugin","jQuery"],"sources":["kendo.dataviz.treemap.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.data.js'), require('kendo.userevents.js'), require('kendo.dataviz.themes.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.data', 'kendo.userevents', 'kendo.dataviz.themes'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendodataviz = global.kendodataviz || {}, global.kendodataviz.treemap = global.kendodataviz.treemap || {}, global.kendodataviz.treemap.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"dataviz.treeMap\",\n name: \"TreeMap\",\n category: \"dataviz\",\n description: \"The Kendo DataViz TreeMap\",\n depends: [ \"data\", \"userevents\", \"dataviz.themes\" ]\n };\n\n (function($, undefined$1) {\n var math = Math,\n\n isArray = Array.isArray,\n\n kendo = window.kendo,\n outerHeight = kendo._outerHeight,\n outerWidth = kendo._outerWidth,\n Class = kendo.Class,\n Widget = kendo.ui.Widget,\n template = kendo.template,\n deepExtend = kendo.deepExtend,\n HierarchicalDataSource = kendo.data.HierarchicalDataSource,\n getter = kendo.getter,\n\n dataviz = kendo.dataviz;\n\n var NS = \".kendoTreeMap\",\n CHANGE = \"change\",\n DATA_BOUND = \"dataBound\",\n ITEM_CREATED = \"itemCreated\",\n MAX_VALUE = Number.MAX_VALUE,\n MOUSEOVER_NS = \"mouseover\" + NS,\n MOUSELEAVE_NS = \"mouseleave\" + NS,\n UNDEFINED = \"undefined\";\n\n var TreeMap = Widget.extend({\n init: function(element, options) {\n kendo.destroy(element);\n $(element).empty();\n\n Widget.fn.init.call(this, element, options);\n this.wrapper = this.element;\n\n this._initTheme(this.options);\n\n this.element.addClass(\"k-widget k-treemap\");\n\n this._setLayout();\n\n this._originalOptions = deepExtend({}, this.options);\n\n this._initDataSource();\n\n this._attachEvents();\n\n kendo.notify(this, dataviz.ui);\n },\n\n options: {\n name: \"TreeMap\",\n theme: \"default\",\n autoBind: true,\n textField: \"text\",\n valueField: \"value\",\n colorField: \"color\"\n },\n\n events: [DATA_BOUND, ITEM_CREATED],\n\n _initTheme: function(options) {\n var that = this,\n themes = dataviz.ui.themes || {},\n themeName = ((options || {}).theme || \"\").toLowerCase(),\n themeOptions = (themes[themeName] || {}).treeMap;\n\n that.options = deepExtend({}, themeOptions, options);\n },\n\n _attachEvents: function() {\n this.element\n .on(MOUSEOVER_NS, this._mouseover.bind(this))\n .on(MOUSELEAVE_NS, this._mouseleave.bind(this));\n\n this._resizeHandler = this.resize.bind(this, false);\n kendo.onResize(this._resizeHandler);\n },\n\n _setLayout: function() {\n if (this.options.type === \"horizontal\") {\n this._layout = new SliceAndDice(false);\n this._view = new SliceAndDiceView(this, this.options);\n } else if (this.options.type === \"vertical\") {\n this._layout = new SliceAndDice(true);\n this._view = new SliceAndDiceView(this, this.options);\n } else {\n this._layout = new Squarified();\n this._view = new SquarifiedView(this, this.options);\n }\n },\n\n _initDataSource: function() {\n var that = this,\n options = that.options,\n dataSource = options.dataSource;\n\n that._dataChangeHandler = that._onDataChange.bind(that);\n\n that.dataSource = HierarchicalDataSource\n .create(dataSource)\n .bind(CHANGE, that._dataChangeHandler);\n\n if (dataSource) {\n if (that.options.autoBind) {\n that.dataSource.fetch();\n }\n }\n },\n\n setDataSource: function(dataSource) {\n var that = this;\n that.dataSource.unbind(CHANGE, that._dataChangeHandler);\n that.dataSource = dataSource\n .bind(CHANGE, that._dataChangeHandler);\n\n if (dataSource) {\n if (that.options.autoBind) {\n that.dataSource.fetch();\n }\n }\n },\n\n _onDataChange: function(e) {\n var node = e.node;\n var items = e.items;\n var options = this.options;\n var item, i;\n\n if (!node) {\n this.element.empty();\n item = this._wrapItem(items[0]);\n this._layout.createRoot(\n item,\n outerWidth(this.element),\n outerHeight(this.element),\n this.options.type === \"vertical\"\n );\n this._view.createRoot(item);\n // Reference of the root\n this._root = item;\n this._colorIdx = 0;\n } else {\n if (items.length) {\n var root = this._getByUid(node.uid);\n root.children = [];\n items = new kendo.data.Query(items)._sortForGrouping(options.valueField, \"desc\");\n\n for (i = 0; i < items.length; i++) {\n item = items[i];\n root.children.push(this._wrapItem(item));\n }\n\n var htmlSize = this._view.htmlSize(root);\n this._layout.compute(root.children, root.coord, htmlSize);\n\n this._setColors(root.children);\n this._view.render(root);\n }\n }\n\n for (i = 0; i < items.length; i++) {\n items[i].load();\n }\n\n if (node) {\n this.trigger(DATA_BOUND, {\n node: node\n });\n }\n },\n\n _setColors: function(items) {\n var colors = this.options.colors;\n var colorIdx = this._colorIdx;\n var color = colors[colorIdx % colors.length];\n var colorRange, item;\n if (isArray(color)) {\n colorRange = colorsByLength(color[0], color[1], items.length);\n }\n\n var leafNodes = false;\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n\n if (!defined(item.color)) {\n if (colorRange) {\n item.color = colorRange[i];\n } else {\n item.color = color;\n }\n }\n if (!item.dataItem.hasChildren) {\n leafNodes = true;\n }\n }\n\n if (leafNodes) {\n this._colorIdx++;\n }\n },\n\n _contentSize: function(root) {\n this.view.renderHeight(root);\n },\n\n _wrapItem: function(item) {\n var wrap = {};\n\n if (defined(this.options.valueField)) {\n wrap.value = getField(this.options.valueField, item);\n }\n\n if (defined(this.options.colorField)) {\n wrap.color = getField(this.options.colorField, item);\n }\n\n if (defined(this.options.textField)) {\n wrap.text = getField(this.options.textField, item);\n }\n\n wrap.level = item.level();\n\n wrap.dataItem = item;\n\n return wrap;\n },\n\n _getByUid: function(uid) {\n var items = [this._root];\n var item;\n\n while (items.length) {\n item = items.pop();\n if (item.dataItem.uid === uid) {\n return item;\n }\n\n if (item.children) {\n items = items.concat(item.children);\n }\n }\n },\n\n dataItem: function(node) {\n var uid = $(node).attr(kendo.attr(\"uid\")),\n dataSource = this.dataSource;\n\n return dataSource && dataSource.getByUid(uid);\n },\n\n findByUid: function(uid) {\n return this.element.find(\".k-treemap-tile[\" + kendo.attr(\"uid\") + \"='\" + uid + \"']\");\n },\n\n _mouseover: function(e) {\n var target = $(e.target);\n if (target.hasClass(\"k-leaf\")) {\n this._removeActiveState();\n target\n .removeClass(\"k-hover\")\n .addClass(\"k-hover\");\n }\n },\n\n _removeActiveState: function() {\n this.element\n .find(\".k-hover\")\n .removeClass(\"k-hover\");\n },\n\n _mouseleave: function() {\n this._removeActiveState();\n },\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n this.element.off(NS);\n\n if (this.dataSource) {\n this.dataSource.unbind(CHANGE, this._dataChangeHandler);\n }\n\n this._root = null;\n kendo.unbindResize(this._resizeHandler);\n\n kendo.destroy(this.element);\n },\n\n items: function() {\n return $();\n },\n\n getSize: function() {\n return kendo.dimensions(this.element);\n },\n\n _resize: function() {\n var root = this._root;\n if (root) {\n var element = this.element;\n var rootElement = element.children();\n root.coord.width = outerWidth(element);\n root.coord.height = outerHeight(element);\n\n rootElement.css({\n width: root.coord.width,\n height: root.coord.height\n });\n\n this._resizeItems(root, rootElement);\n }\n },\n\n _resizeItems: function(root, element) {\n if (root.children && root.children.length) {\n var elements = element.children(\".k-treemap-wrap\").children();\n var child, childElement;\n\n this._layout.compute(root.children, root.coord, { text: this._view.titleSize(root, element) });\n for (var idx = 0; idx < root.children.length; idx++) {\n child = root.children[idx];\n childElement = elements.filter(\"[\" + kendo.attr(\"uid\") + \"='\" + child.dataItem.uid + \"']\");\n this._view.setItemSize(child, childElement);\n this._resizeItems(child, childElement);\n }\n }\n },\n\n setOptions: function(options) {\n var dataSource = options.dataSource;\n\n options.dataSource = undefined$1;\n this._originalOptions = deepExtend(this._originalOptions, options);\n this.options = deepExtend({}, this._originalOptions);\n this._setLayout();\n this._initTheme(this.options);\n\n Widget.fn._setEvents.call(this, options);\n\n if (dataSource) {\n this.setDataSource(HierarchicalDataSource.create(dataSource));\n }\n\n if (this.options.autoBind) {\n this.dataSource.fetch();\n }\n }\n });\n\n var Squarified = Class.extend({\n createRoot: function(root, width, height) {\n root.coord = {\n width: width,\n height: height,\n top: 0,\n left: 0\n };\n },\n\n leaf: function(tree) {\n return !tree.children;\n },\n\n layoutChildren: function(items, coord) {\n var parentArea = coord.width * coord.height;\n var totalArea = 0,\n itemsArea = [],\n i;\n\n for (i = 0; i < items.length; i++) {\n itemsArea[i] = parseFloat(items[i].value);\n totalArea += itemsArea[i];\n }\n\n for (i = 0; i < itemsArea.length; i++) {\n items[i].area = parentArea * itemsArea[i] / totalArea;\n }\n\n var minimumSideValue = this.layoutHorizontal() ? coord.height : coord.width;\n\n var firstElement = [items[0]];\n var tail = items.slice(1);\n this.squarify(tail, firstElement, minimumSideValue, coord);\n },\n\n squarify: function(tail, initElement, width, coord) {\n this.computeDim(tail, initElement, width, coord);\n },\n\n computeDim: function(tail, initElement, width, coord) {\n if (tail.length + initElement.length == 1) {\n var element = tail.length == 1 ? tail : initElement;\n this.layoutLast(element, width, coord);\n return;\n }\n\n if (tail.length >= 2 && initElement.length === 0) {\n initElement = [tail[0]];\n tail = tail.slice(1);\n }\n\n if (tail.length === 0) {\n if (initElement.length > 0) {\n this.layoutRow(initElement, width, coord);\n }\n return;\n }\n\n var firstElement = tail[0];\n\n if (this.worstAspectRatio(initElement, width) >= this.worstAspectRatio([firstElement].concat(initElement), width)) {\n this.computeDim(tail.slice(1), initElement.concat([firstElement]), width, coord);\n } else {\n var newCoords = this.layoutRow(initElement, width, coord);\n this.computeDim(tail, [], newCoords.dim, newCoords);\n }\n },\n\n layoutLast: function(items, w, coord) {\n items[0].coord = coord;\n },\n\n layoutRow: function(items, width, coord) {\n if (this.layoutHorizontal()) {\n return this.layoutV(items, width, coord);\n } else {\n return this.layoutH(items, width, coord);\n }\n },\n\n orientation: \"h\",\n\n layoutVertical: function() {\n return this.orientation === \"v\";\n },\n\n layoutHorizontal: function() {\n return this.orientation === \"h\";\n },\n\n layoutChange: function() {\n this.orientation = this.layoutVertical() ? \"h\" : \"v\";\n },\n\n worstAspectRatio: function(items, width) {\n if (!items || items.length === 0) {\n return MAX_VALUE;\n }\n\n var areaSum = 0,\n maxArea = 0,\n minArea = MAX_VALUE;\n\n for (var i = 0; i < items.length; i++) {\n var area = items[i].area;\n areaSum += area;\n minArea = (minArea < area) ? minArea : area;\n maxArea = (maxArea > area) ? maxArea : area;\n }\n\n return math.max(\n (width * width * maxArea) / (areaSum * areaSum),\n (areaSum * areaSum) / (width * width * minArea)\n );\n },\n\n compute: function(children, rootCoord, htmlSize) {\n if (!(rootCoord.width >= rootCoord.height && this.layoutHorizontal())) {\n this.layoutChange();\n }\n\n if (children && children.length > 0) {\n var newRootCoord = {\n width: rootCoord.width,\n height: rootCoord.height - htmlSize.text,\n top: 0,\n left: 0\n };\n\n this.layoutChildren(children, newRootCoord);\n }\n },\n\n layoutV: function(items, width, coord) {\n var totalArea = this._totalArea(items),\n top = 0;\n\n width = round(totalArea / width);\n\n for (var i = 0; i < items.length; i++) {\n var height = round(items[i].area / width);\n items[i].coord = {\n height: height,\n width: width,\n top: coord.top + top,\n left: coord.left\n };\n\n top += height;\n }\n\n var ans = {\n height: coord.height,\n width: coord.width - width,\n top: coord.top,\n left: coord.left + width\n };\n\n ans.dim = math.min(ans.width, ans.height);\n\n if (ans.dim != ans.height) {\n this.layoutChange();\n }\n\n return ans;\n },\n\n layoutH: function(items, width, coord) {\n var totalArea = this._totalArea(items);\n\n var height = round(totalArea / width),\n top = coord.top,\n left = 0;\n\n for (var i = 0; i < items.length; i++) {\n items[i].coord = {\n height: height,\n width: round(items[i].area / height),\n top: top,\n left: coord.left + left\n };\n left += items[i].coord.width;\n }\n\n var ans = {\n height: coord.height - height,\n width: coord.width,\n top: coord.top + height,\n left: coord.left\n };\n\n ans.dim = math.min(ans.width, ans.height);\n\n if (ans.dim != ans.width) {\n this.layoutChange();\n }\n\n return ans;\n },\n\n _totalArea: function(items) {\n var total = 0;\n\n for (var i = 0; i < items.length; i++) {\n total += items[i].area;\n }\n\n return total;\n }\n });\n\n var SquarifiedView = Class.extend({\n init: function(treeMap, options) {\n this.options = deepExtend({}, this.options, options);\n this.treeMap = treeMap;\n this.element = $(treeMap.element);\n\n this.offset = 0;\n },\n\n titleSize: function(item, element) {\n var text = element.children(\".k-treemap-title\");\n return text.height() || 0;\n },\n\n htmlSize: function(root) {\n var rootElement = this._getByUid(root.dataItem.uid);\n var htmlSize = {\n text: 0\n };\n\n if (root.children) {\n this._clean(rootElement);\n\n var text = this._getText(root);\n if (text) {\n var title = this._createTitle(root);\n rootElement.append(title);\n\n this._compile(title, root.dataItem);\n\n htmlSize.text = title.height();\n }\n\n rootElement.append(this._createWrap());\n\n this.offset = (outerWidth(rootElement) - rootElement.innerWidth()) / 2;\n }\n\n return htmlSize;\n },\n\n _compile: function(element, dataItem) {\n },\n\n _getByUid: function(uid) {\n return this.element.find(\".k-treemap-tile[\" + kendo.attr(\"uid\") + \"='\" + uid + \"']\");\n },\n\n render: function(root) {\n var rootElement = this._getByUid(root.dataItem.uid);\n var children = root.children;\n if (children) {\n var rootWrap = rootElement.find(\".k-treemap-wrap\");\n\n for (var i = 0; i < children.length; i++) {\n var leaf = children[i];\n var htmlElement = this._createLeaf(leaf);\n rootWrap.append(htmlElement);\n\n this._compile(htmlElement.children(), leaf.dataItem);\n\n this.treeMap.trigger(ITEM_CREATED, {\n element: htmlElement\n });\n }\n }\n },\n\n createRoot: function(root) {\n var htmlElement = this._createLeaf(root);\n this.element.append(htmlElement);\n this._compile(htmlElement.children(), root.dataItem);\n\n this.treeMap.trigger(ITEM_CREATED, {\n element: htmlElement\n });\n },\n\n _clean: function(root) {\n root.css(\"background-color\", \"\");\n root.removeClass(\"k-leaf\");\n root.removeClass(\"k-inverse\");\n root.empty();\n },\n\n _createLeaf: function(item) {\n return this._createTile(item)\n .css(\"background-color\", item.color)\n .addClass(\"k-leaf\")\n .toggleClass(\n \"k-inverse\",\n this._tileColorBrightness(item) > 180\n )\n .toggle(item.value !== 0)\n .append($(\"
\")\n .html(this._getText(item)));\n },\n\n _createTile: function(item) {\n var tile = $(\"
\");\n this.setItemSize(item, tile);\n\n if (defined(item.dataItem) && defined(item.dataItem.uid)) {\n tile.attr(kendo.attr(\"uid\"), item.dataItem.uid);\n }\n\n return tile;\n },\n\n _itemCoordinates: function(item) {\n var coordinates = {\n width: item.coord.width,\n height: item.coord.height,\n left: item.coord.left,\n top: item.coord.top\n };\n\n if (coordinates.left && this.offset) {\n coordinates.width += this.offset * 2;\n } else {\n coordinates.width += this.offset;\n }\n\n if (coordinates.top) {\n coordinates.height += this.offset * 2;\n } else {\n coordinates.height += this.offset;\n }\n\n return coordinates;\n },\n\n setItemSize: function(item, element) {\n var coordinates = this._itemCoordinates(item);\n element.css({\n width: coordinates.width,\n height: coordinates.height,\n left: coordinates.left,\n top: coordinates.top\n });\n },\n\n _getText: function(item) {\n var text = item.text;\n\n if (this.options.template) {\n text = this._renderTemplate(item);\n }\n\n return text;\n },\n\n _renderTemplate: function(item) {\n var titleTemplate = template(this.options.template);\n return titleTemplate({\n dataItem: item.dataItem,\n text: item.text\n });\n },\n\n _createTitle: function(item) {\n return $(\"
\")\n .append($(\"
\").html(this._getText(item)));\n },\n\n _createWrap: function() {\n return $(\"
\");\n },\n\n _tileColorBrightness: function(item) {\n return colorBrightness(item.color);\n }\n });\n\n var SliceAndDice = Class.extend({\n createRoot: function(root, width, height, vertical) {\n root.coord = {\n width: width,\n height: height,\n top: 0,\n left: 0\n };\n root.vertical = vertical;\n },\n\n init: function(vertical) {\n this.vertical = vertical;\n this.quotient = vertical ? 1 : 0;\n },\n\n compute: function(children, rootCoord, htmlSize) {\n\n if (children.length > 0) {\n var width = rootCoord.width;\n var height = rootCoord.height;\n\n if (this.vertical) {\n height -= htmlSize.text;\n } else {\n width -= htmlSize.text;\n }\n\n var newRootCoord = {\n width: width,\n height: height,\n top: 0,\n left: 0\n };\n\n this.layoutChildren(children, newRootCoord);\n }\n },\n\n layoutChildren: function(items, coord) {\n var parentArea = coord.width * coord.height;\n var totalArea = 0;\n var itemsArea = [];\n var i;\n\n for (i = 0; i < items.length; i++) {\n var item = items[i];\n itemsArea[i] = parseFloat(items[i].value);\n totalArea += itemsArea[i];\n item.vertical = this.vertical;\n }\n\n for (i = 0; i < itemsArea.length; i++) {\n items[i].area = parentArea * itemsArea[i] / totalArea;\n }\n\n this.sliceAndDice(items, coord);\n },\n\n sliceAndDice: function(items, coord) {\n var totalArea = this._totalArea(items);\n if (items[0].level % 2 === this.quotient) {\n this.layoutHorizontal(items, coord, totalArea);\n } else {\n this.layoutVertical(items, coord, totalArea);\n }\n },\n\n layoutHorizontal: function(items, coord, totalArea) {\n var left = 0;\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n var width = item.area / (totalArea / coord.width);\n item.coord = {\n height: coord.height,\n width: width,\n top: coord.top,\n left: coord.left + left\n };\n\n left += width;\n }\n },\n\n layoutVertical: function(items, coord, totalArea) {\n var top = 0;\n\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n var height = item.area / (totalArea / coord.height);\n item.coord = {\n height: height,\n width: coord.width,\n top: coord.top + top,\n left: coord.left\n };\n\n top += height;\n }\n },\n\n _totalArea: function(items) {\n var total = 0;\n\n for (var i = 0; i < items.length; i++) {\n total += items[i].area;\n }\n\n return total;\n }\n });\n\n var SliceAndDiceView = SquarifiedView.extend({\n htmlSize: function(root) {\n var rootElement = this._getByUid(root.dataItem.uid);\n var htmlSize = {\n text: 0,\n offset: 0\n };\n\n if (root.children) {\n this._clean(rootElement);\n\n var text = this._getText(root);\n if (text) {\n var title = this._createTitle(root);\n rootElement.append(title);\n this._compile(title, root.dataItem);\n\n if (root.vertical) {\n htmlSize.text = title.height();\n } else {\n htmlSize.text = title.width();\n }\n }\n\n rootElement.append(this._createWrap());\n\n this.offset = (outerWidth(rootElement) - rootElement.innerWidth()) / 2;\n }\n\n return htmlSize;\n },\n\n titleSize: function(item, element) {\n var size;\n if (item.vertical) {\n size = element.children(\".k-treemap-title\").height();\n } else {\n size = element.children(\".k-treemap-title-vertical\").width();\n }\n return size || 0;\n },\n\n _createTitle: function(item) {\n var title;\n if (item.vertical) {\n title = $(\"
\");\n } else {\n title = $(\"
\");\n }\n\n return title.append($(\"
\").html(this._getText(item)));\n }\n });\n\n function getField(field, row) {\n if (row === null) {\n return row;\n }\n\n var get = getter(field, true);\n return get(row);\n }\n\n function defined(value) {\n return typeof value !== UNDEFINED;\n }\n\n function colorsByLength(min, max, length) {\n var minRGBtoDecimal = rgbToDecimal(min);\n var maxRGBtoDecimal = rgbToDecimal(max);\n var isDarker = colorBrightness(min) - colorBrightness(max) < 0;\n var colors = [];\n\n colors.push(min);\n\n for (var i = 0; i < length; i++) {\n var rgbColor = {\n r: colorByIndex(minRGBtoDecimal.r, maxRGBtoDecimal.r, i, length, isDarker),\n g: colorByIndex(minRGBtoDecimal.g, maxRGBtoDecimal.g, i, length, isDarker),\n b: colorByIndex(minRGBtoDecimal.b, maxRGBtoDecimal.b, i, length, isDarker)\n };\n colors.push(buildColorFromRGB(rgbColor));\n }\n\n colors.push(max);\n\n return colors;\n }\n\n function colorByIndex(min, max, index, length, isDarker) {\n var minColor = math.min(math.abs(min), math.abs(max));\n var maxColor = math.max(math.abs(min), math.abs(max));\n var step = (maxColor - minColor) / (length + 1);\n var currentStep = step * (index + 1);\n var color;\n\n if (isDarker) {\n color = minColor + currentStep;\n } else {\n color = maxColor - currentStep;\n }\n\n return color;\n }\n\n function buildColorFromRGB(color) {\n return \"#\" + decimalToRgb(color.r) + decimalToRgb(color.g) + decimalToRgb(color.b);\n }\n\n function rgbToDecimal(color) {\n color = color.replace(\"#\", \"\");\n var rgbColor = colorToRGB(color);\n\n return {\n r: rgbToHex(rgbColor.r),\n g: rgbToHex(rgbColor.g),\n b: rgbToHex(rgbColor.b)\n };\n }\n\n function decimalToRgb(number) {\n var result = math.round(number).toString(16).toUpperCase();\n\n if (result.length === 1) {\n result = \"0\" + result;\n }\n\n return result;\n }\n\n function colorToRGB(color) {\n var colorLength = color.length;\n var rgbColor = {};\n if (colorLength === 3) {\n rgbColor.r = color[0];\n rgbColor.g = color[1];\n rgbColor.b = color[2];\n } else {\n rgbColor.r = color.substring(0, 2);\n rgbColor.g = color.substring(2, 4);\n rgbColor.b = color.substring(4, 6);\n }\n\n return rgbColor;\n }\n\n function rgbToHex(rgb) {\n return parseInt(rgb.toString(16), 16);\n }\n\n function colorBrightness(color) {\n var brightness = 0;\n if (color) {\n color = rgbToDecimal(color);\n brightness = math.sqrt(0.241 * color.r * color.r + 0.691 * color.g * color.g + 0.068 * color.b * color.b);\n }\n\n return brightness;\n }\n\n function round(value) {\n var power = math.pow(10, 4);\n return math.round(value * power) / power;\n }\n\n dataviz.ui.plugin(TreeMap);\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}