{"version":3,"sources":["webpack:///./node_modules/devextreme/viz/gauges/circular_gauge.js","webpack:///./node_modules/devextreme/viz/gauges/common.js","webpack:///./node_modules/devextreme/viz/gauges/base_range_container.js","webpack:///./node_modules/devextreme/viz/funnel/funnel.js","webpack:///./node_modules/devextreme/viz/gauges/bar_gauge.js","webpack:///./node_modules/devextreme/viz/palette.js","webpack:///./node_modules/devextreme/viz/gauges/theme_manager.js","webpack:///./node_modules/devextreme/viz/gauges/tracker.js","webpack:///./node_modules/devextreme/viz/gauges/circular_indicators.js","webpack:///./node_modules/devextreme/viz/gauges/circular_range_container.js","webpack:///./node_modules/devextreme/viz/funnel.js","webpack:///./node_modules/devextreme/viz/funnel/tiling.js","webpack:///./node_modules/devextreme/viz/funnel/tiling.funnel.js","webpack:///./node_modules/devextreme/viz/funnel/tiling.pyramid.js","webpack:///./node_modules/devextreme/viz/funnel/item.js","webpack:///./node_modules/devextreme/viz/funnel/label.js","webpack:///./node_modules/devextreme/viz/funnel/tracker.js","webpack:///./node_modules/devextreme/viz/funnel/tooltip.js","webpack:///./node_modules/devextreme/viz/linear_gauge.js","webpack:///./node_modules/devextreme/viz/gauges/linear_gauge.js","webpack:///./node_modules/devextreme/viz/gauges/linear_indicators.js","webpack:///./node_modules/devextreme/viz/gauges/linear_range_container.js","webpack:///./node_modules/devextreme/viz/gauges/base_gauge.js","webpack:///./node_modules/devextreme/viz/gauges/base_indicators.js"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","exports","default","_component_registrator","_interopRequireDefault","_object","_extend","_iterator","_base_gauge","_common","_utils","circularIndicators","__esModule","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","hasOwnProperty","call","desc","set","_interopRequireWildcard","_circular_range_container","WeakMap","_isFinite","isFinite","_normalizeAngle","normalizeAngle","_getCosAndSin","getCosAndSin","_abs","Math","abs","_max","max","_min","min","_round","round","_each","each","PI","dxCircularGauge","dxGauge","inherit","_rootClass","_factoryMethods","rangeContainer","indicator","_gridSpacingFactor","_scaleTypes","type","drawingType","_getThemeManagerOptions","options","this","callBase","apply","arguments","subTheme","_updateScaleTickIndent","scaleOptions","indentFromTick","label","length","tick","visible","textParams","_scale","measureLabels","extend","_canvas","tickCorrection","orientation","indentFromAxis","width","height","updateOptions","_setupCodomain","sides","geometry","option","startAngle","endAngle","left","up","right","down","startCosSin","endCosSin","startCos","cos","startSin","sin","endCos","endSin","getSides","_area","x","y","radius","startCoord","endCoord","_translator","setCodomain","_shiftScale","layout","scale","canvas","getCanvas","draw","centerCoords","getCenter","shift","bottom","_getScaleLayoutValue","_getTicksOrientation","_getTicksCoefficients","coefs","inner","outer","_correctScaleIndents","result","horizontalOffset","verticalOffset","inverseHorizontalOffset","inverseVerticalOffset","_measureMainElements","elements","scaleMeasurement","maxRadius","minRadius","maxHorizontalOffset","maxVerticalOffset","maxInverseHorizontalOffset","maxInverseVerticalOffset","concat","_","element","bounds","measure","getOffset","horizontalMargin","verticalMargin","inverseHorizontalMargin","inverseVerticalMargin","_applyMainLayout","measurements","area","margins","top","rect","srcRect","aspectRatio","selfAspectRatio","getWidth","getHeight","selectRectByAspectRatio","_innerRect","_getElementLayout","offset","_getApproximateScreenRange","r","totalRadius","getCodomainRange","_getDefaultSize","_factory","clone","dxBaseGauge","indicators","createIndicator","createIndicatorCreator","_default","rectangleneedle","triangleneedle","twocolorneedle","trianglemarker","textcloud","rangebar","RangeContainer","module","parameters","_strict","indicatorType","normalizeEnum","_type","_extend2","_base_axis","_isArray","Array","isArray","_Number","Number","DEFAULT_NUMBER_MULTIPLIERS","processValue","value","fallbackValue","parseArrayOfNumbers","arg","isNumeric","_initCore","that","renderer","_renderer","_setupValue","__subvalues","_setupSubvalues","selectMode","_rangeContainer","container","root","translator","themeManager","_themeManager","_initScale","_subvalueIndicatorContainer","g","attr","linkOn","enableLinks","_fontFields","_scaleGroup","Axis","incidentOccurred","_incidentOccurred","axesContainerGroup","axisType","widgetClass","getTemplate","_disposeCore","dispose","linkOff","_disposeValueIndicators","_valueIndicator","_subvalueIndicatorsSet","_setupDomainCore","scaleOption","startValue","endValue","_baseValue","setDomain","_cleanContent","clean","_cleanValueIndicators","_measureScale","majorTick","majorTickEnabled","minorTick","minorTickEnabled","layoutValue","innerCoef","outerCoef","_renderContent","_prepareScaleSettings","render","_getOption","vertical","_renderScale","linkAppend","map","_prepareValueIndicators","enabled","resize","_beginValueChanging","_updateActiveElements","_endValueChanging","userOptions","theme","isHorizontal","forceUserTickInterval","isDefined","tickInterval","scaleDivisionFactor","axisDivisionFactor","minorAxisDivisionFactor","minorScaleDivisionFactor","numberMultipliers","tickOrientation","useRangeColors","customizeColor","getColorForValue","getDomain","angles","getCodomain","invert","inverted","skipViewportExtending","setBusinessRange","dataType","_updateIndicatorSettings","settings","currentValue","baseValue","translate","text","format","_defaultFormatOptions","_prepareIndicatorSettings","defaultTypeField","animation","_animationSettings","containerBackgroundColor","_containerBackgroundColor","_prepareValueIndicator","_prepareSubvalueIndicators","_updateValueIndicator","_updateSubvalueIndicators","target","_createIndicator","_createSubvalueIndicatorsSet","ValueIndicatorsSet","i","createPalette","palette","isRecreate","dummy","__value","subvalues","ii","list","vals","push","_noAnimation","values","_changeValue","_changeSubvalues","slice","_setContentSize","compareArrays","_optionChangesMap","valueIndicator","subvalueIndicator","valueIndicators","_customChangesOrder","_change_VALUE","_change_SUBVALUES","owner","className","trackerType","trackerIndex","tracker","_tracker","_trackerInfo","index","valueGetter","setupValues","fieldName","optionItems","currentValues","newValues","gauge","noop","_indicatorValues","_valueIndicators","_applyMostlyTotalChange","updateActiveElements_hardMode","prepareValueIndicators_hardMode","disposeValueIndicators_hardMode","cleanValueIndicators_hardMode","indicatorValue","indicatorValue_hardMode","selectHardMode","optionList","newValueIndicators","userSettings","pointers","accessPointerValue","_parameters","_indicators","_options","_colorPalette","_palette","_sample","_generatePalette","_getIndicatorOptions","_layout","color","count","colors","reset","generateColors","repeat","_adjustIndicatorsCount","indicatorsLen","_base_indicators","subtractSegmentAsc","segmentStart","segmentEnd","otherStart","otherEnd","start","end","subtractSegmentDesc","areEqualValues","_ref","isValidSegmentAsc","isValidSegmentDesc","BaseElement","_init","_root","_container","_dispose","linkRemove","clear","_getRanges","totalStart","totalEnd","totalDelta","isValidSegment","subtractSegment","ranges","backgroundRanges","backgroundColor","isString","startWidth","endWidth","deltaWidth","reduce","rangeOptions","adjust","classIndex","extensionMode","paletteExtensionMode","keepLastColorInEnd","item","paletteColor","getNextColor","sub","subs","range","newRanges","newBackgroundRanges","_processOptions","_ranges","_isVisible","_createRange","fill","append","_tiling","_tiling2","_tiling3","_base_widget","_item","_data_source","getLegendItemState","itemState","hatching","addAlgorithm","dxFunnel","_rootClassPrefix","_proxyData","dataSource","neckWidth","neckHeight","algorithm","valueField","argumentField","colorField","sortData","_themeDependentChanges","_themeSection","_optionChangesOrder","_initialChanges","_group","_items","_eventsMap","onHoverChanged","name","onSelectionChanged","_applySize","_rect","_change","_getAlignmentRect","_change_TILING","items","convertCoord","coord","forEach","coords","figure","path","points","_requestChange","_dataSourceChangedHandler","_change_DRAWN","_drawn","_change_DATA_SOURCE","_updateDataSource","_change_NODES_CREATE","_buildNodes","_change_TILES","_applyTilesAppearance","_suspend","_applyingChanges","_suspendChanges","_resume","_resumeChanges","state","getState","smartAttr","states","_hitTestTargets","data","some","callback","clearHover","isHovered","hover","clearSelection","isSelected","select","_getData","_dataSourceItems","processedData","d","argument","dataItem","sort","a","b","getAlgorithm","percents","normalizeValues","itemOptions","figures","getFigures","useHighlight","curData","percent","id","initHatching","_showTooltip","hideTooltip","getAllItems","_getLegendData","normal","selection","_getMinSize","adaptiveLayout","addPlugin","plugin","dxBarGauge","_circular_gauge","_legend","BarWrapper","PI_DIV_180","_floor","floor","_getSampleText","getSampleText","_formatValue","formatValue","_compareArrays","_convertAngleToRendererSpace","convertAngleToRendererSpace","_patchFontOptions","patchFontOptions","_noop","_barsGroup","_values","_context","group","_animateStep","pos","bars","_bars","animate","_animateComplete","bar","endAnimation","_checkOverlap","_setupAnimationSettings","step","complete","stopAnimation","bBox","labelOptions","context","textEnabled","textColor","font","formatOptions","customizeText","textOptions","align","fontStyles","_textIndent","indent","lineWidth","connectorWidth","lineColor","connectorColor","css","getBBox","remove","textY","textWidth","textHeight","_renderBars","relativeInnerRadius","_outerRadius","_innerRadius","_barSpacing","barSpacing","baseAngle","_arrangeBars","barSize","spacing","_count","_setBarsCount","textRadius","textIndent","unitOffset","arrange","_i","hide","_animateBars","_updateBars","_dummyBackground","arc","outerRadius","innerRadius","applyValue","sortedBars","getValue","currentIndex","nextIndex","current","next","checkIntersect","hideLabel","beginAnimation","silent","barValues","filter","splice","_i2","update","_updateValues","_resizing","resolveLabelOverlapping","_change_VALUES","_change_NODES","_change_MOSTLY_TOTAL","labelFormatOptions","legendFormatOptions","legend","itemTextFormat","getColor","setAngles","angle1","angle2","compareFloats","value1","value2","_background","_bar","_line","_text","detach","_settings","_visible","attach","_angle","_color","stroke","sharp","getTooltipParameters","cosSin","_value","setAngle","angle","halfWidth","visibility","rotate","anotherBar","calculateLabelCoords","anotherCoords","bottomRight","topLeft","box","_processValue","_start","_delta","currentPalette","baseColorSet","getPalette","registerPalette","paletteName","simpleSet","indicatingSet","gradientSet","accentColor","palettes","getAccentColor","themeDefault","getDiscretePalette","source","size","themeDefaultPalette","colorCount","sourceCount","gradient","addColor","k","kl","kr","_ceil","blend","toHex","createDiscreteColors","getGradientPalette","color1","color2","ratio","_palettes","_defineProperty","enumerable","configurable","writable","currentPaletteName","ceil","RingBuf","buf","ind","res","getAlternateColorsStrategy","stepHighlight","paletteSteps","_reset","originalPalette","getNewColor","getAlteredPalette","getExtrapolateColorsStrategy","paletteCount","cycles","cycleIndex","cycleCount","hsl","l","diapason","minL","maxL","cycleMiddle","cycleDiff","fromHSL","convertColor","getColorMixer","extendedPalette","distributeColors","colorsCount","startIndex","distribution","middleIndex","groupSize","extraItems","getColorAndDistance","arr","distance","extendPalette","colorInGroups","currentColorIndex","cleanColorIndices","indexOf","paletteWithEmptyColors","paletteLength","c2","j","blendColors","paletteObj","_extensionStrategy","_currentColor","toLowerCase","currentColor","newColor","alter","lightness","_base_theme_manager","ThemeManager","BaseThemeManager","ctor","_subTheme","_initializeTheme","_theme","_events_engine","_class","_dom_adapter","_wheel","_ready_callbacks","_index","_pointer","EVENT_NS","ready","add","Tracker","_element","opacity","after","_showTooltipCallback","_tooltipEvent","data_target","data_info","_targetEvent","_tooltipTarget","_callbacks","_hideTooltipCallback","_hideTooltipTimeout","clearTimeout","deactivate","off","activate","info","setTooltipState","on","addNamespace","move","handleTooltipMouseOver","out","handleTooltipMouseOut","handleTooltipTouchStart","handleTooltipTouchEnd","handleTooltipMouseWheel","setCallbacks","callbacks","event","_hideTooltip","delay","setTimeout","active_touch_tooltip_tracker","_x","pageX","_y","pageY","_touch","handleDocumentTooltipTouchStart","subscribeGlobal","getDocument","SimpleIndicator","BaseIndicator","_move","_actualPosition","_rootElement","_trackerElement","_isEnabled","indentFromCenter","_getTrackerSettings","_getRadius","_getIndentFromCenter","_render","_renderPointer","_clearPointer","_clear","_currentValue","NeedleIndicator","_adjustOffset","diff","beginAdaptingAtRadius","_renderSpindle","spindleSize","gapSize","spindleGapSize","_spindleOuter","circle","_spindleInner","cx","cy","rectangleNeedle","y2","y1","x1","x2","triangleNeedle","twoColorNeedle","y3","y4","fraction","secondFraction","space","_firstElement","_spaceElement","_secondElement","secondColor","triangleMarker","dx","textCloud","BaseTextCloudMarker","_getTextCloudOptions","nAngle","arrowLength","_measureText","_textFullHeight","_textFullWidth","rangeBar","BaseRangeBar","_createBarItem","_createTracker","_setBarSides","_maxSide","_minSide","_getSpace","_isTextVisible","_setTextItemsSides","_lineFrom","_lineTo","_textRadius","_getPositions","mainPosition1","mainPosition2","basePosition","_basePosition","actualPosition","_startPosition","_endPosition","main1","main2","back1","_space","back2","_buildItemSettings","from","to","_updateTextPosition","_textWidth","_textHeight","_textVerticalOffset","_updateLinePosition","_getTooltipPosition","_hasText","_base_range_container","_inner","_outer","_funnel","_label","_export","_title","_tooltip","_loading_indicator","algorithms","defaultAlgorithm","setDefault","array","nextValue","offsetX","halfNeckWidth","offsetFromCorner","funnelHeight","neckLeftCorner","neckRightCorner","sum","parseStyles","style","baseStyle","border","baseBorder","borderVisible","borderWidth","Item","widget","code","hoverStyle","selectionStyle","getNormalStyle","setHover","setState","_eventTrigger","mode","showTooltip","_slicedToArray","_arrayWithHoles","_s","_e","_arr","_n","_d","done","err","return","_iterableToArrayLimit","_unsupportedIterableToArray","TypeError","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","o","minLen","n","toString","test","len","arr2","isOutsidePosition","correctYForInverted","getOutsideRightLabelPosition","getOutsideLeftLabelPosition","getInsideLabelPosition","init","extenders","_labelsGroup","_labels","labelWidth","_labelRect","position","resetEllipsis","getBoundingRect","keepLabels","horizontalAlignment","isVisible","_createLabels","textAlignment","getCoords","_defaultLabelTextAlignment","labelRect","getColumnLabelLeftPosition","getColumnLabelRightPosition","halfBorderWidth","showForZeroValues","_correctLabelWidth","correctLabelPosition","setFigureToDrawConnector","_resolveLabelOverlapping","members","labels","reverse","maxHeight","_ref2","emptySpace","requiredSpace","startPoint","prevLabel","point","removeEmptySpace","isLeftPos","minX","maxWidth","fit","connectorStrategy","connectorIndent","verticalCorrection","getFigureCenter","isLabelInside","prepareLabelPoints","findFigurePoint","adjustPoints","getConnectorStrategy","Label","labelsGroup","strategy","setOptions","defaultColor","defaultTextAlignment","opt","labelFont","labelBorder","labelConnector","connector","backgroundAttr","dashStyle","connectorAttr","attributes","background","wordWrap","textOverflow","getLabelOptions","setData","customize","optionName","addChange","toUpperCase","handler","isThemeDependent","isOptionChange","fontFields","dataKeyModifier","proto","onItemClick","onLegendClick","dataKey","getProxyData","e","rootOffset","getRootOffset","getData","tooltipData","proxyData","getNode","click","node","_dataKey","figureCoords","_tooltipIndex","_moveTooltip","xy","tooltip","show","valueText","percentText","linearIndicators","_linear_range_container","dxLinearGauge","verticalOrientation","horizontalOrientation","_getInvertedState","textCorrection","verticalTextCorrection","isIndentPositive","center","setInverted","minBound","maxBound","selectRectBySizes","s","totalSize","sizes","rectangle","rhombus","delta","_zeroPosition","p","getCodomainStart","dy","_inverted","_correctCloudType","split","minSide","maxSide","_minBound","_maxBound","_getTextAlign","_lineStart","_lineEnd","_textPosition","backPosition1","backPosition2","startPosition","endPosition","side1","side2","crossCenter","alongCenter","array1","array2","array1ValueIsNaN","array2ValueIsNaN","compareArraysElements","_translator1d","_theme_manager","_format_helper","_format","_createThemeManager","_valueChangingLocker","createTranslator","createTracker","_setTrackerCallbacks","_resetIsReady","_onBeginUpdate","tooltipParameters","formatObject","_cleanCore","_renderCore","_isValidDomain","isEnabled","_applyChanges","_changes","layoutCache","_cache","subtitle","_change_DOMAIN","_setupDomain","_setupDefaultFormat","duration","easing","domain","getAppropriateFormat","_calculateSize","Translator1D","extra","String","text1","getDomainStart","text2","getDomainEnd","_setTooltipOptions","_createRoot","_owner","_setupAnimation","_animation","_actualValue","_runAnimation","_className","val","rootElement","COEFFICIENTS_MAP","rb","br","lb","bl","lt","tl","rt","tr","textCloudOptions","cloudWidth","_textUnitWidth","cloudHeight","tailWidth","tailHeight","tailLength","getTextCloudInfo","_cloud","sampleText","_updateBarItemsPositions","_updateBarItems","spaceColor","_backItem1","_backItem2","_spaceItem1","_spaceItem2","_updateTextItems","_getFontOptions","positions","_mainItem"],"mappings":"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","file":"vendors~af511090.8b49a4b0d334aa9fcd9a.bundle.js","sourcesContent":["/**\r\n * DevExtreme (viz/gauges/circular_gauge.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\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.default = void 0;\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _object = require(\"../../core/utils/object\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _base_gauge = require(\"./base_gauge\");\r\nvar _common = require(\"./common\");\r\nvar _utils = require(\"../core/utils\");\r\nvar circularIndicators = _interopRequireWildcard(require(\"./circular_indicators\"));\r\nvar _circular_range_container = _interopRequireDefault(require(\"./circular_range_container\"));\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _isFinite = isFinite;\r\nvar _normalizeAngle = _utils.normalizeAngle;\r\nvar _getCosAndSin = _utils.getCosAndSin;\r\nvar _abs = Math.abs;\r\nvar _max = Math.max;\r\nvar _min = Math.min;\r\nvar _round = Math.round;\r\nvar _each = _iterator.each;\r\nvar PI = Math.PI;\r\n\r\nfunction getSides(startAngle, endAngle) {\r\n var startCosSin = _getCosAndSin(startAngle);\r\n var endCosSin = _getCosAndSin(endAngle);\r\n var startCos = startCosSin.cos;\r\n var startSin = startCosSin.sin;\r\n var endCos = endCosSin.cos;\r\n var endSin = endCosSin.sin;\r\n return {\r\n left: startSin <= 0 && endSin >= 0 || startSin <= 0 && endSin <= 0 && startCos <= endCos || startSin >= 0 && endSin >= 0 && startCos >= endCos ? -1 : _min(startCos, endCos, 0),\r\n right: startSin >= 0 && endSin <= 0 || startSin >= 0 && endSin >= 0 && startCos >= endCos || startSin <= 0 && endSin <= 0 && startCos <= endCos ? 1 : _max(startCos, endCos, 0),\r\n up: startCos <= 0 && endCos >= 0 || startCos <= 0 && endCos <= 0 && startSin >= endSin || startCos >= 0 && endCos >= 0 && startSin <= endSin ? -1 : -_max(startSin, endSin, 0),\r\n down: startCos >= 0 && endCos <= 0 || startCos >= 0 && endCos >= 0 && startSin <= endSin || startCos <= 0 && endCos <= 0 && startSin >= endSin ? 1 : -_min(startSin, endSin, 0)\r\n }\r\n}\r\nvar dxCircularGauge = _common.dxGauge.inherit({\r\n _rootClass: \"dxg-circular-gauge\",\r\n _factoryMethods: {\r\n rangeContainer: \"createCircularRangeContainer\",\r\n indicator: \"createCircularIndicator\"\r\n },\r\n _gridSpacingFactor: 17,\r\n _scaleTypes: {\r\n type: \"polarAxes\",\r\n drawingType: \"circular\"\r\n },\r\n _getThemeManagerOptions: function() {\r\n var options = this.callBase.apply(this, arguments);\r\n options.subTheme = \"_circular\";\r\n return options\r\n },\r\n _updateScaleTickIndent: function(scaleOptions) {\r\n var indentFromTick = scaleOptions.label.indentFromTick;\r\n var length = scaleOptions.tick.visible ? scaleOptions.tick.length : 0;\r\n var textParams = this._scale.measureLabels((0, _extend.extend)({}, this._canvas));\r\n var tickCorrection = length;\r\n if (\"inside\" === scaleOptions.orientation) {\r\n tickCorrection = 0\r\n } else {\r\n if (\"center\" === scaleOptions.orientation) {\r\n tickCorrection = .5 * length\r\n }\r\n }\r\n scaleOptions.label.indentFromAxis = indentFromTick >= 0 ? indentFromTick + tickCorrection : indentFromTick - tickCorrection - _max(textParams.width, textParams.height);\r\n this._scale.updateOptions(scaleOptions)\r\n },\r\n _setupCodomain: function() {\r\n var that = this;\r\n var geometry = that.option(\"geometry\") || {};\r\n var startAngle = geometry.startAngle;\r\n var endAngle = geometry.endAngle;\r\n var sides;\r\n startAngle = _isFinite(startAngle) ? _normalizeAngle(startAngle) : 225;\r\n endAngle = _isFinite(endAngle) ? _normalizeAngle(endAngle) : -45;\r\n if (_abs(startAngle - endAngle) < 1) {\r\n endAngle -= 360;\r\n sides = {\r\n left: -1,\r\n up: -1,\r\n right: 1,\r\n down: 1\r\n }\r\n } else {\r\n startAngle < endAngle && (endAngle -= 360);\r\n sides = getSides(startAngle, endAngle)\r\n }\r\n that._area = {\r\n x: 0,\r\n y: 0,\r\n radius: 100,\r\n startCoord: startAngle,\r\n endCoord: endAngle,\r\n sides: sides\r\n };\r\n that._translator.setCodomain(startAngle, endAngle)\r\n },\r\n _shiftScale: function(layout) {\r\n var scale = this._scale;\r\n var canvas = scale.getCanvas();\r\n canvas.width = canvas.height = 2 * layout.radius;\r\n scale.draw(canvas);\r\n var centerCoords = scale.getCenter();\r\n scale.shift({\r\n right: layout.x - centerCoords.x,\r\n bottom: layout.y - centerCoords.y\r\n })\r\n },\r\n _getScaleLayoutValue: function() {\r\n return this._area.radius\r\n },\r\n _getTicksOrientation: function(scaleOptions) {\r\n return scaleOptions.orientation\r\n },\r\n _getTicksCoefficients: function(options) {\r\n var coefs = {\r\n inner: 0,\r\n outer: 1\r\n };\r\n if (\"inside\" === options.orientation) {\r\n coefs.inner = 1;\r\n coefs.outer = 0\r\n } else {\r\n if (\"center\" === options.orientation) {\r\n coefs.inner = coefs.outer = .5\r\n }\r\n }\r\n return coefs\r\n },\r\n _correctScaleIndents: function(result, indentFromTick, textParams) {\r\n if (indentFromTick >= 0) {\r\n result.horizontalOffset = indentFromTick + textParams.width;\r\n result.verticalOffset = indentFromTick + textParams.height\r\n } else {\r\n result.horizontalOffset = result.verticalOffset = 0;\r\n result.min -= -indentFromTick + _max(textParams.width, textParams.height)\r\n }\r\n result.inverseHorizontalOffset = textParams.width / 2;\r\n result.inverseVerticalOffset = textParams.height / 2\r\n },\r\n _measureMainElements: function(elements, scaleMeasurement) {\r\n var that = this;\r\n var radius = that._area.radius;\r\n var maxRadius = 0;\r\n var minRadius = 1 / 0;\r\n var maxHorizontalOffset = 0;\r\n var maxVerticalOffset = 0;\r\n var maxInverseHorizontalOffset = 0;\r\n var maxInverseVerticalOffset = 0;\r\n var scale = that._scale;\r\n _each(elements.concat(scale), function(_, element) {\r\n var bounds = element.measure ? element.measure({\r\n radius: radius - element.getOffset()\r\n }) : scaleMeasurement;\r\n bounds.min > 0 && (minRadius = _min(minRadius, bounds.min));\r\n bounds.max > 0 && (maxRadius = _max(maxRadius, bounds.max));\r\n bounds.horizontalOffset > 0 && (maxHorizontalOffset = _max(maxHorizontalOffset, bounds.max + bounds.horizontalOffset));\r\n bounds.verticalOffset > 0 && (maxVerticalOffset = _max(maxVerticalOffset, bounds.max + bounds.verticalOffset));\r\n bounds.inverseHorizontalOffset > 0 && (maxInverseHorizontalOffset = _max(maxInverseHorizontalOffset, bounds.inverseHorizontalOffset));\r\n bounds.inverseVerticalOffset > 0 && (maxInverseVerticalOffset = _max(maxInverseVerticalOffset, bounds.inverseVerticalOffset))\r\n });\r\n maxHorizontalOffset = _max(maxHorizontalOffset - maxRadius, 0);\r\n maxVerticalOffset = _max(maxVerticalOffset - maxRadius, 0);\r\n return {\r\n minRadius: minRadius,\r\n maxRadius: maxRadius,\r\n horizontalMargin: maxHorizontalOffset,\r\n verticalMargin: maxVerticalOffset,\r\n inverseHorizontalMargin: maxInverseHorizontalOffset,\r\n inverseVerticalMargin: maxInverseVerticalOffset\r\n }\r\n },\r\n _applyMainLayout: function(elements, scaleMeasurement) {\r\n var measurements = this._measureMainElements(elements, scaleMeasurement);\r\n var area = this._area;\r\n var sides = area.sides;\r\n var margins = {\r\n left: (sides.left < -.1 ? measurements.horizontalMargin : measurements.inverseHorizontalMargin) || 0,\r\n right: (sides.right > .1 ? measurements.horizontalMargin : measurements.inverseHorizontalMargin) || 0,\r\n top: (sides.up < -.1 ? measurements.verticalMargin : measurements.inverseVerticalMargin) || 0,\r\n bottom: (sides.down > .1 ? measurements.verticalMargin : measurements.inverseVerticalMargin) || 0\r\n };\r\n var rect = selectRectByAspectRatio(this._innerRect, (sides.down - sides.up) / (sides.right - sides.left), margins);\r\n var radius = _min(getWidth(rect) / (sides.right - sides.left), getHeight(rect) / (sides.down - sides.up));\r\n radius = radius - measurements.maxRadius + area.radius;\r\n var x = rect.left - getWidth(rect) * sides.left / (sides.right - sides.left);\r\n var y = rect.top - getHeight(rect) * sides.up / (sides.down - sides.up);\r\n area.x = _round(x);\r\n area.y = _round(y);\r\n area.radius = radius;\r\n rect.left -= margins.left;\r\n rect.right += margins.right;\r\n rect.top -= margins.top;\r\n rect.bottom += margins.bottom;\r\n this._innerRect = rect\r\n },\r\n _getElementLayout: function(offset) {\r\n return {\r\n x: this._area.x,\r\n y: this._area.y,\r\n radius: _round(this._area.radius - offset)\r\n }\r\n },\r\n _getApproximateScreenRange: function() {\r\n var that = this;\r\n var area = that._area;\r\n var r = _min(that._canvas.width / (area.sides.right - area.sides.left), that._canvas.height / (area.sides.down - area.sides.up));\r\n r > area.totalRadius && (r = area.totalRadius);\r\n r = .8 * r;\r\n return -that._translator.getCodomainRange() * r * PI / 180\r\n },\r\n _getDefaultSize: function() {\r\n return {\r\n width: 300,\r\n height: 300\r\n }\r\n },\r\n _factory: (0, _object.clone)(_base_gauge.dxBaseGauge.prototype._factory)\r\n});\r\n\r\nfunction getWidth(rect) {\r\n return rect.right - rect.left\r\n}\r\n\r\nfunction getHeight(rect) {\r\n return rect.bottom - rect.top\r\n}\r\n\r\nfunction selectRectByAspectRatio(srcRect, aspectRatio, margins) {\r\n var rect = (0, _extend.extend)({}, srcRect);\r\n var selfAspectRatio;\r\n var width = 0;\r\n var height = 0;\r\n margins = margins || {};\r\n if (aspectRatio > 0) {\r\n rect.left += margins.left || 0;\r\n rect.right -= margins.right || 0;\r\n rect.top += margins.top || 0;\r\n rect.bottom -= margins.bottom || 0;\r\n if (getWidth(rect) > 0 && getHeight(rect) > 0) {\r\n selfAspectRatio = getHeight(rect) / getWidth(rect);\r\n if (selfAspectRatio > 1) {\r\n aspectRatio < selfAspectRatio ? width = getWidth(rect) : height = getHeight(rect)\r\n } else {\r\n aspectRatio > selfAspectRatio ? height = getHeight(rect) : width = getWidth(rect)\r\n }\r\n width > 0 || (width = height / aspectRatio);\r\n height > 0 || (height = width * aspectRatio);\r\n width = (getWidth(rect) - width) / 2;\r\n height = (getHeight(rect) - height) / 2;\r\n rect.left += width;\r\n rect.right -= width;\r\n rect.top += height;\r\n rect.bottom -= height\r\n } else {\r\n rect.left = rect.right = (rect.left + rect.right) / 2;\r\n rect.top = rect.bottom = (rect.top + rect.bottom) / 2\r\n }\r\n }\r\n return rect\r\n}\r\nvar indicators = dxCircularGauge.prototype._factory.indicators = {};\r\ndxCircularGauge.prototype._factory.createIndicator = (0, _common.createIndicatorCreator)(indicators);\r\nindicators._default = circularIndicators._default;\r\nindicators.rectangleneedle = circularIndicators.rectangleneedle;\r\nindicators.triangleneedle = circularIndicators.triangleneedle;\r\nindicators.twocolorneedle = circularIndicators.twocolorneedle;\r\nindicators.trianglemarker = circularIndicators.trianglemarker;\r\nindicators.textcloud = circularIndicators.textcloud;\r\nindicators.rangebar = circularIndicators.rangebar;\r\ndxCircularGauge.prototype._factory.RangeContainer = _circular_range_container.default;\r\n(0, _component_registrator.default)(\"dxCircularGauge\", dxCircularGauge);\r\nvar _default = dxCircularGauge;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/gauges/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.createIndicatorCreator = createIndicatorCreator;\r\nexports.dxGauge = void 0;\r\nvar _base_gauge = require(\"./base_gauge\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _extend2 = require(\"../../core/utils/extend\");\r\nvar _base_axis = require(\"../axes/base_axis\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _isArray = Array.isArray;\r\nvar _isFinite = isFinite;\r\nvar _Number = Number;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _extend = _extend2.extend;\r\nvar _each = _iterator.each;\r\nvar SHIFT_ANGLE = 90;\r\nvar OPTION_VALUE = \"value\";\r\nvar OPTION_SUBVALUES = \"subvalues\";\r\nvar DEFAULT_MINOR_AXIS_DIVISION_FACTOR = 5;\r\nvar DEFAULT_NUMBER_MULTIPLIERS = [1, 2, 5];\r\n\r\nfunction processValue(value, fallbackValue) {\r\n if (null === value) {\r\n return value\r\n }\r\n return _isFinite(value) ? _Number(value) : fallbackValue\r\n}\r\n\r\nfunction parseArrayOfNumbers(arg) {\r\n return _isArray(arg) ? arg : (0, _type.isNumeric)(arg) ? [arg] : null\r\n}\r\nvar dxGauge = _base_gauge.dxBaseGauge.inherit({\r\n _initCore: function() {\r\n var that = this;\r\n var renderer = that._renderer;\r\n that._setupValue(that.option(OPTION_VALUE));\r\n that.__subvalues = parseArrayOfNumbers(that.option(OPTION_SUBVALUES));\r\n that._setupSubvalues(that.__subvalues);\r\n selectMode(that);\r\n that.callBase.apply(that, arguments);\r\n that._rangeContainer = new that._factory.RangeContainer({\r\n renderer: renderer,\r\n container: renderer.root,\r\n translator: that._translator,\r\n themeManager: that._themeManager\r\n });\r\n that._initScale();\r\n that._subvalueIndicatorContainer = that._renderer.g().attr({\r\n \"class\": \"dxg-subvalue-indicators\"\r\n }).linkOn(that._renderer.root, \"valueIndicator\").enableLinks()\r\n },\r\n _fontFields: [\"scale.label.font\", \"valueIndicators.rangebar.text.font\", \"valueIndicators.textcloud.text.font\", \"indicator.text.font\"],\r\n _initScale: function() {\r\n var that = this;\r\n that._scaleGroup = that._renderer.g().attr({\r\n \"class\": \"dxg-scale\"\r\n }).linkOn(that._renderer.root, \"scale\");\r\n that._scale = new _base_axis.Axis({\r\n incidentOccurred: that._incidentOccurred,\r\n renderer: that._renderer,\r\n axesContainerGroup: that._scaleGroup,\r\n axisType: that._scaleTypes.type,\r\n drawingType: that._scaleTypes.drawingType,\r\n widgetClass: \"dxg\",\r\n getTemplate: function() {}\r\n })\r\n },\r\n _disposeCore: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n that._scale.dispose();\r\n that._scaleGroup.linkOff();\r\n that._rangeContainer.dispose();\r\n that._disposeValueIndicators();\r\n that._subvalueIndicatorContainer.linkOff();\r\n that._scale = that._scaleGroup = that._rangeContainer = null\r\n },\r\n _disposeValueIndicators: function() {\r\n var that = this;\r\n that._valueIndicator && that._valueIndicator.dispose();\r\n that._subvalueIndicatorsSet && that._subvalueIndicatorsSet.dispose();\r\n that._valueIndicator = that._subvalueIndicatorsSet = null\r\n },\r\n _setupDomainCore: function() {\r\n var that = this;\r\n var scaleOption = that.option(\"scale\") || {};\r\n var startValue = that.option(\"startValue\");\r\n var endValue = that.option(\"endValue\");\r\n startValue = (0, _type.isNumeric)(startValue) ? _Number(startValue) : (0, _type.isNumeric)(scaleOption.startValue) ? _Number(scaleOption.startValue) : 0;\r\n endValue = (0, _type.isNumeric)(endValue) ? _Number(endValue) : (0, _type.isNumeric)(scaleOption.endValue) ? _Number(scaleOption.endValue) : 100;\r\n that._baseValue = startValue < endValue ? startValue : endValue;\r\n that._translator.setDomain(startValue, endValue)\r\n },\r\n _cleanContent: function() {\r\n var that = this;\r\n that._rangeContainer.clean();\r\n that._cleanValueIndicators()\r\n },\r\n _measureScale: function(scaleOptions) {\r\n var that = this;\r\n var majorTick = scaleOptions.tick;\r\n var majorTickEnabled = majorTick.visible && majorTick.length > 0 && majorTick.width > 0;\r\n var minorTick = scaleOptions.minorTick;\r\n var minorTickEnabled = minorTick.visible && minorTick.length > 0 && minorTick.width > 0;\r\n var label = scaleOptions.label;\r\n var indentFromTick = Number(label.indentFromTick);\r\n if (!majorTickEnabled && !minorTickEnabled && !label.visible) {\r\n return {}\r\n }\r\n var textParams = that._scale.measureLabels((0, _extend2.extend)({}, that._canvas));\r\n var layoutValue = that._getScaleLayoutValue();\r\n var result = {\r\n min: layoutValue,\r\n max: layoutValue\r\n };\r\n var coefs = that._getTicksCoefficients(scaleOptions);\r\n var innerCoef = coefs.inner;\r\n var outerCoef = coefs.outer;\r\n if (majorTickEnabled) {\r\n result.min = _min(result.min, layoutValue - innerCoef * majorTick.length);\r\n result.max = _max(result.max, layoutValue + outerCoef * majorTick.length)\r\n }\r\n if (minorTickEnabled) {\r\n result.min = _min(result.min, layoutValue - innerCoef * minorTick.length);\r\n result.max = _max(result.max, layoutValue + outerCoef * minorTick.length)\r\n }\r\n label.visible && that._correctScaleIndents(result, indentFromTick, textParams);\r\n return result\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n var scaleOptions = that._prepareScaleSettings();\r\n that._rangeContainer.render(_extend(that._getOption(\"rangeContainer\"), {\r\n vertical: that._area.vertical\r\n }));\r\n that._renderScale(scaleOptions);\r\n that._subvalueIndicatorContainer.linkAppend();\r\n var elements = (0, _utils.map)([that._rangeContainer].concat(that._prepareValueIndicators()), function(element) {\r\n return element && element.enabled ? element : null\r\n });\r\n that._applyMainLayout(elements, that._measureScale(scaleOptions));\r\n _each(elements, function(_, element) {\r\n element.resize(that._getElementLayout(element.getOffset()))\r\n });\r\n that._shiftScale(that._getElementLayout(0), scaleOptions);\r\n that._beginValueChanging();\r\n that._updateActiveElements();\r\n that._endValueChanging()\r\n },\r\n _prepareScaleSettings: function() {\r\n var that = this;\r\n var userOptions = that.option(\"scale\");\r\n var scaleOptions = (0, _extend2.extend)(true, {}, that._themeManager.theme(\"scale\"), userOptions);\r\n scaleOptions.label.indentFromAxis = 0;\r\n scaleOptions.isHorizontal = !that._area.vertical;\r\n scaleOptions.forceUserTickInterval |= (0, _type.isDefined)(userOptions) && (0, _type.isDefined)(userOptions.tickInterval) && !(0, _type.isDefined)(userOptions.scaleDivisionFactor);\r\n scaleOptions.axisDivisionFactor = scaleOptions.scaleDivisionFactor || that._gridSpacingFactor;\r\n scaleOptions.minorAxisDivisionFactor = scaleOptions.minorScaleDivisionFactor || DEFAULT_MINOR_AXIS_DIVISION_FACTOR;\r\n scaleOptions.numberMultipliers = DEFAULT_NUMBER_MULTIPLIERS;\r\n scaleOptions.tickOrientation = that._getTicksOrientation(scaleOptions);\r\n if (scaleOptions.label.useRangeColors) {\r\n scaleOptions.label.customizeColor = function() {\r\n return that._rangeContainer.getColorForValue(this.value)\r\n }\r\n }\r\n return scaleOptions\r\n },\r\n _renderScale: function(scaleOptions) {\r\n var that = this;\r\n var bounds = that._translator.getDomain();\r\n var startValue = bounds[0];\r\n var endValue = bounds[1];\r\n var angles = that._translator.getCodomain();\r\n var invert = !!(startValue > endValue ^ scaleOptions.inverted);\r\n var min = _min(startValue, endValue);\r\n var max = _max(startValue, endValue);\r\n scaleOptions.min = min;\r\n scaleOptions.max = max;\r\n scaleOptions.startAngle = SHIFT_ANGLE - angles[0];\r\n scaleOptions.endAngle = SHIFT_ANGLE - angles[1];\r\n scaleOptions.skipViewportExtending = true;\r\n scaleOptions.inverted = invert;\r\n that._scale.updateOptions(scaleOptions);\r\n that._scale.setBusinessRange({\r\n axisType: \"continuous\",\r\n dataType: \"numeric\",\r\n min: min,\r\n max: max,\r\n invert: invert\r\n });\r\n that._updateScaleTickIndent(scaleOptions);\r\n that._scaleGroup.linkAppend();\r\n that._scale.draw((0, _extend2.extend)({}, that._canvas))\r\n },\r\n _updateIndicatorSettings: function(settings) {\r\n var that = this;\r\n settings.currentValue = settings.baseValue = _isFinite(that._translator.translate(settings.baseValue)) ? _Number(settings.baseValue) : that._baseValue;\r\n settings.vertical = that._area.vertical;\r\n if (settings.text && !settings.text.format) {\r\n settings.text.format = that._defaultFormatOptions\r\n }\r\n },\r\n _prepareIndicatorSettings: function(options, defaultTypeField) {\r\n var that = this;\r\n var theme = that._themeManager.theme(\"valueIndicators\");\r\n var type = (0, _utils.normalizeEnum)(options.type || that._themeManager.theme(defaultTypeField));\r\n var settings = _extend(true, {}, theme._default, theme[type], options);\r\n settings.type = type;\r\n settings.animation = that._animationSettings;\r\n settings.containerBackgroundColor = that._containerBackgroundColor;\r\n that._updateIndicatorSettings(settings);\r\n return settings\r\n },\r\n _cleanValueIndicators: function() {\r\n this._valueIndicator && this._valueIndicator.clean();\r\n this._subvalueIndicatorsSet && this._subvalueIndicatorsSet.clean()\r\n },\r\n _prepareValueIndicators: function() {\r\n var that = this;\r\n that._prepareValueIndicator();\r\n null !== that.__subvalues && that._prepareSubvalueIndicators();\r\n return [that._valueIndicator, that._subvalueIndicatorsSet]\r\n },\r\n _updateActiveElements: function() {\r\n this._updateValueIndicator();\r\n this._updateSubvalueIndicators()\r\n },\r\n _prepareValueIndicator: function() {\r\n var that = this;\r\n var target = that._valueIndicator;\r\n var settings = that._prepareIndicatorSettings(that.option(\"valueIndicator\") || {}, \"valueIndicatorType\");\r\n if (target && target.type !== settings.type) {\r\n target.dispose();\r\n target = null\r\n }\r\n if (!target) {\r\n target = that._valueIndicator = that._createIndicator(settings.type, that._renderer.root, \"dxg-value-indicator\", \"value-indicator\")\r\n }\r\n target.render(settings)\r\n },\r\n _createSubvalueIndicatorsSet: function() {\r\n var that = this;\r\n var root = that._subvalueIndicatorContainer;\r\n return new ValueIndicatorsSet({\r\n createIndicator: function(type, i) {\r\n return that._createIndicator(type, root, \"dxg-subvalue-indicator\", \"subvalue-indicator\", i)\r\n },\r\n createPalette: function(palette) {\r\n return that._themeManager.createPalette(palette)\r\n }\r\n })\r\n },\r\n _prepareSubvalueIndicators: function() {\r\n var that = this;\r\n var target = that._subvalueIndicatorsSet;\r\n var settings = that._prepareIndicatorSettings(that.option(\"subvalueIndicator\") || {}, \"subvalueIndicatorType\");\r\n if (!target) {\r\n target = that._subvalueIndicatorsSet = that._createSubvalueIndicatorsSet()\r\n }\r\n var isRecreate = settings.type !== target.type;\r\n target.type = settings.type;\r\n var dummy = that._createIndicator(settings.type, that._renderer.root);\r\n if (dummy) {\r\n dummy.dispose();\r\n target.render(settings, isRecreate)\r\n }\r\n },\r\n _setupValue: function(value) {\r\n this.__value = processValue(value, this.__value)\r\n },\r\n _setupSubvalues: function(subvalues) {\r\n var vals = void 0 === subvalues ? this.__subvalues : parseArrayOfNumbers(subvalues);\r\n var i;\r\n var ii;\r\n var list;\r\n if (null === vals) {\r\n return\r\n }\r\n for (i = 0, ii = vals.length, list = []; i < ii; ++i) {\r\n list.push(processValue(vals[i], this.__subvalues[i]))\r\n }\r\n this.__subvalues = list\r\n },\r\n _updateValueIndicator: function() {\r\n var that = this;\r\n that._valueIndicator && that._valueIndicator.value(that.__value, that._noAnimation)\r\n },\r\n _updateSubvalueIndicators: function() {\r\n var that = this;\r\n that._subvalueIndicatorsSet && that._subvalueIndicatorsSet.values(that.__subvalues, that._noAnimation)\r\n },\r\n value: function(arg) {\r\n if (void 0 !== arg) {\r\n this._changeValue(arg);\r\n return this\r\n }\r\n return this.__value\r\n },\r\n subvalues: function(arg) {\r\n if (void 0 !== arg) {\r\n this._changeSubvalues(arg);\r\n return this\r\n }\r\n return null !== this.__subvalues ? this.__subvalues.slice() : void 0\r\n },\r\n _changeValue: function(value) {\r\n var that = this;\r\n that._setupValue(value);\r\n that._beginValueChanging();\r\n that._updateValueIndicator();\r\n if (that.__value !== that.option(OPTION_VALUE)) {\r\n that.option(OPTION_VALUE, that.__value)\r\n }\r\n that._endValueChanging()\r\n },\r\n _changeSubvalues: function(subvalues) {\r\n var that = this;\r\n if (null !== that.__subvalues) {\r\n that._setupSubvalues(subvalues);\r\n that._beginValueChanging();\r\n that._updateSubvalueIndicators();\r\n that._endValueChanging()\r\n } else {\r\n that.__subvalues = parseArrayOfNumbers(subvalues);\r\n that._setContentSize();\r\n that._renderContent()\r\n }\r\n if (!(0, _base_gauge.compareArrays)(that.__subvalues, that.option(OPTION_SUBVALUES))) {\r\n that.option(OPTION_SUBVALUES, that.__subvalues)\r\n }\r\n },\r\n _optionChangesMap: {\r\n scale: \"DOMAIN\",\r\n rangeContainer: \"MOSTLY_TOTAL\",\r\n valueIndicator: \"MOSTLY_TOTAL\",\r\n subvalueIndicator: \"MOSTLY_TOTAL\",\r\n containerBackgroundColor: \"MOSTLY_TOTAL\",\r\n value: \"VALUE\",\r\n subvalues: \"SUBVALUES\",\r\n valueIndicators: \"MOSTLY_TOTAL\"\r\n },\r\n _customChangesOrder: [\"VALUE\", \"SUBVALUES\"],\r\n _change_VALUE: function() {\r\n this._changeValue(this.option(OPTION_VALUE))\r\n },\r\n _change_SUBVALUES: function() {\r\n this._changeSubvalues(this.option(OPTION_SUBVALUES))\r\n },\r\n _applyMainLayout: null,\r\n _getElementLayout: null,\r\n _createIndicator: function(type, owner, className, trackerType, trackerIndex, _strict) {\r\n var that = this;\r\n var indicator = that._factory.createIndicator({\r\n renderer: that._renderer,\r\n translator: that._translator,\r\n owner: owner,\r\n tracker: that._tracker,\r\n className: className\r\n }, type, _strict);\r\n if (indicator) {\r\n indicator.type = type;\r\n indicator._trackerInfo = {\r\n type: trackerType,\r\n index: trackerIndex\r\n }\r\n }\r\n return indicator\r\n },\r\n _getApproximateScreenRange: null\r\n});\r\nexports.dxGauge = dxGauge;\r\n\r\nfunction valueGetter(arg) {\r\n return arg ? arg.value : null\r\n}\r\n\r\nfunction setupValues(that, fieldName, optionItems) {\r\n var currentValues = that[fieldName];\r\n var newValues = _isArray(optionItems) ? (0, _utils.map)(optionItems, valueGetter) : [];\r\n var i = 0;\r\n var ii = newValues.length;\r\n var list = [];\r\n for (; i < ii; ++i) {\r\n list.push(processValue(newValues[i], currentValues[i]))\r\n }\r\n that[fieldName] = list\r\n}\r\n\r\nfunction selectMode(gauge) {\r\n if (void 0 === gauge.option(OPTION_VALUE) && void 0 === gauge.option(OPTION_SUBVALUES)) {\r\n if (void 0 !== gauge.option(\"valueIndicators\")) {\r\n disableDefaultMode(gauge);\r\n selectHardMode(gauge)\r\n }\r\n }\r\n}\r\n\r\nfunction disableDefaultMode(that) {\r\n that.value = that.subvalues = _common.noop;\r\n that._setupValue = that._setupSubvalues = that._updateValueIndicator = that._updateSubvalueIndicators = null\r\n}\r\n\r\nfunction selectHardMode(that) {\r\n that._indicatorValues = [];\r\n setupValues(that, \"_indicatorValues\", that.option(\"valueIndicators\"));\r\n that._valueIndicators = [];\r\n var _applyMostlyTotalChange = that._applyMostlyTotalChange;\r\n that._applyMostlyTotalChange = function() {\r\n setupValues(this, \"_indicatorValues\", this.option(\"valueIndicators\"));\r\n _applyMostlyTotalChange.call(this)\r\n };\r\n that._updateActiveElements = updateActiveElements_hardMode;\r\n that._prepareValueIndicators = prepareValueIndicators_hardMode;\r\n that._disposeValueIndicators = disposeValueIndicators_hardMode;\r\n that._cleanValueIndicators = cleanValueIndicators_hardMode;\r\n that.indicatorValue = indicatorValue_hardMode\r\n}\r\n\r\nfunction updateActiveElements_hardMode() {\r\n var that = this;\r\n _each(that._valueIndicators, function(_, valueIndicator) {\r\n valueIndicator.value(that._indicatorValues[valueIndicator.index], that._noAnimation)\r\n })\r\n}\r\n\r\nfunction prepareValueIndicators_hardMode() {\r\n var that = this;\r\n var valueIndicators = that._valueIndicators || [];\r\n var userOptions = that.option(\"valueIndicators\");\r\n var optionList = [];\r\n var i = 0;\r\n var ii;\r\n for (ii = _isArray(userOptions) ? userOptions.length : 0; i < ii; ++i) {\r\n optionList.push(userOptions[i])\r\n }\r\n for (ii = valueIndicators.length; i < ii; ++i) {\r\n optionList.push(null)\r\n }\r\n var newValueIndicators = [];\r\n _each(optionList, function(i, userSettings) {\r\n var valueIndicator = valueIndicators[i];\r\n if (!userSettings) {\r\n valueIndicator && valueIndicator.dispose();\r\n return\r\n }\r\n var settings = that._prepareIndicatorSettings(userSettings, \"valueIndicatorType\");\r\n if (valueIndicator && valueIndicator.type !== settings.type) {\r\n valueIndicator.dispose();\r\n valueIndicator = null\r\n }\r\n if (!valueIndicator) {\r\n valueIndicator = that._createIndicator(settings.type, that._renderer.root, \"dxg-value-indicator\", \"value-indicator\", i, true)\r\n }\r\n if (valueIndicator) {\r\n valueIndicator.index = i;\r\n valueIndicator.render(settings);\r\n newValueIndicators.push(valueIndicator)\r\n }\r\n });\r\n that._valueIndicators = newValueIndicators;\r\n return that._valueIndicators\r\n}\r\n\r\nfunction disposeValueIndicators_hardMode() {\r\n _each(this._valueIndicators, function(_, valueIndicator) {\r\n valueIndicator.dispose()\r\n });\r\n this._valueIndicators = null\r\n}\r\n\r\nfunction cleanValueIndicators_hardMode() {\r\n _each(this._valueIndicators, function(_, valueIndicator) {\r\n valueIndicator.clean()\r\n })\r\n}\r\n\r\nfunction indicatorValue_hardMode(index, value) {\r\n return accessPointerValue(this, this._valueIndicators, this._indicatorValues, index, value)\r\n}\r\n\r\nfunction accessPointerValue(that, pointers, values, index, value) {\r\n if (void 0 !== value) {\r\n if (void 0 !== values[index]) {\r\n values[index] = processValue(value, values[index]);\r\n pointers[index] && pointers[index].value(values[index])\r\n }\r\n return that\r\n } else {\r\n return values[index]\r\n }\r\n}\r\n\r\nfunction ValueIndicatorsSet(parameters) {\r\n this._parameters = parameters;\r\n this._indicators = []\r\n}\r\nValueIndicatorsSet.prototype = {\r\n constructor: ValueIndicatorsSet,\r\n dispose: function() {\r\n var that = this;\r\n _each(that._indicators, function(_, indicator) {\r\n indicator.dispose()\r\n });\r\n that._parameters = that._options = that._indicators = that._colorPalette = that._palette = null;\r\n return that\r\n },\r\n clean: function() {\r\n var that = this;\r\n that._sample && that._sample.clean().dispose();\r\n _each(that._indicators, function(_, indicator) {\r\n indicator.clean()\r\n });\r\n that._sample = that._options = that._palette = null;\r\n return that\r\n },\r\n render: function(options, isRecreate) {\r\n var that = this;\r\n that._options = options;\r\n that._sample = that._parameters.createIndicator(that.type);\r\n that._sample.render(options);\r\n that.enabled = that._sample.enabled;\r\n that._palette = (0, _type.isDefined)(options.palette) ? that._parameters.createPalette(options.palette) : null;\r\n if (that.enabled) {\r\n that._generatePalette(that._indicators.length);\r\n that._indicators = (0, _utils.map)(that._indicators, function(indicator, i) {\r\n if (isRecreate) {\r\n indicator.dispose();\r\n indicator = that._parameters.createIndicator(that.type, i)\r\n }\r\n indicator.render(that._getIndicatorOptions(i));\r\n return indicator\r\n })\r\n }\r\n return that\r\n },\r\n getOffset: function() {\r\n return this._sample.getOffset()\r\n },\r\n resize: function(layout) {\r\n var that = this;\r\n that._layout = layout;\r\n _each(that._indicators, function(_, indicator) {\r\n indicator.resize(layout)\r\n });\r\n return that\r\n },\r\n measure: function(layout) {\r\n return this._sample.measure(layout)\r\n },\r\n _getIndicatorOptions: function(index) {\r\n var result = this._options;\r\n if (this._colorPalette) {\r\n result = _extend({}, result, {\r\n color: this._colorPalette[index]\r\n })\r\n }\r\n return result\r\n },\r\n _generatePalette: function(count) {\r\n var that = this;\r\n var colors = null;\r\n if (that._palette) {\r\n that._palette.reset();\r\n colors = that._palette.generateColors(count, {\r\n repeat: true\r\n })\r\n }\r\n that._colorPalette = colors\r\n },\r\n _adjustIndicatorsCount: function(count) {\r\n var that = this;\r\n var indicators = that._indicators;\r\n var i;\r\n var ii;\r\n var indicator;\r\n var indicatorsLen = indicators.length;\r\n if (indicatorsLen > count) {\r\n for (i = count, ii = indicatorsLen; i < ii; ++i) {\r\n indicators[i].clean().dispose()\r\n }\r\n that._indicators = indicators.slice(0, count);\r\n that._generatePalette(indicators.length)\r\n } else {\r\n if (indicatorsLen < count) {\r\n that._generatePalette(count);\r\n for (i = indicatorsLen, ii = count; i < ii; ++i) {\r\n indicator = that._parameters.createIndicator(that.type, i);\r\n indicator.render(that._getIndicatorOptions(i)).resize(that._layout);\r\n indicators.push(indicator)\r\n }\r\n }\r\n }\r\n },\r\n values: function(arg, _noAnimation) {\r\n var that = this;\r\n if (!that.enabled) {\r\n return\r\n }\r\n if (void 0 !== arg) {\r\n if (!_isArray(arg)) {\r\n arg = _isFinite(arg) ? [Number(arg)] : null\r\n }\r\n if (arg) {\r\n that._adjustIndicatorsCount(arg.length);\r\n _each(that._indicators, function(i, indicator) {\r\n indicator.value(arg[i], _noAnimation)\r\n })\r\n }\r\n return that\r\n }\r\n return (0, _utils.map)(that._indicators, function(indicator) {\r\n return indicator.value()\r\n })\r\n }\r\n};\r\n\r\nfunction createIndicatorCreator(indicators) {\r\n return function(parameters, type, _strict) {\r\n var indicatorType = indicators[(0, _utils.normalizeEnum)(type)] || !_strict && indicators._default;\r\n return indicatorType ? new indicatorType(parameters) : null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (viz/gauges/base_range_container.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 _iterator = require(\"../../core/utils/iterator\");\r\nvar _base_indicators = require(\"./base_indicators\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _Number = Number;\r\nvar _isArray = Array.isArray;\r\nvar _isFinite = isFinite;\r\nvar BaseRangeContainer = _base_indicators.BaseElement.inherit({\r\n _init: function() {\r\n this._root = this._renderer.g().attr({\r\n \"class\": \"dxg-range-container\"\r\n }).linkOn(this._container, \"range-container\")\r\n },\r\n _dispose: function() {\r\n this._root.linkOff()\r\n },\r\n clean: function() {\r\n this._root.linkRemove().clear();\r\n this._options = this.enabled = null;\r\n return this\r\n },\r\n _getRanges: function() {\r\n var that = this;\r\n var options = that._options;\r\n var translator = that._translator;\r\n var totalStart = translator.getDomain()[0];\r\n var totalEnd = translator.getDomain()[1];\r\n var totalDelta = totalEnd - totalStart;\r\n var isValidSegment = totalDelta >= 0 ? isValidSegmentAsc : isValidSegmentDesc;\r\n var subtractSegment = totalDelta >= 0 ? subtractSegmentAsc : subtractSegmentDesc;\r\n var list = [];\r\n var ranges = [];\r\n var backgroundRanges = [{\r\n start: totalStart,\r\n end: totalEnd\r\n }];\r\n var backgroundColor = (0, _type.isString)(options.backgroundColor) ? options.backgroundColor : \"none\";\r\n var width = options.width || {};\r\n var startWidth = _Number(width > 0 ? width : width.start);\r\n var endWidth = _Number(width > 0 ? width : width.end);\r\n var deltaWidth = endWidth - startWidth;\r\n if (void 0 !== options.ranges && !_isArray(options.ranges)) {\r\n return null\r\n }\r\n if (!(startWidth >= 0 && endWidth >= 0 && startWidth + endWidth > 0)) {\r\n return null\r\n }\r\n list = (_isArray(options.ranges) ? options.ranges : []).reduce(function(result, rangeOptions, i) {\r\n rangeOptions = rangeOptions || {};\r\n var start = translator.adjust(rangeOptions.startValue);\r\n var end = translator.adjust(rangeOptions.endValue);\r\n if (_isFinite(start) && _isFinite(end) && isValidSegment(start, end, rangeOptions)) {\r\n result.push({\r\n start: start,\r\n end: end,\r\n color: rangeOptions.color,\r\n classIndex: i\r\n })\r\n }\r\n return result\r\n }, []);\r\n var palette = that._themeManager.createPalette(options.palette, {\r\n type: \"indicatingSet\",\r\n extensionMode: options.paletteExtensionMode,\r\n keepLastColorInEnd: true,\r\n count: list.length\r\n });\r\n (0, _iterator.each)(list, function(_, item) {\r\n var paletteColor = palette.getNextColor();\r\n item.color = (0, _type.isString)(item.color) && item.color || paletteColor || \"none\";\r\n item.className = \"dxg-range dxg-range-\" + item.classIndex;\r\n delete item.classIndex\r\n });\r\n (0, _iterator.each)(list, function(_, item) {\r\n var i;\r\n var ii;\r\n var sub;\r\n var subs;\r\n var range;\r\n var newRanges = [];\r\n var newBackgroundRanges = [];\r\n for (i = 0, ii = ranges.length; i < ii; ++i) {\r\n range = ranges[i];\r\n subs = subtractSegment(range.start, range.end, item.start, item.end);\r\n (sub = subs[0]) && (sub.color = range.color) && (sub.className = range.className) && newRanges.push(sub);\r\n (sub = subs[1]) && (sub.color = range.color) && (sub.className = range.className) && newRanges.push(sub)\r\n }\r\n newRanges.push(item);\r\n ranges = newRanges;\r\n for (i = 0, ii = backgroundRanges.length; i < ii; ++i) {\r\n range = backgroundRanges[i];\r\n subs = subtractSegment(range.start, range.end, item.start, item.end);\r\n (sub = subs[0]) && newBackgroundRanges.push(sub);\r\n (sub = subs[1]) && newBackgroundRanges.push(sub)\r\n }\r\n backgroundRanges = newBackgroundRanges\r\n });\r\n (0, _iterator.each)(backgroundRanges, function(_, range) {\r\n range.color = backgroundColor;\r\n range.className = \"dxg-range dxg-background-range\";\r\n ranges.push(range)\r\n });\r\n (0, _iterator.each)(ranges, function(_, range) {\r\n range.startWidth = (range.start - totalStart) / totalDelta * deltaWidth + startWidth;\r\n range.endWidth = (range.end - totalStart) / totalDelta * deltaWidth + startWidth\r\n });\r\n return ranges\r\n },\r\n render: function(options) {\r\n var that = this;\r\n that._options = options;\r\n that._processOptions();\r\n that._ranges = that._getRanges();\r\n if (that._ranges) {\r\n that.enabled = true;\r\n that._root.linkAppend()\r\n }\r\n return that\r\n },\r\n resize: function(layout) {\r\n var that = this;\r\n that._root.clear();\r\n if (that._isVisible(layout)) {\r\n (0, _iterator.each)(that._ranges, function(_, range) {\r\n that._createRange(range, layout).attr({\r\n fill: range.color,\r\n \"class\": range.className\r\n }).append(that._root)\r\n })\r\n }\r\n return that\r\n },\r\n _processOptions: null,\r\n _isVisible: null,\r\n _createRange: null,\r\n getColorForValue: function(value) {\r\n var color = null;\r\n (0, _iterator.each)(this._ranges, function(_, range) {\r\n if (range.start <= value && value <= range.end || range.start >= value && value >= range.end) {\r\n color = range.color;\r\n return false\r\n }\r\n });\r\n return color\r\n }\r\n});\r\n\r\nfunction subtractSegmentAsc(segmentStart, segmentEnd, otherStart, otherEnd) {\r\n var result;\r\n if (otherStart > segmentStart && otherEnd < segmentEnd) {\r\n result = [{\r\n start: segmentStart,\r\n end: otherStart\r\n }, {\r\n start: otherEnd,\r\n end: segmentEnd\r\n }]\r\n } else {\r\n if (otherStart >= segmentEnd || otherEnd <= segmentStart) {\r\n result = [{\r\n start: segmentStart,\r\n end: segmentEnd\r\n }]\r\n } else {\r\n if (otherStart <= segmentStart && otherEnd >= segmentEnd) {\r\n result = []\r\n } else {\r\n if (otherStart > segmentStart) {\r\n result = [{\r\n start: segmentStart,\r\n end: otherStart\r\n }]\r\n } else {\r\n if (otherEnd < segmentEnd) {\r\n result = [{\r\n start: otherEnd,\r\n end: segmentEnd\r\n }]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction subtractSegmentDesc(segmentStart, segmentEnd, otherStart, otherEnd) {\r\n var result;\r\n if (otherStart < segmentStart && otherEnd > segmentEnd) {\r\n result = [{\r\n start: segmentStart,\r\n end: otherStart\r\n }, {\r\n start: otherEnd,\r\n end: segmentEnd\r\n }]\r\n } else {\r\n if (otherStart <= segmentEnd || otherEnd >= segmentStart) {\r\n result = [{\r\n start: segmentStart,\r\n end: segmentEnd\r\n }]\r\n } else {\r\n if (otherStart >= segmentStart && otherEnd <= segmentEnd) {\r\n result = []\r\n } else {\r\n if (otherStart < segmentStart) {\r\n result = [{\r\n start: segmentStart,\r\n end: otherStart\r\n }]\r\n } else {\r\n if (otherEnd > segmentEnd) {\r\n result = [{\r\n start: otherEnd,\r\n end: segmentEnd\r\n }]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction areEqualValues(start, end, _ref) {\r\n var startValue = _ref.startValue,\r\n endValue = _ref.endValue;\r\n return endValue === startValue && startValue === start && end === start\r\n}\r\n\r\nfunction isValidSegmentAsc(start, end, options) {\r\n return end - start > 0 || areEqualValues(start, end, options)\r\n}\r\n\r\nfunction isValidSegmentDesc(start, end, options) {\r\n return start - end > 0 || areEqualValues(start, end, options)\r\n}\r\nvar _default = BaseRangeContainer;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/funnel/funnel.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\nvar _tiling2 = _interopRequireDefault(require(\"./tiling.funnel\"));\r\nvar _tiling3 = _interopRequireDefault(require(\"./tiling.pyramid\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _base_widget = _interopRequireDefault(require(\"../core/base_widget\"));\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _item = _interopRequireDefault(require(\"./item\"));\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 NODES_CREATE_CHANGE = \"NODES_CREATE\";\r\n(0, _tiling.addAlgorithm)(\"dynamicslope\", _tiling2.default, true);\r\n(0, _tiling.addAlgorithm)(\"dynamicheight\", _tiling3.default);\r\n\r\nfunction invertFigure(figure) {\r\n return figure.map(function(coord, index) {\r\n return index % 2 ? 1 - coord : coord\r\n })\r\n}\r\n\r\nfunction getLegendItemState(itemState) {\r\n return {\r\n fill: itemState.fill,\r\n hatching: itemState.hatching\r\n }\r\n}\r\nvar dxFunnel = _base_widget.default.inherit({\r\n _rootClass: \"dxf-funnel\",\r\n _rootClassPrefix: \"dxf\",\r\n _proxyData: [],\r\n _optionChangesMap: {\r\n dataSource: \"DATA_SOURCE\",\r\n neckWidth: NODES_CREATE_CHANGE,\r\n neckHeight: NODES_CREATE_CHANGE,\r\n inverted: NODES_CREATE_CHANGE,\r\n algorithm: NODES_CREATE_CHANGE,\r\n item: NODES_CREATE_CHANGE,\r\n valueField: NODES_CREATE_CHANGE,\r\n argumentField: NODES_CREATE_CHANGE,\r\n colorField: NODES_CREATE_CHANGE,\r\n palette: NODES_CREATE_CHANGE,\r\n paletteExtensionMode: NODES_CREATE_CHANGE,\r\n sortData: NODES_CREATE_CHANGE\r\n },\r\n _themeDependentChanges: [NODES_CREATE_CHANGE],\r\n _getDefaultSize: function() {\r\n return {\r\n width: 400,\r\n height: 400\r\n }\r\n },\r\n _themeSection: \"funnel\",\r\n _fontFields: [\"legend.title.font\", \"legend.title.subtitle.font\", \"legend.font\"],\r\n _optionChangesOrder: [\"DATA_SOURCE\"],\r\n _initialChanges: [\"DATA_SOURCE\"],\r\n _initCore: function() {\r\n this._group = this._renderer.g().append(this._renderer.root);\r\n this._items = []\r\n },\r\n _eventsMap: {\r\n onHoverChanged: {\r\n name: \"hoverChanged\"\r\n },\r\n onSelectionChanged: {\r\n name: \"selectionChanged\"\r\n }\r\n },\r\n _disposeCore: _common.noop,\r\n _applySize: function(rect) {\r\n this._rect = rect.slice();\r\n this._change([\"TILING\"]);\r\n return this._rect\r\n },\r\n _getAlignmentRect: function() {\r\n return this._rect\r\n },\r\n _change_TILING: function() {\r\n var that = this;\r\n var items = that._items;\r\n var rect = that._rect;\r\n var convertCoord = function(coord, index) {\r\n var offset = index % 2;\r\n return rect[0 + offset] + (rect[2 + offset] - rect[0 + offset]) * coord\r\n };\r\n this._group.clear();\r\n items.forEach(function(item, index) {\r\n var coords = item.figure.map(convertCoord);\r\n var element = that._renderer.path([], \"area\").attr({\r\n points: coords\r\n }).append(that._group);\r\n item.coords = coords;\r\n item.element = element\r\n });\r\n this._requestChange([\"TILES\"])\r\n },\r\n _customChangesOrder: [NODES_CREATE_CHANGE, \"LAYOUT\", \"TILING\", \"TILES\", \"DRAWN\"],\r\n _dataSourceChangedHandler: function() {\r\n this._requestChange([NODES_CREATE_CHANGE])\r\n },\r\n _change_DRAWN: function() {\r\n this._drawn()\r\n },\r\n _change_DATA_SOURCE: function() {\r\n this._change([\"DRAWN\"]);\r\n this._updateDataSource()\r\n },\r\n _change_NODES_CREATE: function() {\r\n this._buildNodes()\r\n },\r\n _change_TILES: function() {\r\n this._applyTilesAppearance()\r\n },\r\n _suspend: function() {\r\n if (!this._applyingChanges) {\r\n this._suspendChanges()\r\n }\r\n },\r\n _resume: function() {\r\n if (!this._applyingChanges) {\r\n this._resumeChanges()\r\n }\r\n },\r\n _applyTilesAppearance: function() {\r\n this._items.forEach(function(item) {\r\n var state = item.getState();\r\n item.element.smartAttr(item.states[state])\r\n })\r\n },\r\n _hitTestTargets: function(x, y) {\r\n var that = this;\r\n var data;\r\n this._proxyData.some(function(callback) {\r\n data = callback.call(that, x, y);\r\n if (data) {\r\n return true\r\n }\r\n });\r\n return data\r\n },\r\n clearHover: function() {\r\n this._suspend();\r\n this._items.forEach(function(item) {\r\n item.isHovered() && item.hover(false)\r\n });\r\n this._resume()\r\n },\r\n clearSelection: function() {\r\n this._suspend();\r\n this._items.forEach(function(item) {\r\n item.isSelected() && item.select(false)\r\n });\r\n this._resume()\r\n },\r\n _getData: function() {\r\n var that = this;\r\n var data = that._dataSourceItems() || [];\r\n var valueField = that._getOption(\"valueField\", true);\r\n var argumentField = that._getOption(\"argumentField\", true);\r\n var colorField = that._getOption(\"colorField\", true);\r\n var processedData = data.reduce(function(d, item) {\r\n var value = Number(item[valueField]);\r\n if (value >= 0) {\r\n d[0].push({\r\n value: value,\r\n color: item[colorField],\r\n argument: item[argumentField],\r\n dataItem: item\r\n });\r\n d[1] += value\r\n }\r\n return d\r\n }, [\r\n [], 0\r\n ]);\r\n var items = processedData[0];\r\n if (data.length > 0 && 0 === items.length) {\r\n that._incidentOccurred(\"E2005\", valueField)\r\n }\r\n if (!processedData[1]) {\r\n return []\r\n }\r\n if (that._getOption(\"sortData\", true)) {\r\n items.sort(function(a, b) {\r\n return b.value - a.value\r\n })\r\n }\r\n return items\r\n },\r\n _buildNodes: function() {\r\n var that = this;\r\n var data = that._getData();\r\n var algorithm = (0, _tiling.getAlgorithm)(that._getOption(\"algorithm\", true));\r\n var percents = algorithm.normalizeValues(data);\r\n var itemOptions = that._getOption(\"item\");\r\n var figures = algorithm.getFigures(percents, that._getOption(\"neckWidth\", true), that._getOption(\"neckHeight\", true));\r\n var palette = that._themeManager.createPalette(that._getOption(\"palette\", true), {\r\n useHighlight: true,\r\n extensionMode: that._getOption(\"paletteExtensionMode\", true),\r\n count: figures.length\r\n });\r\n that._items = figures.map(function(figure, index) {\r\n var curData = data[index];\r\n var node = new _item.default(that, {\r\n figure: figure,\r\n data: curData,\r\n percent: percents[index],\r\n id: index,\r\n color: curData.color || palette.getNextColor(),\r\n itemOptions: itemOptions\r\n });\r\n return node\r\n });\r\n if (that._getOption(\"inverted\", true)) {\r\n that._items.forEach(function(item) {\r\n item.figure = invertFigure(item.figure)\r\n })\r\n }\r\n that._renderer.initHatching();\r\n that._change([\"TILING\", \"DRAWN\"])\r\n },\r\n _showTooltip: _common.noop,\r\n hideTooltip: _common.noop,\r\n getAllItems: function() {\r\n return this._items.slice()\r\n },\r\n _getLegendData: function() {\r\n return this._items.map(function(item) {\r\n var states = item.states;\r\n return {\r\n id: item.id,\r\n visible: true,\r\n text: item.argument,\r\n item: item,\r\n states: {\r\n normal: getLegendItemState(states.normal),\r\n hover: getLegendItemState(states.hover),\r\n selection: getLegendItemState(states.selection)\r\n }\r\n }\r\n })\r\n },\r\n _getMinSize: function() {\r\n var adaptiveLayout = this._getOption(\"adaptiveLayout\");\r\n return [adaptiveLayout.width, adaptiveLayout.height]\r\n }\r\n});\r\n(0, _component_registrator.default)(\"dxFunnel\", dxFunnel);\r\nvar _default = dxFunnel;\r\nexports.default = _default;\r\ndxFunnel.addPlugin(_data_source.plugin);\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/gauges/bar_gauge.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.dxBarGauge = void 0;\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _object = require(\"../../core/utils/object\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _extend2 = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _base_gauge = require(\"./base_gauge\");\r\nvar _circular_gauge = _interopRequireDefault(require(\"./circular_gauge\"));\r\nvar _legend = require(\"../components/legend\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar PI_DIV_180 = Math.PI / 180;\r\nvar _abs = Math.abs;\r\nvar _round = Math.round;\r\nvar _floor = Math.floor;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _getSampleText = _base_gauge.getSampleText;\r\nvar _formatValue = _base_gauge.formatValue;\r\nvar _compareArrays = _base_gauge.compareArrays;\r\nvar _isArray = Array.isArray;\r\nvar _convertAngleToRendererSpace = _utils.convertAngleToRendererSpace;\r\nvar _getCosAndSin = _utils.getCosAndSin;\r\nvar _patchFontOptions = _utils.patchFontOptions;\r\nvar _Number = Number;\r\nvar _isFinite = isFinite;\r\nvar _noop = _common.noop;\r\nvar _extend = _extend2.extend;\r\nvar OPTION_VALUES = \"values\";\r\nvar BarWrapper;\r\nvar dxBarGauge = _base_gauge.dxBaseGauge.inherit({\r\n _rootClass: \"dxbg-bar-gauge\",\r\n _themeSection: \"barGauge\",\r\n _fontFields: [\"label.font\", \"legend.font\", \"legend.title.font\", \"legend.title.subtitle.font\"],\r\n _initCore: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n that._barsGroup = that._renderer.g().attr({\r\n \"class\": \"dxbg-bars\"\r\n }).linkOn(that._renderer.root, \"bars\");\r\n that._values = [];\r\n that._context = {\r\n renderer: that._renderer,\r\n translator: that._translator,\r\n tracker: that._tracker,\r\n group: that._barsGroup\r\n };\r\n that._animateStep = function(pos) {\r\n var bars = that._bars;\r\n var i;\r\n var ii;\r\n for (i = 0, ii = bars.length; i < ii; ++i) {\r\n bars[i].animate(pos)\r\n }\r\n };\r\n that._animateComplete = function() {\r\n that._bars.forEach(function(bar) {\r\n return bar.endAnimation()\r\n });\r\n that._checkOverlap()\r\n }\r\n },\r\n _disposeCore: function() {\r\n var that = this;\r\n that._barsGroup.linkOff();\r\n that._barsGroup = that._values = that._context = that._animateStep = that._animateComplete = null;\r\n that.callBase.apply(that, arguments)\r\n },\r\n _setupDomainCore: function() {\r\n var that = this;\r\n var startValue = that.option(\"startValue\");\r\n var endValue = that.option(\"endValue\");\r\n _isFinite(startValue) || (startValue = 0);\r\n _isFinite(endValue) || (endValue = 100);\r\n that._translator.setDomain(startValue, endValue);\r\n that._baseValue = that._translator.adjust(that.option(\"baseValue\"));\r\n _isFinite(that._baseValue) || (that._baseValue = startValue < endValue ? startValue : endValue)\r\n },\r\n _getDefaultSize: function() {\r\n return {\r\n width: 300,\r\n height: 300\r\n }\r\n },\r\n _setupCodomain: _circular_gauge.default.prototype._setupCodomain,\r\n _getApproximateScreenRange: function() {\r\n var that = this;\r\n var sides = that._area.sides;\r\n var width = that._canvas.width / (sides.right - sides.left);\r\n var height = that._canvas.height / (sides.down - sides.up);\r\n var r = width < height ? width : height;\r\n return -that._translator.getCodomainRange() * r * PI_DIV_180\r\n },\r\n _setupAnimationSettings: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n if (that._animationSettings) {\r\n that._animationSettings.step = that._animateStep;\r\n that._animationSettings.complete = that._animateComplete\r\n }\r\n },\r\n _cleanContent: function() {\r\n var that = this;\r\n that._barsGroup.linkRemove();\r\n that._animationSettings && that._barsGroup.stopAnimation();\r\n that._barsGroup.clear()\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n var labelOptions = that.option(\"label\");\r\n var text;\r\n var bBox;\r\n var context = that._context;\r\n that._barsGroup.linkAppend();\r\n context.textEnabled = void 0 === labelOptions || labelOptions && (!(\"visible\" in labelOptions) || labelOptions.visible);\r\n if (context.textEnabled) {\r\n context.textColor = labelOptions && labelOptions.font && labelOptions.font.color || null;\r\n labelOptions = _extend(true, {}, that._themeManager.theme().label, labelOptions);\r\n context.formatOptions = {\r\n format: void 0 !== labelOptions.format ? labelOptions.format : that._defaultFormatOptions,\r\n customizeText: labelOptions.customizeText\r\n };\r\n context.textOptions = {\r\n align: \"center\"\r\n };\r\n context.fontStyles = _patchFontOptions(_extend({}, that._themeManager.theme().label.font, labelOptions.font, {\r\n color: null\r\n }));\r\n that._textIndent = labelOptions.indent > 0 ? _Number(labelOptions.indent) : 0;\r\n context.lineWidth = labelOptions.connectorWidth > 0 ? _Number(labelOptions.connectorWidth) : 0;\r\n context.lineColor = labelOptions.connectorColor || null;\r\n text = that._renderer.text(_getSampleText(that._translator, context.formatOptions), 0, 0).attr(context.textOptions).css(context.fontStyles).append(that._barsGroup);\r\n bBox = text.getBBox();\r\n text.remove();\r\n context.textY = bBox.y;\r\n context.textWidth = bBox.width;\r\n context.textHeight = bBox.height\r\n }\r\n _circular_gauge.default.prototype._applyMainLayout.call(that);\r\n that._renderBars()\r\n },\r\n _measureMainElements: function() {\r\n var result = {\r\n maxRadius: this._area.radius\r\n };\r\n if (this._context.textEnabled) {\r\n result.horizontalMargin = this._context.textWidth;\r\n result.verticalMargin = this._context.textHeight;\r\n result.inverseHorizontalMargin = this._context.textWidth / 2;\r\n result.inverseVerticalMargin = this._context.textHeight / 2\r\n }\r\n return result\r\n },\r\n _renderBars: function() {\r\n var that = this;\r\n var options = _extend({}, that._themeManager.theme(), that.option());\r\n var radius;\r\n var area = that._area;\r\n var relativeInnerRadius = options.relativeInnerRadius > 0 && options.relativeInnerRadius < 1 ? _Number(options.relativeInnerRadius) : .1;\r\n radius = area.radius;\r\n if (that._context.textEnabled) {\r\n that._textIndent = _round(_min(that._textIndent, radius / 2));\r\n radius -= that._textIndent\r\n }\r\n that._outerRadius = _floor(radius);\r\n that._innerRadius = _floor(radius * relativeInnerRadius);\r\n that._barSpacing = options.barSpacing > 0 ? _Number(options.barSpacing) : 0;\r\n _extend(that._context, {\r\n backgroundColor: options.backgroundColor,\r\n x: area.x,\r\n y: area.y,\r\n startAngle: area.startCoord,\r\n endAngle: area.endCoord,\r\n baseAngle: that._translator.translate(that._baseValue)\r\n });\r\n that._arrangeBars()\r\n },\r\n _arrangeBars: function() {\r\n var that = this;\r\n var radius = that._outerRadius - that._innerRadius;\r\n var context = that._context;\r\n var i;\r\n var count = that._bars.length;\r\n that._beginValueChanging();\r\n context.barSize = count > 0 ? _max((radius - (count - 1) * that._barSpacing) / count, 1) : 0;\r\n var spacing = count > 1 ? _max(_min((radius - count * context.barSize) / (count - 1), that._barSpacing), 0) : 0;\r\n var _count = _min(_floor((radius + spacing) / context.barSize), count);\r\n that._setBarsCount(count);\r\n radius = that._outerRadius;\r\n context.textRadius = radius;\r\n context.textIndent = that._textIndent;\r\n that._palette.reset();\r\n var unitOffset = context.barSize + spacing;\r\n var colors = that._palette.generateColors(_count);\r\n for (i = 0; i < _count; ++i, radius -= unitOffset) {\r\n that._bars[i].arrange({\r\n radius: radius,\r\n color: colors[i]\r\n })\r\n }\r\n for (var _i = _count; _i < count; _i++) {\r\n that._bars[_i].hide()\r\n }\r\n if (that._animationSettings && !that._noAnimation) {\r\n that._animateBars()\r\n } else {\r\n that._updateBars()\r\n }\r\n that._endValueChanging()\r\n },\r\n _setBarsCount: function() {\r\n var that = this;\r\n if (that._bars.length > 0) {\r\n if (that._dummyBackground) {\r\n that._dummyBackground.dispose();\r\n that._dummyBackground = null\r\n }\r\n } else {\r\n if (!that._dummyBackground) {\r\n that._dummyBackground = that._renderer.arc().attr({\r\n \"stroke-linejoin\": \"round\"\r\n })\r\n }\r\n that._dummyBackground.attr({\r\n x: that._context.x,\r\n y: that._context.y,\r\n outerRadius: that._outerRadius,\r\n innerRadius: that._innerRadius,\r\n startAngle: that._context.endAngle,\r\n endAngle: that._context.startAngle,\r\n fill: that._context.backgroundColor\r\n }).append(that._barsGroup)\r\n }\r\n },\r\n _updateBars: function() {\r\n this._bars.forEach(function(bar) {\r\n return bar.applyValue()\r\n });\r\n this._checkOverlap()\r\n },\r\n _checkOverlap: function() {\r\n var that = this;\r\n var bars = that._bars;\r\n var overlapStrategy = (0, _utils.normalizeEnum)(that._getOption(\"resolveLabelOverlapping\", true));\r\n if (\"none\" === overlapStrategy) {\r\n return\r\n }\r\n var sortedBars = bars.concat().sort(function(a, b) {\r\n return a.getValue() - b.getValue()\r\n });\r\n var currentIndex = 0;\r\n var nextIndex = 1;\r\n while (currentIndex < sortedBars.length && nextIndex < sortedBars.length) {\r\n var current = sortedBars[currentIndex];\r\n var next = sortedBars[nextIndex];\r\n if (current.checkIntersect(next)) {\r\n next.hideLabel();\r\n nextIndex++\r\n } else {\r\n currentIndex = nextIndex;\r\n nextIndex = currentIndex + 1\r\n }\r\n }\r\n },\r\n _animateBars: function() {\r\n var that = this;\r\n var i;\r\n var ii = that._bars.length;\r\n if (ii > 0) {\r\n for (i = 0; i < ii; ++i) {\r\n that._bars[i].beginAnimation()\r\n }\r\n that._barsGroup.animate({\r\n _: 0\r\n }, that._animationSettings)\r\n }\r\n },\r\n _buildNodes: function() {\r\n var that = this;\r\n var options = that._options.silent();\r\n that._palette = that._themeManager.createPalette(options.palette, {\r\n useHighlight: true,\r\n extensionMode: options.paletteExtensionMode\r\n });\r\n that._palette.reset();\r\n that._bars = that._bars || [];\r\n that._animationSettings && that._barsGroup.stopAnimation();\r\n var barValues = that._values.filter(_isFinite);\r\n var count = barValues.length;\r\n if (that._bars.length > count) {\r\n var ii = that._bars.length;\r\n for (var i = count; i < ii; ++i) {\r\n that._bars[i].dispose()\r\n }\r\n that._bars.splice(count, ii - count)\r\n } else {\r\n if (that._bars.length < count) {\r\n for (var _i2 = that._bars.length; _i2 < count; ++_i2) {\r\n that._bars.push(new BarWrapper(_i2, that._context))\r\n }\r\n }\r\n }\r\n that._bars.forEach(function(bar, index) {\r\n bar.update({\r\n color: that._palette.getNextColor(count),\r\n value: barValues[index]\r\n })\r\n })\r\n },\r\n _updateValues: function(values) {\r\n var that = this;\r\n var list = _isArray(values) && values || _isFinite(values) && [values] || [];\r\n var i;\r\n var ii = list.length;\r\n var value;\r\n that._values.length = ii;\r\n for (i = 0; i < ii; ++i) {\r\n value = list[i];\r\n that._values[i] = value = _Number(_isFinite(value) ? value : that._values[i])\r\n }\r\n if (!that._resizing) {\r\n if (!_compareArrays(that._values, that.option(OPTION_VALUES))) {\r\n that.option(OPTION_VALUES, that._values.slice())\r\n }\r\n }\r\n this._change([\"NODES\"])\r\n },\r\n values: function(arg) {\r\n if (void 0 !== arg) {\r\n this._updateValues(arg);\r\n return this\r\n } else {\r\n return this._values.slice(0)\r\n }\r\n },\r\n _optionChangesMap: {\r\n backgroundColor: \"MOSTLY_TOTAL\",\r\n relativeInnerRadius: \"MOSTLY_TOTAL\",\r\n barSpacing: \"MOSTLY_TOTAL\",\r\n label: \"MOSTLY_TOTAL\",\r\n resolveLabelOverlapping: \"MOSTLY_TOTAL\",\r\n palette: \"MOSTLY_TOTAL\",\r\n paletteExtensionMode: \"MOSTLY_TOTAL\",\r\n values: \"VALUES\"\r\n },\r\n _change_VALUES: function() {\r\n this._updateValues(this.option(OPTION_VALUES))\r\n },\r\n _factory: (0, _object.clone)(_base_gauge.dxBaseGauge.prototype._factory),\r\n _optionChangesOrder: [\"VALUES\", \"NODES\"],\r\n _initialChanges: [\"VALUES\"],\r\n _change_NODES: function() {\r\n this._buildNodes()\r\n },\r\n _change_MOSTLY_TOTAL: function() {\r\n this._change([\"NODES\"]);\r\n this.callBase()\r\n },\r\n _proxyData: [],\r\n _getLegendData: function() {\r\n var that = this;\r\n var formatOptions = {};\r\n var options = that._options.silent();\r\n var labelFormatOptions = (options.label || {}).format;\r\n var legendFormatOptions = (options.legend || {}).itemTextFormat;\r\n if (legendFormatOptions) {\r\n formatOptions.format = legendFormatOptions\r\n } else {\r\n formatOptions.format = labelFormatOptions || that._defaultFormatOptions\r\n }\r\n return (this._bars || []).map(function(b) {\r\n return {\r\n id: b.index,\r\n item: {\r\n value: b.getValue(),\r\n color: b.getColor(),\r\n index: b.index\r\n },\r\n text: _formatValue(b.getValue(), formatOptions),\r\n visible: true,\r\n states: {\r\n normal: {\r\n fill: b.getColor()\r\n }\r\n }\r\n }\r\n })\r\n }\r\n});\r\nexports.dxBarGauge = dxBarGauge;\r\nBarWrapper = function(index, context) {\r\n var that = this;\r\n that._context = context;\r\n that._tracker = context.renderer.arc().attr({\r\n \"stroke-linejoin\": \"round\"\r\n });\r\n that.index = index\r\n};\r\n_extend(BarWrapper.prototype, {\r\n dispose: function() {\r\n var that = this;\r\n that._background.dispose();\r\n that._bar.dispose();\r\n if (that._context.textEnabled) {\r\n that._line.dispose();\r\n that._text.dispose()\r\n }\r\n that._context.tracker.detach(that._tracker);\r\n that._context = that._settings = that._background = that._bar = that._line = that._text = that._tracker = null;\r\n return that\r\n },\r\n arrange: function(options) {\r\n var that = this;\r\n var context = that._context;\r\n this._visible = true;\r\n context.tracker.attach(that._tracker, that, {\r\n index: that.index\r\n });\r\n that._background = context.renderer.arc().attr({\r\n \"stroke-linejoin\": \"round\",\r\n fill: context.backgroundColor\r\n }).append(context.group);\r\n that._settings = that._settings || {\r\n x: context.x,\r\n y: context.y,\r\n startAngle: context.baseAngle,\r\n endAngle: context.baseAngle\r\n };\r\n that._bar = context.renderer.arc().attr(_extend({\r\n \"stroke-linejoin\": \"round\"\r\n }, that._settings)).append(context.group);\r\n if (context.textEnabled) {\r\n that._line = context.renderer.path([], \"line\").attr({\r\n \"stroke-width\": context.lineWidth\r\n }).append(context.group);\r\n that._text = context.renderer.text().css(context.fontStyles).attr(context.textOptions).append(context.group)\r\n }\r\n that._angle = isFinite(that._angle) ? that._angle : context.baseAngle;\r\n that._settings.outerRadius = options.radius;\r\n that._settings.innerRadius = options.radius - context.barSize;\r\n that._settings.x = context.x;\r\n that._settings.y = context.y;\r\n that._background.attr(_extend({}, that._settings, {\r\n startAngle: context.endAngle,\r\n endAngle: context.startAngle,\r\n fill: that._context.backgroundColor\r\n }));\r\n that._bar.attr({\r\n x: context.x,\r\n y: context.y,\r\n outerRadius: that._settings.outerRadius,\r\n innerRadius: that._settings.innerRadius,\r\n fill: that._color\r\n });\r\n that._tracker.attr(that._settings);\r\n if (context.textEnabled) {\r\n that._line.attr({\r\n points: [context.x, context.y - that._settings.innerRadius, context.x, context.y - context.textRadius - context.textIndent],\r\n stroke: context.lineColor || that._color\r\n }).sharp();\r\n that._text.css({\r\n fill: context.textColor || that._color\r\n })\r\n }\r\n return that\r\n },\r\n getTooltipParameters: function() {\r\n var that = this;\r\n var cosSin = _getCosAndSin((that._angle + that._context.baseAngle) / 2);\r\n return {\r\n x: _round(that._context.x + (that._settings.outerRadius + that._settings.innerRadius) / 2 * cosSin.cos),\r\n y: _round(that._context.y - (that._settings.outerRadius + that._settings.innerRadius) / 2 * cosSin.sin),\r\n offset: 0,\r\n color: that._color,\r\n value: that._value\r\n }\r\n },\r\n setAngle: function(angle) {\r\n var that = this;\r\n var context = that._context;\r\n var settings = that._settings;\r\n var cosSin;\r\n that._angle = angle;\r\n setAngles(settings, context.baseAngle, angle);\r\n that._bar.attr(settings);\r\n that._tracker.attr(settings);\r\n if (context.textEnabled) {\r\n cosSin = _getCosAndSin(angle);\r\n var indent = context.textIndent;\r\n var radius = context.textRadius + indent;\r\n var x = context.x + radius * cosSin.cos;\r\n var y = context.y - radius * cosSin.sin;\r\n var halfWidth = .5 * context.textWidth;\r\n var textHeight = context.textHeight;\r\n var textY = context.textY;\r\n if (_abs(x - context.x) > indent) {\r\n x += x < context.x ? -halfWidth : halfWidth\r\n }\r\n if (_abs(y - context.y) <= indent) {\r\n y -= textY + .5 * textHeight\r\n } else {\r\n y -= y < context.y ? textY + textHeight : textY\r\n }\r\n var text = _formatValue(that._value, context.formatOptions, {\r\n index: that.index\r\n });\r\n var visibility = \"\" === text ? \"hidden\" : null;\r\n that._text.attr({\r\n text: text,\r\n x: x,\r\n y: y,\r\n visibility: visibility\r\n });\r\n that._line.attr({\r\n visibility: visibility\r\n });\r\n that._line.rotate(_convertAngleToRendererSpace(angle), context.x, context.y)\r\n }\r\n return that\r\n },\r\n hideLabel: function() {\r\n this._text.attr({\r\n visibility: \"hidden\"\r\n });\r\n this._line.attr({\r\n visibility: \"hidden\"\r\n })\r\n },\r\n checkIntersect: function(anotherBar) {\r\n var coords = this.calculateLabelCoords();\r\n var anotherCoords = anotherBar.calculateLabelCoords();\r\n if (!coords || !anotherCoords) {\r\n return false\r\n }\r\n var width = Math.max(0, Math.min(coords.bottomRight.x, anotherCoords.bottomRight.x) - Math.max(coords.topLeft.x, anotherCoords.topLeft.x));\r\n var height = Math.max(0, Math.min(coords.bottomRight.y, anotherCoords.bottomRight.y) - Math.max(coords.topLeft.y, anotherCoords.topLeft.y));\r\n return width * height !== 0\r\n },\r\n calculateLabelCoords: function() {\r\n if (!this._text) {\r\n return\r\n }\r\n var box = this._text.getBBox();\r\n return {\r\n topLeft: {\r\n x: box.x,\r\n y: box.y\r\n },\r\n bottomRight: {\r\n x: box.x + box.width,\r\n y: box.y + box.height\r\n }\r\n }\r\n },\r\n _processValue: function(value) {\r\n return this._context.translator.translate(this._context.translator.adjust(value))\r\n },\r\n applyValue: function() {\r\n if (!this._visible) {\r\n return this\r\n }\r\n return this.setAngle(this._processValue(this.getValue()))\r\n },\r\n update: function(_ref) {\r\n var color = _ref.color,\r\n value = _ref.value;\r\n this._color = color;\r\n this._value = value\r\n },\r\n hide: function() {\r\n this._visible = false\r\n },\r\n getColor: function() {\r\n return this._color\r\n },\r\n getValue: function() {\r\n return this._value\r\n },\r\n beginAnimation: function() {\r\n if (!this._visible) {\r\n return this\r\n }\r\n var that = this;\r\n var angle = this._processValue(this.getValue());\r\n if (!compareFloats(that._angle, angle)) {\r\n that._start = that._angle;\r\n that._delta = angle - that._angle;\r\n that._tracker.attr({\r\n visibility: \"hidden\"\r\n });\r\n if (that._context.textEnabled) {\r\n that._line.attr({\r\n visibility: \"hidden\"\r\n });\r\n that._text.attr({\r\n visibility: \"hidden\"\r\n })\r\n }\r\n } else {\r\n that.animate = _noop;\r\n that.setAngle(that._angle)\r\n }\r\n },\r\n animate: function(pos) {\r\n if (!this._visible) {\r\n return this\r\n }\r\n var that = this;\r\n that._angle = that._start + that._delta * pos;\r\n setAngles(that._settings, that._context.baseAngle, that._angle);\r\n that._bar.attr(that._settings)\r\n },\r\n endAnimation: function() {\r\n var that = this;\r\n if (void 0 !== that._delta) {\r\n if (compareFloats(that._angle, that._start + that._delta)) {\r\n that._tracker.attr({\r\n visibility: null\r\n });\r\n that.setAngle(that._angle)\r\n }\r\n } else {\r\n delete that.animate\r\n }\r\n delete that._start;\r\n delete that._delta\r\n }\r\n});\r\n\r\nfunction setAngles(target, angle1, angle2) {\r\n target.startAngle = angle1 < angle2 ? angle1 : angle2;\r\n target.endAngle = angle1 < angle2 ? angle2 : angle1\r\n}\r\n\r\nfunction compareFloats(value1, value2) {\r\n return _abs(value1 - value2) < 1e-4\r\n}(0, _component_registrator.default)(\"dxBarGauge\", dxBarGauge);\r\ndxBarGauge.addPlugin(_legend.plugin);\r\n","/**\r\n * DevExtreme (viz/palette.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.currentPalette = currentPalette;\r\nexports.generateColors = generateColors;\r\nexports.getPalette = getPalette;\r\nexports.registerPalette = registerPalette;\r\nexports.getAccentColor = getAccentColor;\r\nexports.createPalette = createPalette;\r\nexports.getDiscretePalette = getDiscretePalette;\r\nexports.getGradientPalette = getGradientPalette;\r\nvar _utils = require(\"./core/utils\");\r\nvar _extend = require(\"../core/utils/extend\");\r\nvar _color = _interopRequireDefault(require(\"../color\"));\r\nvar _type = require(\"../core/utils/type\");\r\nvar _palettes;\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 _defineProperty(obj, key, value) {\r\n if (key in obj) {\r\n Object.defineProperty(obj, key, {\r\n value: value,\r\n enumerable: true,\r\n configurable: true,\r\n writable: true\r\n })\r\n } else {\r\n obj[key] = value\r\n }\r\n return obj\r\n}\r\nvar _floor = Math.floor;\r\nvar _ceil = Math.ceil;\r\nvar _isArray = Array.isArray;\r\nvar HIGHLIGHTING_STEP = 50;\r\nvar DEFAULT_PALETTE = \"material\";\r\nvar officePalette = {\r\n simpleSet: [\"#5f8b95\", \"#ba4d51\", \"#af8a53\", \"#955f71\", \"#859666\", \"#7e688c\"],\r\n indicatingSet: [\"#a3b97c\", \"#e1b676\", \"#ec7f83\"],\r\n gradientSet: [\"#5f8b95\", \"#ba4d51\"],\r\n accentColor: \"#ba4d51\"\r\n};\r\nvar palettes = (_palettes = {}, _defineProperty(_palettes, DEFAULT_PALETTE, {\r\n simpleSet: [\"#1db2f5\", \"#f5564a\", \"#97c95c\", \"#ffc720\", \"#eb3573\", \"#a63db8\"],\r\n indicatingSet: [\"#97c95c\", \"#ffc720\", \"#f5564a\"],\r\n gradientSet: [\"#1db2f5\", \"#97c95c\"],\r\n accentColor: \"#1db2f5\"\r\n}), _defineProperty(_palettes, \"office\", officePalette), _defineProperty(_palettes, \"harmony light\", {\r\n simpleSet: [\"#fcb65e\", \"#679ec5\", \"#ad79ce\", \"#7abd5c\", \"#e18e92\", \"#b6d623\", \"#b7abea\", \"#85dbd5\"],\r\n indicatingSet: [\"#b6d623\", \"#fcb65e\", \"#e18e92\"],\r\n gradientSet: [\"#7abd5c\", \"#fcb65e\"],\r\n accentColor: \"#679ec5\"\r\n}), _defineProperty(_palettes, \"soft pastel\", {\r\n simpleSet: [\"#60a69f\", \"#78b6d9\", \"#6682bb\", \"#a37182\", \"#eeba69\", \"#90ba58\", \"#456c68\", \"#7565a4\"],\r\n indicatingSet: [\"#90ba58\", \"#eeba69\", \"#a37182\"],\r\n gradientSet: [\"#78b6d9\", \"#eeba69\"],\r\n accentColor: \"#60a69f\"\r\n}), _defineProperty(_palettes, \"pastel\", {\r\n simpleSet: [\"#bb7862\", \"#70b3a1\", \"#bb626a\", \"#057d85\", \"#ab394b\", \"#dac599\", \"#153459\", \"#b1d2c6\"],\r\n indicatingSet: [\"#70b3a1\", \"#dac599\", \"#bb626a\"],\r\n gradientSet: [\"#bb7862\", \"#70b3a1\"],\r\n accentColor: \"#bb7862\"\r\n}), _defineProperty(_palettes, \"bright\", {\r\n simpleSet: [\"#70c92f\", \"#f8ca00\", \"#bd1550\", \"#e97f02\", \"#9d419c\", \"#7e4452\", \"#9ab57e\", \"#36a3a6\"],\r\n indicatingSet: [\"#70c92f\", \"#f8ca00\", \"#bd1550\"],\r\n gradientSet: [\"#e97f02\", \"#f8ca00\"],\r\n accentColor: \"#e97f02\"\r\n}), _defineProperty(_palettes, \"soft\", {\r\n simpleSet: [\"#cbc87b\", \"#9ab57e\", \"#e55253\", \"#7e4452\", \"#e8c267\", \"#565077\", \"#6babac\", \"#ad6082\"],\r\n indicatingSet: [\"#9ab57e\", \"#e8c267\", \"#e55253\"],\r\n gradientSet: [\"#9ab57e\", \"#e8c267\"],\r\n accentColor: \"#565077\"\r\n}), _defineProperty(_palettes, \"ocean\", {\r\n simpleSet: [\"#75c099\", \"#acc371\", \"#378a8a\", \"#5fa26a\", \"#064970\", \"#38c5d2\", \"#00a7c6\", \"#6f84bb\"],\r\n indicatingSet: [\"#c8e394\", \"#7bc59d\", \"#397c8b\"],\r\n gradientSet: [\"#acc371\", \"#38c5d2\"],\r\n accentColor: \"#378a8a\"\r\n}), _defineProperty(_palettes, \"vintage\", {\r\n simpleSet: [\"#dea484\", \"#efc59c\", \"#cb715e\", \"#eb9692\", \"#a85c4c\", \"#f2c0b5\", \"#c96374\", \"#dd956c\"],\r\n indicatingSet: [\"#ffe5c6\", \"#f4bb9d\", \"#e57660\"],\r\n gradientSet: [\"#efc59c\", \"#cb715e\"],\r\n accentColor: \"#cb715e\"\r\n}), _defineProperty(_palettes, \"violet\", {\r\n simpleSet: [\"#d1a1d1\", \"#eeacc5\", \"#7b5685\", \"#7e7cad\", \"#a13d73\", \"#5b41ab\", \"#e287e2\", \"#689cc1\"],\r\n indicatingSet: [\"#d8e2f6\", \"#d0b2da\", \"#d56a8a\"],\r\n gradientSet: [\"#eeacc5\", \"#7b5685\"],\r\n accentColor: \"#7b5685\"\r\n}), _defineProperty(_palettes, \"carmine\", {\r\n simpleSet: [\"#fb7764\", \"#73d47f\", \"#fed85e\", \"#d47683\", \"#dde392\", \"#757ab2\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#fb7764\", \"#73d47f\"],\r\n accentColor: \"#f05b41\"\r\n}), _defineProperty(_palettes, \"dark moon\", {\r\n simpleSet: [\"#4ddac1\", \"#f4c99a\", \"#80dd9b\", \"#f998b3\", \"#4aaaa0\", \"#a5aef1\"],\r\n indicatingSet: [\"#59d8a4\", \"#f0ad4e\", \"#f9517e\"],\r\n gradientSet: [\"#4ddac1\", \"#f4c99a\"],\r\n accentColor: \"#3debd3\"\r\n}), _defineProperty(_palettes, \"soft blue\", {\r\n simpleSet: [\"#7ab8eb\", \"#97da97\", \"#facb86\", \"#e78683\", \"#839bda\", \"#4db7be\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#7ab8eb\", \"#97da97\"],\r\n accentColor: \"#7ab8eb\"\r\n}), _defineProperty(_palettes, \"dark violet\", {\r\n simpleSet: [\"#9c63ff\", \"#64c064\", \"#eead51\", \"#d2504b\", \"#4b6bbf\", \"#2da7b0\"],\r\n indicatingSet: [\"#5cb85c\", \"#f0ad4e\", \"#d9534f\"],\r\n gradientSet: [\"#9c63ff\", \"#64c064\"],\r\n accentColor: \"#9c63ff\"\r\n}), _defineProperty(_palettes, \"green mist\", {\r\n simpleSet: [\"#3cbab2\", \"#8ed962\", \"#5b9d95\", \"#efcc7c\", \"#f1929f\", \"#4d8dab\"],\r\n indicatingSet: [\"#72d63c\", \"#ffc852\", \"#f74a5e\"],\r\n gradientSet: [\"#3cbab2\", \"#8ed962\"],\r\n accentColor: \"#3cbab2\"\r\n}), _palettes);\r\nvar currentPaletteName;\r\n\r\nfunction currentPalette(name) {\r\n if (void 0 === name) {\r\n return currentPaletteName || DEFAULT_PALETTE\r\n } else {\r\n name = (0, _utils.normalizeEnum)(name);\r\n currentPaletteName = name in palettes ? name : void 0\r\n }\r\n}\r\n\r\nfunction generateColors(palette, count) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {\r\n keepLastColorInEnd: false\r\n };\r\n options.type = options.baseColorSet;\r\n options.extensionMode = options.paletteExtensionMode;\r\n return createPalette(palette, options).generateColors(count)\r\n}\r\n\r\nfunction getPalette(palette, parameters) {\r\n parameters = parameters || {};\r\n palette = palette || (void 0 === currentPaletteName ? parameters.themeDefault : currentPalette());\r\n var result;\r\n var type = parameters.type;\r\n if (_isArray(palette)) {\r\n return palette.slice(0)\r\n } else {\r\n if ((0, _type.isString)(palette)) {\r\n result = palettes[(0, _utils.normalizeEnum)(palette)]\r\n }\r\n if (!result) {\r\n result = palettes[currentPalette()]\r\n }\r\n }\r\n return type ? result[type].slice(0) : result\r\n}\r\n\r\nfunction registerPalette(name, palette) {\r\n var item = {};\r\n var paletteName;\r\n if (_isArray(palette)) {\r\n item.simpleSet = palette.slice(0)\r\n } else {\r\n if (palette) {\r\n item.simpleSet = _isArray(palette.simpleSet) ? palette.simpleSet.slice(0) : void 0;\r\n item.indicatingSet = _isArray(palette.indicatingSet) ? palette.indicatingSet.slice(0) : void 0;\r\n item.gradientSet = _isArray(palette.gradientSet) ? palette.gradientSet.slice(0) : void 0;\r\n item.accentColor = palette.accentColor\r\n }\r\n }\r\n if (!item.accentColor) {\r\n item.accentColor = item.simpleSet && item.simpleSet[0]\r\n }\r\n if (item.simpleSet || item.indicatingSet || item.gradientSet) {\r\n paletteName = (0, _utils.normalizeEnum)(name);\r\n (0, _extend.extend)(palettes[paletteName] = palettes[paletteName] || {}, item)\r\n }\r\n}\r\n\r\nfunction getAccentColor(palette, themeDefault) {\r\n palette = getPalette(palette, {\r\n themeDefault: themeDefault\r\n });\r\n return palette.accentColor || palette[0]\r\n}\r\n\r\nfunction RingBuf(buf) {\r\n var ind = 0;\r\n this.next = function() {\r\n var res = buf[ind++];\r\n if (ind === buf.length) {\r\n this.reset()\r\n }\r\n return res\r\n };\r\n this.reset = function() {\r\n ind = 0\r\n }\r\n}\r\n\r\nfunction getAlternateColorsStrategy(palette, parameters) {\r\n var stepHighlight = parameters.useHighlight ? HIGHLIGHTING_STEP : 0;\r\n var paletteSteps = new RingBuf([0, stepHighlight, -stepHighlight]);\r\n var currentPalette = [];\r\n\r\n function _reset() {\r\n var step = paletteSteps.next();\r\n currentPalette = step ? getAlteredPalette(palette, step) : palette.slice(0)\r\n }\r\n return {\r\n getColor: function(index) {\r\n var color = currentPalette[index % palette.length];\r\n if (index % palette.length === palette.length - 1) {\r\n _reset()\r\n }\r\n return color\r\n },\r\n generateColors: function(count) {\r\n var colors = [];\r\n count = count || parameters.count;\r\n for (var i = 0; i < count; i++) {\r\n colors.push(this.getColor(i))\r\n }\r\n return colors\r\n },\r\n reset: function() {\r\n paletteSteps.reset();\r\n _reset()\r\n }\r\n }\r\n}\r\n\r\nfunction getExtrapolateColorsStrategy(palette, parameters) {\r\n function convertColor(color, cycleIndex, cycleCount) {\r\n var hsl = new _color.default(color).hsl;\r\n var l = hsl.l / 100;\r\n var diapason = cycleCount - 1 / cycleCount;\r\n var minL = l - .5 * diapason;\r\n var maxL = l + .5 * diapason;\r\n var cycleMiddle = (cycleCount - 1) / 2;\r\n var cycleDiff = cycleIndex - cycleMiddle;\r\n if (minL < Math.min(.5, .9 * l)) {\r\n minL = Math.min(.5, .9 * l)\r\n }\r\n if (maxL > Math.max(.8, l + .15 * (1 - l))) {\r\n maxL = Math.max(.8, l + .15 * (1 - l))\r\n }\r\n if (cycleDiff < 0) {\r\n l -= (minL - l) * cycleDiff / cycleMiddle\r\n } else {\r\n l += (maxL - l) * (cycleDiff / cycleMiddle)\r\n }\r\n hsl.l = 100 * l;\r\n return _color.default.prototype.fromHSL(hsl).toHex()\r\n }\r\n return {\r\n getColor: function(index, count) {\r\n var paletteCount = palette.length;\r\n var cycles = _floor((count - 1) / paletteCount + 1);\r\n var color = palette[index % paletteCount];\r\n if (cycles > 1) {\r\n return convertColor(color, _floor(index / paletteCount), cycles)\r\n }\r\n return color\r\n },\r\n generateColors: function(count) {\r\n var colors = [];\r\n count = count || parameters.count;\r\n for (var i = 0; i < count; i++) {\r\n colors.push(this.getColor(i, count))\r\n }\r\n return colors\r\n },\r\n reset: function() {}\r\n }\r\n}\r\n\r\nfunction getColorMixer(palette, parameters) {\r\n var paletteCount = palette.length;\r\n var extendedPalette = [];\r\n\r\n function distributeColors(count, colorsCount, startIndex, distribution) {\r\n var groupSize = Math.floor(count / colorsCount);\r\n var extraItems = count - colorsCount * groupSize;\r\n var i = startIndex;\r\n var middleIndex;\r\n var size;\r\n while (i < startIndex + count) {\r\n size = groupSize;\r\n if (extraItems > 0) {\r\n size += 1;\r\n extraItems--\r\n }\r\n middleIndex = size > 2 ? Math.floor(size / 2) : 0;\r\n distribution.push(i + middleIndex);\r\n i += size\r\n }\r\n return distribution.sort(function(a, b) {\r\n return a - b\r\n })\r\n }\r\n\r\n function getColorAndDistance(arr, startIndex, count) {\r\n startIndex = (count + startIndex) % count;\r\n var distance = 0;\r\n for (var i = startIndex; i < 2 * count; i += 1) {\r\n var index = (count + i) % count;\r\n if (arr[index]) {\r\n return [arr[index], distance]\r\n }\r\n distance++\r\n }\r\n }\r\n\r\n function blendColors(paletteWithEmptyColors, paletteLength) {\r\n for (var i = 0; i < paletteLength; i++) {\r\n var color = paletteWithEmptyColors[i];\r\n if (!color) {\r\n var color1 = paletteWithEmptyColors[i - 1];\r\n if (!color1) {\r\n continue\r\n } else {\r\n var c2 = getColorAndDistance(paletteWithEmptyColors, i, paletteLength);\r\n var color2 = new _color.default(c2[0]);\r\n color1 = new _color.default(color1);\r\n for (var j = 0; j < c2[1]; j++, i++) {\r\n paletteWithEmptyColors[i] = color1.blend(color2, (j + 1) / (c2[1] + 1)).toHex()\r\n }\r\n }\r\n }\r\n }\r\n return paletteWithEmptyColors\r\n }\r\n\r\n function extendPalette(count) {\r\n if (count <= paletteCount) {\r\n return palette\r\n }\r\n var result = [];\r\n var colorInGroups = paletteCount - 2;\r\n var currentColorIndex = 0;\r\n var cleanColorIndices = [];\r\n if (parameters.keepLastColorInEnd) {\r\n cleanColorIndices = distributeColors(count - 2, colorInGroups, 1, [0, count - 1])\r\n } else {\r\n cleanColorIndices = distributeColors(count - 1, paletteCount - 1, 1, [0])\r\n }\r\n for (var i = 0; i < count; i++) {\r\n if (cleanColorIndices.indexOf(i) > -1) {\r\n result[i] = palette[currentColorIndex++]\r\n }\r\n }\r\n result = blendColors(result, count);\r\n return result\r\n }\r\n return {\r\n getColor: function(index, count) {\r\n count = count || parameters.count || paletteCount;\r\n if (extendedPalette.length !== count) {\r\n extendedPalette = extendPalette(count)\r\n }\r\n return extendedPalette[index % count]\r\n },\r\n generateColors: function(count, repeat) {\r\n count = count || parameters.count || paletteCount;\r\n if (repeat && count > paletteCount) {\r\n var colors = extendPalette(paletteCount);\r\n for (var i = 0; i < count - paletteCount; i++) {\r\n colors.push(colors[i])\r\n }\r\n return colors\r\n } else {\r\n return paletteCount > 0 ? extendPalette(count).slice(0, count) : []\r\n }\r\n },\r\n reset: function() {}\r\n }\r\n}\r\n\r\nfunction createPalette(palette, parameters, themeDefaultPalette) {\r\n var paletteObj = {\r\n dispose: function() {\r\n this._extensionStrategy = null\r\n },\r\n getNextColor: function(count) {\r\n return this._extensionStrategy.getColor(this._currentColor++, count)\r\n },\r\n generateColors: function(count, parameters) {\r\n return this._extensionStrategy.generateColors(count, (parameters || {}).repeat)\r\n },\r\n reset: function() {\r\n this._currentColor = 0;\r\n this._extensionStrategy.reset();\r\n return this\r\n }\r\n };\r\n parameters = parameters || {};\r\n var extensionMode = (parameters.extensionMode || \"\").toLowerCase();\r\n var colors = getPalette(palette, {\r\n type: parameters.type || \"simpleSet\",\r\n themeDefault: themeDefaultPalette\r\n });\r\n if (\"alternate\" === extensionMode) {\r\n paletteObj._extensionStrategy = getAlternateColorsStrategy(colors, parameters)\r\n } else {\r\n if (\"extrapolate\" === extensionMode) {\r\n paletteObj._extensionStrategy = getExtrapolateColorsStrategy(colors, parameters)\r\n } else {\r\n paletteObj._extensionStrategy = getColorMixer(colors, parameters)\r\n }\r\n }\r\n paletteObj.reset();\r\n return paletteObj\r\n}\r\n\r\nfunction getAlteredPalette(originalPalette, step) {\r\n var palette = [];\r\n var i;\r\n var ii = originalPalette.length;\r\n for (i = 0; i < ii; ++i) {\r\n palette.push(getNewColor(originalPalette[i], step))\r\n }\r\n return palette\r\n}\r\n\r\nfunction getNewColor(currentColor, step) {\r\n var newColor = new _color.default(currentColor).alter(step);\r\n var lightness = getLightness(newColor);\r\n if (lightness > 200 || lightness < 55) {\r\n newColor = new _color.default(currentColor).alter(-step / 2)\r\n }\r\n return newColor.toHex()\r\n}\r\n\r\nfunction getLightness(color) {\r\n return .3 * color.r + .59 * color.g + .11 * color.b\r\n}\r\n\r\nfunction getDiscretePalette(source, size, themeDefaultPalette) {\r\n var palette = size > 0 ? createDiscreteColors(getPalette(source, {\r\n type: \"gradientSet\",\r\n themeDefault: themeDefaultPalette\r\n }), size) : [];\r\n return {\r\n getColor: function(index) {\r\n return palette[index] || null\r\n }\r\n }\r\n}\r\n\r\nfunction createDiscreteColors(source, count) {\r\n var colorCount = count - 1;\r\n var sourceCount = source.length - 1;\r\n var colors = [];\r\n var gradient = [];\r\n var i;\r\n\r\n function addColor(pos) {\r\n var k = sourceCount * pos;\r\n var kl = _floor(k);\r\n var kr = _ceil(k);\r\n gradient.push(colors[kl].blend(colors[kr], k - kl).toHex())\r\n }\r\n for (i = 0; i <= sourceCount; ++i) {\r\n colors.push(new _color.default(source[i]))\r\n }\r\n if (colorCount > 0) {\r\n for (i = 0; i <= colorCount; ++i) {\r\n addColor(i / colorCount)\r\n }\r\n } else {\r\n addColor(.5)\r\n }\r\n return gradient\r\n}\r\n\r\nfunction getGradientPalette(source, themeDefaultPalette) {\r\n var palette = getPalette(source, {\r\n type: \"gradientSet\",\r\n themeDefault: themeDefaultPalette\r\n });\r\n var color1 = new _color.default(palette[0]);\r\n var color2 = new _color.default(palette[1]);\r\n return {\r\n getColor: function(ratio) {\r\n return 0 <= ratio && ratio <= 1 ? color1.blend(color2, ratio).toHex() : null\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (viz/gauges/theme_manager.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\nvar _base_theme_manager = require(\"../core/base_theme_manager\");\r\nvar _extend = _extend2.extend;\r\nvar ThemeManager = _base_theme_manager.BaseThemeManager.inherit({\r\n ctor: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this._subTheme = options.subTheme\r\n },\r\n _initializeTheme: function() {\r\n var that = this;\r\n var subTheme;\r\n if (that._subTheme) {\r\n subTheme = _extend(true, {}, that._theme[that._subTheme], that._theme);\r\n _extend(true, that._theme, subTheme)\r\n }\r\n that.callBase.apply(that, arguments)\r\n }\r\n});\r\nvar _default = {\r\n ThemeManager: ThemeManager\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/gauges/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\nexports.default = void 0;\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _wheel = require(\"../../events/core/wheel\");\r\nvar _ready_callbacks = _interopRequireDefault(require(\"../../core/utils/ready_callbacks\"));\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar EVENT_NS = \"gauge-tooltip\";\r\nvar TOOLTIP_HIDE_DELAY = 100;\r\nvar ready = _ready_callbacks.default.add;\r\nvar Tracker = _class.default.inherit({\r\n ctor: function(parameters) {\r\n var that = this;\r\n that._element = parameters.renderer.g().attr({\r\n \"class\": \"dxg-tracker\",\r\n stroke: \"none\",\r\n \"stroke-width\": 0,\r\n fill: \"#000000\",\r\n opacity: 1e-4\r\n }).linkOn(parameters.container, {\r\n name: \"tracker\",\r\n after: \"peripheral\"\r\n });\r\n that._showTooltipCallback = function() {\r\n var target = that._tooltipEvent.target;\r\n var data_target = target[\"gauge-data-target\"];\r\n var data_info = target[\"gauge-data-info\"];\r\n that._targetEvent = null;\r\n if (that._tooltipTarget !== target) {\r\n var callback = function(result) {\r\n result && (that._tooltipTarget = target)\r\n };\r\n callback(that._callbacks[\"tooltip-show\"](data_target, data_info, callback))\r\n }\r\n };\r\n that._hideTooltipCallback = function() {\r\n that._hideTooltipTimeout = null;\r\n that._targetEvent = null;\r\n if (that._tooltipTarget) {\r\n that._callbacks[\"tooltip-hide\"]();\r\n that._tooltipTarget = null\r\n }\r\n };\r\n that._dispose = function() {\r\n clearTimeout(that._hideTooltipTimeout);\r\n that._showTooltipCallback = that._hideTooltipCallback = that._dispose = null\r\n }\r\n },\r\n dispose: function() {\r\n var that = this;\r\n that._dispose();\r\n that.deactivate();\r\n that._element.off(\".\" + EVENT_NS);\r\n that._element.linkOff();\r\n that._element = that._context = that._callbacks = null;\r\n return that\r\n },\r\n activate: function() {\r\n this._element.linkAppend();\r\n return this\r\n },\r\n deactivate: function() {\r\n this._element.linkRemove().clear();\r\n return this\r\n },\r\n attach: function(element, target, info) {\r\n element.data({\r\n \"gauge-data-target\": target,\r\n \"gauge-data-info\": info\r\n }).append(this._element);\r\n return this\r\n },\r\n detach: function(element) {\r\n element.remove();\r\n return this\r\n },\r\n setTooltipState: function(state) {\r\n var that = this;\r\n that._element.off(\".\" + EVENT_NS);\r\n if (state) {\r\n var data = {\r\n tracker: that\r\n };\r\n that._element.on((0, _index.addNamespace)([_pointer.default.move], EVENT_NS), data, handleTooltipMouseOver).on((0, _index.addNamespace)([_pointer.default.out], EVENT_NS), data, handleTooltipMouseOut).on((0, _index.addNamespace)([_pointer.default.down], EVENT_NS), data, handleTooltipTouchStart).on((0, _index.addNamespace)([_pointer.default.up], EVENT_NS), data, handleTooltipTouchEnd).on((0, _index.addNamespace)([_wheel.name], EVENT_NS), data, handleTooltipMouseWheel)\r\n }\r\n return that\r\n },\r\n setCallbacks: function(callbacks) {\r\n this._callbacks = callbacks;\r\n return this\r\n },\r\n _showTooltip: function(event) {\r\n var that = this;\r\n clearTimeout(that._hideTooltipTimeout);\r\n that._hideTooltipTimeout = null;\r\n if (that._tooltipTarget === event.target) {\r\n return\r\n }\r\n that._tooltipEvent = event;\r\n that._showTooltipCallback()\r\n },\r\n _hideTooltip: function(delay) {\r\n var that = this;\r\n clearTimeout(that._hideTooltipTimeout);\r\n if (delay) {\r\n that._hideTooltipTimeout = setTimeout(that._hideTooltipCallback, delay)\r\n } else {\r\n that._hideTooltipCallback()\r\n }\r\n }\r\n});\r\nvar active_touch_tooltip_tracker = null;\r\n\r\nfunction handleTooltipMouseOver(event) {\r\n var tracker = event.data.tracker;\r\n tracker._x = event.pageX;\r\n tracker._y = event.pageY;\r\n tracker._showTooltip(event)\r\n}\r\n\r\nfunction handleTooltipMouseOut(event) {\r\n event.data.tracker._hideTooltip(TOOLTIP_HIDE_DELAY)\r\n}\r\n\r\nfunction handleTooltipMouseWheel(event) {\r\n event.data.tracker._hideTooltip()\r\n}\r\n\r\nfunction handleTooltipTouchStart(event) {\r\n var tracker = active_touch_tooltip_tracker = event.data.tracker;\r\n tracker._touch = true;\r\n handleTooltipMouseOver(event)\r\n}\r\n\r\nfunction handleTooltipTouchEnd() {\r\n active_touch_tooltip_tracker._touch = false\r\n}\r\n\r\nfunction handleDocumentTooltipTouchStart(event) {\r\n var tracker = active_touch_tooltip_tracker;\r\n if (tracker && !tracker._touch) {\r\n tracker._hideTooltip(TOOLTIP_HIDE_DELAY);\r\n active_touch_tooltip_tracker = null\r\n }\r\n}\r\nready(function() {\r\n _events_engine.default.subscribeGlobal(_dom_adapter.default.getDocument(), (0, _index.addNamespace)([_pointer.default.down], EVENT_NS), handleDocumentTooltipTouchStart)\r\n});\r\nvar _default = Tracker;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/gauges/circular_indicators.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.rangebar = exports.textcloud = exports.trianglemarker = exports.twocolorneedle = exports.triangleneedle = exports.rectangleneedle = exports._default = void 0;\r\nvar _base_indicators = require(\"./base_indicators\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _Number = Number;\r\nvar _getCosAndSin = _utils.getCosAndSin;\r\nvar _convertAngleToRendererSpace = _utils.convertAngleToRendererSpace;\r\nvar SimpleIndicator = _base_indicators.BaseIndicator.inherit({\r\n _move: function() {\r\n var that = this;\r\n var options = that._options;\r\n var angle = _convertAngleToRendererSpace(that._actualPosition);\r\n that._rootElement.rotate(angle, options.x, options.y);\r\n that._trackerElement && that._trackerElement.rotate(angle, options.x, options.y)\r\n },\r\n _isEnabled: function() {\r\n return this._options.width > 0\r\n },\r\n _isVisible: function(layout) {\r\n return layout.radius - _Number(this._options.indentFromCenter) > 0\r\n },\r\n _getTrackerSettings: function() {\r\n var options = this._options;\r\n var radius = this._getRadius();\r\n var indentFromCenter = this._getIndentFromCenter();\r\n var x = options.x;\r\n var y = options.y - (radius + indentFromCenter) / 2;\r\n var width = options.width / 2;\r\n var length = (radius - indentFromCenter) / 2;\r\n width > 10 || (width = 10);\r\n length > 10 || (length = 10);\r\n return {\r\n points: [x - width, y - length, x - width, y + length, x + width, y + length, x + width, y - length]\r\n }\r\n },\r\n _render: function() {\r\n var that = this;\r\n that._renderPointer()\r\n },\r\n _clearPointer: function() {\r\n delete this._element\r\n },\r\n _clear: function() {\r\n this._clearPointer()\r\n },\r\n _getIndentFromCenter: function(radius) {\r\n return Number(this._options.indentFromCenter) || 0\r\n },\r\n _getRadius: function() {\r\n return 0\r\n },\r\n measure: function(layout) {\r\n var result = {\r\n max: layout.radius\r\n };\r\n if (this._options.indentFromCenter < 0) {\r\n result.inverseHorizontalOffset = result.inverseVerticalOffset = -_Number(this._options.indentFromCenter)\r\n }\r\n return result\r\n },\r\n getTooltipParameters: function() {\r\n var options = this._options;\r\n var cosSin = _getCosAndSin(this._actualPosition);\r\n var r = (this._getRadius() + this._getIndentFromCenter()) / 2;\r\n return {\r\n x: options.x + cosSin.cos * r,\r\n y: options.y - cosSin.sin * r,\r\n value: this._currentValue,\r\n color: options.color,\r\n offset: options.width / 2\r\n }\r\n }\r\n});\r\nvar NeedleIndicator = SimpleIndicator.inherit({\r\n _isVisible: function(layout) {\r\n var indentFromCenter = this._adjustOffset(Number(this._options.indentFromCenter), layout.radius);\r\n var offset = this._adjustOffset(Number(this._options.offset), layout.radius);\r\n return layout.radius - indentFromCenter - offset > 0\r\n },\r\n getOffset: function() {\r\n return 0\r\n },\r\n _adjustOffset: function(value, radius) {\r\n var minRadius = Number(this._options.beginAdaptingAtRadius);\r\n var diff = radius / minRadius;\r\n if (diff < 1) {\r\n value = Math.floor(value * diff)\r\n }\r\n return value || 0\r\n },\r\n _getIndentFromCenter: function(radius) {\r\n return this._adjustOffset(Number(this._options.indentFromCenter), this._options.radius)\r\n },\r\n _getRadius: function() {\r\n var options = this._options;\r\n return options.radius - this._adjustOffset(Number(options.offset), options.radius)\r\n },\r\n _renderSpindle: function() {\r\n var that = this;\r\n var options = that._options;\r\n var radius = options.radius;\r\n var spindleSize = 2 * this._adjustOffset(_Number(options.spindleSize) / 2, radius);\r\n var gapSize = 2 * this._adjustOffset(_Number(options.spindleGapSize) / 2, radius) || 0;\r\n if (gapSize > 0) {\r\n gapSize = gapSize <= spindleSize ? gapSize : spindleSize\r\n }\r\n if (spindleSize > 0) {\r\n that._spindleOuter = that._spindleOuter || that._renderer.circle().append(that._rootElement);\r\n that._spindleInner = that._spindleInner || that._renderer.circle().append(that._rootElement);\r\n that._spindleOuter.attr({\r\n \"class\": \"dxg-spindle-border\",\r\n cx: options.x,\r\n cy: options.y,\r\n r: spindleSize / 2\r\n });\r\n that._spindleInner.attr({\r\n \"class\": \"dxg-spindle-hole\",\r\n cx: options.x,\r\n cy: options.y,\r\n r: gapSize / 2,\r\n fill: options.containerBackgroundColor\r\n })\r\n }\r\n },\r\n _render: function() {\r\n var that = this;\r\n that.callBase();\r\n that._renderSpindle()\r\n },\r\n _clear: function() {\r\n this.callBase();\r\n delete this._spindleOuter;\r\n delete this._spindleInner\r\n }\r\n});\r\nvar rectangleNeedle = NeedleIndicator.inherit({\r\n _renderPointer: function() {\r\n var that = this;\r\n var options = that._options;\r\n var y2 = options.y - this._getRadius();\r\n var y1 = options.y - this._getIndentFromCenter();\r\n var x1 = options.x - options.width / 2;\r\n var x2 = x1 + _Number(options.width);\r\n that._element = that._element || that._renderer.path([], \"area\").append(that._rootElement);\r\n that._element.attr({\r\n points: [x1, y1, x1, y2, x2, y2, x2, y1]\r\n })\r\n }\r\n});\r\nexports.rectangleneedle = exports._default = rectangleNeedle;\r\nvar triangleNeedle = NeedleIndicator.inherit({\r\n _renderPointer: function() {\r\n var that = this;\r\n var options = that._options;\r\n var y2 = options.y - this._getRadius();\r\n var y1 = options.y - this._getIndentFromCenter();\r\n var x1 = options.x - options.width / 2;\r\n var x2 = options.x + options.width / 2;\r\n that._element = that._element || that._renderer.path([], \"area\").append(that._rootElement);\r\n that._element.attr({\r\n points: [x1, y1, options.x, y2, x2, y1]\r\n })\r\n }\r\n});\r\nexports.triangleneedle = triangleNeedle;\r\nvar twoColorNeedle = NeedleIndicator.inherit({\r\n _renderPointer: function() {\r\n var that = this;\r\n var options = that._options;\r\n var x1 = options.x - options.width / 2;\r\n var x2 = options.x + options.width / 2;\r\n var y4 = options.y - this._getRadius();\r\n var y1 = options.y - this._getIndentFromCenter();\r\n var fraction = _Number(options.secondFraction) || 0;\r\n var y2;\r\n var y3;\r\n if (fraction >= 1) {\r\n y2 = y3 = y1\r\n } else {\r\n if (fraction <= 0) {\r\n y2 = y3 = y4\r\n } else {\r\n y3 = y4 + (y1 - y4) * fraction;\r\n y2 = y3 + _Number(options.space)\r\n }\r\n }\r\n that._firstElement = that._firstElement || that._renderer.path([], \"area\").append(that._rootElement);\r\n that._spaceElement = that._spaceElement || that._renderer.path([], \"area\").append(that._rootElement);\r\n that._secondElement = that._secondElement || that._renderer.path([], \"area\").append(that._rootElement);\r\n that._firstElement.attr({\r\n points: [x1, y1, x1, y2, x2, y2, x2, y1]\r\n });\r\n that._spaceElement.attr({\r\n points: [x1, y2, x1, y3, x2, y3, x2, y2],\r\n \"class\": \"dxg-hole\",\r\n fill: options.containerBackgroundColor\r\n });\r\n that._secondElement.attr({\r\n points: [x1, y3, x1, y4, x2, y4, x2, y3],\r\n \"class\": \"dxg-part\",\r\n fill: options.secondColor\r\n })\r\n },\r\n _clearPointer: function() {\r\n delete this._firstElement;\r\n delete this._secondElement;\r\n delete this._spaceElement\r\n }\r\n});\r\nexports.twocolorneedle = twoColorNeedle;\r\nvar triangleMarker = SimpleIndicator.inherit({\r\n _isEnabled: function() {\r\n return this._options.length > 0 && this._options.width > 0\r\n },\r\n _isVisible: function(layout) {\r\n return layout.radius > 0\r\n },\r\n _render: function() {\r\n var that = this;\r\n var options = that._options;\r\n var x = options.x;\r\n var y1 = options.y - options.radius;\r\n var dx = options.width / 2 || 0;\r\n var y2 = y1 - _Number(options.length);\r\n that._element = that._element || that._renderer.path([], \"area\").append(that._rootElement);\r\n var settings = {\r\n points: [x, y1, x - dx, y2, x + dx, y2],\r\n stroke: \"none\",\r\n \"stroke-width\": 0,\r\n \"stroke-linecap\": \"square\"\r\n };\r\n if (options.space > 0) {\r\n settings[\"stroke-width\"] = Math.min(options.space, options.width / 4) || 0;\r\n settings.stroke = settings[\"stroke-width\"] > 0 ? options.containerBackgroundColor || \"none\" : \"none\"\r\n }\r\n that._element.attr(settings).sharp()\r\n },\r\n _clear: function() {\r\n delete this._element\r\n },\r\n _getTrackerSettings: function() {\r\n var options = this._options;\r\n var x = options.x;\r\n var y = options.y - options.radius - options.length / 2;\r\n var width = options.width / 2;\r\n var length = options.length / 2;\r\n width > 10 || (width = 10);\r\n length > 10 || (length = 10);\r\n return {\r\n points: [x - width, y - length, x - width, y + length, x + width, y + length, x + width, y - length]\r\n }\r\n },\r\n measure: function(layout) {\r\n return {\r\n min: layout.radius,\r\n max: layout.radius + _Number(this._options.length)\r\n }\r\n },\r\n getTooltipParameters: function() {\r\n var options = this._options;\r\n var cosSin = _getCosAndSin(this._actualPosition);\r\n var r = options.radius + options.length / 2;\r\n var parameters = this.callBase();\r\n parameters.x = options.x + cosSin.cos * r;\r\n parameters.y = options.y - cosSin.sin * r;\r\n parameters.offset = options.length / 2;\r\n return parameters\r\n }\r\n});\r\nexports.trianglemarker = triangleMarker;\r\nvar textCloud = _base_indicators.BaseTextCloudMarker.inherit({\r\n _isEnabled: function() {\r\n return true\r\n },\r\n _isVisible: function(layout) {\r\n return layout.radius > 0\r\n },\r\n _getTextCloudOptions: function() {\r\n var that = this;\r\n var cosSin = _getCosAndSin(that._actualPosition);\r\n var nAngle = (0, _utils.normalizeAngle)(that._actualPosition);\r\n return {\r\n x: that._options.x + cosSin.cos * that._options.radius,\r\n y: that._options.y - cosSin.sin * that._options.radius,\r\n type: nAngle > 270 ? \"left-top\" : nAngle > 180 ? \"top-right\" : nAngle > 90 ? \"right-bottom\" : \"bottom-left\"\r\n }\r\n },\r\n measure: function(layout) {\r\n var that = this;\r\n var arrowLength = _Number(that._options.arrowLength) || 0;\r\n that._measureText();\r\n var verticalOffset = that._textFullHeight + arrowLength;\r\n var horizontalOffset = that._textFullWidth + arrowLength;\r\n return {\r\n min: layout.radius,\r\n max: layout.radius,\r\n horizontalOffset: horizontalOffset,\r\n verticalOffset: verticalOffset,\r\n inverseHorizontalOffset: horizontalOffset,\r\n inverseVerticalOffset: verticalOffset\r\n }\r\n }\r\n});\r\nexports.textcloud = textCloud;\r\nvar rangeBar = _base_indicators.BaseRangeBar.inherit({\r\n _isEnabled: function() {\r\n return this._options.size > 0\r\n },\r\n _isVisible: function(layout) {\r\n return layout.radius - _Number(this._options.size) > 0\r\n },\r\n _createBarItem: function() {\r\n return this._renderer.arc().attr({\r\n \"stroke-linejoin\": \"round\"\r\n }).append(this._rootElement)\r\n },\r\n _createTracker: function() {\r\n return this._renderer.arc().attr({\r\n \"stroke-linejoin\": \"round\"\r\n })\r\n },\r\n _setBarSides: function() {\r\n var that = this;\r\n that._maxSide = that._options.radius;\r\n that._minSide = that._maxSide - _Number(that._options.size)\r\n },\r\n _getSpace: function() {\r\n var options = this._options;\r\n return options.space > 0 ? 180 * options.space / options.radius / Math.PI : 0\r\n },\r\n _isTextVisible: function() {\r\n var options = this._options.text || {};\r\n return options.indent > 0\r\n },\r\n _setTextItemsSides: function() {\r\n var that = this;\r\n var options = that._options;\r\n var indent = _Number(options.text.indent);\r\n that._lineFrom = options.y - options.radius;\r\n that._lineTo = that._lineFrom - indent;\r\n that._textRadius = options.radius + indent\r\n },\r\n _getPositions: function() {\r\n var that = this;\r\n var basePosition = that._basePosition;\r\n var actualPosition = that._actualPosition;\r\n var mainPosition1;\r\n var mainPosition2;\r\n if (basePosition >= actualPosition) {\r\n mainPosition1 = basePosition;\r\n mainPosition2 = actualPosition\r\n } else {\r\n mainPosition1 = actualPosition;\r\n mainPosition2 = basePosition\r\n }\r\n return {\r\n start: that._startPosition,\r\n end: that._endPosition,\r\n main1: mainPosition1,\r\n main2: mainPosition2,\r\n back1: Math.min(mainPosition1 + that._space, that._startPosition),\r\n back2: Math.max(mainPosition2 - that._space, that._endPosition)\r\n }\r\n },\r\n _buildItemSettings: function(from, to) {\r\n var that = this;\r\n return {\r\n x: that._options.x,\r\n y: that._options.y,\r\n innerRadius: that._minSide,\r\n outerRadius: that._maxSide,\r\n startAngle: to,\r\n endAngle: from\r\n }\r\n },\r\n _updateTextPosition: function() {\r\n var that = this;\r\n var cosSin = _getCosAndSin(that._actualPosition);\r\n var x = that._options.x + that._textRadius * cosSin.cos;\r\n var y = that._options.y - that._textRadius * cosSin.sin;\r\n x += cosSin.cos * that._textWidth * .6;\r\n y -= cosSin.sin * that._textHeight * .6;\r\n that._text.attr({\r\n x: x,\r\n y: y + that._textVerticalOffset\r\n })\r\n },\r\n _updateLinePosition: function() {\r\n var that = this;\r\n var x = that._options.x;\r\n var x1;\r\n var x2;\r\n if (that._basePosition > that._actualPosition) {\r\n x1 = x - 2;\r\n x2 = x\r\n } else {\r\n if (that._basePosition < that._actualPosition) {\r\n x1 = x;\r\n x2 = x + 2\r\n } else {\r\n x1 = x - 1;\r\n x2 = x + 1\r\n }\r\n }\r\n that._line.attr({\r\n points: [x1, that._lineFrom, x1, that._lineTo, x2, that._lineTo, x2, that._lineFrom]\r\n }).rotate(_convertAngleToRendererSpace(that._actualPosition), x, that._options.y).sharp()\r\n },\r\n _getTooltipPosition: function() {\r\n var that = this;\r\n var cosSin = _getCosAndSin((that._basePosition + that._actualPosition) / 2);\r\n var r = (that._minSide + that._maxSide) / 2;\r\n return {\r\n x: that._options.x + cosSin.cos * r,\r\n y: that._options.y - cosSin.sin * r\r\n }\r\n },\r\n measure: function(layout) {\r\n var that = this;\r\n var result = {\r\n min: layout.radius - _Number(that._options.size),\r\n max: layout.radius\r\n };\r\n that._measureText();\r\n if (that._hasText) {\r\n result.max += _Number(that._options.text.indent);\r\n result.horizontalOffset = that._textWidth;\r\n result.verticalOffset = that._textHeight\r\n }\r\n return result\r\n }\r\n});\r\nexports.rangebar = rangeBar;\r\n","/**\r\n * DevExtreme (viz/gauges/circular_range_container.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 _base_range_container = _interopRequireDefault(require(\"./base_range_container\"));\r\nvar _utils = require(\"../core/utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _Number = Number;\r\nvar _max = Math.max;\r\nvar CircularRangeContainer = _base_range_container.default.inherit({\r\n _processOptions: function() {\r\n var that = this;\r\n that._inner = that._outer = 0;\r\n switch ((0, _utils.normalizeEnum)(that._options.orientation)) {\r\n case \"inside\":\r\n that._inner = 1;\r\n break;\r\n case \"center\":\r\n that._inner = that._outer = .5;\r\n break;\r\n default:\r\n that._outer = 1\r\n }\r\n },\r\n _isVisible: function(layout) {\r\n var width = this._options.width;\r\n width = _Number(width) || _max(_Number(width.start), _Number(width.end));\r\n return layout.radius - this._inner * width > 0\r\n },\r\n _createRange: function(range, layout) {\r\n var that = this;\r\n var width = (range.startWidth + range.endWidth) / 2;\r\n return that._renderer.arc(layout.x, layout.y, layout.radius - that._inner * width, layout.radius + that._outer * width, that._translator.translate(range.end), that._translator.translate(range.start)).attr({\r\n \"stroke-linejoin\": \"round\"\r\n })\r\n },\r\n measure: function(layout) {\r\n var width = this._options.width;\r\n width = _Number(width) || _max(_Number(width.start), _Number(width.end));\r\n return {\r\n min: layout.radius - this._inner * width,\r\n max: layout.radius + this._outer * width\r\n }\r\n }\r\n});\r\nvar _default = CircularRangeContainer;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/funnel.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 _funnel = _interopRequireDefault(require(\"./funnel/funnel\"));\r\nvar _label = require(\"./funnel/label\");\r\nvar _export = require(\"./core/export\");\r\nvar _title = require(\"./core/title\");\r\nvar _legend = require(\"./components/legend\");\r\nvar _tracker = require(\"./funnel/tracker\");\r\nvar _tooltip = require(\"./funnel/tooltip\");\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\n_funnel.default.addPlugin(_label.plugin);\r\n_funnel.default.addPlugin(_export.plugin);\r\n_funnel.default.addPlugin(_title.plugin);\r\n_funnel.default.addPlugin(_legend.plugin);\r\n_funnel.default.addPlugin(_tracker.plugin);\r\n_funnel.default.addPlugin(_tooltip.plugin);\r\n_funnel.default.addPlugin(_loading_indicator.plugin);\r\nvar _default = _funnel.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (viz/funnel/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\nvar _utils = require(\"../core/utils\");\r\nvar algorithms = {};\r\nvar defaultAlgorithm;\r\n\r\nfunction getAlgorithm(name) {\r\n return algorithms[(0, _utils.normalizeEnum)(name)] || defaultAlgorithm\r\n}\r\n\r\nfunction addAlgorithm(name, callback, setDefault) {\r\n algorithms[name] = callback;\r\n if (setDefault) {\r\n defaultAlgorithm = algorithms[name]\r\n }\r\n}\r\n","/**\r\n * DevExtreme (viz/funnel/tiling.funnel.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 CENTER = .5;\r\nvar _default = {\r\n getFigures: function(data) {\r\n var height = 1 / data.length;\r\n return data.map(function(value, index, array) {\r\n var nextValue = array[index + 1] ? array[index + 1] : array[index];\r\n return [CENTER - value / 2, height * index, CENTER + value / 2, height * index, CENTER + nextValue / 2, height * (index + 1), CENTER - nextValue / 2, height * (index + 1)]\r\n })\r\n },\r\n normalizeValues: function(items) {\r\n var max = items.reduce(function(max, item) {\r\n return Math.max(item.value, max)\r\n }, items[0] && items[0].value || 0);\r\n return items.map(function(item) {\r\n return item.value / max\r\n })\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/funnel/tiling.pyramid.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 CENTER = .5;\r\nvar LEFTCORNER = 0;\r\nvar RIGHTCORNER = 1;\r\nvar _default = {\r\n getFigures: function(data, neckWidth, neckHeight) {\r\n var height = 0;\r\n var y = 0;\r\n var x = 0;\r\n var offsetX = 0;\r\n var halfNeckWidth = neckWidth / 2;\r\n var offsetFromCorner = CENTER - halfNeckWidth;\r\n var funnelHeight = 1 - neckHeight;\r\n var neckLeftCorner = CENTER - halfNeckWidth;\r\n var neckRightCorner = CENTER + halfNeckWidth;\r\n return data.map(function(value) {\r\n x = offsetX;\r\n y = height;\r\n height += value;\r\n offsetX = offsetFromCorner * height / funnelHeight;\r\n if (y <= funnelHeight && height <= funnelHeight) {\r\n return [x, y, RIGHTCORNER - x, y, RIGHTCORNER - offsetX, height, LEFTCORNER + offsetX, height]\r\n } else {\r\n if (y <= funnelHeight && height > funnelHeight) {\r\n return [x, y, RIGHTCORNER - x, y, neckRightCorner, funnelHeight, neckRightCorner, height, neckLeftCorner, height, neckLeftCorner, funnelHeight]\r\n } else {\r\n return [neckLeftCorner, y, neckRightCorner, y, neckRightCorner, height, neckLeftCorner, height]\r\n }\r\n }\r\n })\r\n },\r\n normalizeValues: function(items) {\r\n var sum = items.reduce(function(sum, item) {\r\n return sum + item.value\r\n }, 0);\r\n return items.map(function(item) {\r\n return item.value / sum\r\n })\r\n }\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/funnel/item.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 states = [\"normal\", \"hover\", \"selection\", \"selection\"];\r\n\r\nfunction parseStyles(color, style, baseStyle) {\r\n var border = style.border;\r\n var baseBorder = baseStyle.border;\r\n var borderVisible = (0, _type.isDefined)(border.visible) ? border.visible : baseBorder.visible;\r\n var borderWidth = (0, _type.isDefined)(border.width) ? border.width : baseBorder.width;\r\n return {\r\n fill: color,\r\n hatching: style.hatching,\r\n stroke: border.color || baseBorder.color,\r\n \"stroke-width\": borderVisible ? borderWidth : 0\r\n }\r\n}\r\n\r\nfunction Item(widget, options) {\r\n var that = this;\r\n var data = options.data;\r\n that.code = 0;\r\n that.widget = widget;\r\n that.figure = options.figure;\r\n that.argument = data.argument;\r\n that.value = data.value;\r\n that.data = data.dataItem;\r\n that.percent = options.percent;\r\n that.id = options.id;\r\n that.color = options.color;\r\n that.states = {\r\n normal: parseStyles(options.color, options.itemOptions, options.itemOptions),\r\n hover: parseStyles(options.color, options.itemOptions.hoverStyle, options.itemOptions),\r\n selection: parseStyles(options.color, options.itemOptions.selectionStyle, options.itemOptions)\r\n }\r\n}\r\nItem.prototype = {\r\n getState: function() {\r\n return states[this.code]\r\n },\r\n getNormalStyle: function() {\r\n return this.states.normal\r\n },\r\n setHover: function() {\r\n this.hover(true)\r\n },\r\n hover: function(state) {\r\n if (!this.widget._getOption(\"hoverEnabled\", true) || state === this.isHovered()) {\r\n return\r\n }\r\n this.widget._suspend();\r\n state && this.widget.clearHover();\r\n this.setState(1, state);\r\n this.widget._eventTrigger(\"hoverChanged\", {\r\n item: this\r\n });\r\n this.widget._resume()\r\n },\r\n 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.widget._applyTilesAppearance()\r\n },\r\n select: function(state) {\r\n var mode = this.widget._getOption(\"selectionMode\", true);\r\n if (\"none\" === mode || state === this.isSelected()) {\r\n return\r\n }\r\n this.widget._suspend();\r\n if (state && \"multiple\" !== mode) {\r\n this.widget.clearSelection()\r\n }\r\n this.setState(2, state);\r\n this.widget._eventTrigger(\"selectionChanged\", {\r\n item: this\r\n });\r\n this.widget._resume()\r\n },\r\n showTooltip: function(coords) {\r\n this.widget._showTooltip(this.id, coords)\r\n },\r\n getColor: function() {\r\n return this.color\r\n },\r\n isHovered: function() {\r\n return !!(1 & this.code)\r\n },\r\n isSelected: function() {\r\n return !!(2 & this.code)\r\n }\r\n};\r\nvar _default = Item;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/funnel/label.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.plugin = void 0;\r\nvar _label = require(\"../series/points/label\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _common = require(\"../../core/utils/common\");\r\n\r\nfunction _slicedToArray(arr, i) {\r\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest()\r\n}\r\n\r\nfunction _nonIterableRest() {\r\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _iterableToArrayLimit(arr, i) {\r\n var _i = arr && (\"undefined\" !== typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]);\r\n if (null == _i) {\r\n return\r\n }\r\n var _arr = [];\r\n var _n = true;\r\n var _d = false;\r\n var _s, _e;\r\n try {\r\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\r\n _arr.push(_s.value);\r\n if (i && _arr.length === i) {\r\n break\r\n }\r\n }\r\n } catch (err) {\r\n _d = true;\r\n _e = err\r\n } finally {\r\n try {\r\n if (!_n && null != _i.return) {\r\n _i.return()\r\n }\r\n } finally {\r\n if (_d) {\r\n throw _e\r\n }\r\n }\r\n }\r\n return _arr\r\n}\r\n\r\nfunction _arrayWithHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return arr\r\n }\r\n}\r\n\r\nfunction _toConsumableArray(arr) {\r\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread()\r\n}\r\n\r\nfunction _nonIterableSpread() {\r\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")\r\n}\r\n\r\nfunction _unsupportedIterableToArray(o, minLen) {\r\n if (!o) {\r\n return\r\n }\r\n if (\"string\" === typeof o) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (\"Object\" === n && o.constructor) {\r\n n = o.constructor.name\r\n }\r\n if (\"Map\" === n || \"Set\" === n) {\r\n return Array.from(o)\r\n }\r\n if (\"Arguments\" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\r\n return _arrayLikeToArray(o, minLen)\r\n }\r\n}\r\n\r\nfunction _iterableToArray(iter) {\r\n if (\"undefined\" !== typeof Symbol && null != iter[Symbol.iterator] || null != iter[\"@@iterator\"]) {\r\n return Array.from(iter)\r\n }\r\n}\r\n\r\nfunction _arrayWithoutHoles(arr) {\r\n if (Array.isArray(arr)) {\r\n return _arrayLikeToArray(arr)\r\n }\r\n}\r\n\r\nfunction _arrayLikeToArray(arr, len) {\r\n if (null == len || len > arr.length) {\r\n len = arr.length\r\n }\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\r\n arr2[i] = arr[i]\r\n }\r\n return arr2\r\n}\r\nvar OUTSIDE_POSITION = \"outside\";\r\nvar INSIDE_POSITION = \"inside\";\r\nvar OUTSIDE_LABEL_INDENT = 5;\r\nvar COLUMNS_LABEL_INDENT = 20;\r\nvar CONNECTOR_INDENT = 4;\r\nvar PREVENT_EMPTY_PIXEL_OFFSET = 1;\r\n\r\nfunction getLabelIndent(pos) {\r\n pos = (0, _utils.normalizeEnum)(pos);\r\n if (pos === OUTSIDE_POSITION) {\r\n return OUTSIDE_LABEL_INDENT\r\n } else {\r\n if (pos === INSIDE_POSITION) {\r\n return 0\r\n }\r\n }\r\n return COLUMNS_LABEL_INDENT\r\n}\r\n\r\nfunction isOutsidePosition(pos) {\r\n pos = (0, _utils.normalizeEnum)(pos);\r\n return pos === OUTSIDE_POSITION || pos !== INSIDE_POSITION\r\n}\r\n\r\nfunction correctYForInverted(y, bBox, inverted) {\r\n return inverted ? y - bBox.height : y\r\n}\r\n\r\nfunction getOutsideRightLabelPosition(coords, bBox, options, inverted) {\r\n return {\r\n x: coords[2] + options.horizontalOffset + OUTSIDE_LABEL_INDENT,\r\n y: correctYForInverted(coords[3] + options.verticalOffset, bBox, inverted)\r\n }\r\n}\r\n\r\nfunction getOutsideLeftLabelPosition(coords, bBox, options, inverted) {\r\n return {\r\n x: coords[0] - bBox.width - options.horizontalOffset - OUTSIDE_LABEL_INDENT,\r\n y: correctYForInverted(coords[1] + options.verticalOffset, bBox, inverted)\r\n }\r\n}\r\n\r\nfunction getInsideLabelPosition(coords, bBox, options) {\r\n var width = coords[2] - coords[0];\r\n var height = coords[7] - coords[1];\r\n return {\r\n x: coords[0] + width / 2 + options.horizontalOffset - bBox.width / 2,\r\n y: coords[1] + options.verticalOffset + height / 2 - bBox.height / 2\r\n }\r\n}\r\n\r\nfunction getColumnLabelRightPosition(labelRect, rect, textAlignment) {\r\n return function(coords, bBox, options, inverted) {\r\n return {\r\n x: \"left\" === textAlignment ? rect[2] + options.horizontalOffset + COLUMNS_LABEL_INDENT : labelRect[2] - bBox.width,\r\n y: correctYForInverted(coords[3] + options.verticalOffset, bBox, inverted)\r\n }\r\n }\r\n}\r\n\r\nfunction getColumnLabelLeftPosition(labelRect, rect, textAlignment) {\r\n return function(coords, bBox, options, inverted) {\r\n return {\r\n x: \"left\" === textAlignment ? labelRect[0] : rect[0] - bBox.width - options.horizontalOffset - COLUMNS_LABEL_INDENT,\r\n y: correctYForInverted(coords[3] + options.verticalOffset, bBox, inverted)\r\n }\r\n }\r\n}\r\n\r\nfunction getConnectorStrategy(options, inverted) {\r\n var isLeftPos = \"left\" === options.horizontalAlignment;\r\n var connectorIndent = isLeftPos ? CONNECTOR_INDENT : -CONNECTOR_INDENT;\r\n var verticalCorrection = inverted ? -PREVENT_EMPTY_PIXEL_OFFSET : 0;\r\n\r\n function getFigureCenter(figure) {\r\n return isLeftPos ? [figure[0] + PREVENT_EMPTY_PIXEL_OFFSET, figure[1] + verticalCorrection] : [figure[2] - PREVENT_EMPTY_PIXEL_OFFSET, figure[3] + verticalCorrection]\r\n }\r\n return {\r\n isLabelInside: function() {\r\n return !isOutsidePosition(options.position)\r\n },\r\n getFigureCenter: getFigureCenter,\r\n prepareLabelPoints: function(bBox) {\r\n var x = bBox.x + connectorIndent;\r\n var y = bBox.y;\r\n var x1 = x + bBox.width;\r\n return _toConsumableArray(Array(bBox.height + 1)).map(function(_, i) {\r\n return [x, y + i]\r\n }).concat(_toConsumableArray(Array(bBox.height + 1)).map(function(_, i) {\r\n return [x1, y + i]\r\n }))\r\n },\r\n isHorizontal: function() {\r\n return true\r\n },\r\n findFigurePoint: function(figure) {\r\n return getFigureCenter(figure)\r\n },\r\n adjustPoints: function(points) {\r\n return points.map(Math.round)\r\n }\r\n }\r\n}\r\n\r\nfunction getLabelOptions(labelOptions, defaultColor, defaultTextAlignment) {\r\n var opt = labelOptions || {};\r\n var labelFont = (0, _extend.extend)({}, opt.font) || {};\r\n var labelBorder = opt.border || {};\r\n var labelConnector = opt.connector || {};\r\n var backgroundAttr = {\r\n fill: opt.backgroundColor || defaultColor,\r\n \"stroke-width\": labelBorder.visible ? labelBorder.width || 0 : 0,\r\n stroke: labelBorder.visible && labelBorder.width ? labelBorder.color : \"none\",\r\n dashStyle: labelBorder.dashStyle\r\n };\r\n var connectorAttr = {\r\n stroke: labelConnector.visible && labelConnector.width ? labelConnector.color || defaultColor : \"none\",\r\n \"stroke-width\": labelConnector.visible ? labelConnector.width || 0 : 0,\r\n opacity: labelConnector.opacity\r\n };\r\n labelFont.color = \"none\" === opt.backgroundColor && \"#ffffff\" === (0, _utils.normalizeEnum)(labelFont.color) && \"inside\" !== opt.position ? defaultColor : labelFont.color;\r\n return {\r\n format: opt.format,\r\n textAlignment: opt.textAlignment || (isOutsidePosition(opt.position) ? defaultTextAlignment : \"center\"),\r\n customizeText: opt.customizeText,\r\n attributes: {\r\n font: labelFont\r\n },\r\n visible: 0 !== labelFont.size ? opt.visible : false,\r\n showForZeroValues: opt.showForZeroValues,\r\n horizontalOffset: opt.horizontalOffset,\r\n verticalOffset: opt.verticalOffset,\r\n background: backgroundAttr,\r\n connector: connectorAttr,\r\n wordWrap: labelOptions.wordWrap,\r\n textOverflow: labelOptions.textOverflow\r\n }\r\n}\r\n\r\nfunction correctLabelPosition(pos, bBox, rect) {\r\n if (pos.x < rect[0]) {\r\n pos.x = rect[0]\r\n }\r\n if (pos.x + bBox.width > rect[2]) {\r\n pos.x = rect[2] - bBox.width\r\n }\r\n if (pos.y < rect[1]) {\r\n pos.y = rect[1]\r\n }\r\n if (pos.y + bBox.height > rect[3]) {\r\n pos.y = rect[3] - bBox.height\r\n }\r\n return pos\r\n}\r\n\r\nfunction removeEmptySpace(labels, requiredSpace, startPoint) {\r\n labels.reduce(function(requiredSpace, label, index, labels) {\r\n var prevLabel = labels[index + 1];\r\n if (requiredSpace > 0) {\r\n var bBox = label.getBoundingRect();\r\n var point = prevLabel ? prevLabel.getBoundingRect().y + prevLabel.getBoundingRect().height : startPoint;\r\n var emptySpace = bBox.y - point;\r\n var shift = Math.min(emptySpace, requiredSpace);\r\n labels.slice(0, index + 1).forEach(function(label) {\r\n var bBox = label.getBoundingRect();\r\n label.shift(bBox.x, bBox.y - shift)\r\n });\r\n requiredSpace -= shift\r\n }\r\n return requiredSpace\r\n }, requiredSpace)\r\n}\r\nvar plugin = {\r\n name: \"lables\",\r\n init: _common.noop,\r\n dispose: _common.noop,\r\n extenders: {\r\n _initCore: function() {\r\n this._labelsGroup = this._renderer.g().attr({\r\n \"class\": this._rootClassPrefix + \"-labels\"\r\n }).append(this._renderer.root);\r\n this._labels = []\r\n },\r\n _applySize: function() {\r\n var options = this._getOption(\"label\");\r\n var adaptiveLayout = this._getOption(\"adaptiveLayout\");\r\n var rect = this._rect;\r\n var labelWidth = 0;\r\n var width = rect[2] - rect[0];\r\n this._labelRect = rect.slice();\r\n if (!this._labels.length || !isOutsidePosition(options.position)) {\r\n if ((0, _utils.normalizeEnum)(\"none\" !== this._getOption(\"resolveLabelOverlapping\", true))) {\r\n this._labels.forEach(function(l) {\r\n return !l.isVisible() && l.draw(true)\r\n })\r\n }\r\n return\r\n }\r\n var groupWidth = this._labels.map(function(label) {\r\n label.resetEllipsis();\r\n return label.getBoundingRect().width\r\n }).reduce(function(max, width) {\r\n return Math.max(max, width)\r\n }, 0);\r\n labelWidth = groupWidth + options.horizontalOffset + getLabelIndent(options.position);\r\n if (!adaptiveLayout.keepLabels && width - labelWidth < adaptiveLayout.width) {\r\n this._labels.forEach(function(label) {\r\n label.draw(false)\r\n });\r\n return\r\n } else {\r\n if (width - labelWidth < adaptiveLayout.width) {\r\n labelWidth = width - adaptiveLayout.width;\r\n labelWidth = labelWidth > 0 ? labelWidth : 0\r\n }\r\n this._labels.forEach(function(label) {\r\n label.draw(true)\r\n })\r\n }\r\n if (\"left\" === options.horizontalAlignment) {\r\n rect[0] += labelWidth\r\n } else {\r\n rect[2] -= labelWidth\r\n }\r\n },\r\n _buildNodes: function() {\r\n this._createLabels()\r\n },\r\n _change_TILING: function() {\r\n var that = this;\r\n var options = that._getOption(\"label\");\r\n var getCoords = getInsideLabelPosition;\r\n var inverted = that._getOption(\"inverted\", true);\r\n var textAlignment;\r\n if (isOutsidePosition(options.position)) {\r\n if ((0, _utils.normalizeEnum)(options.position) === OUTSIDE_POSITION) {\r\n getCoords = \"left\" === options.horizontalAlignment ? getOutsideLeftLabelPosition : getOutsideRightLabelPosition\r\n } else {\r\n textAlignment = this._defaultLabelTextAlignment();\r\n getCoords = \"left\" === options.horizontalAlignment ? getColumnLabelLeftPosition(this._labelRect, this._rect, textAlignment) : getColumnLabelRightPosition(this._labelRect, this._rect, textAlignment)\r\n }\r\n }\r\n that._labels.forEach(function(label, index) {\r\n var item = that._items[index];\r\n var borderWidth = item.getNormalStyle()[\"stroke-width\"];\r\n var halfBorderWidth = inverted ? borderWidth / 2 : -borderWidth / 2;\r\n var coords = halfBorderWidth ? item.coords.map(function(coord, index) {\r\n if (1 === index || 3 === index) {\r\n return coord - halfBorderWidth\r\n } else {\r\n if (2 === index) {\r\n return coord - borderWidth\r\n } else {\r\n if (0 === index) {\r\n return coord + borderWidth\r\n }\r\n }\r\n }\r\n return coord\r\n }) : item.coords;\r\n if (!options.showForZeroValues && 0 === item.value) {\r\n label.draw(false);\r\n return\r\n }\r\n if (isOutsidePosition(options.position)) {\r\n that._correctLabelWidth(label, item.coords, options)\r\n }\r\n var bBox = label.getBoundingRect();\r\n var pos = correctLabelPosition(getCoords(coords, bBox, options, inverted), bBox, that._labelRect);\r\n label.setFigureToDrawConnector(coords);\r\n label.shift(pos.x, pos.y)\r\n });\r\n that._resolveLabelOverlapping()\r\n }\r\n },\r\n members: {\r\n _resolveLabelOverlapping: function() {\r\n var that = this;\r\n var resolveLabelOverlapping = (0, _utils.normalizeEnum)(that._getOption(\"resolveLabelOverlapping\", true));\r\n var labels = this._getOption(\"inverted\", true) ? that._labels.slice().reverse() : that._labels;\r\n if (\"hide\" === resolveLabelOverlapping) {\r\n labels.reduce(function(height, label) {\r\n if (label.getBoundingRect().y < height) {\r\n label.hide()\r\n } else {\r\n height = label.getBoundingRect().y + label.getBoundingRect().height\r\n }\r\n return height\r\n }, 0)\r\n } else {\r\n if (\"shift\" === resolveLabelOverlapping) {\r\n var maxHeight = this._labelRect[3];\r\n labels.reduce(function(_ref, label, index, labels) {\r\n var _ref2 = _slicedToArray(_ref, 2),\r\n height = _ref2[0],\r\n emptySpace = _ref2[1];\r\n var bBox = label.getBoundingRect();\r\n var y = bBox.y;\r\n if (bBox.y < height) {\r\n label.shift(bBox.x, height);\r\n y = height\r\n }\r\n if (y - height > 0) {\r\n emptySpace += y - height\r\n }\r\n if (y + bBox.height > maxHeight) {\r\n if (emptySpace && emptySpace > y + bBox.height - maxHeight) {\r\n removeEmptySpace(labels.slice(0, index).reverse(), y + bBox.height - maxHeight, that._labelRect[1]);\r\n emptySpace -= y + bBox.height - maxHeight;\r\n label.shift(bBox.x, y - (y + bBox.height - maxHeight));\r\n height = y - (y + bBox.height - maxHeight) + bBox.height\r\n } else {\r\n label.hide()\r\n }\r\n } else {\r\n height = y + bBox.height\r\n }\r\n return [height, emptySpace]\r\n }, [this._labelRect[1], 0])\r\n }\r\n }\r\n },\r\n _defaultLabelTextAlignment: function() {\r\n return this._getOption(\"rtlEnabled\", true) ? \"right\" : \"left\"\r\n },\r\n _correctLabelWidth: function(label, item, options) {\r\n var isLeftPos = \"left\" === options.horizontalAlignment;\r\n var minX = isLeftPos ? this._labelRect[0] : item[2];\r\n var maxX = isLeftPos ? item[0] : this._labelRect[2];\r\n var maxWidth = maxX - minX;\r\n if (label.getBoundingRect().width > maxWidth) {\r\n label.fit(maxWidth)\r\n }\r\n },\r\n _createLabels: function() {\r\n var that = this;\r\n var labelOptions = that._getOption(\"label\");\r\n var connectorStrategy = getConnectorStrategy(labelOptions, that._getOption(\"inverted\", true));\r\n this._labelsGroup.clear();\r\n if (!labelOptions.visible) {\r\n return\r\n }\r\n this._labels = that._items.map(function(item) {\r\n var label = new _label.Label({\r\n renderer: that._renderer,\r\n labelsGroup: that._labelsGroup,\r\n strategy: connectorStrategy\r\n });\r\n label.setOptions(getLabelOptions(labelOptions, item.color, that._defaultLabelTextAlignment()));\r\n label.setData({\r\n item: item,\r\n value: item.value,\r\n percent: item.percent\r\n });\r\n label.draw(true);\r\n return label\r\n });\r\n if (this._labels.length && isOutsidePosition(labelOptions.position)) {\r\n this._requestChange([\"LAYOUT\"])\r\n }\r\n }\r\n },\r\n customize: function(constructor) {\r\n constructor.prototype._proxyData.push(function(x, y) {\r\n var that = this;\r\n var data;\r\n that._labels.forEach(function(label, index) {\r\n var rect = label.getBoundingRect();\r\n if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) {\r\n var pos = isOutsidePosition(that._getOption(\"label\").position) ? \"outside\" : \"inside\";\r\n data = {\r\n id: index,\r\n type: pos + \"-label\"\r\n };\r\n return true\r\n }\r\n });\r\n return data\r\n });\r\n [\"label\", \"resolveLabelOverlapping\"].forEach(function(optionName) {\r\n constructor.addChange({\r\n code: optionName.toUpperCase(),\r\n handler: function() {\r\n this._createLabels();\r\n this._requestChange([\"LAYOUT\"])\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: optionName\r\n })\r\n })\r\n },\r\n fontFields: [\"label.font\"]\r\n};\r\nexports.plugin = plugin;\r\n","/**\r\n * DevExtreme (viz/funnel/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\nexports.plugin = void 0;\r\nvar _funnel = _interopRequireDefault(require(\"./funnel\"));\r\nvar _tracker = require(\"../components/tracker\");\r\nvar _type = require(\"../../core/utils/type\");\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 = \"__funnel_data_\";\r\nvar dataKeyModifier = 0;\r\nvar proto = _funnel.default.prototype;\r\nproto._eventsMap.onItemClick = {\r\n name: \"itemClick\"\r\n};\r\nproto._eventsMap.onLegendClick = {\r\n name: \"legendClick\"\r\n};\r\nvar getDataKey = function() {\r\n return DATA_KEY_BASE + dataKeyModifier++\r\n};\r\nvar plugin = {\r\n name: \"tracker\",\r\n init: function() {\r\n var that = this;\r\n var dataKey = getDataKey();\r\n var getProxyData = function(e) {\r\n var rootOffset = that._renderer.getRootOffset();\r\n var x = Math.floor(e.pageX - rootOffset.left);\r\n var y = Math.floor(e.pageY - rootOffset.top);\r\n return that._hitTestTargets(x, y)\r\n };\r\n that._tracker = new _tracker.Tracker({\r\n widget: that,\r\n root: that._renderer.root,\r\n getData: function(e, tooltipData) {\r\n var target = e.target;\r\n var data = target[dataKey];\r\n if ((0, _type.isDefined)(data)) {\r\n return data\r\n }\r\n var proxyData = getProxyData(e);\r\n if (tooltipData && proxyData && \"inside-label\" !== proxyData.type) {\r\n return\r\n }\r\n return proxyData && proxyData.id\r\n },\r\n getNode: function(index) {\r\n return that._items[index]\r\n },\r\n click: function(e) {\r\n var proxyData = getProxyData(e.event);\r\n var dataType = proxyData && proxyData.type;\r\n var event = \"legend\" === dataType ? \"legendClick\" : \"itemClick\";\r\n that._eventTrigger(event, {\r\n item: e.node,\r\n event: e.event\r\n })\r\n }\r\n });\r\n this._dataKey = dataKey\r\n },\r\n dispose: function() {\r\n this._tracker.dispose()\r\n },\r\n extenders: {\r\n _change_TILING: function() {\r\n var dataKey = this._dataKey;\r\n this._items.forEach(function(item, index) {\r\n item.element.data(dataKey, index)\r\n })\r\n }\r\n }\r\n};\r\nexports.plugin = plugin;\r\n","/**\r\n * DevExtreme (viz/funnel/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\nexports.plugin = void 0;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _tooltip = require(\"../core/tooltip\");\r\n\r\nfunction getCoords(coords, figureCoords, renderer) {\r\n var offset = renderer.getRootOffset();\r\n return coords || figureCoords && [(figureCoords[0] + figureCoords[2]) / 2 + offset.left, (figureCoords[1] + figureCoords[5]) / 2 + offset.top] || [-1e3, -1e3]\r\n}\r\nvar plugin = {\r\n name: \"funnel-tooltip\",\r\n init: _common.noop,\r\n dispose: _common.noop,\r\n extenders: {\r\n _buildNodes: function() {\r\n this.hideTooltip()\r\n },\r\n _change_TILING: function() {\r\n if (this._tooltipIndex >= 0) {\r\n this._moveTooltip(this._items[this._tooltipIndex])\r\n }\r\n }\r\n },\r\n members: {\r\n hideTooltip: function() {\r\n if (this._tooltipIndex >= 0) {\r\n this._tooltipIndex = -1;\r\n this._tooltip.hide()\r\n }\r\n },\r\n _moveTooltip: function(item, coords) {\r\n var xy = getCoords(coords, item.coords, this._renderer);\r\n this._tooltip.move(xy[0], xy[1], 0)\r\n },\r\n _showTooltip: function(index, coords) {\r\n var that = this;\r\n var tooltip = that._tooltip;\r\n var item = that._items[index];\r\n if (that._tooltipIndex === index) {\r\n that._moveTooltip(item, 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, item.coords, this._renderer);\r\n callback(tooltip.show({\r\n value: item.value,\r\n valueText: tooltip.formatValue(item.value),\r\n percentText: tooltip.formatValue(item.percent, \"percent\"),\r\n percent: item.percent,\r\n item: item\r\n }, {\r\n x: xy[0],\r\n y: xy[1],\r\n offset: 0\r\n }, {\r\n item: item\r\n }, void 0, callback))\r\n }\r\n },\r\n customize: function(constructor) {\r\n constructor.addPlugin(_tooltip.plugin)\r\n }\r\n};\r\nexports.plugin = plugin;\r\n","/**\r\n * DevExtreme (viz/linear_gauge.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 _linear_gauge = _interopRequireDefault(require(\"./gauges/linear_gauge\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _linear_gauge.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (viz/gauges/linear_gauge.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\n\r\nfunction _typeof(obj) {\r\n \"@babel/helpers - typeof\";\r\n if (\"function\" === typeof Symbol && \"symbol\" === typeof Symbol.iterator) {\r\n _typeof = function(obj) {\r\n return typeof obj\r\n }\r\n } else {\r\n _typeof = function(obj) {\r\n return obj && \"function\" === typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj\r\n }\r\n }\r\n return _typeof(obj)\r\n}\r\nexports.default = void 0;\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../../core/component_registrator\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _object = require(\"../../core/utils/object\");\r\nvar _base_gauge = require(\"./base_gauge\");\r\nvar _common = require(\"./common\");\r\nvar _utils = require(\"../core/utils\");\r\nvar linearIndicators = _interopRequireWildcard(require(\"./linear_indicators\"));\r\nvar _linear_range_container = _interopRequireDefault(require(\"./linear_range_container\"));\r\n\r\nfunction _getRequireWildcardCache() {\r\n if (\"function\" !== typeof WeakMap) {\r\n return null\r\n }\r\n var cache = new WeakMap;\r\n _getRequireWildcardCache = function() {\r\n return cache\r\n };\r\n return cache\r\n}\r\n\r\nfunction _interopRequireWildcard(obj) {\r\n if (obj && obj.__esModule) {\r\n return obj\r\n }\r\n if (null === obj || \"object\" !== _typeof(obj) && \"function\" !== typeof obj) {\r\n return {\r\n \"default\": obj\r\n }\r\n }\r\n var cache = _getRequireWildcardCache();\r\n if (cache && cache.has(obj)) {\r\n return cache.get(obj)\r\n }\r\n var newObj = {};\r\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\r\n for (var key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\r\n if (desc && (desc.get || desc.set)) {\r\n Object.defineProperty(newObj, key, desc)\r\n } else {\r\n newObj[key] = obj[key]\r\n }\r\n }\r\n }\r\n newObj.default = obj;\r\n if (cache) {\r\n cache.set(obj, newObj)\r\n }\r\n return newObj\r\n}\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 _min = Math.min;\r\nvar _round = Math.round;\r\nvar dxLinearGauge = _common.dxGauge.inherit({\r\n _rootClass: \"dxg-linear-gauge\",\r\n _factoryMethods: {\r\n rangeContainer: \"createLinearRangeContainer\",\r\n indicator: \"createLinearIndicator\"\r\n },\r\n _gridSpacingFactor: 25,\r\n _scaleTypes: {\r\n type: \"xyAxes\",\r\n drawingType: \"linear\"\r\n },\r\n _getTicksOrientation: function(scaleOptions) {\r\n return scaleOptions.isHorizontal ? scaleOptions.verticalOrientation : scaleOptions.horizontalOrientation\r\n },\r\n _getThemeManagerOptions: function() {\r\n var options = this.callBase.apply(this, arguments);\r\n options.subTheme = \"_linear\";\r\n return options\r\n },\r\n _getInvertedState: function() {\r\n return !this._area.vertical && this.option(\"rtlEnabled\")\r\n },\r\n _prepareScaleSettings: function() {\r\n var scaleOptions = this.callBase();\r\n scaleOptions.inverted = this._getInvertedState();\r\n return scaleOptions\r\n },\r\n _updateScaleTickIndent: function(scaleOptions) {\r\n var indentFromTick = scaleOptions.label.indentFromTick;\r\n var length = scaleOptions.tick.length;\r\n var textParams = this._scale.measureLabels((0, _extend.extend)({}, this._canvas));\r\n var verticalTextCorrection = scaleOptions.isHorizontal ? textParams.height + textParams.y : 0;\r\n var isIndentPositive = indentFromTick > 0;\r\n var orientation;\r\n var textCorrection;\r\n var tickCorrection;\r\n if (scaleOptions.isHorizontal) {\r\n orientation = isIndentPositive ? {\r\n center: .5,\r\n top: 0,\r\n bottom: 1\r\n } : {\r\n center: .5,\r\n top: 1,\r\n bottom: 0\r\n };\r\n tickCorrection = length * orientation[scaleOptions.verticalOrientation];\r\n textCorrection = textParams.y\r\n } else {\r\n orientation = isIndentPositive ? {\r\n center: .5,\r\n left: 0,\r\n right: 1\r\n } : {\r\n center: .5,\r\n left: 1,\r\n right: 0\r\n };\r\n tickCorrection = length * orientation[scaleOptions.horizontalOrientation];\r\n textCorrection = -textParams.width\r\n }\r\n scaleOptions.label.indentFromAxis = -indentFromTick + (isIndentPositive ? -tickCorrection + textCorrection : tickCorrection - verticalTextCorrection);\r\n this._scale.updateOptions(scaleOptions)\r\n },\r\n _shiftScale: function(layout, scaleOptions) {\r\n var that = this;\r\n var canvas = (0, _extend.extend)({}, that._canvas);\r\n var isHorizontal = scaleOptions.isHorizontal;\r\n var scale = that._scale;\r\n canvas[isHorizontal ? \"left\" : \"top\"] = that._area[isHorizontal ? \"startCoord\" : \"endCoord\"];\r\n canvas[isHorizontal ? \"right\" : \"bottom\"] = canvas[isHorizontal ? \"width\" : \"height\"] - that._area[isHorizontal ? \"endCoord\" : \"startCoord\"];\r\n scale.draw(canvas);\r\n scale.shift({\r\n left: -layout.x,\r\n top: -layout.y\r\n })\r\n },\r\n _setupCodomain: function() {\r\n var that = this;\r\n var geometry = that.option(\"geometry\") || {};\r\n var vertical = \"vertical\" === (0, _utils.normalizeEnum)(geometry.orientation);\r\n var initialStartCoord = -100;\r\n var initialEndCoord = 100;\r\n that._area = {\r\n vertical: vertical,\r\n x: 0,\r\n y: 0,\r\n startCoord: initialStartCoord,\r\n endCoord: initialEndCoord\r\n };\r\n that._rangeContainer.vertical = vertical;\r\n that._translator.setInverted(that._getInvertedState());\r\n that._translator.setCodomain(initialStartCoord, initialEndCoord)\r\n },\r\n _getScaleLayoutValue: function() {\r\n return this._area[this._area.vertical ? \"x\" : \"y\"]\r\n },\r\n _getTicksCoefficients: function(options) {\r\n var coefs = {\r\n inner: 0,\r\n outer: 1\r\n };\r\n if (this._area.vertical) {\r\n if (\"left\" === options.horizontalOrientation) {\r\n coefs.inner = 1;\r\n coefs.outer = 0\r\n } else {\r\n if (\"center\" === options.horizontalOrientation) {\r\n coefs.inner = coefs.outer = .5\r\n }\r\n }\r\n } else {\r\n if (\"top\" === options.verticalOrientation) {\r\n coefs.inner = 1;\r\n coefs.outer = 0\r\n } else {\r\n if (\"center\" === options.verticalOrientation) {\r\n coefs.inner = coefs.outer = .5\r\n }\r\n }\r\n }\r\n return coefs\r\n },\r\n _correctScaleIndents: function(result, indentFromTick, textParams) {\r\n var vertical = this._area.vertical;\r\n if (indentFromTick >= 0) {\r\n result.max += indentFromTick + textParams[vertical ? \"width\" : \"height\"]\r\n } else {\r\n result.min -= -indentFromTick + textParams[vertical ? \"width\" : \"height\"]\r\n }\r\n result.indent = textParams[vertical ? \"height\" : \"width\"] / 2\r\n },\r\n _measureMainElements: function(elements, scaleMeasurement) {\r\n var that = this;\r\n var x = that._area.x;\r\n var y = that._area.y;\r\n var minBound = 1e3;\r\n var maxBound = 0;\r\n var indent = 0;\r\n var scale = that._scale;\r\n (0, _iterator.each)(elements.concat(scale), function(_, element) {\r\n var bounds = element.measure ? element.measure({\r\n x: x + element.getOffset(),\r\n y: y + element.getOffset()\r\n }) : scaleMeasurement;\r\n void 0 !== bounds.max && (maxBound = _max(maxBound, bounds.max));\r\n void 0 !== bounds.min && (minBound = _min(minBound, bounds.min));\r\n bounds.indent > 0 && (indent = _max(indent, bounds.indent))\r\n });\r\n return {\r\n minBound: minBound,\r\n maxBound: maxBound,\r\n indent: indent\r\n }\r\n },\r\n _applyMainLayout: function(elements, scaleMeasurement) {\r\n var that = this;\r\n var measurements = that._measureMainElements(elements, scaleMeasurement);\r\n var area = that._area;\r\n var rect;\r\n var offset;\r\n if (area.vertical) {\r\n rect = selectRectBySizes(that._innerRect, {\r\n width: measurements.maxBound - measurements.minBound\r\n });\r\n offset = (rect.left + rect.right) / 2 - (measurements.minBound + measurements.maxBound) / 2;\r\n area.startCoord = rect.bottom - measurements.indent;\r\n area.endCoord = rect.top + measurements.indent;\r\n area.x = _round(area.x + offset)\r\n } else {\r\n rect = selectRectBySizes(that._innerRect, {\r\n height: measurements.maxBound - measurements.minBound\r\n });\r\n offset = (rect.top + rect.bottom) / 2 - (measurements.minBound + measurements.maxBound) / 2;\r\n area.startCoord = rect.left + measurements.indent;\r\n area.endCoord = rect.right - measurements.indent;\r\n area.y = _round(area.y + offset)\r\n }\r\n that._translator.setCodomain(area.startCoord, area.endCoord);\r\n that._innerRect = rect\r\n },\r\n _getElementLayout: function(offset) {\r\n return {\r\n x: _round(this._area.x + offset),\r\n y: _round(this._area.y + offset)\r\n }\r\n },\r\n _getApproximateScreenRange: function() {\r\n var that = this;\r\n var area = that._area;\r\n var s = area.vertical ? that._canvas.height : that._canvas.width;\r\n s > area.totalSize && (s = area.totalSize);\r\n s = .8 * s;\r\n return s\r\n },\r\n _getDefaultSize: function() {\r\n var geometry = this.option(\"geometry\") || {};\r\n if (\"vertical\" === geometry.orientation) {\r\n return {\r\n width: 100,\r\n height: 300\r\n }\r\n } else {\r\n return {\r\n width: 300,\r\n height: 100\r\n }\r\n }\r\n },\r\n _factory: (0, _object.clone)(_base_gauge.dxBaseGauge.prototype._factory)\r\n});\r\n\r\nfunction selectRectBySizes(srcRect, sizes, margins) {\r\n var rect = (0, _extend.extend)({}, srcRect);\r\n var step;\r\n margins = margins || {};\r\n if (sizes) {\r\n rect.left += margins.left || 0;\r\n rect.right -= margins.right || 0;\r\n rect.top += margins.top || 0;\r\n rect.bottom -= margins.bottom || 0;\r\n if (sizes.width > 0) {\r\n step = (rect.right - rect.left - sizes.width) / 2;\r\n if (step > 0) {\r\n rect.left += step;\r\n rect.right -= step\r\n }\r\n }\r\n if (sizes.height > 0) {\r\n step = (rect.bottom - rect.top - sizes.height) / 2;\r\n if (step > 0) {\r\n rect.top += step;\r\n rect.bottom -= step\r\n }\r\n }\r\n }\r\n return rect\r\n}\r\nvar indicators = dxLinearGauge.prototype._factory.indicators = {};\r\ndxLinearGauge.prototype._factory.createIndicator = (0, _common.createIndicatorCreator)(indicators);\r\nindicators._default = linearIndicators._default;\r\nindicators.rectangle = linearIndicators.rectangle;\r\nindicators.rhombus = linearIndicators.rhombus;\r\nindicators.circle = linearIndicators.circle;\r\nindicators.trianglemarker = linearIndicators.trianglemarker;\r\nindicators.textcloud = linearIndicators.textcloud;\r\nindicators.rangebar = linearIndicators.rangebar;\r\ndxLinearGauge.prototype._factory.RangeContainer = _linear_range_container.default;\r\n(0, _component_registrator.default)(\"dxLinearGauge\", dxLinearGauge);\r\nvar _default = dxLinearGauge;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/gauges/linear_indicators.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.textcloud = exports.trianglemarker = exports.circle = exports.rhombus = exports.rectangle = exports.rangebar = exports._default = void 0;\r\nvar _base_indicators = require(\"./base_indicators\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _Number = Number;\r\nvar SimpleIndicator = _base_indicators.BaseIndicator.inherit({\r\n _move: function() {\r\n var that = this;\r\n var delta = that._actualPosition - that._zeroPosition;\r\n that._rootElement.move(that.vertical ? 0 : delta, that.vertical ? delta : 0);\r\n that._trackerElement && that._trackerElement.move(that.vertical ? 0 : delta, that.vertical ? delta : 0)\r\n },\r\n _isEnabled: function() {\r\n this.vertical = this._options.vertical;\r\n return this._options.length > 0 && this._options.width > 0\r\n },\r\n _isVisible: function() {\r\n return true\r\n },\r\n _getTrackerSettings: function() {\r\n var options = this._options;\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n var width = options.width / 2;\r\n var length = options.length / 2;\r\n var p = this._zeroPosition;\r\n width > 10 || (width = 10);\r\n length > 10 || (length = 10);\r\n if (this.vertical) {\r\n x1 = options.x - length;\r\n x2 = options.x + length;\r\n y1 = p + width;\r\n y2 = p - width\r\n } else {\r\n x1 = p - width;\r\n x2 = p + width;\r\n y1 = options.y + length;\r\n y2 = options.y - length\r\n }\r\n return {\r\n points: [x1, y1, x1, y2, x2, y2, x2, y1]\r\n }\r\n },\r\n _render: function() {\r\n var that = this;\r\n that._zeroPosition = that._translator.getCodomainStart()\r\n },\r\n _clear: function() {\r\n delete this._element\r\n },\r\n measure: function(layout) {\r\n var p = this.vertical ? layout.x : layout.y;\r\n return {\r\n min: p - this._options.length / 2,\r\n max: p + this._options.length / 2\r\n }\r\n },\r\n getTooltipParameters: function() {\r\n var that = this;\r\n var options = that._options;\r\n var p = that._actualPosition;\r\n var parameters = {\r\n x: p,\r\n y: p,\r\n value: that._currentValue,\r\n color: options.color,\r\n offset: options.width / 2\r\n };\r\n that.vertical ? parameters.x = options.x : parameters.y = options.y;\r\n return parameters\r\n }\r\n});\r\nvar rectangle = SimpleIndicator.inherit({\r\n _render: function() {\r\n var that = this;\r\n var options = that._options;\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n that.callBase();\r\n var p = that._zeroPosition;\r\n if (that.vertical) {\r\n x1 = options.x - options.length / 2;\r\n x2 = options.x + options.length / 2;\r\n y1 = p + options.width / 2;\r\n y2 = p - options.width / 2\r\n } else {\r\n x1 = p - options.width / 2;\r\n x2 = p + options.width / 2;\r\n y1 = options.y + options.length / 2;\r\n y2 = options.y - options.length / 2\r\n }\r\n that._element = that._element || that._renderer.path([], \"area\").append(that._rootElement);\r\n that._element.attr({\r\n points: [x1, y1, x1, y2, x2, y2, x2, y1]\r\n })\r\n }\r\n});\r\nexports.rectangle = rectangle;\r\nvar rhombus = SimpleIndicator.inherit({\r\n _render: function() {\r\n var that = this;\r\n var options = that._options;\r\n var x;\r\n var y;\r\n var dx;\r\n var dy;\r\n that.callBase();\r\n if (that.vertical) {\r\n x = options.x;\r\n y = that._zeroPosition;\r\n dx = options.length / 2 || 0;\r\n dy = options.width / 2 || 0\r\n } else {\r\n x = that._zeroPosition;\r\n y = options.y;\r\n dx = options.width / 2 || 0;\r\n dy = options.length / 2 || 0\r\n }\r\n that._element = that._element || that._renderer.path([], \"area\").append(that._rootElement);\r\n that._element.attr({\r\n points: [x - dx, y, x, y - dy, x + dx, y, x, y + dy]\r\n })\r\n }\r\n});\r\nexports.rhombus = rhombus;\r\nvar circle = SimpleIndicator.inherit({\r\n _render: function() {\r\n var that = this;\r\n var options = that._options;\r\n var x;\r\n var y;\r\n that.callBase();\r\n if (that.vertical) {\r\n x = options.x;\r\n y = that._zeroPosition\r\n } else {\r\n x = that._zeroPosition;\r\n y = options.y\r\n }\r\n var r = options.length / 2 || 0;\r\n that._element = that._element || that._renderer.circle().append(that._rootElement);\r\n that._element.attr({\r\n cx: x,\r\n cy: y,\r\n r: r\r\n })\r\n }\r\n});\r\nexports.circle = circle;\r\nvar triangleMarker = SimpleIndicator.inherit({\r\n _isEnabled: function() {\r\n var that = this;\r\n that.vertical = that._options.vertical;\r\n that._inverted = that.vertical ? \"right\" === (0, _utils.normalizeEnum)(that._options.horizontalOrientation) : \"bottom\" === (0, _utils.normalizeEnum)(that._options.verticalOrientation);\r\n return that._options.length > 0 && that._options.width > 0\r\n },\r\n _isVisible: function() {\r\n return true\r\n },\r\n _render: function() {\r\n var that = this;\r\n var options = that._options;\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n var settings = {\r\n stroke: \"none\",\r\n \"stroke-width\": 0,\r\n \"stroke-linecap\": \"square\"\r\n };\r\n that.callBase();\r\n if (that.vertical) {\r\n x1 = options.x;\r\n y1 = that._zeroPosition;\r\n x2 = x1 + _Number(that._inverted ? options.length : -options.length);\r\n settings.points = [x1, y1, x2, y1 - options.width / 2, x2, y1 + options.width / 2]\r\n } else {\r\n y1 = options.y;\r\n x1 = that._zeroPosition;\r\n y2 = y1 + _Number(that._inverted ? options.length : -options.length);\r\n settings.points = [x1, y1, x1 - options.width / 2, y2, x1 + options.width / 2, y2]\r\n }\r\n if (options.space > 0) {\r\n settings[\"stroke-width\"] = Math.min(options.space, options.width / 4) || 0;\r\n settings.stroke = settings[\"stroke-width\"] > 0 ? options.containerBackgroundColor || \"none\" : \"none\"\r\n }\r\n that._element = that._element || that._renderer.path([], \"area\").append(that._rootElement);\r\n that._element.attr(settings).sharp()\r\n },\r\n _getTrackerSettings: function() {\r\n var that = this;\r\n var options = that._options;\r\n var width = options.width / 2;\r\n var length = _Number(options.length);\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n var result;\r\n width > 10 || (width = 10);\r\n length > 20 || (length = 20);\r\n if (that.vertical) {\r\n x1 = x2 = options.x;\r\n x2 = x1 + (that._inverted ? length : -length);\r\n y1 = that._zeroPosition + width;\r\n y2 = that._zeroPosition - width;\r\n result = [x1, y1, x2, y1, x2, y2, x1, y2]\r\n } else {\r\n y1 = options.y;\r\n y2 = y1 + (that._inverted ? length : -length);\r\n x1 = that._zeroPosition - width;\r\n x2 = that._zeroPosition + width;\r\n result = [x1, y1, x1, y2, x2, y2, x2, y1]\r\n }\r\n return {\r\n points: result\r\n }\r\n },\r\n measure: function(layout) {\r\n var that = this;\r\n var length = _Number(that._options.length);\r\n var minBound;\r\n var maxBound;\r\n if (that.vertical) {\r\n minBound = maxBound = layout.x;\r\n if (that._inverted) {\r\n maxBound = minBound + length\r\n } else {\r\n minBound = maxBound - length\r\n }\r\n } else {\r\n minBound = maxBound = layout.y;\r\n if (that._inverted) {\r\n maxBound = minBound + length\r\n } else {\r\n minBound = maxBound - length\r\n }\r\n }\r\n return {\r\n min: minBound,\r\n max: maxBound,\r\n indent: that._options.width / 2\r\n }\r\n },\r\n getTooltipParameters: function() {\r\n var that = this;\r\n var options = that._options;\r\n var s = (that._inverted ? options.length : -options.length) / 2;\r\n var parameters = that.callBase();\r\n that.vertical ? parameters.x += s : parameters.y += s;\r\n parameters.offset = options.length / 2;\r\n return parameters\r\n }\r\n});\r\nexports.trianglemarker = triangleMarker;\r\nvar textCloud = _base_indicators.BaseTextCloudMarker.inherit({\r\n _isEnabled: function() {\r\n var that = this;\r\n that.vertical = that._options.vertical;\r\n that._inverted = that.vertical ? \"right\" === (0, _utils.normalizeEnum)(that._options.horizontalOrientation) : \"bottom\" === (0, _utils.normalizeEnum)(that._options.verticalOrientation);\r\n return true\r\n },\r\n _isVisible: function() {\r\n return true\r\n },\r\n _getTextCloudOptions: function() {\r\n var that = this;\r\n var x = that._actualPosition;\r\n var y = that._actualPosition;\r\n var type;\r\n if (that.vertical) {\r\n x = that._options.x;\r\n type = that._inverted ? \"top-left\" : \"top-right\"\r\n } else {\r\n y = that._options.y;\r\n type = that._inverted ? \"right-top\" : \"right-bottom\"\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n type: type\r\n }\r\n },\r\n measure: function(layout) {\r\n var that = this;\r\n var minBound;\r\n var maxBound;\r\n var arrowLength = _Number(that._options.arrowLength) || 0;\r\n that._measureText();\r\n if (that.vertical) {\r\n if (that._inverted) {\r\n minBound = layout.x;\r\n maxBound = layout.x + arrowLength + that._textFullWidth\r\n } else {\r\n minBound = layout.x - arrowLength - that._textFullWidth;\r\n maxBound = layout.x\r\n }\r\n } else {\r\n if (that._inverted) {\r\n minBound = layout.y;\r\n maxBound = layout.y + arrowLength + that._textFullHeight\r\n } else {\r\n minBound = layout.y - arrowLength - that._textFullHeight;\r\n maxBound = layout.y\r\n }\r\n }\r\n return {\r\n min: minBound,\r\n max: maxBound,\r\n indent: 0\r\n }\r\n },\r\n _correctCloudType: function(type, _ref, _ref2) {\r\n var x = _ref.x,\r\n y = _ref.y;\r\n var width = _ref2.width,\r\n height = _ref2.height;\r\n if (\"right-top\" === type || \"right-bottom\" === type) {\r\n if (x - width < this._translator.getCodomainStart()) {\r\n type = \"left-\".concat(type.split(\"-\")[1])\r\n }\r\n } else {\r\n if (\"top-left\" === type || \"top-right\" === type) {\r\n if (y + height > this._translator.getCodomainStart()) {\r\n type = \"bottom-\".concat(type.split(\"-\")[1])\r\n }\r\n }\r\n }\r\n return type\r\n }\r\n});\r\nexports.textcloud = textCloud;\r\nvar rangeBar = _base_indicators.BaseRangeBar.inherit({\r\n _isEnabled: function() {\r\n var that = this;\r\n that.vertical = that._options.vertical;\r\n that._inverted = that.vertical ? \"right\" === (0, _utils.normalizeEnum)(that._options.horizontalOrientation) : \"bottom\" === (0, _utils.normalizeEnum)(that._options.verticalOrientation);\r\n return that._options.size > 0\r\n },\r\n _isVisible: function() {\r\n return true\r\n },\r\n _createBarItem: function() {\r\n return this._renderer.path([], \"area\").append(this._rootElement)\r\n },\r\n _createTracker: function() {\r\n return this._renderer.path([], \"area\")\r\n },\r\n _setBarSides: function() {\r\n var that = this;\r\n var options = that._options;\r\n var size = _Number(options.size);\r\n var minSide;\r\n var maxSide;\r\n if (that.vertical) {\r\n if (that._inverted) {\r\n minSide = options.x;\r\n maxSide = options.x + size\r\n } else {\r\n minSide = options.x - size;\r\n maxSide = options.x\r\n }\r\n } else {\r\n if (that._inverted) {\r\n minSide = options.y;\r\n maxSide = options.y + size\r\n } else {\r\n minSide = options.y - size;\r\n maxSide = options.y\r\n }\r\n }\r\n that._minSide = minSide;\r\n that._maxSide = maxSide;\r\n that._minBound = minSide;\r\n that._maxBound = maxSide\r\n },\r\n _getSpace: function() {\r\n var options = this._options;\r\n return options.space > 0 ? _Number(options.space) : 0\r\n },\r\n _isTextVisible: function() {\r\n var textOptions = this._options.text || {};\r\n return textOptions.indent > 0 || textOptions.indent < 0\r\n },\r\n _getTextAlign: function() {\r\n return this.vertical ? this._options.text.indent > 0 ? \"left\" : \"right\" : \"center\"\r\n },\r\n _setTextItemsSides: function() {\r\n var that = this;\r\n var indent = _Number(that._options.text.indent);\r\n if (indent > 0) {\r\n that._lineStart = that._maxSide;\r\n that._lineEnd = that._maxSide + indent;\r\n that._textPosition = that._lineEnd + (that.vertical ? 2 : that._textHeight / 2);\r\n that._maxBound = that._textPosition + (that.vertical ? that._textWidth : that._textHeight / 2)\r\n } else {\r\n if (indent < 0) {\r\n that._lineStart = that._minSide;\r\n that._lineEnd = that._minSide + indent;\r\n that._textPosition = that._lineEnd - (that.vertical ? 2 : that._textHeight / 2);\r\n that._minBound = that._textPosition - (that.vertical ? that._textWidth : that._textHeight / 2)\r\n }\r\n }\r\n },\r\n _getPositions: function() {\r\n var that = this;\r\n var startPosition = that._startPosition;\r\n var endPosition = that._endPosition;\r\n var space = that._space;\r\n var basePosition = that._basePosition;\r\n var actualPosition = that._actualPosition;\r\n var mainPosition1;\r\n var mainPosition2;\r\n var backPosition1;\r\n var backPosition2;\r\n if (startPosition < endPosition) {\r\n if (basePosition < actualPosition) {\r\n mainPosition1 = basePosition;\r\n mainPosition2 = actualPosition\r\n } else {\r\n mainPosition1 = actualPosition;\r\n mainPosition2 = basePosition\r\n }\r\n backPosition1 = mainPosition1 - space;\r\n backPosition2 = mainPosition2 + space\r\n } else {\r\n if (basePosition > actualPosition) {\r\n mainPosition1 = basePosition;\r\n mainPosition2 = actualPosition\r\n } else {\r\n mainPosition1 = actualPosition;\r\n mainPosition2 = basePosition\r\n }\r\n backPosition1 = mainPosition1 + space;\r\n backPosition2 = mainPosition2 - space\r\n }\r\n return {\r\n start: startPosition,\r\n end: endPosition,\r\n main1: mainPosition1,\r\n main2: mainPosition2,\r\n back1: backPosition1,\r\n back2: backPosition2\r\n }\r\n },\r\n _buildItemSettings: function(from, to) {\r\n var that = this;\r\n var side1 = that._minSide;\r\n var side2 = that._maxSide;\r\n var points = that.vertical ? [side1, from, side1, to, side2, to, side2, from] : [from, side1, from, side2, to, side2, to, side1];\r\n return {\r\n points: points\r\n }\r\n },\r\n _updateTextPosition: function() {\r\n var that = this;\r\n that._text.attr(that.vertical ? {\r\n x: that._textPosition,\r\n y: that._actualPosition + that._textVerticalOffset\r\n } : {\r\n x: that._actualPosition,\r\n y: that._textPosition + that._textVerticalOffset\r\n })\r\n },\r\n _updateLinePosition: function() {\r\n var that = this;\r\n var actualPosition = that._actualPosition;\r\n var side1;\r\n var side2;\r\n var points;\r\n if (that.vertical) {\r\n if (that._basePosition >= actualPosition) {\r\n side1 = actualPosition;\r\n side2 = actualPosition + 2\r\n } else {\r\n side1 = actualPosition - 2;\r\n side2 = actualPosition\r\n }\r\n points = [that._lineStart, side1, that._lineStart, side2, that._lineEnd, side2, that._lineEnd, side1]\r\n } else {\r\n if (that._basePosition <= actualPosition) {\r\n side1 = actualPosition - 2;\r\n side2 = actualPosition\r\n } else {\r\n side1 = actualPosition;\r\n side2 = actualPosition + 2\r\n }\r\n points = [side1, that._lineStart, side1, that._lineEnd, side2, that._lineEnd, side2, that._lineStart]\r\n }\r\n that._line.attr({\r\n points: points\r\n }).sharp()\r\n },\r\n _getTooltipPosition: function() {\r\n var that = this;\r\n var crossCenter = (that._minSide + that._maxSide) / 2;\r\n var alongCenter = (that._basePosition + that._actualPosition) / 2;\r\n return that.vertical ? {\r\n x: crossCenter,\r\n y: alongCenter\r\n } : {\r\n x: alongCenter,\r\n y: crossCenter\r\n }\r\n },\r\n measure: function(layout) {\r\n var that = this;\r\n var size = _Number(that._options.size);\r\n var textIndent = _Number(that._options.text.indent);\r\n var minBound;\r\n var maxBound;\r\n var indent;\r\n that._measureText();\r\n if (that.vertical) {\r\n minBound = maxBound = layout.x;\r\n if (that._inverted) {\r\n maxBound += size\r\n } else {\r\n minBound -= size\r\n }\r\n if (that._hasText) {\r\n indent = that._textHeight / 2;\r\n if (textIndent > 0) {\r\n maxBound += textIndent + that._textWidth\r\n }\r\n if (textIndent < 0) {\r\n minBound += textIndent - that._textWidth\r\n }\r\n }\r\n } else {\r\n minBound = maxBound = layout.y;\r\n if (that._inverted) {\r\n maxBound += size\r\n } else {\r\n minBound -= size\r\n }\r\n if (that._hasText) {\r\n indent = that._textWidth / 2;\r\n if (textIndent > 0) {\r\n maxBound += textIndent + that._textHeight\r\n }\r\n if (textIndent < 0) {\r\n minBound += textIndent - that._textHeight\r\n }\r\n }\r\n }\r\n return {\r\n min: minBound,\r\n max: maxBound,\r\n indent: indent\r\n }\r\n }\r\n});\r\nexports.rangebar = exports._default = rangeBar;\r\n","/**\r\n * DevExtreme (viz/gauges/linear_range_container.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 _base_range_container = _interopRequireDefault(require(\"./base_range_container\"));\r\nvar _utils = require(\"../core/utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _Number = Number;\r\nvar _max = Math.max;\r\nvar LinearRangeContainer = _base_range_container.default.inherit({\r\n _processOptions: function() {\r\n var that = this;\r\n that.vertical = that._options.vertical;\r\n that._inner = that._outer = 0;\r\n if (that.vertical) {\r\n switch ((0, _utils.normalizeEnum)(that._options.horizontalOrientation)) {\r\n case \"left\":\r\n that._inner = 1;\r\n break;\r\n case \"center\":\r\n that._inner = that._outer = .5;\r\n break;\r\n default:\r\n that._outer = 1\r\n }\r\n } else {\r\n switch ((0, _utils.normalizeEnum)(that._options.verticalOrientation)) {\r\n case \"top\":\r\n that._inner = 1;\r\n break;\r\n case \"center\":\r\n that._inner = that._outer = .5;\r\n break;\r\n default:\r\n that._outer = 1\r\n }\r\n }\r\n },\r\n _isVisible: function() {\r\n return true\r\n },\r\n _createRange: function(range, layout) {\r\n var that = this;\r\n var inner = that._inner;\r\n var outer = that._outer;\r\n var startPosition = that._translator.translate(range.start);\r\n var endPosition = that._translator.translate(range.end);\r\n var points;\r\n var x = layout.x;\r\n var y = layout.y;\r\n var startWidth = range.startWidth;\r\n var endWidth = range.endWidth;\r\n if (that.vertical) {\r\n points = [x - startWidth * inner, startPosition, x - endWidth * inner, endPosition, x + endWidth * outer, endPosition, x + startWidth * outer, startPosition]\r\n } else {\r\n points = [startPosition, y + startWidth * outer, startPosition, y - startWidth * inner, endPosition, y - endWidth * inner, endPosition, y + endWidth * outer]\r\n }\r\n return that._renderer.path(points, \"area\")\r\n },\r\n measure: function(layout) {\r\n var result = {};\r\n var width;\r\n result.min = result.max = layout[this.vertical ? \"x\" : \"y\"];\r\n width = this._options.width;\r\n width = _Number(width) || _max(_Number(width.start), _Number(width.end));\r\n result.min -= this._inner * width;\r\n result.max += this._outer * width;\r\n return result\r\n }\r\n});\r\nvar _default = LinearRangeContainer;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/gauges/base_gauge.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.compareArrays = compareArrays;\r\nexports.getSampleText = exports.formatValue = exports.dxBaseGauge = void 0;\r\nvar _utils = require(\"../core/utils\");\r\nvar _extend2 = require(\"../../core/utils/extend\");\r\nvar _translator1d = require(\"../translators/translator1d\");\r\nvar _base_widget = _interopRequireDefault(require(\"../core/base_widget\"));\r\nvar _theme_manager = _interopRequireDefault(require(\"./theme_manager\"));\r\nvar _tracker = _interopRequireDefault(require(\"./tracker\"));\r\nvar _format_helper = _interopRequireDefault(require(\"../../format_helper\"));\r\nvar _export = require(\"../core/export\");\r\nvar _title = require(\"../core/title\");\r\nvar _tooltip = require(\"../core/tooltip\");\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 _Number = Number;\r\nvar _extend = _extend2.extend;\r\nvar _format = _format_helper.default.format;\r\nvar dxBaseGauge = _base_widget.default.inherit({\r\n _rootClassPrefix: \"dxg\",\r\n _themeSection: \"gauge\",\r\n _createThemeManager: function() {\r\n return new _theme_manager.default.ThemeManager(this._getThemeManagerOptions())\r\n },\r\n _initCore: function() {\r\n var that = this;\r\n var root = that._renderer.root;\r\n that._valueChangingLocker = 0;\r\n that._translator = that._factory.createTranslator();\r\n that._tracker = that._factory.createTracker({\r\n renderer: that._renderer,\r\n container: root\r\n });\r\n that._setTrackerCallbacks()\r\n },\r\n _beginValueChanging: function() {\r\n this._resetIsReady();\r\n this._onBeginUpdate();\r\n ++this._valueChangingLocker\r\n },\r\n _endValueChanging: function() {\r\n if (0 === --this._valueChangingLocker) {\r\n this._drawn()\r\n }\r\n },\r\n _setTrackerCallbacks: function() {\r\n var that = this;\r\n var renderer = that._renderer;\r\n var tooltip = that._tooltip;\r\n that._tracker.setCallbacks({\r\n \"tooltip-show\": function(target, info, callback) {\r\n var tooltipParameters = target.getTooltipParameters();\r\n var offset = renderer.getRootOffset();\r\n var formatObject = _extend({\r\n value: tooltipParameters.value,\r\n valueText: tooltip.formatValue(tooltipParameters.value),\r\n color: tooltipParameters.color\r\n }, info);\r\n return tooltip.show(formatObject, {\r\n x: tooltipParameters.x + offset.left,\r\n y: tooltipParameters.y + offset.top,\r\n offset: tooltipParameters.offset\r\n }, {\r\n target: info\r\n }, void 0, callback)\r\n },\r\n \"tooltip-hide\": function() {\r\n return tooltip.hide()\r\n }\r\n })\r\n },\r\n _dispose: function() {\r\n this._cleanCore();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _disposeCore: function() {\r\n var that = this;\r\n that._themeManager.dispose();\r\n that._tracker.dispose();\r\n that._translator = that._tracker = null\r\n },\r\n _cleanCore: function() {\r\n var that = this;\r\n that._tracker.deactivate();\r\n that._cleanContent()\r\n },\r\n _renderCore: function() {\r\n var that = this;\r\n if (!that._isValidDomain) {\r\n return\r\n }\r\n that._renderContent();\r\n that._tracker.setTooltipState(that._tooltip.isEnabled());\r\n that._tracker.activate();\r\n that._noAnimation = false\r\n },\r\n _applyChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n this._resizing = this._noAnimation = false\r\n },\r\n _setContentSize: function() {\r\n var that = this;\r\n that._resizing = that._noAnimation = 2 === that._changes.count();\r\n that.callBase.apply(that, arguments)\r\n },\r\n _applySize: function(rect) {\r\n var that = this;\r\n that._innerRect = {\r\n left: rect[0],\r\n top: rect[1],\r\n right: rect[2],\r\n bottom: rect[3]\r\n };\r\n var layoutCache = that._layout._cache;\r\n that._cleanCore();\r\n that._renderCore();\r\n that._layout._cache = that._layout._cache || layoutCache;\r\n return [rect[0], that._innerRect.top, rect[2], that._innerRect.bottom]\r\n },\r\n _initialChanges: [\"DOMAIN\"],\r\n _themeDependentChanges: [\"DOMAIN\"],\r\n _optionChangesMap: {\r\n subtitle: \"MOSTLY_TOTAL\",\r\n indicator: \"MOSTLY_TOTAL\",\r\n geometry: \"MOSTLY_TOTAL\",\r\n animation: \"MOSTLY_TOTAL\",\r\n startValue: \"DOMAIN\",\r\n endValue: \"DOMAIN\"\r\n },\r\n _optionChangesOrder: [\"DOMAIN\", \"MOSTLY_TOTAL\"],\r\n _change_DOMAIN: function() {\r\n this._setupDomain()\r\n },\r\n _change_MOSTLY_TOTAL: function() {\r\n this._applyMostlyTotalChange()\r\n },\r\n _setupDomain: function() {\r\n var that = this;\r\n that._setupDomainCore();\r\n that._isValidDomain = isFinite(1 / (that._translator.getDomain()[1] - that._translator.getDomain()[0]));\r\n if (!that._isValidDomain) {\r\n that._incidentOccurred(\"W2301\")\r\n }\r\n that._change([\"MOSTLY_TOTAL\"])\r\n },\r\n _applyMostlyTotalChange: function() {\r\n var that = this;\r\n that._setupCodomain();\r\n that._setupAnimationSettings();\r\n that._setupDefaultFormat();\r\n that._change([\"LAYOUT\"])\r\n },\r\n _setupAnimationSettings: function() {\r\n var that = this;\r\n var option = that.option(\"animation\");\r\n that._animationSettings = null;\r\n if (void 0 === option || option) {\r\n option = _extend({\r\n enabled: true,\r\n duration: 1e3,\r\n easing: \"easeOutCubic\"\r\n }, option);\r\n if (option.enabled && option.duration > 0) {\r\n that._animationSettings = {\r\n duration: _Number(option.duration),\r\n easing: option.easing\r\n }\r\n }\r\n }\r\n that._containerBackgroundColor = that.option(\"containerBackgroundColor\") || that._themeManager.theme().containerBackgroundColor\r\n },\r\n _setupDefaultFormat: function() {\r\n var domain = this._translator.getDomain();\r\n this._defaultFormatOptions = (0, _utils.getAppropriateFormat)(domain[0], domain[1], this._getApproximateScreenRange())\r\n },\r\n _setupDomainCore: null,\r\n _calculateSize: null,\r\n _cleanContent: null,\r\n _renderContent: null,\r\n _setupCodomain: null,\r\n _getApproximateScreenRange: null,\r\n _factory: {\r\n createTranslator: function() {\r\n return new _translator1d.Translator1D\r\n },\r\n createTracker: function(parameters) {\r\n return new _tracker.default(parameters)\r\n }\r\n }\r\n});\r\nexports.dxBaseGauge = dxBaseGauge;\r\nvar formatValue = function(value, options, extra) {\r\n options = options || {};\r\n var text = _format(value, options.format);\r\n var formatObject;\r\n if (\"function\" === typeof options.customizeText) {\r\n formatObject = _extend({\r\n value: value,\r\n valueText: text\r\n }, extra);\r\n return String(options.customizeText.call(formatObject, formatObject))\r\n }\r\n return text\r\n};\r\nexports.formatValue = formatValue;\r\nvar getSampleText = function(translator, options) {\r\n var text1 = formatValue(translator.getDomainStart(), options);\r\n var text2 = formatValue(translator.getDomainEnd(), options);\r\n return text1.length >= text2.length ? text1 : text2\r\n};\r\nexports.getSampleText = getSampleText;\r\n\r\nfunction compareArrays(array1, array2) {\r\n return array1 && array2 && array1.length === array2.length && compareArraysElements(array1, array2)\r\n}\r\n\r\nfunction compareArraysElements(array1, array2) {\r\n var i;\r\n var ii = array1.length;\r\n var array1ValueIsNaN;\r\n var array2ValueIsNaN;\r\n for (i = 0; i < ii; ++i) {\r\n array1ValueIsNaN = array1[i] !== array1[i];\r\n array2ValueIsNaN = array2[i] !== array2[i];\r\n if (array1ValueIsNaN && array2ValueIsNaN) {\r\n continue\r\n }\r\n if (array1[i] !== array2[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\ndxBaseGauge.addPlugin(_export.plugin);\r\ndxBaseGauge.addPlugin(_title.plugin);\r\ndxBaseGauge.addPlugin(_tooltip.plugin);\r\ndxBaseGauge.addPlugin(_loading_indicator.plugin);\r\nvar _setTooltipOptions = dxBaseGauge.prototype._setTooltipOptions;\r\ndxBaseGauge.prototype._setTooltipOptions = function() {\r\n _setTooltipOptions.apply(this, arguments);\r\n this._tracker && this._tracker.setTooltipState(this._tooltip.isEnabled())\r\n};\r\n","/**\r\n * DevExtreme (viz/gauges/base_indicators.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.BaseRangeBar = exports.BaseTextCloudMarker = exports.BaseIndicator = exports.BaseElement = void 0;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _base_gauge = require(\"./base_gauge\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _isFinite = isFinite;\r\nvar _Number = Number;\r\nvar _round = Math.round;\r\nvar _formatValue = _base_gauge.formatValue;\r\nvar _getSampleText = _base_gauge.getSampleText;\r\nvar BaseElement = _class.default.inherit({\r\n ctor: function(parameters) {\r\n var that = this;\r\n (0, _iterator.each)(parameters, function(name, value) {\r\n that[\"_\" + name] = value\r\n });\r\n that._init()\r\n },\r\n dispose: function() {\r\n var that = this;\r\n that._dispose();\r\n (0, _iterator.each)(that, function(name) {\r\n that[name] = null\r\n });\r\n return that\r\n },\r\n getOffset: function() {\r\n return _Number(this._options.offset) || 0\r\n }\r\n});\r\nexports.BaseElement = BaseElement;\r\nvar BaseIndicator = BaseElement.inherit({\r\n _init: function() {\r\n var that = this;\r\n that._rootElement = that._createRoot().linkOn(that._owner, {\r\n name: \"value-indicator\",\r\n after: \"core\"\r\n });\r\n that._trackerElement = that._createTracker()\r\n },\r\n _dispose: function() {\r\n this._rootElement.linkOff()\r\n },\r\n _setupAnimation: function() {\r\n var that = this;\r\n if (that._options.animation) {\r\n that._animation = {\r\n step: function(pos) {\r\n that._actualValue = that._animation.start + that._animation.delta * pos;\r\n that._actualPosition = that._translator.translate(that._actualValue);\r\n that._move()\r\n },\r\n duration: that._options.animation.duration > 0 ? _Number(that._options.animation.duration) : 0,\r\n easing: that._options.animation.easing\r\n }\r\n }\r\n },\r\n _runAnimation: function(value) {\r\n var that = this;\r\n var animation = that._animation;\r\n animation.start = that._actualValue;\r\n animation.delta = value - that._actualValue;\r\n that._rootElement.animate({\r\n _: 0\r\n }, {\r\n step: animation.step,\r\n duration: animation.duration,\r\n easing: animation.easing\r\n })\r\n },\r\n _createRoot: function() {\r\n return this._renderer.g().attr({\r\n \"class\": this._className\r\n })\r\n },\r\n _createTracker: function() {\r\n return this._renderer.path([], \"area\")\r\n },\r\n _getTrackerSettings: _common.noop,\r\n clean: function() {\r\n var that = this;\r\n that._animation && that._rootElement.stopAnimation();\r\n that._rootElement.linkRemove().clear();\r\n that._clear();\r\n that._tracker.detach(that._trackerElement);\r\n that._options = that.enabled = that._animation = null;\r\n return that\r\n },\r\n render: function(options) {\r\n var that = this;\r\n that.type = options.type;\r\n that._options = options;\r\n that._actualValue = that._currentValue = that._translator.adjust(that._options.currentValue);\r\n that.enabled = that._isEnabled();\r\n if (that.enabled) {\r\n that._setupAnimation();\r\n that._rootElement.attr({\r\n fill: that._options.color\r\n }).linkAppend();\r\n that._tracker.attach(that._trackerElement, that, that._trackerInfo)\r\n }\r\n return that\r\n },\r\n resize: function(layout) {\r\n var that = this;\r\n that._rootElement.clear();\r\n that._clear();\r\n that.visible = that._isVisible(layout);\r\n if (that.visible) {\r\n (0, _extend.extend)(that._options, layout);\r\n that._actualPosition = that._translator.translate(that._actualValue);\r\n that._render();\r\n that._trackerElement.attr(that._getTrackerSettings());\r\n that._move()\r\n }\r\n return that\r\n },\r\n value: function(arg, _noAnimation) {\r\n var that = this;\r\n var val;\r\n var rootElement = this._rootElement;\r\n var visibility = null;\r\n if (void 0 === arg) {\r\n return that._currentValue\r\n }\r\n if (null === arg) {\r\n visibility = \"hidden\";\r\n that._currentValue = arg\r\n } else {\r\n val = that._translator.adjust(arg);\r\n if (that._currentValue !== val && _isFinite(val)) {\r\n that._currentValue = val;\r\n if (that.visible) {\r\n if (that._animation && !_noAnimation) {\r\n that._runAnimation(val)\r\n } else {\r\n that._actualValue = val;\r\n that._actualPosition = that._translator.translate(val);\r\n that._move()\r\n }\r\n }\r\n }\r\n }\r\n rootElement.attr({\r\n visibility: visibility\r\n });\r\n return that\r\n },\r\n _isEnabled: null,\r\n _isVisible: null,\r\n _render: null,\r\n _clear: null,\r\n _move: null\r\n});\r\nexports.BaseIndicator = BaseIndicator;\r\nvar COEFFICIENTS_MAP = {};\r\nCOEFFICIENTS_MAP[\"right-bottom\"] = COEFFICIENTS_MAP.rb = [0, -1, -1, 0, 0, 1, 1, 0];\r\nCOEFFICIENTS_MAP[\"bottom-right\"] = COEFFICIENTS_MAP.br = [-1, 0, 0, -1, 1, 0, 0, 1];\r\nCOEFFICIENTS_MAP[\"left-bottom\"] = COEFFICIENTS_MAP.lb = [0, -1, 1, 0, 0, 1, -1, 0];\r\nCOEFFICIENTS_MAP[\"bottom-left\"] = COEFFICIENTS_MAP.bl = [1, 0, 0, -1, -1, 0, 0, 1];\r\nCOEFFICIENTS_MAP[\"left-top\"] = COEFFICIENTS_MAP.lt = [0, 1, 1, 0, 0, -1, -1, 0];\r\nCOEFFICIENTS_MAP[\"top-left\"] = COEFFICIENTS_MAP.tl = [1, 0, 0, 1, -1, 0, 0, -1];\r\nCOEFFICIENTS_MAP[\"right-top\"] = COEFFICIENTS_MAP.rt = [0, 1, -1, 0, 0, -1, 1, 0];\r\nCOEFFICIENTS_MAP[\"top-right\"] = COEFFICIENTS_MAP.tr = [-1, 0, 0, 1, 1, 0, 0, -1];\r\n\r\nfunction getTextCloudInfo(options) {\r\n var x = options.x;\r\n var y = options.y;\r\n var type = COEFFICIENTS_MAP[options.type];\r\n var cloudWidth = options.cloudWidth;\r\n var cloudHeight = options.cloudHeight;\r\n var tailWidth;\r\n var tailHeight;\r\n var cx = x;\r\n var cy = y;\r\n tailWidth = tailHeight = options.tailLength;\r\n if (1 & type[0]) {\r\n tailHeight = Math.min(tailHeight, cloudHeight / 3)\r\n } else {\r\n tailWidth = Math.min(tailWidth, cloudWidth / 3)\r\n }\r\n return {\r\n cx: _round(cx + type[0] * tailWidth + (type[0] + type[2]) * cloudWidth / 2),\r\n cy: _round(cy + type[1] * tailHeight + (type[1] + type[3]) * cloudHeight / 2),\r\n points: [_round(x), _round(y), _round(x += type[0] * (cloudWidth + tailWidth)), _round(y += type[1] * (cloudHeight + tailHeight)), _round(x += type[2] * cloudWidth), _round(y += type[3] * cloudHeight), _round(x += type[4] * cloudWidth), _round(y += type[5] * cloudHeight), _round(x += type[6] * (cloudWidth - tailWidth)), _round(y += type[7] * (cloudHeight - tailHeight))]\r\n }\r\n}\r\nvar BaseTextCloudMarker = BaseIndicator.inherit({\r\n _move: function() {\r\n var that = this;\r\n var options = that._options;\r\n var textCloudOptions = that._getTextCloudOptions();\r\n var text = _formatValue(that._actualValue, options.text);\r\n that._text.attr({\r\n text: text\r\n });\r\n var bBox = that._text.getBBox();\r\n var x = textCloudOptions.x;\r\n var y = textCloudOptions.y;\r\n var cloudWidth = (bBox.width || text.length * that._textUnitWidth) + 2 * options.horizontalOffset;\r\n var cloudHeight = (bBox.height || that._textHeight) + 2 * options.verticalOffset;\r\n var info = getTextCloudInfo({\r\n x: x,\r\n y: y,\r\n cloudWidth: cloudWidth,\r\n cloudHeight: cloudHeight,\r\n tailLength: options.arrowLength,\r\n type: that._correctCloudType(textCloudOptions.type, {\r\n x: x,\r\n y: y\r\n }, {\r\n width: cloudWidth,\r\n height: cloudHeight\r\n })\r\n });\r\n that._text.attr({\r\n x: info.cx,\r\n y: info.cy + that._textVerticalOffset\r\n });\r\n that._cloud.attr({\r\n points: info.points\r\n });\r\n that._trackerElement && that._trackerElement.attr({\r\n points: info.points\r\n })\r\n },\r\n _measureText: function() {\r\n var that = this;\r\n var root;\r\n var text;\r\n var bBox;\r\n var sampleText;\r\n if (!that._textVerticalOffset) {\r\n root = that._createRoot().append(that._owner);\r\n sampleText = _getSampleText(that._translator, that._options.text);\r\n text = that._renderer.text(sampleText, 0, 0).attr({\r\n align: \"center\"\r\n }).css((0, _utils.patchFontOptions)(that._options.text.font)).append(root);\r\n bBox = text.getBBox();\r\n root.remove();\r\n that._textVerticalOffset = -bBox.y - bBox.height / 2;\r\n that._textWidth = bBox.width;\r\n that._textHeight = bBox.height;\r\n that._textUnitWidth = that._textWidth / sampleText.length;\r\n that._textFullWidth = that._textWidth + 2 * that._options.horizontalOffset;\r\n that._textFullHeight = that._textHeight + 2 * that._options.verticalOffset\r\n }\r\n },\r\n _render: function() {\r\n var that = this;\r\n that._measureText();\r\n that._cloud = that._cloud || that._renderer.path([], \"area\").append(that._rootElement);\r\n that._text = that._text || that._renderer.text().append(that._rootElement);\r\n that._text.attr({\r\n align: \"center\"\r\n }).css((0, _utils.patchFontOptions)(that._options.text.font))\r\n },\r\n _clear: function() {\r\n delete this._cloud;\r\n delete this._text\r\n },\r\n getTooltipParameters: function() {\r\n var position = this._getTextCloudOptions();\r\n return {\r\n x: position.x,\r\n y: position.y,\r\n value: this._currentValue,\r\n color: this._options.color\r\n }\r\n },\r\n _correctCloudType: function(type) {\r\n return type\r\n }\r\n});\r\nexports.BaseTextCloudMarker = BaseTextCloudMarker;\r\nvar BaseRangeBar = BaseIndicator.inherit({\r\n _measureText: function() {\r\n var that = this;\r\n var root;\r\n var text;\r\n var bBox;\r\n that._hasText = that._isTextVisible();\r\n if (that._hasText && !that._textVerticalOffset) {\r\n root = that._createRoot().append(that._owner);\r\n text = that._renderer.text(_getSampleText(that._translator, that._options.text), 0, 0).attr({\r\n \"class\": \"dxg-text\",\r\n align: \"center\"\r\n }).css((0, _utils.patchFontOptions)(that._options.text.font)).append(root);\r\n bBox = text.getBBox();\r\n root.remove();\r\n that._textVerticalOffset = -bBox.y - bBox.height / 2;\r\n that._textWidth = bBox.width;\r\n that._textHeight = bBox.height\r\n }\r\n },\r\n _move: function() {\r\n var that = this;\r\n that._updateBarItemsPositions();\r\n if (that._hasText) {\r\n that._text.attr({\r\n text: _formatValue(that._actualValue, that._options.text)\r\n });\r\n that._updateTextPosition();\r\n that._updateLinePosition()\r\n }\r\n },\r\n _updateBarItems: function() {\r\n var that = this;\r\n var options = that._options;\r\n var spaceColor;\r\n var translator = that._translator;\r\n that._setBarSides();\r\n that._startPosition = translator.translate(translator.getDomainStart());\r\n that._endPosition = translator.translate(translator.getDomainEnd());\r\n that._basePosition = translator.translate(options.baseValue);\r\n that._space = that._getSpace();\r\n var backgroundColor = options.backgroundColor || \"none\";\r\n if (\"none\" !== backgroundColor && that._space > 0) {\r\n spaceColor = options.containerBackgroundColor || \"none\"\r\n } else {\r\n that._space = 0;\r\n spaceColor = \"none\"\r\n }\r\n that._backItem1.attr({\r\n fill: backgroundColor\r\n });\r\n that._backItem2.attr({\r\n fill: backgroundColor\r\n });\r\n that._spaceItem1.attr({\r\n fill: spaceColor\r\n });\r\n that._spaceItem2.attr({\r\n fill: spaceColor\r\n })\r\n },\r\n _getSpace: function() {\r\n return 0\r\n },\r\n _updateTextItems: function() {\r\n var that = this;\r\n if (that._hasText) {\r\n that._line = that._line || that._renderer.path([], \"line\").attr({\r\n \"class\": \"dxg-main-bar\",\r\n \"stroke-linecap\": \"square\"\r\n }).append(that._rootElement);\r\n that._text = that._text || that._renderer.text(\"\", 0, 0).attr({\r\n \"class\": \"dxg-text\"\r\n }).append(that._rootElement);\r\n that._text.attr({\r\n align: that._getTextAlign()\r\n }).css(that._getFontOptions());\r\n that._setTextItemsSides()\r\n } else {\r\n if (that._line) {\r\n that._line.remove();\r\n delete that._line\r\n }\r\n if (that._text) {\r\n that._text.remove();\r\n delete that._text\r\n }\r\n }\r\n },\r\n _isTextVisible: function() {\r\n return false\r\n },\r\n _getTextAlign: function() {\r\n return \"center\"\r\n },\r\n _getFontOptions: function() {\r\n var options = this._options;\r\n var font = options.text.font;\r\n if (!font || !font.color) {\r\n font = (0, _extend.extend)({}, font, {\r\n color: options.color\r\n })\r\n }\r\n return (0, _utils.patchFontOptions)(font)\r\n },\r\n _updateBarItemsPositions: function() {\r\n var that = this;\r\n var positions = that._getPositions();\r\n that._backItem1.attr(that._buildItemSettings(positions.start, positions.back1));\r\n that._backItem2.attr(that._buildItemSettings(positions.back2, positions.end));\r\n that._spaceItem1.attr(that._buildItemSettings(positions.back1, positions.main1));\r\n that._spaceItem2.attr(that._buildItemSettings(positions.main2, positions.back2));\r\n that._mainItem.attr(that._buildItemSettings(positions.main1, positions.main2));\r\n that._trackerElement && that._trackerElement.attr(that._buildItemSettings(positions.main1, positions.main2))\r\n },\r\n _render: function() {\r\n var that = this;\r\n that._measureText();\r\n if (!that._backItem1) {\r\n that._backItem1 = that._createBarItem();\r\n that._backItem1.attr({\r\n \"class\": \"dxg-back-bar\"\r\n })\r\n }\r\n if (!that._backItem2) {\r\n that._backItem2 = that._createBarItem();\r\n that._backItem2.attr({\r\n \"class\": \"dxg-back-bar\"\r\n })\r\n }\r\n if (!that._spaceItem1) {\r\n that._spaceItem1 = that._createBarItem();\r\n that._spaceItem1.attr({\r\n \"class\": \"dxg-space-bar\"\r\n })\r\n }\r\n if (!that._spaceItem2) {\r\n that._spaceItem2 = that._createBarItem();\r\n that._spaceItem2.attr({\r\n \"class\": \"dxg-space-bar\"\r\n })\r\n }\r\n if (!that._mainItem) {\r\n that._mainItem = that._createBarItem();\r\n that._mainItem.attr({\r\n \"class\": \"dxg-main-bar\"\r\n })\r\n }\r\n that._updateBarItems();\r\n that._updateTextItems()\r\n },\r\n _clear: function() {\r\n var that = this;\r\n delete that._backItem1;\r\n delete that._backItem2;\r\n delete that._spaceItem1;\r\n delete that._spaceItem2;\r\n delete that._mainItem;\r\n delete that._hasText;\r\n delete that._line;\r\n delete that._text\r\n },\r\n getTooltipParameters: function() {\r\n var position = this._getTooltipPosition();\r\n return {\r\n x: position.x,\r\n y: position.y,\r\n value: this._currentValue,\r\n color: this._options.color,\r\n offset: 0\r\n }\r\n }\r\n});\r\nexports.BaseRangeBar = BaseRangeBar;\r\n"],"sourceRoot":""}