{"version":3,"sources":["webpack:///./node_modules/devextreme/viz/translators/translator1d.js","webpack:///./node_modules/devextreme/viz/tree_map/tiling.squarified.js","webpack:///./node_modules/devextreme/viz/tree_map/tiling.squarified.base.js","webpack:///./node_modules/devextreme/viz/tree_map/colorizing.discrete.js","webpack:///./node_modules/devextreme/viz/tree_map/hover.js","webpack:///./node_modules/devextreme/viz/tree_map/states.js","webpack:///./node_modules/devextreme/viz/tree_map/tooltip.js","webpack:///./node_modules/devextreme/viz/translators/category_translator.js","webpack:///./node_modules/devextreme/viz/translators/interval_translator.js","webpack:///./node_modules/devextreme/viz/translators/datetime_translator.js","webpack:///./node_modules/devextreme/viz/translators/logarithmic_translator.js","webpack:///./node_modules/devextreme/viz/utils.js","webpack:///./node_modules/devextreme/viz/themes.js","webpack:///./node_modules/devextreme/viz/tree_map.js","webpack:///./node_modules/devextreme/viz/tree_map/tree_map.js","webpack:///./node_modules/devextreme/viz/tree_map/tiling.strip.js","webpack:///./node_modules/devextreme/viz/tree_map/tiling.slice_and_dice.js","webpack:///./node_modules/devextreme/viz/tree_map/tiling.rotated_slice_and_dice.js","webpack:///./node_modules/devextreme/viz/tree_map/colorizing.gradient.js","webpack:///./node_modules/devextreme/viz/tree_map/colorizing.range.js","webpack:///./node_modules/devextreme/viz/tree_map/selection.js","webpack:///./node_modules/devextreme/viz/tree_map/tracker.js","webpack:///./node_modules/devextreme/viz/tree_map/drilldown.js","webpack:///./node_modules/devextreme/viz/tree_map/plain_data_source.js","webpack:///./node_modules/devextreme/viz/tree_map/tree_map.base.js","webpack:///./node_modules/devextreme/viz/translators/range.js","webpack:///./node_modules/devextreme/viz/tree_map/tiling.js","webpack:///./node_modules/devextreme/viz/tree_map/api.js","webpack:///./node_modules/devextreme/viz/tree_map/node.js","webpack:///./node_modules/devextreme/viz/tree_map/colorizing.js","webpack:///./node_modules/devextreme/viz/translators/translator2d.js","webpack:///./node_modules/devextreme/viz/tree_map/common.js"],"names":["exports","Translator1D","_Number","Number","this","setDomain","arguments","setCodomain","setInverted","prototype","constructor","domain1","domain2","_domain1","_domain2","_domainDelta","codomain1","codomain2","_codomain1","_codomain2","_codomainDelta","state","inverted","getDomain","getCodomain","getDomainStart","getDomainEnd","getCodomainStart","getCodomainEnd","getDomainRange","getCodomainRange","translate","value","ratio","NaN","adjust","result","default","obj","_tilingSquarified","__esModule","_tiling","_max","Math","max","accumulate","total","current","squarified","data","addAlgorithm","_default","module","isFixedStaticSide","i","items","ii","length","context","sum","rect","directions","staticSideIndex","getStaticSideIndex","sort","compare","doStep","_round","round","a","b","nodes","head","sidesData","buildSidesData","area","rowData","nextAspectRatio","nextSum","j","totalAspectRatio","bestAspectRatio","coeff","areaToValue","staticSide","count","side","findAppropriateCollection","variedSide","calculateRectangles","discreteColorizer","options","themeManager","root","palette","createPalette","useHighlight","extensionMode","paletteExtensionMode","colorizeGroups","getNodesCount","getLeafsCount","discreteGroupColorizer","discreteLeafColorizer","node","allNodes","slice","isNode","colors","generateColors","index","concat","parent","_id","getNextColor","prepareDiscreteGroupColors","addColorizer","_tree_map","_interopRequireDefault","_node","_helpers","_common","_utils","proto","nodeProto","_eventsMap","onHoverChanged","name","expand","_handlers","states","hoverStyle","buildRectAppearance","addChange","code","handler","hoverEnabled","parseScalar","_getOption","clearHover","_hoverEnabled","isThemeDependent","isOptionChange","option","statesMap","additionalStates","push","that","setHover","_hoverNode","isHovered","_hoverIndex","_groupHoverEnabled","_applyHoverState","setNodeStateRecursive","setState","_nodes","_eventTrigger","proxy","currentIndex","_context","suspend","resume","_extend2","handlers","_calculateState","calculateState","_buildState","0","calculateAdditionalStates","noop","extra","base","source","list","extend","buildAdditionalStates","_getState","ctx","change","_tooltip","getCoords","coords","renderer","offset","getRootOffset","left","top","showTooltip","_showTooltip","_tooltipIndex","hide","_moveTooltip","tooltip","callback","xy","_renderer","show","valueText","formatValue","x","y","move","hideTooltip","addPlugin","plugin","_type","_math","getValue","category","directionOffset","canvasOptions","_canvasOptions","categoryIndex","_categoriesToPoints","valueOf","specialValue","translateSpecialCase","startPointIndex","stickInterval","_options","stick","isDefined","stickDelta","_calculateProjection","interval","getInterval","getEventScale","zoomEvent","deltaScale","visibleCategories","_categories","zoom","scale","endCategoryIndex","categories","invert","translateCategories","visibleCount","startCategoryIndex","parseInt","categoriesLength","canvasLength","newVisibleCategories","newInterval","_getDiscreteInterval","startPoint","min","getMinScale","getScale","visibleArea","getCanvasVisibleArea","stickOffset","minPoint","maxPoint","abs","isValid","getCorrectValue","to","direction","_businessRange","from","position","_add","_toValue","isValueProlonged","getRangeByMinZoomValue","minZoom","visualRange","startIndex","indexOf","minVisible","endIndex","maxVisible","_date","floor","_intervalize","dataType","isNumeric","Date","getTime","correctDateWithUnitBeginning","firstDayOfWeek","bp","ratioOfCanvasRange","rangeMax","rangeMin","_parse","_fromValue","co","isNaN","addInterval","v1","v2","res","_to","p2","rMin","rangeMinVisible","rMax","rangeMaxVisible","_conversionValue","origInterval","dateToMilliseconds","_calculateUnProjection","parse","addDateInterval","convert","getLogExt","allowNegatives","linearThreshold","raiseToExt","getMinBarSize","minBarSize","minValue","pow","checkMinBarSize","initialValue","minShownValue","stackValue","updateValue","prevValue","baseMethod","Object","defineProperty","enumerable","get","refreshPaths","prepareSegmentRectPoints","_iterator","width","height","borderOptions","segmentSequence","maxSW","sw","newSW","right","bottom","points","segments","visiblyOpt","prevSegmentVisibility","allSegment","each","seg","visibility","_","segmentVisibility","segment","pathType","getTheme","currentTheme","registerTheme","theme","baseThemeName","themeName","normalizeEnum","isDefault","defaultTheme","targetThemeName","themeInfo","splitter","k","substring","scheme","getThemeInfo","themesMapping","registerThemeName","themes","_extend","mergeScalar","loadingIndicator","font","legend","border","title","grid","minorGrid","tick","minorTick","label","chart","commonSeriesSettings","candlestick","pie","polar","gauge","barGauge","funnel","sankey","map","background","treeMap","tile","selectionStyle","group","rangeSelector","sparkline","bullet","backgroundColor","primaryTitleColor","mergeObject","secondaryTitleColor","gridColor","commonAxisSettings","_each","axisColor","patchAxes","section","layer","patchMapLayers","patchTheme","registerThemeSchemeAlias","themesSchemeMapping","addCacheItem","target","cacheUid","nextCacheUid","_cache","widgetsCache","removeCacheItem","refreshTheme","refresh","_themes","currentThemeName","findThemeNameByName","findThemeNameByPlatform","platform","version","colorScheme","field","sourceValue","_value","_export","_title","_loading_indicator","strip","sliceAndDice","isRotated","sliceAndDiceAlgorithm","getAlgorithm","call","_colorizing","_min","getRangeData","range","createGuessingColorizer","getColor","ranges","codes","isFinite","apply","calculateRange","gradientColorizer","createGradientPalette","createColorCodeGetter","createSimpleColorizer","arg","rangeColorizer","createDiscretePalette","middle","start","end","getPaletteIndex","_array","onSelectionChanged","_selectionList","select","_selectNode","isSelected","inArray","tmp","selectionList","mode","pop","clearSelection","_selectionMode","tileToFront","bringSelectedTilesToForeground","content","toForeground","outer","inner","_applySelectionState","splice","_tracker","dataKeyModifier","onClick","dataKey","getProxy","Tracker","widget","getNode","id","isLeaf","getParent","isActive","getData","e","tagName","parentNode","click","setTrackerData","element","dispose","onDrill","drillDown","_drillToNode","_drilldownIndex","_root","_topNode","resetDrillDown","drillUp","getCurrentNode","_optionChangesMap","idField","parentField","_processDataSourceItems","currentItem","parentId","tmpItems","item","struct","rootNodes","isPlain","treeFiller","_common2","_base_widget","_component_registrator","_data_source","lefttoprightbottom","leftbottomrighttop","righttopleftbottom","rightbottomlefttop","pickPositiveInteger","val","setDefaultAlgorithm","setDefaultColorizer","dxTreeMap","inherit","beginBuildNodes","buildNode","endBuildNodes","_rootClass","_rootClassPrefix","_getDefaultSize","_themeSection","_fontFields","_init","_rectOffsets","create","_applyingChanges","_suspendChanges","_resumeChanges","_change","settings","calculateLabelState","buildTextAppearance","callBase","_initialChanges","_initCore","_createProxyType","_tilesGroup","g","linkOn","linkAppend","_labelsGroup","_disposeCore","_filter","linkOff","_applySize","_tilingRect","dataSource","valueField","childrenField","colorField","colorizer","labelField","maxDepth","layoutAlgorithm","layoutDirection","_themeDependentChanges","_changeDataSource","_isDataExpected","_isSyncData","_updateDataSource","_dataSourceChangedHandler","_requestChange","_optionChangesOrder","_change_DATA_SOURCE","_change_TILE_SETTINGS","_changeTileSettings","_change_GROUP_SETTINGS","_changeGroupSettings","_change_MAX_DEPTH","_changeMaxDepth","_customChangesOrder","_change_NODES_CREATE","_buildNodes","_change_NODES_RESET","_resetNodes","_change_TILES","_applyTilesAppearance","_change_LABELS","_applyLabelsAppearance","_change_TILING","_performTiling","_change_LABELS_LAYOUT","_performLabelsLayout","_applyChanges","_drawn","forceReset","level","processedData","_dataSourceItems","traverseDataItems","dataItems","params","dataItem","totalValue","_items","itemsField","_onNodesCreated","offsets","borderWidth","edgeOffset","innerOffset","labelOptions","shadowFilter","attr","shadow","_calculateLabelSettings","tileEdge","tileInner","headerHeight","groupPadding","padding","labelParams","paddingTopBottom","_headerHeight","_groupPadding","headerEdge","headerInner","filter","bBox","_getTextBBox","paddingLeftRight","tileLabelOptions","groupLabelOptions","labelState","visible","rtlEnabled","tileLabelWordWrap","wordWrap","tileLabelOverflow","textOverflow","groupLabelOverflow","_maxDepth","clear","initHatching","minLevel","maxLevel","_processNodes","process","processNodes","getColorizer","_themeManager","processTileAppearance","processLabelAppearance","algorithm","String","toLowerCase","rectOffsets","innerRect","calculateRects","processTiling","_onTilingPerformed","processLabelsLayout","fontOptions","text","_textForCalculations","css","patchFontOptions","append","getBBox","remove","createTile","simpleRect","color","updateStyles","applyState","updateLabelStyle","currentNode","textData","customLabel","createLabel","emptyRect","rects","setRectAttrs","buildTileRect","marginateRect","margin","effectiveWidth","setMaxSize","hideOverflowEllipsis","layoutTextNode","Range","_isDefined","_isDate","isDate","_isFunction","isFunction","otherLessThan","thisValue","otherValue","otherGreaterThan","compareAndReplace","setValue","otherValueDefined","_Range","addRange","otherRange","otherCategories","isDiscrete","compareAndReplaceByField","controlValuesByVisibleBounds","visibleValueField","checkField","unique","isEmpty","correctValueZeroLevel","setZeroLevel","sortCategories","Array","isArray","sortValues","filteredSeriesCategories","notAFunction","algorithms","defaultAlgorithm","_staticSideIndex","variedSideIndex","staticSideDirection","variedSideDirection","staticSideIndexOffsets","directionToIndexOffsets","variedSideIndexOffsets","static1","static2","varied1","varied2","staticDir","variedDir","totalRect","delta","variedSidePart","dir","onNodesInitialized","onNodesRendering","Proxy","getChild","getChildrenCount","getAllChildren","getAllNodes","collectNodes","customize","_custom","_partialState","_partialLabelState","resetCustomization","_extendProxyType","_updateStyles","_updateLabelStyle","custom","calculatePartialLabelState","getRootNode","resetNodes","Node","updateTile","attrs","smartAttr","stroke","fill","opacity","hatching","type","defaultColorizerName","colorizers","wrapGroupColorGetter","wrapLeafColorGetter","colorCodeField","getValueAsColorCode","getter","_groupColor","Translator2D","_range","_category_translator","_interval_translator","_datetime_translator","_logarithmic_translator","_abs","CANVAS_PROP","dummyTranslator","coord","conversionValue","endPoint","validateCanvas","canvas","prop","getCheckingMethodsAboutBreaks","isStartSide","pos","breaks","isEndSide","isInBreak","br","isBetweenBreaks","prevBreak","getLength","lastBreak","getBreaksSize","cumulativeWidth","_Translator2d","businessRange","update","reinit","script","_prepareCanvasOptions","getCategoriesInfo","axisType","addSpiderCategory","categoriesToPoints","forEach","makeCategoriesToPoints","_oldMethods","methodName","keys","sc","_checkingMethodsAboutBreaks","isInverted","_translateBreaks","_calculateSpecialValues","_breaks","size","breaksSize","gapSize","_checkValueAboutBreaks","methods","inBreak","break","isHorizontal","correctedCategoriesCount","_canvas","startPadding","endPadding","rangeDoubleError","getPower","updateCanvas","updateBusinessRange","_userBreaks","userBreaks","validate","valueSelector","baseValueSelector","validateBusinessRange","transformFrom","transformTo","transform","array","trFrom","trTo","prepareBreaks","getBusinessRange","canvas_position_default","canvas_position_center_middle","canvas_position_left","canvas_position_top","canvas_position_center","canvas_position_middle","canvas_position_right","canvas_position_bottom","canvas_position_start","canvas_position_end","distance","_interval","wholeRange","zoomZeroLengthRange","newStart","newEnd","endValue","startValue","_correctValueAboutBreaks","correction","isDateTime","isLogarithmic","newMin","newMax","_this$_businessRange","getDateTimeMinScale","val1","val2","shiftZeroValue","commonBreakSize","getRange","getScreenRange","add","diff"],"mappings":"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","file":"vendors~76fc0ea4.8bf67ed2e4c336abede7.bundle.js","sourcesContent":["/**\r\n * DevExtreme (viz/translators/translator1d.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.Translator1D = Translator1D;\r\nvar _Number = Number;\r\n\r\nfunction Translator1D() {\r\n this.setDomain(arguments[0], arguments[1]).setCodomain(arguments[2], arguments[3]).setInverted(false)\r\n}\r\nTranslator1D.prototype = {\r\n constructor: Translator1D,\r\n setDomain: function(domain1, domain2) {\r\n var that = this;\r\n that._domain1 = _Number(domain1);\r\n that._domain2 = _Number(domain2);\r\n that._domainDelta = that._domain2 - that._domain1;\r\n return that\r\n },\r\n setCodomain: function(codomain1, codomain2) {\r\n var that = this;\r\n that._codomain1 = _Number(codomain1);\r\n that._codomain2 = _Number(codomain2);\r\n that._codomainDelta = that._codomain2 - that._codomain1;\r\n return that\r\n },\r\n setInverted: function(state) {\r\n this.inverted = state\r\n },\r\n getDomain: function() {\r\n return [this._domain1, this._domain2]\r\n },\r\n getCodomain: function() {\r\n return [this._codomain1, this._codomain2]\r\n },\r\n getDomainStart: function() {\r\n return this._domain1\r\n },\r\n getDomainEnd: function() {\r\n return this._domain2\r\n },\r\n getCodomainStart: function() {\r\n return this._codomain1\r\n },\r\n getCodomainEnd: function() {\r\n return this._codomain2\r\n },\r\n getDomainRange: function() {\r\n return this._domainDelta\r\n },\r\n getCodomainRange: function() {\r\n return this._codomainDelta\r\n },\r\n translate: function(value) {\r\n var ratio = (_Number(value) - this._domain1) / this._domainDelta;\r\n this.inverted && (ratio = 1 - ratio);\r\n return 0 <= ratio && ratio <= 1 ? this._codomain1 + ratio * this._codomainDelta : NaN\r\n },\r\n adjust: function(value) {\r\n var ratio = (_Number(value) - this._domain1) / this._domainDelta;\r\n var result = NaN;\r\n if (ratio < 0) {\r\n result = this._domain1\r\n } else {\r\n if (ratio > 1) {\r\n result = this._domain2\r\n } else {\r\n if (0 <= ratio && ratio <= 1) {\r\n result = _Number(value)\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (viz/tree_map/tiling.squarified.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _tilingSquarified = _interopRequireDefault(require(\"./tiling.squarified.base\"));\r\nvar _tiling = require(\"./tiling\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _max = Math.max;\r\n\r\nfunction accumulate(total, current) {\r\n return _max(total, current)\r\n}\r\n\r\nfunction squarified(data) {\r\n return (0, _tilingSquarified.default)(data, accumulate, false)\r\n}(0, _tiling.addAlgorithm)(\"squarified\", squarified);\r\nvar _default = squarified;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/tree_map/tiling.squarified.base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = _default;\r\nvar _tiling = require(\"./tiling\");\r\nvar _max = Math.max;\r\nvar _round = Math.round;\r\n\r\nfunction compare(a, b) {\r\n return b.value - a.value\r\n}\r\n\r\nfunction getAspectRatio(value) {\r\n return _max(value, 1 / value)\r\n}\r\n\r\nfunction findAppropriateCollection(nodes, head, context) {\r\n var bestAspectRatio = 1 / 0;\r\n var nextAspectRatio;\r\n var sum = 0;\r\n var nextSum;\r\n var i;\r\n var j;\r\n var ii = nodes.length;\r\n var coeff = context.areaToValue / context.staticSide;\r\n var totalAspectRatio;\r\n for (i = head; i < ii;) {\r\n nextSum = sum + nodes[i].value;\r\n totalAspectRatio = context.staticSide / coeff / nextSum;\r\n nextAspectRatio = 0;\r\n for (j = head; j <= i; ++j) {\r\n nextAspectRatio = context.accumulate(nextAspectRatio, getAspectRatio(totalAspectRatio * nodes[j].value / nextSum), j - head + 1)\r\n }\r\n if (nextAspectRatio < bestAspectRatio) {\r\n bestAspectRatio = nextAspectRatio;\r\n sum = nextSum;\r\n ++i\r\n } else {\r\n break\r\n }\r\n }\r\n return {\r\n sum: sum,\r\n count: i - head,\r\n side: _round(coeff * sum)\r\n }\r\n}\r\n\r\nfunction getArea(rect) {\r\n return (rect[2] - rect[0]) * (rect[3] - rect[1])\r\n}\r\n\r\nfunction doStep(nodes, head, context) {\r\n var sidesData = (0, _tiling.buildSidesData)(context.rect, context.directions, context.staticSideIndex);\r\n var area = getArea(context.rect);\r\n var rowData = area > 0 ? findAppropriateCollection(nodes, head, {\r\n areaToValue: area / context.sum,\r\n accumulate: context.accumulate,\r\n staticSide: sidesData.staticSide\r\n }) : {\r\n sum: 1,\r\n side: sidesData.variedSide,\r\n count: nodes.length - head\r\n };\r\n (0, _tiling.calculateRectangles)(nodes, head, context.rect, sidesData, rowData);\r\n context.sum -= rowData.sum;\r\n return head + rowData.count\r\n}\r\n\r\nfunction _default(data, accumulate, isFixedStaticSide) {\r\n var items = data.items;\r\n var ii = items.length;\r\n var i;\r\n var context = {\r\n sum: data.sum,\r\n rect: data.rect,\r\n directions: data.directions,\r\n accumulate: accumulate\r\n };\r\n if (isFixedStaticSide) {\r\n context.staticSideIndex = (0, _tiling.getStaticSideIndex)(context.rect)\r\n }\r\n items.sort(compare);\r\n for (i = 0; i < ii;) {\r\n i = doStep(items, i, context)\r\n }\r\n}\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/tree_map/colorizing.discrete.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _colorizing = require(\"./colorizing\");\r\n\r\nfunction discreteColorizer(options, themeManager, root) {\r\n var palette = themeManager.createPalette(options.palette, {\r\n useHighlight: true,\r\n extensionMode: options.paletteExtensionMode,\r\n count: options.colorizeGroups ? getNodesCount(root) : getLeafsCount(root)\r\n });\r\n return (options.colorizeGroups ? discreteGroupColorizer : discreteLeafColorizer)(palette, root)\r\n}\r\n\r\nfunction getLeafsCount(root) {\r\n var allNodes = root.nodes.slice();\r\n var i;\r\n var ii = allNodes.length;\r\n var count = 0;\r\n var node;\r\n for (i = 0; i < ii; ++i) {\r\n node = allNodes[i];\r\n if (node.isNode()) {\r\n count = Math.max(count, getLeafsCount(node))\r\n } else {\r\n count += 1\r\n }\r\n }\r\n return count\r\n}\r\n\r\nfunction discreteLeafColorizer(palette) {\r\n var colors = palette.generateColors();\r\n return function(node) {\r\n return colors[node.index]\r\n }\r\n}\r\n\r\nfunction getNodesCount(root) {\r\n var allNodes = root.nodes.slice();\r\n var i;\r\n var ii = allNodes.length;\r\n var count = 0;\r\n var node;\r\n for (i = 0; i < ii; ++i) {\r\n node = allNodes[i];\r\n if (node.isNode()) {\r\n count += getNodesCount(node) + 1\r\n }\r\n }\r\n return count\r\n}\r\n\r\nfunction prepareDiscreteGroupColors(palette, root) {\r\n var colors = {};\r\n var allNodes = root.nodes.slice();\r\n var i;\r\n var ii = allNodes.length;\r\n var node;\r\n for (i = 0; i < ii; ++i) {\r\n node = allNodes[i];\r\n if (node.isNode()) {\r\n allNodes = allNodes.concat(node.nodes);\r\n ii = allNodes.length\r\n } else {\r\n if (!colors[node.parent._id]) {\r\n colors[node.parent._id] = palette.getNextColor()\r\n }\r\n }\r\n }\r\n return colors\r\n}\r\n\r\nfunction discreteGroupColorizer(palette, root) {\r\n var colors = prepareDiscreteGroupColors(palette, root);\r\n return function(node) {\r\n return colors[node._id]\r\n }\r\n}(0, _colorizing.addColorizer)(\"discrete\", discreteColorizer);\r\nvar _default = discreteColorizer;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/tree_map/hover.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _tree_map = _interopRequireDefault(require(\"./tree_map.base\"));\r\nvar _node = _interopRequireDefault(require(\"./node\"));\r\nvar _helpers = require(\"../core/helpers\");\r\nvar _common = require(\"./common\");\r\nvar _utils = require(\"../core/utils\");\r\nrequire(\"./api\");\r\nrequire(\"./states\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar proto = _tree_map.default.prototype;\r\nvar nodeProto = _node.default.prototype;\r\nvar STATE_CODE = 1;\r\nproto._eventsMap.onHoverChanged = {\r\n name: \"hoverChanged\"\r\n};\r\n(0, _helpers.expand)(proto._handlers, \"calculateAdditionalStates\", function(states, options) {\r\n states[1] = options.hoverStyle ? (0, _common.buildRectAppearance)(options.hoverStyle) : {}\r\n});\r\n_tree_map.default.addChange({\r\n code: \"HOVER_ENABLED\",\r\n handler: function() {\r\n var hoverEnabled = (0, _utils.parseScalar)(this._getOption(\"hoverEnabled\", true), true);\r\n if (!hoverEnabled) {\r\n this.clearHover()\r\n }\r\n this._hoverEnabled = hoverEnabled\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"hoverEnabled\"\r\n});\r\nnodeProto.statesMap[1] = 1;\r\nnodeProto.additionalStates.push(1);\r\n(0, _helpers.expand)(proto, \"_extendProxyType\", function(proto) {\r\n var that = this;\r\n proto.setHover = function() {\r\n that._hoverNode(this._id)\r\n };\r\n proto.isHovered = function() {\r\n return that._hoverIndex === this._id\r\n }\r\n});\r\n(0, _helpers.expand)(proto, \"_onNodesCreated\", function() {\r\n this._hoverIndex = -1\r\n});\r\n(0, _helpers.expand)(proto, \"_changeGroupSettings\", function() {\r\n var that = this;\r\n that._groupHoverEnabled = (0, _utils.parseScalar)(that._getOption(\"group\").hoverEnabled, true);\r\n if (!that._groupHoverEnabled) {\r\n that.clearHover()\r\n }\r\n});\r\nproto._applyHoverState = function(index, state) {\r\n setNodeStateRecursive(this._nodes[index], STATE_CODE, state);\r\n this._eventTrigger(\"hoverChanged\", {\r\n node: this._nodes[index].proxy\r\n })\r\n};\r\n\r\nfunction setNodeStateRecursive(node, code, state) {\r\n var nodes = node.isNode() && node.nodes;\r\n var i;\r\n var ii = nodes && nodes.length;\r\n node.setState(code, state);\r\n for (i = 0; i < ii; ++i) {\r\n setNodeStateRecursive(nodes[i], code, state)\r\n }\r\n}\r\nproto._hoverNode = function(index) {\r\n var that = this;\r\n var currentIndex = that._hoverIndex;\r\n if (that._hoverEnabled && currentIndex !== index) {\r\n if (!that._groupHoverEnabled && index >= 0 && that._nodes[index].isNode()) {\r\n that.clearHover();\r\n return\r\n }\r\n that._context.suspend();\r\n that._hoverIndex = -1;\r\n if (currentIndex >= 0) {\r\n that._applyHoverState(currentIndex, false)\r\n }\r\n that._hoverIndex = index;\r\n if (index >= 0) {\r\n that._applyHoverState(index, true)\r\n }\r\n that._context.resume()\r\n }\r\n};\r\nproto.clearHover = function() {\r\n this._hoverNode(-1)\r\n};\r\n","/**\r\n * DevExtreme (viz/tree_map/states.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _tree_map = _interopRequireDefault(require(\"./tree_map.base\"));\r\nvar _node = _interopRequireDefault(require(\"./node\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _extend2 = require(\"../../core/utils/extend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar proto = _tree_map.default.prototype;\r\nvar nodeProto = _node.default.prototype;\r\nvar handlers = proto._handlers;\r\nvar _calculateState = handlers.calculateState;\r\nvar _buildState = nodeProto._buildState;\r\nhandlers.calculateState = function(options) {\r\n var states = {\r\n 0: _calculateState(options)\r\n };\r\n handlers.calculateAdditionalStates(states, options);\r\n return states\r\n};\r\nhandlers.calculateAdditionalStates = _common.noop;\r\nnodeProto.code = 0;\r\nnodeProto.statesMap = {\r\n 0: 0\r\n};\r\nnodeProto.additionalStates = [];\r\nnodeProto._buildState = function(state, extra) {\r\n var states = {\r\n 0: _buildState(state[0], extra)\r\n };\r\n if (this.additionalStates.length) {\r\n buildAdditionalStates(states, states[0], state, this.additionalStates)\r\n }\r\n return states\r\n};\r\nnodeProto._getState = function() {\r\n return this.state[this.statesMap[this.code]]\r\n};\r\nnodeProto.setState = function(code, state) {\r\n if (state) {\r\n this.code |= code\r\n } else {\r\n this.code &= ~code\r\n }\r\n this.ctx.change([\"TILES\"])\r\n};\r\n\r\nfunction buildAdditionalStates(states, base, source, list) {\r\n var i;\r\n var ii = list.length;\r\n for (i = 0; i < ii; ++i) {\r\n states[list[i]] = (0, _extend2.extend)({}, base, source[list[i]])\r\n }\r\n}\r\n","/**\r\n * DevExtreme (viz/tree_map/tooltip.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _helpers = require(\"../core/helpers\");\r\nvar _tree_map = _interopRequireDefault(require(\"./tree_map.base\"));\r\nrequire(\"./api\");\r\nvar _tooltip = require(\"../core/tooltip\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar proto = _tree_map.default.prototype;\r\n(0, _helpers.expand)(proto, \"_extendProxyType\", function(proto) {\r\n var that = this;\r\n proto.showTooltip = function(coords) {\r\n that._showTooltip(this._id, coords)\r\n }\r\n});\r\n(0, _helpers.expand)(proto, \"_onNodesCreated\", function() {\r\n if (this._tooltipIndex >= 0) {\r\n this._tooltip.hide()\r\n }\r\n this._tooltipIndex = -1\r\n});\r\n(0, _helpers.expand)(proto, \"_onTilingPerformed\", function() {\r\n if (this._tooltipIndex >= 0) {\r\n this._moveTooltip(this._nodes[this._tooltipIndex])\r\n }\r\n});\r\n\r\nfunction getCoords(coords, rect, renderer) {\r\n var offset = renderer.getRootOffset();\r\n return coords || rect && [(rect[0] + rect[2]) / 2 + offset.left, (rect[1] + rect[3]) / 2 + offset.top] || [-1e3, -1e3]\r\n}\r\nproto._showTooltip = function(index, coords) {\r\n var that = this;\r\n var tooltip = that._tooltip;\r\n var node = that._nodes[index];\r\n if (that._tooltipIndex === index) {\r\n that._moveTooltip(node, coords);\r\n return\r\n }\r\n var callback = function(result) {\r\n if (void 0 === result) {\r\n return\r\n }\r\n if (!result) {\r\n tooltip.hide()\r\n }\r\n that._tooltipIndex = result ? index : -1\r\n };\r\n var xy = getCoords(coords, node.rect, this._renderer);\r\n callback(tooltip.show({\r\n value: node.value,\r\n valueText: tooltip.formatValue(node.value),\r\n node: node.proxy\r\n }, {\r\n x: xy[0],\r\n y: xy[1],\r\n offset: 0\r\n }, {\r\n node: node.proxy\r\n }, void 0, callback))\r\n};\r\nproto._moveTooltip = function(node, coords) {\r\n var xy = getCoords(coords, node.rect, this._renderer);\r\n this._tooltip.move(xy[0], xy[1], 0)\r\n};\r\nproto.hideTooltip = function() {\r\n if (this._tooltipIndex >= 0) {\r\n this._tooltipIndex = -1;\r\n this._tooltip.hide()\r\n }\r\n};\r\n_tree_map.default.addPlugin(_tooltip.plugin);\r\n","/**\r\n * DevExtreme (viz/translators/category_translator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _math = require(\"../../core/utils/math\");\r\nvar round = Math.round;\r\n\r\nfunction getValue(value) {\r\n return value\r\n}\r\nvar _default = {\r\n translate: function(category, directionOffset) {\r\n var that = this;\r\n var canvasOptions = that._canvasOptions;\r\n var categoryIndex = that._categoriesToPoints[category.valueOf()];\r\n var specialValue = that.translateSpecialCase(category);\r\n var startPointIndex = canvasOptions.startPointIndex || 0;\r\n var stickInterval = that._options.stick ? 0 : .5;\r\n if ((0, _type.isDefined)(specialValue)) {\r\n return round(specialValue)\r\n }\r\n if (!categoryIndex && 0 !== categoryIndex) {\r\n return null\r\n }\r\n directionOffset = directionOffset || 0;\r\n var stickDelta = categoryIndex + stickInterval - startPointIndex + .5 * directionOffset;\r\n return round(that._calculateProjection(canvasOptions.interval * stickDelta))\r\n },\r\n getInterval: function() {\r\n return this._canvasOptions.interval\r\n },\r\n getEventScale: function(zoomEvent) {\r\n var scale = zoomEvent.deltaScale || 1;\r\n return 1 - (1 - scale) / (.75 + this.visibleCategories.length / this._categories.length)\r\n },\r\n zoom: function(translate, scale) {\r\n var that = this;\r\n var categories = that._categories;\r\n var canvasOptions = that._canvasOptions;\r\n var stick = that._options.stick;\r\n var invert = canvasOptions.invert;\r\n var interval = canvasOptions.interval * scale;\r\n var translateCategories = translate / interval;\r\n var visibleCount = (that.visibleCategories || []).length;\r\n var startCategoryIndex = parseInt((canvasOptions.startPointIndex || 0) + translateCategories + .5);\r\n var categoriesLength = parseInt((0, _math.adjust)(canvasOptions.canvasLength / interval) + (stick ? 1 : 0)) || 1;\r\n var endCategoryIndex;\r\n if (invert) {\r\n startCategoryIndex = parseInt((canvasOptions.startPointIndex || 0) + visibleCount - translateCategories + .5) - categoriesLength\r\n }\r\n if (startCategoryIndex < 0) {\r\n startCategoryIndex = 0\r\n }\r\n endCategoryIndex = startCategoryIndex + categoriesLength;\r\n if (endCategoryIndex > categories.length) {\r\n endCategoryIndex = categories.length;\r\n startCategoryIndex = endCategoryIndex - categoriesLength;\r\n if (startCategoryIndex < 0) {\r\n startCategoryIndex = 0\r\n }\r\n }\r\n var newVisibleCategories = categories.slice(parseInt(startCategoryIndex), parseInt(endCategoryIndex));\r\n var newInterval = that._getDiscreteInterval(newVisibleCategories.length, canvasOptions);\r\n scale = newInterval / canvasOptions.interval;\r\n translate = that.translate(!invert ? newVisibleCategories[0] : newVisibleCategories[newVisibleCategories.length - 1]) * scale - (canvasOptions.startPoint + (stick ? 0 : newInterval / 2));\r\n return {\r\n min: newVisibleCategories[0],\r\n max: newVisibleCategories[newVisibleCategories.length - 1],\r\n translate: translate,\r\n scale: scale\r\n }\r\n },\r\n getMinScale: function(zoom) {\r\n var that = this;\r\n var canvasOptions = that._canvasOptions;\r\n var categoriesLength = (that.visibleCategories || that._categories).length;\r\n categoriesLength += (parseInt(.1 * categoriesLength) || 1) * (zoom ? -2 : 2);\r\n return canvasOptions.canvasLength / (Math.max(categoriesLength, 1) * canvasOptions.interval)\r\n },\r\n getScale: function(min, max) {\r\n var that = this;\r\n var canvasOptions = that._canvasOptions;\r\n var visibleArea = that.getCanvasVisibleArea();\r\n var stickOffset = !that._options.stick && 1;\r\n var minPoint = (0, _type.isDefined)(min) ? that.translate(min, -stickOffset) : null;\r\n var maxPoint = (0, _type.isDefined)(max) ? that.translate(max, +stickOffset) : null;\r\n if (null === minPoint) {\r\n minPoint = canvasOptions.invert ? visibleArea.max : visibleArea.min\r\n }\r\n if (null === maxPoint) {\r\n maxPoint = canvasOptions.invert ? visibleArea.min : visibleArea.max\r\n }\r\n return that.canvasLength / Math.abs(maxPoint - minPoint)\r\n },\r\n isValid: function(value) {\r\n return (0, _type.isDefined)(value) ? this._categoriesToPoints[value.valueOf()] >= 0 : false\r\n },\r\n getCorrectValue: getValue,\r\n to: function(value, direction) {\r\n var canvasOptions = this._canvasOptions;\r\n var categoryIndex = this._categoriesToPoints[value.valueOf()];\r\n var startPointIndex = canvasOptions.startPointIndex || 0;\r\n var stickDelta = categoryIndex + (this._options.stick ? 0 : .5) - startPointIndex + (this._businessRange.invert ? -1 : 1) * direction * .5;\r\n return round(this._calculateProjection(canvasOptions.interval * stickDelta))\r\n },\r\n from: function(position) {\r\n var direction = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n var canvasOptions = this._canvasOptions;\r\n var startPoint = canvasOptions.startPoint;\r\n var categories = this.visibleCategories || this._categories;\r\n var categoriesLength = categories.length;\r\n var stickInterval = this._options.stick ? .5 : 0;\r\n var result = round((position - startPoint) / canvasOptions.interval + stickInterval - .5 - .5 * direction);\r\n if (result >= categoriesLength) {\r\n result = categoriesLength - 1\r\n }\r\n if (result < 0) {\r\n result = 0\r\n }\r\n if (canvasOptions.invert) {\r\n result = categoriesLength - result - 1\r\n }\r\n return categories[result]\r\n },\r\n _add: function() {\r\n return NaN\r\n },\r\n _toValue: getValue,\r\n isValueProlonged: true,\r\n getRangeByMinZoomValue: function(minZoom, visualRange) {\r\n var categories = this._categories;\r\n var minVisibleIndex = categories.indexOf(visualRange.minVisible);\r\n var maxVisibleIndex = categories.indexOf(visualRange.maxVisible);\r\n var startIndex = minVisibleIndex + minZoom - 1;\r\n var endIndex = maxVisibleIndex - minZoom + 1;\r\n if (categories[startIndex]) {\r\n return [visualRange.minVisible, categories[startIndex]]\r\n } else {\r\n return [categories[endIndex], visualRange.maxVisible]\r\n }\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/translators/interval_translator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\nvar _math = require(\"../../core/utils/math\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar floor = Math.floor;\r\nvar _default = {\r\n _intervalize: function(value, interval) {\r\n if (!(0, _type.isDefined)(value)) {\r\n return\r\n }\r\n if (\"datetime\" === this._businessRange.dataType) {\r\n if ((0, _type.isNumeric)(value)) {\r\n value = new Date(value)\r\n } else {\r\n value = new Date(value.getTime())\r\n }\r\n value = _date.default.correctDateWithUnitBeginning(value, interval, null, this._options.firstDayOfWeek)\r\n } else {\r\n value = (0, _math.adjust)(floor((0, _math.adjust)(value / interval)) * interval, interval)\r\n }\r\n return value\r\n },\r\n translate: function(bp, direction, interval) {\r\n var that = this;\r\n var specialValue = that.translateSpecialCase(bp);\r\n if ((0, _type.isDefined)(specialValue)) {\r\n return Math.round(specialValue)\r\n }\r\n interval = interval || that._options.interval;\r\n if (!that.isValid(bp, interval)) {\r\n return null\r\n }\r\n return that.to(bp, direction, interval)\r\n },\r\n getInterval: function() {\r\n return Math.round(this._canvasOptions.ratioOfCanvasRange * (this._businessRange.interval || Math.abs(this._canvasOptions.rangeMax - this._canvasOptions.rangeMin)))\r\n },\r\n zoom: function() {},\r\n getMinScale: function() {},\r\n getScale: function() {},\r\n _parse: function(value) {\r\n return \"datetime\" === this._businessRange.dataType ? new Date(value) : Number(value)\r\n },\r\n _fromValue: function(value) {\r\n return this._parse(value)\r\n },\r\n _toValue: function(value) {\r\n return this._parse(value)\r\n },\r\n isValid: function(value, interval) {\r\n var that = this;\r\n var co = that._canvasOptions;\r\n var rangeMin = co.rangeMin;\r\n var rangeMax = co.rangeMax;\r\n interval = interval || that._options.interval;\r\n if (null === value || isNaN(value)) {\r\n return false\r\n }\r\n value = \"datetime\" === that._businessRange.dataType && (0, _type.isNumeric)(value) ? new Date(value) : value;\r\n if (interval !== that._options.interval) {\r\n rangeMin = that._intervalize(rangeMin, interval);\r\n rangeMax = that._intervalize(rangeMax, interval)\r\n }\r\n if (value.valueOf() < rangeMin || value.valueOf() >= _date.default.addInterval(rangeMax, interval)) {\r\n return false\r\n }\r\n return true\r\n },\r\n to: function(bp, direction, interval) {\r\n var that = this;\r\n interval = interval || that._options.interval;\r\n var v1 = that._intervalize(bp, interval);\r\n var v2 = _date.default.addInterval(v1, interval);\r\n var res = that._to(v1);\r\n var p2 = that._to(v2);\r\n if (!direction) {\r\n res = floor((res + p2) / 2)\r\n } else {\r\n if (direction > 0) {\r\n res = p2\r\n }\r\n }\r\n return res\r\n },\r\n _to: function(value) {\r\n var co = this._canvasOptions;\r\n var rMin = co.rangeMinVisible;\r\n var rMax = co.rangeMaxVisible;\r\n var offset = value - rMin;\r\n if (value < rMin) {\r\n offset = 0\r\n } else {\r\n if (value > rMax) {\r\n offset = _date.default.addInterval(rMax, this._options.interval) - rMin\r\n }\r\n }\r\n return this._conversionValue(this._calculateProjection(offset * this._canvasOptions.ratioOfCanvasRange))\r\n },\r\n from: function(position, direction) {\r\n var that = this;\r\n var origInterval = that._options.interval;\r\n var interval = origInterval;\r\n var co = that._canvasOptions;\r\n var rMin = co.rangeMinVisible;\r\n var rMax = co.rangeMaxVisible;\r\n var value;\r\n if (\"datetime\" === that._businessRange.dataType) {\r\n interval = _date.default.dateToMilliseconds(origInterval)\r\n }\r\n value = that._calculateUnProjection((position - that._canvasOptions.startPoint) / that._canvasOptions.ratioOfCanvasRange);\r\n value = that._intervalize(_date.default.addInterval(value, interval / 2, direction > 0), origInterval);\r\n if (value < rMin) {\r\n value = rMin\r\n } else {\r\n if (value > rMax) {\r\n value = rMax\r\n }\r\n }\r\n return value\r\n },\r\n _add: function() {\r\n return NaN\r\n },\r\n isValueProlonged: true\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/translators/datetime_translator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction parse(value) {\r\n return null !== value ? new Date(value) : value\r\n}\r\nvar _default = {\r\n _fromValue: parse,\r\n _toValue: parse,\r\n _add: _date.default.addDateInterval,\r\n convert: _date.default.dateToMilliseconds\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/translators/logarithmic_translator.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _utils = require(\"../core/utils\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _default = {\r\n _fromValue: function(value) {\r\n return null !== value ? (0, _utils.getLogExt)(value, this._canvasOptions.base, this._businessRange.allowNegatives, this._businessRange.linearThreshold) : value\r\n },\r\n _toValue: function(value) {\r\n return null !== value ? (0, _utils.raiseToExt)(value, this._canvasOptions.base, this._businessRange.allowNegatives, this._businessRange.linearThreshold) : value\r\n },\r\n getMinBarSize: function(minBarSize) {\r\n var visibleArea = this.getCanvasVisibleArea();\r\n var minValue = this.from(visibleArea.min + minBarSize);\r\n var canvasOptions = this._canvasOptions;\r\n return Math.pow(canvasOptions.base, canvasOptions.rangeMinVisible + this._fromValue(this.from(visibleArea.min)) - this._fromValue(!(0, _type.isDefined)(minValue) ? this.from(visibleArea.max) : minValue))\r\n },\r\n checkMinBarSize: function(initialValue, minShownValue, stackValue) {\r\n var canvasOptions = this._canvasOptions;\r\n var prevValue = stackValue - initialValue;\r\n var baseMethod = this.constructor.prototype.checkMinBarSize;\r\n var minBarSize;\r\n var updateValue;\r\n if ((0, _type.isDefined)(minShownValue) && prevValue > 0) {\r\n minBarSize = baseMethod(this._fromValue(stackValue / prevValue), this._fromValue(minShownValue) - canvasOptions.rangeMinVisible);\r\n updateValue = Math.pow(canvasOptions.base, this._fromValue(prevValue) + minBarSize) - prevValue\r\n } else {\r\n updateValue = baseMethod(initialValue, minShownValue)\r\n }\r\n return updateValue\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nObject.defineProperty(exports, \"refreshPaths\", {\r\n enumerable: true,\r\n get: function() {\r\n return _renderer.refreshPaths\r\n }\r\n});\r\nexports.prepareSegmentRectPoints = void 0;\r\nvar _renderer = require(\"./core/renderers/renderer\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar prepareSegmentRectPoints = function(left, top, width, height, borderOptions) {\r\n var maxSW = ~~((width < height ? width : height) / 2);\r\n var sw = borderOptions.width || 0;\r\n var newSW = sw < maxSW ? sw : maxSW;\r\n left += newSW / 2;\r\n top += newSW / 2;\r\n width -= newSW;\r\n height -= newSW;\r\n var right = left + width;\r\n var bottom = top + height;\r\n var points = [];\r\n var segments = [];\r\n var segmentSequence;\r\n var visiblyOpt = 0;\r\n var prevSegmentVisibility = 0;\r\n var allSegment = {\r\n top: [\r\n [left, top],\r\n [right, top]\r\n ],\r\n right: [\r\n [right, top],\r\n [right, bottom]\r\n ],\r\n bottom: [\r\n [right, bottom],\r\n [left, bottom]\r\n ],\r\n left: [\r\n [left, bottom],\r\n [left, top]\r\n ]\r\n };\r\n (0, _iterator.each)(allSegment, function(seg) {\r\n var visibility = !!borderOptions[seg];\r\n visiblyOpt = 2 * visiblyOpt + ~~visibility\r\n });\r\n switch (visiblyOpt) {\r\n case 13:\r\n case 9:\r\n segmentSequence = [\"left\", \"top\", \"right\", \"bottom\"];\r\n break;\r\n case 11:\r\n segmentSequence = [\"bottom\", \"left\", \"top\", \"right\"];\r\n break;\r\n default:\r\n segmentSequence = [\"top\", \"right\", \"bottom\", \"left\"]\r\n }(0, _iterator.each)(segmentSequence, function(_, seg) {\r\n var segmentVisibility = !!borderOptions[seg];\r\n if (!prevSegmentVisibility && segments.length) {\r\n points.push(segments);\r\n segments = []\r\n }\r\n if (segmentVisibility) {\r\n (0, _iterator.each)(allSegment[seg].slice(prevSegmentVisibility), function(_, segment) {\r\n segments = segments.concat(segment)\r\n })\r\n }\r\n prevSegmentVisibility = ~~segmentVisibility\r\n });\r\n segments.length && points.push(segments);\r\n 1 === points.length && (points = points[0]);\r\n return {\r\n points: points,\r\n pathType: 15 === visiblyOpt ? \"area\" : \"line\"\r\n }\r\n};\r\nexports.prepareSegmentRectPoints = prepareSegmentRectPoints;\r\n","/**\r\n * DevExtreme (viz/themes.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getTheme = getTheme;\r\nexports.currentTheme = currentTheme;\r\nexports.registerTheme = registerTheme;\r\nexports.registerThemeSchemeAlias = registerThemeSchemeAlias;\r\nexports.addCacheItem = addCacheItem;\r\nexports.removeCacheItem = removeCacheItem;\r\nexports.refreshTheme = refreshTheme;\r\nvar _extend2 = require(\"../core/utils/extend\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _utils = require(\"./core/utils\");\r\nvar _themes = require(\"../ui/themes\");\r\nvar themes = {};\r\nvar themesMapping = {};\r\nvar themesSchemeMapping = {};\r\nvar _extend = _extend2.extend;\r\nvar _each = _iterator.each;\r\nvar currentThemeName = null;\r\nvar defaultTheme;\r\nvar nextCacheUid = 0;\r\nvar widgetsCache = {};\r\n\r\nfunction getTheme(themeName) {\r\n var name = (0, _utils.normalizeEnum)(themeName);\r\n return themes[name] || themes[themesMapping[name] || currentTheme()]\r\n}\r\n\r\nfunction findThemeNameByName(name, scheme) {\r\n return themesMapping[name + \".\" + scheme] || themesSchemeMapping[name + \".\" + scheme] || themesMapping[name]\r\n}\r\n\r\nfunction findThemeNameByPlatform(platform, version, scheme) {\r\n return findThemeNameByName(platform + version, scheme) || findThemeNameByName(platform, scheme)\r\n}\r\n\r\nfunction currentTheme(themeName, colorScheme) {\r\n if (!arguments.length) {\r\n return currentThemeName || findThemeNameByName((0, _themes.current)()) || defaultTheme\r\n }\r\n var scheme = (0, _utils.normalizeEnum)(colorScheme);\r\n currentThemeName = (themeName && themeName.platform ? findThemeNameByPlatform((0, _utils.normalizeEnum)(themeName.platform), themeName.version, scheme) : findThemeNameByName((0, _utils.normalizeEnum)(themeName), scheme)) || currentThemeName;\r\n return this\r\n}\r\n\r\nfunction getThemeInfo(themeName, splitter) {\r\n var k = themeName.indexOf(splitter);\r\n return k > 0 ? {\r\n name: themeName.substring(0, k),\r\n scheme: themeName.substring(k + 1)\r\n } : null\r\n}\r\n\r\nfunction registerThemeName(themeName, targetThemeName) {\r\n var themeInfo = getThemeInfo(themeName, \".\") || {\r\n name: themeName\r\n };\r\n var name = themeInfo.name;\r\n var scheme = themeInfo.scheme;\r\n if (scheme) {\r\n themesMapping[name] = themesMapping[name] || targetThemeName;\r\n themesMapping[name + \".\" + scheme] = targetThemeName\r\n } else {\r\n themesMapping[name] = targetThemeName\r\n }\r\n}\r\n\r\nfunction registerTheme(theme, baseThemeName) {\r\n var themeName = (0, _utils.normalizeEnum)(theme && theme.name);\r\n if (themeName) {\r\n theme.isDefault && (defaultTheme = themeName);\r\n registerThemeName(themeName, themeName);\r\n themes[themeName] = _extend(true, {}, getTheme(baseThemeName), patchTheme(theme))\r\n }\r\n}\r\n\r\nfunction registerThemeSchemeAlias(from, to) {\r\n themesSchemeMapping[from] = to\r\n}\r\n\r\nfunction mergeScalar(target, field, source, sourceValue) {\r\n var _value = source ? source[field] : sourceValue;\r\n if (void 0 !== _value && void 0 === target[field]) {\r\n target[field] = _value\r\n }\r\n}\r\n\r\nfunction mergeObject(target, field, source, sourceValue) {\r\n var _value = source ? source[field] : sourceValue;\r\n if (void 0 !== _value) {\r\n target[field] = _extend(true, {}, _value, target[field])\r\n }\r\n}\r\n\r\nfunction patchTheme(theme) {\r\n theme = _extend(true, {\r\n loadingIndicator: {\r\n font: {}\r\n },\r\n \"export\": {\r\n font: {}\r\n },\r\n legend: {\r\n font: {},\r\n border: {}\r\n },\r\n title: {\r\n font: {}\r\n },\r\n tooltip: {\r\n font: {}\r\n },\r\n \"chart:common\": {},\r\n \"chart:common:axis\": {\r\n grid: {},\r\n minorGrid: {},\r\n tick: {},\r\n minorTick: {},\r\n title: {\r\n font: {}\r\n },\r\n label: {\r\n font: {}\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {},\r\n border: {}\r\n },\r\n chart: {\r\n commonSeriesSettings: {\r\n candlestick: {}\r\n }\r\n },\r\n pie: {},\r\n polar: {},\r\n gauge: {\r\n scale: {\r\n tick: {},\r\n minorTick: {},\r\n label: {\r\n font: {}\r\n }\r\n }\r\n },\r\n barGauge: {},\r\n funnel: {},\r\n sankey: {},\r\n map: {\r\n background: {}\r\n },\r\n treeMap: {\r\n tile: {\r\n selectionStyle: {\r\n border: {}\r\n }\r\n },\r\n group: {\r\n border: {},\r\n selectionStyle: {\r\n border: {}\r\n },\r\n label: {\r\n font: {}\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {},\r\n minorTick: {},\r\n label: {\r\n font: {}\r\n }\r\n },\r\n chart: {}\r\n },\r\n sparkline: {},\r\n bullet: {}\r\n }, theme);\r\n mergeScalar(theme.loadingIndicator, \"backgroundColor\", theme);\r\n mergeScalar(theme.chart.commonSeriesSettings.candlestick, \"innerColor\", null, theme.backgroundColor);\r\n mergeScalar(theme.map.background, \"color\", null, theme.backgroundColor);\r\n mergeScalar(theme.title.font, \"color\", null, theme.primaryTitleColor);\r\n mergeObject(theme.title, \"subtitle\", null, theme.title);\r\n mergeScalar(theme.legend.font, \"color\", null, theme.secondaryTitleColor);\r\n mergeScalar(theme.legend.border, \"color\", null, theme.gridColor);\r\n patchAxes(theme);\r\n _each([\"chart\", \"pie\", \"polar\", \"gauge\", \"barGauge\", \"map\", \"treeMap\", \"funnel\", \"rangeSelector\", \"sparkline\", \"bullet\", \"sankey\"], function(_, section) {\r\n mergeScalar(theme[section], \"redrawOnResize\", theme);\r\n mergeScalar(theme[section], \"containerBackgroundColor\", null, theme.backgroundColor);\r\n mergeObject(theme[section], \"tooltip\", theme);\r\n mergeObject(theme[section], \"export\", theme)\r\n });\r\n _each([\"chart\", \"pie\", \"polar\", \"gauge\", \"barGauge\", \"map\", \"treeMap\", \"funnel\", \"rangeSelector\", \"sankey\"], function(_, section) {\r\n mergeObject(theme[section], \"loadingIndicator\", theme);\r\n mergeObject(theme[section], \"legend\", theme);\r\n mergeObject(theme[section], \"title\", theme)\r\n });\r\n _each([\"chart\", \"pie\", \"polar\"], function(_, section) {\r\n mergeObject(theme, section, null, theme[\"chart:common\"])\r\n });\r\n _each([\"chart\", \"polar\"], function(_, section) {\r\n theme[section] = theme[section] || {};\r\n mergeObject(theme[section], \"commonAxisSettings\", null, theme[\"chart:common:axis\"])\r\n });\r\n _each([\"chart\", \"polar\", \"map\", \"pie\"], function(_, section) {\r\n theme[section] = theme[section] || {};\r\n mergeObject(theme[section], \"commonAnnotationSettings\", null, theme[\"chart:common:annotation\"])\r\n });\r\n mergeObject(theme.rangeSelector.chart, \"commonSeriesSettings\", theme.chart);\r\n mergeObject(theme.rangeSelector.chart, \"dataPrepareSettings\", theme.chart);\r\n mergeScalar(theme.treeMap.group.border, \"color\", null, theme.gridColor);\r\n mergeScalar(theme.treeMap.tile.selectionStyle.border, \"color\", null, theme.primaryTitleColor);\r\n mergeScalar(theme.treeMap.group.selectionStyle.border, \"color\", null, theme.primaryTitleColor);\r\n mergeScalar(theme.map.legend, \"backgroundColor\", theme);\r\n patchMapLayers(theme);\r\n return theme\r\n}\r\n\r\nfunction patchAxes(theme) {\r\n var commonAxisSettings = theme[\"chart:common:axis\"];\r\n var colorFieldName = \"color\";\r\n _each([commonAxisSettings.grid, commonAxisSettings.minorGrid], function(_, obj) {\r\n mergeScalar(obj, colorFieldName, null, theme.gridColor)\r\n });\r\n _each([commonAxisSettings, commonAxisSettings.tick, commonAxisSettings.minorTick, commonAxisSettings.label.font], function(_, obj) {\r\n mergeScalar(obj, colorFieldName, null, theme.axisColor)\r\n });\r\n mergeScalar(commonAxisSettings.title.font, colorFieldName, null, theme.secondaryTitleColor);\r\n mergeScalar(theme.gauge.scale.label.font, colorFieldName, null, theme.axisColor);\r\n mergeScalar(theme.gauge.scale.tick, colorFieldName, null, theme.backgroundColor);\r\n mergeScalar(theme.gauge.scale.minorTick, colorFieldName, null, theme.backgroundColor);\r\n mergeScalar(theme.rangeSelector.scale.label.font, colorFieldName, null, theme.axisColor)\r\n}\r\n\r\nfunction patchMapLayers(theme) {\r\n var map = theme.map;\r\n _each([\"area\", \"line\", \"marker\"], function(_, section) {\r\n mergeObject(map, \"layer:\" + section, null, map.layer)\r\n });\r\n _each([\"dot\", \"bubble\", \"pie\", \"image\"], function(_, section) {\r\n mergeObject(map, \"layer:marker:\" + section, null, map[\"layer:marker\"])\r\n })\r\n}\r\n\r\nfunction addCacheItem(target) {\r\n var cacheUid = ++nextCacheUid;\r\n target._cache = cacheUid;\r\n widgetsCache[cacheUid] = target\r\n}\r\n\r\nfunction removeCacheItem(target) {\r\n delete widgetsCache[target._cache]\r\n}\r\n\r\nfunction refreshTheme() {\r\n _each(widgetsCache, function() {\r\n this.refresh()\r\n });\r\n return this\r\n}\r\n","/**\r\n * DevExtreme (viz/tree_map.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _tree_map = _interopRequireDefault(require(\"./tree_map/tree_map\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _tree_map.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (viz/tree_map/tree_map.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _tree_map = _interopRequireDefault(require(\"./tree_map.base\"));\r\nrequire(\"./tiling.squarified\");\r\nrequire(\"./tiling.strip\");\r\nrequire(\"./tiling.slice_and_dice\");\r\nrequire(\"./tiling.rotated_slice_and_dice\");\r\nrequire(\"./colorizing.discrete\");\r\nrequire(\"./colorizing.gradient\");\r\nrequire(\"./colorizing.range\");\r\nrequire(\"./api\");\r\nrequire(\"./hover\");\r\nrequire(\"./selection\");\r\nrequire(\"./tooltip\");\r\nrequire(\"./tracker\");\r\nrequire(\"./drilldown\");\r\nrequire(\"./plain_data_source\");\r\nvar _export = require(\"../core/export\");\r\nvar _title = require(\"../core/title\");\r\nvar _loading_indicator = require(\"../core/loading_indicator\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _tree_map.default;\r\nexports.default = _default;\r\n_tree_map.default.addPlugin(_export.plugin);\r\n_tree_map.default.addPlugin(_title.plugin);\r\n_tree_map.default.addPlugin(_loading_indicator.plugin);\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/tree_map/tiling.strip.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _tilingSquarified = _interopRequireDefault(require(\"./tiling.squarified.base\"));\r\nvar _tiling = require(\"./tiling\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\n\r\nfunction accumulate(total, current, count) {\r\n return ((count - 1) * total + current) / count\r\n}\r\n\r\nfunction strip(data) {\r\n return (0, _tilingSquarified.default)(data, accumulate, true)\r\n}(0, _tiling.addAlgorithm)(\"strip\", strip);\r\nvar _default = strip;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/tree_map/tiling.slice_and_dice.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _tiling = require(\"./tiling\");\r\n\r\nfunction sliceAndDice(data) {\r\n var items = data.items;\r\n var sidesData = (0, _tiling.buildSidesData)(data.rect, data.directions, data.isRotated ? 1 : 0);\r\n (0, _tiling.calculateRectangles)(items, 0, data.rect, sidesData, {\r\n sum: data.sum,\r\n count: items.length,\r\n side: sidesData.variedSide\r\n })\r\n}(0, _tiling.addAlgorithm)(\"sliceanddice\", sliceAndDice);\r\nvar _default = sliceAndDice;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/tree_map/tiling.rotated_slice_and_dice.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _tiling = require(\"./tiling\");\r\nvar sliceAndDiceAlgorithm = (0, _tiling.getAlgorithm)(\"sliceanddice\");\r\n\r\nfunction rotatedSliceAndDice(data) {\r\n data.isRotated = !data.isRotated;\r\n return sliceAndDiceAlgorithm.call(this, data)\r\n}(0, _tiling.addAlgorithm)(\"rotatedsliceanddice\", rotatedSliceAndDice);\r\n","/**\r\n * DevExtreme (viz/tree_map/colorizing.gradient.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _colorizing = require(\"./colorizing\");\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\n\r\nfunction createSimpleColorizer(getColor, range) {\r\n return function(node) {\r\n return getColor(node, range)\r\n }\r\n}\r\n\r\nfunction getRangeData(range) {\r\n return [Number(range[0]) || 0, range[1] - range[0] || 1]\r\n}\r\n\r\nfunction calculateRange(nodes, getValue) {\r\n var i;\r\n var ii = nodes.length;\r\n var codes = [];\r\n var code;\r\n for (i = 0; i < ii; ++i) {\r\n code = getValue(nodes[i]);\r\n if (isFinite(code)) {\r\n codes.push(code)\r\n }\r\n }\r\n return getRangeData([_min.apply(null, codes), _max.apply(null, codes)])\r\n}\r\n\r\nfunction createGuessingColorizer(getColor, getValue) {\r\n var ranges = {};\r\n return function(node) {\r\n var parent = node.parent;\r\n return getColor(node, ranges[parent._id] || (ranges[parent._id] = calculateRange(parent.nodes, getValue)))\r\n }\r\n}\r\n\r\nfunction gradientColorizer(options, themeManager) {\r\n var palette = themeManager.createGradientPalette(options.palette);\r\n var getValue = (0, _colorizing.createColorCodeGetter)(options);\r\n return \"range\" in options ? createSimpleColorizer(getColor, getRangeData(options.range || [])) : createGuessingColorizer(getColor, getValue);\r\n\r\n function getColor(node, arg) {\r\n return palette.getColor((getValue(node) - arg[0]) / arg[1])\r\n }\r\n}(0, _colorizing.addColorizer)(\"gradient\", gradientColorizer);\r\nvar _default = gradientColorizer;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/tree_map/colorizing.range.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _colorizing = require(\"./colorizing\");\r\n\r\nfunction getPaletteIndex(value, items) {\r\n var start = 0;\r\n var end = items.length - 1;\r\n var index = -1;\r\n var middle;\r\n if (items[start] <= value && value <= items[end]) {\r\n if (value === items[end]) {\r\n index = end - 1\r\n } else {\r\n while (end - start > 1) {\r\n middle = start + end >> 1;\r\n if (value < items[middle]) {\r\n end = middle\r\n } else {\r\n start = middle\r\n }\r\n }\r\n index = start\r\n }\r\n }\r\n return index\r\n}\r\n\r\nfunction rangeColorizer(options, themeManager) {\r\n var range = options.range || [];\r\n var palette = themeManager.createDiscretePalette(options.palette, range.length - 1);\r\n var getValue = (0, _colorizing.createColorCodeGetter)(options);\r\n return function(node) {\r\n return palette.getColor(getPaletteIndex(getValue(node), range))\r\n }\r\n}(0, _colorizing.addColorizer)(\"range\", rangeColorizer);\r\nvar _default = rangeColorizer;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/tree_map/selection.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _tree_map = _interopRequireDefault(require(\"./tree_map.base\"));\r\nvar _node = _interopRequireDefault(require(\"./node\"));\r\nvar _helpers = require(\"../core/helpers\");\r\nvar _common = require(\"./common\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _array = require(\"../../core/utils/array\");\r\nrequire(\"./api\");\r\nrequire(\"./states\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar proto = _tree_map.default.prototype;\r\nvar nodeProto = _node.default.prototype;\r\nvar MODE_NONE = 0;\r\nvar MODE_SINGLE = 1;\r\nvar MODE_MULTIPLE = 2;\r\nvar STATE_CODE = 2;\r\nproto._eventsMap.onSelectionChanged = {\r\n name: \"selectionChanged\"\r\n};\r\n(0, _helpers.expand)(proto._handlers, \"calculateAdditionalStates\", function(states, options) {\r\n states[2] = options.selectionStyle ? (0, _common.buildRectAppearance)(options.selectionStyle) : {}\r\n});\r\nnodeProto.statesMap[2] = nodeProto.statesMap[3] = STATE_CODE;\r\nnodeProto.additionalStates.push(2);\r\n(0, _helpers.expand)(proto, \"_onNodesCreated\", function() {\r\n this._selectionList.length = 0\r\n});\r\n(0, _helpers.expand)(proto, \"_extendProxyType\", function(proto) {\r\n var that = this;\r\n proto.select = function(state) {\r\n that._selectNode(this._id, !!state)\r\n };\r\n proto.isSelected = function() {\r\n return (0, _array.inArray)(this._id, that._selectionList) >= 0\r\n };\r\n that._selectionList = []\r\n});\r\n_tree_map.default.addChange({\r\n code: \"SELECTION_MODE\",\r\n handler: function() {\r\n var that = this;\r\n var option = (0, _utils.normalizeEnum)(that._getOption(\"selectionMode\", true));\r\n var selectionList = that._selectionList;\r\n var tmp;\r\n var mode = \"none\" === option ? MODE_NONE : \"multiple\" === option ? MODE_MULTIPLE : MODE_SINGLE;\r\n if (mode === MODE_SINGLE && selectionList.length > 1) {\r\n tmp = selectionList.pop();\r\n that.clearSelection();\r\n selectionList.push(tmp)\r\n } else {\r\n if (mode === MODE_NONE) {\r\n that.clearSelection()\r\n }\r\n }\r\n that._selectionMode = mode\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"selectionMode\"\r\n});\r\n(0, _helpers.expand)(proto, \"_applyTilesAppearance\", function() {\r\n if (this._selectionList.length) {\r\n bringSelectedTilesToForeground(this._nodes, this._selectionList)\r\n }\r\n});\r\nvar tileToFront = [leafToFront, groupToFront];\r\n\r\nfunction bringSelectedTilesToForeground(nodes, selectionList) {\r\n var i;\r\n var ii = selectionList.length;\r\n var node;\r\n for (i = 0; i < ii; ++i) {\r\n node = nodes[selectionList[i]];\r\n tileToFront[Number(node.isNode())](node.tile)\r\n }\r\n}\r\n\r\nfunction leafToFront(content) {\r\n content.toForeground()\r\n}\r\n\r\nfunction groupToFront(content) {\r\n content.outer.toForeground();\r\n content.inner.toForeground()\r\n}\r\nproto._applySelectionState = function(index, state) {\r\n var node = this._nodes[index];\r\n node.setState(STATE_CODE, state);\r\n this._eventTrigger(\"selectionChanged\", {\r\n node: node.proxy\r\n })\r\n};\r\nproto._selectNode = function(index, state) {\r\n var that = this;\r\n var selectionList;\r\n var k;\r\n var tmp;\r\n if (that._selectionMode !== MODE_NONE) {\r\n that._context.suspend();\r\n selectionList = that._selectionList;\r\n k = (0, _array.inArray)(index, selectionList);\r\n if (state && k === -1) {\r\n if (that._selectionMode === MODE_SINGLE) {\r\n if (selectionList.length) {\r\n tmp = selectionList.pop();\r\n that._applySelectionState(tmp, false)\r\n }\r\n }\r\n selectionList.push(index);\r\n that._applySelectionState(index, true)\r\n } else {\r\n if (!state && k >= 0) {\r\n selectionList.splice(k, 1);\r\n that._applySelectionState(index, false)\r\n }\r\n }\r\n that._context.resume()\r\n }\r\n};\r\nproto.clearSelection = function() {\r\n var that = this;\r\n var selectionList = that._selectionList;\r\n var i;\r\n var ii = selectionList.length;\r\n if (that._selectionMode !== MODE_NONE) {\r\n that._context.suspend();\r\n for (i = 0; i < ii; ++i) {\r\n that._applySelectionState(selectionList[i], false)\r\n }\r\n selectionList.length = 0;\r\n that._context.resume()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (viz/tree_map/tracker.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _tree_map = _interopRequireDefault(require(\"./tree_map.base\"));\r\nvar _tracker = require(\"../components/tracker\");\r\nvar _helpers = require(\"../core/helpers\");\r\nvar _utils = require(\"../core/utils\");\r\nrequire(\"./api\");\r\nrequire(\"./hover\");\r\nrequire(\"./tooltip\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DATA_KEY_BASE = \"__treemap_data_\";\r\nvar dataKeyModifier = 0;\r\nvar proto = _tree_map.default.prototype;\r\nproto._eventsMap.onClick = {\r\n name: \"click\"\r\n};\r\nvar getDataKey = function() {\r\n var dataKey = DATA_KEY_BASE + dataKeyModifier++;\r\n return dataKey\r\n};\r\n(0, _helpers.expand)(proto, \"_initCore\", function() {\r\n var that = this;\r\n var dataKey = getDataKey();\r\n var getProxy = function(index) {\r\n return that._nodes[index].proxy\r\n };\r\n that._tracker = new _tracker.Tracker({\r\n widget: that,\r\n root: that._renderer.root,\r\n getNode: function(id) {\r\n var proxy = getProxy(id);\r\n var interactWithGroup = (0, _utils.parseScalar)(that._getOption(\"interactWithGroup\", true));\r\n return interactWithGroup && proxy.isLeaf() && proxy.getParent().isActive() ? proxy.getParent() : proxy\r\n },\r\n getData: function(e) {\r\n var target = e.target;\r\n return (\"tspan\" === target.tagName ? target.parentNode : target)[dataKey]\r\n },\r\n getProxy: getProxy,\r\n click: function(e) {\r\n that._eventTrigger(\"click\", e)\r\n }\r\n });\r\n that._handlers.setTrackerData = function(node, element) {\r\n element.data(dataKey, node._id)\r\n }\r\n});\r\n(0, _helpers.expand)(proto, \"_disposeCore\", function() {\r\n this._tracker.dispose()\r\n});\r\n","/**\r\n * DevExtreme (viz/tree_map/drilldown.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _tree_map = _interopRequireDefault(require(\"./tree_map.base\"));\r\nvar _helpers = require(\"../core/helpers\");\r\nrequire(\"./api\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar proto = _tree_map.default.prototype;\r\nproto._eventsMap.onDrill = {\r\n name: \"drill\"\r\n};\r\n(0, _helpers.expand)(proto, \"_extendProxyType\", function(proto) {\r\n var that = this;\r\n proto.drillDown = function() {\r\n that._drillToNode(this._id)\r\n }\r\n});\r\n(0, _helpers.expand)(proto, \"_onNodesCreated\", function() {\r\n this._drilldownIndex = -1\r\n});\r\nproto._drillToNode = function(index) {\r\n var that = this;\r\n var node;\r\n if (that._drilldownIndex !== index) {\r\n node = that._nodes[index] || that._root;\r\n if (node.nodes) {\r\n that._drilldownIndex = index;\r\n that._topNode = node;\r\n that._context.suspend();\r\n that._context.change([\"MAX_DEPTH\", \"NODES_RESET\"]);\r\n that._context.resume();\r\n that._eventTrigger(\"drill\", {\r\n node: node.proxy\r\n })\r\n }\r\n }\r\n};\r\nproto.resetDrillDown = function() {\r\n this._drillToNode(-1);\r\n return this\r\n};\r\nproto.drillUp = function() {\r\n this._drillToNode(this._topNode.parent._id || -1);\r\n return this\r\n};\r\nproto.getCurrentNode = function() {\r\n return this._topNode.proxy\r\n};\r\n","/**\r\n * DevExtreme (viz/tree_map/plain_data_source.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _tree_map = _interopRequireDefault(require(\"./tree_map.base\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar proto = _tree_map.default.prototype;\r\nproto._optionChangesMap.idField = proto._optionChangesMap.parentField = \"NODES_CREATE\";\r\nproto._processDataSourceItems = function(items) {\r\n var i;\r\n var struct = {};\r\n var currentItem;\r\n var idField = this._getOption(\"idField\", true);\r\n var parentField = this._getOption(\"parentField\", true);\r\n var parentId;\r\n var rootNodes = [];\r\n var tmpItems;\r\n var item;\r\n if (!idField || !parentField || 0 === items.length) {\r\n return {\r\n items: items,\r\n isPlain: false\r\n }\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n currentItem = items[i];\r\n parentId = currentItem[parentField];\r\n if (parentId) {\r\n struct[parentId] = struct[parentId] || {\r\n items: []\r\n };\r\n tmpItems = struct[parentId].items\r\n } else {\r\n tmpItems = rootNodes\r\n }\r\n tmpItems.push(currentItem)\r\n }\r\n treeFiller({\r\n struct: struct,\r\n idField: idField\r\n }, rootNodes);\r\n for (item in struct) {\r\n struct[item] && rootNodes.push(struct[item])\r\n }\r\n return {\r\n items: rootNodes,\r\n isPlain: true\r\n }\r\n};\r\n\r\nfunction treeFiller(context, items) {\r\n var currentItem;\r\n var i;\r\n var struct = context.struct;\r\n var id;\r\n for (i = 0; i < items.length; i++) {\r\n currentItem = items[i];\r\n id = currentItem[context.idField];\r\n if (struct[id]) {\r\n currentItem.items = struct[id].items;\r\n struct[id] = null;\r\n treeFiller(context, currentItem.items)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (viz/tree_map/tree_map.base.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _common = require(\"./common\");\r\nvar _node = _interopRequireDefault(require(\"./node\"));\r\nvar _tiling = require(\"./tiling\");\r\nvar _colorizing = require(\"./colorizing\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _common2 = require(\"../../core/utils/common\");\r\nvar _base_widget = _interopRequireDefault(require(\"../core/base_widget\"));\r\nrequire(\"./tiling.squarified\");\r\nrequire(\"./colorizing.discrete\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _data_source = require(\"../core/data_source\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _max = Math.max;\r\nvar directions = {\r\n lefttoprightbottom: [1, 1],\r\n leftbottomrighttop: [1, -1],\r\n righttopleftbottom: [-1, 1],\r\n rightbottomlefttop: [-1, -1]\r\n};\r\n(0, _tiling.setDefaultAlgorithm)(\"squarified\");\r\n(0, _colorizing.setDefaultColorizer)(\"discrete\");\r\n\r\nfunction pickPositiveInteger(val) {\r\n return val > 0 ? Math.round(val) : 0\r\n}\r\nvar dxTreeMap = _base_widget.default.inherit({\r\n _handlers: {\r\n beginBuildNodes: _common2.noop,\r\n buildNode: _common2.noop,\r\n endBuildNodes: _common2.noop,\r\n setTrackerData: _common2.noop,\r\n calculateState: function(options) {\r\n return (0, _common.buildRectAppearance)(options)\r\n }\r\n },\r\n _rootClass: \"dxtm-tree-map\",\r\n _rootClassPrefix: \"dxtm\",\r\n _getDefaultSize: function() {\r\n return {\r\n width: 400,\r\n height: 400\r\n }\r\n },\r\n _themeSection: \"treeMap\",\r\n _fontFields: [\"tile.label.font\", \"group.label.font\"],\r\n _init: function() {\r\n var that = this;\r\n that._rectOffsets = {};\r\n that._handlers = Object.create(that._handlers);\r\n that._context = {\r\n suspend: function() {\r\n if (!that._applyingChanges) {\r\n that._suspendChanges()\r\n }\r\n },\r\n resume: function() {\r\n if (!that._applyingChanges) {\r\n that._resumeChanges()\r\n }\r\n },\r\n change: function(codes) {\r\n that._change(codes)\r\n },\r\n settings: [{}, {}],\r\n calculateState: that._handlers.calculateState,\r\n calculateLabelState: _common.buildTextAppearance\r\n };\r\n that._root = that._topNode = {\r\n nodes: []\r\n };\r\n that.callBase.apply(that, arguments)\r\n },\r\n _initialChanges: [\"DATA_SOURCE\"],\r\n _initCore: function() {\r\n var that = this;\r\n var renderer = that._renderer;\r\n that._createProxyType();\r\n that._tilesGroup = renderer.g().linkOn(renderer.root, \"tiles\").linkAppend();\r\n that._labelsGroup = renderer.g().linkOn(renderer.root, \"labels\").linkAppend()\r\n },\r\n _createProxyType: _common2.noop,\r\n _disposeCore: function() {\r\n var that = this;\r\n that._filter && that._filter.dispose();\r\n that._labelsGroup.linkOff();\r\n that._tilesGroup.linkOff()\r\n },\r\n _applySize: function(rect) {\r\n this._tilingRect = rect.slice();\r\n this._change([\"TILING\"])\r\n },\r\n _optionChangesMap: {\r\n dataSource: \"DATA_SOURCE\",\r\n valueField: \"NODES_CREATE\",\r\n childrenField: \"NODES_CREATE\",\r\n colorField: \"TILES\",\r\n colorizer: \"TILES\",\r\n labelField: \"LABELS\",\r\n tile: \"TILE_SETTINGS\",\r\n group: \"GROUP_SETTINGS\",\r\n maxDepth: \"MAX_DEPTH\",\r\n layoutAlgorithm: \"TILING\",\r\n layoutDirection: \"TILING\"\r\n },\r\n _themeDependentChanges: [\"TILE_SETTINGS\", \"GROUP_SETTINGS\", \"MAX_DEPTH\"],\r\n _changeDataSource: function() {\r\n var that = this;\r\n that._isDataExpected = that._isSyncData = true;\r\n that._updateDataSource();\r\n that._isSyncData = false;\r\n if (that._isDataExpected) {\r\n that._suspendChanges()\r\n }\r\n },\r\n _dataSourceChangedHandler: function() {\r\n var that = this;\r\n if (that._isDataExpected) {\r\n that._isDataExpected = false;\r\n that._change([\"NODES_CREATE\"]);\r\n if (!that._isSyncData) {\r\n that._resumeChanges()\r\n }\r\n } else {\r\n that._requestChange([\"NODES_CREATE\"])\r\n }\r\n },\r\n _optionChangesOrder: [\"DATA_SOURCE\", \"TILE_SETTINGS\", \"GROUP_SETTINGS\", \"MAX_DEPTH\"],\r\n _change_DATA_SOURCE: function() {\r\n this._changeDataSource()\r\n },\r\n _change_TILE_SETTINGS: function() {\r\n this._changeTileSettings()\r\n },\r\n _change_GROUP_SETTINGS: function() {\r\n this._changeGroupSettings()\r\n },\r\n _change_MAX_DEPTH: function() {\r\n this._changeMaxDepth()\r\n },\r\n _customChangesOrder: [\"NODES_CREATE\", \"NODES_RESET\", \"TILES\", \"LABELS\", \"TILING\", \"LABELS_LAYOUT\"],\r\n _change_NODES_CREATE: function() {\r\n this._buildNodes()\r\n },\r\n _change_NODES_RESET: function() {\r\n this._resetNodes()\r\n },\r\n _change_TILES: function() {\r\n this._applyTilesAppearance()\r\n },\r\n _change_LABELS: function() {\r\n this._applyLabelsAppearance()\r\n },\r\n _change_TILING: function() {\r\n this._performTiling()\r\n },\r\n _change_LABELS_LAYOUT: function() {\r\n this._performLabelsLayout()\r\n },\r\n _applyChanges: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n if (!that._isDataExpected) {\r\n that._drawn()\r\n }\r\n that._context.forceReset = false\r\n },\r\n _buildNodes: function() {\r\n var that = this;\r\n var root = that._root = that._topNode = new _node.default;\r\n root._id = 0;\r\n root.parent = {};\r\n root.data = {};\r\n root.level = root.index = -1;\r\n root.ctx = that._context;\r\n root.label = null;\r\n that._nodes = [root];\r\n that._handlers.beginBuildNodes();\r\n var processedData = that._processDataSourceItems(that._dataSourceItems() || []);\r\n traverseDataItems(root, processedData.items, 0, {\r\n itemsField: !processedData.isPlain && that._getOption(\"childrenField\", true) || \"items\",\r\n valueField: that._getOption(\"valueField\", true) || \"value\",\r\n buildNode: that._handlers.buildNode,\r\n ctx: that._context,\r\n nodes: that._nodes\r\n });\r\n that._onNodesCreated();\r\n that._handlers.endBuildNodes();\r\n that._change([\"NODES_RESET\"])\r\n },\r\n _onNodesCreated: _common2.noop,\r\n _processDataSourceItems: function(items) {\r\n return {\r\n items: items,\r\n isPlain: false\r\n }\r\n },\r\n _changeTileSettings: function() {\r\n var that = this;\r\n var options = that._getOption(\"tile\");\r\n var offsets = that._rectOffsets;\r\n var borderWidth = pickPositiveInteger(options.border.width);\r\n var edgeOffset = borderWidth / 2;\r\n var innerOffset = 1 & borderWidth ? .5 : 0;\r\n var labelOptions = options.label;\r\n var settings = that._context.settings[0];\r\n that._change([\"TILES\", \"LABELS\"]);\r\n settings.state = that._handlers.calculateState(options);\r\n that._filter = that._filter || that._renderer.shadowFilter(\"-50%\", \"-50%\", \"200%\", \"200%\");\r\n that._filter.attr(labelOptions.shadow);\r\n that._calculateLabelSettings(settings, labelOptions, that._filter.id);\r\n if (offsets.tileEdge !== edgeOffset || offsets.tileInner !== innerOffset) {\r\n offsets.tileEdge = edgeOffset;\r\n offsets.tileInner = innerOffset;\r\n that._change([\"TILING\"])\r\n }\r\n },\r\n _changeGroupSettings: function() {\r\n var that = this;\r\n var options = that._getOption(\"group\");\r\n var labelOptions = options.label;\r\n var offsets = that._rectOffsets;\r\n var borderWidth = pickPositiveInteger(options.border.width);\r\n var edgeOffset = borderWidth / 2;\r\n var innerOffset = 1 & borderWidth ? .5 : 0;\r\n var headerHeight = 0;\r\n var groupPadding = pickPositiveInteger(options.padding);\r\n var settings = that._context.settings[1];\r\n that._change([\"TILES\", \"LABELS\"]);\r\n settings.state = that._handlers.calculateState(options);\r\n that._calculateLabelSettings(settings, labelOptions);\r\n if (options.headerHeight >= 0) {\r\n headerHeight = pickPositiveInteger(options.headerHeight)\r\n } else {\r\n headerHeight = settings.labelParams.height + 2 * pickPositiveInteger(labelOptions.paddingTopBottom)\r\n }\r\n if (that._headerHeight !== headerHeight) {\r\n that._headerHeight = headerHeight;\r\n that._change([\"TILING\"])\r\n }\r\n if (that._groupPadding !== groupPadding) {\r\n that._groupPadding = groupPadding;\r\n that._change([\"TILING\"])\r\n }\r\n if (offsets.headerEdge !== edgeOffset || offsets.headerInner !== innerOffset) {\r\n offsets.headerEdge = edgeOffset;\r\n offsets.headerInner = innerOffset;\r\n that._change([\"TILING\"])\r\n }\r\n },\r\n _calculateLabelSettings: function(settings, options, filter) {\r\n var bBox = this._getTextBBox(options.font);\r\n var paddingLeftRight = pickPositiveInteger(options.paddingLeftRight);\r\n var paddingTopBottom = pickPositiveInteger(options.paddingTopBottom);\r\n var tileLabelOptions = this._getOption(\"tile.label\");\r\n var groupLabelOptions = this._getOption(\"group.label\");\r\n settings.labelState = (0, _common.buildTextAppearance)(options, filter);\r\n settings.labelState.visible = !(\"visible\" in options) || !!options.visible;\r\n settings.labelParams = {\r\n height: bBox.height,\r\n rtlEnabled: this._getOption(\"rtlEnabled\", true),\r\n paddingTopBottom: paddingTopBottom,\r\n paddingLeftRight: paddingLeftRight,\r\n tileLabelWordWrap: tileLabelOptions.wordWrap,\r\n tileLabelOverflow: tileLabelOptions.textOverflow,\r\n groupLabelOverflow: groupLabelOptions.textOverflow\r\n }\r\n },\r\n _changeMaxDepth: function() {\r\n var maxDepth = this._getOption(\"maxDepth\", true);\r\n maxDepth = maxDepth >= 1 ? Math.round(maxDepth) : 1 / 0;\r\n if (this._maxDepth !== maxDepth) {\r\n this._maxDepth = maxDepth;\r\n this._change([\"NODES_RESET\"])\r\n }\r\n },\r\n _resetNodes: function() {\r\n var that = this;\r\n that._tilesGroup.clear();\r\n that._renderer.initHatching();\r\n that._context.forceReset = true;\r\n that._context.minLevel = that._topNode.level + 1;\r\n that._context.maxLevel = that._context.minLevel + that._maxDepth - 1;\r\n that._change([\"TILES\", \"LABELS\", \"TILING\"])\r\n },\r\n _processNodes: function(context, process) {\r\n processNodes(context, this._topNode, process)\r\n },\r\n _applyTilesAppearance: function() {\r\n var that = this;\r\n var colorizer = (0, _colorizing.getColorizer)(that._getOption(\"colorizer\"), that._themeManager, that._topNode);\r\n that._processNodes({\r\n renderer: that._renderer,\r\n group: that._tilesGroup,\r\n setTrackerData: that._handlers.setTrackerData,\r\n colorField: that._getOption(\"colorField\", true) || \"color\",\r\n getColor: colorizer\r\n }, processTileAppearance)\r\n },\r\n _applyLabelsAppearance: function() {\r\n var that = this;\r\n that._labelsGroup.clear();\r\n that._processNodes({\r\n renderer: that._renderer,\r\n group: that._labelsGroup,\r\n setTrackerData: that._handlers.setTrackerData,\r\n labelField: that._getOption(\"labelField\", true) || \"name\"\r\n }, processLabelAppearance);\r\n that._change([\"LABELS_LAYOUT\"])\r\n },\r\n _performTiling: function() {\r\n var that = this;\r\n var context = {\r\n algorithm: (0, _tiling.getAlgorithm)(that._getOption(\"layoutAlgorithm\", true)),\r\n directions: directions[String(that._getOption(\"layoutDirection\", true)).toLowerCase()] || directions.lefttoprightbottom,\r\n headerHeight: that._headerHeight,\r\n groupPadding: that._groupPadding,\r\n rectOffsets: that._rectOffsets\r\n };\r\n that._topNode.innerRect = that._tilingRect;\r\n calculateRects(context, that._topNode);\r\n that._processNodes(context, processTiling);\r\n that._change([\"LABELS_LAYOUT\"]);\r\n that._onTilingPerformed()\r\n },\r\n _onTilingPerformed: _common2.noop,\r\n _performLabelsLayout: function() {\r\n this._processNodes(null, processLabelsLayout)\r\n },\r\n _getTextBBox: function(fontOptions) {\r\n var renderer = this._renderer;\r\n var text = this._textForCalculations || renderer.text(\"0\", 0, 0);\r\n this._textForCalculations = text;\r\n text.css((0, _utils.patchFontOptions)(fontOptions)).append(renderer.root);\r\n var bBox = text.getBBox();\r\n text.remove();\r\n return bBox\r\n }\r\n});\r\n\r\nfunction traverseDataItems(root, dataItems, level, params) {\r\n var nodes = [];\r\n var allNodes = params.nodes;\r\n var node;\r\n var i;\r\n var ii = dataItems.length;\r\n var dataItem;\r\n var totalValue = 0;\r\n var items;\r\n for (i = 0; i < ii; ++i) {\r\n var _items;\r\n dataItem = dataItems[i];\r\n node = new _node.default;\r\n node._id = allNodes.length;\r\n node.ctx = params.ctx;\r\n node.parent = root;\r\n node.level = level;\r\n node.index = nodes.length;\r\n node.data = dataItem;\r\n params.buildNode(node);\r\n allNodes.push(node);\r\n nodes.push(node);\r\n items = dataItem[params.itemsField];\r\n if (null !== (_items = items) && void 0 !== _items && _items.length) {\r\n traverseDataItems(node, items, level + 1, params)\r\n }\r\n if (dataItem[params.valueField] > 0) {\r\n node.value = Number(dataItem[params.valueField])\r\n }\r\n totalValue += node.value\r\n }\r\n root.nodes = nodes;\r\n root.value = totalValue\r\n}\r\n\r\nfunction processNodes(context, root, process) {\r\n var nodes = root.nodes;\r\n var node;\r\n var i;\r\n var ii = nodes.length;\r\n for (i = 0; i < ii; ++i) {\r\n node = nodes[i];\r\n process(context, node);\r\n if (node.isNode()) {\r\n processNodes(context, node, process)\r\n }\r\n }\r\n}\r\nvar createTile = [createLeaf, createGroup];\r\n\r\nfunction processTileAppearance(context, node) {\r\n node.color = node.data[context.colorField] || context.getColor(node) || node.parent.color;\r\n node.updateStyles();\r\n node.tile = !node.ctx.forceReset && node.tile || createTile[Number(node.isNode())](context, node);\r\n node.applyState()\r\n}\r\n\r\nfunction createLeaf(context, node) {\r\n var tile = context.renderer.simpleRect().append(context.group);\r\n context.setTrackerData(node, tile);\r\n return tile\r\n}\r\n\r\nfunction createGroup(context, node) {\r\n var outer = context.renderer.simpleRect().append(context.group);\r\n var inner = context.renderer.simpleRect().append(context.group);\r\n context.setTrackerData(node, inner);\r\n return {\r\n outer: outer,\r\n inner: inner\r\n }\r\n}\r\n\r\nfunction processLabelAppearance(context, node) {\r\n node.updateLabelStyle();\r\n if (node.labelState.visible) {\r\n createLabel(context, node, node.labelState, node.labelParams)\r\n }\r\n}\r\n\r\nfunction createLabel(context, currentNode, settings, params) {\r\n var textData = currentNode.data[context.labelField];\r\n currentNode.label = textData ? String(textData) : null;\r\n textData = currentNode.customLabel || currentNode.label;\r\n if (textData) {\r\n currentNode.text = context.renderer.text(textData).attr(settings.attr).css(settings.css).append(context.group);\r\n context.setTrackerData(currentNode, currentNode.text)\r\n }\r\n}\r\nvar emptyRect = [0, 0, 0, 0];\r\n\r\nfunction calculateRects(context, root) {\r\n var nodes = root.nodes;\r\n var items = [];\r\n var rects = [];\r\n var sum = 0;\r\n var i;\r\n var ii = items.length = rects.length = nodes.length;\r\n for (i = 0; i < ii; ++i) {\r\n sum += nodes[i].value;\r\n items[i] = {\r\n value: nodes[i].value,\r\n i: i\r\n }\r\n }\r\n if (sum > 0) {\r\n context.algorithm({\r\n items: items.slice(),\r\n sum: sum,\r\n rect: root.innerRect.slice(),\r\n isRotated: 1 & nodes[0].level,\r\n directions: context.directions\r\n })\r\n }\r\n for (i = 0; i < ii; ++i) {\r\n rects[i] = items[i].rect || emptyRect\r\n }\r\n root.rects = rects\r\n}\r\n\r\nfunction processTiling(context, node) {\r\n var rect = node.parent.rects[node.index];\r\n var rectOffsets = context.rectOffsets;\r\n var headerHeight;\r\n if (node.isNode()) {\r\n setRectAttrs(node.tile.outer, buildTileRect(rect, node.parent.innerRect, rectOffsets.headerEdge, rectOffsets.headerInner));\r\n rect = marginateRect(rect, context.groupPadding);\r\n headerHeight = Math.min(context.headerHeight, rect[3] - rect[1]);\r\n node.rect = [rect[0], rect[1], rect[2], rect[1] + headerHeight];\r\n setRectAttrs(node.tile.inner, marginateRect(node.rect, rectOffsets.headerEdge));\r\n rect[1] += headerHeight;\r\n node.innerRect = rect;\r\n calculateRects(context, node)\r\n } else {\r\n node.rect = rect;\r\n setRectAttrs(node.tile, buildTileRect(rect, node.parent.innerRect, rectOffsets.tileEdge, rectOffsets.tileInner))\r\n }\r\n}\r\n\r\nfunction marginateRect(rect, margin) {\r\n return [rect[0] + margin, rect[1] + margin, rect[2] - margin, rect[3] - margin]\r\n}\r\n\r\nfunction buildTileRect(rect, outer, edgeOffset, innerOffset) {\r\n return [rect[0] + (rect[0] === outer[0] ? edgeOffset : +innerOffset), rect[1] + (rect[1] === outer[1] ? edgeOffset : +innerOffset), rect[2] - (rect[2] === outer[2] ? edgeOffset : -innerOffset), rect[3] - (rect[3] === outer[3] ? edgeOffset : -innerOffset)]\r\n}\r\n\r\nfunction setRectAttrs(element, rect) {\r\n element.attr({\r\n x: rect[0],\r\n y: rect[1],\r\n width: _max(rect[2] - rect[0], 0),\r\n height: _max(rect[3] - rect[1], 0)\r\n })\r\n}\r\n\r\nfunction processLabelsLayout(context, node) {\r\n if (node.text && node.labelState.visible) {\r\n layoutTextNode(node, node.labelParams)\r\n }\r\n}\r\n\r\nfunction layoutTextNode(node, params) {\r\n var rect = node.rect;\r\n var text = node.text;\r\n var bBox = text.getBBox();\r\n var paddingLeftRight = params.paddingLeftRight;\r\n var paddingTopBottom = params.paddingTopBottom;\r\n var effectiveWidth = rect[2] - rect[0] - 2 * paddingLeftRight;\r\n text.setMaxSize(effectiveWidth, rect[3] - rect[1] - paddingTopBottom, node.isNode() ? {\r\n textOverflow: params.groupLabelOverflow,\r\n wordWrap: \"none\"\r\n } : {\r\n textOverflow: params.tileLabelOverflow,\r\n wordWrap: params.tileLabelWordWrap,\r\n hideOverflowEllipsis: true\r\n });\r\n text.move(params.rtlEnabled ? rect[2] - paddingLeftRight - bBox.x - bBox.width : rect[0] + paddingLeftRight - bBox.x, rect[1] + paddingTopBottom - bBox.y)\r\n}(0, _component_registrator.default)(\"dxTreeMap\", dxTreeMap);\r\nvar _default = dxTreeMap;\r\nexports.default = _default;\r\ndxTreeMap.addPlugin(_data_source.plugin);\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/translators/range.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.Range = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _isDefined = _type.isDefined;\r\nvar _isDate = _type.isDate;\r\nvar _isFunction = _type.isFunction;\r\nvar minSelector = \"min\";\r\nvar maxSelector = \"max\";\r\nvar minVisibleSelector = \"minVisible\";\r\nvar maxVisibleSelector = \"maxVisible\";\r\nvar baseSelector = \"base\";\r\nvar axisTypeSelector = \"axisType\";\r\n\r\nfunction otherLessThan(thisValue, otherValue) {\r\n return otherValue < thisValue\r\n}\r\n\r\nfunction otherGreaterThan(thisValue, otherValue) {\r\n return otherValue > thisValue\r\n}\r\n\r\nfunction compareAndReplace(thisValue, otherValue, setValue, compare) {\r\n var otherValueDefined = _isDefined(otherValue);\r\n if (_isDefined(thisValue)) {\r\n if (otherValueDefined && compare(thisValue, otherValue)) {\r\n setValue(otherValue)\r\n }\r\n } else {\r\n if (otherValueDefined) {\r\n setValue(otherValue)\r\n }\r\n }\r\n}\r\nvar Range = function(range) {\r\n range && (0, _extend.extend)(this, range)\r\n};\r\nexports.Range = Range;\r\nvar _Range = Range;\r\n_Range.prototype = {\r\n constructor: _Range,\r\n addRange: function(otherRange) {\r\n var that = this;\r\n var categories = that.categories;\r\n var otherCategories = otherRange.categories;\r\n var isDiscrete = \"discrete\" === that[axisTypeSelector];\r\n var compareAndReplaceByField = function(field, compare) {\r\n compareAndReplace(that[field], otherRange[field], function(value) {\r\n that[field] = value\r\n }, compare)\r\n };\r\n var controlValuesByVisibleBounds = function(valueField, visibleValueField, compare) {\r\n compareAndReplace(that[valueField], that[visibleValueField], function(value) {\r\n _isDefined(that[valueField]) && (that[valueField] = value)\r\n }, compare)\r\n };\r\n var checkField = function(field) {\r\n that[field] = that[field] || otherRange[field]\r\n };\r\n checkField(\"invert\");\r\n checkField(axisTypeSelector);\r\n checkField(\"dataType\");\r\n checkField(\"isSpacedMargin\");\r\n if (\"logarithmic\" === that[axisTypeSelector]) {\r\n checkField(baseSelector)\r\n } else {\r\n that[baseSelector] = void 0\r\n }\r\n compareAndReplaceByField(minSelector, otherLessThan);\r\n compareAndReplaceByField(maxSelector, otherGreaterThan);\r\n if (isDiscrete) {\r\n checkField(minVisibleSelector);\r\n checkField(maxVisibleSelector)\r\n } else {\r\n compareAndReplaceByField(minVisibleSelector, otherLessThan);\r\n compareAndReplaceByField(maxVisibleSelector, otherGreaterThan)\r\n }\r\n compareAndReplaceByField(\"interval\", otherLessThan);\r\n if (!isDiscrete) {\r\n controlValuesByVisibleBounds(minSelector, minVisibleSelector, otherLessThan);\r\n controlValuesByVisibleBounds(minSelector, maxVisibleSelector, otherLessThan);\r\n controlValuesByVisibleBounds(maxSelector, maxVisibleSelector, otherGreaterThan);\r\n controlValuesByVisibleBounds(maxSelector, minVisibleSelector, otherGreaterThan)\r\n }\r\n if (void 0 === categories) {\r\n that.categories = otherCategories\r\n } else {\r\n that.categories = otherCategories ? (0, _utils.unique)(categories.concat(otherCategories)) : categories\r\n }\r\n if (\"logarithmic\" === that[axisTypeSelector]) {\r\n checkField(\"allowNegatives\");\r\n compareAndReplaceByField(\"linearThreshold\", otherLessThan)\r\n }\r\n return that\r\n },\r\n isEmpty: function() {\r\n return (!_isDefined(this[minSelector]) || !_isDefined(this[maxSelector])) && (!this.categories || 0 === this.categories.length)\r\n },\r\n correctValueZeroLevel: function() {\r\n var that = this;\r\n if (\"logarithmic\" === that[axisTypeSelector] || _isDate(that[maxSelector]) || _isDate(that[minSelector])) {\r\n return that\r\n }\r\n\r\n function setZeroLevel(min, max) {\r\n that[min] < 0 && that[max] < 0 && (that[max] = 0);\r\n that[min] > 0 && that[max] > 0 && (that[min] = 0)\r\n }\r\n setZeroLevel(minSelector, maxSelector);\r\n setZeroLevel(minVisibleSelector, maxVisibleSelector);\r\n return that\r\n },\r\n sortCategories: function(sort) {\r\n if (false === sort || !this.categories) {\r\n return\r\n }\r\n if (Array.isArray(sort)) {\r\n var sortValues = sort.map(function(item) {\r\n return item.valueOf()\r\n });\r\n var filteredSeriesCategories = this.categories.filter(function(item) {\r\n return sortValues.indexOf(item.valueOf()) === -1\r\n });\r\n this.categories = sort.concat(filteredSeriesCategories)\r\n } else {\r\n var notAFunction = !_isFunction(sort);\r\n if (notAFunction && \"string\" !== this.dataType) {\r\n sort = function(a, b) {\r\n return a.valueOf() - b.valueOf()\r\n }\r\n } else {\r\n if (notAFunction) {\r\n sort = false\r\n }\r\n }\r\n sort && this.categories.sort(sort)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (viz/tree_map/tiling.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getAlgorithm = getAlgorithm;\r\nexports.addAlgorithm = addAlgorithm;\r\nexports.setDefaultAlgorithm = setDefaultAlgorithm;\r\nexports.buildSidesData = buildSidesData;\r\nexports.calculateRectangles = calculateRectangles;\r\nexports.getStaticSideIndex = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _round = Math.round;\r\nvar algorithms = {};\r\nvar defaultAlgorithm;\r\n\r\nfunction getAlgorithm(value) {\r\n return algorithms[(0, _utils.normalizeEnum)(value)] || (0, _type.isFunction)(value) && value || defaultAlgorithm\r\n}\r\n\r\nfunction addAlgorithm(name, callback) {\r\n algorithms[name] = callback\r\n}\r\n\r\nfunction setDefaultAlgorithm(name) {\r\n defaultAlgorithm = algorithms[name]\r\n}\r\nvar directionToIndexOffsets = {};\r\ndirectionToIndexOffsets[-1] = [2, 0];\r\ndirectionToIndexOffsets[1] = [0, 2];\r\nvar getStaticSideIndex = function(rect) {\r\n return rect[2] - rect[0] < rect[3] - rect[1] ? 0 : 1\r\n};\r\nexports.getStaticSideIndex = getStaticSideIndex;\r\n\r\nfunction buildSidesData(rect, directions, _staticSideIndex) {\r\n var staticSideIndex = void 0 !== _staticSideIndex ? _staticSideIndex : getStaticSideIndex(rect);\r\n var variedSideIndex = 1 - staticSideIndex;\r\n var staticSideDirection = directions[staticSideIndex];\r\n var variedSideDirection = directions[variedSideIndex];\r\n var staticSideIndexOffsets = directionToIndexOffsets[staticSideDirection];\r\n var variedSideIndexOffsets = directionToIndexOffsets[variedSideDirection];\r\n return {\r\n staticSide: rect[2 + staticSideIndex] - rect[staticSideIndex],\r\n variedSide: rect[2 + variedSideIndex] - rect[variedSideIndex],\r\n static1: staticSideIndex + staticSideIndexOffsets[0],\r\n static2: staticSideIndex + staticSideIndexOffsets[1],\r\n varied1: variedSideIndex + variedSideIndexOffsets[0],\r\n varied2: variedSideIndex + variedSideIndexOffsets[1],\r\n staticDir: staticSideDirection,\r\n variedDir: variedSideDirection\r\n }\r\n}\r\n\r\nfunction calculateRectangles(nodes, head, totalRect, sidesData, rowData) {\r\n var i;\r\n var ii;\r\n var variedSidePart = [0, 0, 0, 0];\r\n var static1 = sidesData.static1;\r\n var static2 = sidesData.static2;\r\n var position = totalRect[static1];\r\n var dir = sidesData.staticDir;\r\n var side = sidesData.staticSide;\r\n var sum = rowData.sum;\r\n var rect;\r\n var delta;\r\n variedSidePart[sidesData.varied1] = totalRect[sidesData.varied1];\r\n variedSidePart[sidesData.varied2] = totalRect[sidesData.varied1] + sidesData.variedDir * rowData.side;\r\n for (i = head, ii = head + rowData.count; i < ii; ++i) {\r\n rect = variedSidePart.slice();\r\n rect[static1] = position;\r\n delta = _round(side * nodes[i].value / sum) || 0;\r\n sum -= nodes[i].value;\r\n side -= delta;\r\n position += dir * delta;\r\n rect[static2] = position;\r\n nodes[i].rect = rect\r\n }\r\n totalRect[sidesData.varied1] = variedSidePart[sidesData.varied2]\r\n}\r\n","/**\r\n * DevExtreme (viz/tree_map/api.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _tree_map = _interopRequireDefault(require(\"./tree_map.base\"));\r\nvar _node = _interopRequireDefault(require(\"./node\"));\r\nvar _extend2 = require(\"../../core/utils/extend\");\r\nvar _common = require(\"../../core/utils/common\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar proto = _tree_map.default.prototype;\r\nvar nodeProto = _node.default.prototype;\r\nproto._eventsMap.onNodesInitialized = {\r\n name: \"nodesInitialized\"\r\n};\r\nproto._eventsMap.onNodesRendering = {\r\n name: \"nodesRendering\"\r\n};\r\nproto._createProxyType = function() {\r\n var that = this;\r\n var nodes;\r\n Proxy.prototype = {\r\n constructor: Proxy,\r\n getParent: function() {\r\n return nodes[this._id].parent.proxy || null\r\n },\r\n getChild: function(index) {\r\n var _nodes = nodes[this._id].nodes;\r\n return _nodes ? _nodes[index].proxy : null\r\n },\r\n getChildrenCount: function() {\r\n var _nodes = nodes[this._id].nodes;\r\n return _nodes ? _nodes.length : 0\r\n },\r\n getAllChildren: function() {\r\n var _nodes = nodes[this._id].nodes;\r\n var i;\r\n var ii = _nodes && _nodes.length;\r\n var list = [];\r\n for (i = 0; i < ii; ++i) {\r\n list.push(_nodes[i].proxy)\r\n }\r\n return list\r\n },\r\n getAllNodes: function() {\r\n var list = [];\r\n collectNodes(nodes[this._id], list);\r\n return list\r\n },\r\n isLeaf: function() {\r\n return !nodes[this._id].isNode()\r\n },\r\n isActive: function() {\r\n return nodes[this._id].isActive()\r\n },\r\n value: function(arg) {\r\n var node = nodes[this._id];\r\n var result;\r\n if (void 0 !== arg) {\r\n updateValue(node, arg > 0 ? Number(arg) : 0);\r\n change(node, [\"TILING\"]);\r\n result = this\r\n } else {\r\n result = node.value\r\n }\r\n return result\r\n },\r\n label: function(arg) {\r\n var node = nodes[this._id];\r\n var result;\r\n if (void 0 !== arg) {\r\n node.customLabel = arg ? String(arg) : null;\r\n change(node, [\"LABELS\"]);\r\n result = this\r\n } else {\r\n result = node.customLabel || node.label\r\n }\r\n return result\r\n },\r\n customize: function(settings) {\r\n var node = nodes[this._id];\r\n if (settings) {\r\n node._custom = node._custom || {};\r\n (0, _extend2.extend)(true, node._custom, settings);\r\n node._partialState = node._partialLabelState = null\r\n }\r\n change(node, [\"TILES\", \"LABELS\"]);\r\n return this\r\n },\r\n resetCustomization: function() {\r\n var node = nodes[this._id];\r\n node._custom = node._partialState = node._partialLabelState = null;\r\n change(node, [\"TILES\", \"LABELS\"]);\r\n return this\r\n }\r\n };\r\n that._extendProxyType(Proxy.prototype);\r\n\r\n function Proxy(node) {\r\n var that = this;\r\n node.proxy = that;\r\n that._id = node._id;\r\n that.level = node.level;\r\n that.index = node.index;\r\n that.data = node.data\r\n }\r\n that._handlers.beginBuildNodes = function() {\r\n nodes = that._nodes;\r\n new Proxy(that._root)\r\n };\r\n that._handlers.buildNode = function(node) {\r\n new Proxy(node)\r\n };\r\n that._handlers.endBuildNodes = function() {\r\n that._eventTrigger(\"nodesInitialized\", {\r\n root: that._root.proxy\r\n })\r\n }\r\n};\r\n\r\nfunction change(node, codes) {\r\n var ctx = node.ctx;\r\n ctx.suspend();\r\n ctx.change(codes);\r\n ctx.resume()\r\n}\r\n\r\nfunction collectNodes(node, list) {\r\n var nodes = node.nodes;\r\n var i;\r\n var ii = nodes && nodes.length;\r\n for (i = 0; i < ii; ++i) {\r\n list.push(nodes[i].proxy);\r\n collectNodes(nodes[i], list)\r\n }\r\n}\r\n\r\nfunction updateValue(node, value) {\r\n var delta = value - node.value;\r\n while (node) {\r\n node.value += delta;\r\n node = node.parent\r\n }\r\n}\r\nproto._extendProxyType = _common.noop;\r\nvar _resetNodes = proto._resetNodes;\r\nproto._resetNodes = function() {\r\n _resetNodes.call(this);\r\n this._eventTrigger(\"nodesRendering\", {\r\n node: this._topNode.proxy\r\n })\r\n};\r\nvar _updateStyles = nodeProto.updateStyles;\r\nnodeProto.updateStyles = function() {\r\n var that = this;\r\n _updateStyles.call(that);\r\n if (that._custom) {\r\n that._partialState = !that.ctx.forceReset && that._partialState || that.ctx.calculateState(that._custom);\r\n (0, _extend2.extend)(true, that.state, that._partialState)\r\n }\r\n};\r\nvar _updateLabelStyle = nodeProto.updateLabelStyle;\r\nnodeProto.updateLabelStyle = function() {\r\n var that = this;\r\n var custom = that._custom;\r\n _updateLabelStyle.call(that);\r\n if (custom && custom.label) {\r\n that._partialLabelState = !that.ctx.forceReset && that._partialLabelState || calculatePartialLabelState(that, custom.label);\r\n that.labelState = (0, _extend2.extend)(true, {}, that.labelState, that._partialLabelState)\r\n }\r\n};\r\n\r\nfunction calculatePartialLabelState(node, settings) {\r\n var state = node.ctx.calculateLabelState(settings);\r\n if (\"visible\" in settings) {\r\n state.visible = !!settings.visible\r\n }\r\n return state\r\n}\r\nproto.getRootNode = function() {\r\n return this._root.proxy\r\n};\r\nproto.resetNodes = function() {\r\n var context = this._context;\r\n context.suspend();\r\n context.change([\"NODES_CREATE\"]);\r\n context.resume();\r\n return this\r\n};\r\n","/**\r\n * DevExtreme (viz/tree_map/node.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _extend2 = require(\"../../core/utils/extend\");\r\n\r\nfunction Node() {}\r\nvar updateTile = [updateLeaf, updateGroup];\r\n(0, _extend2.extend)(Node.prototype, {\r\n value: 0,\r\n isNode: function() {\r\n return !!(this.nodes && this.level < this.ctx.maxLevel)\r\n },\r\n isActive: function() {\r\n var ctx = this.ctx;\r\n return this.level >= ctx.minLevel && this.level <= ctx.maxLevel\r\n },\r\n updateStyles: function() {\r\n var that = this;\r\n var isNode = Number(that.isNode());\r\n that.state = that._buildState(that.ctx.settings[isNode].state, !isNode && that.color && {\r\n fill: that.color\r\n })\r\n },\r\n _buildState: function(state, extra) {\r\n var base = (0, _extend2.extend)({}, state);\r\n return extra ? (0, _extend2.extend)(base, extra) : base\r\n },\r\n updateLabelStyle: function() {\r\n var settings = this.ctx.settings[Number(this.isNode())];\r\n this.labelState = settings.labelState;\r\n this.labelParams = settings.labelParams\r\n },\r\n _getState: function() {\r\n return this.state\r\n },\r\n applyState: function() {\r\n updateTile[Number(this.isNode())](this.tile, this._getState())\r\n }\r\n});\r\n\r\nfunction updateLeaf(content, attrs) {\r\n content.smartAttr(attrs)\r\n}\r\n\r\nfunction updateGroup(content, attrs) {\r\n content.outer.attr({\r\n stroke: attrs.stroke,\r\n \"stroke-width\": attrs[\"stroke-width\"],\r\n \"stroke-opacity\": attrs[\"stroke-opacity\"]\r\n });\r\n content.inner.smartAttr({\r\n fill: attrs.fill,\r\n opacity: attrs.opacity,\r\n hatching: attrs.hatching\r\n })\r\n}\r\nvar _default = Node;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/tree_map/colorizing.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.getColorizer = getColorizer;\r\nexports.addColorizer = addColorizer;\r\nexports.setDefaultColorizer = setDefaultColorizer;\r\nexports.createColorCodeGetter = createColorCodeGetter;\r\nvar _utils = require(\"../core/utils\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar colorizers = {};\r\nvar defaultColorizerName;\r\n\r\nfunction wrapLeafColorGetter(getter) {\r\n return function(node) {\r\n return !node.isNode() ? getter(node) : void 0\r\n }\r\n}\r\n\r\nfunction wrapGroupColorGetter(getter) {\r\n return function(node) {\r\n var parent = !node.isNode() && node.parent;\r\n return parent ? parent._groupColor = parent._groupColor || getter(parent) : void 0\r\n }\r\n}\r\n\r\nfunction getColorizer(options, themeManager, root) {\r\n var type = (0, _utils.normalizeEnum)(options.type || defaultColorizerName);\r\n var colorizer = colorizers[type] && colorizers[type](options, themeManager, root);\r\n return colorizer ? (options.colorizeGroups ? wrapGroupColorGetter : wrapLeafColorGetter)(colorizer) : _common.noop\r\n}\r\n\r\nfunction addColorizer(name, colorizer) {\r\n colorizers[name] = colorizer\r\n}\r\n\r\nfunction setDefaultColorizer(name) {\r\n defaultColorizerName = name\r\n}\r\n\r\nfunction getValueAsColorCode(node) {\r\n return node.value\r\n}\r\n\r\nfunction createColorCode(colorCodeField) {\r\n return function(node) {\r\n return Number(node.data[colorCodeField])\r\n }\r\n}\r\n\r\nfunction createColorCodeGetter(options) {\r\n return options.colorCodeField ? createColorCode(options.colorCodeField) : getValueAsColorCode\r\n}\r\n","/**\r\n * DevExtreme (viz/translators/translator2d.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.Translator2D = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _range = require(\"./range\");\r\nvar _category_translator = _interopRequireDefault(require(\"./category_translator\"));\r\nvar _interval_translator = _interopRequireDefault(require(\"./interval_translator\"));\r\nvar _datetime_translator = _interopRequireDefault(require(\"./datetime_translator\"));\r\nvar _logarithmic_translator = _interopRequireDefault(require(\"./logarithmic_translator\"));\r\nvar _utils = require(\"../core/utils\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _math = require(\"../../core/utils/math\");\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _abs = Math.abs;\r\nvar CANVAS_PROP = [\"width\", \"height\", \"left\", \"top\", \"bottom\", \"right\"];\r\nvar dummyTranslator = {\r\n to: function(value) {\r\n var coord = this._canvasOptions.startPoint + (this._options.conversionValue ? value : Math.round(value));\r\n return coord > this._canvasOptions.endPoint ? this._canvasOptions.endPoint : coord\r\n },\r\n from: function(value) {\r\n return value - this._canvasOptions.startPoint\r\n }\r\n};\r\nvar validateCanvas = function(canvas) {\r\n (0, _iterator.each)(CANVAS_PROP, function(_, prop) {\r\n canvas[prop] = parseInt(canvas[prop]) || 0\r\n });\r\n return canvas\r\n};\r\nvar makeCategoriesToPoints = function(categories) {\r\n var categoriesToPoints = {};\r\n categories.forEach(function(item, i) {\r\n categoriesToPoints[item.valueOf()] = i\r\n });\r\n return categoriesToPoints\r\n};\r\nvar validateBusinessRange = function(businessRange) {\r\n if (!(businessRange instanceof _range.Range)) {\r\n businessRange = new _range.Range(businessRange)\r\n }\r\n\r\n function validate(valueSelector, baseValueSelector) {\r\n if (!(0, _type.isDefined)(businessRange[valueSelector]) && (0, _type.isDefined)(businessRange[baseValueSelector])) {\r\n businessRange[valueSelector] = businessRange[baseValueSelector]\r\n }\r\n }\r\n validate(\"minVisible\", \"min\");\r\n validate(\"maxVisible\", \"max\");\r\n return businessRange\r\n};\r\n\r\nfunction prepareBreaks(breaks, range) {\r\n var transform = \"logarithmic\" === range.axisType ? function(value) {\r\n return (0, _utils.getLogExt)(value, range.base)\r\n } : function(value) {\r\n return value\r\n };\r\n var array = [];\r\n var br;\r\n var transformFrom;\r\n var transformTo;\r\n var i;\r\n var length = breaks.length;\r\n var sum = 0;\r\n for (i = 0; i < length; i++) {\r\n br = breaks[i];\r\n transformFrom = transform(br.from);\r\n transformTo = transform(br.to);\r\n sum += transformTo - transformFrom;\r\n array.push({\r\n trFrom: transformFrom,\r\n trTo: transformTo,\r\n from: br.from,\r\n to: br.to,\r\n length: sum,\r\n cumulativeWidth: br.cumulativeWidth\r\n })\r\n }\r\n return array\r\n}\r\n\r\nfunction getCanvasBounds(range) {\r\n var min = range.min;\r\n var max = range.max;\r\n var minVisible = range.minVisible;\r\n var maxVisible = range.maxVisible;\r\n var isLogarithmic = \"logarithmic\" === range.axisType;\r\n if (isLogarithmic) {\r\n maxVisible = (0, _utils.getLogExt)(maxVisible, range.base, range.allowNegatives, range.linearThreshold);\r\n minVisible = (0, _utils.getLogExt)(minVisible, range.base, range.allowNegatives, range.linearThreshold);\r\n min = (0, _utils.getLogExt)(min, range.base, range.allowNegatives, range.linearThreshold);\r\n max = (0, _utils.getLogExt)(max, range.base, range.allowNegatives, range.linearThreshold)\r\n }\r\n return {\r\n base: range.base,\r\n rangeMin: min,\r\n rangeMax: max,\r\n rangeMinVisible: minVisible,\r\n rangeMaxVisible: maxVisible\r\n }\r\n}\r\n\r\nfunction getCheckingMethodsAboutBreaks(inverted) {\r\n return {\r\n isStartSide: !inverted ? function(pos, breaks, start, end) {\r\n return pos < breaks[0][start]\r\n } : function(pos, breaks, start, end) {\r\n return pos <= breaks[breaks.length - 1][end]\r\n },\r\n isEndSide: !inverted ? function(pos, breaks, start, end) {\r\n return pos >= breaks[breaks.length - 1][end]\r\n } : function(pos, breaks, start, end) {\r\n return pos > breaks[0][start]\r\n },\r\n isInBreak: !inverted ? function(pos, br, start, end) {\r\n return pos >= br[start] && pos < br[end]\r\n } : function(pos, br, start, end) {\r\n return pos > br[end] && pos <= br[start]\r\n },\r\n isBetweenBreaks: !inverted ? function(pos, br, prevBreak, start, end) {\r\n return pos < br[start] && pos >= prevBreak[end]\r\n } : function(pos, br, prevBreak, start, end) {\r\n return pos >= br[end] && pos < prevBreak[start]\r\n },\r\n getLength: !inverted ? function(br) {\r\n return br.length\r\n } : function(br, lastBreak) {\r\n return lastBreak.length - br.length\r\n },\r\n getBreaksSize: !inverted ? function(br) {\r\n return br.cumulativeWidth\r\n } : function(br, lastBreak) {\r\n return lastBreak.cumulativeWidth - br.cumulativeWidth\r\n }\r\n }\r\n}\r\nvar _Translator2d = function(businessRange, canvas, options) {\r\n this.update(businessRange, canvas, options)\r\n};\r\nexports.Translator2D = _Translator2d;\r\n_Translator2d.prototype = {\r\n constructor: _Translator2d,\r\n reinit: function() {\r\n var that = this;\r\n var options = that._options;\r\n var range = that._businessRange;\r\n var categories = range.categories || [];\r\n var script = {};\r\n var canvasOptions = that._prepareCanvasOptions();\r\n var visibleCategories = (0, _utils.getCategoriesInfo)(categories, range.minVisible, range.maxVisible).categories;\r\n var categoriesLength = visibleCategories.length;\r\n if (range.isEmpty()) {\r\n script = dummyTranslator\r\n } else {\r\n switch (range.axisType) {\r\n case \"logarithmic\":\r\n script = _logarithmic_translator.default;\r\n break;\r\n case \"semidiscrete\":\r\n script = _interval_translator.default;\r\n canvasOptions.ratioOfCanvasRange = canvasOptions.canvasLength / (_date.default.addInterval(canvasOptions.rangeMaxVisible, options.interval) - canvasOptions.rangeMinVisible);\r\n break;\r\n case \"discrete\":\r\n script = _category_translator.default;\r\n that._categories = categories;\r\n canvasOptions.interval = that._getDiscreteInterval(options.addSpiderCategory ? categoriesLength + 1 : categoriesLength, canvasOptions);\r\n that._categoriesToPoints = makeCategoriesToPoints(categories, canvasOptions.invert);\r\n if (categoriesLength) {\r\n canvasOptions.startPointIndex = that._categoriesToPoints[visibleCategories[0].valueOf()];\r\n that.visibleCategories = visibleCategories\r\n }\r\n break;\r\n default:\r\n if (\"datetime\" === range.dataType) {\r\n script = _datetime_translator.default\r\n }\r\n }\r\n }(that._oldMethods || []).forEach(function(methodName) {\r\n delete that[methodName]\r\n });\r\n that._oldMethods = Object.keys(script);\r\n (0, _extend.extend)(that, script);\r\n that._conversionValue = options.conversionValue ? function(value) {\r\n return value\r\n } : function(value) {\r\n return Math.round(value)\r\n };\r\n that.sc = {};\r\n that._checkingMethodsAboutBreaks = [getCheckingMethodsAboutBreaks(false), getCheckingMethodsAboutBreaks(that.isInverted())];\r\n that._translateBreaks();\r\n that._calculateSpecialValues()\r\n },\r\n _translateBreaks: function() {\r\n var breaks = this._breaks;\r\n var size = this._options.breaksSize;\r\n var i;\r\n var b;\r\n var end;\r\n var length;\r\n if (void 0 === breaks) {\r\n return\r\n }\r\n for (i = 0, length = breaks.length; i < length; i++) {\r\n b = breaks[i];\r\n end = this.translate(b.to);\r\n b.end = end;\r\n b.start = !b.gapSize ? !this.isInverted() ? end - size : end + size : end\r\n }\r\n },\r\n _checkValueAboutBreaks: function(breaks, pos, start, end, methods) {\r\n var i;\r\n var length;\r\n var prop = {\r\n length: 0,\r\n breaksSize: void 0,\r\n inBreak: false\r\n };\r\n var br;\r\n var prevBreak;\r\n var lastBreak = breaks[breaks.length - 1];\r\n if (methods.isStartSide(pos, breaks, start, end)) {\r\n return prop\r\n } else {\r\n if (methods.isEndSide(pos, breaks, start, end)) {\r\n return {\r\n length: lastBreak.length,\r\n breaksSize: lastBreak.cumulativeWidth,\r\n inBreak: false\r\n }\r\n }\r\n }\r\n for (i = 0, length = breaks.length; i < length; i++) {\r\n br = breaks[i];\r\n prevBreak = breaks[i - 1];\r\n if (methods.isInBreak(pos, br, start, end)) {\r\n prop.inBreak = true;\r\n prop.break = br;\r\n break\r\n }\r\n if (prevBreak && methods.isBetweenBreaks(pos, br, prevBreak, start, end)) {\r\n prop = {\r\n length: methods.getLength(prevBreak, lastBreak),\r\n breaksSize: methods.getBreaksSize(prevBreak, lastBreak),\r\n inBreak: false\r\n };\r\n break\r\n }\r\n }\r\n return prop\r\n },\r\n isInverted: function() {\r\n return !(this._options.isHorizontal ^ this._businessRange.invert)\r\n },\r\n _getDiscreteInterval: function(categoriesLength, canvasOptions) {\r\n var correctedCategoriesCount = categoriesLength - (this._options.stick ? 1 : 0);\r\n return correctedCategoriesCount > 0 ? canvasOptions.canvasLength / correctedCategoriesCount : canvasOptions.canvasLength\r\n },\r\n _prepareCanvasOptions: function() {\r\n var that = this;\r\n var businessRange = that._businessRange;\r\n var canvasOptions = that._canvasOptions = getCanvasBounds(businessRange);\r\n var canvas = that._canvas;\r\n var breaks = that._breaks;\r\n var length;\r\n canvasOptions.startPadding = canvas.startPadding || 0;\r\n canvasOptions.endPadding = canvas.endPadding || 0;\r\n if (that._options.isHorizontal) {\r\n canvasOptions.startPoint = canvas.left + canvasOptions.startPadding;\r\n length = canvas.width;\r\n canvasOptions.endPoint = canvas.width - canvas.right - canvasOptions.endPadding;\r\n canvasOptions.invert = businessRange.invert\r\n } else {\r\n canvasOptions.startPoint = canvas.top + canvasOptions.startPadding;\r\n length = canvas.height;\r\n canvasOptions.endPoint = canvas.height - canvas.bottom - canvasOptions.endPadding;\r\n canvasOptions.invert = !businessRange.invert\r\n }\r\n that.canvasLength = canvasOptions.canvasLength = canvasOptions.endPoint - canvasOptions.startPoint;\r\n canvasOptions.rangeDoubleError = Math.pow(10, (0, _utils.getPower)(canvasOptions.rangeMax - canvasOptions.rangeMin) - (0, _utils.getPower)(length) - 2);\r\n canvasOptions.ratioOfCanvasRange = canvasOptions.canvasLength / (canvasOptions.rangeMaxVisible - canvasOptions.rangeMinVisible);\r\n if (void 0 !== breaks) {\r\n canvasOptions.ratioOfCanvasRange = (canvasOptions.canvasLength - breaks[breaks.length - 1].cumulativeWidth) / (canvasOptions.rangeMaxVisible - canvasOptions.rangeMinVisible - breaks[breaks.length - 1].length)\r\n }\r\n return canvasOptions\r\n },\r\n updateCanvas: function(canvas) {\r\n this._canvas = validateCanvas(canvas);\r\n this.reinit()\r\n },\r\n updateBusinessRange: function(businessRange) {\r\n var that = this;\r\n var breaks = businessRange.breaks || [];\r\n that._userBreaks = businessRange.userBreaks || [];\r\n that._businessRange = validateBusinessRange(businessRange);\r\n that._breaks = breaks.length ? prepareBreaks(breaks, that._businessRange) : void 0;\r\n that.reinit()\r\n },\r\n update: function(businessRange, canvas, options) {\r\n var that = this;\r\n that._options = (0, _extend.extend)(that._options || {}, options);\r\n that._canvas = validateCanvas(canvas);\r\n that.updateBusinessRange(businessRange)\r\n },\r\n getBusinessRange: function() {\r\n return this._businessRange\r\n },\r\n getEventScale: function(zoomEvent) {\r\n return zoomEvent.deltaScale || 1\r\n },\r\n getCanvasVisibleArea: function() {\r\n return {\r\n min: this._canvasOptions.startPoint,\r\n max: this._canvasOptions.endPoint\r\n }\r\n },\r\n _calculateSpecialValues: function() {\r\n var that = this;\r\n var canvasOptions = that._canvasOptions;\r\n var startPoint = canvasOptions.startPoint - canvasOptions.startPadding;\r\n var endPoint = canvasOptions.endPoint + canvasOptions.endPadding;\r\n var range = that._businessRange;\r\n var minVisible = range.minVisible;\r\n var maxVisible = range.maxVisible;\r\n var canvas_position_center_middle = startPoint + canvasOptions.canvasLength / 2;\r\n var canvas_position_default;\r\n if (minVisible < 0 && maxVisible > 0 && minVisible !== maxVisible) {\r\n canvas_position_default = that.translate(0, 1)\r\n }\r\n if (!(0, _type.isDefined)(canvas_position_default)) {\r\n var invert = range.invert ^ (minVisible < 0 && maxVisible <= 0);\r\n if (that._options.isHorizontal) {\r\n canvas_position_default = invert ? endPoint : startPoint\r\n } else {\r\n canvas_position_default = invert ? startPoint : endPoint\r\n }\r\n }\r\n that.sc = {\r\n canvas_position_default: canvas_position_default,\r\n canvas_position_left: startPoint,\r\n canvas_position_top: startPoint,\r\n canvas_position_center: canvas_position_center_middle,\r\n canvas_position_middle: canvas_position_center_middle,\r\n canvas_position_right: endPoint,\r\n canvas_position_bottom: endPoint,\r\n canvas_position_start: canvasOptions.invert ? endPoint : startPoint,\r\n canvas_position_end: canvasOptions.invert ? startPoint : endPoint\r\n }\r\n },\r\n translateSpecialCase: function(value) {\r\n return this.sc[value]\r\n },\r\n _calculateProjection: function(distance) {\r\n var canvasOptions = this._canvasOptions;\r\n return canvasOptions.invert ? canvasOptions.endPoint - distance : canvasOptions.startPoint + distance\r\n },\r\n _calculateUnProjection: function(distance) {\r\n var canvasOptions = this._canvasOptions;\r\n \"datetime\" === this._businessRange.dataType && (distance = Math.round(distance));\r\n return canvasOptions.invert ? canvasOptions.rangeMaxVisible.valueOf() - distance : canvasOptions.rangeMinVisible.valueOf() + distance\r\n },\r\n getMinBarSize: function(minBarSize) {\r\n var visibleArea = this.getCanvasVisibleArea();\r\n var minValue = this.from(visibleArea.min + minBarSize);\r\n return _abs(this.from(visibleArea.min) - (!(0, _type.isDefined)(minValue) ? this.from(visibleArea.max) : minValue))\r\n },\r\n checkMinBarSize: function(value, minShownValue, stackValue) {\r\n return _abs(value) < minShownValue ? value >= 0 ? minShownValue : -minShownValue : value\r\n },\r\n translate: function(bp, direction) {\r\n var specialValue = this.translateSpecialCase(bp);\r\n if ((0, _type.isDefined)(specialValue)) {\r\n return Math.round(specialValue)\r\n }\r\n if (isNaN(bp)) {\r\n return null\r\n }\r\n return this.to(bp, direction)\r\n },\r\n getInterval: function(interval) {\r\n var _interval;\r\n var canvasOptions = this._canvasOptions;\r\n interval = null !== (_interval = interval) && void 0 !== _interval ? _interval : this._businessRange.interval;\r\n if (interval) {\r\n return Math.round(canvasOptions.ratioOfCanvasRange * interval)\r\n }\r\n return Math.round(canvasOptions.endPoint - canvasOptions.startPoint)\r\n },\r\n zoom: function(translate, scale, wholeRange) {\r\n var canvasOptions = this._canvasOptions;\r\n if (canvasOptions.rangeMinVisible.valueOf() === canvasOptions.rangeMaxVisible.valueOf() && 0 !== translate) {\r\n return this.zoomZeroLengthRange(translate, scale)\r\n }\r\n var startPoint = canvasOptions.startPoint;\r\n var endPoint = canvasOptions.endPoint;\r\n var isInverted = this.isInverted();\r\n var newStart = (startPoint + translate) / scale;\r\n var newEnd = (endPoint + translate) / scale;\r\n wholeRange = wholeRange || {};\r\n var minPoint = this.to(isInverted ? wholeRange.endValue : wholeRange.startValue);\r\n var maxPoint = this.to(isInverted ? wholeRange.startValue : wholeRange.endValue);\r\n var min;\r\n var max;\r\n if (minPoint > newStart) {\r\n newEnd -= newStart - minPoint;\r\n newStart = minPoint;\r\n min = isInverted ? wholeRange.endValue : wholeRange.startValue\r\n }\r\n if (maxPoint < newEnd) {\r\n newStart -= newEnd - maxPoint;\r\n newEnd = maxPoint;\r\n max = isInverted ? wholeRange.startValue : wholeRange.endValue\r\n }\r\n if (maxPoint - minPoint < newEnd - newStart) {\r\n newStart = minPoint;\r\n newEnd = maxPoint\r\n }\r\n translate = (endPoint - startPoint) * newStart / (newEnd - newStart) - startPoint;\r\n scale = (startPoint + translate) / newStart || 1;\r\n min = (0, _type.isDefined)(min) ? min : (0, _math.adjust)(this.from(newStart, 1));\r\n max = (0, _type.isDefined)(max) ? max : (0, _math.adjust)(this.from(newEnd, -1));\r\n if (scale <= 1) {\r\n min = this._correctValueAboutBreaks(min, 1 === scale ? translate : -1);\r\n max = this._correctValueAboutBreaks(max, 1 === scale ? translate : 1)\r\n }\r\n if (min > max) {\r\n min = min > wholeRange.endValue ? wholeRange.endValue : min;\r\n max = max < wholeRange.startValue ? wholeRange.startValue : max\r\n } else {\r\n min = min < wholeRange.startValue ? wholeRange.startValue : min;\r\n max = max > wholeRange.endValue ? wholeRange.endValue : max\r\n }\r\n return {\r\n min: min,\r\n max: max,\r\n translate: (0, _math.adjust)(translate),\r\n scale: (0, _math.adjust)(scale)\r\n }\r\n },\r\n _correctValueAboutBreaks: function(value, direction) {\r\n var br = this._userBreaks.filter(function(br) {\r\n return value >= br.from && value <= br.to\r\n });\r\n if (br.length) {\r\n return direction > 0 ? br[0].to : br[0].from\r\n } else {\r\n return value\r\n }\r\n },\r\n zoomZeroLengthRange: function(translate, scale) {\r\n var canvasOptions = this._canvasOptions;\r\n var min = canvasOptions.rangeMin;\r\n var max = canvasOptions.rangeMax;\r\n var correction = (max.valueOf() !== min.valueOf() ? max.valueOf() - min.valueOf() : _abs(canvasOptions.rangeMinVisible.valueOf() - min.valueOf())) / canvasOptions.canvasLength;\r\n var isDateTime = (0, _type.isDate)(max) || (0, _type.isDate)(min);\r\n var isLogarithmic = \"logarithmic\" === this._businessRange.axisType;\r\n var newMin = canvasOptions.rangeMinVisible.valueOf() - correction;\r\n var newMax = canvasOptions.rangeMaxVisible.valueOf() + correction;\r\n newMin = isLogarithmic ? (0, _math.adjust)((0, _utils.raiseToExt)(newMin, canvasOptions.base)) : isDateTime ? new Date(newMin) : newMin;\r\n newMax = isLogarithmic ? (0, _math.adjust)((0, _utils.raiseToExt)(newMax, canvasOptions.base)) : isDateTime ? new Date(newMax) : newMax;\r\n return {\r\n min: newMin,\r\n max: newMax,\r\n translate: translate,\r\n scale: scale\r\n }\r\n },\r\n getMinScale: function(zoom) {\r\n var _this$_businessRange = this._businessRange,\r\n dataType = _this$_businessRange.dataType,\r\n interval = _this$_businessRange.interval;\r\n if (\"datetime\" === dataType && 1 === interval) {\r\n return this.getDateTimeMinScale(zoom)\r\n }\r\n return zoom ? 1.1 : .9\r\n },\r\n getDateTimeMinScale: function(zoom) {\r\n var canvasOptions = this._canvasOptions;\r\n var length = canvasOptions.canvasLength / canvasOptions.ratioOfCanvasRange;\r\n length += (parseInt(.1 * length) || 1) * (zoom ? -2 : 2);\r\n return canvasOptions.canvasLength / (Math.max(length, 1) * canvasOptions.ratioOfCanvasRange)\r\n },\r\n getScale: function(val1, val2) {\r\n var canvasOptions = this._canvasOptions;\r\n if (canvasOptions.rangeMax === canvasOptions.rangeMin) {\r\n return 1\r\n }\r\n val1 = (0, _type.isDefined)(val1) ? this._fromValue(val1) : canvasOptions.rangeMin;\r\n val2 = (0, _type.isDefined)(val2) ? this._fromValue(val2) : canvasOptions.rangeMax;\r\n return (canvasOptions.rangeMax - canvasOptions.rangeMin) / Math.abs(val1 - val2)\r\n },\r\n isValid: function(value) {\r\n var co = this._canvasOptions;\r\n value = this._fromValue(value);\r\n return null !== value && !isNaN(value) && value.valueOf() + co.rangeDoubleError >= co.rangeMin && value.valueOf() - co.rangeDoubleError <= co.rangeMax\r\n },\r\n getCorrectValue: function(value, direction) {\r\n var that = this;\r\n var breaks = that._breaks;\r\n var prop;\r\n value = that._fromValue(value);\r\n if (that._breaks) {\r\n prop = that._checkValueAboutBreaks(breaks, value, \"trFrom\", \"trTo\", that._checkingMethodsAboutBreaks[0]);\r\n if (true === prop.inBreak) {\r\n return that._toValue(direction > 0 ? prop.break.trTo : prop.break.trFrom)\r\n }\r\n }\r\n return that._toValue(value)\r\n },\r\n to: function(bp, direction) {\r\n var range = this.getBusinessRange();\r\n if ((0, _type.isDefined)(range.maxVisible) && (0, _type.isDefined)(range.minVisible) && range.maxVisible.valueOf() === range.minVisible.valueOf()) {\r\n if (!(0, _type.isDefined)(bp) || range.maxVisible.valueOf() !== bp.valueOf()) {\r\n return null\r\n }\r\n return this.translateSpecialCase(0 === bp && this._options.shiftZeroValue ? \"canvas_position_default\" : \"canvas_position_middle\")\r\n }\r\n bp = this._fromValue(bp);\r\n var that = this;\r\n var canvasOptions = that._canvasOptions;\r\n var breaks = that._breaks;\r\n var prop = {\r\n length: 0\r\n };\r\n var commonBreakSize = 0;\r\n if (void 0 !== breaks) {\r\n prop = that._checkValueAboutBreaks(breaks, bp, \"trFrom\", \"trTo\", that._checkingMethodsAboutBreaks[0]);\r\n commonBreakSize = (0, _type.isDefined)(prop.breaksSize) ? prop.breaksSize : 0\r\n }\r\n if (true === prop.inBreak) {\r\n if (direction > 0) {\r\n return prop.break.start\r\n } else {\r\n if (direction < 0) {\r\n return prop.break.end\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n return that._conversionValue(that._calculateProjection((bp - canvasOptions.rangeMinVisible - prop.length) * canvasOptions.ratioOfCanvasRange + commonBreakSize))\r\n },\r\n from: function(pos, direction) {\r\n var that = this;\r\n var breaks = that._breaks;\r\n var prop = {\r\n length: 0\r\n };\r\n var canvasOptions = that._canvasOptions;\r\n var startPoint = canvasOptions.startPoint;\r\n var commonBreakSize = 0;\r\n if (void 0 !== breaks) {\r\n prop = that._checkValueAboutBreaks(breaks, pos, \"start\", \"end\", that._checkingMethodsAboutBreaks[1]);\r\n commonBreakSize = (0, _type.isDefined)(prop.breaksSize) ? prop.breaksSize : 0\r\n }\r\n if (true === prop.inBreak) {\r\n if (direction > 0) {\r\n return that._toValue(prop.break.trTo)\r\n } else {\r\n if (direction < 0) {\r\n return that._toValue(prop.break.trFrom)\r\n } else {\r\n return null\r\n }\r\n }\r\n }\r\n return that._toValue(that._calculateUnProjection((pos - startPoint - commonBreakSize) / canvasOptions.ratioOfCanvasRange + prop.length))\r\n },\r\n isValueProlonged: false,\r\n getRange: function() {\r\n return [this._toValue(this._canvasOptions.rangeMin), this._toValue(this._canvasOptions.rangeMax)]\r\n },\r\n getScreenRange: function() {\r\n return [this._canvasOptions.startPoint, this._canvasOptions.endPoint]\r\n },\r\n add: function(value, diff, dir) {\r\n return this._add(value, diff, (this._businessRange.invert ? -1 : 1) * dir)\r\n },\r\n _add: function(value, diff, coeff) {\r\n return this._toValue(this._fromValue(value) + diff * coeff)\r\n },\r\n _fromValue: function(value) {\r\n return null !== value ? Number(value) : null\r\n },\r\n _toValue: function(value) {\r\n return null !== value ? Number(value) : null\r\n },\r\n ratioOfCanvasRange: function() {\r\n return this._canvasOptions.ratioOfCanvasRange\r\n },\r\n convert: function(value) {\r\n return value\r\n },\r\n getRangeByMinZoomValue: function(minZoom, visualRange) {\r\n if (visualRange.minVisible + minZoom <= this._businessRange.max) {\r\n return [visualRange.minVisible, visualRange.minVisible + minZoom]\r\n } else {\r\n return [visualRange.maxVisible - minZoom, visualRange.maxVisible]\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (viz/tree_map/common.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.buildRectAppearance = buildRectAppearance;\r\nexports.buildTextAppearance = buildTextAppearance;\r\nvar _utils = require(\"../core/utils\");\r\n\r\nfunction buildRectAppearance(option) {\r\n var border = option.border || {};\r\n return {\r\n fill: option.color,\r\n opacity: option.opacity,\r\n stroke: border.color,\r\n \"stroke-width\": border.width,\r\n \"stroke-opacity\": border.opacity,\r\n hatching: option.hatching\r\n }\r\n}\r\n\r\nfunction buildTextAppearance(options, filter) {\r\n return {\r\n attr: {\r\n filter: filter\r\n },\r\n css: (0, _utils.patchFontOptions)(options.font)\r\n }\r\n}\r\n"],"sourceRoot":""}