{"version":3,"sources":["webpack:///./node_modules/devextreme/viz/core/errors_warnings.js","webpack:///./node_modules/devextreme/viz/core/plaque.js","webpack:///./node_modules/devextreme/viz/components/chart_theme_manager.js","webpack:///./node_modules/devextreme/viz/core/series_family.js","webpack:///./node_modules/devextreme/viz/core/themes/generic.light.js","webpack:///./node_modules/devextreme/viz/core/themes/generic.dark.js","webpack:///./node_modules/devextreme/viz/core/themes/generic.contrast.js","webpack:///./node_modules/devextreme/viz/core/themes/generic.carmine.js","webpack:///./node_modules/devextreme/viz/core/themes/generic.darkmoon.js","webpack:///./node_modules/devextreme/viz/core/themes/generic.softblue.js","webpack:///./node_modules/devextreme/viz/core/themes/generic.darkviolet.js","webpack:///./node_modules/devextreme/viz/core/themes/generic.greenmist.js","webpack:///./node_modules/devextreme/viz/core/themes/material.js","webpack:///./node_modules/devextreme/viz/core/renderers/animation.js","webpack:///./node_modules/devextreme/viz/core/layout.js","webpack:///./node_modules/devextreme/viz/core/base_widget.utils.js","webpack:///./node_modules/devextreme/viz/circular_gauge.js","webpack:///./node_modules/devextreme/viz/core/utils.js","webpack:///./node_modules/devextreme/viz/core/base_widget.js","webpack:///./node_modules/devextreme/viz/core/export.js","webpack:///./node_modules/devextreme/viz/core/title.js","webpack:///./node_modules/devextreme/viz/core/tooltip.js","webpack:///./node_modules/devextreme/viz/core/loading_indicator.js","webpack:///./node_modules/devextreme/viz/components/consts.js","webpack:///./node_modules/devextreme/viz/core/helpers.js","webpack:///./node_modules/devextreme/viz/core/data_source.js","webpack:///./node_modules/devextreme/viz/core/renderers/renderer.js","webpack:///./node_modules/devextreme/viz/components/legend.js","webpack:///./node_modules/devextreme/viz/core/annotations.js","webpack:///./node_modules/devextreme/viz/core/base_theme_manager.js","webpack:///./node_modules/devextreme/viz/core/layout_element.js","webpack:///./node_modules/devextreme/viz/components/parse_utils.js","webpack:///./node_modules/devextreme/viz/components/data_validator.js","webpack:///./node_modules/devextreme/viz/components/tracker.js"],"names":["exports","default","_error","_interopRequireDefault","_errors","obj","__esModule","_default","ERROR_MESSAGES","E2001","E2002","E2003","E2004","E2005","E2006","E2007","E2008","E2009","E2101","E2102","E2103","E2104","E2105","E2202","E2203","W2002","W2003","W2101","W2102","W2103","W2104","W2105","W2106","W2107","W2108","W2301","module","Plaque","_extend","_type","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_defineProperty","key","value","defineProperty","configurable","writable","_objectWithoutProperties","source","excluded","i","target","sourceKeys","length","indexOf","_objectWithoutPropertiesLoose","sourceSymbolKeys","prototype","propertyIsEnumerable","call","math","Math","round","max","min","sin","cos","asin","PI","buildPath","_len","arguments","points","Array","_key","join","getArc","cornerRadius","xDirection","yDirection","concat","getAbsoluteArc","x","y","rotateX","angle","x0","y0","rotateY","getCloudAngle","_ref","anchorX","anchorY","halfWidth","width","halfHeight","height","xr","ceil","xl","floor","yt","yb","getCloudPoints","_ref2","_ref3","bounded","arrowWidth","_ref3$cornerRadius","halfArrowWidth","leftTopCorner","rightTopCorner","rightBottomCorner","leftBottomCorner","arrowX","arrowY","arrowBaseBottom","arrowBaseTop","arrowBaseLeft","arrowAngle","endAngle","arrowEndPointX","arrowEndPointY","arrowArc","abs","_arrowArc","_angle","arrowBaseTopX","arrowBaseTopY","_angle2","_arrowBaseTopX","_arrowBaseTopY","bottomAngle","arrowBaseBottomX","arrowBaseBottomY","topAngle","_arrowBaseTopX2","_arrowBaseTopY2","_bottomAngle","_arrowBaseBottomX","_arrowBaseBottomY","_bottomAngle2","_arrowBaseBottomX2","_arrowBaseBottomY2","_bottomAngle3","_arrowBaseBottomX3","_arrowBaseBottomY3","_topAngle","_arrowBaseTopX3","_arrowBaseTopY3","options","widget","root","contentTemplate","measureContent","_","g","getBBox","moveContentGroup","move","this","bonded","_proto","draw","_ref4","_this","_ref4$canvas","canvas","offsetX","offsetY","_ref4$offset","offset","restProps","bounds","left","right","top","bottom","isDefined","_root","_draw","shadowSettings","extend","shadow","contentWidth","contentHeight","onRender","_this$_root","bBox","_contentBBox","_contentGroup","size","_size","paddingLeftRight","paddingTopBottom","xOff","yOff","blur","lm","rm","tm","bm","margins","y_top","arrowLength","y_bottom","append","render","model","container","element","onRendered","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","group","renderer","_renderer","_shadow","shadowFilter","attr","cloudSettings","opacity","fill","color","borderOptions","border","visible","stroke","dashStyle","type","cloudGroup","id","_cloud","path","sharp","rotationAngle","clear","remove","customizeCloud","moveRoot","radRotationAngle","d","rotate","hitTest","_ref5","ThemeManager","processAxisOptions","applyParticularAxisOptions","mergeOptions","applyParticularTheme","_common","_base_theme_manager","_utils","BaseThemeManager","inherit","axisOptions","title","isString","text","logarithmBase","isNumeric","logarithmBaseError","label","alignment","userAlignment","name","userOptions","rotated","theme","_theme","position","processedUserOptions","commonAxisSettings","_userOptions","workWeek","forceUserTickInterval","tickInterval","axisDivisionFactor","base","result","_mergedSettings","isPlainObject","argumentAxis","valueAxisRangeSelector","valueAxis","series","seriesCount","mainSeriesColor","seriesVisibility","that","userCommonSettings","commonSeriesSettings","themeCommonSettings","widgetType","_themeSection","split","slice","normalizeEnum","palette","isBar","isLine","isArea","isBubble","resolveLabelsOverlapping","getOptions","containerBackgroundColor","seriesTemplate","point","settings","aggregation","enabled","getNextColor","argument","index","count","cat","_multiPieColors","nameField","animation","zoomAndPan","parseOption","option","pan","zoom","none","dragToZoom","dragBoxStyle","panKey","allowMouseWheel","allowTouchGestures","ctor","params","callBase","_mergeAxisTitleOptions","_callback","noop","dispose","resetPalette","reset","refresh","_initializeTheme","updatePalette","resetOptions","update","createPalette","useHighlight","extensionMode","SeriesFamily","_iterator","_math","pow","sqrt","_min","correctStackCoordinates","currentStacks","arg","stack","parameters","barsArea","seriesStackIndexCallback","extraParameters","stackIndex","getPointsByArg","barPadding","validateBarPadding","barWidth","getOffset","calculateParams","each","correctCoordinates","correctPointCoordinates","adjustBarSeriesDimensionsCore","barGroupPadding","commonStacks","allArguments","seriesInStacks","barGroupWidth","interval","getArgumentAxis","getTranslator","getInterval","s","stackName","getStackName","getBarOverlapGroup","toString","pointsByArgument","valueOf","reduce","stacks","some","ignoreEmptyPoints","hasValue","isStackExist","percentWidth","fixedBarWidth","spacing","middleIndex","rawWidth","getVisibleSeries","isVisible","getAbsStackSumByArg","stackKeepers","positive","negative","getSeriesStackIndexCallback","inverted","stackCount","isInverted","adjustBarSeriesDimensions","_options","adjustStackedSeriesValues","negativesAsZeroes","holesStack","lastSeriesInPositiveStack","lastSeriesInNegativeStack","singleSeries","hole","getPoints","initialValue","sign","getFirstValueSign","_prevSeries","holes","isNotBarSeries","resetValue","currentStack","correctValue","resetCorrection","isFinite","minValue","_skipSetLeftHole","prevPoint","_skipSetRightHole","resetHoles","setHole","_stackKeepers","absTotal","total","getStackSumByArg","setPercentValue","updateStackedSeriesValues","minBarSize","valueAxisTranslator","getValueAxis","minShownBusinessValue","getMinBarSize","fullStacked","updateValue","checkMinBarSize","valueType","getValueType","stackSum","updateFullStackedSeriesValues","updateBarSeriesValues","adjustCandlestickSeriesDimensions","adjustBubbleSeriesDimensions","pointSize","sizeProportion","visibleAreaX","getVisibleArea","visibleAreaY","minBubbleArea","minBubbleSize","maxBubbleArea","maxBubbleSize","equalBubbleSize","minPointSize","maxPointSize","seriesItem","sizeDispersion","areaDispersion","pane","updateOptions","adjustSeriesDimensions","updateSeriesValues","adjustSeriesValues","constructor","add","map","_themes","WHITE","BLACK","RED","NONE","SOLID","TOP","RIGHT","LEFT","CENTER","registerTheme","isDefault","font","family","weight","cursor","redrawOnResize","backgroundColor","primaryTitleColor","secondaryTitleColor","gridColor","axisColor","subtitle","wordWrap","textOverflow","loadingIndicator","margin","button","borderColor","hover","focus","active","shadowColor","tooltip","textAlignment","shared","location","interactive","legend","hoverMode","verticalAlignment","horizontalAlignment","markerSize","columnCount","rowCount","columnItemSpacing","rowItemSpacing","duration","easing","maxPointCountSupported","showInLegend","selectionMode","hoverStyle","hatching","direction","step","selectionStyle","valueErrorBar","displayMode","lineWidth","edgeLength","horizontalOffset","verticalOffset","radialOffset","showForZeroValues","customizeText","maxLabelCount","connector","seriesSelectionMode","pointSelectionMode","equalRowHeight","dataPrepareSettings","checkTypeForAllData","convertToAxisDataType","sortingMethod","adaptiveLayout","keepLabels","_rtl","itemTextPosition","resolveLabelOverlapping","valueMarginsEnabled","placeholderSize","discreteAxisDivisionMode","grid","minorGrid","tick","shift","minorTick","stripStyle","constantLineStyle","marker","tooltipEnabled","image","allowDragging","chart","symbol","scatter","line","stackedline","stackedspline","fullstackedline","fullstackedspline","stepline","area","stackedarea","fullstackedarea","fullstackedsplinearea","steparea","spline","splinearea","stackedsplinearea","bar","stackedbar","fullstackedbar","rangebar","rangearea","rangesplinearea","bubble","candlestick","reduction","stock","crosshair","verticalLine","horizontalLine","multipleAxesSpacing","breakStyle","overlappingBehavior","indentFromAxis","horizontalAxis","staggeringSpacing","constantLines","verticalAxis","endOnTick","autoBreaksEnabled","maxAutoBreakCount","commonPaneSettings","scrollBar","adjustOnZoom","autoHidePointMarkers","synchronizeMultiAxes","stickyHovering","pie","innerRadius","minDiameter","_skipArgumentSorting","doughnut","donut","gauge","scale","hideFirstOrLast","rangeContainer","valueIndicators","space","indent","twocolorneedle","secondColor","trianglemarker","textcloud","indicator","hasPositiveMeaning","layout","_circular","scaleDivisionFactor","orientation","indentFromTick","valueIndicatorType","subvalueIndicatorType","indentFromCenter","spindleSize","spindleGapSize","beginAdaptingAtRadius","triangleneedle","secondFraction","_linear","horizontalOrientation","verticalOrientation","rectangle","barGauge","relativeInnerRadius","barSpacing","connectorWidth","rangeSelector","showCustomBoundaryTicks","topIndent","separatorHeight","textLeftIndent","textTopIndent","selectedRangeColor","sliderMarker","invalidRangeColor","sliderHandle","shutter","background","behavior","snapToTicks","animationEnabled","moveSelectedRangeByClick","manualRangeSelectionEnabled","allowSlidersSwap","callValueChanged","bottomIndent","borderWidth","layer","hoveredBorderColor","selectedBorderWidth","selectedBorderColor","hoveredColor","selectedColor","selectedStep","backStep","backColor","backOpacity","minSize","maxSize","hoveredBorderWidth","backgroundOpacity","controlBar","treeMap","tile","padding","sparkline","lineColor","areaOpacity","minColor","maxColor","barPositiveColor","barNegativeColor","winColor","lossColor","firstLastColor","pointSymbol","pointColor","argumentField","valueField","winlossThreshold","showFirstLast","showMinMax","bullet","targetColor","targetWidth","showTarget","showZeroLevel","polar","closed","startAngle","firstPointOnStartAngle","period","funnel","sortData","colorField","hoverEnabled","item","customizeTooltip","info","valueText","algorithm","neckWidth","neckHeight","sankey","sourceField","targetField","weightField","useNodeColors","node","link","colorMode","defaultPalette","menuButtonColor","activeBackgroundColor","activeColor","FONT_FAMILY","registerMaterialColorScheme","accentName","themeName","accentColor","markerColor","commonAnnotationSettings","materialAccents","blue","lime","orange","purple","teal","accent","hasOwnProperty","AnimationController","animationSvgStep","easingFunctions","_frame","easeOutCubic","pos","start","end","linear","segments","elem","progress","currentParams","curSeg","seg","j","from","to","arc","current","transform","attributeName","complete","currentSettings","now","attrName","animateStep","_animateStep","_progress","_calcProgress","_easing","_currentParams","stop","delayTick","_startTime","delay","Animation","partitionDuration","_animationCount","_timerId","_animations","disableComplete","_loop","an","animations","activeAnimation","Date","getTime","endAnimation","_endAnimation","_endAnimationTimer","setTimeout","requestAnimationFrame","addAnimation","clearTimeout","_startDelay","animateElement","onEndAnimation","cancelAnimationFrame","lock","unstoppable","hasUnstoppableInAnimations","_max","_round","horizontalAlignmentMap","center","verticalAlignmentMap","sideMap","horizontal","vertical","slicersMap","pickValue","defaultValue","val","getShrink","processForward","rect","side","measure","minSide","isValid","primary","processRectBackward","alignmentRect","a","b","primarySide","secondarySide","itemRect","secondary","processBackward","fitRect","targetRect","itemFitRect","freeSpace","Layout","_targets","processBackwardHeaderRect","rectCopy","forward","targets","ii","collection","layoutOptions","weak","priority","header","sort","headerItem","weakItem","weakElement","targetSize","weakSize","headerSize","weakRect","headerFitReact","headerRect","processWeakItems","createTargets","cache","_cache","reverse","backward","backwardRect","targetSide","createEventTrigger","eventsMap","callbackGetter","changes","triggers","createEvent","triggerEvent","change","eventInfo","applyChanges","newName","createResizeHandler","callback","timeout","handler","createIncidentOccurred","_version","_string","_errors_warnings","widgetName","eventTrigger","args","format","version","setCanvasValues","normalizeBBox","rotateBBox","_Number","_cos","PI_DIV_180","toFixed","_sin","w2","h2","centerX","centerY","w2_","h2_","centerX_","centerY_","convertPolarToXY","centerCoords","radius","normalizedRadius","cosSin","getCosAndSin","isRelativeHeightPane","normalizePanesHeight","panes","unit","parsedHeight","parseFloat","relativeHeightPanes","weightSum","prev","next","weightHeightCount","emptyHeightPanes","emptyHeightCount","weightForEmpty","emptyWeightSum","updatePanesCanvases","distributedSpace","paneSpace","totalCustomSpace","cur","usefulSpace","startName","endName","calcLength","mergeMarginOptions","opt1","opt2","checkInterval","percentStick","sizePointNormalState","getVizRangeObject","isArray","startValue","endValue","convertVisualRangeObject","visualRange","convertToVisualRange","getAddFunction","adjustVisualRange","wholeRange","dataRange","minDefined","maxDefined","nonDiscrete","axisType","rangeLength","categories","dataType","dateToMilliseconds","parseInt","isNaN","categoriesInfo","getCategoriesInfo","_categoriesInfo","getLogExt","raiseToExt","rangesAreEqual","range","rangeFromOptions","every","pointInCanvas","getVerticallyShiftedAngularCoords","unique","processSeriesTemplate","convertXYToPolar","patchFontOptions","enumParser","parseScalar","decreaseGaps","getPower","roundValue","getAppropriateFormat","getDecimalOrder","getDistance","degreesToRadians","convertAngleToRendererSpace","normalizeAngle","raiseTo","getAdjustedLog10","getLog","PANE_PADDING","_date","_color","LN10","log","atan2","_isNaN","Number","NaN","adjust","power","angleInRadians","x1","y1","x2","y2","diffX","diffY","number","cn","n","order","precision","isExponential","toExponential","array","len","selectByKeys","decreaseFields","eachDecrease","decrease","dec","String","toLowerCase","originalTop","originalBottom","originalLeft","originalRight","normalizeBBoxField","isEmpty","arrayGaps","values","stored","_value","fontOptions","test","r","phi","items","data","customizeSeries","isFunction","generatedSeries","seriesOrder","nameFieldValue","orderedName","swapBuf","categoriesValue","category","indexStartValue","indexEndValue","visibleCategories","lastIdx","correctZeroLevel","rangeValue","marginValue","newValue","allowNegatives","linearThreshold","transformValue","dy","isPositive","horizontalOffset1","verticalOffset1","verticalOffset2","horizontalOffset2","dx","_window","_dom_adapter","_resize_callbacks","_dom_component","_helpers","_renderer2","_layout","_devices","_events_engine","_deferred","_base_widget","_floor","_log","_option","getTrue","getFalse","defaultOnIncidentOccurred","e","component","_eventsStrategy","hasEvent","pickPositiveValue","callForEach","functions","c","emptyComponentConfig","EmptyComponent","originalInherit","baseWidget","hasWindow","_initTemplates","sizedElement","createElement","_getDefaultSize","setStyle","setClass","insertElement","config","field","substr","_eventsMap","onIncidentOccurred","onDrawn","_getDefaultOptions","_useLinks","_init","_$element","children","_changesLocker","_optionChangedLocker","_asyncFirstDrawing","_changes","_suspendChanges","_themeManager","_createThemeManager","setCallback","_requestChange","_themeDependentChanges","_renderElementAttributes","_initRenderer","linkTarget","enableLinks","virtualLink","_renderVisibilityChange","_attachVisibilityChangeHandlers","_toggleParentsScrollSubscription","_isVisible","_initEventTrigger","_incidentOccurred","NAME","_eventTrigger","linkAfter","_initPlugins","_initCore","_change","_initialChanges","_getThemeManagerOptions","themeSection","fontFields","_fontFields","_plugins","plugin","init","_disposePlugins","codes","_resumeChanges","_applyingChanges","_applyChanges","_changesApplied","unlock","_optionsQueue","_applyQueuedOptions","resolveItemsDeferred","_legend","_notify","_resolveDeferred","_getTemplatesItems","_collectTemplatesFromItems","getTemplatesDef","groups","getTemplatesGroups","elements","extraItems","_getExtraTemplatesItems","launchRequest","doneRequest","_setGroupsVisibility","_changesApplying","syncRendering","when","done","visibility","queue","beginUpdate","action","endUpdate","_totalChangesOrder","has","_optionChangesOrder","_layoutChangesOrder","_customChangesOrder","_change_EVENTS","_change_THEME","_setThemeAndRtl","_change_RENDERER","_setRendererOptions","_change_RESIZE_HANDLER","_setupResizeHandler","_change_ELEMENT_ATTR","_change_CONTAINER_SIZE","_updateSize","_change_LAYOUT","_setContentSize","_change_DISABLED","_initDisabledState","getGrayScaleFilter","_canvas","_calculateCanvas","Renderer","cssClass","_rootClassPrefix","_rootClass","pathModified","resize","_disposeRenderer","_getAnimationOptions","_stopCurrentHandling","subscribe","$parents","parents","real","platform","getWindow","_proxiedTargetParentsScrollHandler","bind","off","_$prevRootParents","on","_dispose","_removeResizeHandler","_disposeCore","_createActionByOption","defaultCanvas","getSizeOfSide","elementSize","elementWidth","elementHeight","canvas1","canvas2","fixPlacement","__forceRender","_recreateSizeDependentObjects","_getMinSize","_getAlignmentRect","nextRect","_applySize","_getOption","isScalar","_resizeHandler","_onBeginUpdate","_initialized","_isUpdateAllowed","isObject","_getActionForUpdating","_clean","_render","_optionChanged","partialChanges","getPartialChangeOptionsName","pc","_partialOptionChangesMap","_optionChangesMap","rtlEnabled","encodeHtml","elementAttr","disabled","_partialOptionChangesPath","changedOption","fullName","sections","partialChangeOptionsName","op","_addOptionsNameForPartialUpdate","_checkOptionsForPartialUpdate","self","optionObject","optionKeys","_visibilityChanged","setTheme","_getRendererOptions","rtl","setOptions","svg","getSize","isReady","_dataIsReady","_resetIsReady","_drawn","replaceInherit","ExportMenu","combineMarkups","exportWidgets","getMarkup","exportFromMarkup","_exporter","_message","_hover","_pointer","_console","pointerActions","down","ICON_COORDS","ALLOWED_IMAGE_FORMATS","ALLOWED_EXTRA_FORMATS","GET_COLOR_REGEX","getValidFormats","imageFormats","testFormats","unsupported","supported","validateFormat","incidentOccurred","validFormats","toUpperCase","getCreatorFunc","getData","pdf","_print","imageSrc","document","iFrame","onload","window","contentWindow","img","body","appendChild","removeFrame","parentElement","removeChild","addEventListener","print","src","setPrint","style","createMenuItem","itemData","itemIndex","BUTTON_SIZE","LIST_WIDTH","separator","getItemAttributes","fontStyle","menuItem","EXPORT_CSS_CLASS","css","resetState","fixPosition","textBBox","markup","fileName","exportingAction","onExporting","exportedAction","onExported","fileSavingAction","onFileSaving","parsedMarkup","exec","getBackgroundColorFromMarkup","getTheme","export","widgets","markupInfo","gridLayout","compactView","exportItems","row","rowIndex","rowInfo","colIndex","backgroundColors","hOffset","itemWidth","rowOffsets","totalHeight","rowHeights","maxItemLen","totalWidth","getVOffset","align","getHOffset","colWidth","_exportTo","exportTo","_group","linkOn","after","_buttonGroup","_listGroup","_overlay","rx","ry","_subscribeEvents","getExportOptions","exportOptions","proxyUrl","svgToCanvas","forceProxy","getLayoutOptions","_hiddenDueToLayout","cutSide","cutLayoutSide","translateY","show","linkAppend","hide","linkRemove","_this2","formats","printingEnabled","_updateButton","_updateList","_hideList","_unsubscribeEvents","linkOff","_fillSpace","translateX","_listShown","_setButtonState","_menuItems","_showList","state","_button","_icon","_this3","up","elementType","stopPropagation","enter","leave","exportData","setTitle","buttonDefault","listGroup","getFormatter","createMenuItems","_this4","_exportMenu","members","_getExportMenuOptions","_disablePointerEvents","pointerEventsValue","_this5","menu","promise","fail","logger","error","always","_this6","eventArgs","__test","cancel","customize","proto","addChange","code","isThemeDependent","isOptionChange","Title","_layout_element","parseHorizontalAlignment","parseVerticalAlignment","hasText","processTitleLength","setMaxSize","textChanged","pickMarginValue","_params","_hasText","LayoutElement","_titleElement","_clipRect","_subtitleElement","_updateOptions","_updateStructure","clipRect","_updateTexts","titleBox","subtitleOptions","titleElement","subtitleElement","_baseLineCorrection","_shiftSubtitle","_updateBoundingRectAlignment","boundingRect","_boundingRect","themeOptions","newOptions","processTitleOptions","isLayoutChanged","_updateBoundingRect","_correctTitleLength","maxWidth","_this$getCorrectedLay","getCorrectedLayoutOptions","box","srcBox","correction","checkRect","changeLink","_title","Tooltip","_inflector","_format_helper","_plaque","mathCeil","mathMax","mathMin","hideElement","$element","detach","_widgetRoot","widgetRoot","_widget","_wrapper","overflow","pointerEvents","addClass","_text","_textGroupHtml","appendTo","_textHtml","display","_getContainer","closest","get","setTemplate","_template","_getTemplate","_textFontStyles","zIndex","_customizeTooltip","textGroupHtml","textHtml","plaque","eventData","isMoving","_ref$templateCallback","templateCallback","_state","template","useTemplate","formatObject","skipTemplate","html","textColor","_riseEvents","_moveWrapper","getComputedStyle","getBoundingClientRect","_eventData","setRendererOptions","normalizedCSS","camelize","_prepare","description","fontColor","forceEvents","_clear","_getCanvas","isCursorOnTooltip","isEnabled","empty","plaqueBBox","formatValue","_specialFormat","specialFormat","argumentFormat","percentPrecision","getSpecialFormatOptions","getLocation","isShared","containerBox","getDocumentElement","getDocument","pageXOffset","scrollLeft","pageYOffset","scrollTop","clientWidth","scrollHeight","offsetHeight","clientHeight","getBody","_initTooltip","_disposeTooltip","_tooltip","_setTooltipRendererOptions","_setTooltipOptions","extenders","onTooltipShown","onTooltipHidden","LoadingIndicator","_rect","_createStates","notify","_states","setSize","_transit","stateId","_isHiding","stopAnimation","animate","_noHiding","scheduleHiding","fulfillHiding","_loadingIndicator","_skipLoadingIndicatorOptions","_scheduleLoadingIndicatorHiding","_fulfillLoadingIndicatorHiding","showLoadingIndicator","hideLoadingIndicator","_dataSourceLoadingChangedHandler","isLoading","silent","_dataSourceChangedHandler","onLoadingIndicatorReady","events","mouseover","mouseout","mousemove","touchstart","touchmove","touchend","mousedown","mouseup","click","selectSeries","deselectSeries","selectPoint","deselectPoint","showPointTooltip","hidePointTooltip","states","normal","selection","normalMark","hoverMark","selectedMark","applyHover","applySelected","resetItem","radialLabelIndent","pieLabelSpacing","pieSeriesSpacing","expand","Flags","_extend2","isServerSide","combineMaps","baseMap","thisMap","combineLists","baseList","thisList","buildTotalChanges","createChainExecutor","executeChain","_chain","copy","executor","expander","addPlugin","func","flags","_flags","_inherit","plugins","initialChanges","themeDependentChanges","optionChangesMap","partialOptionChangesMap","partialOptionChangesPath","optionChangesOrder","layoutChangesOrder","customChangesOrder","_data_helper","postCtor","_dataSourceLoadErrorHandler","_dataSourceOptions","paginate","_updateDataSource","_refreshDataSource","_dataIsLoaded","_dataSource","isLoaded","_dataSourceItems","getFuncIri","processHatchingAttrs","refreshPaths","TextSvgElement","RectSvgElement","ArcSvgElement","PathSvgElement","SvgElement","_call_once","_browser","_svg","_animation","_slicedToArray","arr","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","err","return","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","_unsupportedIterableToArray","TypeError","_nonIterableRest","arr2","pxAddingExceptions","orphans","widows","objectCreate","create","F","DEFAULTS","scaleX","scaleY","getBackup","backupContainer","backupCounter","numDefsSvgElements","getNextDefsSvgId","isObjectArgument","tagName","createElementNS","href","exp","preserveAspectRatioMap","full","lefttop","leftcenter","leftbottom","centertop","centerbottom","righttop","rightcenter","rightbottom","attrs","_hatching","lockHatching","releaseHatching","buildArcPath","innerR","outerR","startAngleCos","startAngleSin","endAngleCos","endAngleSin","isCircle","longFlag","buildPathSegments","list","buildLineSegments","buildCurveSegments","close","buildSegments","buildSimpleLineSegment","buildSimpleCurveSegment","buildSimpleSegment","_points$","k0","k","prepareConstSegment","constSeg","makeEqualLineSegments","short","long","makeEqualAreaSegments","head","constsSeg1","constsSeg2","shortLength","longLength","splice","baseCss","styles","elemStyles","_styles","fixFuncIri","wrapper","attribute","removeAttribute","setAttribute","baseAttr","hasTransformations","recalculateDashStyle","sw","_settings","attributes","_addFixIRICallback","_originalSW","replace","_applyTransformation","createTspans","fieldName","createTextNode","className","restoreText","_hasEllipsis","cloneAndRemoveAttrs","clone","cloneNode","detachTitleElements","titleElements","querySelectorAll","detachAndStoreTitleElements","getIndexForEllipsis","startBox","endBox","kk","tspan","getSubStringLength","getTextWidth","getEllipsisString","ellipsisMaxWidth","hideOverflowEllipsis","setEllipsis","ellipsis","parentNode","setNewText","setMaxHeight","lines","maxHeight","lineHeight","l","commonHeight","parts","getItemLineHeight","calculateLineHeight","removeTextSpan","prevLine","hasEllipsis","applyOverflowRules","texts","textContent","lineNumber","commonLength","wordWrapLines","lastStepBreakIndex","breakIndex","wholeText","initialIndices","spaceIndices","indices","char","spaceIndex","getSpaceBreakIndex","getWordBreakIndex","restText","restLines","newTextOffset","restString","restTspan","insertString","newText","setTextNodeAttribute","inherits","maxLengthFontSize","locateTextNodes","_texts","_getLineHeight","fontSize1","fontSize2","parsedHeight1","parsedHeight2","height1","height2","baseAnimate","animationParams","defaults","getAttribute","buildLink","is","virtual","removeFuncIriCallback","fixFuncIriCallbacks","_getJQElement","fn","_fixFuncIri","_clearChildrenFuncIri","clearChildren","childNodes","parent","_links","linkItem","_link","_linkAfter","updateIndexes","unlinkItem","_insert","insertBefore","toBackground","firstChild","toForeground","smartAttr","sharpDirection","tr","transformations","sharpMode","trDirection","strokeOdd","correctionX","correctionY","scaleXDefined","scaleYDefined","animOptions","_getElementBBox","offsetWidth","transformation","getSvgMarkup","titleElem","removeTitle","trigger","segment","jj","combinePathParam","newSegments","endSegments","curSegments","oldSegments","originalNewSegments","oldLength","newLength","makeEqualSegments","compensateSegments","outerRadius","noArc","angleDiff","normalizeArcParams","arcParams","maxSW","newSW","_originalX","_originalY","_originalWidth","_originalHeight","_createElement","xmlns","_$container","_locker","_backed","isResetRequired","wasStroked","maxTextWidth","t","textWidth","alignTextNodes","isStroked","parsedHtml","trim","parseMultiline","findStyleAndClassAttrs","allTagAttrs","p1","p2","p3","match","str","div","innerHTML","orderHtmlTree","parentStyle","parentClassName","realStyle","nodes","isElementNode","fontSize","fontWeight","textDecoration","currentItem","adjustLineHeights","parseHTML","createTextNodes","strokeWidth","strokeOpacity","strokeTextNodes","applyEllipsis","lineParts","ellipsisWidth","endIndex","prepareLines","textIsEmpty","restoreTitleElement","_that$_getElementBBox","_defs","_animationController","mozilla","msie","removePlacementFix","updateAnimationOptions","removeByRenderer","stopAllAnimations","getRootOffset","simpleRect","circle","cx","cy","w","h","preserveAspectRatio","setAttributeNS","linearGradient","stops","gradient","pattern","_id","stepTo2","stepBy15","patternUnits","_getPointsWithYOffset","clipShape","method","methodArgs","clipPath","shape","clipCircle","gaussianBlur","stdDeviation","flood","composite","in2","operator","finalComposite","filterAttrs","offsetAttrs","floodAttrs","brightFilter","slope","componentTransferElement","_grayScaleFilter","initHatching","storage","_hatchingStorage","byHash","baseId","refToHash","nextId","ref","storageItem","hash","getHatchingHash","callbacks","el","fire","Legend","_object","_ceil","_isDefined","_isFunction","_enumParser","_normalizeEnum","BOTTOM","parseOrientation","parseItemTextPosition","parsePosition","parseItemsAlignment","getState","stateName","colorFromAction","getAttributes","applyMarkerState","idToIndexMap","renderMarker","parseOptions","textField","allowInsidePosition","parseMargins","itemsAlignment","customizeHint","createSquareMarker","createCircleMarker","inRect","checkLinesSize","countItems","maxMeasureLength","maxAltMeasureLength","firstItem","lineLength","altDirection","altMeasure","altOffset","altSpacing","countItem","altCountItem","decreaseItemCount","getLineLength","getPos","setMaxInLine","maxLineSize","itemMeasure","transpose","transposeArray","getMarkerCreator","getTitleHorizontalAlignment","_legendGroup","_backgroundClass","backgroundClass","_itemGroupClass","itemGroupClass","_textField","_getCustomizeObject","getFormatObject","_titleGroupClass","titleGroupClass","_allowInsidePosition","_updated","_Legend","legendPrototype","themeManagerTitleOptions","initMarkerSize","_data","dataItem","set","customizeItems","titleOptions","erase","_getItemData","_insideLegendGroup","_createBackground","horizontalPadding","_background","_markersGroup","_createItems","_updateElementsPosition","_measureElements","maxBBoxHeight","_items","labelBBox","markerBBox","getSizeItem","_locateElements","_finalUpdate","createMarker","markerShape","_markersId","templateFunction","markerTemplate","markersGroup","_deferredItems","_templatesGroups","stateOfDataItem","normalState","normalStateFill","defaultColor","itemGroup","markerGroup","Deferred","_createLabel","tracker","argumentIndex","markerOffset","bBoxes","resolve","_createHint","_adjustBackgroundSettings","_setBoundingRect","insideLegendGroup","_x1","_x2","_y2","locationOptions","_moveInInitialValues","_locateRowsColumns","labelFormatObject","getAlign","textOpacity","isInside","iteration","_getItemsLayoutOptions","_createLines","_alignLines","_applyItemPosition","secondItem","tableLine","firstLine","secondLine","getLines","labelBox","markerBox","offsetDirection","inverseLabelPosition","labelOffset","processLine","maxLineLength","getMaxLineLength","initPosition","getInitPositionForDirection","wrap","WrapperLayoutElement","itemBBoxOptions","itemBBox","itemLegend","of","my","at","marginTextLabel","legendBox","_calculateTotalBox","backgroundSettings","widthWithoutMargins","verticalPadding","getActionCallback","act","_shiftTitle","_shiftMarkers","_y1","boxWidth","titleY","titleX","getPosition","coordsIn","getItemByCoord","legendGroup","_applyTilesAppearance","_applyLegendItemStyle","_buildNodes","_createLegendItems","_getLegendData","_proxyData","createAnnotations","_drag","_index","POINTER_ACTION","addNamespace","POINTER_UP_EVENT_NAME","DRAG_START_EVENT_NAME","DRAG_EVENT_NAME","DRAG_END_EVENT_NAME","coreAnnotation","annotationGroup","_isAnnotationBounded","_getAnnotationCoords","immediate","_dragOffsetX","pageX","_dragOffsetY","pageY","showTooltip","annotation","tooltipTemplate","getTemplateFunction","groupElement","url","outerWidth","outerHeight","imageWidth","imageHeight","getImageObject","customizeAnnotation","pullOptions","commonImageOptions","currentImageOptions","customizedItem","chartPlugin","_axis","_axis2","_series","coords","argCoordName","valCoordName","argAxis","validateUnit","axis","getPointCenterByArg","translate","_axis3","_series2","_getCanvasForPane","_argumentAxes","getAxisPosition","checkSeriesViewportCoord","getSeriesPairCoord","_annotationsPointerEventHandler","event","originalEvent","touch","touches","rootOffset","_annotations","_hideToolTipForDrag","hideTooltip","_pullOptions","_forceAnnotationRender","clearHover","polarChartPlugin","pointCoords","_calcCanvas","getXYFromPolar","getActualAngle","polarOptions","vectorMapPlugin","_offTracker","_projection","getCanvas","coordinates","toScreenPoint","vectorMapOptions","_getAnnotationStyles","_prepareExtraElements","renderElements","_renderExtraElements","_tracker","pieChartPlugin","_argument$getAnnotati","getSeriesByName","getAnnotationCoords","pieChartOptions","core","clearItems","_annotationsGroup","_createHtmlStructure","_buildAnnotations","_setAnnotationTooltipOptions","tooltipOptions","polarChart","vectorMap","pieChart","_class","_palette","_getTheme","_addCacheItem","addCacheItem","_removeCacheItem","removeCacheItem","_each","getThemePart","pathItem","_font","_current","_themeName","_defaultPalette","createDiscretePalette","getDiscretePalette","createGradientPalette","getGradientPalette","getAccentColor","_initializeFont","defaultOffset","alignFactors","renderElement","_renderElement","_cacheBBox","ofBBox","myBBox","shiftX","shiftY","wrapperLayoutElementPrototype","correctValueType","getParser","_date_serialization","parsers","string","numeric","parsedVal","datetime","numVal","deserializeDate","validateData","groupsData","sourceIsDefined","hasError","_isArray","verifyData","argumentType","argumentAxisType","valueAxisType","updateDataType","resetTypes","axes","argumentAxes","groupsIndexes","groupsWithUndefinedValueType","groupsWithUndefinedArgumentType","argumentTypeGroup","argumentOptions","axisTypeParser","valueTypeGroup","valueOptions","cell","defineArg","groupIndex","getValueFields","getType","checkValueTypeOfGroup","currentSeries","getArgumentField","checkArgumentTypeOfGroup","checkType","userArgumentCategories","correctAxisType","valueCategories","optionsSeries","showZero","setTypes","validate","checkAxisType","parsedData","getParsedCell","parse","sizeParser","valueParser","argumentParser","createParserUnit","categoryParsers","getSizeField","argumentCategories","valueGroup","parseCategories","parseAxisCategories","prepareParsers","firstSeries","originalData","smallValuesGrouping","mode","others","groupName","sortValues","groupingValues","threshold","findIndexByThreshold","topCount","groupMinSlices","groupPieData","uniqueArgumentFields","reSortCategories","dataByArguments","isDiscrete","userCategories","sortFunction","sortingMethodOption","sortByCallback","collectionItem","checkItemExistence","getCategories","sortByArgument","itemsHash","getUniqueArgumentFields","_parse_utils","asc","selector","valA","valB","aa","bb","parser","newArray","parsedCategory","eigen","isDate","hasCategories","filterInfinity","parseUnit","validUnit","Tracker","_click","downPointerEventName","movePointerEventName","_initHandlers","clickHandler","getNode","getCoords","processClick","downHandler","moveHandler","_disposeHandlers","isRootDown","setHover","processHover","processTooltip"],"mappings":"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","file":"vendors~e3ef5c61.aa338b6bcf49e8c4dad1.bundle.js","sourcesContent":["/**\r\n * DevExtreme (viz/core/errors_warnings.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 _error = _interopRequireDefault(require(\"../../core/utils/error\"));\r\nvar _errors = _interopRequireDefault(require(\"../../core/errors\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = (0, _error.default)(_errors.default.ERROR_MESSAGES, {\r\n E2001: \"Invalid data source\",\r\n E2002: \"Axis type and data type are incompatible\",\r\n E2003: 'The \"{0}\" data source field contains data of unsupported type',\r\n E2004: 'The \"{0}\" data source field is inconsistent',\r\n E2005: 'The value field \"{0}\" is absent in the data source or all its values are negative',\r\n E2006: \"A cycle is detected in provided data\",\r\n E2007: 'The value field \"{0}\" is absent in the data source',\r\n E2008: 'The value field \"{0}\" must be a string',\r\n E2009: 'The value field \"{0}\" must be a positive numeric value',\r\n E2101: \"Unknown series type: {0}\",\r\n E2102: \"Ambiguity occurred between two value axes with the same name\",\r\n E2103: 'The \"{0}\" option is given an invalid value. Assign a function instead',\r\n E2104: \"Invalid logarithm base\",\r\n E2105: 'Invalid value of a \"{0}\"',\r\n E2202: \"Invalid {0} scale value\",\r\n E2203: \"The range you are trying to set is invalid\",\r\n W2002: \"The {0} series cannot be drawn because the {1} data field is missing\",\r\n W2003: \"Tick interval is too small\",\r\n W2101: 'The \"{0}\" pane does not exist; the last pane is used by default',\r\n W2102: 'A value axis with the \"{0}\" name was created automatically',\r\n W2103: \"The chart title was hidden due to the container size\",\r\n W2104: \"The legend was hidden due to the container size\",\r\n W2105: 'The title of the \"{0}\" axis was hidden due to the container size',\r\n W2106: 'The labels of the \"{0}\" axis were hidden due to the container size',\r\n W2107: \"The export menu was hidden due to the container size\",\r\n W2108: \"The browser does not support exporting images to {0} format.\",\r\n W2301: \"Invalid value range\"\r\n});\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/core/plaque.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.Plaque = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _type = require(\"../../core/utils/type\");\r\n\r\nfunction ownKeys(object, enumerableOnly) {\r\n var keys = Object.keys(object);\r\n if (Object.getOwnPropertySymbols) {\r\n var symbols = Object.getOwnPropertySymbols(object);\r\n if (enumerableOnly) {\r\n symbols = symbols.filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\r\n })\r\n }\r\n keys.push.apply(keys, symbols)\r\n }\r\n return keys\r\n}\r\n\r\nfunction _objectSpread(target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = null != arguments[i] ? arguments[i] : {};\r\n if (i % 2) {\r\n ownKeys(Object(source), true).forEach(function(key) {\r\n _defineProperty(target, key, source[key])\r\n })\r\n } else {\r\n if (Object.getOwnPropertyDescriptors) {\r\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))\r\n } else {\r\n ownKeys(Object(source)).forEach(function(key) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\r\n })\r\n }\r\n }\r\n }\r\n return target\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\n\r\nfunction _objectWithoutProperties(source, excluded) {\r\n if (null == source) {\r\n return {}\r\n }\r\n var target = _objectWithoutPropertiesLoose(source, excluded);\r\n var key, i;\r\n if (Object.getOwnPropertySymbols) {\r\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\r\n for (i = 0; i < sourceSymbolKeys.length; i++) {\r\n key = sourceSymbolKeys[i];\r\n if (excluded.indexOf(key) >= 0) {\r\n continue\r\n }\r\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) {\r\n continue\r\n }\r\n target[key] = source[key]\r\n }\r\n }\r\n return target\r\n}\r\n\r\nfunction _objectWithoutPropertiesLoose(source, excluded) {\r\n if (null == source) {\r\n return {}\r\n }\r\n var target = {};\r\n var sourceKeys = Object.keys(source);\r\n var key, i;\r\n for (i = 0; i < sourceKeys.length; i++) {\r\n key = sourceKeys[i];\r\n if (excluded.indexOf(key) >= 0) {\r\n continue\r\n }\r\n target[key] = source[key]\r\n }\r\n return target\r\n}\r\nvar math = Math;\r\nvar round = math.round;\r\nvar max = math.max;\r\nvar min = math.min;\r\nvar sin = math.sin;\r\nvar cos = math.cos;\r\nvar asin = math.asin;\r\nvar PI = math.PI;\r\nvar buildPath = function() {\r\n for (var _len = arguments.length, points = new Array(_len), _key = 0; _key < _len; _key++) {\r\n points[_key] = arguments[_key]\r\n }\r\n return points.join(\"\")\r\n};\r\n\r\nfunction getArc(cornerRadius, xDirection, yDirection) {\r\n return \"a \".concat(cornerRadius, \" \").concat(cornerRadius, \" 0 0 1 \").concat(xDirection * cornerRadius, \" \").concat(yDirection * cornerRadius)\r\n}\r\n\r\nfunction getAbsoluteArc(cornerRadius, x, y) {\r\n return \"A \".concat(cornerRadius, \" \").concat(cornerRadius, \" 0 0 1 \").concat(x, \" \").concat(y)\r\n}\r\n\r\nfunction rotateX(x, y, angle, x0, y0) {\r\n return (x - x0) * round(cos(angle)) + (y - y0) * round(sin(angle)) + x0\r\n}\r\n\r\nfunction rotateY(x, y, angle, x0, y0) {\r\n return -(x - x0) * round(sin(angle)) + (y - y0) * round(cos(angle)) + y0\r\n}\r\n\r\nfunction rotateSize(options, angle) {\r\n if (angle % 90 === 0 && angle % 180 !== 0) {\r\n return {\r\n width: options.height,\r\n height: options.width\r\n }\r\n }\r\n return options\r\n}\r\n\r\nfunction getCloudAngle(_ref, x, y, anchorX, anchorY) {\r\n var width = _ref.width,\r\n height = _ref.height;\r\n var halfWidth = width / 2;\r\n var halfHeight = height / 2;\r\n var xr = Math.ceil(x + halfWidth);\r\n var xl = Math.floor(x - halfWidth);\r\n var yt = Math.floor(y - halfHeight);\r\n var yb = Math.ceil(y + halfHeight);\r\n if (anchorX < xl && anchorY < yt || anchorX >= xl && anchorX <= xr && anchorY < yt) {\r\n return 270\r\n }\r\n if (anchorX > xr && anchorY > yb || anchorX >= xl && anchorX <= xr && anchorY > yb) {\r\n return 90\r\n } else {\r\n if (anchorX < xl && anchorY > yb || anchorX < xl && anchorY >= yt && anchorY <= yb) {\r\n return 180\r\n }\r\n }\r\n return 0\r\n}\r\n\r\nfunction getCloudPoints(_ref2, x, y, anchorX, anchorY, _ref3, bounded) {\r\n var width = _ref2.width,\r\n height = _ref2.height;\r\n var arrowWidth = _ref3.arrowWidth,\r\n _ref3$cornerRadius = _ref3.cornerRadius,\r\n cornerRadius = void 0 === _ref3$cornerRadius ? 0 : _ref3$cornerRadius;\r\n var halfArrowWidth = arrowWidth / 2;\r\n var halfWidth = width / 2;\r\n var halfHeight = height / 2;\r\n var xr = Math.ceil(x + halfWidth);\r\n var xl = Math.floor(x - halfWidth);\r\n var yt = Math.floor(y - halfHeight);\r\n var yb = Math.ceil(y + halfHeight);\r\n var leftTopCorner = [xl, yt];\r\n var rightTopCorner = [xr, yt];\r\n var rightBottomCorner = [xr, yb];\r\n var leftBottomCorner = [xl, yb];\r\n var arrowX = anchorX <= xl ? xl : xr <= anchorX ? xr : anchorX;\r\n var arrowY = anchorY <= yt ? yt : yb <= anchorY ? yb : anchorY;\r\n var arrowBaseBottom = min(arrowY + halfArrowWidth, yb);\r\n var arrowBaseTop = max(arrowY - halfArrowWidth, yt);\r\n var arrowBaseLeft = max(arrowX - halfArrowWidth, xl);\r\n cornerRadius = Math.min(width / 2, height / 2, cornerRadius);\r\n var points;\r\n leftTopCorner[1] += cornerRadius;\r\n rightTopCorner[0] -= cornerRadius;\r\n rightBottomCorner[1] -= cornerRadius;\r\n leftBottomCorner[0] += cornerRadius;\r\n if (!bounded || xl <= anchorX && anchorX <= xr && yt <= anchorY && anchorY <= yb) {\r\n points = buildPath(leftTopCorner, getArc(cornerRadius, 1, -1), \"L\", rightTopCorner, getArc(cornerRadius, 1, 1), \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1), \"L\", leftBottomCorner, getArc(cornerRadius, -1, -1))\r\n } else {\r\n if (anchorX > xr && anchorY < yt) {\r\n var arrowAngle = arrowWidth / cornerRadius || 0;\r\n var angle = PI / 4 + arrowAngle / 2;\r\n var endAngle = PI / 4 - arrowAngle / 2;\r\n var arrowEndPointX = rightTopCorner[0] + cos(endAngle) * cornerRadius;\r\n var arrowEndPointY = rightTopCorner[1] + (1 - sin(endAngle)) * cornerRadius;\r\n var arrowArc = buildPath(\"L\", rightTopCorner, getArc(cornerRadius, cos(angle), 1 - sin(angle)), \"L\", [anchorX, anchorY, arrowEndPointX, arrowEndPointY], getAbsoluteArc(cornerRadius, rightTopCorner[0] + cornerRadius, rightTopCorner[1] + cornerRadius));\r\n if (Math.abs(angle) > PI / 2) {\r\n arrowArc = buildPath(\"L\", [arrowBaseLeft, yt, anchorX, anchorY, xr, arrowBaseBottom])\r\n }\r\n points = buildPath(leftTopCorner, getArc(cornerRadius, 1, -1), arrowArc, \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1), \"L\", leftBottomCorner, getArc(cornerRadius, -1, -1))\r\n } else {\r\n if (anchorX > xr && anchorY >= yt && anchorY <= yb) {\r\n var _arrowArc;\r\n if (arrowBaseTop >= rightTopCorner[1] + cornerRadius && arrowBaseBottom <= rightBottomCorner[1]) {\r\n _arrowArc = buildPath(getArc(cornerRadius, 1, 1), \"L\", [xr, arrowBaseTop, anchorX, anchorY, xr, arrowBaseBottom], \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1))\r\n } else {\r\n if (arrowBaseTop < rightTopCorner[1] + cornerRadius && arrowBaseBottom >= rightTopCorner[1] + cornerRadius && arrowBaseBottom <= rightBottomCorner[1]) {\r\n var arrowWidthRest = rightTopCorner[1] + cornerRadius - arrowBaseTop;\r\n var _angle = arrowWidthRest / cornerRadius;\r\n var arrowBaseTopX = rightTopCorner[0] + cos(_angle) * cornerRadius;\r\n var arrowBaseTopY = rightTopCorner[1] + (1 - sin(_angle)) * cornerRadius;\r\n _arrowArc = buildPath(getArc(cornerRadius, cos(_angle), 1 - sin(_angle)), \"L\", [arrowBaseTopX, arrowBaseTopY, anchorX, anchorY, xr, arrowBaseBottom], \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1))\r\n } else {\r\n if (arrowBaseTop < rightTopCorner[1] + cornerRadius && arrowBaseBottom < rightTopCorner[1] + cornerRadius) {\r\n var _arrowWidthRest = rightTopCorner[1] + cornerRadius - arrowBaseTop;\r\n var _arrowAngle = _arrowWidthRest / cornerRadius;\r\n var _angle2 = _arrowAngle;\r\n var _arrowBaseTopX = rightTopCorner[0] + cos(_angle2) * cornerRadius;\r\n var _arrowBaseTopY = rightTopCorner[1] + (1 - sin(_angle2)) * cornerRadius;\r\n var bottomAngle = Math.sin((rightTopCorner[1] + cornerRadius - arrowBaseBottom) / cornerRadius);\r\n var arrowBaseBottomX = rightTopCorner[0] + cornerRadius * cos(bottomAngle);\r\n var arrowBaseBottomY = rightTopCorner[1] + cornerRadius * (1 - sin(bottomAngle));\r\n _arrowArc = buildPath(getArc(cornerRadius, cos(_angle2), 1 - sin(_angle2)), \"L\", [_arrowBaseTopX, _arrowBaseTopY, anchorX, anchorY, arrowBaseBottomX, arrowBaseBottomY], getAbsoluteArc(cornerRadius, rightTopCorner[0] + cornerRadius, rightTopCorner[1] + cornerRadius), \"L\", rightBottomCorner, getArc(cornerRadius, -1, 1))\r\n } else {\r\n if (arrowBaseTop <= rightTopCorner[1] + cornerRadius && arrowBaseBottom >= rightBottomCorner[1]) {\r\n var topAngle = asin((rightTopCorner[1] + cornerRadius - arrowBaseTop) / cornerRadius);\r\n var _arrowBaseTopX2 = rightTopCorner[0] + cornerRadius * cos(topAngle);\r\n var _arrowBaseTopY2 = rightTopCorner[1] + cornerRadius * (1 - sin(topAngle));\r\n var _bottomAngle = asin((arrowBaseBottom - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseBottomX = rightBottomCorner[0] + cornerRadius * (cos(_bottomAngle) - 1);\r\n var _arrowBaseBottomY = rightBottomCorner[1] + cornerRadius * sin(_bottomAngle);\r\n _arrowArc = buildPath(getArc(cornerRadius, cos(topAngle), 1 - sin(topAngle)), \"L\", [_arrowBaseTopX2, _arrowBaseTopY2, anchorX, anchorY, _arrowBaseBottomX, _arrowBaseBottomY], getAbsoluteArc(cornerRadius, rightBottomCorner[0] - cornerRadius, rightBottomCorner[1] + cornerRadius))\r\n } else {\r\n if (arrowBaseTop > rightTopCorner[1] + cornerRadius && arrowBaseTop <= rightBottomCorner[1] && arrowBaseBottom > rightBottomCorner[1]) {\r\n var _bottomAngle2 = asin((arrowBaseBottom - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseBottomX2 = rightBottomCorner[0] + cornerRadius * (cos(_bottomAngle2) - 1);\r\n var _arrowBaseBottomY2 = rightBottomCorner[1] + cornerRadius * sin(_bottomAngle2);\r\n _arrowArc = buildPath(getArc(cornerRadius, 1, 1), \"L\", [xr, arrowBaseTop, anchorX, anchorY, _arrowBaseBottomX2, _arrowBaseBottomY2], getAbsoluteArc(cornerRadius, rightBottomCorner[0] - cornerRadius, rightBottomCorner[1] + cornerRadius))\r\n } else {\r\n if (arrowBaseTop > rightTopCorner[1] + cornerRadius && arrowBaseBottom > rightBottomCorner[1]) {\r\n var _bottomAngle3 = asin((arrowBaseBottom - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseBottomX3 = rightBottomCorner[0] + cornerRadius * (cos(_bottomAngle3) - 1);\r\n var _arrowBaseBottomY3 = rightBottomCorner[1] + cornerRadius * sin(_bottomAngle3);\r\n var _topAngle = asin((arrowBaseTop - rightBottomCorner[1]) / cornerRadius);\r\n var _arrowBaseTopX3 = rightBottomCorner[0] + cornerRadius * (cos(_topAngle) - 1);\r\n var _arrowBaseTopY3 = rightBottomCorner[1] + cornerRadius * sin(_topAngle);\r\n _arrowArc = buildPath(getArc(cornerRadius, 1, 1), \"L\", rightBottomCorner, getArc(cornerRadius, cos(_topAngle) - 1, sin(_topAngle)), \"L\", [_arrowBaseTopX3, _arrowBaseTopY3, anchorX, anchorY, _arrowBaseBottomX3, _arrowBaseBottomY3], getAbsoluteArc(cornerRadius, rightBottomCorner[0] - cornerRadius, rightBottomCorner[1] + cornerRadius))\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n points = buildPath(leftTopCorner, getArc(cornerRadius, 1, -1), \"L\", rightTopCorner, _arrowArc, \"L\", leftBottomCorner, getArc(cornerRadius, -1, -1))\r\n }\r\n }\r\n }\r\n return buildPath(\"M\", points, \"Z\")\r\n}\r\nvar Plaque = function() {\r\n function Plaque(options, widget, root, contentTemplate) {\r\n var bounded = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : true;\r\n var measureContent = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : function(_, g) {\r\n return g.getBBox()\r\n };\r\n var moveContentGroup = arguments.length > 6 && void 0 !== arguments[6] ? arguments[6] : function(_, g, x, y) {\r\n return g.move(x, y)\r\n };\r\n this.widget = widget;\r\n this.options = options;\r\n this.root = root;\r\n this.contentTemplate = contentTemplate;\r\n this.bonded = bounded;\r\n this.measureContent = measureContent;\r\n this.moveContentGroup = moveContentGroup\r\n }\r\n var _proto = Plaque.prototype;\r\n _proto.draw = function(_ref4) {\r\n var _this = this;\r\n var anchorX = _ref4.x,\r\n anchorY = _ref4.y,\r\n _ref4$canvas = _ref4.canvas,\r\n canvas = void 0 === _ref4$canvas ? {} : _ref4$canvas,\r\n offsetX = _ref4.offsetX,\r\n offsetY = _ref4.offsetY,\r\n _ref4$offset = _ref4.offset,\r\n offset = void 0 === _ref4$offset ? 0 : _ref4$offset,\r\n restProps = _objectWithoutProperties(_ref4, [\"x\", \"y\", \"canvas\", \"offsetX\", \"offsetY\", \"offset\"]);\r\n var options = this.options;\r\n var x = options.x,\r\n y = options.y;\r\n var bounds = {\r\n xl: canvas.left,\r\n xr: canvas.width - canvas.right,\r\n width: canvas.width - canvas.right - canvas.left,\r\n yt: canvas.top,\r\n yb: canvas.height - canvas.bottom,\r\n height: canvas.height - canvas.bottom - canvas.top\r\n };\r\n if (!((0, _type.isDefined)(anchorX) && (0, _type.isDefined)(anchorY)) && !((0, _type.isDefined)(x) && (0, _type.isDefined)(y))) {\r\n return false\r\n }\r\n if ((0, _type.isDefined)(anchorX) && (anchorX < bounds.xl || bounds.xr < anchorX || anchorY < bounds.yt || bounds.yb < anchorY)) {\r\n return false\r\n }\r\n if (!this._root) {\r\n this._draw()\r\n }\r\n var shadowSettings = (0, _extend.extend)({\r\n x: \"-50%\",\r\n y: \"-50%\",\r\n width: \"200%\",\r\n height: \"200%\"\r\n }, options.shadow);\r\n var contentWidth = options.width > 0 ? options.width : null;\r\n var contentHeight = options.height > 0 ? options.height : null;\r\n var onRender = function() {\r\n var _this$_root;\r\n var bBox = _this._contentBBox = _this.measureContent(_this.widget, _this._contentGroup);\r\n var size = _this._size = {\r\n width: max(contentWidth, bBox.width) + 2 * options.paddingLeftRight,\r\n height: max(contentHeight, bBox.height) + 2 * options.paddingTopBottom,\r\n offset: offset\r\n };\r\n var xOff = shadowSettings.offsetX;\r\n var yOff = shadowSettings.offsetY;\r\n var blur = 2 * shadowSettings.blur + 1;\r\n var lm = max(blur - xOff, 0);\r\n var rm = max(blur + xOff, 0);\r\n var tm = max(blur - yOff, 0);\r\n var bm = max(blur + yOff, 0);\r\n _this.margins = {\r\n lm: lm,\r\n rm: rm,\r\n tm: tm,\r\n bm: bm\r\n };\r\n if (!(0, _type.isDefined)(x)) {\r\n if ((0, _type.isDefined)(offsetX)) {\r\n x = anchorX + offsetX\r\n } else {\r\n if (bounds.width < size.width) {\r\n x = round(bounds.xl + bounds.width / 2)\r\n } else {\r\n x = min(max(anchorX, Math.ceil(bounds.xl + size.width / 2 + lm)), Math.floor(bounds.xr - size.width / 2 - rm))\r\n }\r\n }\r\n } else {\r\n x += offsetX || 0;\r\n if (!(0, _type.isDefined)(anchorX)) {\r\n anchorX = x\r\n }\r\n }\r\n if (!(0, _type.isDefined)(y)) {\r\n if ((0, _type.isDefined)(offsetY)) {\r\n y = anchorY + offsetY\r\n } else {\r\n var y_top = anchorY - options.arrowLength - size.height / 2 - offset;\r\n var y_bottom = anchorY + options.arrowLength + size.height / 2 + offset;\r\n if (bounds.height < size.height + options.arrowLength) {\r\n y = round(bounds.yt + size.height / 2)\r\n } else {\r\n if (y_top - size.height / 2 - tm < bounds.yt) {\r\n if (y_bottom + size.height / 2 + bm < bounds.yb) {\r\n y = y_bottom;\r\n anchorY += offset\r\n } else {\r\n y = round(bounds.yt + size.height / 2)\r\n }\r\n } else {\r\n y = y_top;\r\n anchorY -= offset\r\n }\r\n }\r\n }\r\n } else {\r\n y += offsetY || 0;\r\n if (!(0, _type.isDefined)(anchorY)) {\r\n anchorY = y + size.height / 2\r\n }\r\n }\r\n _this.anchorX = anchorX;\r\n _this.anchorY = anchorY;\r\n _this.move(x, y);\r\n null === (_this$_root = _this._root) || void 0 === _this$_root ? void 0 : _this$_root.append(_this.root)\r\n };\r\n if (this.contentTemplate.render) {\r\n this.contentTemplate.render({\r\n model: options,\r\n container: this._contentGroup.element,\r\n onRendered: onRender\r\n })\r\n } else {\r\n return this.contentTemplate(_objectSpread({\r\n group: this._contentGroup,\r\n onRender: onRender\r\n }, restProps))\r\n }\r\n return true\r\n };\r\n _proto._draw = function() {\r\n var renderer = this.widget._renderer;\r\n var options = this.options;\r\n var shadowSettings = (0, _extend.extend)({\r\n x: \"-50%\",\r\n y: \"-50%\",\r\n width: \"200%\",\r\n height: \"200%\"\r\n }, options.shadow);\r\n var shadow = this._shadow = renderer.shadowFilter().attr(shadowSettings);\r\n var cloudSettings = {\r\n opacity: options.opacity,\r\n \"stroke-width\": 0,\r\n fill: options.color\r\n };\r\n var borderOptions = options.border || {};\r\n if (borderOptions.visible) {\r\n (0, _extend.extend)(cloudSettings, {\r\n \"stroke-width\": borderOptions.width,\r\n stroke: borderOptions.color,\r\n \"stroke-opacity\": borderOptions.opacity,\r\n dashStyle: borderOptions.dashStyle\r\n })\r\n }\r\n var group = this._root = renderer.g().append(this.root);\r\n if (options.type) {\r\n group.attr({\r\n \"class\": \"dxc-\".concat(options.type, \"-annotation\")\r\n })\r\n }\r\n var cloudGroup = renderer.g().attr({\r\n filter: shadow.id\r\n }).append(group);\r\n this._cloud = renderer.path([], \"area\").attr(cloudSettings).sharp().append(cloudGroup);\r\n this._contentGroup = renderer.g().append(group)\r\n };\r\n _proto.getBBox = function() {\r\n var size = this._size || {};\r\n var margins = this.margins || {};\r\n var rotationAngle = getCloudAngle(size, this.x, this.y, this.anchorX, this.anchorY);\r\n return {\r\n x: Math.floor(this.x - size.width / 2 - margins.lm),\r\n y: Math.floor(this.y - size.height / 2 - margins.tm - (270 === rotationAngle ? this.options.arrowLength : 0)),\r\n width: size.width + margins.lm + margins.rm,\r\n height: size.height + margins.tm + margins.bm + (90 === rotationAngle || 270 === rotationAngle ? this.options.arrowLength : 0)\r\n }\r\n };\r\n _proto.clear = function() {\r\n if (this._root) {\r\n this._root.remove();\r\n this._shadow.remove();\r\n this._root = null\r\n }\r\n return this\r\n };\r\n _proto.customizeCloud = function(attr) {\r\n if (this._cloud) {\r\n this._cloud.attr(attr)\r\n }\r\n };\r\n _proto.moveRoot = function(x, y) {\r\n if (this._root) {\r\n this._root.move(x, y)\r\n }\r\n };\r\n _proto.move = function(x, y) {\r\n x = round(x);\r\n y = round(y);\r\n this.x = x;\r\n this.y = y;\r\n var rotationAngle = getCloudAngle(this._size, x, y, this.anchorX, this.anchorY);\r\n var radRotationAngle = rotationAngle * PI / 180;\r\n this._cloud.attr({\r\n d: getCloudPoints(rotateSize(this._size, rotationAngle), x, y, rotateX(this.anchorX, this.anchorY, radRotationAngle, x, y), rotateY(this.anchorX, this.anchorY, radRotationAngle, x, y), this.options, this.bonded)\r\n }).rotate(rotationAngle, x, y);\r\n this.moveContentGroup(this.widget, this._contentGroup, x - this._contentBBox.x - this._contentBBox.width / 2, y - this._contentBBox.y - this._contentBBox.height / 2)\r\n };\r\n _proto.hitTest = function(x, y) {\r\n var _ref5 = this._size || {},\r\n width = _ref5.width,\r\n height = _ref5.height;\r\n return Math.abs(x - this.x) <= width / 2 && Math.abs(y - this.y) <= height / 2\r\n };\r\n return Plaque\r\n}();\r\nexports.Plaque = Plaque;\r\n","/**\r\n * DevExtreme (viz/components/chart_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.ThemeManager = void 0;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _base_theme_manager = require(\"../core/base_theme_manager\");\r\nvar _utils = require(\"../core/utils\");\r\nvar ThemeManager = _base_theme_manager.BaseThemeManager.inherit(function() {\r\n var ctor = function(params) {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n var options = params.options || {};\r\n that._userOptions = options;\r\n that._mergeAxisTitleOptions = [];\r\n that._multiPieColors = {};\r\n that._callback = _common.noop\r\n };\r\n var dispose = function() {\r\n var that = this;\r\n that.palette && that.palette.dispose();\r\n that.palette = that._userOptions = that._mergedSettings = that._multiPieColors = null;\r\n return that.callBase.apply(that, arguments)\r\n };\r\n var resetPalette = function() {\r\n this.palette.reset();\r\n this._multiPieColors = {}\r\n };\r\n var processTitleOptions = function(options) {\r\n return (0, _type.isString)(options) ? {\r\n text: options\r\n } : options\r\n };\r\n var processAxisOptions = function(axisOptions) {\r\n if (!axisOptions) {\r\n return {}\r\n }\r\n axisOptions = (0, _extend.extend)(true, {}, axisOptions);\r\n axisOptions.title = processTitleOptions(axisOptions.title);\r\n if (\"logarithmic\" === axisOptions.type && axisOptions.logarithmBase <= 0 || axisOptions.logarithmBase && !(0, _type.isNumeric)(axisOptions.logarithmBase)) {\r\n axisOptions.logarithmBase = void 0;\r\n axisOptions.logarithmBaseError = true\r\n }\r\n if (axisOptions.label) {\r\n if (axisOptions.label.alignment) {\r\n axisOptions.label.userAlignment = true\r\n }\r\n }\r\n return axisOptions\r\n };\r\n var applyParticularAxisOptions = function(name, userOptions, rotated) {\r\n var theme = this._theme;\r\n var position = !(rotated ^ \"valueAxis\" === name) ? \"horizontalAxis\" : \"verticalAxis\";\r\n var processedUserOptions = processAxisOptions(userOptions, name);\r\n var commonAxisSettings = processAxisOptions(this._userOptions.commonAxisSettings, name);\r\n var mergeOptions = (0, _extend.extend)(true, {}, theme.commonAxisSettings, theme[position], theme[name], commonAxisSettings, processedUserOptions);\r\n mergeOptions.workWeek = processedUserOptions.workWeek || theme[name].workWeek;\r\n mergeOptions.forceUserTickInterval |= (0, _type.isDefined)(processedUserOptions.tickInterval) && !(0, _type.isDefined)(processedUserOptions.axisDivisionFactor);\r\n return mergeOptions\r\n };\r\n var mergeOptions = function(name, userOptions) {\r\n userOptions = userOptions || this._userOptions[name];\r\n var theme = this._theme[name];\r\n var result = this._mergedSettings[name];\r\n if (result) {\r\n return result\r\n }\r\n if ((0, _type.isPlainObject)(theme) && (0, _type.isPlainObject)(userOptions)) {\r\n result = (0, _extend.extend)(true, {}, theme, userOptions)\r\n } else {\r\n result = (0, _type.isDefined)(userOptions) ? userOptions : theme\r\n }\r\n this._mergedSettings[name] = result;\r\n return result\r\n };\r\n var applyParticularTheme = {\r\n base: mergeOptions,\r\n argumentAxis: applyParticularAxisOptions,\r\n valueAxisRangeSelector: function() {\r\n return mergeOptions.call(this, \"valueAxis\")\r\n },\r\n valueAxis: applyParticularAxisOptions,\r\n series: function(name, userOptions, seriesCount) {\r\n var that = this;\r\n var theme = that._theme;\r\n var userCommonSettings = that._userOptions.commonSeriesSettings || {};\r\n var themeCommonSettings = theme.commonSeriesSettings;\r\n var widgetType = that._themeSection.split(\".\").slice(-1)[0];\r\n var type = (0, _utils.normalizeEnum)(userOptions.type || userCommonSettings.type || themeCommonSettings.type || \"pie\" === widgetType && theme.type);\r\n var palette = that.palette;\r\n var isBar = ~type.indexOf(\"bar\");\r\n var isLine = ~type.indexOf(\"line\");\r\n var isArea = ~type.indexOf(\"area\");\r\n var isBubble = \"bubble\" === type;\r\n var mainSeriesColor;\r\n var resolveLabelsOverlapping = that.getOptions(\"resolveLabelsOverlapping\");\r\n var containerBackgroundColor = that.getOptions(\"containerBackgroundColor\");\r\n var seriesTemplate = applyParticularTheme.seriesTemplate.call(this);\r\n var seriesVisibility;\r\n if (isBar || isBubble) {\r\n userOptions = (0, _extend.extend)(true, {}, userCommonSettings, userCommonSettings[type], userOptions);\r\n seriesVisibility = userOptions.visible;\r\n userCommonSettings = {\r\n type: {}\r\n };\r\n (0, _extend.extend)(true, userOptions, userOptions.point);\r\n userOptions.visible = seriesVisibility\r\n }\r\n var settings = (0, _extend.extend)(true, {\r\n aggregation: {}\r\n }, themeCommonSettings, themeCommonSettings[type], userCommonSettings, userCommonSettings[type], userOptions);\r\n settings.aggregation.enabled = \"chart\" === widgetType && !!settings.aggregation.enabled;\r\n settings.type = type;\r\n settings.widgetType = widgetType;\r\n settings.containerBackgroundColor = containerBackgroundColor;\r\n if (\"pie\" !== widgetType) {\r\n mainSeriesColor = settings.color || palette.getNextColor(seriesCount)\r\n } else {\r\n mainSeriesColor = function(argument, index, count) {\r\n var cat = \"\".concat(argument, \"-\").concat(index);\r\n if (!that._multiPieColors[cat]) {\r\n that._multiPieColors[cat] = palette.getNextColor(count)\r\n }\r\n return that._multiPieColors[cat]\r\n }\r\n }\r\n settings.mainSeriesColor = mainSeriesColor;\r\n settings.resolveLabelsOverlapping = resolveLabelsOverlapping;\r\n if (settings.label && (isLine || isArea && \"rangearea\" !== type || \"scatter\" === type)) {\r\n settings.label.position = \"outside\"\r\n }\r\n if (seriesTemplate) {\r\n settings.nameField = seriesTemplate.nameField\r\n }\r\n return settings\r\n },\r\n animation: function(name) {\r\n var userOptions = this._userOptions[name];\r\n userOptions = (0, _type.isPlainObject)(userOptions) ? userOptions : (0, _type.isDefined)(userOptions) ? {\r\n enabled: !!userOptions\r\n } : {};\r\n return mergeOptions.call(this, name, userOptions)\r\n },\r\n seriesTemplate: function() {\r\n var value = mergeOptions.call(this, \"seriesTemplate\");\r\n if (value) {\r\n value.nameField = value.nameField || \"series\"\r\n }\r\n return value\r\n },\r\n zoomAndPan: function() {\r\n function parseOption(option) {\r\n option = (0, _utils.normalizeEnum)(option);\r\n var pan = \"pan\" === option || \"both\" === option;\r\n var zoom = \"zoom\" === option || \"both\" === option;\r\n return {\r\n pan: pan,\r\n zoom: zoom,\r\n none: !pan && !zoom\r\n }\r\n }\r\n var options = mergeOptions.call(this, \"zoomAndPan\");\r\n return {\r\n valueAxis: parseOption(options.valueAxis),\r\n argumentAxis: parseOption(options.argumentAxis),\r\n dragToZoom: !!options.dragToZoom,\r\n dragBoxStyle: {\r\n \"class\": \"dxc-shutter\",\r\n fill: options.dragBoxStyle.color,\r\n opacity: options.dragBoxStyle.opacity\r\n },\r\n panKey: options.panKey,\r\n allowMouseWheel: !!options.allowMouseWheel,\r\n allowTouchGestures: !!options.allowTouchGestures\r\n }\r\n }\r\n };\r\n return {\r\n _themeSection: \"chart\",\r\n ctor: ctor,\r\n dispose: dispose,\r\n resetPalette: resetPalette,\r\n getOptions: function(name) {\r\n return (applyParticularTheme[name] || applyParticularTheme.base).apply(this, arguments)\r\n },\r\n refresh: function() {\r\n this._mergedSettings = {};\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _initializeTheme: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n that.updatePalette()\r\n },\r\n resetOptions: function(name) {\r\n this._mergedSettings[name] = null\r\n },\r\n update: function(options) {\r\n this._userOptions = options\r\n },\r\n updatePalette: function() {\r\n var that = this;\r\n that.palette = that.createPalette(that.getOptions(\"palette\"), {\r\n useHighlight: true,\r\n extensionMode: that.getOptions(\"paletteExtensionMode\")\r\n })\r\n }\r\n }\r\n}());\r\nexports.ThemeManager = ThemeManager;\r\n","/**\r\n * DevExtreme (viz/core/series_family.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.SeriesFamily = SeriesFamily;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _math = require(\"../../core/utils/math\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _utils = require(\"./utils\");\r\nvar round = Math.round,\r\n abs = Math.abs,\r\n pow = Math.pow,\r\n sqrt = Math.sqrt;\r\nvar _min = Math.min;\r\nvar DEFAULT_BAR_GROUP_PADDING = .3;\r\n\r\nfunction validateBarPadding(barPadding) {\r\n return barPadding < 0 || barPadding > 1 ? void 0 : barPadding\r\n}\r\n\r\nfunction validateBarGroupPadding(barGroupPadding) {\r\n return barGroupPadding < 0 || barGroupPadding > 1 ? DEFAULT_BAR_GROUP_PADDING : barGroupPadding\r\n}\r\n\r\nfunction isStackExist(series, arg) {\r\n return series.some(function(s) {\r\n return !s.getOptions().ignoreEmptyPoints || s.getPointsByArg(arg, true).some(function(point) {\r\n return point.hasValue()\r\n })\r\n })\r\n}\r\n\r\nfunction correctStackCoordinates(series, currentStacks, arg, stack, parameters, barsArea, seriesStackIndexCallback) {\r\n series.forEach(function(series) {\r\n var stackIndex = seriesStackIndexCallback(currentStacks.indexOf(stack), currentStacks.length);\r\n var points = series.getPointsByArg(arg, true);\r\n var barPadding = validateBarPadding(series.getOptions().barPadding);\r\n var barWidth = series.getOptions().barWidth;\r\n var offset = getOffset(stackIndex, parameters);\r\n var width = parameters.width;\r\n var extraParameters;\r\n if (stackIndex === -1) {\r\n return\r\n }\r\n if ((0, _type.isDefined)(barPadding) || (0, _type.isDefined)(barWidth)) {\r\n extraParameters = calculateParams(barsArea, currentStacks.length, 1 - barPadding, barWidth);\r\n width = extraParameters.width;\r\n offset = getOffset(stackIndex, extraParameters)\r\n }\r\n correctPointCoordinates(points, width, offset)\r\n })\r\n}\r\n\r\nfunction adjustBarSeriesDimensionsCore(series, options, seriesStackIndexCallback) {\r\n var commonStacks = [];\r\n var allArguments = [];\r\n var seriesInStacks = {};\r\n var barGroupWidth = options.barGroupWidth;\r\n var interval = series[0] && series[0].getArgumentAxis().getTranslator().getInterval();\r\n var barsArea = barGroupWidth ? interval > barGroupWidth ? barGroupWidth : interval : interval * (1 - validateBarGroupPadding(options.barGroupPadding));\r\n series.forEach(function(s, i) {\r\n var stackName = s.getStackName() || s.getBarOverlapGroup() || i.toString();\r\n var argument;\r\n for (argument in s.pointsByArgument) {\r\n if (allArguments.indexOf(argument.valueOf()) === -1) {\r\n allArguments.push(argument.valueOf())\r\n }\r\n }\r\n if (commonStacks.indexOf(stackName) === -1) {\r\n commonStacks.push(stackName);\r\n seriesInStacks[stackName] = []\r\n }\r\n seriesInStacks[stackName].push(s)\r\n });\r\n allArguments.forEach(function(arg) {\r\n var currentStacks = commonStacks.reduce(function(stacks, stack) {\r\n if (isStackExist(seriesInStacks[stack], arg)) {\r\n stacks.push(stack)\r\n }\r\n return stacks\r\n }, []);\r\n var parameters = calculateParams(barsArea, currentStacks.length);\r\n commonStacks.forEach(function(stack) {\r\n correctStackCoordinates(seriesInStacks[stack], currentStacks, arg, stack, parameters, barsArea, seriesStackIndexCallback)\r\n })\r\n })\r\n}\r\n\r\nfunction calculateParams(barsArea, count, percentWidth, fixedBarWidth) {\r\n var spacing;\r\n var width;\r\n if (fixedBarWidth) {\r\n width = _min(fixedBarWidth, barsArea / count);\r\n spacing = count > 1 ? round((barsArea - round(width) * count) / (count - 1)) : 0\r\n } else {\r\n if ((0, _type.isDefined)(percentWidth)) {\r\n width = barsArea * percentWidth / count;\r\n spacing = count > 1 ? round((barsArea - barsArea * percentWidth) / (count - 1)) : 0\r\n } else {\r\n spacing = round(barsArea / count * .2);\r\n width = (barsArea - spacing * (count - 1)) / count\r\n }\r\n }\r\n return {\r\n width: width > 1 ? round(width) : 1,\r\n spacing: spacing,\r\n middleIndex: count / 2,\r\n rawWidth: width\r\n }\r\n}\r\n\r\nfunction getOffset(stackIndex, parameters) {\r\n var width = parameters.rawWidth < 1 ? parameters.rawWidth : parameters.width;\r\n return (stackIndex - parameters.middleIndex + .5) * width - (parameters.middleIndex - stackIndex - .5) * parameters.spacing\r\n}\r\n\r\nfunction correctPointCoordinates(points, width, offset) {\r\n (0, _iterator.each)(points, function(_, point) {\r\n point.correctCoordinates({\r\n width: width,\r\n offset: offset\r\n })\r\n })\r\n}\r\n\r\nfunction getValueType(value) {\r\n return value >= 0 ? \"positive\" : \"negative\"\r\n}\r\n\r\nfunction getVisibleSeries(that) {\r\n return that.series.filter(function(s) {\r\n return s.isVisible()\r\n })\r\n}\r\n\r\nfunction getAbsStackSumByArg(stackKeepers, stackName, argument) {\r\n var positiveStackValue = (stackKeepers.positive[stackName] || {})[argument] || 0;\r\n var negativeStackValue = -(stackKeepers.negative[stackName] || {})[argument] || 0;\r\n return positiveStackValue + negativeStackValue\r\n}\r\n\r\nfunction getStackSumByArg(stackKeepers, stackName, argument) {\r\n var positiveStackValue = (stackKeepers.positive[stackName] || {})[argument] || 0;\r\n var negativeStackValue = (stackKeepers.negative[stackName] || {})[argument] || 0;\r\n return positiveStackValue + negativeStackValue\r\n}\r\n\r\nfunction getSeriesStackIndexCallback(inverted) {\r\n if (!inverted) {\r\n return function(index) {\r\n return index\r\n }\r\n } else {\r\n return function(index, stackCount) {\r\n return stackCount - index - 1\r\n }\r\n }\r\n}\r\n\r\nfunction isInverted(series) {\r\n return series[0] && series[0].getArgumentAxis().getTranslator().isInverted()\r\n}\r\n\r\nfunction adjustBarSeriesDimensions() {\r\n var series = getVisibleSeries(this);\r\n adjustBarSeriesDimensionsCore(series, this._options, getSeriesStackIndexCallback(isInverted(series)))\r\n}\r\n\r\nfunction getFirstValueSign(series) {\r\n var points = series.getPoints();\r\n var value;\r\n for (var i = 0; i < points.length; i++) {\r\n var point = points[i];\r\n value = point.initialValue && point.initialValue.valueOf();\r\n if (abs(value) > 0) {\r\n break\r\n }\r\n }\r\n return (0, _math.sign)(value)\r\n}\r\n\r\nfunction adjustStackedSeriesValues() {\r\n var that = this;\r\n var negativesAsZeroes = that._options.negativesAsZeroes;\r\n var series = getVisibleSeries(that);\r\n var stackKeepers = {\r\n positive: {},\r\n negative: {}\r\n };\r\n var holesStack = {\r\n left: {},\r\n right: {}\r\n };\r\n var lastSeriesInPositiveStack = {};\r\n var lastSeriesInNegativeStack = {};\r\n series.forEach(function(singleSeries) {\r\n var stackName = singleSeries.getStackName() || singleSeries.getBarOverlapGroup();\r\n var hole = false;\r\n var stack = getFirstValueSign(singleSeries) < 0 ? lastSeriesInNegativeStack : lastSeriesInPositiveStack;\r\n singleSeries._prevSeries = stack[stackName];\r\n stack[stackName] = singleSeries;\r\n singleSeries.holes = (0, _extend.extend)(true, {}, holesStack);\r\n singleSeries.getPoints().forEach(function(point, index, points) {\r\n var value = point.initialValue && point.initialValue.valueOf();\r\n var argument = point.argument.valueOf();\r\n var stacks = value >= 0 ? stackKeepers.positive : stackKeepers.negative;\r\n var isNotBarSeries = \"bar\" !== singleSeries.type;\r\n if (negativesAsZeroes && value < 0) {\r\n stacks = stackKeepers.positive;\r\n value = 0;\r\n point.resetValue()\r\n }\r\n stacks[stackName] = stacks[stackName] || {};\r\n var currentStack = stacks[stackName];\r\n if (currentStack[argument]) {\r\n if (isNotBarSeries) {\r\n point.correctValue(currentStack[argument])\r\n }\r\n currentStack[argument] += value\r\n } else {\r\n currentStack[argument] = value;\r\n if (isNotBarSeries) {\r\n point.resetCorrection()\r\n }\r\n }\r\n if (!point.hasValue()) {\r\n var prevPoint = points[index - 1];\r\n if (!hole && prevPoint && prevPoint.hasValue()) {\r\n argument = prevPoint.argument.valueOf();\r\n prevPoint._skipSetRightHole = true;\r\n holesStack.right[argument] = (holesStack.right[argument] || 0) + (prevPoint.value.valueOf() - (isFinite(prevPoint.minValue) ? prevPoint.minValue.valueOf() : 0))\r\n }\r\n hole = true\r\n } else {\r\n if (hole) {\r\n hole = false;\r\n holesStack.left[argument] = (holesStack.left[argument] || 0) + (point.value.valueOf() - (isFinite(point.minValue) ? point.minValue.valueOf() : 0));\r\n point._skipSetLeftHole = true\r\n }\r\n }\r\n })\r\n });\r\n series.forEach(function(singleSeries) {\r\n var holes = singleSeries.holes;\r\n singleSeries.getPoints().forEach(function(point) {\r\n var argument = point.argument.valueOf();\r\n point.resetHoles();\r\n !point._skipSetLeftHole && point.setHole(holes.left[argument] || holesStack.left[argument] && 0, \"left\");\r\n !point._skipSetRightHole && point.setHole(holes.right[argument] || holesStack.right[argument] && 0, \"right\");\r\n point._skipSetLeftHole = null;\r\n point._skipSetRightHole = null\r\n })\r\n });\r\n that._stackKeepers = stackKeepers;\r\n series.forEach(function(singleSeries) {\r\n singleSeries.getPoints().forEach(function(point) {\r\n var argument = point.argument.valueOf();\r\n var stackName = singleSeries.getStackName() || singleSeries.getBarOverlapGroup();\r\n var absTotal = getAbsStackSumByArg(stackKeepers, stackName, argument);\r\n var total = getStackSumByArg(stackKeepers, stackName, argument);\r\n point.setPercentValue(absTotal, total, holesStack.left[argument], holesStack.right[argument])\r\n })\r\n })\r\n}\r\n\r\nfunction updateStackedSeriesValues() {\r\n var that = this;\r\n var series = getVisibleSeries(that);\r\n var stack = that._stackKeepers;\r\n var stackKeepers = {\r\n positive: {},\r\n negative: {}\r\n };\r\n (0, _iterator.each)(series, function(_, singleSeries) {\r\n var minBarSize = singleSeries.getOptions().minBarSize;\r\n var valueAxisTranslator = singleSeries.getValueAxis().getTranslator();\r\n var minShownBusinessValue = minBarSize && valueAxisTranslator.getMinBarSize(minBarSize);\r\n var stackName = singleSeries.getStackName();\r\n (0, _iterator.each)(singleSeries.getPoints(), function(index, point) {\r\n if (!point.hasValue()) {\r\n return\r\n }\r\n var value = point.initialValue && point.initialValue.valueOf();\r\n var argument = point.argument.valueOf();\r\n if (that.fullStacked) {\r\n value = value / getAbsStackSumByArg(stack, stackName, argument) || 0\r\n }\r\n var updateValue = valueAxisTranslator.checkMinBarSize(value, minShownBusinessValue, point.value);\r\n var valueType = getValueType(updateValue);\r\n var currentStack = stackKeepers[valueType][stackName] = stackKeepers[valueType][stackName] || {};\r\n if (currentStack[argument]) {\r\n point.minValue = currentStack[argument];\r\n currentStack[argument] += updateValue\r\n } else {\r\n currentStack[argument] = updateValue\r\n }\r\n point.value = currentStack[argument]\r\n })\r\n });\r\n if (that.fullStacked) {\r\n updateFullStackedSeriesValues(series, stackKeepers)\r\n }\r\n}\r\n\r\nfunction updateFullStackedSeriesValues(series, stackKeepers) {\r\n (0, _iterator.each)(series, function(_, singleSeries) {\r\n var stackName = singleSeries.getStackName ? singleSeries.getStackName() : \"default\";\r\n (0, _iterator.each)(singleSeries.getPoints(), function(index, point) {\r\n var stackSum = getAbsStackSumByArg(stackKeepers, stackName, point.argument.valueOf());\r\n if (0 !== stackSum) {\r\n point.value = point.value / stackSum;\r\n if ((0, _type.isNumeric)(point.minValue)) {\r\n point.minValue = point.minValue / stackSum\r\n }\r\n }\r\n })\r\n })\r\n}\r\n\r\nfunction updateBarSeriesValues() {\r\n (0, _iterator.each)(this.series, function(_, singleSeries) {\r\n var minBarSize = singleSeries.getOptions().minBarSize;\r\n var valueAxisTranslator = singleSeries.getValueAxis().getTranslator();\r\n var minShownBusinessValue = minBarSize && valueAxisTranslator.getMinBarSize(minBarSize);\r\n if (minShownBusinessValue) {\r\n (0, _iterator.each)(singleSeries.getPoints(), function(index, point) {\r\n if (point.hasValue()) {\r\n point.value = valueAxisTranslator.checkMinBarSize(point.initialValue, minShownBusinessValue)\r\n }\r\n })\r\n }\r\n })\r\n}\r\n\r\nfunction adjustCandlestickSeriesDimensions() {\r\n var series = getVisibleSeries(this);\r\n adjustBarSeriesDimensionsCore(series, {\r\n barGroupPadding: .3\r\n }, getSeriesStackIndexCallback(isInverted(series)))\r\n}\r\n\r\nfunction adjustBubbleSeriesDimensions() {\r\n var series = getVisibleSeries(this);\r\n if (!series.length) {\r\n return\r\n }\r\n var options = this._options;\r\n var visibleAreaX = series[0].getArgumentAxis().getVisibleArea();\r\n var visibleAreaY = series[0].getValueAxis().getVisibleArea();\r\n var min = _min(visibleAreaX[1] - visibleAreaX[0], visibleAreaY[1] - visibleAreaY[0]);\r\n var minBubbleArea = pow(options.minBubbleSize, 2);\r\n var maxBubbleArea = pow(min * options.maxBubbleSize, 2);\r\n var equalBubbleSize = (min * options.maxBubbleSize + options.minBubbleSize) / 2;\r\n var minPointSize = 1 / 0;\r\n var maxPointSize = -(1 / 0);\r\n var pointSize;\r\n var bubbleArea;\r\n var sizeProportion;\r\n (0, _iterator.each)(series, function(_, seriesItem) {\r\n (0, _iterator.each)(seriesItem.getPoints(), function(_, point) {\r\n maxPointSize = maxPointSize > point.size ? maxPointSize : point.size;\r\n minPointSize = minPointSize < point.size ? minPointSize : point.size\r\n })\r\n });\r\n var sizeDispersion = maxPointSize - minPointSize;\r\n var areaDispersion = abs(maxBubbleArea - minBubbleArea);\r\n (0, _iterator.each)(series, function(_, seriesItem) {\r\n (0, _iterator.each)(seriesItem.getPoints(), function(_, point) {\r\n if (maxPointSize === minPointSize) {\r\n pointSize = round(equalBubbleSize)\r\n } else {\r\n sizeProportion = abs(point.size - minPointSize) / sizeDispersion;\r\n bubbleArea = areaDispersion * sizeProportion + minBubbleArea;\r\n pointSize = round(sqrt(bubbleArea))\r\n }\r\n point.correctCoordinates(pointSize)\r\n })\r\n })\r\n}\r\n\r\nfunction SeriesFamily(options) {\r\n var that = this;\r\n that.type = (0, _utils.normalizeEnum)(options.type);\r\n that.pane = options.pane;\r\n that.series = [];\r\n that.updateOptions(options);\r\n switch (that.type) {\r\n case \"bar\":\r\n that.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n that.updateSeriesValues = updateBarSeriesValues;\r\n that.adjustSeriesValues = adjustStackedSeriesValues;\r\n break;\r\n case \"rangebar\":\r\n that.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n break;\r\n case \"fullstackedbar\":\r\n that.fullStacked = true;\r\n that.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n that.adjustSeriesValues = adjustStackedSeriesValues;\r\n that.updateSeriesValues = updateStackedSeriesValues;\r\n break;\r\n case \"stackedbar\":\r\n that.adjustSeriesDimensions = adjustBarSeriesDimensions;\r\n that.adjustSeriesValues = adjustStackedSeriesValues;\r\n that.updateSeriesValues = updateStackedSeriesValues;\r\n break;\r\n case \"fullstackedarea\":\r\n case \"fullstackedline\":\r\n case \"fullstackedspline\":\r\n case \"fullstackedsplinearea\":\r\n that.fullStacked = true;\r\n that.adjustSeriesValues = adjustStackedSeriesValues;\r\n break;\r\n case \"stackedarea\":\r\n case \"stackedsplinearea\":\r\n case \"stackedline\":\r\n case \"stackedspline\":\r\n that.adjustSeriesValues = adjustStackedSeriesValues;\r\n break;\r\n case \"candlestick\":\r\n case \"stock\":\r\n that.adjustSeriesDimensions = adjustCandlestickSeriesDimensions;\r\n break;\r\n case \"bubble\":\r\n that.adjustSeriesDimensions = adjustBubbleSeriesDimensions\r\n }\r\n}\r\nSeriesFamily.prototype = {\r\n constructor: SeriesFamily,\r\n adjustSeriesDimensions: _common.noop,\r\n adjustSeriesValues: _common.noop,\r\n updateSeriesValues: _common.noop,\r\n updateOptions: function(options) {\r\n this._options = options\r\n },\r\n dispose: function() {\r\n this.series = null\r\n },\r\n add: function(series) {\r\n var type = this.type;\r\n this.series = (0, _utils.map)(series, function(singleSeries) {\r\n return singleSeries.type === type ? singleSeries : null\r\n })\r\n }\r\n};\r\n","/**\r\n * DevExtreme (viz/core/themes/generic.light.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _themes = require(\"../../themes\");\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar LIGHT_GREY = \"#d3d3d3\";\r\nvar GREY_GREEN = \"#303030\";\r\nvar SOME_GREY = \"#2b2b2b\";\r\nvar RED = \"#ff0000\";\r\nvar PRIMARY_TITLE_COLOR = \"#232323\";\r\nvar SECONDARY_TITLE_COLOR = \"#767676\";\r\nvar NONE = \"none\";\r\nvar SOLID = \"solid\";\r\nvar TOP = \"top\";\r\nvar RIGHT = \"right\";\r\nvar BOTTOM = \"bottom\";\r\nvar LEFT = \"left\";\r\nvar CENTER = \"center\";\r\nvar INSIDE = \"inside\";\r\nvar OUTSIDE = \"outside\";\r\n(0, _themes.registerTheme)({\r\n name: \"generic.light\",\r\n isDefault: true,\r\n font: {\r\n color: SECONDARY_TITLE_COLOR,\r\n family: \"'Segoe UI', 'Helvetica Neue', 'Trebuchet MS', Verdana, sans-serif\",\r\n weight: 400,\r\n size: 12,\r\n cursor: \"default\"\r\n },\r\n redrawOnResize: true,\r\n backgroundColor: WHITE,\r\n primaryTitleColor: PRIMARY_TITLE_COLOR,\r\n secondaryTitleColor: SECONDARY_TITLE_COLOR,\r\n gridColor: LIGHT_GREY,\r\n axisColor: SECONDARY_TITLE_COLOR,\r\n title: {\r\n backgroundColor: WHITE,\r\n font: {\r\n size: 28,\r\n family: \"'Segoe UI Light', 'Helvetica Neue Light', 'Segoe UI', 'Helvetica Neue', 'Trebuchet MS', Verdana, sans-serif\",\r\n weight: 200\r\n },\r\n subtitle: {\r\n font: {\r\n size: 16\r\n },\r\n offset: 0,\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n loadingIndicator: {\r\n text: \"Loading...\"\r\n },\r\n \"export\": {\r\n backgroundColor: WHITE,\r\n margin: 10,\r\n font: {\r\n size: 14,\r\n color: PRIMARY_TITLE_COLOR,\r\n weight: 400\r\n },\r\n button: {\r\n margin: {\r\n top: 8,\r\n left: 10,\r\n right: 10,\r\n bottom: 8\r\n },\r\n \"default\": {\r\n color: \"#333\",\r\n borderColor: \"#ddd\",\r\n backgroundColor: WHITE\r\n },\r\n hover: {\r\n color: \"#333\",\r\n borderColor: \"#bebebe\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n focus: {\r\n color: BLACK,\r\n borderColor: \"#9d9d9d\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n active: {\r\n color: \"#333\",\r\n borderColor: \"#9d9d9d\",\r\n backgroundColor: \"#d4d4d4\"\r\n }\r\n },\r\n shadowColor: LIGHT_GREY\r\n },\r\n tooltip: {\r\n enabled: false,\r\n border: {\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID,\r\n visible: true\r\n },\r\n font: {\r\n color: PRIMARY_TITLE_COLOR\r\n },\r\n color: WHITE,\r\n arrowLength: 10,\r\n paddingLeftRight: 18,\r\n paddingTopBottom: 15,\r\n textAlignment: \"center\",\r\n shared: false,\r\n location: CENTER,\r\n shadow: {\r\n opacity: .4,\r\n offsetX: 0,\r\n offsetY: 4,\r\n blur: 2,\r\n color: BLACK\r\n },\r\n interactive: false\r\n },\r\n legend: {\r\n hoverMode: \"includePoints\",\r\n verticalAlignment: TOP,\r\n horizontalAlignment: RIGHT,\r\n position: OUTSIDE,\r\n visible: true,\r\n margin: 10,\r\n markerSize: 12,\r\n border: {\r\n visible: false,\r\n width: 1,\r\n cornerRadius: 0,\r\n dashStyle: SOLID\r\n },\r\n paddingLeftRight: 20,\r\n paddingTopBottom: 15,\r\n columnCount: 0,\r\n rowCount: 0,\r\n columnItemSpacing: 20,\r\n rowItemSpacing: 8,\r\n title: {\r\n backgroundColor: WHITE,\r\n margin: {\r\n left: 0,\r\n bottom: 9,\r\n right: 0,\r\n top: 0\r\n },\r\n font: {\r\n size: 18,\r\n weight: 200\r\n },\r\n subtitle: {\r\n offset: 0,\r\n font: {\r\n size: 14\r\n },\r\n wordWrap: \"none\",\r\n textOverflow: \"ellipsis\"\r\n },\r\n wordWrap: \"none\",\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n \"chart:common\": {\r\n animation: {\r\n enabled: true,\r\n duration: 1e3,\r\n easing: \"easeOutCubic\",\r\n maxPointCountSupported: 300\r\n },\r\n commonSeriesSettings: {\r\n border: {\r\n visible: false,\r\n width: 2\r\n },\r\n showInLegend: true,\r\n visible: true,\r\n hoverMode: \"nearestPoint\",\r\n selectionMode: \"includePoints\",\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 2,\r\n step: 6,\r\n opacity: .75\r\n },\r\n border: {\r\n visible: false,\r\n width: 3\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 2,\r\n step: 6,\r\n opacity: .5\r\n },\r\n border: {\r\n visible: false,\r\n width: 3\r\n }\r\n },\r\n valueErrorBar: {\r\n displayMode: \"auto\",\r\n value: 1,\r\n color: BLACK,\r\n lineWidth: 2,\r\n edgeLength: 8\r\n },\r\n label: {\r\n visible: false,\r\n alignment: CENTER,\r\n rotationAngle: 0,\r\n horizontalOffset: 0,\r\n verticalOffset: 0,\r\n radialOffset: 0,\r\n showForZeroValues: true,\r\n customizeText: void 0,\r\n maxLabelCount: void 0,\r\n position: OUTSIDE,\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n visible: false,\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID\r\n },\r\n connector: {\r\n visible: false,\r\n width: 1\r\n }\r\n }\r\n },\r\n seriesSelectionMode: \"single\",\r\n pointSelectionMode: \"single\",\r\n equalRowHeight: true,\r\n dataPrepareSettings: {\r\n checkTypeForAllData: false,\r\n convertToAxisDataType: true,\r\n sortingMethod: true\r\n },\r\n title: {\r\n margin: 10\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n },\r\n resolveLabelOverlapping: NONE\r\n },\r\n \"chart:common:axis\": {\r\n visible: true,\r\n valueMarginsEnabled: true,\r\n placeholderSize: null,\r\n logarithmBase: 10,\r\n discreteAxisDivisionMode: \"betweenLabels\",\r\n width: 1,\r\n label: {\r\n visible: true\r\n },\r\n grid: {\r\n visible: false,\r\n width: 1\r\n },\r\n minorGrid: {\r\n visible: false,\r\n width: 1,\r\n opacity: .3\r\n },\r\n tick: {\r\n visible: true,\r\n width: 1,\r\n length: 7,\r\n shift: 3\r\n },\r\n minorTick: {\r\n visible: false,\r\n width: 1,\r\n opacity: .3,\r\n length: 7,\r\n shift: 3\r\n },\r\n stripStyle: {\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 5\r\n },\r\n constantLineStyle: {\r\n width: 1,\r\n color: BLACK,\r\n dashStyle: SOLID,\r\n label: {\r\n visible: true,\r\n position: INSIDE\r\n }\r\n },\r\n marker: {\r\n label: {}\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: \"#333333\"\r\n },\r\n tooltipEnabled: true,\r\n border: {\r\n width: 1,\r\n color: \"#dddddd\",\r\n dashStyle: SOLID,\r\n visible: true\r\n },\r\n color: WHITE,\r\n opacity: .9,\r\n arrowLength: 14,\r\n arrowWidth: 14,\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 10,\r\n shadow: {\r\n opacity: .15,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 4,\r\n color: BLACK\r\n },\r\n image: {\r\n width: 30,\r\n height: 30\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\",\r\n allowDragging: false\r\n },\r\n chart: {\r\n commonSeriesSettings: {\r\n type: \"line\",\r\n stack: \"default\",\r\n aggregation: {\r\n enabled: void 0\r\n },\r\n point: {\r\n visible: true,\r\n symbol: \"circle\",\r\n size: 12,\r\n border: {\r\n visible: false,\r\n width: 1\r\n },\r\n hoverMode: \"onlyPoint\",\r\n selectionMode: \"onlyPoint\",\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n }\r\n }\r\n },\r\n scatter: {},\r\n line: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stackedline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stackedspline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n fullstackedline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n fullstackedspline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n stepline: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n area: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedarea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n fullstackedarea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n fullstackedsplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n steparea: {\r\n border: {\r\n visible: true,\r\n width: 2\r\n },\r\n point: {\r\n visible: false\r\n },\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 3\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 3\r\n }\r\n },\r\n opacity: .5\r\n },\r\n spline: {\r\n width: 2,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n splinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedsplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n bar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n stackedbar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n },\r\n label: {\r\n position: INSIDE\r\n }\r\n },\r\n fullstackedbar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n },\r\n label: {\r\n position: INSIDE\r\n }\r\n },\r\n rangebar: {\r\n cornerRadius: 0,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n rangearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n rangesplinearea: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n bubble: {\r\n opacity: .5,\r\n point: {\r\n hoverStyle: {\r\n border: {\r\n visible: false\r\n }\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: false\r\n }\r\n }\r\n }\r\n },\r\n candlestick: {\r\n width: 1,\r\n reduction: {\r\n color: RED\r\n },\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n },\r\n point: {\r\n border: {\r\n visible: true\r\n }\r\n }\r\n },\r\n stock: {\r\n width: 1,\r\n reduction: {\r\n color: RED\r\n },\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n },\r\n point: {\r\n border: {\r\n visible: true\r\n }\r\n }\r\n }\r\n },\r\n crosshair: {\r\n enabled: false,\r\n color: \"#f05b41\",\r\n width: 1,\r\n dashStyle: SOLID,\r\n label: {\r\n visible: false,\r\n font: {\r\n color: WHITE,\r\n size: 12\r\n }\r\n },\r\n verticalLine: {\r\n visible: true\r\n },\r\n horizontalLine: {\r\n visible: true\r\n }\r\n },\r\n commonAxisSettings: {\r\n multipleAxesSpacing: 5,\r\n forceUserTickInterval: false,\r\n breakStyle: {\r\n width: 5,\r\n color: \"#ababab\",\r\n line: \"waved\"\r\n },\r\n label: {\r\n displayMode: \"standard\",\r\n overlappingBehavior: \"hide\",\r\n indentFromAxis: 10,\r\n wordWrap: \"normal\",\r\n textOverflow: \"none\"\r\n },\r\n title: {\r\n font: {\r\n size: 16\r\n },\r\n margin: 6,\r\n alignment: CENTER\r\n },\r\n constantLineStyle: {\r\n paddingLeftRight: 10,\r\n paddingTopBottom: 10\r\n }\r\n },\r\n horizontalAxis: {\r\n position: BOTTOM,\r\n axisDivisionFactor: 70,\r\n label: {\r\n rotationAngle: 90,\r\n staggeringSpacing: 5,\r\n alignment: CENTER\r\n },\r\n stripStyle: {\r\n label: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLineStyle: {\r\n label: {\r\n horizontalAlignment: RIGHT,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLines: []\r\n },\r\n verticalAxis: {\r\n position: LEFT,\r\n axisDivisionFactor: 40,\r\n label: {\r\n alignment: RIGHT\r\n },\r\n stripStyle: {\r\n label: {\r\n horizontalAlignment: LEFT,\r\n verticalAlignment: CENTER\r\n }\r\n },\r\n constantLineStyle: {\r\n label: {\r\n horizontalAlignment: LEFT,\r\n verticalAlignment: TOP\r\n }\r\n },\r\n constantLines: []\r\n },\r\n argumentAxis: {\r\n endOnTick: false,\r\n workWeek: [1, 2, 3, 4, 5]\r\n },\r\n valueAxis: {\r\n grid: {\r\n visible: true\r\n },\r\n autoBreaksEnabled: false,\r\n maxAutoBreakCount: 4\r\n },\r\n commonPaneSettings: {\r\n backgroundColor: NONE,\r\n border: {\r\n color: LIGHT_GREY,\r\n width: 1,\r\n visible: false,\r\n top: true,\r\n bottom: true,\r\n left: true,\r\n right: true,\r\n dashStyle: SOLID\r\n }\r\n },\r\n scrollBar: {\r\n visible: false,\r\n offset: 5,\r\n color: \"gray\",\r\n width: 10\r\n },\r\n adjustOnZoom: true,\r\n autoHidePointMarkers: true,\r\n rotated: false,\r\n synchronizeMultiAxes: true,\r\n stickyHovering: true,\r\n barGroupPadding: .3,\r\n minBubbleSize: 12,\r\n maxBubbleSize: .2,\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: \"#2a2a2a\",\r\n opacity: .2\r\n },\r\n panKey: \"shift\",\r\n allowMouseWheel: true,\r\n allowTouchGestures: true\r\n }\r\n },\r\n pie: {\r\n innerRadius: .5,\r\n minDiameter: .5,\r\n type: \"pie\",\r\n dataPrepareSettings: {\r\n _skipArgumentSorting: true\r\n },\r\n commonSeriesSettings: {\r\n pie: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n doughnut: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n donut: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .75\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n direction: RIGHT,\r\n width: 4,\r\n step: 10,\r\n opacity: .5\r\n },\r\n border: {\r\n visible: false,\r\n width: 2\r\n }\r\n }\r\n },\r\n label: {\r\n textOverflow: \"ellipsis\",\r\n wordWrap: \"normal\"\r\n }\r\n },\r\n legend: {\r\n hoverMode: \"allArgumentPoints\",\r\n backgroundColor: NONE\r\n },\r\n adaptiveLayout: {\r\n keepLabels: false\r\n }\r\n },\r\n gauge: {\r\n scale: {\r\n tick: {\r\n visible: true,\r\n length: 5,\r\n width: 2,\r\n opacity: 1\r\n },\r\n minorTick: {\r\n visible: false,\r\n length: 3,\r\n width: 1,\r\n opacity: 1\r\n },\r\n label: {\r\n visible: true,\r\n alignment: CENTER,\r\n hideFirstOrLast: \"last\",\r\n overlappingBehavior: \"hide\"\r\n },\r\n position: TOP,\r\n endOnTick: false\r\n },\r\n rangeContainer: {\r\n offset: 0,\r\n width: 5,\r\n backgroundColor: \"#808080\"\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: \"#c2c2c2\"\r\n },\r\n rangebar: {\r\n space: 2,\r\n size: 10,\r\n color: \"#cbc5cf\",\r\n backgroundColor: NONE,\r\n text: {\r\n indent: 0,\r\n font: {\r\n size: 14,\r\n color: null\r\n }\r\n }\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#e18e92\"\r\n },\r\n trianglemarker: {\r\n space: 2,\r\n length: 14,\r\n width: 13,\r\n color: \"#8798a5\"\r\n },\r\n textcloud: {\r\n arrowLength: 5,\r\n horizontalOffset: 6,\r\n verticalOffset: 3,\r\n color: \"#679ec5\",\r\n text: {\r\n font: {\r\n color: WHITE,\r\n size: 18\r\n }\r\n }\r\n }\r\n },\r\n indicator: {\r\n hasPositiveMeaning: true,\r\n layout: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: BOTTOM\r\n },\r\n text: {\r\n font: {\r\n size: 18\r\n }\r\n }\r\n },\r\n _circular: {\r\n scale: {\r\n scaleDivisionFactor: 17,\r\n orientation: OUTSIDE,\r\n label: {\r\n indentFromTick: 10\r\n }\r\n },\r\n rangeContainer: {\r\n orientation: OUTSIDE\r\n },\r\n valueIndicatorType: \"rectangleneedle\",\r\n subvalueIndicatorType: \"trianglemarker\",\r\n valueIndicators: {\r\n _type: \"rectangleneedle\",\r\n _default: {\r\n offset: 20,\r\n indentFromCenter: 0,\r\n width: 2,\r\n spindleSize: 14,\r\n spindleGapSize: 10,\r\n beginAdaptingAtRadius: 50\r\n },\r\n triangleneedle: {\r\n width: 4\r\n },\r\n twocolorneedle: {\r\n space: 2,\r\n secondFraction: .4\r\n },\r\n rangebar: {\r\n offset: 30\r\n },\r\n trianglemarker: {\r\n offset: 6\r\n },\r\n textcloud: {\r\n offset: -6\r\n }\r\n }\r\n },\r\n _linear: {\r\n scale: {\r\n scaleDivisionFactor: 25,\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM,\r\n label: {\r\n indentFromTick: -10\r\n }\r\n },\r\n rangeContainer: {\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM\r\n },\r\n valueIndicatorType: \"rangebar\",\r\n subvalueIndicatorType: \"trianglemarker\",\r\n valueIndicators: {\r\n _type: \"rectangle\",\r\n _default: {\r\n offset: 2.5,\r\n length: 15,\r\n width: 15\r\n },\r\n rectangle: {\r\n width: 10\r\n },\r\n rangebar: {\r\n offset: 10,\r\n horizontalOrientation: RIGHT,\r\n verticalOrientation: BOTTOM\r\n },\r\n trianglemarker: {\r\n offset: 10,\r\n horizontalOrientation: LEFT,\r\n verticalOrientation: TOP\r\n },\r\n textcloud: {\r\n offset: -1,\r\n horizontalOrientation: LEFT,\r\n verticalOrientation: TOP\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#e0e0e0\",\r\n relativeInnerRadius: .3,\r\n barSpacing: 4,\r\n resolveLabelOverlapping: \"hide\",\r\n label: {\r\n indent: 20,\r\n connectorWidth: 2,\r\n font: {\r\n size: 16\r\n }\r\n },\r\n legend: {\r\n visible: false\r\n },\r\n indicator: {\r\n hasPositiveMeaning: true,\r\n layout: {\r\n horizontalAlignment: CENTER,\r\n verticalAlignment: BOTTOM\r\n },\r\n text: {\r\n font: {\r\n size: 18\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n valueMarginsEnabled: true,\r\n width: 1,\r\n color: BLACK,\r\n opacity: .1,\r\n showCustomBoundaryTicks: true,\r\n label: {\r\n overlappingBehavior: \"hide\",\r\n alignment: CENTER,\r\n visible: true,\r\n topIndent: 7,\r\n font: {\r\n size: 11\r\n }\r\n },\r\n tick: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .17,\r\n visible: true,\r\n length: 12\r\n },\r\n minorTick: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .05,\r\n visible: true,\r\n length: 12\r\n },\r\n marker: {\r\n width: 1,\r\n color: \"#000000\",\r\n opacity: .1,\r\n visible: true,\r\n separatorHeight: 33,\r\n topIndent: 10,\r\n textLeftIndent: 7,\r\n textTopIndent: 11,\r\n label: {}\r\n },\r\n logarithmBase: 10,\r\n workWeek: [1, 2, 3, 4, 5],\r\n breakStyle: {\r\n width: 5,\r\n color: \"#ababab\",\r\n line: \"waved\"\r\n },\r\n endOnTick: false\r\n },\r\n selectedRangeColor: \"#606060\",\r\n sliderMarker: {\r\n visible: true,\r\n paddingTopBottom: 2,\r\n paddingLeftRight: 4,\r\n color: \"#606060\",\r\n invalidRangeColor: RED,\r\n font: {\r\n color: WHITE,\r\n size: 11\r\n }\r\n },\r\n sliderHandle: {\r\n width: 1,\r\n color: BLACK,\r\n opacity: .2\r\n },\r\n shutter: {\r\n opacity: .75\r\n },\r\n background: {\r\n color: \"#c0bae1\",\r\n visible: true,\r\n image: {\r\n location: \"full\"\r\n }\r\n },\r\n behavior: {\r\n snapToTicks: true,\r\n animationEnabled: true,\r\n moveSelectedRangeByClick: true,\r\n manualRangeSelectionEnabled: true,\r\n allowSlidersSwap: true,\r\n callValueChanged: \"onMovingComplete\"\r\n },\r\n redrawOnResize: true,\r\n chart: {\r\n barGroupPadding: .3,\r\n minBubbleSize: 12,\r\n maxBubbleSize: .2,\r\n topIndent: .1,\r\n bottomIndent: 0,\r\n valueAxis: {\r\n inverted: false,\r\n logarithmBase: 10\r\n },\r\n commonSeriesSettings: {\r\n type: \"area\",\r\n aggregation: {\r\n enabled: void 0\r\n },\r\n point: {\r\n visible: false\r\n },\r\n scatter: {\r\n point: {\r\n visible: true\r\n }\r\n }\r\n }\r\n }\r\n },\r\n map: {\r\n title: {\r\n margin: 10\r\n },\r\n background: {\r\n borderWidth: 1,\r\n borderColor: \"#cacaca\"\r\n },\r\n layer: {\r\n label: {\r\n enabled: false,\r\n stroke: WHITE,\r\n \"stroke-width\": 1,\r\n \"stroke-opacity\": .7,\r\n font: {\r\n color: SOME_GREY,\r\n size: 12\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderWidth: 1,\r\n borderColor: WHITE,\r\n color: \"#d2d2d2\",\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN,\r\n label: {\r\n \"stroke-width\": 2,\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n \"layer:line\": {\r\n borderWidth: 2,\r\n color: \"#ba8365\",\r\n hoveredColor: \"#a94813\",\r\n selectedBorderWidth: 3,\r\n selectedColor: \"#e55100\",\r\n label: {\r\n \"stroke-width\": 2,\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n \"layer:marker\": {\r\n label: {\r\n enabled: true,\r\n \"stroke-width\": 1,\r\n font: {\r\n size: 12\r\n }\r\n }\r\n },\r\n \"layer:marker:dot\": {\r\n borderWidth: 2,\r\n borderColor: WHITE,\r\n size: 8,\r\n selectedStep: 2,\r\n backStep: 18,\r\n backColor: WHITE,\r\n backOpacity: .32,\r\n shadow: true\r\n },\r\n \"layer:marker:bubble\": {\r\n minSize: 20,\r\n maxSize: 50,\r\n hoveredBorderWidth: 1,\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN\r\n },\r\n \"layer:marker:pie\": {\r\n size: 50,\r\n hoveredBorderWidth: 1,\r\n hoveredBorderColor: GREY_GREEN,\r\n selectedBorderWidth: 2,\r\n selectedBorderColor: GREY_GREEN\r\n },\r\n \"layer:marker:image\": {\r\n size: 20\r\n },\r\n legend: {\r\n verticalAlignment: BOTTOM,\r\n horizontalAlignment: RIGHT,\r\n position: INSIDE,\r\n backgroundOpacity: .65,\r\n border: {\r\n visible: true\r\n },\r\n paddingLeftRight: 16,\r\n paddingTopBottom: 12\r\n },\r\n controlBar: {\r\n borderColor: \"#5d5d5d\",\r\n borderWidth: 3,\r\n color: WHITE,\r\n margin: 20,\r\n opacity: .3\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n }\r\n },\r\n treeMap: {\r\n tile: {\r\n border: {\r\n width: 1,\r\n opacity: .2,\r\n color: \"#000000\"\r\n },\r\n color: \"#5f8b95\",\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .5,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {\r\n opacity: 1\r\n }\r\n },\r\n label: {\r\n visible: true,\r\n paddingLeftRight: 5,\r\n paddingTopBottom: 4,\r\n font: {\r\n color: \"#ffffff\",\r\n weight: 600\r\n },\r\n shadow: {\r\n opacity: .6,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 2,\r\n color: \"#000000\"\r\n },\r\n wordWrap: \"normal\",\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n group: {\r\n padding: 4,\r\n border: {\r\n width: 1\r\n },\r\n color: \"#eeeeee\",\r\n hoverStyle: {\r\n hatching: {\r\n opacity: 0,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: 0,\r\n step: 6,\r\n width: 2,\r\n direction: \"right\"\r\n },\r\n border: {}\r\n },\r\n label: {\r\n visible: true,\r\n paddingLeftRight: 5,\r\n paddingTopBottom: 4,\r\n font: {\r\n color: SECONDARY_TITLE_COLOR,\r\n weight: 600\r\n },\r\n textOverflow: \"ellipsis\"\r\n }\r\n },\r\n title: {\r\n subtitle: {}\r\n },\r\n tooltip: {},\r\n loadingIndicator: {}\r\n },\r\n sparkline: {\r\n lineColor: \"#666666\",\r\n lineWidth: 2,\r\n areaOpacity: .2,\r\n minColor: \"#e8c267\",\r\n maxColor: \"#e55253\",\r\n barPositiveColor: \"#a9a9a9\",\r\n barNegativeColor: \"#d7d7d7\",\r\n winColor: \"#a9a9a9\",\r\n lossColor: \"#d7d7d7\",\r\n firstLastColor: \"#666666\",\r\n pointSymbol: \"circle\",\r\n pointColor: WHITE,\r\n pointSize: 4,\r\n type: \"line\",\r\n argumentField: \"arg\",\r\n valueField: \"val\",\r\n winlossThreshold: 0,\r\n showFirstLast: true,\r\n showMinMax: false,\r\n tooltip: {\r\n enabled: true\r\n }\r\n },\r\n bullet: {\r\n color: \"#e8c267\",\r\n targetColor: \"#666666\",\r\n targetWidth: 4,\r\n showTarget: true,\r\n showZeroLevel: true,\r\n tooltip: {\r\n enabled: true\r\n }\r\n },\r\n polar: {\r\n commonSeriesSettings: {\r\n type: \"scatter\",\r\n closed: true,\r\n point: {\r\n visible: true,\r\n symbol: \"circle\",\r\n size: 12,\r\n border: {\r\n visible: false,\r\n width: 1\r\n },\r\n hoverMode: \"onlyPoint\",\r\n selectionMode: \"onlyPoint\",\r\n hoverStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n },\r\n size: 12\r\n },\r\n selectionStyle: {\r\n border: {\r\n visible: true,\r\n width: 4\r\n },\r\n size: 12\r\n }\r\n },\r\n scatter: {},\r\n line: {\r\n width: 2,\r\n dashStyle: SOLID,\r\n hoverStyle: {\r\n width: 3,\r\n hatching: {\r\n direction: NONE\r\n }\r\n },\r\n selectionStyle: {\r\n width: 3\r\n }\r\n },\r\n area: {\r\n point: {\r\n visible: false\r\n },\r\n opacity: .5\r\n },\r\n stackedline: {\r\n width: 2\r\n },\r\n bar: {\r\n opacity: .8\r\n },\r\n stackedbar: {\r\n opacity: .8\r\n }\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n barGroupPadding: .3,\r\n commonAxisSettings: {\r\n visible: true,\r\n forceUserTickInterval: false,\r\n label: {\r\n overlappingBehavior: \"hide\",\r\n indentFromAxis: 5\r\n },\r\n grid: {\r\n visible: true\r\n },\r\n minorGrid: {\r\n visible: true\r\n },\r\n tick: {\r\n visible: true\r\n },\r\n title: {\r\n font: {\r\n size: 16\r\n },\r\n margin: 10\r\n }\r\n },\r\n argumentAxis: {\r\n startAngle: 0,\r\n firstPointOnStartAngle: false,\r\n period: void 0\r\n },\r\n valueAxis: {\r\n endOnTick: false,\r\n tick: {\r\n visible: false\r\n }\r\n },\r\n horizontalAxis: {\r\n position: TOP,\r\n axisDivisionFactor: 50,\r\n label: {\r\n alignment: CENTER\r\n }\r\n },\r\n verticalAxis: {\r\n position: TOP,\r\n axisDivisionFactor: 30,\r\n label: {\r\n alignment: RIGHT\r\n }\r\n }\r\n },\r\n funnel: {\r\n sortData: true,\r\n valueField: \"val\",\r\n colorField: \"color\",\r\n argumentField: \"arg\",\r\n hoverEnabled: true,\r\n selectionMode: \"single\",\r\n item: {\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .5,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n },\r\n title: {\r\n margin: 10\r\n },\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n legend: {\r\n visible: false\r\n },\r\n _rtl: {\r\n legend: {\r\n itemTextPosition: LEFT\r\n }\r\n },\r\n tooltip: {\r\n customizeTooltip: function(info) {\r\n return {\r\n text: info.item.argument + \" \" + info.valueText\r\n }\r\n }\r\n },\r\n inverted: false,\r\n algorithm: \"dynamicSlope\",\r\n neckWidth: 0,\r\n neckHeight: 0,\r\n resolveLabelOverlapping: \"shift\",\r\n label: {\r\n textOverflow: \"ellipsis\",\r\n wordWrap: \"normal\",\r\n visible: true,\r\n horizontalAlignment: RIGHT,\r\n horizontalOffset: 0,\r\n verticalOffset: 0,\r\n showForZeroValues: false,\r\n customizeText: function(info) {\r\n return info.item.argument + \" \" + info.valueText\r\n },\r\n position: \"columns\",\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n visible: false,\r\n width: 1,\r\n color: LIGHT_GREY,\r\n dashStyle: SOLID\r\n },\r\n connector: {\r\n visible: true,\r\n width: 1,\r\n opacity: .5\r\n }\r\n }\r\n },\r\n sankey: {\r\n sourceField: \"source\",\r\n targetField: \"target\",\r\n weightField: \"weight\",\r\n hoverEnabled: true,\r\n alignment: CENTER,\r\n adaptiveLayout: {\r\n width: 80,\r\n height: 80,\r\n keepLabels: true\r\n },\r\n label: {\r\n visible: true,\r\n horizontalOffset: 8,\r\n verticalOffset: 0,\r\n overlappingBehavior: \"ellipsis\",\r\n useNodeColors: false,\r\n font: {\r\n color: BLACK,\r\n weight: 500\r\n },\r\n border: {\r\n visible: false,\r\n width: 2,\r\n color: WHITE\r\n },\r\n customizeText: function(info) {\r\n return info.title\r\n },\r\n shadow: {\r\n opacity: .2,\r\n offsetX: 0,\r\n offsetY: 1,\r\n blur: 1,\r\n color: WHITE\r\n }\r\n },\r\n title: {\r\n margin: 10,\r\n font: {\r\n size: 28,\r\n weight: 200\r\n },\r\n subtitle: {\r\n font: {\r\n size: 16\r\n }\r\n }\r\n },\r\n tooltip: {\r\n enabled: true\r\n },\r\n node: {\r\n padding: 30,\r\n width: 8,\r\n opacity: 1,\r\n border: {\r\n color: WHITE,\r\n width: 1,\r\n visible: false\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n },\r\n link: {\r\n color: \"#888888\",\r\n colorMode: \"none\",\r\n opacity: .3,\r\n border: {\r\n color: WHITE,\r\n width: 1,\r\n visible: false\r\n },\r\n hoverStyle: {\r\n opacity: .5,\r\n hatching: {\r\n opacity: .75,\r\n step: 6,\r\n width: 2,\r\n direction: RIGHT\r\n },\r\n border: {}\r\n }\r\n }\r\n }\r\n});\r\n(0, _themes.registerTheme)({\r\n name: \"generic.light.compact\"\r\n}, \"generic.light\");\r\n","/**\r\n * DevExtreme (viz/core/themes/generic.dark.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _themes = require(\"../../themes\");\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar SOME_GREY = \"#2b2b2b\";\r\nvar RANGE_COLOR = \"#b5b5b5\";\r\nvar GREY_GREEN = \"#303030\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\nvar LINE_COLOR = \"#c7c7c7\";\r\nvar TARGET_COLOR = \"#8e8e8e\";\r\nvar POSITIVE_COLOR = \"#b8b8b8\";\r\nvar BORDER_COLOR = \"#494949\";\r\n(0, _themes.registerTheme)({\r\n name: \"generic.dark\",\r\n font: {\r\n color: \"#808080\"\r\n },\r\n backgroundColor: \"#2a2a2a\",\r\n primaryTitleColor: \"#dedede\",\r\n secondaryTitleColor: \"#a3a3a3\",\r\n gridColor: \"#555555\",\r\n axisColor: \"#a3a3a3\",\r\n \"export\": {\r\n backgroundColor: \"#2a2a2a\",\r\n font: {\r\n color: \"#dbdbdb\"\r\n },\r\n button: {\r\n \"default\": {\r\n color: \"#dedede\",\r\n borderColor: \"#4d4d4d\",\r\n backgroundColor: \"#2e2e2e\"\r\n },\r\n hover: {\r\n color: \"#dedede\",\r\n borderColor: \"#6c6c6c\",\r\n backgroundColor: \"#444\"\r\n },\r\n focus: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#444444\"\r\n },\r\n active: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#555555\"\r\n }\r\n },\r\n shadowColor: \"#292929\"\r\n },\r\n tooltip: {\r\n color: SOME_GREY,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: \"#929292\"\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n valueErrorBar: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: \"#929292\"\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: SOME_GREY,\r\n shadow: {\r\n opacity: .008,\r\n offsetY: 4,\r\n blur: 8\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#818181\"\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: RANGE_COLOR\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: RANGE_COLOR\r\n },\r\n rangebar: {\r\n color: \"#84788b\"\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#ba544d\"\r\n },\r\n trianglemarker: {\r\n color: \"#b7918f\"\r\n },\r\n textcloud: {\r\n color: \"#ba544d\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .32\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .1\r\n },\r\n breakStyle: {\r\n color: \"#818181\"\r\n }\r\n },\r\n selectedRangeColor: RANGE_COLOR,\r\n sliderMarker: {\r\n color: RANGE_COLOR,\r\n font: {\r\n color: GREY_GREEN\r\n }\r\n },\r\n sliderHandle: {\r\n color: WHITE,\r\n opacity: .2\r\n },\r\n shutter: {\r\n color: SOME_GREY,\r\n opacity: .9\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: \"#3f3f3f\"\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: GREY_GREEN,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:line\": {\r\n color: \"#c77244\",\r\n hoveredColor: \"#ff5d04\",\r\n selectedColor: \"#ff784f\"\r\n },\r\n \"layer:marker:bubble\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n legend: {\r\n border: {\r\n color: \"#3f3f3f\"\r\n },\r\n font: {\r\n color: WHITE\r\n }\r\n },\r\n controlBar: {\r\n borderColor: LINE_COLOR,\r\n color: GREY_GREEN\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n color: \"#4c4c4c\",\r\n label: {\r\n font: {\r\n color: \"#a3a3a3\"\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n lineColor: LINE_COLOR,\r\n firstLastColor: LINE_COLOR,\r\n barPositiveColor: POSITIVE_COLOR,\r\n barNegativeColor: TARGET_COLOR,\r\n winColor: POSITIVE_COLOR,\r\n lossColor: TARGET_COLOR,\r\n pointColor: GREY_GREEN\r\n },\r\n bullet: {\r\n targetColor: TARGET_COLOR\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: \"#2a2a2a\"\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n shadow: {\r\n opacity: 0\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: \"#2a2a2a\"\r\n }\r\n },\r\n link: {\r\n color: \"#888888\",\r\n border: {\r\n color: \"#2a2a2a\"\r\n },\r\n hoverStyle: {\r\n color: \"#bbbbbb\"\r\n }\r\n }\r\n }\r\n}, \"generic.light\");\r\n(0, _themes.registerTheme)({\r\n name: \"generic.dark.compact\"\r\n}, \"generic.dark\");\r\n","/**\r\n * DevExtreme (viz/core/themes/generic.contrast.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _themes = require(\"../../themes\");\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar CONTRAST_ACTIVE = \"#cf00da\";\r\nvar MARKER_COLOR = \"#f8ca00\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\n(0, _themes.registerTheme)({\r\n name: \"generic.contrast\",\r\n defaultPalette: \"Bright\",\r\n font: {\r\n color: WHITE\r\n },\r\n backgroundColor: BLACK,\r\n primaryTitleColor: WHITE,\r\n secondaryTitleColor: WHITE,\r\n gridColor: WHITE,\r\n axisColor: WHITE,\r\n \"export\": {\r\n backgroundColor: BLACK,\r\n font: {\r\n color: WHITE\r\n },\r\n button: {\r\n \"default\": {\r\n color: WHITE,\r\n borderColor: WHITE,\r\n backgroundColor: BLACK\r\n },\r\n hover: {\r\n color: WHITE,\r\n borderColor: WHITE,\r\n backgroundColor: \"#cf00d7\"\r\n },\r\n focus: {\r\n color: WHITE,\r\n borderColor: \"#cf00d7\",\r\n backgroundColor: BLACK\r\n },\r\n active: {\r\n color: BLACK,\r\n borderColor: WHITE,\r\n backgroundColor: WHITE\r\n }\r\n },\r\n borderColor: WHITE,\r\n menuButtonColor: BLACK,\r\n activeBackgroundColor: WHITE,\r\n activeColor: BLACK,\r\n selectedBorderColor: CONTRAST_ACTIVE,\r\n selectedColor: CONTRAST_ACTIVE,\r\n shadowColor: \"none\"\r\n },\r\n tooltip: {\r\n border: {\r\n color: WHITE\r\n },\r\n font: {\r\n color: WHITE\r\n },\r\n color: BLACK\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n valueErrorBar: {\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n },\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: WHITE\r\n },\r\n color: BLACK\r\n },\r\n chart: {\r\n commonSeriesSettings: {},\r\n crosshair: {\r\n color: \"#cf00d7\"\r\n },\r\n commonPaneSettings: {\r\n backgroundColor: BLACK,\r\n border: {\r\n color: WHITE\r\n }\r\n },\r\n scrollBar: {\r\n color: WHITE\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#cf00d7\"\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE,\r\n opacity: .7\r\n }\r\n }\r\n },\r\n pie: {\r\n commonSeriesSettings: {\r\n pie: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n },\r\n doughnut: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n },\r\n donut: {\r\n hoverStyle: {\r\n hatching: {\r\n opacity: .5\r\n }\r\n },\r\n selectionStyle: {\r\n hatching: {\r\n opacity: .35\r\n }\r\n }\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: WHITE\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: WHITE\r\n },\r\n rangebar: {\r\n color: WHITE,\r\n backgroundColor: BLACK\r\n },\r\n twocolorneedle: {\r\n secondColor: WHITE\r\n },\r\n trianglemarker: {\r\n color: WHITE\r\n },\r\n textcloud: {\r\n color: WHITE,\r\n text: {\r\n font: {\r\n color: BLACK\r\n }\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .4\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .12\r\n },\r\n breakStyle: {\r\n color: \"#cf00d7\"\r\n }\r\n },\r\n selectedRangeColor: CONTRAST_ACTIVE,\r\n sliderMarker: {\r\n color: CONTRAST_ACTIVE\r\n },\r\n sliderHandle: {\r\n color: CONTRAST_ACTIVE,\r\n opacity: 1\r\n },\r\n shutter: {\r\n opacity: .75\r\n },\r\n background: {\r\n color: BLACK\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: WHITE\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: BLACK,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE,\r\n label: {\r\n font: {\r\n opacity: 1\r\n }\r\n }\r\n },\r\n \"layer:line\": {\r\n color: \"#267cff\",\r\n hoveredColor: \"#f613ff\",\r\n selectedColor: WHITE\r\n },\r\n \"layer:marker:dot\": {\r\n borderColor: BLACK,\r\n color: MARKER_COLOR,\r\n backColor: BLACK,\r\n backOpacity: .32\r\n },\r\n \"layer:marker:bubble\": {\r\n color: MARKER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n controlBar: {\r\n borderColor: WHITE,\r\n color: BLACK,\r\n opacity: .3\r\n }\r\n },\r\n treeMap: {\r\n tile: {\r\n color: \"#70c92f\"\r\n },\r\n group: {\r\n color: \"#797979\",\r\n label: {\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BLACK\r\n },\r\n bullet: {},\r\n polar: {\r\n commonSeriesSettings: {}\r\n },\r\n funnel: {\r\n label: {\r\n connector: {\r\n opacity: 1\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n },\r\n shadow: {\r\n opacity: 0\r\n }\r\n },\r\n node: {\r\n border: {\r\n visible: true,\r\n width: 1,\r\n color: WHITE\r\n }\r\n },\r\n link: {\r\n opacity: .5,\r\n border: {\r\n visible: true,\r\n width: 1,\r\n color: WHITE\r\n },\r\n hoverStyle: {\r\n opacity: .9\r\n }\r\n }\r\n }\r\n}, \"generic.light\");\r\n(0, _themes.registerTheme)({\r\n name: \"generic.contrast.compact\"\r\n}, \"generic.contrast\");\r\n","/**\r\n * DevExtreme (viz/core/themes/generic.carmine.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _themes = require(\"../../themes\");\r\nvar ACCENT_COLOR = \"#f05b41\";\r\nvar BACKGROUND_COLOR = \"#fff\";\r\nvar TITLE_COLOR = \"#333\";\r\nvar SUBTITLE_COLOR = \"#8899a8\";\r\nvar TEXT_COLOR = \"#707070\";\r\nvar BORDER_COLOR = \"#dee1e3\";\r\n(0, _themes.registerTheme)({\r\n name: \"generic.carmine\",\r\n defaultPalette: \"Carmine\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n \"export\": {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n \"default\": {\r\n color: TITLE_COLOR,\r\n borderColor: \"#b1b7bd\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#b1b7bd\",\r\n backgroundColor: \"#faf2f0\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#6d7781\",\r\n backgroundColor: \"#faf2f0\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#6d7781\",\r\n backgroundColor: \"#f5e7e4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: BACKGROUND_COLOR\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#c1c5c7\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n breakStyle: {\r\n color: \"#c1c5c7\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#f74d61\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n}, \"generic.light\");\r\n(0, _themes.registerTheme)({\r\n name: \"generic.carmine.compact\"\r\n}, \"generic.carmine\");\r\n","/**\r\n * DevExtreme (viz/core/themes/generic.darkmoon.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _themes = require(\"../../themes\");\r\nvar ACCENT_COLOR = \"#3debd3\";\r\nvar BACKGROUND_COLOR = \"#465672\";\r\nvar TITLE_COLOR = \"#fff\";\r\nvar SUBTITLE_COLOR = \"#919bac\";\r\nvar TEXT_COLOR = \"#c7ccd4\";\r\nvar BORDER_COLOR = \"#596980\";\r\n(0, _themes.registerTheme)({\r\n name: \"generic.darkmoon\",\r\n defaultPalette: \"Dark Moon\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n \"export\": {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n \"default\": {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7a889e\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#9da8b8\",\r\n backgroundColor: \"#596e92\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c4cad4\",\r\n backgroundColor: \"#596e92\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c4cad4\",\r\n backgroundColor: \"#6b80a4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: \"#62789e\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n color: \"#62789e\"\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#73869e\"\r\n }\r\n }\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR,\r\n text: {\r\n font: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#526280\"\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#f9517e\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: BORDER_COLOR\r\n },\r\n \"layer:area\": {\r\n color: \"#97a3b6\",\r\n borderColor: BACKGROUND_COLOR\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#73869e\"\r\n },\r\n tick: {\r\n opacity: .2\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR,\r\n font: {\r\n color: \"#000\"\r\n }\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n sankey: {\r\n link: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n}, \"generic.dark\");\r\n(0, _themes.registerTheme)({\r\n name: \"generic.darkmoon.compact\"\r\n}, \"generic.darkmoon\");\r\n","/**\r\n * DevExtreme (viz/core/themes/generic.softblue.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _themes = require(\"../../themes\");\r\nvar ACCENT_COLOR = \"#7ab8eb\";\r\nvar BACKGROUND_COLOR = \"#fff\";\r\nvar TITLE_COLOR = \"#333\";\r\nvar SUBTITLE_COLOR = \"#99a1a8\";\r\nvar TEXT_COLOR = \"#707070\";\r\nvar BORDER_COLOR = \"#e8eaeb\";\r\n(0, _themes.registerTheme)({\r\n name: \"generic.softblue\",\r\n defaultPalette: \"Soft Blue\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n \"export\": {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n \"default\": {\r\n color: TITLE_COLOR,\r\n borderColor: \"#c9d0d4\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#a7b2b9\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#82929b\",\r\n backgroundColor: \"#e6e6e6\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#82929b\",\r\n backgroundColor: \"#d4d4d4\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#cfd2d3\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n scale: {\r\n breakStyle: {\r\n color: \"#cfd2d3\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#d9534f\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n}, \"generic.light\");\r\n(0, _themes.registerTheme)({\r\n name: \"generic.softblue.compact\"\r\n}, \"generic.softblue\");\r\n","/**\r\n * DevExtreme (viz/core/themes/generic.darkviolet.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _themes = require(\"../../themes\");\r\nvar ACCENT_COLOR = \"#9c63ff\";\r\nvar BACKGROUND_COLOR = \"#17171f\";\r\nvar TITLE_COLOR = \"#f5f6f7\";\r\nvar SUBTITLE_COLOR = \"#fff\";\r\nvar TEXT_COLOR = \"#b2b2b6\";\r\nvar BORDER_COLOR = \"#343840\";\r\n(0, _themes.registerTheme)({\r\n name: \"generic.darkviolet\",\r\n defaultPalette: \"Dark Violet\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n \"export\": {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n \"default\": {\r\n color: TITLE_COLOR,\r\n borderColor: \"#414152\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5c5c74\",\r\n backgroundColor: \"#2d2d3c\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7c7c97\",\r\n backgroundColor: \"#2d2d3c\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7c7c97\",\r\n backgroundColor: \"#3c3c51\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: BACKGROUND_COLOR,\r\n border: {\r\n color: \"#414152\"\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n border: {\r\n color: \"#414152\"\r\n },\r\n color: BACKGROUND_COLOR\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#575e6b\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#f0ad4e\",\r\n maxColor: \"#d9534f\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#575e6b\"\r\n },\r\n tick: {\r\n opacity: .2\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR,\r\n font: {\r\n color: \"#fff\"\r\n }\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n },\r\n sankey: {\r\n link: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n },\r\n node: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n }\r\n}, \"generic.dark\");\r\n(0, _themes.registerTheme)({\r\n name: \"generic.darkviolet.compact\"\r\n}, \"generic.darkviolet\");\r\n","/**\r\n * DevExtreme (viz/core/themes/generic.greenmist.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _themes = require(\"../../themes\");\r\nvar ACCENT_COLOR = \"#3cbab2\";\r\nvar BACKGROUND_COLOR = \"#f5f5f5\";\r\nvar TITLE_COLOR = \"#28484f\";\r\nvar SUBTITLE_COLOR = \"#7eb2be\";\r\nvar TEXT_COLOR = \"#657c80\";\r\nvar BORDER_COLOR = \"#dedede\";\r\n(0, _themes.registerTheme)({\r\n name: \"generic.greenmist\",\r\n defaultPalette: \"Green Mist\",\r\n backgroundColor: BACKGROUND_COLOR,\r\n primaryTitleColor: TITLE_COLOR,\r\n secondaryTitleColor: SUBTITLE_COLOR,\r\n gridColor: BORDER_COLOR,\r\n axisColor: TEXT_COLOR,\r\n \"export\": {\r\n backgroundColor: BACKGROUND_COLOR,\r\n font: {\r\n color: TITLE_COLOR\r\n },\r\n button: {\r\n \"default\": {\r\n color: TITLE_COLOR,\r\n borderColor: \"#a2b4b8\",\r\n backgroundColor: BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#7f989e\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.4)\"\r\n },\r\n focus: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5f777c\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.4)\"\r\n },\r\n active: {\r\n color: TITLE_COLOR,\r\n borderColor: \"#5f777c\",\r\n backgroundColor: \"rgba(222, 222, 222, 0.8)\"\r\n }\r\n }\r\n },\r\n legend: {\r\n font: {\r\n color: TEXT_COLOR\r\n }\r\n },\r\n tooltip: {\r\n color: \"#fff\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n }\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n color: \"#fff\",\r\n border: {\r\n color: BORDER_COLOR\r\n },\r\n font: {\r\n color: TITLE_COLOR\r\n }\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: \"#c1c1c1\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sparkline: {\r\n pointColor: BACKGROUND_COLOR,\r\n minColor: \"#ffc852\",\r\n maxColor: \"#f74a5e\"\r\n },\r\n treeMap: {\r\n group: {\r\n color: BORDER_COLOR,\r\n label: {\r\n font: {\r\n color: SUBTITLE_COLOR\r\n }\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n shutter: {\r\n color: BACKGROUND_COLOR\r\n },\r\n scale: {\r\n breakStyle: {\r\n color: \"#c1c1c1\"\r\n },\r\n tick: {\r\n opacity: .12\r\n }\r\n },\r\n selectedRangeColor: ACCENT_COLOR,\r\n sliderMarker: {\r\n color: ACCENT_COLOR\r\n },\r\n sliderHandle: {\r\n color: ACCENT_COLOR,\r\n opacity: .5\r\n }\r\n },\r\n bullet: {\r\n color: ACCENT_COLOR\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: ACCENT_COLOR\r\n },\r\n textcloud: {\r\n color: ACCENT_COLOR\r\n }\r\n }\r\n }\r\n}, \"generic.light\");\r\n(0, _themes.registerTheme)({\r\n name: \"generic.greenmist.compact\"\r\n}, \"generic.greenmist\");\r\n","/**\r\n * DevExtreme (viz/core/themes/material.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nvar _themes = require(\"../../themes\");\r\nvar FONT_FAMILY = \"'Roboto', 'RobotoFallback', 'Helvetica', 'Arial', sans-serif\";\r\nvar LIGHT_TITLE_COLOR = \"rgba(0,0,0,0.87)\";\r\nvar LIGHT_LABEL_COLOR = \"rgba(0,0,0,0.54)\";\r\nvar DARK_TITLE_COLOR = \"rgba(255,255,255,0.87)\";\r\nvar DARK_LABEL_COLOR = \"rgba(255,255,255,0.54)\";\r\nvar DARK_BACKGROUND_COLOR = \"#363640\";\r\nvar WHITE = \"#ffffff\";\r\nvar BLACK = \"#000000\";\r\nvar RANGE_COLOR = \"#b5b5b5\";\r\nvar AREA_LAYER_COLOR = \"#686868\";\r\nvar LINE_COLOR = \"#c7c7c7\";\r\nvar TARGET_COLOR = \"#8e8e8e\";\r\nvar POSITIVE_COLOR = \"#b8b8b8\";\r\nvar LABEL_BORDER_COLOR = \"#494949\";\r\nvar BREAK_STYLE_COLOR = \"#818181\";\r\n(0, _themes.registerTheme)({\r\n name: \"material\",\r\n defaultPalette: \"Material\",\r\n font: {\r\n family: FONT_FAMILY\r\n },\r\n title: {\r\n margin: {\r\n top: 20,\r\n bottom: 20,\r\n left: 0,\r\n right: 0\r\n },\r\n font: {\r\n size: 20,\r\n family: FONT_FAMILY,\r\n weight: 500\r\n },\r\n horizontalAlignment: \"left\",\r\n subtitle: {\r\n font: {\r\n size: 14\r\n },\r\n horizontalAlignment: \"left\"\r\n }\r\n },\r\n tooltip: {\r\n shadow: {\r\n opacity: 0\r\n },\r\n border: {\r\n visible: false\r\n },\r\n paddingLeftRight: 8,\r\n paddingTopBottom: 6,\r\n arrowLength: 0,\r\n location: \"edge\",\r\n color: \"#616161\",\r\n font: {\r\n color: WHITE\r\n },\r\n cornerRadius: 4\r\n },\r\n chart: {\r\n commonAxisSettings: {\r\n minorTick: {\r\n opacity: .5\r\n },\r\n label: {\r\n font: {\r\n size: 11\r\n }\r\n }\r\n },\r\n commonAnnotationSettings: {\r\n font: {\r\n color: WHITE\r\n },\r\n border: {\r\n color: \"#616161\"\r\n },\r\n color: \"#616161\",\r\n arrowLength: 14,\r\n arrowWidth: 0,\r\n shadow: {\r\n opacity: .08,\r\n offsetY: 4,\r\n blur: 8\r\n },\r\n cornerRadius: 4\r\n }\r\n },\r\n pie: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n polar: {\r\n commonAxisSettings: {\r\n minorTick: {\r\n opacity: .5\r\n }\r\n },\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n funnel: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n gauge: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n title: {\r\n horizontalAlignment: \"center\",\r\n subtitle: {\r\n horizontalAlignment: \"center\"\r\n }\r\n }\r\n },\r\n rangeSelector: {\r\n sliderHandle: {\r\n opacity: .5\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n label: {\r\n font: {\r\n weight: 500\r\n }\r\n }\r\n }\r\n }\r\n}, \"generic.light\");\r\n(0, _themes.registerTheme)({\r\n name: \"material.light\",\r\n gridColor: \"#e0e0e0\",\r\n axisColor: LIGHT_LABEL_COLOR,\r\n primaryTitleColor: LIGHT_TITLE_COLOR,\r\n legend: {\r\n font: {\r\n color: LIGHT_LABEL_COLOR\r\n }\r\n },\r\n chart: {\r\n scrollBar: {\r\n color: \"#bfbfbf\",\r\n opacity: .7\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: \"rgba(0,0,0,0.2)\"\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#efefef\"\r\n }\r\n}, \"material\");\r\n(0, _themes.registerTheme)({\r\n name: \"material.dark\",\r\n gridColor: \"#515159\",\r\n backgroundColor: DARK_BACKGROUND_COLOR,\r\n axisColor: DARK_LABEL_COLOR,\r\n font: {\r\n color: DARK_LABEL_COLOR\r\n },\r\n primaryTitleColor: DARK_TITLE_COLOR,\r\n secondaryTitleColor: DARK_TITLE_COLOR,\r\n tooltip: {\r\n color: \"#000\"\r\n },\r\n \"export\": {\r\n backgroundColor: DARK_BACKGROUND_COLOR,\r\n font: {\r\n color: \"#dbdbdb\"\r\n },\r\n button: {\r\n \"default\": {\r\n color: \"#dedede\",\r\n borderColor: \"#4d4d4d\",\r\n backgroundColor: DARK_BACKGROUND_COLOR\r\n },\r\n hover: {\r\n color: \"#dedede\",\r\n borderColor: \"#6c6c6c\",\r\n backgroundColor: \"#3f3f4b\"\r\n },\r\n focus: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#494956\"\r\n },\r\n active: {\r\n color: \"#dedede\",\r\n borderColor: \"#8d8d8d\",\r\n backgroundColor: \"#494956\"\r\n }\r\n },\r\n shadowColor: \"#292929\"\r\n },\r\n \"chart:common\": {\r\n commonSeriesSettings: {\r\n label: {\r\n border: {\r\n color: LABEL_BORDER_COLOR\r\n }\r\n },\r\n valueErrorBar: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"chart:common:axis\": {\r\n constantLineStyle: {\r\n color: WHITE\r\n }\r\n },\r\n \"chart:common:annotation\": {\r\n border: {\r\n color: \"#000\"\r\n },\r\n color: \"#000\"\r\n },\r\n chart: {\r\n commonPaneSettings: {\r\n border: {\r\n color: LABEL_BORDER_COLOR\r\n }\r\n },\r\n commonAxisSettings: {\r\n breakStyle: {\r\n color: BREAK_STYLE_COLOR\r\n }\r\n },\r\n zoomAndPan: {\r\n dragBoxStyle: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n gauge: {\r\n rangeContainer: {\r\n backgroundColor: RANGE_COLOR\r\n },\r\n valueIndicators: {\r\n _default: {\r\n color: RANGE_COLOR\r\n },\r\n rangebar: {\r\n color: \"#84788b\"\r\n },\r\n twocolorneedle: {\r\n secondColor: \"#ba544d\"\r\n },\r\n trianglemarker: {\r\n color: \"#b7918f\"\r\n },\r\n textcloud: {\r\n color: \"#ba544d\"\r\n }\r\n }\r\n },\r\n barGauge: {\r\n backgroundColor: \"#3c3c3c\"\r\n },\r\n rangeSelector: {\r\n scale: {\r\n tick: {\r\n color: WHITE,\r\n opacity: .32\r\n },\r\n minorTick: {\r\n color: WHITE,\r\n opacity: .1\r\n },\r\n breakStyle: {\r\n color: BREAK_STYLE_COLOR\r\n }\r\n },\r\n selectedRangeColor: RANGE_COLOR,\r\n sliderMarker: {\r\n color: RANGE_COLOR,\r\n font: {\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n },\r\n sliderHandle: {\r\n color: WHITE,\r\n opacity: .2\r\n },\r\n shutter: {\r\n color: WHITE,\r\n opacity: .1\r\n }\r\n },\r\n map: {\r\n background: {\r\n borderColor: \"#3f3f3f\"\r\n },\r\n layer: {\r\n label: {\r\n stroke: BLACK,\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n },\r\n \"layer:area\": {\r\n borderColor: DARK_BACKGROUND_COLOR,\r\n color: AREA_LAYER_COLOR,\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:line\": {\r\n color: \"#c77244\",\r\n hoveredColor: \"#ff5d04\",\r\n selectedColor: \"#ff784f\"\r\n },\r\n \"layer:marker:bubble\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n \"layer:marker:pie\": {\r\n hoveredBorderColor: WHITE,\r\n selectedBorderColor: WHITE\r\n },\r\n legend: {\r\n border: {\r\n color: \"#3f3f3f\"\r\n },\r\n font: {\r\n color: WHITE\r\n }\r\n },\r\n controlBar: {\r\n borderColor: LINE_COLOR,\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n },\r\n treeMap: {\r\n group: {\r\n color: \"#4c4c4c\",\r\n label: {\r\n font: {\r\n color: \"#a3a3a3\"\r\n }\r\n }\r\n }\r\n },\r\n sparkline: {\r\n lineColor: LINE_COLOR,\r\n firstLastColor: LINE_COLOR,\r\n barPositiveColor: POSITIVE_COLOR,\r\n barNegativeColor: TARGET_COLOR,\r\n winColor: POSITIVE_COLOR,\r\n lossColor: TARGET_COLOR,\r\n pointColor: DARK_BACKGROUND_COLOR\r\n },\r\n bullet: {\r\n targetColor: TARGET_COLOR\r\n },\r\n funnel: {\r\n item: {\r\n border: {\r\n color: DARK_BACKGROUND_COLOR\r\n }\r\n }\r\n },\r\n sankey: {\r\n label: {\r\n font: {\r\n color: WHITE\r\n }\r\n }\r\n }\r\n}, \"material\");\r\n\r\nfunction registerMaterialColorScheme(accentName, themeName, accentColor) {\r\n (0, _themes.registerTheme)({\r\n name: \"material.\" + accentName + \".\" + themeName,\r\n rangeSelector: {\r\n selectedRangeColor: accentColor,\r\n sliderMarker: {\r\n color: accentColor\r\n },\r\n sliderHandle: {\r\n color: accentColor\r\n }\r\n },\r\n map: {\r\n \"layer:marker:dot\": {\r\n color: accentColor\r\n },\r\n \"layer:marker:bubble\": {\r\n color: accentColor\r\n },\r\n legend: {\r\n markerColor: accentColor\r\n }\r\n },\r\n bullet: {\r\n color: accentColor\r\n },\r\n gauge: {\r\n valueIndicators: {\r\n rangebar: {\r\n color: accentColor\r\n },\r\n textcloud: {\r\n color: accentColor\r\n }\r\n }\r\n }\r\n }, \"material.\" + themeName)\r\n}\r\nvar materialAccents = {\r\n blue: \"#03a9f4\",\r\n lime: \"#cddc39\",\r\n orange: \"#ff5722\",\r\n purple: \"#9c27b0\",\r\n teal: \"#009688\"\r\n};\r\nfor (var accent in materialAccents) {\r\n if (Object.prototype.hasOwnProperty.call(materialAccents, accent)) {\r\n var color = materialAccents[accent];\r\n registerMaterialColorScheme(accent, \"light\", color);\r\n registerMaterialColorScheme(accent, \"dark\", color);\r\n (0, _themes.registerTheme)({\r\n name: \"material.\".concat(accent, \".light.compact\")\r\n }, \"material.\".concat(accent, \".light\"));\r\n (0, _themes.registerTheme)({\r\n name: \"material.\".concat(accent, \".dark.compact\")\r\n }, \"material.\".concat(accent, \".dark\"))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (viz/core/renderers/animation.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.AnimationController = AnimationController;\r\nexports.animationSvgStep = exports.easingFunctions = void 0;\r\nvar _frame = require(\"../../../animation/frame\");\r\nvar noop = function() {};\r\nvar easingFunctions = {\r\n easeOutCubic: function(pos, start, end) {\r\n return 1 === pos ? end : (1 - Math.pow(1 - pos, 3)) * (end - start) + +start\r\n },\r\n linear: function(pos, start, end) {\r\n return 1 === pos ? end : pos * (end - start) + +start\r\n }\r\n};\r\nexports.easingFunctions = easingFunctions;\r\nvar animationSvgStep = {\r\n segments: function segments(elem, params, progress, easing, currentParams) {\r\n var from = params.from;\r\n var to = params.to;\r\n var curSeg;\r\n var seg;\r\n var i;\r\n var j;\r\n var segments = [];\r\n for (i = 0; i < from.length; i++) {\r\n curSeg = from[i];\r\n seg = [curSeg[0]];\r\n if (curSeg.length > 1) {\r\n for (j = 1; j < curSeg.length; j++) {\r\n seg.push(easing(progress, curSeg[j], to[i][j]))\r\n }\r\n }\r\n segments.push(seg)\r\n }\r\n currentParams.segments = params.end && 1 === progress ? params.end : segments;\r\n elem.attr({\r\n segments: segments\r\n })\r\n },\r\n arc: function(elem, params, progress, easing) {\r\n var from = params.from;\r\n var to = params.to;\r\n var current = {};\r\n for (var i in from) {\r\n current[i] = easing(progress, from[i], to[i])\r\n }\r\n elem.attr(current)\r\n },\r\n transform: function(elem, params, progress, easing, currentParams) {\r\n var from = params.from;\r\n var to = params.to;\r\n var current = {};\r\n for (var i in from) {\r\n current[i] = currentParams[i] = easing(progress, from[i], to[i])\r\n }\r\n elem.attr(current)\r\n },\r\n base: function(elem, params, progress, easing, currentParams, attributeName) {\r\n var obj = {};\r\n obj[attributeName] = currentParams[attributeName] = easing(progress, params.from, params.to);\r\n elem.attr(obj)\r\n },\r\n _: noop,\r\n complete: function(element, currentSettings) {\r\n element.attr(currentSettings)\r\n }\r\n};\r\nexports.animationSvgStep = animationSvgStep;\r\n\r\nfunction step(now) {\r\n var that = this;\r\n var animateStep = that._animateStep;\r\n var attrName;\r\n that._progress = that._calcProgress(now);\r\n for (attrName in that.params) {\r\n var anim = animateStep[attrName] || animateStep.base;\r\n anim(that.element, that.params[attrName], that._progress, that._easing, that._currentParams, attrName)\r\n }\r\n that.options.step && that.options.step(that._easing(that._progress, 0, 1), that._progress);\r\n if (1 === that._progress) {\r\n return that.stop()\r\n }\r\n return true\r\n}\r\n\r\nfunction delayTick(now) {\r\n if (now - this._startTime >= this.delay) {\r\n this.tick = step\r\n }\r\n return true\r\n}\r\n\r\nfunction start(now) {\r\n this._startTime = now;\r\n this.tick = this.delay ? delayTick : step;\r\n return true\r\n}\r\n\r\nfunction Animation(element, params, options) {\r\n var that = this;\r\n that._progress = 0;\r\n that.element = element;\r\n that.params = params;\r\n that.options = options;\r\n that.duration = options.partitionDuration ? options.duration * options.partitionDuration : options.duration;\r\n that.delay = options.delay && options.duration * options.delay || 0;\r\n that._animateStep = options.animateStep || animationSvgStep;\r\n that._easing = easingFunctions[options.easing] || easingFunctions.easeOutCubic;\r\n that._currentParams = {};\r\n that.tick = start\r\n}\r\nAnimation.prototype = {\r\n _calcProgress: function(now) {\r\n return Math.min(1, (now - this.delay - this._startTime) / this.duration)\r\n },\r\n stop: function(disableComplete) {\r\n var that = this;\r\n var options = that.options;\r\n var animateStep = that._animateStep;\r\n that.stop = that.tick = noop;\r\n animateStep.complete && animateStep.complete(that.element, that._currentParams);\r\n options.complete && !disableComplete && options.complete()\r\n }\r\n};\r\n\r\nfunction AnimationController(element) {\r\n var that = this;\r\n that._animationCount = 0;\r\n that._timerId = null;\r\n that._animations = {};\r\n that.element = element\r\n}\r\nAnimationController.prototype = {\r\n _loop: function() {\r\n var that = this;\r\n var animations = that._animations;\r\n var activeAnimation = 0;\r\n var now = (new Date).getTime();\r\n var an;\r\n var endAnimation = that._endAnimation;\r\n for (an in animations) {\r\n if (!animations[an].tick(now)) {\r\n delete animations[an]\r\n }\r\n activeAnimation++\r\n }\r\n if (0 === activeAnimation) {\r\n that.stop();\r\n that._endAnimationTimer = endAnimation && setTimeout(function() {\r\n if (0 === that._animationCount) {\r\n endAnimation();\r\n that._endAnimation = null\r\n }\r\n });\r\n return\r\n }\r\n that._timerId = _frame.requestAnimationFrame.call(null, function() {\r\n that._loop()\r\n }, that.element)\r\n },\r\n addAnimation: function(animation) {\r\n var that = this;\r\n that._animations[that._animationCount++] = animation;\r\n clearTimeout(that._endAnimationTimer);\r\n if (!that._timerId) {\r\n clearTimeout(that._startDelay);\r\n that._startDelay = setTimeout(function() {\r\n that._timerId = 1;\r\n that._loop()\r\n }, 0)\r\n }\r\n },\r\n animateElement: function(elem, params, options) {\r\n if (elem && params && options) {\r\n elem.animation && elem.animation.stop();\r\n this.addAnimation(elem.animation = new Animation(elem, params, options))\r\n }\r\n },\r\n onEndAnimation: function(endAnimation) {\r\n this._animationCount ? this._endAnimation = endAnimation : endAnimation()\r\n },\r\n dispose: function() {\r\n this.stop();\r\n this.element = null\r\n },\r\n stop: function() {\r\n var that = this;\r\n that._animations = {};\r\n that._animationCount = 0;\r\n (0, _frame.cancelAnimationFrame)(that._timerId);\r\n clearTimeout(that._startDelay);\r\n clearTimeout(that._endAnimationTimer);\r\n that._timerId = null\r\n },\r\n lock: function() {\r\n var an;\r\n var animations = this._animations;\r\n var unstoppable;\r\n var hasUnstoppableInAnimations;\r\n for (an in animations) {\r\n unstoppable = animations[an].options.unstoppable;\r\n hasUnstoppableInAnimations = hasUnstoppableInAnimations || unstoppable;\r\n if (!unstoppable) {\r\n animations[an].stop(true);\r\n delete animations[an]\r\n }\r\n }!hasUnstoppableInAnimations && this.stop()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (viz/core/layout.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _utils = require(\"./utils\");\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _round = Math.round;\r\nvar ALIGN_START = 0;\r\nvar ALIGN_MIDDLE = 1;\r\nvar ALIGN_END = 2;\r\nvar horizontalAlignmentMap = {\r\n left: ALIGN_START,\r\n center: ALIGN_MIDDLE,\r\n right: ALIGN_END\r\n};\r\nvar verticalAlignmentMap = {\r\n top: ALIGN_START,\r\n center: ALIGN_MIDDLE,\r\n bottom: ALIGN_END\r\n};\r\nvar sideMap = {\r\n horizontal: 0,\r\n vertical: 1\r\n};\r\nvar slicersMap = {};\r\nvar BBOX_CEIL_CORRECTION = 2;\r\nslicersMap[ALIGN_START] = function(a, b, size) {\r\n return [a, _min(b, a + size)]\r\n};\r\nslicersMap[ALIGN_MIDDLE] = function(a, b, size) {\r\n return [_max(a, (a + b - size) / 2), _min(b, (a + b + size) / 2)]\r\n};\r\nslicersMap[ALIGN_END] = function(a, b, size) {\r\n return [_max(a, b - size), b]\r\n};\r\n\r\nfunction pickValue(value, map, defaultValue) {\r\n var val = (0, _utils.normalizeEnum)(value);\r\n return val in map ? map[val] : defaultValue\r\n}\r\n\r\nfunction normalizeLayoutOptions(options) {\r\n var side = pickValue(options.side, sideMap, 1);\r\n var alignment = [pickValue(options.horizontalAlignment, horizontalAlignmentMap, ALIGN_MIDDLE), pickValue(options.verticalAlignment, verticalAlignmentMap, ALIGN_START)];\r\n return {\r\n side: side,\r\n primary: bringToEdge(alignment[side]),\r\n secondary: alignment[1 - side],\r\n weak: options.weak,\r\n priority: options.priority || 0,\r\n header: options.header,\r\n position: options.position\r\n }\r\n}\r\n\r\nfunction bringToEdge(primary) {\r\n return primary < 2 ? 0 : 2\r\n}\r\n\r\nfunction getConjugateSide(side) {\r\n return 1 - side\r\n}\r\n\r\nfunction getSlice(alignment, a, b, size) {\r\n return slicersMap[alignment](a, b, size)\r\n}\r\n\r\nfunction getShrink(alignment, size) {\r\n return (alignment > 0 ? -1 : 1) * size\r\n}\r\n\r\nfunction processForward(item, rect, minSize) {\r\n var side = item.side;\r\n var size = item.element.measure([rect[2] - rect[0], rect[3] - rect[1]]);\r\n var minSide = \"indside\" === item.position ? 0 : minSize[side];\r\n var isValid = size[side] < rect[2 + side] - rect[side] - minSide;\r\n if (isValid) {\r\n if (\"inside\" !== item.position) {\r\n rect[item.primary + side] += getShrink(item.primary, size[side])\r\n }\r\n item.size = size\r\n }\r\n return isValid\r\n}\r\n\r\nfunction processRectBackward(item, rect, alignmentRect) {\r\n var primarySide = item.side;\r\n var secondarySide = getConjugateSide(primarySide);\r\n var itemRect = [];\r\n var secondary = getSlice(item.secondary, alignmentRect[secondarySide], alignmentRect[2 + secondarySide], item.size[secondarySide]);\r\n itemRect[primarySide] = _round(itemRect[2 + primarySide] = rect[item.primary + primarySide] + (\"inside\" === item.position ? getShrink(item.primary, item.size[primarySide]) : 0));\r\n itemRect[item.primary + primarySide] = _round(rect[item.primary + primarySide] - getShrink(item.primary, item.size[primarySide]));\r\n if (\"inside\" !== item.position) {\r\n rect[item.primary + primarySide] = itemRect[item.primary + primarySide]\r\n }\r\n itemRect[secondarySide] = _round(secondary[0]);\r\n itemRect[2 + secondarySide] = _round(secondary[1]);\r\n return itemRect\r\n}\r\n\r\nfunction processBackward(item, rect, alignmentRect, fitRect, size, targetRect) {\r\n var itemRect = processRectBackward(item, rect, alignmentRect);\r\n var itemFitRect = processRectBackward(item, fitRect, fitRect);\r\n if (size[item.side] > 0) {\r\n size[item.side] -= item.size[item.side];\r\n targetRect[item.primary + item.side] = itemRect[item.primary + item.side];\r\n item.element.freeSpace()\r\n } else {\r\n item.element.move(itemRect, itemFitRect)\r\n }\r\n}\r\n\r\nfunction Layout() {\r\n this._targets = []\r\n}\r\nLayout.prototype = {\r\n constructor: Layout,\r\n dispose: function() {\r\n this._targets = null\r\n },\r\n add: function(target) {\r\n this._targets.push(target)\r\n },\r\n forward: function(targetRect, minSize) {\r\n var rect = targetRect.slice();\r\n var targets = createTargets(this._targets);\r\n var i;\r\n var ii = targets.length;\r\n var cache = [];\r\n for (i = 0; i < ii; ++i) {\r\n if (processForward(targets[i], rect, minSize)) {\r\n cache.push(targets[i])\r\n } else {\r\n targets[i].element.freeSpace()\r\n }\r\n }\r\n this._cache = cache.reverse();\r\n return rect\r\n },\r\n backward: function(targetRect, alignmentRect) {\r\n var size = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : [0, 0];\r\n var backwardRect = targetRect.slice();\r\n var fitRect = targetRect.slice();\r\n var targets = this._cache;\r\n var targetSide = 0;\r\n var target;\r\n var i;\r\n var ii = targets.length;\r\n for (i = 0; i < ii; ++i) {\r\n target = targets[i];\r\n if (target.side !== targetSide) {\r\n backwardRect = targetRect.slice()\r\n }\r\n processBackward(target, backwardRect, alignmentRect, fitRect, size, targetRect);\r\n targetSide = target.side\r\n }\r\n return size\r\n }\r\n};\r\n\r\nfunction createTargets(targets) {\r\n var i;\r\n var ii = targets.length;\r\n var collection = [];\r\n var layout;\r\n for (i = 0; i < ii; ++i) {\r\n layout = targets[i].layoutOptions();\r\n if (layout) {\r\n layout = normalizeLayoutOptions(layout);\r\n layout.element = targets[i];\r\n collection.push(layout)\r\n }\r\n }\r\n collection.sort(function(a, b) {\r\n return b.side - a.side || a.priority - b.priority\r\n });\r\n collection = processWeakItems(collection);\r\n return collection\r\n}\r\n\r\nfunction processWeakItems(collection) {\r\n var weakItem = collection.filter(function(item) {\r\n return true === item.weak\r\n })[0];\r\n var headerItem;\r\n if (weakItem) {\r\n headerItem = collection.filter(function(item) {\r\n return weakItem.primary === item.primary && item.side === weakItem.side && item !== weakItem\r\n })[0]\r\n }\r\n if (weakItem && headerItem) {\r\n return [makeHeader(headerItem, weakItem)].concat(collection.filter(function(item) {\r\n return !(item === headerItem || item === weakItem)\r\n }))\r\n }\r\n return collection\r\n}\r\n\r\nfunction processBackwardHeaderRect(element, rect) {\r\n var rectCopy = rect.slice();\r\n var itemRect = processRectBackward(element, rectCopy, rectCopy);\r\n itemRect[element.side] = rect[element.side];\r\n itemRect[2 + element.side] = rect[2 + element.side];\r\n return itemRect\r\n}\r\n\r\nfunction makeHeader(header, weakElement) {\r\n var side = header.side;\r\n var primary = header.primary;\r\n var secondary = header.secondary;\r\n return {\r\n side: side,\r\n primary: primary,\r\n secondary: secondary,\r\n priority: 0,\r\n element: {\r\n measure: function(targetSize) {\r\n var result = targetSize.slice();\r\n var weakSize = weakElement.element.measure(targetSize.slice());\r\n targetSize[primary] -= weakSize[primary];\r\n var headerSize = header.element.measure(targetSize.slice());\r\n result[side] = weakSize[side] = headerSize[side] = Math.max(headerSize[side], weakSize[side]);\r\n weakElement.size = weakSize;\r\n header.size = headerSize;\r\n return result\r\n },\r\n move: function(rect, fitRect) {\r\n if (fitRect[2] - fitRect[0] < header.size[0] + weakElement.size[0] - BBOX_CEIL_CORRECTION) {\r\n this.freeSpace();\r\n return\r\n }\r\n var weakRect = processBackwardHeaderRect(weakElement, fitRect, fitRect);\r\n fitRect[2 + weakElement.primary] = weakRect[weakElement.primary];\r\n var headerFitReact = processBackwardHeaderRect(header, fitRect, fitRect);\r\n if (fitRect[2 + weakElement.primary] < rect[2 + weakElement.primary] && header.size[header.primary] > rect[2 + header.primary] - rect[header.primary]) {\r\n rect[2 + weakElement.primary] = fitRect[2 + weakElement.primary]\r\n }\r\n var headerRect = processBackwardHeaderRect(header, rect, rect);\r\n if (headerRect[2 + weakElement.primary] > fitRect[2 + weakElement.primary]) {\r\n rect[2 + weakElement.primary] = fitRect[2 + weakElement.primary];\r\n headerRect = processBackwardHeaderRect(header, rect, rect)\r\n }\r\n weakElement.element.move(weakRect);\r\n header.element.move(headerRect, headerFitReact)\r\n },\r\n freeSpace: function() {\r\n header.element.freeSpace();\r\n weakElement.element.freeSpace()\r\n }\r\n }\r\n }\r\n}\r\nvar _default = Layout;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/core/base_widget.utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.createEventTrigger = createEventTrigger;\r\nexports.createResizeHandler = createResizeHandler;\r\nexports.createIncidentOccurred = void 0;\r\nvar _version = _interopRequireDefault(require(\"../../core/version\"));\r\nvar _string = require(\"../../core/utils/string\");\r\nvar _errors_warnings = _interopRequireDefault(require(\"./errors_warnings\"));\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar ERROR_MESSAGES = _errors_warnings.default.ERROR_MESSAGES;\r\n\r\nfunction createEventTrigger(eventsMap, callbackGetter) {\r\n var triggers = {};\r\n (0, _iterator.each)(eventsMap, function(name, info) {\r\n if (info.name) {\r\n createEvent(name)\r\n }\r\n });\r\n var changes;\r\n triggerEvent.change = function(name) {\r\n var eventInfo = eventsMap[name];\r\n if (eventInfo) {\r\n (changes = changes || {})[name] = eventInfo\r\n }\r\n return !!eventInfo\r\n };\r\n triggerEvent.applyChanges = function() {\r\n if (changes) {\r\n (0, _iterator.each)(changes, function(name, eventInfo) {\r\n createEvent(eventInfo.newName || name)\r\n });\r\n changes = null\r\n }\r\n };\r\n triggerEvent.dispose = function() {\r\n eventsMap = callbackGetter = triggers = null\r\n };\r\n return triggerEvent;\r\n\r\n function createEvent(name) {\r\n var eventInfo = eventsMap[name];\r\n triggers[eventInfo.name] = callbackGetter(name)\r\n }\r\n\r\n function triggerEvent(name, arg, complete) {\r\n triggers[name](arg);\r\n complete && complete()\r\n }\r\n}\r\nvar createIncidentOccurred = function(widgetName, eventTrigger) {\r\n return function(id, args) {\r\n eventTrigger(\"incidentOccurred\", {\r\n target: {\r\n id: id,\r\n type: \"E\" === id[0] ? \"error\" : \"warning\",\r\n args: args,\r\n text: _string.format.apply(null, [ERROR_MESSAGES[id]].concat(args || [])),\r\n widget: widgetName,\r\n version: _version.default\r\n }\r\n })\r\n }\r\n};\r\nexports.createIncidentOccurred = createIncidentOccurred;\r\n\r\nfunction createResizeHandler(callback) {\r\n var timeout;\r\n var handler = function() {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(callback, 100)\r\n };\r\n handler.dispose = function() {\r\n clearTimeout(timeout);\r\n return this\r\n };\r\n return handler\r\n}\r\n","/**\r\n * DevExtreme (viz/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\nexports.default = void 0;\r\nvar _circular_gauge = _interopRequireDefault(require(\"./gauges/circular_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 = _circular_gauge.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (viz/core/utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.map = map;\r\nexports.normalizeEnum = normalizeEnum;\r\nexports.setCanvasValues = setCanvasValues;\r\nexports.normalizeBBox = normalizeBBox;\r\nexports.rotateBBox = rotateBBox;\r\nexports.convertPolarToXY = convertPolarToXY;\r\nexports.isRelativeHeightPane = isRelativeHeightPane;\r\nexports.normalizePanesHeight = normalizePanesHeight;\r\nexports.updatePanesCanvases = updatePanesCanvases;\r\nexports.mergeMarginOptions = mergeMarginOptions;\r\nexports.getVizRangeObject = getVizRangeObject;\r\nexports.convertVisualRangeObject = convertVisualRangeObject;\r\nexports.getAddFunction = getAddFunction;\r\nexports.adjustVisualRange = adjustVisualRange;\r\nexports.getLogExt = getLogExt;\r\nexports.raiseToExt = raiseToExt;\r\nexports.rangesAreEqual = rangesAreEqual;\r\nexports.valueOf = valueOf;\r\nexports.pointInCanvas = pointInCanvas;\r\nexports.getVerticallyShiftedAngularCoords = exports.unique = exports.getCategoriesInfo = exports.processSeriesTemplate = exports.convertXYToPolar = exports.patchFontOptions = exports.enumParser = exports.parseScalar = exports.decreaseGaps = exports.getPower = exports.roundValue = exports.getAppropriateFormat = exports.getDecimalOrder = exports.getDistance = exports.getCosAndSin = exports.degreesToRadians = exports.convertAngleToRendererSpace = exports.normalizeAngle = exports.raiseTo = exports.getAdjustedLog10 = exports.getLog = exports.PANE_PADDING = void 0;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _math = require(\"../../core/utils/math\");\r\nvar _date = _interopRequireDefault(require(\"../../core/utils/date\"));\r\nvar _color = _interopRequireDefault(require(\"../../color\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar PI = Math.PI,\r\n LN10 = Math.LN10,\r\n abs = Math.abs,\r\n log = Math.log,\r\n floor = Math.floor,\r\n ceil = Math.ceil,\r\n pow = Math.pow,\r\n sqrt = Math.sqrt,\r\n atan2 = Math.atan2;\r\nvar _min = Math.min;\r\nvar _max = Math.max;\r\nvar _cos = Math.cos;\r\nvar _sin = Math.sin;\r\nvar _round = Math.round;\r\nvar dateToMilliseconds = _date.default.dateToMilliseconds;\r\nvar MAX_PIXEL_COUNT = 1e10;\r\nvar PI_DIV_180 = PI / 180;\r\nvar _isNaN = isNaN;\r\nvar _Number = Number;\r\nvar _NaN = NaN;\r\nvar PANE_PADDING = 10;\r\nexports.PANE_PADDING = PANE_PADDING;\r\nvar getLog = function(value, base) {\r\n if (!value) {\r\n return _NaN\r\n }\r\n return log(value) / log(base)\r\n};\r\nexports.getLog = getLog;\r\nvar getAdjustedLog10 = function(value) {\r\n return (0, _math.adjust)(getLog(value, 10))\r\n};\r\nexports.getAdjustedLog10 = getAdjustedLog10;\r\nvar raiseTo = function(power, base) {\r\n return pow(base, power)\r\n};\r\nexports.raiseTo = raiseTo;\r\nvar normalizeAngle = function(angle) {\r\n return (angle % 360 + 360) % 360\r\n};\r\nexports.normalizeAngle = normalizeAngle;\r\nvar convertAngleToRendererSpace = function(angle) {\r\n return 90 - angle\r\n};\r\nexports.convertAngleToRendererSpace = convertAngleToRendererSpace;\r\nvar degreesToRadians = function(value) {\r\n return PI * value / 180\r\n};\r\nexports.degreesToRadians = degreesToRadians;\r\nvar getCosAndSin = function(angle) {\r\n var angleInRadians = degreesToRadians(angle);\r\n return {\r\n cos: _cos(angleInRadians),\r\n sin: _sin(angleInRadians)\r\n }\r\n};\r\nexports.getCosAndSin = getCosAndSin;\r\nvar DECIMAL_ORDER_THRESHOLD = 1e-14;\r\nvar getDistance = function(x1, y1, x2, y2) {\r\n var diffX = x2 - x1;\r\n var diffY = y2 - y1;\r\n return sqrt(diffY * diffY + diffX * diffX)\r\n};\r\nexports.getDistance = getDistance;\r\nvar getDecimalOrder = function(number) {\r\n var n = abs(number);\r\n var cn;\r\n if (!_isNaN(n)) {\r\n if (n > 0) {\r\n n = log(n) / LN10;\r\n cn = ceil(n);\r\n return cn - n < DECIMAL_ORDER_THRESHOLD ? cn : floor(n)\r\n }\r\n return 0\r\n }\r\n return _NaN\r\n};\r\nexports.getDecimalOrder = getDecimalOrder;\r\nvar getAppropriateFormat = function(start, end, count) {\r\n var order = _max(getDecimalOrder(start), getDecimalOrder(end));\r\n var precision = -getDecimalOrder(abs(end - start) / count);\r\n var format;\r\n if (!_isNaN(order) && !_isNaN(precision)) {\r\n if (abs(order) <= 4) {\r\n format = \"fixedPoint\";\r\n precision < 0 && (precision = 0);\r\n precision > 4 && (precision = 4)\r\n } else {\r\n format = \"exponential\";\r\n precision += order - 1;\r\n precision > 3 && (precision = 3)\r\n }\r\n return {\r\n type: format,\r\n precision: precision\r\n }\r\n }\r\n return null\r\n};\r\nexports.getAppropriateFormat = getAppropriateFormat;\r\nvar roundValue = function(value, precision) {\r\n if (precision > 20) {\r\n precision = 20\r\n }\r\n if ((0, _type.isNumeric)(value)) {\r\n if ((0, _type.isExponential)(value)) {\r\n return _Number(value.toExponential(precision))\r\n } else {\r\n return _Number(value.toFixed(precision))\r\n }\r\n }\r\n};\r\nexports.roundValue = roundValue;\r\nvar getPower = function(value) {\r\n return value.toExponential().split(\"e\")[1]\r\n};\r\nexports.getPower = getPower;\r\n\r\nfunction map(array, callback) {\r\n var i = 0;\r\n var len = array.length;\r\n var result = [];\r\n var value;\r\n while (i < len) {\r\n value = callback(array[i], i);\r\n if (null !== value) {\r\n result.push(value)\r\n }\r\n i++\r\n }\r\n return result\r\n}\r\n\r\nfunction selectByKeys(object, keys) {\r\n return map(keys, function(key) {\r\n return object[key] ? object[key] : null\r\n })\r\n}\r\n\r\nfunction decreaseFields(object, keys, eachDecrease, decrease) {\r\n var dec = decrease;\r\n (0, _iterator.each)(keys, function(_, key) {\r\n if (object[key]) {\r\n object[key] -= eachDecrease;\r\n dec -= eachDecrease\r\n }\r\n });\r\n return dec\r\n}\r\n\r\nfunction normalizeEnum(value) {\r\n return String(value).toLowerCase()\r\n}\r\n\r\nfunction setCanvasValues(canvas) {\r\n if (canvas) {\r\n canvas.originalTop = canvas.top;\r\n canvas.originalBottom = canvas.bottom;\r\n canvas.originalLeft = canvas.left;\r\n canvas.originalRight = canvas.right\r\n }\r\n return canvas\r\n}\r\n\r\nfunction normalizeBBoxField(value) {\r\n return -MAX_PIXEL_COUNT < value && value < +MAX_PIXEL_COUNT ? value : 0\r\n}\r\n\r\nfunction normalizeBBox(bBox) {\r\n var xl = normalizeBBoxField(floor(bBox.x));\r\n var yt = normalizeBBoxField(floor(bBox.y));\r\n var xr = normalizeBBoxField(ceil(bBox.width + bBox.x));\r\n var yb = normalizeBBoxField(ceil(bBox.height + bBox.y));\r\n var result = {\r\n x: xl,\r\n y: yt,\r\n width: xr - xl,\r\n height: yb - yt\r\n };\r\n result.isEmpty = !result.x && !result.y && !result.width && !result.height;\r\n return result\r\n}\r\n\r\nfunction rotateBBox(bBox, center, angle) {\r\n var cos = _Number(_cos(angle * PI_DIV_180).toFixed(3));\r\n var sin = _Number(_sin(angle * PI_DIV_180).toFixed(3));\r\n var w2 = bBox.width / 2;\r\n var h2 = bBox.height / 2;\r\n var centerX = bBox.x + w2;\r\n var centerY = bBox.y + h2;\r\n var w2_ = abs(w2 * cos) + abs(h2 * sin);\r\n var h2_ = abs(w2 * sin) + abs(h2 * cos);\r\n var centerX_ = center[0] + (centerX - center[0]) * cos + (centerY - center[1]) * sin;\r\n var centerY_ = center[1] - (centerX - center[0]) * sin + (centerY - center[1]) * cos;\r\n return normalizeBBox({\r\n x: centerX_ - w2_,\r\n y: centerY_ - h2_,\r\n width: 2 * w2_,\r\n height: 2 * h2_\r\n })\r\n}\r\nvar decreaseGaps = function(object, keys, decrease) {\r\n var arrayGaps;\r\n do {\r\n arrayGaps = selectByKeys(object, keys);\r\n arrayGaps.push(ceil(decrease / arrayGaps.length));\r\n decrease = decreaseFields(object, keys, _min.apply(null, arrayGaps), decrease)\r\n } while (decrease > 0 && arrayGaps.length > 1);\r\n return decrease\r\n};\r\nexports.decreaseGaps = decreaseGaps;\r\nvar parseScalar = function(value, defaultValue) {\r\n return void 0 !== value ? value : defaultValue\r\n};\r\nexports.parseScalar = parseScalar;\r\nvar enumParser = function(values) {\r\n var stored = {};\r\n var i;\r\n var ii;\r\n for (i = 0, ii = values.length; i < ii; ++i) {\r\n stored[normalizeEnum(values[i])] = 1\r\n }\r\n return function(value, defaultValue) {\r\n var _value = normalizeEnum(value);\r\n return stored[_value] ? _value : defaultValue\r\n }\r\n};\r\nexports.enumParser = enumParser;\r\nvar patchFontOptions = function(options) {\r\n var fontOptions = {};\r\n (0, _iterator.each)(options || {}, function(key, value) {\r\n if (/^(cursor)$/i.test(key)) {} else {\r\n if (\"opacity\" === key) {\r\n value = null\r\n } else {\r\n if (\"color\" === key) {\r\n key = \"fill\";\r\n if (\"opacity\" in options) {\r\n var color = new _color.default(value);\r\n value = \"rgba(\".concat(color.r, \",\").concat(color.g, \",\").concat(color.b, \",\").concat(options.opacity, \")\")\r\n }\r\n } else {\r\n key = \"font-\" + key\r\n }\r\n }\r\n }\r\n fontOptions[key] = value\r\n });\r\n return fontOptions\r\n};\r\nexports.patchFontOptions = patchFontOptions;\r\n\r\nfunction convertPolarToXY(centerCoords, startAngle, angle, radius) {\r\n var shiftAngle = 90;\r\n var normalizedRadius = radius > 0 ? radius : 0;\r\n angle = (0, _type.isDefined)(angle) ? angle + startAngle - shiftAngle : 0;\r\n var cosSin = getCosAndSin(angle);\r\n return {\r\n x: _round(centerCoords.x + normalizedRadius * cosSin.cos),\r\n y: _round(centerCoords.y + normalizedRadius * cosSin.sin)\r\n }\r\n}\r\nvar convertXYToPolar = function(centerCoords, x, y) {\r\n var radius = getDistance(centerCoords.x, centerCoords.y, x, y);\r\n var angle = atan2(y - centerCoords.y, x - centerCoords.x);\r\n return {\r\n phi: _round(normalizeAngle(180 * angle / PI)),\r\n r: _round(radius)\r\n }\r\n};\r\nexports.convertXYToPolar = convertXYToPolar;\r\nvar processSeriesTemplate = function(seriesTemplate, items) {\r\n var customizeSeries = (0, _type.isFunction)(seriesTemplate.customizeSeries) ? seriesTemplate.customizeSeries : _common.noop;\r\n var nameField = seriesTemplate.nameField;\r\n var generatedSeries = {};\r\n var seriesOrder = [];\r\n var series;\r\n var i = 0;\r\n var length;\r\n var data;\r\n items = items || [];\r\n for (length = items.length; i < length; i++) {\r\n data = items[i];\r\n if (nameField in data) {\r\n series = generatedSeries[data[nameField]];\r\n if (!series) {\r\n series = generatedSeries[data[nameField]] = {\r\n name: data[nameField],\r\n nameFieldValue: data[nameField]\r\n };\r\n seriesOrder.push(series.name)\r\n }\r\n }\r\n }\r\n return map(seriesOrder, function(orderedName) {\r\n var group = generatedSeries[orderedName];\r\n return (0, _extend.extend)(group, customizeSeries.call(null, group.name))\r\n })\r\n};\r\nexports.processSeriesTemplate = processSeriesTemplate;\r\nvar getCategoriesInfo = function(categories, startValue, endValue) {\r\n if (0 === categories.length) {\r\n return {\r\n categories: []\r\n }\r\n }\r\n startValue = (0, _type.isDefined)(startValue) ? startValue : categories[0];\r\n endValue = (0, _type.isDefined)(endValue) ? endValue : categories[categories.length - 1];\r\n var categoriesValue = map(categories, function(category) {\r\n return null === category || void 0 === category ? void 0 : category.valueOf()\r\n });\r\n var indexStartValue = categoriesValue.indexOf(startValue.valueOf());\r\n var indexEndValue = categoriesValue.indexOf(endValue.valueOf());\r\n var swapBuf;\r\n var inverted = false;\r\n indexStartValue < 0 && (indexStartValue = 0);\r\n indexEndValue < 0 && (indexEndValue = categories.length - 1);\r\n if (indexEndValue < indexStartValue) {\r\n swapBuf = indexEndValue;\r\n indexEndValue = indexStartValue;\r\n indexStartValue = swapBuf;\r\n inverted = true\r\n }\r\n var visibleCategories = categories.slice(indexStartValue, indexEndValue + 1);\r\n var lastIdx = visibleCategories.length - 1;\r\n return {\r\n categories: visibleCategories,\r\n start: visibleCategories[inverted ? lastIdx : 0],\r\n end: visibleCategories[inverted ? 0 : lastIdx],\r\n inverted: inverted\r\n }\r\n};\r\nexports.getCategoriesInfo = getCategoriesInfo;\r\n\r\nfunction isRelativeHeightPane(pane) {\r\n return !(pane.unit % 2)\r\n}\r\n\r\nfunction normalizePanesHeight(panes) {\r\n panes.forEach(function(pane) {\r\n var height = pane.height;\r\n var unit = 0;\r\n var parsedHeight = parseFloat(height) || void 0;\r\n if ((0, _type.isString)(height) && height.indexOf(\"px\") > -1 || (0, _type.isNumeric)(height) && height > 1) {\r\n parsedHeight = _round(parsedHeight);\r\n unit = 1\r\n }\r\n if (!unit && parsedHeight) {\r\n if ((0, _type.isString)(height) && height.indexOf(\"%\") > -1) {\r\n parsedHeight /= 100;\r\n unit = 2\r\n } else {\r\n if (parsedHeight < 0) {\r\n parsedHeight = parsedHeight < -1 ? 1 : abs(parsedHeight)\r\n }\r\n }\r\n }\r\n pane.height = parsedHeight;\r\n pane.unit = unit\r\n });\r\n var relativeHeightPanes = panes.filter(isRelativeHeightPane);\r\n var weightSum = relativeHeightPanes.reduce(function(prev, next) {\r\n return prev + (next.height || 0)\r\n }, 0);\r\n var weightHeightCount = relativeHeightPanes.length;\r\n var emptyHeightPanes = relativeHeightPanes.filter(function(pane) {\r\n return !pane.height\r\n });\r\n var emptyHeightCount = emptyHeightPanes.length;\r\n if (weightSum < 1 && emptyHeightCount) {\r\n emptyHeightPanes.forEach(function(pane) {\r\n return pane.height = (1 - weightSum) / emptyHeightCount\r\n })\r\n } else {\r\n if (weightSum > 1 || weightSum < 1 && !emptyHeightCount || 1 === weightSum && emptyHeightCount) {\r\n if (emptyHeightCount) {\r\n var weightForEmpty = weightSum / weightHeightCount;\r\n var emptyWeightSum = emptyHeightCount * weightForEmpty;\r\n relativeHeightPanes.filter(function(pane) {\r\n return pane.height\r\n }).forEach(function(pane) {\r\n return pane.height *= (weightSum - emptyWeightSum) / weightSum\r\n });\r\n emptyHeightPanes.forEach(function(pane) {\r\n return pane.height = weightForEmpty\r\n })\r\n }\r\n relativeHeightPanes.forEach(function(pane) {\r\n return pane.height *= 1 / weightSum\r\n })\r\n }\r\n }\r\n}\r\n\r\nfunction updatePanesCanvases(panes, canvas, rotated) {\r\n var distributedSpace = 0;\r\n var padding = PANE_PADDING;\r\n var paneSpace = rotated ? canvas.width - canvas.left - canvas.right : canvas.height - canvas.top - canvas.bottom;\r\n var totalCustomSpace = panes.reduce(function(prev, cur) {\r\n return prev + (!isRelativeHeightPane(cur) ? cur.height : 0)\r\n }, 0);\r\n var usefulSpace = paneSpace - padding * (panes.length - 1) - totalCustomSpace;\r\n var startName = rotated ? \"left\" : \"top\";\r\n var endName = rotated ? \"right\" : \"bottom\";\r\n panes.forEach(function(pane) {\r\n var calcLength = !isRelativeHeightPane(pane) ? pane.height : _round(pane.height * usefulSpace);\r\n pane.canvas = pane.canvas || {};\r\n (0, _extend.extend)(pane.canvas, canvas);\r\n pane.canvas[startName] = canvas[startName] + distributedSpace;\r\n pane.canvas[endName] = canvas[endName] + (paneSpace - calcLength - distributedSpace);\r\n distributedSpace = distributedSpace + calcLength + padding;\r\n setCanvasValues(pane.canvas)\r\n })\r\n}\r\nvar unique = function(array) {\r\n var values = {};\r\n return map(array, function(item) {\r\n var result = !values[item] ? item : null;\r\n values[item] = true;\r\n return result\r\n })\r\n};\r\nexports.unique = unique;\r\nvar getVerticallyShiftedAngularCoords = function(bBox, dy, center) {\r\n var isPositive = bBox.x + bBox.width / 2 >= center.x;\r\n var horizontalOffset1 = (isPositive ? bBox.x : bBox.x + bBox.width) - center.x;\r\n var verticalOffset1 = bBox.y - center.y;\r\n var verticalOffset2 = verticalOffset1 + dy;\r\n var horizontalOffset2 = _round(sqrt(horizontalOffset1 * horizontalOffset1 + verticalOffset1 * verticalOffset1 - verticalOffset2 * verticalOffset2));\r\n var dx = (isPositive ? +horizontalOffset2 : -horizontalOffset2) || horizontalOffset1;\r\n return {\r\n x: center.x + (isPositive ? dx : dx - bBox.width),\r\n y: bBox.y + dy\r\n }\r\n};\r\nexports.getVerticallyShiftedAngularCoords = getVerticallyShiftedAngularCoords;\r\n\r\nfunction mergeMarginOptions(opt1, opt2) {\r\n return {\r\n checkInterval: opt1.checkInterval || opt2.checkInterval,\r\n size: _max(opt1.size || 0, opt2.size || 0),\r\n percentStick: opt1.percentStick || opt2.percentStick,\r\n sizePointNormalState: _max(opt1.sizePointNormalState || 0, opt2.sizePointNormalState || 0)\r\n }\r\n}\r\n\r\nfunction getVizRangeObject(value) {\r\n if (Array.isArray(value)) {\r\n return {\r\n startValue: value[0],\r\n endValue: value[1]\r\n }\r\n } else {\r\n return value || {}\r\n }\r\n}\r\n\r\nfunction convertVisualRangeObject(visualRange, convertToVisualRange) {\r\n if (convertToVisualRange) {\r\n return visualRange\r\n }\r\n return [visualRange.startValue, visualRange.endValue]\r\n}\r\n\r\nfunction getAddFunction(range, correctZeroLevel) {\r\n if (\"datetime\" === range.dataType) {\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n return new Date(rangeValue.getTime() + sign * marginValue)\r\n }\r\n }\r\n if (\"logarithmic\" === range.axisType) {\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n var log = getLogExt(rangeValue, range.base) + sign * marginValue;\r\n return raiseToExt(log, range.base)\r\n }\r\n }\r\n return function(rangeValue, marginValue) {\r\n var sign = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1;\r\n var newValue = rangeValue + sign * marginValue;\r\n return correctZeroLevel && newValue * rangeValue <= 0 ? 0 : newValue\r\n }\r\n}\r\n\r\nfunction adjustVisualRange(options, visualRange, wholeRange, dataRange) {\r\n var minDefined = (0, _type.isDefined)(visualRange.startValue);\r\n var maxDefined = (0, _type.isDefined)(visualRange.endValue);\r\n var nonDiscrete = \"discrete\" !== options.axisType;\r\n dataRange = dataRange || wholeRange;\r\n var add = getAddFunction(options, false);\r\n var min = minDefined ? visualRange.startValue : dataRange.min;\r\n var max = maxDefined ? visualRange.endValue : dataRange.max;\r\n var rangeLength = visualRange.length;\r\n var categories = dataRange.categories;\r\n if (nonDiscrete && !(0, _type.isDefined)(min) && !(0, _type.isDefined)(max)) {\r\n return {\r\n startValue: min,\r\n endValue: max\r\n }\r\n }\r\n if ((0, _type.isDefined)(rangeLength)) {\r\n if (nonDiscrete) {\r\n if (\"datetime\" === options.dataType && !(0, _type.isNumeric)(rangeLength)) {\r\n rangeLength = dateToMilliseconds(rangeLength)\r\n }\r\n if (maxDefined && !minDefined || !maxDefined && !minDefined) {\r\n (0, _type.isDefined)(wholeRange.max) && (max = max > wholeRange.max ? wholeRange.max : max);\r\n min = add(max, rangeLength, -1)\r\n } else {\r\n if (minDefined && !maxDefined) {\r\n (0, _type.isDefined)(wholeRange.min) && (min = min < wholeRange.min ? wholeRange.min : min);\r\n max = add(min, rangeLength)\r\n }\r\n }\r\n } else {\r\n rangeLength = parseInt(rangeLength);\r\n if (!isNaN(rangeLength) && isFinite(rangeLength)) {\r\n rangeLength--;\r\n if (!maxDefined && !minDefined) {\r\n max = categories[categories.length - 1];\r\n min = categories[categories.length - 1 - rangeLength]\r\n } else {\r\n if (minDefined && !maxDefined) {\r\n var categoriesInfo = getCategoriesInfo(categories, min, void 0);\r\n max = categoriesInfo.categories[rangeLength]\r\n } else {\r\n if (!minDefined && maxDefined) {\r\n var _categoriesInfo = getCategoriesInfo(categories, void 0, max);\r\n min = _categoriesInfo.categories[_categoriesInfo.categories.length - 1 - rangeLength]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (nonDiscrete) {\r\n if ((0, _type.isDefined)(wholeRange.max) && max > wholeRange.max) {\r\n max = wholeRange.max\r\n }\r\n if ((0, _type.isDefined)(wholeRange.min) && min < wholeRange.min) {\r\n min = wholeRange.min\r\n }\r\n }\r\n return {\r\n startValue: min,\r\n endValue: max\r\n }\r\n}\r\n\r\nfunction getLogExt(value, base) {\r\n var allowNegatives = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var linearThreshold = arguments.length > 3 ? arguments[3] : void 0;\r\n if (!allowNegatives) {\r\n return getLog(value, base)\r\n }\r\n if (0 === value) {\r\n return 0\r\n }\r\n var transformValue = getLog(abs(value), base) - (linearThreshold - 1);\r\n if (transformValue < 0) {\r\n return 0\r\n }\r\n return (0, _math.adjust)((0, _math.sign)(value) * transformValue, Number(pow(base, linearThreshold - 1).toFixed(abs(linearThreshold))))\r\n}\r\n\r\nfunction raiseToExt(value, base) {\r\n var allowNegatives = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n var linearThreshold = arguments.length > 3 ? arguments[3] : void 0;\r\n if (!allowNegatives) {\r\n return raiseTo(value, base)\r\n }\r\n if (0 === value) {\r\n return 0\r\n }\r\n var transformValue = raiseTo(abs(value) + (linearThreshold - 1), base);\r\n if (transformValue < 0) {\r\n return 0\r\n }\r\n return (0, _math.adjust)((0, _math.sign)(value) * transformValue, Number(pow(base, linearThreshold).toFixed(abs(linearThreshold))))\r\n}\r\n\r\nfunction rangesAreEqual(range, rangeFromOptions) {\r\n if (Array.isArray(rangeFromOptions)) {\r\n return range.length === rangeFromOptions.length && range.every(function(item, i) {\r\n return valueOf(item) === valueOf(rangeFromOptions[i])\r\n })\r\n } else {\r\n return valueOf(range.startValue) === valueOf(rangeFromOptions.startValue) && valueOf(range.endValue) === valueOf(rangeFromOptions.endValue)\r\n }\r\n}\r\n\r\nfunction valueOf(value) {\r\n return value && value.valueOf()\r\n}\r\n\r\nfunction pointInCanvas(canvas, x, y) {\r\n return x >= canvas.left && x <= canvas.right && y >= canvas.top && y <= canvas.bottom\r\n}\r\n","/**\r\n * DevExtreme (viz/core/base_widget.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 _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _resize_callbacks = _interopRequireDefault(require(\"../../core/utils/resize_callbacks\"));\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _base_theme_manager = require(\"../core/base_theme_manager\");\r\nvar _dom_component = _interopRequireDefault(require(\"../../core/dom_component\"));\r\nvar _helpers = require(\"./helpers\");\r\nvar _utils = require(\"./utils\");\r\nvar _errors_warnings = _interopRequireDefault(require(\"./errors_warnings\"));\r\nvar _renderer2 = require(\"./renderers/renderer\");\r\nvar _layout = _interopRequireDefault(require(\"./layout\"));\r\nvar _devices = _interopRequireDefault(require(\"../../core/devices\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _base_widget = require(\"./base_widget.utils\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _floor = Math.floor;\r\nvar _log = _errors_warnings.default.log;\r\nvar OPTION_RTL_ENABLED = \"rtlEnabled\";\r\nvar SIZED_ELEMENT_CLASS = \"dx-sized-element\";\r\nvar _option = _dom_component.default.prototype.option;\r\n\r\nfunction getTrue() {\r\n return true\r\n}\r\n\r\nfunction getFalse() {\r\n return false\r\n}\r\n\r\nfunction areCanvasesDifferent(canvas1, canvas2) {\r\n return !(canvas1.width === canvas2.width && canvas1.height === canvas2.height && canvas1.left === canvas2.left && canvas1.top === canvas2.top && canvas1.right === canvas2.right && canvas1.bottom === canvas2.bottom)\r\n}\r\n\r\nfunction defaultOnIncidentOccurred(e) {\r\n if (!e.component._eventsStrategy.hasEvent(\"incidentOccurred\")) {\r\n _log.apply(null, [e.target.id].concat(e.target.args || []))\r\n }\r\n}\r\n\r\nfunction pickPositiveValue(values) {\r\n return values.reduce(function(result, value) {\r\n return value > 0 && !result ? value : result\r\n }, 0)\r\n}\r\nvar getEmptyComponent = function() {\r\n var emptyComponentConfig = {\r\n _initTemplates: function() {},\r\n ctor: function(element, options) {\r\n this.callBase(element, options);\r\n var sizedElement = _dom_adapter.default.createElement(\"div\");\r\n var width = options && (0, _type.isNumeric)(options.width) ? options.width + \"px\" : \"100%\";\r\n var height = options && (0, _type.isNumeric)(options.height) ? options.height + \"px\" : this._getDefaultSize().height + \"px\";\r\n _dom_adapter.default.setStyle(sizedElement, \"width\", width);\r\n _dom_adapter.default.setStyle(sizedElement, \"height\", height);\r\n _dom_adapter.default.setClass(sizedElement, SIZED_ELEMENT_CLASS);\r\n _dom_adapter.default.insertElement(element, sizedElement)\r\n }\r\n };\r\n var EmptyComponent = _dom_component.default.inherit(emptyComponentConfig);\r\n var originalInherit = EmptyComponent.inherit;\r\n EmptyComponent.inherit = function(config) {\r\n for (var field in config) {\r\n if ((0, _type.isFunction)(config[field]) && \"_\" !== field.substr(0, 1) && \"option\" !== field || \"_dispose\" === field || \"_optionChanged\" === field) {\r\n config[field] = _common.noop\r\n }\r\n }\r\n return originalInherit.call(this, config)\r\n };\r\n return EmptyComponent\r\n};\r\n\r\nfunction callForEach(functions) {\r\n functions.forEach(function(c) {\r\n return c()\r\n })\r\n}\r\nvar isServerSide = !(0, _window.hasWindow)();\r\n\r\nfunction sizeIsValid(value) {\r\n return (0, _type.isDefined)(value) && value > 0\r\n}\r\nvar baseWidget = isServerSide ? getEmptyComponent() : _dom_component.default.inherit({\r\n _eventsMap: {\r\n onIncidentOccurred: {\r\n name: \"incidentOccurred\"\r\n },\r\n onDrawn: {\r\n name: \"drawn\"\r\n }\r\n },\r\n _getDefaultOptions: function() {\r\n return (0, _extend.extend)(this.callBase(), {\r\n onIncidentOccurred: defaultOnIncidentOccurred\r\n })\r\n },\r\n _useLinks: true,\r\n _init: function() {\r\n var that = this;\r\n that._$element.children(\".\" + SIZED_ELEMENT_CLASS).remove();\r\n that.callBase.apply(that, arguments);\r\n that._changesLocker = 0;\r\n that._optionChangedLocker = 0;\r\n that._asyncFirstDrawing = true;\r\n that._changes = (0, _helpers.changes)();\r\n that._suspendChanges();\r\n that._themeManager = that._createThemeManager();\r\n that._themeManager.setCallback(function() {\r\n that._requestChange(that._themeDependentChanges)\r\n });\r\n that._renderElementAttributes();\r\n that._initRenderer();\r\n var linkTarget = that._useLinks && that._renderer.root;\r\n linkTarget && linkTarget.enableLinks().virtualLink(\"core\").virtualLink(\"peripheral\");\r\n that._renderVisibilityChange();\r\n that._attachVisibilityChangeHandlers();\r\n that._toggleParentsScrollSubscription(this._isVisible());\r\n that._initEventTrigger();\r\n that._incidentOccurred = (0, _base_widget.createIncidentOccurred)(that.NAME, that._eventTrigger);\r\n that._layout = new _layout.default;\r\n linkTarget && linkTarget.linkAfter(\"core\");\r\n that._initPlugins();\r\n that._initCore();\r\n linkTarget && linkTarget.linkAfter();\r\n that._change(that._initialChanges)\r\n },\r\n _createThemeManager: function() {\r\n return new _base_theme_manager.BaseThemeManager(this._getThemeManagerOptions())\r\n },\r\n _getThemeManagerOptions: function() {\r\n return {\r\n themeSection: this._themeSection,\r\n fontFields: this._fontFields\r\n }\r\n },\r\n _initialChanges: [\"LAYOUT\", \"RESIZE_HANDLER\", \"THEME\", \"DISABLED\"],\r\n _initPlugins: function() {\r\n var that = this;\r\n (0, _iterator.each)(that._plugins, function(_, plugin) {\r\n plugin.init.call(that)\r\n })\r\n },\r\n _disposePlugins: function() {\r\n var that = this;\r\n (0, _iterator.each)(that._plugins.slice().reverse(), function(_, plugin) {\r\n plugin.dispose.call(that)\r\n })\r\n },\r\n _change: function(codes) {\r\n this._changes.add(codes)\r\n },\r\n _suspendChanges: function() {\r\n ++this._changesLocker\r\n },\r\n _resumeChanges: function() {\r\n var that = this;\r\n if (0 === --that._changesLocker && that._changes.count() > 0 && !that._applyingChanges) {\r\n that._renderer.lock();\r\n that._applyingChanges = true;\r\n that._applyChanges();\r\n that._changes.reset();\r\n that._applyingChanges = false;\r\n that._changesApplied();\r\n that._renderer.unlock();\r\n if (that._optionsQueue) {\r\n that._applyQueuedOptions()\r\n }\r\n that.resolveItemsDeferred(that._legend ? [that._legend] : []);\r\n that._optionChangedLocker++;\r\n that._notify();\r\n that._optionChangedLocker--\r\n }\r\n },\r\n resolveItemsDeferred: function(items) {\r\n this._resolveDeferred(this._getTemplatesItems(items))\r\n },\r\n _collectTemplatesFromItems: function(items) {\r\n return items.reduce(function(prev, i) {\r\n return {\r\n items: prev.items.concat(i.getTemplatesDef()),\r\n groups: prev.groups.concat(i.getTemplatesGroups())\r\n }\r\n }, {\r\n items: [],\r\n groups: []\r\n })\r\n },\r\n _getTemplatesItems: function(items) {\r\n var elements = this._collectTemplatesFromItems(items);\r\n var extraItems = this._getExtraTemplatesItems();\r\n return {\r\n items: extraItems.items.concat(elements.items),\r\n groups: extraItems.groups.concat(elements.groups),\r\n launchRequest: [extraItems.launchRequest],\r\n doneRequest: [extraItems.doneRequest]\r\n }\r\n },\r\n _getExtraTemplatesItems: function() {\r\n return {\r\n items: [],\r\n groups: [],\r\n launchRequest: function() {},\r\n doneRequest: function() {}\r\n }\r\n },\r\n _resolveDeferred: function(_ref) {\r\n var items = _ref.items,\r\n launchRequest = _ref.launchRequest,\r\n doneRequest = _ref.doneRequest,\r\n groups = _ref.groups;\r\n var that = this;\r\n that._setGroupsVisibility(groups, \"hidden\");\r\n if (that._changesApplying) {\r\n that._changesApplying = false;\r\n callForEach(doneRequest);\r\n return\r\n }\r\n var syncRendering = true;\r\n _deferred.when.apply(that, items).done(function() {\r\n if (syncRendering) {\r\n that._setGroupsVisibility(groups, \"visible\");\r\n return\r\n }\r\n callForEach(launchRequest);\r\n that._changesApplying = true;\r\n var changes = [\"LAYOUT\", \"FULL_RENDER\"];\r\n if (that._asyncFirstDrawing) {\r\n changes.push(\"FORCE_FIRST_DRAWING\");\r\n that._asyncFirstDrawing = false\r\n } else {\r\n changes.push(\"FORCE_DRAWING\")\r\n }\r\n that._requestChange(changes);\r\n that._setGroupsVisibility(groups, \"visible\")\r\n });\r\n syncRendering = false\r\n },\r\n _setGroupsVisibility: function(groups, visibility) {\r\n groups.forEach(function(g) {\r\n return g.attr({\r\n visibility: visibility\r\n })\r\n })\r\n },\r\n _applyQueuedOptions: function() {\r\n var that = this;\r\n var queue = that._optionsQueue;\r\n that._optionsQueue = null;\r\n that.beginUpdate();\r\n (0, _iterator.each)(queue, function(_, action) {\r\n action()\r\n });\r\n that.endUpdate()\r\n },\r\n _requestChange: function(codes) {\r\n this._suspendChanges();\r\n this._change(codes);\r\n this._resumeChanges()\r\n },\r\n _applyChanges: function() {\r\n var that = this;\r\n var changes = that._changes;\r\n var order = that._totalChangesOrder;\r\n var i;\r\n var ii = order.length;\r\n for (i = 0; i < ii; ++i) {\r\n if (changes.has(order[i])) {\r\n that[\"_change_\" + order[i]]()\r\n }\r\n }\r\n },\r\n _optionChangesOrder: [\"EVENTS\", \"THEME\", \"RENDERER\", \"RESIZE_HANDLER\"],\r\n _layoutChangesOrder: [\"ELEMENT_ATTR\", \"CONTAINER_SIZE\", \"LAYOUT\"],\r\n _customChangesOrder: [\"DISABLED\"],\r\n _change_EVENTS: function() {\r\n this._eventTrigger.applyChanges()\r\n },\r\n _change_THEME: function() {\r\n this._setThemeAndRtl()\r\n },\r\n _change_RENDERER: function() {\r\n this._setRendererOptions()\r\n },\r\n _change_RESIZE_HANDLER: function() {\r\n this._setupResizeHandler()\r\n },\r\n _change_ELEMENT_ATTR: function() {\r\n this._renderElementAttributes();\r\n this._change([\"CONTAINER_SIZE\"])\r\n },\r\n _change_CONTAINER_SIZE: function() {\r\n this._updateSize()\r\n },\r\n _change_LAYOUT: function() {\r\n this._setContentSize()\r\n },\r\n _change_DISABLED: function() {\r\n var renderer = this._renderer;\r\n var root = renderer.root;\r\n if (this.option(\"disabled\")) {\r\n this._initDisabledState = root.attr(\"pointer-events\");\r\n root.attr({\r\n \"pointer-events\": \"none\",\r\n filter: renderer.getGrayScaleFilter().id\r\n })\r\n } else {\r\n if (\"none\" === root.attr(\"pointer-events\")) {\r\n root.attr({\r\n \"pointer-events\": (0, _type.isDefined)(this._initDisabledState) ? this._initDisabledState : null,\r\n filter: null\r\n })\r\n }\r\n }\r\n },\r\n _themeDependentChanges: [\"RENDERER\"],\r\n _initRenderer: function() {\r\n var that = this;\r\n that._canvas = that._calculateCanvas();\r\n that._renderer = new _renderer2.Renderer({\r\n cssClass: that._rootClassPrefix + \" \" + that._rootClass,\r\n pathModified: that.option(\"pathModified\"),\r\n container: that._$element[0]\r\n });\r\n that._renderer.resize(that._canvas.width, that._canvas.height)\r\n },\r\n _disposeRenderer: function() {\r\n this._renderer.dispose()\r\n },\r\n _getAnimationOptions: _common.noop,\r\n render: function() {\r\n this._requestChange([\"CONTAINER_SIZE\"]);\r\n var visible = this._isVisible();\r\n this._toggleParentsScrollSubscription(visible);\r\n !visible && this._stopCurrentHandling()\r\n },\r\n _toggleParentsScrollSubscription: function(subscribe) {\r\n var $parents = (0, _renderer.default)(this._renderer.root.element).parents();\r\n var scrollEvents = \"scroll.viz_widgets\";\r\n if (\"generic\" === _devices.default.real().platform) {\r\n $parents = $parents.add((0, _window.getWindow)())\r\n }\r\n this._proxiedTargetParentsScrollHandler = this._proxiedTargetParentsScrollHandler || function() {\r\n this._stopCurrentHandling()\r\n }.bind(this);\r\n _events_engine.default.off((0, _renderer.default)().add(this._$prevRootParents), scrollEvents, this._proxiedTargetParentsScrollHandler);\r\n if (subscribe) {\r\n _events_engine.default.on($parents, scrollEvents, this._proxiedTargetParentsScrollHandler);\r\n this._$prevRootParents = $parents\r\n }\r\n },\r\n _stopCurrentHandling: _common.noop,\r\n _dispose: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n that._toggleParentsScrollSubscription(false);\r\n that._removeResizeHandler();\r\n that._layout.dispose();\r\n that._eventTrigger.dispose();\r\n that._disposeCore();\r\n that._disposePlugins();\r\n that._disposeRenderer();\r\n that._themeManager.dispose();\r\n that._themeManager = that._renderer = that._eventTrigger = null\r\n },\r\n _initEventTrigger: function() {\r\n var that = this;\r\n that._eventTrigger = (0, _base_widget.createEventTrigger)(that._eventsMap, function(name) {\r\n return that._createActionByOption(name)\r\n })\r\n },\r\n _calculateCanvas: function() {\r\n var that = this;\r\n var size = that.option(\"size\") || {};\r\n var margin = that.option(\"margin\") || {};\r\n var defaultCanvas = that._getDefaultSize() || {};\r\n var getSizeOfSide = function(size, side) {\r\n if (sizeIsValid(size[side]) || !(0, _window.hasWindow)()) {\r\n return 0\r\n }\r\n var elementSize = that._$element[side]();\r\n return elementSize <= 1 ? 0 : elementSize\r\n };\r\n var elementWidth = getSizeOfSide(size, \"width\");\r\n var elementHeight = getSizeOfSide(size, \"height\");\r\n var canvas = {\r\n width: size.width <= 0 ? 0 : _floor(pickPositiveValue([size.width, elementWidth, defaultCanvas.width])),\r\n height: size.height <= 0 ? 0 : _floor(pickPositiveValue([size.height, elementHeight, defaultCanvas.height])),\r\n left: pickPositiveValue([margin.left, defaultCanvas.left]),\r\n top: pickPositiveValue([margin.top, defaultCanvas.top]),\r\n right: pickPositiveValue([margin.right, defaultCanvas.right]),\r\n bottom: pickPositiveValue([margin.bottom, defaultCanvas.bottom])\r\n };\r\n if (canvas.width - canvas.left - canvas.right <= 0 || canvas.height - canvas.top - canvas.bottom <= 0) {\r\n canvas = {\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n return canvas\r\n },\r\n _updateSize: function() {\r\n var that = this;\r\n var canvas = that._calculateCanvas();\r\n that._renderer.fixPlacement();\r\n if (areCanvasesDifferent(that._canvas, canvas) || that.__forceRender) {\r\n that._canvas = canvas;\r\n that._recreateSizeDependentObjects(true);\r\n that._renderer.resize(canvas.width, canvas.height);\r\n that._change([\"LAYOUT\"])\r\n }\r\n },\r\n _recreateSizeDependentObjects: _common.noop,\r\n _getMinSize: function() {\r\n return [0, 0]\r\n },\r\n _getAlignmentRect: _common.noop,\r\n _setContentSize: function() {\r\n var canvas = this._canvas;\r\n var layout = this._layout;\r\n var rect = canvas.width > 0 && canvas.height > 0 ? [canvas.left, canvas.top, canvas.width - canvas.right, canvas.height - canvas.bottom] : [0, 0, 0, 0];\r\n rect = layout.forward(rect, this._getMinSize());\r\n var nextRect = this._applySize(rect) || rect;\r\n layout.backward(nextRect, this._getAlignmentRect() || nextRect)\r\n },\r\n _getOption: function(name, isScalar) {\r\n var theme = this._themeManager.theme(name);\r\n var option = this.option(name);\r\n return isScalar ? void 0 !== option ? option : theme : (0, _extend.extend)(true, {}, theme, option)\r\n },\r\n _setupResizeHandler: function() {\r\n var that = this;\r\n var redrawOnResize = (0, _utils.parseScalar)(this._getOption(\"redrawOnResize\", true), true);\r\n if (that._resizeHandler) {\r\n that._removeResizeHandler()\r\n }\r\n that._resizeHandler = (0, _base_widget.createResizeHandler)(function() {\r\n if (redrawOnResize) {\r\n that._requestChange([\"CONTAINER_SIZE\"])\r\n } else {\r\n that._renderer.fixPlacement()\r\n }\r\n });\r\n _resize_callbacks.default.add(that._resizeHandler)\r\n },\r\n _removeResizeHandler: function() {\r\n if (this._resizeHandler) {\r\n _resize_callbacks.default.remove(this._resizeHandler);\r\n this._resizeHandler.dispose();\r\n this._resizeHandler = null\r\n }\r\n },\r\n _onBeginUpdate: _common.noop,\r\n beginUpdate: function() {\r\n var that = this;\r\n if (that._initialized && that._isUpdateAllowed()) {\r\n that._onBeginUpdate();\r\n that._suspendChanges()\r\n }\r\n that.callBase.apply(that, arguments);\r\n return that\r\n },\r\n endUpdate: function() {\r\n this.callBase();\r\n this._isUpdateAllowed() && this._resumeChanges();\r\n return this\r\n },\r\n option: function(name) {\r\n var that = this;\r\n if (that._initialized && that._applyingChanges && (arguments.length > 1 || (0, _type.isObject)(name))) {\r\n that._optionsQueue = that._optionsQueue || [];\r\n that._optionsQueue.push(that._getActionForUpdating(arguments))\r\n } else {\r\n return _option.apply(that, arguments)\r\n }\r\n },\r\n _getActionForUpdating: function(args) {\r\n var that = this;\r\n return function() {\r\n _option.apply(that, args)\r\n }\r\n },\r\n _clean: _common.noop,\r\n _render: _common.noop,\r\n _optionChanged: function(arg) {\r\n var that = this;\r\n if (that._optionChangedLocker) {\r\n return\r\n }\r\n var partialChanges = that.getPartialChangeOptionsName(arg);\r\n var changes = [];\r\n if (partialChanges.length > 0) {\r\n partialChanges.forEach(function(pc) {\r\n return changes.push(that._partialOptionChangesMap[pc])\r\n })\r\n } else {\r\n changes.push(that._optionChangesMap[arg.name])\r\n }\r\n changes = changes.filter(function(c) {\r\n return !!c\r\n });\r\n if (that._eventTrigger.change(arg.name)) {\r\n that._change([\"EVENTS\"])\r\n } else {\r\n if (changes.length > 0) {\r\n that._change(changes)\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n }\r\n },\r\n _notify: _common.noop,\r\n _changesApplied: _common.noop,\r\n _optionChangesMap: {\r\n size: \"CONTAINER_SIZE\",\r\n margin: \"CONTAINER_SIZE\",\r\n redrawOnResize: \"RESIZE_HANDLER\",\r\n theme: \"THEME\",\r\n rtlEnabled: \"THEME\",\r\n encodeHtml: \"THEME\",\r\n elementAttr: \"ELEMENT_ATTR\",\r\n disabled: \"DISABLED\"\r\n },\r\n _partialOptionChangesMap: {},\r\n _partialOptionChangesPath: {},\r\n getPartialChangeOptionsName: function(changedOption) {\r\n var that = this;\r\n var fullName = changedOption.fullName;\r\n var sections = fullName.split(/[.]/);\r\n var name = changedOption.name;\r\n var value = changedOption.value;\r\n var options = this._partialOptionChangesPath[name];\r\n var partialChangeOptionsName = [];\r\n if (options) {\r\n if (true === options) {\r\n partialChangeOptionsName.push(name)\r\n } else {\r\n options.forEach(function(op) {\r\n fullName.indexOf(op) >= 0 && partialChangeOptionsName.push(op)\r\n });\r\n if (1 === sections.length) {\r\n if (\"object\" === (0, _type.type)(value)) {\r\n that._addOptionsNameForPartialUpdate(value, options, partialChangeOptionsName)\r\n } else {\r\n if (\"array\" === (0, _type.type)(value)) {\r\n if (value.length > 0 && value.every(function(item) {\r\n return that._checkOptionsForPartialUpdate(item, options)\r\n })) {\r\n value.forEach(function(item) {\r\n return that._addOptionsNameForPartialUpdate(item, options, partialChangeOptionsName)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return partialChangeOptionsName.filter(function(value, index, self) {\r\n return self.indexOf(value) === index\r\n })\r\n },\r\n _checkOptionsForPartialUpdate: function(optionObject, options) {\r\n return !Object.keys(optionObject).some(function(key) {\r\n return options.indexOf(key) === -1\r\n })\r\n },\r\n _addOptionsNameForPartialUpdate: function(optionObject, options, partialChangeOptionsName) {\r\n var optionKeys = Object.keys(optionObject);\r\n if (this._checkOptionsForPartialUpdate(optionObject, options)) {\r\n optionKeys.forEach(function(key) {\r\n return options.indexOf(key) > -1 && partialChangeOptionsName.push(key)\r\n })\r\n }\r\n },\r\n _visibilityChanged: function() {\r\n this.render()\r\n },\r\n _setThemeAndRtl: function() {\r\n this._themeManager.setTheme(this.option(\"theme\"), this.option(OPTION_RTL_ENABLED))\r\n },\r\n _getRendererOptions: function() {\r\n return {\r\n rtl: this.option(OPTION_RTL_ENABLED),\r\n encodeHtml: this.option(\"encodeHtml\"),\r\n animation: this._getAnimationOptions()\r\n }\r\n },\r\n _setRendererOptions: function() {\r\n this._renderer.setOptions(this._getRendererOptions())\r\n },\r\n svg: function() {\r\n return this._renderer.svg()\r\n },\r\n getSize: function() {\r\n var canvas = this._canvas || {};\r\n return {\r\n width: canvas.width,\r\n height: canvas.height\r\n }\r\n },\r\n isReady: getFalse,\r\n _dataIsReady: getTrue,\r\n _resetIsReady: function() {\r\n this.isReady = getFalse\r\n },\r\n _drawn: function() {\r\n var that = this;\r\n that.isReady = getFalse;\r\n if (that._dataIsReady()) {\r\n that._renderer.onEndAnimation(function() {\r\n that.isReady = getTrue\r\n })\r\n }\r\n that._eventTrigger(\"drawn\", {})\r\n }\r\n});\r\nvar _default = baseWidget;\r\nexports.default = _default;\r\n(0, _helpers.replaceInherit)(baseWidget);\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/core/export.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 = exports.ExportMenu = exports.combineMarkups = exports.exportWidgets = exports.getMarkup = exports.exportFromMarkup = void 0;\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _utils = require(\"./utils\");\r\nvar _exporter = require(\"../../exporter\");\r\nvar _message = _interopRequireDefault(require(\"../../localization/message\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _themes = require(\"../themes\");\r\nvar _hover = require(\"../../events/hover\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _console = require(\"../../core/utils/console\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar pointerActions = [_pointer.default.down, _pointer.default.move].join(\" \");\r\nvar BUTTON_SIZE = 35;\r\nvar ICON_COORDS = [\r\n [9, 12, 26, 12, 26, 14, 9, 14],\r\n [9, 17, 26, 17, 26, 19, 9, 19],\r\n [9, 22, 26, 22, 26, 24, 9, 24]\r\n];\r\nvar LIST_PADDING_TOP = 4;\r\nvar LIST_WIDTH = 120;\r\nvar VERTICAL_TEXT_MARGIN = 8;\r\nvar HORIZONTAL_TEXT_MARGIN = 15;\r\nvar MENU_ITEM_HEIGHT = 30;\r\nvar LIST_STROKE_WIDTH = 1;\r\nvar MARGIN = 10;\r\nvar SHADOW_OFFSET = 2;\r\nvar SHADOW_BLUR = 3;\r\nvar DEFAULT_EXPORT_FORMAT = \"PNG\";\r\nvar ALLOWED_IMAGE_FORMATS = [DEFAULT_EXPORT_FORMAT, \"JPEG\", \"GIF\"];\r\nvar ALLOWED_EXTRA_FORMATS = [\"PDF\", \"SVG\"];\r\nvar EXPORT_CSS_CLASS = \"dx-export-menu\";\r\nvar EXPORT_DATA_KEY = \"export-element-type\";\r\nvar FORMAT_DATA_KEY = \"export-element-format\";\r\nvar GET_COLOR_REGEX = /data-backgroundcolor=\"([^\"]*)\"/;\r\n\r\nfunction getValidFormats() {\r\n var imageFormats = _exporter.image.testFormats(ALLOWED_IMAGE_FORMATS);\r\n return {\r\n unsupported: imageFormats.unsupported,\r\n supported: imageFormats.supported.concat(ALLOWED_EXTRA_FORMATS)\r\n }\r\n}\r\n\r\nfunction validateFormat(format, incidentOccurred, validFormats) {\r\n validFormats = validFormats || getValidFormats();\r\n format = String(format).toUpperCase();\r\n if (validFormats.supported.indexOf(format) !== -1) {\r\n return format\r\n }\r\n if (validFormats.unsupported.indexOf(format) !== -1) {\r\n incidentOccurred && incidentOccurred(\"W2108\", [format])\r\n }\r\n}\r\n\r\nfunction getCreatorFunc(format) {\r\n if (\"SVG\" === format) {\r\n return _exporter.svg.getData\r\n } else {\r\n if (\"PDF\" === format) {\r\n return _exporter.pdf.getData\r\n } else {\r\n return _exporter.image.getData\r\n }\r\n }\r\n}\r\n\r\nfunction _print(imageSrc, options) {\r\n var document = (0, _window.getWindow)().document;\r\n var iFrame = document.createElement(\"iframe\");\r\n iFrame.onload = setPrint(imageSrc, options);\r\n iFrame.style.position = \"fixed\";\r\n iFrame.style.width = \"0\";\r\n iFrame.style.height = \"0\";\r\n iFrame.style.right = \"0\";\r\n iFrame.style.bottom = \"0\";\r\n document.body.appendChild(iFrame)\r\n}\r\n\r\nfunction setPrint(imageSrc, options) {\r\n return function() {\r\n var _this = this;\r\n var window = this.contentWindow;\r\n var img = window.document.createElement(\"img\");\r\n window.document.body.appendChild(img);\r\n var removeFrame = function() {\r\n _this.parentElement.removeChild(_this)\r\n };\r\n img.addEventListener(\"load\", function() {\r\n window.focus();\r\n window.print()\r\n });\r\n img.addEventListener(\"error\", removeFrame);\r\n window.addEventListener(\"afterprint\", function() {\r\n setTimeout(removeFrame, 0)\r\n });\r\n img.src = imageSrc\r\n }\r\n}\r\n\r\nfunction getItemAttributes(options, type, itemIndex) {\r\n var x = BUTTON_SIZE - LIST_WIDTH;\r\n var y = BUTTON_SIZE + LIST_PADDING_TOP + LIST_STROKE_WIDTH + itemIndex * MENU_ITEM_HEIGHT;\r\n var attr = {\r\n rect: {\r\n width: LIST_WIDTH - 2 * LIST_STROKE_WIDTH,\r\n height: MENU_ITEM_HEIGHT,\r\n x: x + LIST_STROKE_WIDTH,\r\n y: y\r\n },\r\n text: {\r\n x: x + (options.rtl ? LIST_WIDTH - HORIZONTAL_TEXT_MARGIN : HORIZONTAL_TEXT_MARGIN),\r\n y: y + MENU_ITEM_HEIGHT - VERTICAL_TEXT_MARGIN\r\n }\r\n };\r\n if (\"printing\" === type) {\r\n attr.separator = {\r\n stroke: options.button.default.borderColor,\r\n \"stroke-width\": LIST_STROKE_WIDTH,\r\n cursor: \"pointer\",\r\n sharp: \"v\",\r\n d: \"M \" + x + \" \" + (y + MENU_ITEM_HEIGHT - LIST_STROKE_WIDTH) + \" L \" + (x + LIST_WIDTH) + \" \" + (y + MENU_ITEM_HEIGHT - LIST_STROKE_WIDTH)\r\n }\r\n }\r\n return attr\r\n}\r\n\r\nfunction createMenuItem(renderer, options, settings) {\r\n var itemData = {};\r\n var type = settings.type;\r\n var format = settings.format;\r\n var attr = getItemAttributes(options, type, settings.itemIndex);\r\n var fontStyle = (0, _utils.patchFontOptions)(options.font);\r\n fontStyle[\"pointer-events\"] = \"none\";\r\n var menuItem = renderer.g().attr({\r\n \"class\": EXPORT_CSS_CLASS + \"-list-item\"\r\n });\r\n itemData[EXPORT_DATA_KEY] = type;\r\n if (format) {\r\n itemData[FORMAT_DATA_KEY] = format\r\n }\r\n var rect = renderer.rect();\r\n rect.attr(attr.rect).css({\r\n cursor: \"pointer\",\r\n \"pointer-events\": \"all\"\r\n }).data(itemData);\r\n rect.on(_hover.start + \".export\", function() {\r\n return rect.attr({\r\n fill: options.button.hover.backgroundColor\r\n })\r\n }).on(_hover.end + \".export\", function() {\r\n return rect.attr({\r\n fill: null\r\n })\r\n });\r\n rect.append(menuItem);\r\n var text = renderer.text(settings.text).css(fontStyle).attr(attr.text).append(menuItem);\r\n if (\"printing\" === type) {\r\n renderer.path(null, \"line\").attr(attr.separator).append(menuItem)\r\n }\r\n return {\r\n g: menuItem,\r\n rect: rect,\r\n resetState: function() {\r\n return rect.attr({\r\n fill: null\r\n })\r\n },\r\n fixPosition: function() {\r\n var textBBox = text.getBBox();\r\n text.move(attr.text.x - textBBox.x - (options.rtl ? textBBox.width : 0))\r\n }\r\n }\r\n}\r\n\r\nfunction createMenuItems(renderer, options) {\r\n var items = [];\r\n if (options.printingEnabled) {\r\n items.push(createMenuItem(renderer, options, {\r\n type: \"printing\",\r\n text: _message.default.format(\"vizExport-printingButtonText\"),\r\n itemIndex: items.length\r\n }))\r\n }\r\n items = options.formats.reduce(function(r, format) {\r\n r.push(createMenuItem(renderer, options, {\r\n type: \"exporting\",\r\n text: _message.default.getFormatter(\"vizExport-exportButtonText\")(format),\r\n format: format,\r\n itemIndex: r.length\r\n }));\r\n return r\r\n }, items);\r\n return items\r\n}\r\n\r\nfunction getBackgroundColorFromMarkup(markup) {\r\n var parsedMarkup = GET_COLOR_REGEX.exec(markup);\r\n return null === parsedMarkup || void 0 === parsedMarkup ? void 0 : parsedMarkup[1]\r\n}\r\nvar exportFromMarkup = function(markup, options) {\r\n options.format = validateFormat(options.format) || DEFAULT_EXPORT_FORMAT;\r\n options.fileName = options.fileName || \"file\";\r\n options.exportingAction = options.onExporting;\r\n options.exportedAction = options.onExported;\r\n options.fileSavingAction = options.onFileSaving;\r\n options.margin = (0, _type.isDefined)(options.margin) ? options.margin : MARGIN;\r\n options.backgroundColor = (0, _type.isDefined)(options.backgroundColor) ? options.backgroundColor : getBackgroundColorFromMarkup(markup) || (0, _themes.getTheme)().backgroundColor;\r\n (0, _exporter.export)(markup, options, getCreatorFunc(options.format))\r\n};\r\nexports.exportFromMarkup = exportFromMarkup;\r\nvar getMarkup = function(widgets) {\r\n return combineMarkups(widgets).markup\r\n};\r\nexports.getMarkup = getMarkup;\r\nvar exportWidgets = function(widgets, options) {\r\n options = options || {};\r\n var markupInfo = combineMarkups(widgets, {\r\n gridLayout: options.gridLayout,\r\n verticalAlignment: options.verticalAlignment,\r\n horizontalAlignment: options.horizontalAlignment\r\n });\r\n options.width = markupInfo.width;\r\n options.height = markupInfo.height;\r\n exportFromMarkup(markupInfo.markup, options)\r\n};\r\nexports.exportWidgets = exportWidgets;\r\nvar combineMarkups = function(widgets) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n if (!Array.isArray(widgets)) {\r\n widgets = [\r\n [widgets]\r\n ]\r\n } else {\r\n if (!Array.isArray(widgets[0])) {\r\n widgets = widgets.map(function(item) {\r\n return [item]\r\n })\r\n }\r\n }\r\n var compactView = !options.gridLayout;\r\n var exportItems = widgets.reduce(function(r, row, rowIndex) {\r\n var rowInfo = row.reduce(function(r, item, colIndex) {\r\n var size = item.getSize();\r\n var backgroundColor = item.option(\"backgroundColor\") || (0, _themes.getTheme)(item.option(\"theme\")).backgroundColor;\r\n backgroundColor && r.backgroundColors.indexOf(backgroundColor) === -1 && r.backgroundColors.push(backgroundColor);\r\n r.hOffset = r.width;\r\n r.width += size.width;\r\n r.height = Math.max(r.height, size.height);\r\n r.itemWidth = Math.max(r.itemWidth, size.width);\r\n r.items.push({\r\n markup: item.svg(),\r\n width: size.width,\r\n height: size.height,\r\n c: colIndex,\r\n r: rowIndex,\r\n hOffset: r.hOffset\r\n });\r\n return r\r\n }, {\r\n items: [],\r\n height: 0,\r\n itemWidth: 0,\r\n hOffset: 0,\r\n width: 0,\r\n backgroundColors: r.backgroundColors\r\n });\r\n r.rowOffsets.push(r.totalHeight);\r\n r.rowHeights.push(rowInfo.height);\r\n r.totalHeight += rowInfo.height;\r\n r.items = r.items.concat(rowInfo.items);\r\n r.itemWidth = Math.max(r.itemWidth, rowInfo.itemWidth);\r\n r.maxItemLen = Math.max(r.maxItemLen, rowInfo.items.length);\r\n r.totalWidth = compactView ? Math.max(r.totalWidth, rowInfo.width) : r.maxItemLen * r.itemWidth;\r\n return r\r\n }, {\r\n items: [],\r\n rowOffsets: [],\r\n rowHeights: [],\r\n itemWidth: 0,\r\n totalHeight: 0,\r\n maxItemLen: 0,\r\n totalWidth: 0,\r\n backgroundColors: []\r\n });\r\n var backgroundColor = 'data-backgroundcolor=\"'.concat(1 === exportItems.backgroundColors.length ? exportItems.backgroundColors[0] : \"\", '\" ');\r\n var getVOffset = function(item) {\r\n var align = options.verticalAlignment;\r\n var dy = exportItems.rowHeights[item.r] - item.height;\r\n return exportItems.rowOffsets[item.r] + (\"bottom\" === align ? dy : \"center\" === align ? dy / 2 : 0)\r\n };\r\n var getHOffset = function(item) {\r\n if (compactView) {\r\n return item.hOffset\r\n }\r\n var align = options.horizontalAlignment;\r\n var colWidth = exportItems.itemWidth;\r\n var dx = colWidth - item.width;\r\n return item.c * colWidth + (\"right\" === align ? dx : \"center\" === align ? dx / 2 : 0)\r\n };\r\n var totalHeight = exportItems.totalHeight;\r\n var totalWidth = exportItems.totalWidth;\r\n return {\r\n markup: \"' + exportItems.items.map(function(item) {\r\n return '').concat(item.markup, \"\")\r\n }).join(\"\") + \"\",\r\n width: totalWidth,\r\n height: totalHeight\r\n }\r\n};\r\nexports.combineMarkups = combineMarkups;\r\nvar ExportMenu = function(params) {\r\n var renderer = this._renderer = params.renderer;\r\n this._incidentOccurred = params.incidentOccurred;\r\n this._exportTo = params.exportTo;\r\n this._print = params.print;\r\n this._shadow = renderer.shadowFilter(\"-50%\", \"-50%\", \"200%\", \"200%\", SHADOW_OFFSET, 6, SHADOW_BLUR);\r\n this._shadow.attr({\r\n opacity: .8\r\n });\r\n this._group = renderer.g().attr({\r\n \"class\": EXPORT_CSS_CLASS,\r\n \"hidden-for-export\": true\r\n }).linkOn(renderer.root, {\r\n name: \"export-menu\",\r\n after: \"peripheral\"\r\n });\r\n this._buttonGroup = renderer.g().attr({\r\n \"class\": EXPORT_CSS_CLASS + \"-button\"\r\n }).append(this._group);\r\n this._listGroup = renderer.g().attr({\r\n \"class\": EXPORT_CSS_CLASS + \"-list\"\r\n }).append(this._group);\r\n this._overlay = renderer.rect(-LIST_WIDTH + BUTTON_SIZE, BUTTON_SIZE + LIST_PADDING_TOP, LIST_WIDTH, 0);\r\n this._overlay.attr({\r\n \"stroke-width\": LIST_STROKE_WIDTH,\r\n cursor: \"pointer\",\r\n rx: 4,\r\n ry: 4,\r\n filter: this._shadow.id\r\n });\r\n this._overlay.data({\r\n \"export-element-type\": \"list\"\r\n });\r\n this.validFormats = getValidFormats();\r\n this._subscribeEvents()\r\n};\r\nexports.ExportMenu = ExportMenu;\r\n(0, _extend.extend)(ExportMenu.prototype, {\r\n getLayoutOptions: function() {\r\n if (this._hiddenDueToLayout) {\r\n return {\r\n width: 0,\r\n height: 0,\r\n cutSide: \"vertical\",\r\n cutLayoutSide: \"top\"\r\n }\r\n }\r\n var bBox = this._buttonGroup.getBBox();\r\n bBox.cutSide = \"vertical\";\r\n bBox.cutLayoutSide = \"top\";\r\n bBox.height += MARGIN;\r\n bBox.position = {\r\n vertical: \"top\",\r\n horizontal: \"right\"\r\n };\r\n bBox.verticalAlignment = \"top\";\r\n bBox.horizontalAlignment = \"right\";\r\n return bBox\r\n },\r\n shift: function(_, y) {\r\n this._group.attr({\r\n translateY: this._group.attr(\"translateY\") + y\r\n })\r\n },\r\n draw: function(width, height, canvas) {\r\n this._group.move(width - BUTTON_SIZE - SHADOW_OFFSET - SHADOW_BLUR + canvas.left, Math.floor(height / 2 - BUTTON_SIZE / 2));\r\n var layoutOptions = this.getLayoutOptions();\r\n if (layoutOptions.width > width || layoutOptions.height > height) {\r\n this.freeSpace()\r\n }\r\n return this\r\n },\r\n show: function() {\r\n this._group.linkAppend()\r\n },\r\n hide: function() {\r\n this._group.linkRemove()\r\n },\r\n setOptions: function(options) {\r\n var _this2 = this;\r\n this._options = options;\r\n if (options.formats) {\r\n options.formats = options.formats.reduce(function(r, format) {\r\n format = validateFormat(format, _this2._incidentOccurred, _this2.validFormats);\r\n format && r.push(format);\r\n return r\r\n }, [])\r\n } else {\r\n options.formats = this.validFormats.supported.slice()\r\n }\r\n options.printingEnabled = void 0 === options.printingEnabled ? true : options.printingEnabled;\r\n if (options.enabled && (options.formats.length || options.printingEnabled)) {\r\n this.show();\r\n this._updateButton();\r\n this._updateList();\r\n this._hideList()\r\n } else {\r\n this.hide()\r\n }\r\n },\r\n dispose: function() {\r\n this._unsubscribeEvents();\r\n this._group.linkRemove().linkOff();\r\n this._group.dispose();\r\n this._shadow.dispose()\r\n },\r\n layoutOptions: function() {\r\n return this._options.enabled && {\r\n horizontalAlignment: \"right\",\r\n verticalAlignment: \"top\",\r\n weak: true\r\n }\r\n },\r\n measure: function() {\r\n this._fillSpace();\r\n var margin = this._options.button.margin;\r\n return [BUTTON_SIZE + margin.left + margin.right, BUTTON_SIZE + margin.top + margin.bottom]\r\n },\r\n move: function(rect) {\r\n var margin = this._options.button.margin;\r\n this._group.attr({\r\n translateX: Math.round(rect[0]) + margin.left,\r\n translateY: Math.round(rect[1]) + margin.top\r\n })\r\n },\r\n _fillSpace: function() {\r\n this._hiddenDueToLayout = false;\r\n this.show()\r\n },\r\n freeSpace: function() {\r\n this._incidentOccurred(\"W2107\");\r\n this._hiddenDueToLayout = true;\r\n this.hide()\r\n },\r\n _hideList: function() {\r\n this._listGroup.remove();\r\n this._listShown = false;\r\n this._setButtonState(\"default\");\r\n this._menuItems.forEach(function(item) {\r\n return item.resetState()\r\n })\r\n },\r\n _showList: function() {\r\n this._listGroup.append(this._group);\r\n this._listShown = true;\r\n this._menuItems.forEach(function(item) {\r\n return item.fixPosition()\r\n })\r\n },\r\n _setButtonState: function(state) {\r\n var style = this._options.button[state];\r\n this._button.attr({\r\n stroke: style.borderColor,\r\n fill: style.backgroundColor\r\n });\r\n this._icon.attr({\r\n fill: style.color\r\n })\r\n },\r\n _subscribeEvents: function() {\r\n var _this3 = this;\r\n this._renderer.root.on(_pointer.default.up + \".export\", function(e) {\r\n var elementType = e.target[EXPORT_DATA_KEY];\r\n if (!elementType) {\r\n if (_this3._button) {\r\n _this3._hideList()\r\n }\r\n return\r\n }\r\n if (\"button\" === elementType) {\r\n if (_this3._listShown) {\r\n _this3._setButtonState(\"default\");\r\n _this3._hideList()\r\n } else {\r\n _this3._setButtonState(\"focus\");\r\n _this3._showList()\r\n }\r\n } else {\r\n if (\"printing\" === elementType) {\r\n _this3._print();\r\n _this3._hideList()\r\n } else {\r\n if (\"exporting\" === elementType) {\r\n _this3._exportTo(e.target[FORMAT_DATA_KEY]);\r\n _this3._hideList()\r\n }\r\n }\r\n }\r\n });\r\n this._listGroup.on(pointerActions, function(e) {\r\n return e.stopPropagation()\r\n });\r\n this._buttonGroup.on(_pointer.default.enter, function() {\r\n return _this3._setButtonState(\"hover\")\r\n });\r\n this._buttonGroup.on(_pointer.default.leave, function() {\r\n return _this3._setButtonState(_this3._listShown ? \"focus\" : \"default\")\r\n });\r\n this._buttonGroup.on(_pointer.default.down + \".export\", function() {\r\n return _this3._setButtonState(\"active\")\r\n })\r\n },\r\n _unsubscribeEvents: function() {\r\n this._renderer.root.off(\".export\");\r\n this._listGroup.off();\r\n this._buttonGroup.off()\r\n },\r\n _updateButton: function() {\r\n var renderer = this._renderer;\r\n var options = this._options;\r\n var exportData = {\r\n \"export-element-type\": \"button\"\r\n };\r\n if (!this._button) {\r\n this._button = renderer.rect(0, 0, BUTTON_SIZE, BUTTON_SIZE).append(this._buttonGroup);\r\n this._button.attr({\r\n rx: 4,\r\n ry: 4,\r\n fill: options.button.default.backgroundColor,\r\n stroke: options.button.default.borderColor,\r\n \"stroke-width\": 1,\r\n cursor: \"pointer\"\r\n });\r\n this._button.data(exportData);\r\n this._icon = renderer.path(ICON_COORDS).append(this._buttonGroup);\r\n this._icon.attr({\r\n fill: options.button.default.color,\r\n cursor: \"pointer\"\r\n });\r\n this._icon.data(exportData);\r\n this._buttonGroup.setTitle(_message.default.format(\"vizExport-titleMenuText\"))\r\n }\r\n },\r\n _updateList: function() {\r\n var options = this._options;\r\n var buttonDefault = options.button.default;\r\n var listGroup = this._listGroup;\r\n var items = createMenuItems(this._renderer, options);\r\n this._shadow.attr({\r\n color: options.shadowColor\r\n });\r\n this._overlay.attr({\r\n height: items.length * MENU_ITEM_HEIGHT + 2 * LIST_STROKE_WIDTH,\r\n fill: buttonDefault.backgroundColor,\r\n stroke: buttonDefault.borderColor\r\n });\r\n listGroup.clear();\r\n this._overlay.append(listGroup);\r\n items.forEach(function(item) {\r\n return item.g.append(listGroup)\r\n });\r\n this._menuItems = items\r\n }\r\n});\r\n\r\nfunction getExportOptions(widget, exportOptions, fileName, format) {\r\n if (format || exportOptions.format) {\r\n format = validateFormat(format || exportOptions.format, widget._incidentOccurred)\r\n }\r\n return {\r\n format: format || DEFAULT_EXPORT_FORMAT,\r\n fileName: fileName || exportOptions.fileName || \"file\",\r\n proxyUrl: exportOptions.proxyUrl,\r\n backgroundColor: exportOptions.backgroundColor,\r\n width: widget._canvas.width,\r\n height: widget._canvas.height,\r\n margin: exportOptions.margin,\r\n svgToCanvas: exportOptions.svgToCanvas,\r\n forceProxy: exportOptions.forceProxy,\r\n exportingAction: widget._createActionByOption(\"onExporting\"),\r\n exportedAction: widget._createActionByOption(\"onExported\"),\r\n fileSavingAction: widget._createActionByOption(\"onFileSaving\")\r\n }\r\n}\r\nvar plugin = {\r\n name: \"export\",\r\n init: function() {\r\n var _this4 = this;\r\n this._exportMenu = new ExportMenu({\r\n renderer: this._renderer,\r\n incidentOccurred: this._incidentOccurred,\r\n print: function() {\r\n return _this4.print()\r\n },\r\n exportTo: function(format) {\r\n return _this4.exportTo(void 0, format)\r\n }\r\n });\r\n this._layout.add(this._exportMenu)\r\n },\r\n dispose: function() {\r\n this._exportMenu.dispose()\r\n },\r\n members: {\r\n _getExportMenuOptions: function() {\r\n return (0, _extend.extend)({}, this._getOption(\"export\"), {\r\n rtl: this._getOption(\"rtlEnabled\", true)\r\n })\r\n },\r\n _disablePointerEvents: function() {\r\n var pointerEventsValue = this._renderer.root.attr(\"pointer-events\");\r\n this._renderer.root.attr({\r\n \"pointer-events\": \"none\"\r\n });\r\n return pointerEventsValue\r\n },\r\n exportTo: function(fileName, format) {\r\n var _this5 = this;\r\n var menu = this._exportMenu;\r\n var options = getExportOptions(this, this._getOption(\"export\") || {}, fileName, format);\r\n menu && menu.hide();\r\n var pointerEventsValue = this._disablePointerEvents();\r\n var promise = (0, _exporter.export)(this._renderer.root.element, options, getCreatorFunc(options.format)).fail(_console.logger.error).always(function() {\r\n _this5._renderer.root.attr({\r\n \"pointer-events\": pointerEventsValue\r\n })\r\n });\r\n menu && menu.show();\r\n return promise\r\n },\r\n print: function() {\r\n var _this6 = this;\r\n var menu = this._exportMenu;\r\n var options = getExportOptions(this, this._getOption(\"export\") || {});\r\n options.exportingAction = null;\r\n options.exportedAction = null;\r\n options.margin = 0;\r\n options.format = \"PNG\";\r\n options.forceProxy = true;\r\n options.fileSavingAction = function(eventArgs) {\r\n _print(\"data:image/png;base64,\".concat(eventArgs.data), {\r\n __test: options.__test\r\n });\r\n eventArgs.cancel = true\r\n };\r\n var pointerEventsValue = this._disablePointerEvents();\r\n menu && menu.hide();\r\n var promise = (0, _exporter.export)(this._renderer.root.element, options, getCreatorFunc(options.format)).fail(_console.logger.error).always(function() {\r\n _this6._renderer.root.attr({\r\n \"pointer-events\": pointerEventsValue\r\n })\r\n });\r\n menu && menu.show();\r\n return promise\r\n }\r\n },\r\n customize: function(constructor) {\r\n var proto = constructor.prototype;\r\n constructor.addChange({\r\n code: \"EXPORT\",\r\n handler: function() {\r\n this._exportMenu.setOptions(this._getExportMenuOptions());\r\n this._change([\"LAYOUT\"])\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"export\"\r\n });\r\n proto._optionChangesMap.onExporting = \"EXPORT\";\r\n proto._optionChangesMap.onExported = \"EXPORT\";\r\n proto._optionChangesMap.onFileSaving = \"EXPORT\"\r\n },\r\n fontFields: [\"export.font\"]\r\n};\r\nexports.plugin = plugin;\r\n","/**\r\n * DevExtreme (viz/core/title.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 = exports.Title = void 0;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"./utils\");\r\nvar _layout_element = require(\"./layout_element\");\r\nvar _Number = Number;\r\nvar parseHorizontalAlignment = (0, _utils.enumParser)([\"left\", \"center\", \"right\"]);\r\nvar parseVerticalAlignment = (0, _utils.enumParser)([\"top\", \"bottom\"]);\r\nvar DEFAULT_MARGIN = 10;\r\n\r\nfunction hasText(text) {\r\n return !!(text && String(text).length > 0)\r\n}\r\n\r\nfunction processTitleLength(elem, text, width, options, placeholderSize) {\r\n if (elem.attr({\r\n text: text\r\n }).setMaxSize(width, placeholderSize, options).textChanged) {\r\n elem.setTitle(text)\r\n }\r\n}\r\n\r\nfunction pickMarginValue(value) {\r\n return value >= 0 ? _Number(value) : DEFAULT_MARGIN\r\n}\r\n\r\nfunction validateMargin(margin) {\r\n var result;\r\n if (margin >= 0) {\r\n result = {\r\n left: _Number(margin),\r\n top: _Number(margin),\r\n right: _Number(margin),\r\n bottom: _Number(margin)\r\n }\r\n } else {\r\n margin = margin || {};\r\n result = {\r\n left: pickMarginValue(margin.left),\r\n top: pickMarginValue(margin.top),\r\n right: pickMarginValue(margin.right),\r\n bottom: pickMarginValue(margin.bottom)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction checkRect(rect, boundingRect) {\r\n return rect[2] - rect[0] < boundingRect.width || rect[3] - rect[1] < boundingRect.height\r\n}\r\nvar Title = function(params) {\r\n this._params = params;\r\n this._group = params.renderer.g().attr({\r\n \"class\": params.cssClass\r\n }).linkOn(params.root || params.renderer.root, \"title\");\r\n this._hasText = false\r\n};\r\nexports.Title = Title;\r\n(0, _extend.extend)(Title.prototype, _layout_element.LayoutElement.prototype, {\r\n dispose: function() {\r\n var that = this;\r\n that._group.linkRemove();\r\n that._group.linkOff();\r\n if (that._titleElement) {\r\n that._clipRect.dispose();\r\n that._titleElement = that._subtitleElement = that._clipRect = null\r\n }\r\n that._params = that._group = that._options = null\r\n },\r\n _updateOptions: function(options) {\r\n this._options = options;\r\n this._options.horizontalAlignment = parseHorizontalAlignment(options.horizontalAlignment, \"center\");\r\n this._options.verticalAlignment = parseVerticalAlignment(options.verticalAlignment, \"top\");\r\n this._options.margin = validateMargin(options.margin)\r\n },\r\n _updateStructure: function() {\r\n var that = this;\r\n var renderer = that._params.renderer;\r\n var group = that._group;\r\n var options = that._options;\r\n var align = options.horizontalAlignment;\r\n if (!that._titleElement) {\r\n that._titleElement = renderer.text().append(group);\r\n that._subtitleElement = renderer.text();\r\n that._clipRect = renderer.clipRect();\r\n group.attr({\r\n \"clip-path\": that._clipRect.id\r\n })\r\n }\r\n that._titleElement.attr({\r\n align: align,\r\n \"class\": options.cssClass\r\n });\r\n that._subtitleElement.attr({\r\n align: align,\r\n \"class\": options.subtitle.cssClass\r\n });\r\n group.linkAppend();\r\n hasText(options.subtitle.text) ? that._subtitleElement.append(group) : that._subtitleElement.remove()\r\n },\r\n _updateTexts: function() {\r\n var that = this;\r\n var options = that._options;\r\n var subtitleOptions = options.subtitle;\r\n var titleElement = that._titleElement;\r\n var subtitleElement = that._subtitleElement;\r\n var testText = \"A\";\r\n var titleBox;\r\n titleElement.attr({\r\n text: testText,\r\n y: 0\r\n }).css((0, _utils.patchFontOptions)(options.font));\r\n titleBox = titleElement.getBBox();\r\n that._baseLineCorrection = titleBox.height + titleBox.y;\r\n titleElement.attr({\r\n text: options.text\r\n });\r\n titleBox = titleElement.getBBox();\r\n var y = -titleBox.y;\r\n titleElement.attr({\r\n y: y\r\n });\r\n if (hasText(subtitleOptions.text)) {\r\n subtitleElement.attr({\r\n text: subtitleOptions.text,\r\n y: 0\r\n }).css((0, _utils.patchFontOptions)(subtitleOptions.font))\r\n }\r\n },\r\n _shiftSubtitle: function() {\r\n var that = this;\r\n var titleBox = that._titleElement.getBBox();\r\n var element = that._subtitleElement;\r\n var offset = that._options.subtitle.offset;\r\n element.move(0, titleBox.y + titleBox.height - element.getBBox().y - offset)\r\n },\r\n _updateBoundingRectAlignment: function() {\r\n var boundingRect = this._boundingRect;\r\n var options = this._options;\r\n boundingRect.verticalAlignment = options.verticalAlignment;\r\n boundingRect.horizontalAlignment = options.horizontalAlignment;\r\n boundingRect.cutLayoutSide = options.verticalAlignment;\r\n boundingRect.cutSide = \"vertical\";\r\n boundingRect.position = {\r\n horizontal: options.horizontalAlignment,\r\n vertical: options.verticalAlignment\r\n }\r\n },\r\n hasText: function() {\r\n return this._hasText\r\n },\r\n update: function(themeOptions, userOptions) {\r\n var that = this;\r\n var options = (0, _extend.extend)(true, {}, themeOptions, processTitleOptions(userOptions));\r\n var _hasText = hasText(options.text);\r\n var isLayoutChanged = _hasText || _hasText !== that._hasText;\r\n that._baseLineCorrection = 0;\r\n that._updateOptions(options);\r\n that._boundingRect = {};\r\n if (_hasText) {\r\n that._updateStructure();\r\n that._updateTexts()\r\n } else {\r\n that._group.linkRemove()\r\n }\r\n that._updateBoundingRect();\r\n that._updateBoundingRectAlignment();\r\n that._hasText = _hasText;\r\n return isLayoutChanged\r\n },\r\n draw: function(width, height) {\r\n var that = this;\r\n if (that._hasText) {\r\n that._group.linkAppend();\r\n that._correctTitleLength(width);\r\n if (that._group.getBBox().height > height) {\r\n this.freeSpace()\r\n }\r\n }\r\n return that\r\n },\r\n _correctTitleLength: function(width) {\r\n var that = this;\r\n var options = that._options;\r\n var margin = options.margin;\r\n var maxWidth = width - margin.left - margin.right;\r\n var placeholderSize = options.placeholderSize;\r\n processTitleLength(that._titleElement, options.text, maxWidth, options, placeholderSize);\r\n if (that._subtitleElement) {\r\n if (_Number(placeholderSize) > 0) {\r\n placeholderSize -= that._titleElement.getBBox().height\r\n }\r\n processTitleLength(that._subtitleElement, options.subtitle.text, maxWidth, options.subtitle, placeholderSize);\r\n that._shiftSubtitle()\r\n }\r\n that._updateBoundingRect();\r\n var _this$getCorrectedLay = this.getCorrectedLayoutOptions(),\r\n x = _this$getCorrectedLay.x,\r\n y = _this$getCorrectedLay.y,\r\n height = _this$getCorrectedLay.height;\r\n this._clipRect.attr({\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n })\r\n },\r\n getLayoutOptions: function() {\r\n return this._boundingRect || null\r\n },\r\n shift: function(x, y) {\r\n var that = this;\r\n var box = that.getLayoutOptions();\r\n that._group.move(x - box.x, y - box.y);\r\n return that\r\n },\r\n _updateBoundingRect: function() {\r\n var that = this;\r\n var options = that._options;\r\n var margin = options.margin;\r\n var boundingRect = that._boundingRect;\r\n var box = that._hasText ? that._group.getBBox() : {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0,\r\n isEmpty: true\r\n };\r\n if (!box.isEmpty) {\r\n box.height += margin.top + margin.bottom - that._baseLineCorrection;\r\n box.width += margin.left + margin.right;\r\n box.x -= margin.left;\r\n box.y += that._baseLineCorrection - margin.top\r\n }\r\n if (options.placeholderSize > 0) {\r\n box.height = options.placeholderSize\r\n }\r\n boundingRect.height = box.height;\r\n boundingRect.width = box.width;\r\n boundingRect.x = box.x;\r\n boundingRect.y = box.y\r\n },\r\n getCorrectedLayoutOptions: function() {\r\n var srcBox = this.getLayoutOptions();\r\n var correction = this._baseLineCorrection;\r\n return (0, _extend.extend)({}, srcBox, {\r\n y: srcBox.y - correction,\r\n height: srcBox.height + correction\r\n })\r\n },\r\n layoutOptions: function() {\r\n if (!this._hasText) {\r\n return null\r\n }\r\n return {\r\n horizontalAlignment: this._boundingRect.horizontalAlignment,\r\n verticalAlignment: this._boundingRect.verticalAlignment,\r\n priority: 0\r\n }\r\n },\r\n measure: function(size) {\r\n this.draw(size[0], size[1]);\r\n return [this._boundingRect.width, this._boundingRect.height]\r\n },\r\n move: function(rect, fitRect) {\r\n var boundingRect = this._boundingRect;\r\n if (checkRect(rect, boundingRect)) {\r\n this.shift(fitRect[0], fitRect[1])\r\n } else {\r\n this.shift(Math.round(rect[0]), Math.round(rect[1]))\r\n }\r\n },\r\n freeSpace: function() {\r\n var that = this;\r\n that._params.incidentOccurred(\"W2103\");\r\n that._group.linkRemove();\r\n that._boundingRect.width = that._boundingRect.height = 0\r\n },\r\n getOptions: function() {\r\n return this._options\r\n },\r\n changeLink: function(root) {\r\n this._group.linkRemove();\r\n this._group.linkOn(root, \"title\")\r\n }\r\n});\r\n\r\nfunction processTitleOptions(options) {\r\n var newOptions = (0, _type.isString)(options) ? {\r\n text: options\r\n } : options || {};\r\n newOptions.subtitle = (0, _type.isString)(newOptions.subtitle) ? {\r\n text: newOptions.subtitle\r\n } : newOptions.subtitle || {};\r\n return newOptions\r\n}\r\nvar plugin = {\r\n name: \"title\",\r\n init: function() {\r\n var that = this;\r\n that._title = new Title({\r\n renderer: that._renderer,\r\n cssClass: that._rootClassPrefix + \"-title\",\r\n incidentOccurred: that._incidentOccurred\r\n });\r\n that._layout.add(that._title)\r\n },\r\n dispose: function() {\r\n this._title.dispose();\r\n this._title = null\r\n },\r\n customize: function(constructor) {\r\n constructor.addChange({\r\n code: \"TITLE\",\r\n handler: function() {\r\n if (this._title.update(this._themeManager.theme(\"title\"), this.option(\"title\"))) {\r\n this._change([\"LAYOUT\"])\r\n }\r\n },\r\n isThemeDependent: true,\r\n option: \"title\",\r\n isOptionChange: true\r\n })\r\n },\r\n fontFields: [\"title.font\", \"title.subtitle.font\"]\r\n};\r\nexports.plugin = plugin;\r\n","/**\r\n * DevExtreme (viz/core/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 = exports.Tooltip = void 0;\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _inflector = require(\"../../core/utils/inflector\");\r\nvar _renderer = _interopRequireDefault(require(\"../../core/renderer\"));\r\nvar _renderer2 = require(\"./renderers/renderer\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"./utils\");\r\nvar _format_helper = _interopRequireDefault(require(\"../../format_helper\"));\r\nvar _plaque = require(\"./plaque\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar format = _format_helper.default.format;\r\nvar mathCeil = Math.ceil;\r\nvar mathMax = Math.max;\r\nvar mathMin = Math.min;\r\nvar window = (0, _window.getWindow)();\r\nvar DEFAULT_HTML_GROUP_WIDTH = 3e3;\r\n\r\nfunction hideElement($element) {\r\n $element.css({\r\n left: \"-9999px\"\r\n }).detach()\r\n}\r\n\r\nfunction getSpecialFormatOptions(options, specialFormat) {\r\n var result = options;\r\n switch (specialFormat) {\r\n case \"argument\":\r\n result = {\r\n format: options.argumentFormat\r\n };\r\n break;\r\n case \"percent\":\r\n result = {\r\n format: {\r\n type: \"percent\",\r\n precision: options.format && options.format.percentPrecision\r\n }\r\n }\r\n }\r\n return result\r\n}\r\nvar Tooltip = function(params) {\r\n var that = this;\r\n var renderer;\r\n that._eventTrigger = params.eventTrigger;\r\n that._widgetRoot = params.widgetRoot;\r\n that._widget = params.widget;\r\n that._wrapper = (0, _renderer.default)(\"
\").css({\r\n position: \"absolute\",\r\n overflow: \"hidden\",\r\n pointerEvents: \"none\"\r\n }).addClass(params.cssClass);\r\n that._renderer = renderer = new _renderer2.Renderer({\r\n pathModified: params.pathModified,\r\n container: that._wrapper[0]\r\n });\r\n var root = renderer.root;\r\n root.attr({\r\n \"pointer-events\": \"none\"\r\n });\r\n that._text = renderer.text(void 0, 0, 0);\r\n that._textGroupHtml = (0, _renderer.default)(\"
\").css({\r\n position: \"absolute\",\r\n padding: 0,\r\n margin: 0,\r\n border: \"0px solid transparent\"\r\n }).appendTo(that._wrapper);\r\n that._textHtml = (0, _renderer.default)(\"
\").css({\r\n position: \"relative\",\r\n display: \"inline-block\",\r\n padding: 0,\r\n margin: 0,\r\n border: \"0px solid transparent\"\r\n }).appendTo(that._textGroupHtml)\r\n};\r\nexports.Tooltip = Tooltip;\r\nTooltip.prototype = {\r\n constructor: Tooltip,\r\n dispose: function() {\r\n this._wrapper.remove();\r\n this._renderer.dispose();\r\n this._options = this._widgetRoot = null\r\n },\r\n _getContainer: function() {\r\n var options = this._options;\r\n var container = (0, _renderer.default)(this._widgetRoot).closest(options.container);\r\n if (0 === container.length) {\r\n container = (0, _renderer.default)(options.container)\r\n }\r\n return (container.length ? container : (0, _renderer.default)(\"body\")).get(0)\r\n },\r\n setTemplate: function(contentTemplate) {\r\n var that = this;\r\n that._template = contentTemplate ? that._widget._getTemplate(contentTemplate) : null\r\n },\r\n setOptions: function(options) {\r\n var _this = this;\r\n options = options || {};\r\n var that = this;\r\n that._options = options;\r\n that._textFontStyles = (0, _utils.patchFontOptions)(options.font);\r\n that._textFontStyles.color = that._textFontStyles.fill;\r\n that._wrapper.css({\r\n zIndex: options.zIndex\r\n });\r\n that._customizeTooltip = options.customizeTooltip;\r\n var textGroupHtml = that._textGroupHtml;\r\n var textHtml = that._textHtml;\r\n if (this.plaque) {\r\n this.plaque.clear()\r\n }\r\n this.setTemplate(options.contentTemplate);\r\n var pointerEvents = options.interactive ? \"auto\" : \"none\";\r\n if (options.interactive) {\r\n this._renderer.root.css({\r\n \"-ms-user-select\": \"auto\",\r\n \"-moz-user-select\": \"auto\",\r\n \"-webkit-user-select\": \"auto\"\r\n })\r\n }\r\n var drawTooltip = function(_ref) {\r\n var group = _ref.group,\r\n onRender = _ref.onRender,\r\n eventData = _ref.eventData,\r\n isMoving = _ref.isMoving,\r\n _ref$templateCallback = _ref.templateCallback,\r\n templateCallback = void 0 === _ref$templateCallback ? function() {} : _ref$templateCallback;\r\n var state = that._state;\r\n if (!isMoving) {\r\n var template = that._template;\r\n var useTemplate = template && !state.formatObject.skipTemplate;\r\n if (state.html || useTemplate) {\r\n textGroupHtml.css({\r\n color: state.textColor,\r\n width: DEFAULT_HTML_GROUP_WIDTH,\r\n pointerEvents: pointerEvents\r\n });\r\n if (useTemplate) {\r\n template.render({\r\n model: state.formatObject,\r\n container: textHtml,\r\n onRendered: function() {\r\n state.html = textHtml.html();\r\n if (0 === textHtml.width() && 0 === textHtml.height()) {\r\n _this.plaque.clear();\r\n templateCallback(false);\r\n return\r\n }\r\n onRender();\r\n that._riseEvents(eventData);\r\n that._moveWrapper();\r\n that.plaque.customizeCloud({\r\n fill: state.color,\r\n stroke: state.borderColor,\r\n \"pointer-events\": pointerEvents\r\n });\r\n templateCallback(true)\r\n }\r\n });\r\n return\r\n } else {\r\n that._text.attr({\r\n text: \"\"\r\n });\r\n textHtml.html(state.html)\r\n }\r\n } else {\r\n that._text.css({\r\n fill: state.textColor\r\n }).attr({\r\n text: state.text,\r\n \"class\": options.cssClass,\r\n \"pointer-events\": pointerEvents\r\n }).append(group.attr({\r\n align: options.textAlignment\r\n }))\r\n }\r\n that._riseEvents(eventData);\r\n that.plaque.customizeCloud({\r\n fill: state.color,\r\n stroke: state.borderColor,\r\n \"pointer-events\": pointerEvents\r\n })\r\n }\r\n onRender();\r\n that._moveWrapper();\r\n return true\r\n };\r\n this.plaque = new _plaque.Plaque({\r\n opacity: that._options.opacity,\r\n color: that._options.color,\r\n border: that._options.border,\r\n paddingLeftRight: that._options.paddingLeftRight,\r\n paddingTopBottom: that._options.paddingTopBottom,\r\n arrowLength: that._options.arrowLength,\r\n arrowWidth: 20,\r\n shadow: that._options.shadow,\r\n cornerRadius: that._options.cornerRadius\r\n }, that, that._renderer.root, drawTooltip, true, function(tooltip, g) {\r\n var state = tooltip._state;\r\n if (state.html) {\r\n var bBox;\r\n var getComputedStyle = window.getComputedStyle;\r\n if (getComputedStyle) {\r\n bBox = getComputedStyle(textHtml.get(0));\r\n bBox = {\r\n x: 0,\r\n y: 0,\r\n width: mathCeil(parseFloat(bBox.width)),\r\n height: mathCeil(parseFloat(bBox.height))\r\n }\r\n } else {\r\n bBox = textHtml.get(0).getBoundingClientRect();\r\n bBox = {\r\n x: 0,\r\n y: 0,\r\n width: mathCeil(bBox.width ? bBox.width : bBox.right - bBox.left),\r\n height: mathCeil(bBox.height ? bBox.height : bBox.bottom - bBox.top)\r\n }\r\n }\r\n return bBox\r\n }\r\n return g.getBBox()\r\n }, function(tooltip, g, x, y) {\r\n var state = tooltip._state;\r\n if (state.html) {\r\n that._textGroupHtml.css({\r\n left: x,\r\n top: y\r\n })\r\n } else {\r\n g.move(x, y)\r\n }\r\n });\r\n return that\r\n },\r\n _riseEvents: function(eventData) {\r\n var that = this;\r\n that._eventData && that._eventTrigger(\"tooltipHidden\", that._eventData);\r\n that._eventData = eventData;\r\n that._eventTrigger(\"tooltipShown\", that._eventData)\r\n },\r\n setRendererOptions: function(options) {\r\n this._renderer.setOptions(options);\r\n this._textGroupHtml.css({\r\n direction: options.rtl ? \"rtl\" : \"ltr\"\r\n });\r\n return this\r\n },\r\n update: function(options) {\r\n var that = this;\r\n that.setOptions(options);\r\n hideElement(that._wrapper);\r\n var normalizedCSS = {};\r\n for (var name in that._textFontStyles) {\r\n normalizedCSS[(0, _inflector.camelize)(name)] = that._textFontStyles[name]\r\n }\r\n that._textGroupHtml.css(normalizedCSS);\r\n that._text.css(that._textFontStyles);\r\n that._eventData = null;\r\n return that\r\n },\r\n _prepare: function(formatObject, state) {\r\n var customizeTooltip = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this._customizeTooltip;\r\n var options = this._options;\r\n var customize = {};\r\n if ((0, _type.isFunction)(customizeTooltip)) {\r\n customize = customizeTooltip.call(formatObject, formatObject);\r\n customize = (0, _type.isPlainObject)(customize) ? customize : {};\r\n if (\"text\" in customize) {\r\n state.text = (0, _type.isDefined)(customize.text) ? String(customize.text) : \"\"\r\n }\r\n if (\"html\" in customize) {\r\n state.html = (0, _type.isDefined)(customize.html) ? String(customize.html) : \"\"\r\n }\r\n }\r\n if (!(\"text\" in state) && !(\"html\" in state)) {\r\n state.text = formatObject.valueText || formatObject.description || \"\"\r\n }\r\n state.color = customize.color || options.color;\r\n state.borderColor = customize.borderColor || (options.border || {}).color;\r\n state.textColor = customize.fontColor || (this._textFontStyles || {}).color;\r\n return !!state.text || !!state.html || !!this._template\r\n },\r\n show: function(formatObject, params, eventData, customizeTooltip, templateCallback) {\r\n var that = this;\r\n if (that._options.forceEvents) {\r\n eventData.x = params.x;\r\n eventData.y = params.y - params.offset;\r\n that._riseEvents(eventData);\r\n return true\r\n }\r\n var state = {\r\n formatObject: formatObject,\r\n eventData: eventData,\r\n templateCallback: templateCallback\r\n };\r\n if (!that._prepare(formatObject, state, customizeTooltip)) {\r\n return false\r\n }\r\n that._state = state;\r\n that._wrapper.appendTo(that._getContainer());\r\n that._clear();\r\n var parameters = (0, _extend.extend)({}, that._options, {\r\n canvas: that._getCanvas()\r\n }, state, {\r\n x: params.x,\r\n y: params.y,\r\n offset: params.offset\r\n });\r\n return this.plaque.clear().draw(parameters)\r\n },\r\n isCursorOnTooltip: function(x, y) {\r\n if (this._options.interactive && this.isEnabled()) {\r\n var box = this.plaque.getBBox();\r\n return x > box.x && x < box.x + box.width && y > box.y && y < box.y + box.height\r\n }\r\n return false\r\n },\r\n hide: function() {\r\n var that = this;\r\n hideElement(that._wrapper);\r\n if (that._eventData) {\r\n that._eventTrigger(\"tooltipHidden\", that._eventData);\r\n that._clear();\r\n that._eventData = null\r\n }\r\n },\r\n _clear: function() {\r\n this._textHtml.empty()\r\n },\r\n move: function(x, y, offset) {\r\n this.plaque.draw({\r\n x: x,\r\n y: y,\r\n offset: offset,\r\n canvas: this._getCanvas(),\r\n isMoving: true\r\n })\r\n },\r\n _moveWrapper: function() {\r\n var that = this;\r\n var plaqueBBox = this.plaque.getBBox();\r\n that._renderer.resize(plaqueBBox.width, plaqueBBox.height);\r\n var offset = that._wrapper.css({\r\n left: 0,\r\n top: 0\r\n }).offset();\r\n var left = plaqueBBox.x;\r\n var top = plaqueBBox.y;\r\n that._wrapper.css({\r\n left: left - offset.left,\r\n top: top - offset.top\r\n });\r\n this.plaque.moveRoot(-left, -top);\r\n if (this._state.html) {\r\n that._textHtml.css({\r\n left: -left,\r\n top: -top\r\n });\r\n that._textGroupHtml.css({\r\n width: mathCeil(that._textHtml.width())\r\n })\r\n }\r\n },\r\n formatValue: function(value, _specialFormat) {\r\n var options = _specialFormat ? getSpecialFormatOptions(this._options, _specialFormat) : this._options;\r\n return format(value, options.format)\r\n },\r\n getLocation: function() {\r\n return (0, _utils.normalizeEnum)(this._options.location)\r\n },\r\n isEnabled: function() {\r\n return !!this._options.enabled || !!this._options.forceEvents\r\n },\r\n isShared: function() {\r\n return !!this._options.shared\r\n },\r\n _getCanvas: function() {\r\n var container = this._getContainer();\r\n var containerBox = container.getBoundingClientRect();\r\n var html = _dom_adapter.default.getDocumentElement();\r\n var document = _dom_adapter.default.getDocument();\r\n var left = window.pageXOffset || html.scrollLeft || 0;\r\n var top = window.pageYOffset || html.scrollTop || 0;\r\n var box = {\r\n left: left,\r\n top: top,\r\n width: mathMax(html.clientWidth, document.body.clientWidth) + left,\r\n height: mathMax(document.body.scrollHeight, html.scrollHeight, document.body.offsetHeight, html.offsetHeight, document.body.clientHeight, html.clientHeight),\r\n right: 0,\r\n bottom: 0\r\n };\r\n if (container !== _dom_adapter.default.getBody()) {\r\n left = mathMax(box.left, box.left + containerBox.left);\r\n top = mathMax(box.top, box.top + containerBox.top);\r\n box.width = mathMin(containerBox.width, box.width) + left + box.left;\r\n box.height = mathMin(containerBox.height, box.height) + top + box.top;\r\n box.left = left;\r\n box.top = top\r\n }\r\n return box\r\n }\r\n};\r\nvar plugin = {\r\n name: \"tooltip\",\r\n init: function() {\r\n this._initTooltip()\r\n },\r\n dispose: function() {\r\n this._disposeTooltip()\r\n },\r\n members: {\r\n _initTooltip: function() {\r\n this._tooltip = new Tooltip({\r\n cssClass: this._rootClassPrefix + \"-tooltip\",\r\n eventTrigger: this._eventTrigger,\r\n pathModified: this.option(\"pathModified\"),\r\n widgetRoot: this.element(),\r\n widget: this\r\n })\r\n },\r\n _disposeTooltip: function() {\r\n this._tooltip.dispose();\r\n this._tooltip = null\r\n },\r\n _setTooltipRendererOptions: function() {\r\n this._tooltip.setRendererOptions(this._getRendererOptions())\r\n },\r\n _setTooltipOptions: function() {\r\n this._tooltip.update(this._getOption(\"tooltip\"))\r\n }\r\n },\r\n extenders: {\r\n _stopCurrentHandling: function() {\r\n this._tooltip && this._tooltip.hide()\r\n }\r\n },\r\n customize: function(constructor) {\r\n var proto = constructor.prototype;\r\n proto._eventsMap.onTooltipShown = {\r\n name: \"tooltipShown\"\r\n };\r\n proto._eventsMap.onTooltipHidden = {\r\n name: \"tooltipHidden\"\r\n };\r\n constructor.addChange({\r\n code: \"TOOLTIP_RENDERER\",\r\n handler: function() {\r\n this._setTooltipRendererOptions()\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true\r\n });\r\n constructor.addChange({\r\n code: \"TOOLTIP\",\r\n handler: function() {\r\n this._setTooltipOptions()\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true,\r\n option: \"tooltip\"\r\n })\r\n },\r\n fontFields: [\"tooltip.font\"]\r\n};\r\nexports.plugin = plugin;\r\n","/**\r\n * DevExtreme (viz/core/loading_indicator.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 = exports.LoadingIndicator = void 0;\r\nvar _utils = require(\"./utils\");\r\nvar STATE_HIDDEN = 0;\r\nvar STATE_SHOWN = 1;\r\nvar ANIMATION_EASING = \"linear\";\r\nvar ANIMATION_DURATION = 400;\r\nvar LOADING_INDICATOR_READY = \"loadingIndicatorReady\";\r\nvar LoadingIndicator = function(parameters) {\r\n var that = this;\r\n var renderer = parameters.renderer;\r\n that._group = renderer.g().attr({\r\n \"class\": \"dx-loading-indicator\"\r\n }).linkOn(renderer.root, {\r\n name: \"loading-indicator\",\r\n after: \"peripheral\"\r\n });\r\n that._rect = renderer.rect().attr({\r\n opacity: 0\r\n }).append(that._group);\r\n that._text = renderer.text().attr({\r\n align: \"center\"\r\n }).append(that._group);\r\n that._createStates(parameters.eventTrigger, that._group, renderer.root, parameters.notify)\r\n};\r\nexports.LoadingIndicator = LoadingIndicator;\r\nLoadingIndicator.prototype = {\r\n constructor: LoadingIndicator,\r\n _createStates: function(eventTrigger, group, root, notify) {\r\n var that = this;\r\n that._states = [{\r\n opacity: 0,\r\n start: function() {\r\n notify(false)\r\n },\r\n complete: function() {\r\n group.linkRemove();\r\n root.css({\r\n \"pointer-events\": \"\"\r\n });\r\n eventTrigger(LOADING_INDICATOR_READY)\r\n }\r\n }, {\r\n opacity: .85,\r\n start: function() {\r\n group.linkAppend();\r\n root.css({\r\n \"pointer-events\": \"none\"\r\n });\r\n notify(true)\r\n },\r\n complete: function() {\r\n eventTrigger(LOADING_INDICATOR_READY)\r\n }\r\n }];\r\n that._state = STATE_HIDDEN\r\n },\r\n setSize: function(size) {\r\n var width = size.width;\r\n var height = size.height;\r\n this._rect.attr({\r\n width: width,\r\n height: height\r\n });\r\n this._text.attr({\r\n x: width / 2,\r\n y: height / 2\r\n })\r\n },\r\n setOptions: function(options) {\r\n this._rect.attr({\r\n fill: options.backgroundColor\r\n });\r\n this._text.css((0, _utils.patchFontOptions)(options.font)).attr({\r\n text: options.text,\r\n \"class\": options.cssClass\r\n });\r\n this[options.show ? \"show\" : \"hide\"]()\r\n },\r\n dispose: function() {\r\n var that = this;\r\n that._group.linkRemove().linkOff();\r\n that._group = that._rect = that._text = that._states = null\r\n },\r\n _transit: function(stateId) {\r\n var that = this;\r\n var state;\r\n if (that._state !== stateId) {\r\n that._state = stateId;\r\n that._isHiding = false;\r\n state = that._states[stateId];\r\n that._rect.stopAnimation().animate({\r\n opacity: state.opacity\r\n }, {\r\n complete: state.complete,\r\n easing: ANIMATION_EASING,\r\n duration: ANIMATION_DURATION,\r\n unstoppable: true\r\n });\r\n that._noHiding = true;\r\n state.start();\r\n that._noHiding = false\r\n }\r\n },\r\n show: function() {\r\n this._transit(STATE_SHOWN)\r\n },\r\n hide: function() {\r\n this._transit(STATE_HIDDEN)\r\n },\r\n scheduleHiding: function() {\r\n if (!this._noHiding) {\r\n this._isHiding = true\r\n }\r\n },\r\n fulfillHiding: function() {\r\n if (this._isHiding) {\r\n this.hide()\r\n }\r\n }\r\n};\r\nvar plugin = {\r\n name: \"loading_indicator\",\r\n init: function() {\r\n var that = this;\r\n that._loadingIndicator = new LoadingIndicator({\r\n eventTrigger: that._eventTrigger,\r\n renderer: that._renderer,\r\n notify: notify\r\n });\r\n that._scheduleLoadingIndicatorHiding();\r\n\r\n function notify(state) {\r\n that._skipLoadingIndicatorOptions = true;\r\n that.option(\"loadingIndicator\", {\r\n show: state\r\n });\r\n that._skipLoadingIndicatorOptions = false;\r\n if (state) {\r\n that._stopCurrentHandling()\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this._loadingIndicator.dispose();\r\n this._loadingIndicator = null\r\n },\r\n members: {\r\n _scheduleLoadingIndicatorHiding: function() {\r\n this._loadingIndicator.scheduleHiding()\r\n },\r\n _fulfillLoadingIndicatorHiding: function() {\r\n this._loadingIndicator.fulfillHiding()\r\n },\r\n showLoadingIndicator: function() {\r\n this._loadingIndicator.show()\r\n },\r\n hideLoadingIndicator: function() {\r\n this._loadingIndicator.hide()\r\n },\r\n _onBeginUpdate: function() {\r\n if (!this._optionChangedLocker) {\r\n this._scheduleLoadingIndicatorHiding()\r\n }\r\n }\r\n },\r\n extenders: {\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n if (isLoading && (this._options.silent(\"loadingIndicator\") || {}).enabled) {\r\n this._loadingIndicator.show()\r\n }\r\n },\r\n _setContentSize: function() {\r\n this._loadingIndicator.setSize(this._canvas)\r\n },\r\n endUpdate: function() {\r\n if (this._initialized && this._dataIsReady()) {\r\n this._fulfillLoadingIndicatorHiding()\r\n }\r\n }\r\n },\r\n customize: function(constructor) {\r\n var proto = constructor.prototype;\r\n if (proto._dataSourceChangedHandler) {\r\n var _dataSourceChangedHandler = proto._dataSourceChangedHandler;\r\n proto._dataSourceChangedHandler = function() {\r\n this._scheduleLoadingIndicatorHiding();\r\n _dataSourceChangedHandler.apply(this, arguments)\r\n }\r\n }\r\n constructor.addChange({\r\n code: \"LOADING_INDICATOR\",\r\n handler: function() {\r\n if (!this._skipLoadingIndicatorOptions) {\r\n this._loadingIndicator.setOptions(this._getOption(\"loadingIndicator\"))\r\n }\r\n this._scheduleLoadingIndicatorHiding()\r\n },\r\n isThemeDependent: true,\r\n option: \"loadingIndicator\",\r\n isOptionChange: true\r\n });\r\n proto._eventsMap.onLoadingIndicatorReady = {\r\n name: \"loadingIndicatorReady\"\r\n };\r\n var _drawn = proto._drawn;\r\n proto._drawn = function() {\r\n _drawn.apply(this, arguments);\r\n if (this._dataIsReady()) {\r\n this._fulfillLoadingIndicatorHiding()\r\n }\r\n }\r\n },\r\n fontFields: [\"loadingIndicator.font\"]\r\n};\r\nexports.plugin = plugin;\r\n","/**\r\n * DevExtreme (viz/components/consts.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 _default = {\r\n events: {\r\n mouseover: \"mouseover\",\r\n mouseout: \"mouseout\",\r\n mousemove: \"mousemove\",\r\n touchstart: \"touchstart\",\r\n touchmove: \"touchmove\",\r\n touchend: \"touchend\",\r\n mousedown: \"mousedown\",\r\n mouseup: \"mouseup\",\r\n click: \"click\",\r\n selectSeries: \"selectseries\",\r\n deselectSeries: \"deselectseries\",\r\n selectPoint: \"selectpoint\",\r\n deselectPoint: \"deselectpoint\",\r\n showPointTooltip: \"showpointtooltip\",\r\n hidePointTooltip: \"hidepointtooltip\"\r\n },\r\n states: {\r\n hover: \"hover\",\r\n normal: \"normal\",\r\n selection: \"selection\",\r\n normalMark: 0,\r\n hoverMark: 1,\r\n selectedMark: 2,\r\n applyHover: \"applyHover\",\r\n applySelected: \"applySelected\",\r\n resetItem: \"resetItem\"\r\n },\r\n radialLabelIndent: 30,\r\n pieLabelSpacing: 10,\r\n pieSeriesSpacing: 4\r\n};\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\n","/**\r\n * DevExtreme (viz/core/helpers.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.expand = expand;\r\nexports.changes = changes;\r\nexports.replaceInherit = void 0;\r\nvar _extend2 = require(\"../../core/utils/extend\");\r\nvar _window = require(\"../../core/utils/window\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar isServerSide = !(0, _window.hasWindow)();\r\n\r\nfunction Flags() {\r\n this.reset()\r\n}\r\nFlags.prototype = {\r\n constructor: Flags,\r\n add: function(codes) {\r\n var i;\r\n var ii = codes.length;\r\n var flags = this._flags;\r\n for (i = 0; i < ii; ++i) {\r\n flags[codes[i]] = 1\r\n }\r\n },\r\n has: function(code) {\r\n return this._flags[code] > 0\r\n },\r\n count: function() {\r\n return Object.keys(this._flags).length\r\n },\r\n reset: function() {\r\n this._flags = {}\r\n }\r\n};\r\n\r\nfunction combineMaps(baseMap, thisMap) {\r\n return baseMap !== thisMap ? (0, _extend2.extend)({}, baseMap, thisMap) : (0, _extend2.extend)({}, baseMap)\r\n}\r\n\r\nfunction combineLists(baseList, thisList) {\r\n return baseList !== thisList ? baseList.concat(thisList) : baseList.slice()\r\n}\r\n\r\nfunction buildTotalChanges(proto) {\r\n proto._totalChangesOrder = proto._optionChangesOrder.concat(proto._layoutChangesOrder, proto._customChangesOrder)\r\n}\r\n\r\nfunction addChange(settings) {\r\n var proto = this.prototype;\r\n var code = settings.code;\r\n proto[\"_change_\" + code] = settings.handler;\r\n if (settings.isThemeDependent) {\r\n proto._themeDependentChanges.push(code)\r\n }\r\n if (settings.option) {\r\n proto._optionChangesMap[settings.option] = code\r\n }(settings.isOptionChange ? proto._optionChangesOrder : proto._customChangesOrder).push(code);\r\n buildTotalChanges(proto)\r\n}\r\n\r\nfunction createChainExecutor() {\r\n var executeChain = function executeChain() {\r\n var i;\r\n var ii = executeChain._chain.length;\r\n var result;\r\n for (i = 0; i < ii; ++i) {\r\n result = executeChain._chain[i].apply(this, arguments)\r\n }\r\n return result\r\n };\r\n executeChain._chain = [];\r\n executeChain.add = function(item) {\r\n executeChain._chain.push(item)\r\n };\r\n executeChain.copy = function(executor) {\r\n executeChain._chain = executor._chain.slice()\r\n };\r\n return executeChain\r\n}\r\n\r\nfunction expand(target, name, expander) {\r\n var current = target[name];\r\n if (!current) {\r\n current = expander\r\n } else {\r\n if (!current.add) {\r\n current = createChainExecutor();\r\n current.add(target[name]);\r\n current.add(expander)\r\n } else {\r\n if (false === Object.prototype.hasOwnProperty.call(target, name)) {\r\n current = createChainExecutor();\r\n current.copy(target[name])\r\n }\r\n current.add(expander)\r\n }\r\n }\r\n target[name] = current\r\n}\r\n\r\nfunction addPlugin(plugin) {\r\n var proto = this.prototype;\r\n proto._plugins.push(plugin);\r\n plugin.fontFields && proto._fontFields.push.apply(proto._fontFields, plugin.fontFields);\r\n if (plugin.members) {\r\n (0, _extend2.extend)(this.prototype, plugin.members)\r\n }\r\n if (plugin.customize) {\r\n plugin.customize(this)\r\n }\r\n if (plugin.extenders) {\r\n Object.keys(plugin.extenders).forEach(function(key) {\r\n var func = plugin.extenders[key];\r\n expand(proto, key, func)\r\n }, this)\r\n }\r\n}\r\nvar replaceInherit = isServerSide ? function(widget) {\r\n var _inherit = widget.inherit;\r\n widget.inherit = function() {\r\n var result = _inherit.apply(this, arguments);\r\n var proto = result.prototype;\r\n [\"_plugins\", \"_eventsMap\", \"_initialChanges\", \"_themeDependentChanges\", \"_optionChangesMap\", \"_optionChangesOrder\", \"_layoutChangesOrder\", \"_customChangesOrder\", \"_totalChangesOrder\"].forEach(function(key) {\r\n proto[key] = {}\r\n });\r\n result.addPlugin = _common.noop;\r\n return result\r\n };\r\n widget.addChange = _common.noop;\r\n widget.addPlugin = _common.noop\r\n} : function(widget) {\r\n var _inherit = widget.inherit;\r\n widget.inherit = function() {\r\n var proto = this.prototype;\r\n var plugins = proto._plugins;\r\n var fontFields = proto._fontFields;\r\n var eventsMap = proto._eventsMap;\r\n var initialChanges = proto._initialChanges;\r\n var themeDependentChanges = proto._themeDependentChanges;\r\n var optionChangesMap = proto._optionChangesMap;\r\n var partialOptionChangesMap = proto._partialOptionChangesMap;\r\n var partialOptionChangesPath = proto._partialOptionChangesPath;\r\n var optionChangesOrder = proto._optionChangesOrder;\r\n var layoutChangesOrder = proto._layoutChangesOrder;\r\n var customChangesOrder = proto._customChangesOrder;\r\n var result = _inherit.apply(this, arguments);\r\n proto = result.prototype;\r\n proto._plugins = combineLists(plugins, proto._plugins);\r\n proto._fontFields = combineLists(fontFields, proto._fontFields);\r\n proto._eventsMap = combineMaps(eventsMap, proto._eventsMap);\r\n proto._initialChanges = combineLists(initialChanges, proto._initialChanges);\r\n proto._themeDependentChanges = combineLists(themeDependentChanges, proto._themeDependentChanges);\r\n proto._optionChangesMap = combineMaps(optionChangesMap, proto._optionChangesMap);\r\n proto._partialOptionChangesMap = combineMaps(partialOptionChangesMap, proto._partialOptionChangesMap);\r\n proto._partialOptionChangesPath = combineMaps(partialOptionChangesPath, proto._partialOptionChangesPath);\r\n proto._optionChangesOrder = combineLists(optionChangesOrder, proto._optionChangesOrder);\r\n proto._layoutChangesOrder = combineLists(layoutChangesOrder, proto._layoutChangesOrder);\r\n proto._customChangesOrder = combineLists(customChangesOrder, proto._customChangesOrder);\r\n buildTotalChanges(proto);\r\n result.addPlugin = addPlugin;\r\n return result\r\n };\r\n widget.prototype._plugins = [];\r\n widget.prototype._fontFields = [];\r\n widget.addChange = addChange;\r\n widget.addPlugin = addPlugin\r\n};\r\nexports.replaceInherit = replaceInherit;\r\n\r\nfunction changes() {\r\n return new Flags\r\n}\r\n","/**\r\n * DevExtreme (viz/core/data_source.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.plugin = void 0;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _data_helper = _interopRequireDefault(require(\"../../data_helper\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar postCtor = _data_helper.default.postCtor;\r\nvar name;\r\nvar members = {\r\n _dataSourceLoadErrorHandler: function() {\r\n this._dataSourceChangedHandler()\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _updateDataSource: function() {\r\n this._refreshDataSource();\r\n if (!this.option(\"dataSource\")) {\r\n this._dataSourceChangedHandler()\r\n }\r\n },\r\n _dataIsLoaded: function() {\r\n return !this._dataSource || this._dataSource.isLoaded()\r\n },\r\n _dataSourceItems: function() {\r\n return this._dataSource && this._dataSource.items()\r\n }\r\n};\r\nfor (name in _data_helper.default) {\r\n if (\"postCtor\" === name) {\r\n continue\r\n }\r\n members[name] = _data_helper.default[name]\r\n}\r\nvar plugin = {\r\n name: \"data_source\",\r\n init: function() {\r\n postCtor.call(this)\r\n },\r\n dispose: _common.noop,\r\n members: members\r\n};\r\nexports.plugin = plugin;\r\n","/**\r\n * DevExtreme (viz/core/renderers/renderer.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.getFuncIri = getFuncIri;\r\nexports.processHatchingAttrs = processHatchingAttrs;\r\nexports.Renderer = Renderer;\r\nexports.refreshPaths = exports.TextSvgElement = exports.RectSvgElement = exports.ArcSvgElement = exports.PathSvgElement = exports.SvgElement = void 0;\r\nvar _renderer = _interopRequireDefault(require(\"../../../core/renderer\"));\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../../core/dom_adapter\"));\r\nvar _window = require(\"../../../core/utils/window\");\r\nvar _call_once = _interopRequireDefault(require(\"../../../core/utils/call_once\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../../events/core/events_engine\"));\r\nvar _browser = _interopRequireDefault(require(\"../../../core/utils/browser\"));\r\nvar _svg = require(\"../../../core/utils/svg\");\r\nvar _animation = require(\"./animation\");\r\nvar _utils = require(\"../utils\");\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\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 _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 _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\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\nvar window = (0, _window.getWindow)();\r\nvar max = Math.max,\r\n min = Math.min,\r\n floor = Math.floor,\r\n round = Math.round,\r\n sin = Math.sin,\r\n cos = Math.cos,\r\n abs = Math.abs,\r\n PI = Math.PI;\r\nvar PI_DIV_180 = PI / 180;\r\nvar SHARPING_CORRECTION = .5;\r\nvar ARC_COORD_PREC = 5;\r\nvar pxAddingExceptions = {\r\n \"column-count\": true,\r\n \"fill-opacity\": true,\r\n \"flex-grow\": true,\r\n \"flex-shrink\": true,\r\n \"font-weight\": true,\r\n \"line-height\": true,\r\n opacity: true,\r\n order: true,\r\n orphans: true,\r\n widows: true,\r\n \"z-index\": true,\r\n zoom: true\r\n};\r\nvar KEY_TEXT = \"text\";\r\nvar KEY_STROKE = \"stroke\";\r\nvar KEY_STROKE_WIDTH = \"stroke-width\";\r\nvar KEY_STROKE_OPACITY = \"stroke-opacity\";\r\nvar KEY_FONT_SIZE = \"font-size\";\r\nvar KEY_FONT_STYLE = \"font-style\";\r\nvar KEY_FONT_WEIGHT = \"font-weight\";\r\nvar KEY_TEXT_DECORATION = \"text-decoration\";\r\nvar KEY_TEXTS_ALIGNMENT = \"textsAlignment\";\r\nvar NONE = \"none\";\r\nvar DEFAULT_FONT_SIZE = 12;\r\nvar ELLIPSIS = \"...\";\r\nvar objectCreate = function() {\r\n if (!Object.create) {\r\n return function(proto) {\r\n var F = function() {};\r\n F.prototype = proto;\r\n return new F\r\n }\r\n } else {\r\n return function(proto) {\r\n return Object.create(proto)\r\n }\r\n }\r\n}();\r\nvar DEFAULTS = {\r\n scaleX: 1,\r\n scaleY: 1,\r\n \"pointer-events\": null\r\n};\r\nvar getBackup = (0, _call_once.default)(function() {\r\n var backupContainer = _dom_adapter.default.createElement(\"div\");\r\n var backupCounter = 0;\r\n backupContainer.style.left = \"-9999px\";\r\n backupContainer.style.position = \"absolute\";\r\n return {\r\n backupContainer: backupContainer,\r\n backupCounter: backupCounter\r\n }\r\n});\r\n\r\nfunction backupRoot(root) {\r\n if (0 === getBackup().backupCounter) {\r\n _dom_adapter.default.getBody().appendChild(getBackup().backupContainer)\r\n }++getBackup().backupCounter;\r\n root.append({\r\n element: getBackup().backupContainer\r\n })\r\n}\r\n\r\nfunction restoreRoot(root, container) {\r\n root.append({\r\n element: container\r\n });\r\n --getBackup().backupCounter;\r\n if (0 === getBackup().backupCounter) {\r\n _dom_adapter.default.getBody().removeChild(getBackup().backupContainer)\r\n }\r\n}\r\nvar getNextDefsSvgId = function() {\r\n var numDefsSvgElements = 1;\r\n return function() {\r\n return \"DevExpress_\" + numDefsSvgElements++\r\n }\r\n}();\r\n\r\nfunction isObjectArgument(value) {\r\n return value && \"string\" !== typeof value\r\n}\r\n\r\nfunction createElement(tagName) {\r\n return _dom_adapter.default.createElementNS(\"http://www.w3.org/2000/svg\", tagName)\r\n}\r\n\r\nfunction getFuncIri(id, pathModified) {\r\n return null !== id ? \"url(\" + (pathModified ? window.location.href.split(\"#\")[0] : \"\") + \"#\" + id + \")\" : id\r\n}\r\n\r\nfunction extend(target, source) {\r\n var key;\r\n for (key in source) {\r\n target[key] = source[key]\r\n }\r\n return target\r\n}\r\n\r\nfunction roundValue(value, exp) {\r\n value = value.toString().split(\"e\");\r\n value = round(+(value[0] + \"e\" + (value[1] ? +value[1] + exp : exp)));\r\n value = value.toString().split(\"e\");\r\n return +(value[0] + \"e\" + (value[1] ? +value[1] - exp : -exp))\r\n}\r\n\r\nfunction getBoundingClientRect(element) {\r\n var box;\r\n try {\r\n box = element.getBoundingClientRect()\r\n } catch (e) {}\r\n return box || {\r\n left: 0,\r\n top: 0\r\n }\r\n}\r\nvar preserveAspectRatioMap = {\r\n full: NONE,\r\n lefttop: \"xMinYMin\",\r\n leftcenter: \"xMinYMid\",\r\n leftbottom: \"xMinYMax\",\r\n centertop: \"xMidYMin\",\r\n center: \"xMidYMid\",\r\n centerbottom: \"xMidYMax\",\r\n righttop: \"xMaxYMin\",\r\n rightcenter: \"xMaxYMid\",\r\n rightbottom: \"xMaxYMax\"\r\n};\r\n\r\nfunction processHatchingAttrs(element, attrs) {\r\n if (attrs.hatching && \"none\" !== (0, _utils.normalizeEnum)(attrs.hatching.direction)) {\r\n attrs = extend({}, attrs);\r\n attrs.fill = element._hatching = element.renderer.lockHatching(attrs.fill, attrs.hatching, element._hatching);\r\n delete attrs.hatching\r\n } else {\r\n if (element._hatching) {\r\n element.renderer.releaseHatching(element._hatching);\r\n element._hatching = null\r\n }\r\n }\r\n return attrs\r\n}\r\n\r\nfunction normalizeArcParams(x, y, innerR, outerR, startAngle, endAngle) {\r\n var isCircle;\r\n var noArc = true;\r\n var angleDiff = roundValue(endAngle, 3) - roundValue(startAngle, 3);\r\n if (angleDiff) {\r\n if (abs(angleDiff) % 360 === 0) {\r\n startAngle = 0;\r\n endAngle = 360;\r\n isCircle = true;\r\n endAngle -= .01\r\n }\r\n if (startAngle > 360) {\r\n startAngle %= 360\r\n }\r\n if (endAngle > 360) {\r\n endAngle %= 360\r\n }\r\n if (startAngle > endAngle) {\r\n startAngle -= 360\r\n }\r\n noArc = false\r\n }\r\n startAngle *= PI_DIV_180;\r\n endAngle *= PI_DIV_180;\r\n return [x, y, min(outerR, innerR), max(outerR, innerR), cos(startAngle), sin(startAngle), cos(endAngle), sin(endAngle), isCircle, floor(abs(endAngle - startAngle) / PI) % 2 ? \"1\" : \"0\", noArc]\r\n}\r\nvar buildArcPath = function(x, y, innerR, outerR, startAngleCos, startAngleSin, endAngleCos, endAngleSin, isCircle, longFlag) {\r\n return [\"M\", (x + outerR * startAngleCos).toFixed(ARC_COORD_PREC), (y - outerR * startAngleSin).toFixed(ARC_COORD_PREC), \"A\", outerR.toFixed(ARC_COORD_PREC), outerR.toFixed(ARC_COORD_PREC), 0, longFlag, 0, (x + outerR * endAngleCos).toFixed(ARC_COORD_PREC), (y - outerR * endAngleSin).toFixed(ARC_COORD_PREC), isCircle ? \"M\" : \"L\", (x + innerR * endAngleCos).toFixed(5), (y - innerR * endAngleSin).toFixed(ARC_COORD_PREC), \"A\", innerR.toFixed(ARC_COORD_PREC), innerR.toFixed(ARC_COORD_PREC), 0, longFlag, 1, (x + innerR * startAngleCos).toFixed(ARC_COORD_PREC), (y - innerR * startAngleSin).toFixed(ARC_COORD_PREC), \"Z\"].join(\" \")\r\n};\r\n\r\nfunction buildPathSegments(points, type) {\r\n var list = [\r\n [\"M\", 0, 0]\r\n ];\r\n switch (type) {\r\n case \"line\":\r\n list = buildLineSegments(points);\r\n break;\r\n case \"area\":\r\n list = buildLineSegments(points, true);\r\n break;\r\n case \"bezier\":\r\n list = buildCurveSegments(points);\r\n break;\r\n case \"bezierarea\":\r\n list = buildCurveSegments(points, true)\r\n }\r\n return list\r\n}\r\n\r\nfunction buildLineSegments(points, close) {\r\n return buildSegments(points, buildSimpleLineSegment, close)\r\n}\r\n\r\nfunction buildCurveSegments(points, close) {\r\n return buildSegments(points, buildSimpleCurveSegment, close)\r\n}\r\n\r\nfunction buildSegments(points, buildSimpleSegment, close) {\r\n var _points$;\r\n var i;\r\n var ii;\r\n var list = [];\r\n if (null !== (_points$ = points[0]) && void 0 !== _points$ && _points$.length) {\r\n for (i = 0, ii = points.length; i < ii; ++i) {\r\n buildSimpleSegment(points[i], close, list)\r\n }\r\n } else {\r\n buildSimpleSegment(points, close, list)\r\n }\r\n return list\r\n}\r\n\r\nfunction buildSimpleLineSegment(points, close, list) {\r\n var i = 0;\r\n var k0 = list.length;\r\n var k = k0;\r\n var ii = (points || []).length;\r\n if (ii) {\r\n if (void 0 !== points[0].x) {\r\n for (; i < ii;) {\r\n list[k++] = [\"L\", points[i].x, points[i++].y]\r\n }\r\n } else {\r\n for (; i < ii;) {\r\n list[k++] = [\"L\", points[i++], points[i++]]\r\n }\r\n }\r\n list[k0][0] = \"M\"\r\n } else {\r\n list[k] = [\"M\", 0, 0]\r\n }\r\n close && list.push([\"Z\"]);\r\n return list\r\n}\r\n\r\nfunction buildSimpleCurveSegment(points, close, list) {\r\n var i;\r\n var k = list.length;\r\n var ii = (points || []).length;\r\n if (ii) {\r\n if (void 0 !== points[0].x) {\r\n list[k++] = [\"M\", points[0].x, points[0].y];\r\n for (i = 1; i < ii;) {\r\n list[k++] = [\"C\", points[i].x, points[i++].y, points[i].x, points[i++].y, points[i].x, points[i++].y]\r\n }\r\n } else {\r\n list[k++] = [\"M\", points[0], points[1]];\r\n for (i = 2; i < ii;) {\r\n list[k++] = [\"C\", points[i++], points[i++], points[i++], points[i++], points[i++], points[i++]]\r\n }\r\n }\r\n } else {\r\n list[k] = [\"M\", 0, 0]\r\n }\r\n close && list.push([\"Z\"]);\r\n return list\r\n}\r\n\r\nfunction combinePathParam(segments) {\r\n var d = [];\r\n var k = 0;\r\n var i;\r\n var ii = segments.length;\r\n var segment;\r\n var j;\r\n var jj;\r\n for (i = 0; i < ii; ++i) {\r\n segment = segments[i];\r\n for (j = 0, jj = segment.length; j < jj; ++j) {\r\n d[k++] = segment[j]\r\n }\r\n }\r\n return d.join(\" \")\r\n}\r\n\r\nfunction compensateSegments(oldSegments, newSegments, type) {\r\n var oldLength = oldSegments.length;\r\n var newLength = newSegments.length;\r\n var i;\r\n var originalNewSegments;\r\n var makeEqualSegments = type.indexOf(\"area\") !== -1 ? makeEqualAreaSegments : makeEqualLineSegments;\r\n if (0 === oldLength) {\r\n for (i = 0; i < newLength; i++) {\r\n oldSegments.push(newSegments[i].slice(0))\r\n }\r\n } else {\r\n if (oldLength < newLength) {\r\n makeEqualSegments(oldSegments, newSegments, type)\r\n } else {\r\n if (oldLength > newLength) {\r\n originalNewSegments = newSegments.slice(0);\r\n makeEqualSegments(newSegments, oldSegments, type)\r\n }\r\n }\r\n }\r\n return originalNewSegments\r\n}\r\n\r\nfunction prepareConstSegment(constSeg, type) {\r\n var x = constSeg[constSeg.length - 2];\r\n var y = constSeg[constSeg.length - 1];\r\n switch (type) {\r\n case \"line\":\r\n case \"area\":\r\n constSeg[0] = \"L\";\r\n break;\r\n case \"bezier\":\r\n case \"bezierarea\":\r\n constSeg[0] = \"C\";\r\n constSeg[1] = constSeg[3] = constSeg[5] = x;\r\n constSeg[2] = constSeg[4] = constSeg[6] = y\r\n }\r\n}\r\n\r\nfunction makeEqualLineSegments(short, long, type) {\r\n var constSeg = short[short.length - 1].slice();\r\n var i = short.length;\r\n prepareConstSegment(constSeg, type);\r\n for (; i < long.length; i++) {\r\n short[i] = constSeg.slice(0)\r\n }\r\n}\r\n\r\nfunction makeEqualAreaSegments(short, long, type) {\r\n var i;\r\n var head;\r\n var shortLength = short.length;\r\n var longLength = long.length;\r\n var constsSeg1;\r\n var constsSeg2;\r\n if ((shortLength - 1) % 2 === 0 && (longLength - 1) % 2 === 0) {\r\n i = (shortLength - 1) / 2 - 1;\r\n head = short.slice(0, i + 1);\r\n constsSeg1 = head[head.length - 1].slice(0);\r\n constsSeg2 = short.slice(i + 1)[0].slice(0);\r\n prepareConstSegment(constsSeg1, type);\r\n prepareConstSegment(constsSeg2, type);\r\n for (var j = i; j < (longLength - 1) / 2 - 1; j++) {\r\n short.splice(j + 1, 0, constsSeg1);\r\n short.splice(j + 3, 0, constsSeg2)\r\n }\r\n }\r\n}\r\n\r\nfunction baseCss(that, styles) {\r\n var elemStyles = that._styles;\r\n var key;\r\n var value;\r\n styles = styles || {};\r\n for (key in styles) {\r\n value = styles[key];\r\n if ((0, _type.isDefined)(value)) {\r\n value += \"number\" === typeof value && !pxAddingExceptions[key] ? \"px\" : \"\";\r\n elemStyles[key] = \"\" !== value ? value : null\r\n }\r\n }\r\n for (key in elemStyles) {\r\n value = elemStyles[key];\r\n if (value) {\r\n that.element.style[key] = value\r\n } else {\r\n if (null === value) {\r\n that.element.style[key] = \"\"\r\n }\r\n }\r\n }\r\n return that\r\n}\r\n\r\nfunction fixFuncIri(wrapper, attribute) {\r\n var element = wrapper.element;\r\n var id = wrapper.attr(attribute);\r\n if (id && id.indexOf(\"DevExpress\") !== -1) {\r\n element.removeAttribute(attribute);\r\n element.setAttribute(attribute, getFuncIri(id, wrapper.renderer.pathModified))\r\n }\r\n}\r\n\r\nfunction baseAttr(that, attrs) {\r\n attrs = attrs || {};\r\n var settings = that._settings;\r\n var attributes = {};\r\n var key;\r\n var value;\r\n var elem = that.element;\r\n var renderer = that.renderer;\r\n var rtl = renderer.rtl;\r\n var hasTransformations;\r\n var recalculateDashStyle;\r\n var sw;\r\n var i;\r\n if (!isObjectArgument(attrs)) {\r\n if (attrs in settings) {\r\n return settings[attrs]\r\n }\r\n if (attrs in DEFAULTS) {\r\n return DEFAULTS[attrs]\r\n }\r\n return 0\r\n }\r\n extend(attributes, attrs);\r\n for (key in attributes) {\r\n value = attributes[key];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n settings[key] = value;\r\n if (\"align\" === key) {\r\n key = \"text-anchor\";\r\n value = {\r\n left: rtl ? \"end\" : \"start\",\r\n center: \"middle\",\r\n right: rtl ? \"start\" : \"end\"\r\n } [value] || null\r\n } else {\r\n if (\"dashStyle\" === key) {\r\n recalculateDashStyle = true;\r\n continue\r\n } else {\r\n if (key === KEY_STROKE_WIDTH) {\r\n recalculateDashStyle = true\r\n } else {\r\n if (value && (\"fill\" === key || \"clip-path\" === key || \"filter\" === key) && 0 === value.indexOf(\"DevExpress\")) {\r\n that._addFixIRICallback();\r\n value = getFuncIri(value, renderer.pathModified)\r\n } else {\r\n if (/^(translate(X|Y)|rotate[XY]?|scale(X|Y)|sharp|sharpDirection)$/i.test(key)) {\r\n hasTransformations = true;\r\n continue\r\n } else {\r\n if (/^(x|y|d)$/i.test(key)) {\r\n hasTransformations = true\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (null === value) {\r\n elem.removeAttribute(key)\r\n } else {\r\n elem.setAttribute(key, value)\r\n }\r\n }\r\n if (recalculateDashStyle && \"dashStyle\" in settings) {\r\n value = settings.dashStyle;\r\n sw = (\"_originalSW\" in that ? that._originalSW : settings[KEY_STROKE_WIDTH]) || 1;\r\n key = \"stroke-dasharray\";\r\n value = null === value ? \"\" : (0, _utils.normalizeEnum)(value);\r\n if (\"\" === value || \"solid\" === value || value === NONE) {\r\n that.element.removeAttribute(key)\r\n } else {\r\n value = value.replace(/longdash/g, \"8,3,\").replace(/dash/g, \"4,3,\").replace(/dot/g, \"1,3,\").replace(/,$/, \"\").split(\",\");\r\n i = value.length;\r\n while (i--) {\r\n value[i] = parseInt(value[i]) * sw\r\n }\r\n that.element.setAttribute(key, value.join(\",\"))\r\n }\r\n }\r\n if (hasTransformations) {\r\n that._applyTransformation()\r\n }\r\n return that\r\n}\r\n\r\nfunction pathAttr(attrs) {\r\n var that = this;\r\n var segments;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n segments = attrs.segments;\r\n if (\"points\" in attrs) {\r\n segments = buildPathSegments(attrs.points, that.type);\r\n delete attrs.points\r\n }\r\n if (segments) {\r\n attrs.d = combinePathParam(segments);\r\n that.segments = segments;\r\n delete attrs.segments\r\n }\r\n }\r\n return baseAttr(that, attrs)\r\n}\r\n\r\nfunction arcAttr(attrs) {\r\n var settings = this._settings;\r\n var x;\r\n var y;\r\n var innerRadius;\r\n var outerRadius;\r\n var startAngle;\r\n var endAngle;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n if (\"x\" in attrs || \"y\" in attrs || \"innerRadius\" in attrs || \"outerRadius\" in attrs || \"startAngle\" in attrs || \"endAngle\" in attrs) {\r\n settings.x = x = \"x\" in attrs ? attrs.x : settings.x;\r\n delete attrs.x;\r\n settings.y = y = \"y\" in attrs ? attrs.y : settings.y;\r\n delete attrs.y;\r\n settings.innerRadius = innerRadius = \"innerRadius\" in attrs ? attrs.innerRadius : settings.innerRadius;\r\n delete attrs.innerRadius;\r\n settings.outerRadius = outerRadius = \"outerRadius\" in attrs ? attrs.outerRadius : settings.outerRadius;\r\n delete attrs.outerRadius;\r\n settings.startAngle = startAngle = \"startAngle\" in attrs ? attrs.startAngle : settings.startAngle;\r\n delete attrs.startAngle;\r\n settings.endAngle = endAngle = \"endAngle\" in attrs ? attrs.endAngle : settings.endAngle;\r\n delete attrs.endAngle;\r\n attrs.d = buildArcPath.apply(null, normalizeArcParams(x, y, innerRadius, outerRadius, startAngle, endAngle))\r\n }\r\n }\r\n return baseAttr(this, attrs)\r\n}\r\n\r\nfunction rectAttr(attrs) {\r\n var that = this;\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n var sw;\r\n var maxSW;\r\n var newSW;\r\n if (isObjectArgument(attrs)) {\r\n attrs = extend({}, attrs);\r\n if (void 0 !== attrs.x || void 0 !== attrs.y || void 0 !== attrs.width || void 0 !== attrs.height || void 0 !== attrs[KEY_STROKE_WIDTH]) {\r\n void 0 !== attrs.x ? x = that._originalX = attrs.x : x = that._originalX || 0;\r\n void 0 !== attrs.y ? y = that._originalY = attrs.y : y = that._originalY || 0;\r\n void 0 !== attrs.width ? width = that._originalWidth = attrs.width : width = that._originalWidth || 0;\r\n void 0 !== attrs.height ? height = that._originalHeight = attrs.height : height = that._originalHeight || 0;\r\n void 0 !== attrs[KEY_STROKE_WIDTH] ? sw = that._originalSW = attrs[KEY_STROKE_WIDTH] : sw = that._originalSW;\r\n maxSW = ~~((width < height ? width : height) / 2);\r\n newSW = (sw || 0) < maxSW ? sw || 0 : maxSW;\r\n attrs.x = x + newSW / 2;\r\n attrs.y = y + newSW / 2;\r\n attrs.width = width - newSW;\r\n attrs.height = height - newSW;\r\n ((sw || 0) !== newSW || !(0 === newSW && void 0 === sw)) && (attrs[KEY_STROKE_WIDTH] = newSW)\r\n }\r\n if (\"sharp\" in attrs) {\r\n delete attrs.sharp\r\n }\r\n }\r\n return baseAttr(that, attrs)\r\n}\r\n\r\nfunction textAttr(attrs) {\r\n var that = this;\r\n var isResetRequired;\r\n if (!isObjectArgument(attrs)) {\r\n return baseAttr(that, attrs)\r\n }\r\n attrs = extend({}, attrs);\r\n var settings = that._settings;\r\n var wasStroked = (0, _type.isDefined)(settings[KEY_STROKE]) && (0, _type.isDefined)(settings[KEY_STROKE_WIDTH]);\r\n if (void 0 !== attrs[KEY_TEXT]) {\r\n settings[KEY_TEXT] = attrs[KEY_TEXT];\r\n delete attrs[KEY_TEXT];\r\n isResetRequired = true\r\n }\r\n if (void 0 !== attrs[KEY_STROKE]) {\r\n settings[KEY_STROKE] = attrs[KEY_STROKE];\r\n delete attrs[KEY_STROKE]\r\n }\r\n if (void 0 !== attrs[KEY_STROKE_WIDTH]) {\r\n settings[KEY_STROKE_WIDTH] = attrs[KEY_STROKE_WIDTH];\r\n delete attrs[KEY_STROKE_WIDTH]\r\n }\r\n if (void 0 !== attrs[KEY_STROKE_OPACITY]) {\r\n settings[KEY_STROKE_OPACITY] = attrs[KEY_STROKE_OPACITY];\r\n delete attrs[KEY_STROKE_OPACITY]\r\n }\r\n if (void 0 !== attrs[KEY_TEXTS_ALIGNMENT]) {\r\n alignTextNodes(that, attrs[KEY_TEXTS_ALIGNMENT]);\r\n delete attrs[KEY_TEXTS_ALIGNMENT]\r\n }\r\n var isStroked = (0, _type.isDefined)(settings[KEY_STROKE]) && (0, _type.isDefined)(settings[KEY_STROKE_WIDTH]);\r\n baseAttr(that, attrs);\r\n isResetRequired = isResetRequired || isStroked !== wasStroked && settings[KEY_TEXT];\r\n if (isResetRequired) {\r\n createTextNodes(that, settings.text, isStroked);\r\n that._hasEllipsis = false\r\n }\r\n if (isResetRequired || void 0 !== attrs.x || void 0 !== attrs.y) {\r\n locateTextNodes(that)\r\n }\r\n if (isStroked) {\r\n strokeTextNodes(that)\r\n }\r\n return that\r\n}\r\n\r\nfunction textCss(styles) {\r\n styles = styles || {};\r\n baseCss(this, styles);\r\n if (KEY_FONT_SIZE in styles) {\r\n locateTextNodes(this)\r\n }\r\n return this\r\n}\r\n\r\nfunction orderHtmlTree(list, line, node, parentStyle, parentClassName) {\r\n var style;\r\n var realStyle;\r\n var i;\r\n var ii;\r\n var nodes;\r\n if (void 0 !== node.wholeText) {\r\n list.push({\r\n value: node.wholeText,\r\n style: parentStyle,\r\n className: parentClassName,\r\n line: line,\r\n height: parentStyle[KEY_FONT_SIZE] || 0\r\n })\r\n } else {\r\n if (\"BR\" === node.tagName) {\r\n ++line\r\n } else {\r\n if (_dom_adapter.default.isElementNode(node)) {\r\n extend(style = {}, parentStyle);\r\n switch (node.tagName) {\r\n case \"B\":\r\n case \"STRONG\":\r\n style[KEY_FONT_WEIGHT] = \"bold\";\r\n break;\r\n case \"I\":\r\n case \"EM\":\r\n style[KEY_FONT_STYLE] = \"italic\";\r\n break;\r\n case \"U\":\r\n style[KEY_TEXT_DECORATION] = \"underline\"\r\n }\r\n realStyle = node.style;\r\n realStyle.color && (style.fill = realStyle.color);\r\n realStyle.fontSize && (style[KEY_FONT_SIZE] = realStyle.fontSize);\r\n realStyle.fontStyle && (style[KEY_FONT_STYLE] = realStyle.fontStyle);\r\n realStyle.fontWeight && (style[KEY_FONT_WEIGHT] = realStyle.fontWeight);\r\n realStyle.textDecoration && (style[KEY_TEXT_DECORATION] = realStyle.textDecoration);\r\n for (i = 0, nodes = node.childNodes, ii = nodes.length; i < ii; ++i) {\r\n line = orderHtmlTree(list, line, nodes[i], style, node.className || parentClassName)\r\n }\r\n }\r\n }\r\n }\r\n return line\r\n}\r\n\r\nfunction adjustLineHeights(items) {\r\n var i;\r\n var ii;\r\n var currentItem = items[0];\r\n var item;\r\n for (i = 1, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n if (item.line === currentItem.line) {\r\n currentItem.height = maxLengthFontSize(currentItem.height, item.height);\r\n currentItem.inherits = currentItem.inherits || 0 === parseFloat(item.height);\r\n item.height = NaN\r\n } else {\r\n currentItem = item\r\n }\r\n }\r\n}\r\n\r\nfunction removeExtraAttrs(html) {\r\n var findTagAttrs = /(?:(<[a-z0-9]+\\s*))([\\s\\S]*?)(>|\\/>)/gi;\r\n var findStyleAndClassAttrs = /(style|class)\\s*=\\s*([\"'])(?:(?!\\2).)*\\2\\s?/gi;\r\n return html.replace(findTagAttrs, function(allTagAttrs, p1, p2, p3) {\r\n p2 = (p2 && p2.match(findStyleAndClassAttrs) || []).map(function(str) {\r\n return str\r\n }).join(\" \");\r\n return p1 + p2 + p3\r\n })\r\n}\r\n\r\nfunction parseHTML(text) {\r\n var items = [];\r\n var div = _dom_adapter.default.createElement(\"div\");\r\n div.innerHTML = text.replace(/\\r/g, \"\").replace(/\\n/g, \"
\");\r\n orderHtmlTree(items, 0, div, {}, \"\");\r\n adjustLineHeights(items);\r\n return items\r\n}\r\n\r\nfunction parseMultiline(text) {\r\n var texts = text.replace(/\\r/g, \"\").split(/\\n/g);\r\n var i = 0;\r\n var items = [];\r\n for (; i < texts.length; i++) {\r\n items.push({\r\n value: texts[i].trim(),\r\n height: 0,\r\n line: i\r\n })\r\n }\r\n return items\r\n}\r\n\r\nfunction createTspans(items, element, fieldName) {\r\n var i;\r\n var ii;\r\n var item;\r\n for (i = 0, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n item[fieldName] = createElement(\"tspan\");\r\n item[fieldName].appendChild(_dom_adapter.default.createTextNode(item.value));\r\n item.style && baseCss({\r\n element: item[fieldName],\r\n _styles: {}\r\n }, item.style);\r\n item.className && item[fieldName].setAttribute(\"class\", item.className);\r\n element.appendChild(item[fieldName])\r\n }\r\n}\r\n\r\nfunction restoreText() {\r\n if (this._hasEllipsis) {\r\n this.attr({\r\n text: this._settings.text\r\n })\r\n }\r\n}\r\n\r\nfunction applyEllipsis(maxWidth) {\r\n var that = this;\r\n var lines;\r\n var hasEllipsis = false;\r\n var i;\r\n var ii;\r\n var lineParts;\r\n var j;\r\n var jj;\r\n var text;\r\n restoreText.call(that);\r\n var ellipsis = that.renderer.text(ELLIPSIS).attr(that._styles).append(that.renderer.root);\r\n var ellipsisWidth = ellipsis.getBBox().width;\r\n if (that._getElementBBox().width > maxWidth) {\r\n if (maxWidth - ellipsisWidth < 0) {\r\n maxWidth = 0\r\n } else {\r\n maxWidth -= ellipsisWidth\r\n }\r\n lines = prepareLines(that.element, that._texts, maxWidth);\r\n for (i = 0, ii = lines.length; i < ii; ++i) {\r\n lineParts = lines[i].parts;\r\n if (1 === lines[i].commonLength) {\r\n continue\r\n }\r\n for (j = 0, jj = lineParts.length; j < jj; ++j) {\r\n text = lineParts[j];\r\n if ((0, _type.isDefined)(text.endIndex)) {\r\n setNewText(text, text.endIndex);\r\n hasEllipsis = true\r\n } else {\r\n if (text.startBox > maxWidth) {\r\n removeTextSpan(text)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n ellipsis.remove();\r\n that._hasEllipsis = hasEllipsis;\r\n return hasEllipsis\r\n}\r\n\r\nfunction cloneAndRemoveAttrs(node) {\r\n var clone;\r\n if (node) {\r\n clone = node.cloneNode();\r\n clone.removeAttribute(\"y\");\r\n clone.removeAttribute(\"x\")\r\n }\r\n return clone || node\r\n}\r\n\r\nfunction detachTitleElements(element) {\r\n var titleElements = _dom_adapter.default.querySelectorAll(element, \"title\");\r\n for (var i = 0; i < titleElements.length; i++) {\r\n element.removeChild(titleElements[i])\r\n }\r\n return titleElements\r\n}\r\n\r\nfunction detachAndStoreTitleElements(element) {\r\n var titleElements = detachTitleElements(element);\r\n return function() {\r\n for (var i = 0; i < titleElements.length; i++) {\r\n element.appendChild(titleElements[i])\r\n }\r\n }\r\n}\r\n\r\nfunction setMaxSize(maxWidth, maxHeight) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var that = this;\r\n var lines = [];\r\n var textChanged = false;\r\n var textIsEmpty = false;\r\n var ellipsisMaxWidth = maxWidth;\r\n restoreText.call(that);\r\n var restoreTitleElement = detachAndStoreTitleElements(this.element);\r\n var ellipsis = that.renderer.text(ELLIPSIS).attr(that._styles).append(that.renderer.root);\r\n var ellipsisWidth = ellipsis.getBBox().width;\r\n var _that$_getElementBBox = that._getElementBBox(),\r\n width = _that$_getElementBBox.width,\r\n height = _that$_getElementBBox.height;\r\n if ((width || height) && (width > maxWidth || maxHeight && height > maxHeight)) {\r\n if (maxWidth - ellipsisWidth < 0) {\r\n ellipsisMaxWidth = 0\r\n } else {\r\n ellipsisMaxWidth -= ellipsisWidth\r\n }\r\n lines = applyOverflowRules(that.element, that._texts, maxWidth, ellipsisMaxWidth, options, maxHeight);\r\n lines = setMaxHeight(lines, ellipsisMaxWidth, options, maxHeight, parseFloat(this._getLineHeight()));\r\n this._texts = lines.reduce(function(texts, line) {\r\n return texts.concat(line.parts)\r\n }, []).filter(function(t) {\r\n return \"\" !== t.value\r\n }).map(function(t) {\r\n t.stroke && t.tspan.parentNode.appendChild(t.stroke);\r\n return t\r\n }).map(function(t) {\r\n t.tspan.parentNode.appendChild(t.tspan);\r\n return t\r\n });\r\n !this._texts.length && (this._texts = null);\r\n textChanged = true;\r\n if (this._texts) {\r\n locateTextNodes(this)\r\n } else {\r\n this.element.textContent = \"\";\r\n textIsEmpty = true\r\n }\r\n }\r\n ellipsis.remove();\r\n that._hasEllipsis = textChanged;\r\n restoreTitleElement();\r\n return {\r\n rowCount: lines.length,\r\n textChanged: textChanged,\r\n textIsEmpty: textIsEmpty\r\n }\r\n}\r\n\r\nfunction getIndexForEllipsis(text, maxWidth, startBox, endBox) {\r\n var k;\r\n var kk;\r\n if (startBox <= maxWidth && endBox > maxWidth) {\r\n for (k = 1, kk = text.value.length; k <= kk; ++k) {\r\n if (startBox + text.tspan.getSubStringLength(0, k) > maxWidth) {\r\n return k - 1\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getTextWidth(text) {\r\n return text.value.length ? text.tspan.getSubStringLength(0, text.value.length) : 0\r\n}\r\n\r\nfunction prepareLines(element, texts, maxWidth) {\r\n var lines = [];\r\n var i;\r\n var ii;\r\n var text;\r\n var startBox;\r\n var endBox;\r\n if (texts) {\r\n for (i = 0, ii = texts.length; i < ii; ++i) {\r\n text = texts[i];\r\n if (!lines[text.line]) {\r\n text.startBox = startBox = 0;\r\n lines.push({\r\n commonLength: text.value.length,\r\n parts: [text]\r\n })\r\n } else {\r\n text.startBox = startBox;\r\n lines[text.line].parts.push(text);\r\n lines[text.line].commonLength += text.value.length\r\n }\r\n endBox = startBox + text.tspan.getSubStringLength(0, text.value.length);\r\n text.endIndex = getIndexForEllipsis(text, maxWidth, startBox, endBox);\r\n startBox = endBox\r\n }\r\n } else {\r\n text = {\r\n value: element.textContent,\r\n tspan: element\r\n };\r\n text.startBox = startBox = 0;\r\n endBox = startBox + getTextWidth(text);\r\n text.endIndex = getIndexForEllipsis(text, maxWidth, startBox, endBox);\r\n lines = [{\r\n commonLength: element.textContent.length,\r\n parts: [text]\r\n }]\r\n }\r\n return lines\r\n}\r\n\r\nfunction getSpaceBreakIndex(text, maxWidth) {\r\n var initialIndices = text.startBox > 0 ? [0] : [];\r\n var spaceIndices = text.value.split(\"\").reduce(function(indices, char, index) {\r\n if (\" \" === char) {\r\n indices.push(index)\r\n }\r\n return indices\r\n }, initialIndices);\r\n var spaceIndex = 0;\r\n while (void 0 !== spaceIndices[spaceIndex + 1] && text.startBox + text.tspan.getSubStringLength(0, spaceIndices[spaceIndex + 1]) < maxWidth) {\r\n spaceIndex++\r\n }\r\n return spaceIndices[spaceIndex]\r\n}\r\n\r\nfunction getWordBreakIndex(text, maxWidth) {\r\n for (var i = 0; i < text.value.length - 1; i++) {\r\n if (text.startBox + text.tspan.getSubStringLength(0, i + 1) > maxWidth) {\r\n return i\r\n }\r\n }\r\n}\r\n\r\nfunction getEllipsisString(ellipsisMaxWidth, _ref) {\r\n var hideOverflowEllipsis = _ref.hideOverflowEllipsis;\r\n return hideOverflowEllipsis && 0 === ellipsisMaxWidth ? \"\" : ELLIPSIS\r\n}\r\n\r\nfunction setEllipsis(text, ellipsisMaxWidth, options) {\r\n var ellipsis = getEllipsisString(ellipsisMaxWidth, options);\r\n if (text.value.length && text.tspan.parentNode) {\r\n for (var i = text.value.length - 1; i >= 1; i--) {\r\n if (text.startBox + text.tspan.getSubStringLength(0, i) < ellipsisMaxWidth) {\r\n setNewText(text, i, ellipsis);\r\n break\r\n } else {\r\n if (1 === i) {\r\n setNewText(text, 0, ellipsis)\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction wordWrap(text, maxWidth, ellipsisMaxWidth, options, lastStepBreakIndex) {\r\n var wholeText = text.value;\r\n var breakIndex;\r\n if (\"none\" !== options.wordWrap) {\r\n breakIndex = \"normal\" === options.wordWrap ? getSpaceBreakIndex(text, maxWidth) : getWordBreakIndex(text, maxWidth)\r\n }\r\n var restLines = [];\r\n var restText;\r\n if (isFinite(breakIndex) && !(0 === lastStepBreakIndex && 0 === breakIndex)) {\r\n setNewText(text, breakIndex, \"\");\r\n var newTextOffset = \" \" === wholeText[breakIndex] ? 1 : 0;\r\n var restString = wholeText.slice(breakIndex + newTextOffset);\r\n if (restString.length) {\r\n var restTspan = cloneAndRemoveAttrs(text.tspan);\r\n restTspan.textContent = restString;\r\n text.tspan.parentNode.appendChild(restTspan);\r\n restText = extend(extend({}, text), {\r\n value: restString,\r\n startBox: 0,\r\n height: 0,\r\n tspan: restTspan,\r\n stroke: cloneAndRemoveAttrs(text.stroke),\r\n endBox: restTspan.getSubStringLength(0, restString.length)\r\n });\r\n restText.stroke && (restText.stroke.textContent = restString);\r\n if (restText.endBox > maxWidth) {\r\n restLines = wordWrap(restText, maxWidth, ellipsisMaxWidth, options, breakIndex);\r\n if (!restLines.length) {\r\n return []\r\n }\r\n }\r\n }\r\n }\r\n if (text.value.length) {\r\n if (\"ellipsis\" === options.textOverflow && text.tspan.getSubStringLength(0, text.value.length) > maxWidth) {\r\n setEllipsis(text, ellipsisMaxWidth, options)\r\n }\r\n if (\"hide\" === options.textOverflow && text.tspan.getSubStringLength(0, text.value.length) > maxWidth) {\r\n return []\r\n }\r\n } else {\r\n text.tspan.parentNode.removeChild(text.tspan)\r\n }\r\n var parts = [];\r\n if (restText) {\r\n parts.push(restText)\r\n }\r\n return [{\r\n commonLength: wholeText.length,\r\n parts: parts\r\n }].concat(restLines)\r\n}\r\n\r\nfunction calculateLineHeight(line, lineHeight) {\r\n return line.parts.reduce(function(height, text) {\r\n return max(height, getItemLineHeight(text, lineHeight))\r\n }, 0)\r\n}\r\n\r\nfunction setMaxHeight(lines, ellipsisMaxWidth, options, maxHeight, lineHeight) {\r\n var textOverflow = options.textOverflow;\r\n if (!isFinite(maxHeight) || 0 === Number(maxHeight) || \"none\" === textOverflow) {\r\n return lines\r\n }\r\n var result = lines.reduce(function(_ref2, l, index, arr) {\r\n var _ref3 = _slicedToArray(_ref2, 2),\r\n lines = _ref3[0],\r\n commonHeight = _ref3[1];\r\n var height = calculateLineHeight(l, lineHeight);\r\n commonHeight += height;\r\n if (commonHeight < maxHeight) {\r\n lines.push(l)\r\n } else {\r\n l.parts.forEach(function(item) {\r\n removeTextSpan(item)\r\n });\r\n if (\"ellipsis\" === textOverflow) {\r\n var prevLine = arr[index - 1];\r\n if (prevLine) {\r\n var text = prevLine.parts[prevLine.parts.length - 1];\r\n if (!text.hasEllipsis) {\r\n if (0 === ellipsisMaxWidth || text.endBox < ellipsisMaxWidth) {\r\n setNewText(text, text.value.length, getEllipsisString(ellipsisMaxWidth, options))\r\n } else {\r\n setEllipsis(text, ellipsisMaxWidth, options)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return [lines, commonHeight]\r\n }, [\r\n [], 0\r\n ]);\r\n if (\"hide\" === textOverflow && result[1] > maxHeight) {\r\n result[0].forEach(function(l) {\r\n l.parts.forEach(function(item) {\r\n removeTextSpan(item)\r\n })\r\n });\r\n return []\r\n }\r\n return result[0]\r\n}\r\n\r\nfunction applyOverflowRules(element, texts, maxWidth, ellipsisMaxWidth, options) {\r\n if (!texts) {\r\n var textValue = element.textContent;\r\n var text = {\r\n value: textValue,\r\n height: 0,\r\n line: 0\r\n };\r\n element.textContent = \"\";\r\n createTspans([text], element, \"tspan\");\r\n texts = [text]\r\n }\r\n return texts.reduce(function(_ref4, text) {\r\n var _ref5 = _slicedToArray(_ref4, 5),\r\n lines = _ref5[0],\r\n startBox = _ref5[1],\r\n endBox = _ref5[2],\r\n stop = _ref5[3],\r\n lineNumber = _ref5[4];\r\n var line = lines[lines.length - 1];\r\n if (stop) {\r\n return [lines, startBox, endBox, stop]\r\n }\r\n if (!line || text.line !== lineNumber) {\r\n text.startBox = startBox = 0;\r\n lines.push({\r\n commonLength: text.value.length,\r\n parts: [text]\r\n })\r\n } else {\r\n text.startBox = startBox;\r\n if (startBox > ellipsisMaxWidth && \"none\" === options.wordWrap && \"ellipsis\" === options.textOverflow) {\r\n removeTextSpan(text);\r\n return [lines, startBox, endBox, stop, lineNumber]\r\n }\r\n line.parts.push(text);\r\n line.commonLength += text.value.length\r\n }\r\n text.endBox = endBox = startBox + getTextWidth(text);\r\n startBox = endBox;\r\n if ((0, _type.isDefined)(maxWidth) && endBox > maxWidth) {\r\n var wordWrapLines = wordWrap(text, maxWidth, ellipsisMaxWidth, options);\r\n if (!wordWrapLines.length) {\r\n lines = [];\r\n stop = true\r\n } else {\r\n lines = lines.concat(wordWrapLines.filter(function(l) {\r\n return l.parts.length > 0\r\n }))\r\n }\r\n }\r\n return [lines, startBox, endBox, stop, text.line]\r\n }, [\r\n [], 0, 0, false, 0\r\n ])[0]\r\n}\r\n\r\nfunction setNewText(text, index) {\r\n var insertString = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : ELLIPSIS;\r\n var newText = text.value.substr(0, index) + insertString;\r\n text.value = text.tspan.textContent = newText;\r\n text.stroke && (text.stroke.textContent = newText);\r\n if (insertString === ELLIPSIS) {\r\n text.hasEllipsis = true\r\n }\r\n}\r\n\r\nfunction removeTextSpan(text) {\r\n text.tspan.parentNode && text.tspan.parentNode.removeChild(text.tspan);\r\n text.stroke && text.stroke.parentNode && text.stroke.parentNode.removeChild(text.stroke)\r\n}\r\n\r\nfunction createTextNodes(wrapper, text, isStroked) {\r\n var items;\r\n var parsedHtml;\r\n wrapper._texts = null;\r\n wrapper.clear();\r\n if (null === text) {\r\n return\r\n }\r\n text = \"\" + text;\r\n if (!wrapper.renderer.encodeHtml && (/<[a-z][\\s\\S]*>/i.test(text) || text.indexOf(\"&\") !== -1)) {\r\n parsedHtml = removeExtraAttrs(text);\r\n items = parseHTML(parsedHtml)\r\n } else {\r\n if (/\\n/g.test(text)) {\r\n items = parseMultiline(text)\r\n } else {\r\n if (isStroked) {\r\n items = [{\r\n value: text.trim(),\r\n height: 0\r\n }]\r\n }\r\n }\r\n }\r\n if (items) {\r\n if (items.length) {\r\n wrapper._texts = items;\r\n if (isStroked) {\r\n createTspans(items, wrapper.element, KEY_STROKE)\r\n }\r\n createTspans(items, wrapper.element, \"tspan\")\r\n }\r\n } else {\r\n wrapper.element.appendChild(_dom_adapter.default.createTextNode(text))\r\n }\r\n}\r\n\r\nfunction setTextNodeAttribute(item, name, value) {\r\n item.tspan.setAttribute(name, value);\r\n item.stroke && item.stroke.setAttribute(name, value)\r\n}\r\n\r\nfunction getItemLineHeight(item, defaultValue) {\r\n return item.inherits ? maxLengthFontSize(item.height, defaultValue) : item.height || defaultValue\r\n}\r\n\r\nfunction locateTextNodes(wrapper) {\r\n if (!wrapper._texts) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var x = wrapper._settings.x;\r\n var lineHeight = wrapper._getLineHeight();\r\n var i;\r\n var ii;\r\n var item = items[0];\r\n setTextNodeAttribute(item, \"x\", x);\r\n setTextNodeAttribute(item, \"y\", wrapper._settings.y);\r\n for (i = 1, ii = items.length; i < ii; ++i) {\r\n item = items[i];\r\n if (parseFloat(item.height) >= 0) {\r\n setTextNodeAttribute(item, \"x\", x);\r\n var height = getItemLineHeight(item, lineHeight);\r\n setTextNodeAttribute(item, \"dy\", height)\r\n }\r\n }\r\n}\r\n\r\nfunction alignTextNodes(wrapper, alignment) {\r\n if (!wrapper._texts || \"center\" === alignment) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var direction = \"left\" === alignment ? -1 : 1;\r\n var maxTextWidth = Math.max.apply(Math, items.map(function(t) {\r\n return getTextWidth(t)\r\n }));\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var textWidth = getTextWidth(item);\r\n if (0 !== maxTextWidth && maxTextWidth !== textWidth) {\r\n setTextNodeAttribute(item, \"dx\", direction * round((maxTextWidth - textWidth) / 2 * 10) / 10)\r\n }\r\n }\r\n}\r\n\r\nfunction maxLengthFontSize(fontSize1, fontSize2) {\r\n var parsedHeight1 = parseFloat(fontSize1);\r\n var parsedHeight2 = parseFloat(fontSize2);\r\n var height1 = parsedHeight1 || DEFAULT_FONT_SIZE;\r\n var height2 = parsedHeight2 || DEFAULT_FONT_SIZE;\r\n return height1 > height2 ? !isNaN(parsedHeight1) ? fontSize1 : height1 : !isNaN(parsedHeight2) ? fontSize2 : height2\r\n}\r\n\r\nfunction strokeTextNodes(wrapper) {\r\n if (!wrapper._texts) {\r\n return\r\n }\r\n var items = wrapper._texts;\r\n var stroke = wrapper._settings[KEY_STROKE];\r\n var strokeWidth = wrapper._settings[KEY_STROKE_WIDTH];\r\n var strokeOpacity = wrapper._settings[KEY_STROKE_OPACITY] || 1;\r\n var tspan;\r\n var i;\r\n var ii;\r\n for (i = 0, ii = items.length; i < ii; ++i) {\r\n tspan = items[i].stroke;\r\n tspan.setAttribute(KEY_STROKE, stroke);\r\n tspan.setAttribute(KEY_STROKE_WIDTH, strokeWidth);\r\n tspan.setAttribute(KEY_STROKE_OPACITY, strokeOpacity);\r\n tspan.setAttribute(\"stroke-linejoin\", \"round\")\r\n }\r\n}\r\n\r\nfunction baseAnimate(that, params, options, complete) {\r\n options = options || {};\r\n var key;\r\n var value;\r\n var renderer = that.renderer;\r\n var settings = that._settings;\r\n var animationParams = {};\r\n var defaults = {\r\n translateX: 0,\r\n translateY: 0,\r\n scaleX: 1,\r\n scaleY: 1,\r\n rotate: 0,\r\n rotateX: 0,\r\n rotateY: 0\r\n };\r\n if (complete) {\r\n options.complete = complete\r\n }\r\n if (renderer.animationEnabled()) {\r\n for (key in params) {\r\n value = params[key];\r\n if (/^(translate(X|Y)|rotate[XY]?|scale(X|Y))$/i.test(key)) {\r\n animationParams.transform = animationParams.transform || {\r\n from: {},\r\n to: {}\r\n };\r\n animationParams.transform.from[key] = key in settings ? Number(settings[key].toFixed(3)) : defaults[key];\r\n animationParams.transform.to[key] = value\r\n } else {\r\n if (\"arc\" === key || \"segments\" === key) {\r\n animationParams[key] = value\r\n } else {\r\n animationParams[key] = {\r\n from: key in settings ? settings[key] : parseFloat(that.element.getAttribute(key) || 0),\r\n to: value\r\n }\r\n }\r\n }\r\n }\r\n renderer.animateElement(that, animationParams, extend(extend({}, renderer._animation), options))\r\n } else {\r\n options.step && options.step.call(that, 1, 1);\r\n options.complete && options.complete.call(that);\r\n that.attr(params)\r\n }\r\n return that\r\n}\r\n\r\nfunction pathAnimate(params, options, complete) {\r\n var that = this;\r\n var curSegments = that.segments || [];\r\n var newSegments;\r\n var endSegments;\r\n if (that.renderer.animationEnabled() && \"points\" in params) {\r\n newSegments = buildPathSegments(params.points, that.type);\r\n endSegments = compensateSegments(curSegments, newSegments, that.type);\r\n params.segments = {\r\n from: curSegments,\r\n to: newSegments,\r\n end: endSegments\r\n };\r\n delete params.points\r\n }\r\n return baseAnimate(that, params, options, complete)\r\n}\r\n\r\nfunction arcAnimate(params, options, complete) {\r\n var that = this;\r\n var settings = that._settings;\r\n var arcParams = {\r\n from: {},\r\n to: {}\r\n };\r\n if (that.renderer.animationEnabled() && (\"x\" in params || \"y\" in params || \"innerRadius\" in params || \"outerRadius\" in params || \"startAngle\" in params || \"endAngle\" in params)) {\r\n arcParams.from.x = settings.x || 0;\r\n arcParams.from.y = settings.y || 0;\r\n arcParams.from.innerRadius = settings.innerRadius || 0;\r\n arcParams.from.outerRadius = settings.outerRadius || 0;\r\n arcParams.from.startAngle = settings.startAngle || 0;\r\n arcParams.from.endAngle = settings.endAngle || 0;\r\n arcParams.to.x = \"x\" in params ? params.x : settings.x;\r\n delete params.x;\r\n arcParams.to.y = \"y\" in params ? params.y : settings.y;\r\n delete params.y;\r\n arcParams.to.innerRadius = \"innerRadius\" in params ? params.innerRadius : settings.innerRadius;\r\n delete params.innerRadius;\r\n arcParams.to.outerRadius = \"outerRadius\" in params ? params.outerRadius : settings.outerRadius;\r\n delete params.outerRadius;\r\n arcParams.to.startAngle = \"startAngle\" in params ? params.startAngle : settings.startAngle;\r\n delete params.startAngle;\r\n arcParams.to.endAngle = \"endAngle\" in params ? params.endAngle : settings.endAngle;\r\n delete params.endAngle;\r\n params.arc = arcParams\r\n }\r\n return baseAnimate(that, params, options, complete)\r\n}\r\n\r\nfunction buildLink(target, parameters) {\r\n var obj = {\r\n is: false,\r\n name: parameters.name || parameters,\r\n after: parameters.after\r\n };\r\n if (target) {\r\n obj.to = target\r\n } else {\r\n obj.virtual = true\r\n }\r\n return obj\r\n}\r\nvar SvgElement = function(renderer, tagName, type) {\r\n var that = this;\r\n that.renderer = renderer;\r\n that.element = createElement(tagName);\r\n that._settings = {};\r\n that._styles = {};\r\n if (\"path\" === tagName) {\r\n that.type = type || \"line\"\r\n }\r\n};\r\nexports.SvgElement = SvgElement;\r\n\r\nfunction removeFuncIriCallback(callback) {\r\n fixFuncIriCallbacks.remove(callback)\r\n}\r\nSvgElement.prototype = {\r\n constructor: SvgElement,\r\n _getJQElement: function() {\r\n return this._$element || (this._$element = (0, _renderer.default)(this.element))\r\n },\r\n _addFixIRICallback: function() {\r\n var that = this;\r\n var fn = function() {\r\n fixFuncIri(that, \"fill\");\r\n fixFuncIri(that, \"clip-path\");\r\n fixFuncIri(that, \"filter\")\r\n };\r\n that.element._fixFuncIri = fn;\r\n fn.renderer = that.renderer;\r\n fixFuncIriCallbacks.add(fn);\r\n that._addFixIRICallback = function() {}\r\n },\r\n _clearChildrenFuncIri: function() {\r\n var clearChildren = function clearChildren(element) {\r\n var i;\r\n for (i = 0; i < element.childNodes.length; i++) {\r\n removeFuncIriCallback(element.childNodes[i]._fixFuncIri);\r\n clearChildren(element.childNodes[i])\r\n }\r\n };\r\n clearChildren(this.element)\r\n },\r\n dispose: function() {\r\n removeFuncIriCallback(this.element._fixFuncIri);\r\n this._clearChildrenFuncIri();\r\n this._getJQElement().remove();\r\n return this\r\n },\r\n append: function(parent) {\r\n (parent || this.renderer.root).element.appendChild(this.element);\r\n return this\r\n },\r\n remove: function() {\r\n var element = this.element;\r\n element.parentNode && element.parentNode.removeChild(element);\r\n return this\r\n },\r\n enableLinks: function() {\r\n this._links = [];\r\n return this\r\n },\r\n virtualLink: function(parameters) {\r\n linkItem({\r\n _link: buildLink(null, parameters)\r\n }, this);\r\n return this\r\n },\r\n linkAfter: function(name) {\r\n this._linkAfter = name;\r\n return this\r\n },\r\n linkOn: function(target, parameters) {\r\n this._link = buildLink(target, parameters);\r\n linkItem(this, target);\r\n return this\r\n },\r\n linkOff: function() {\r\n unlinkItem(this);\r\n this._link = null;\r\n return this\r\n },\r\n linkAppend: function() {\r\n var link = this._link;\r\n var items = link.to._links;\r\n var i;\r\n var next;\r\n for (i = link.i + 1;\r\n (next = items[i]) && !next._link.is; ++i) {}\r\n this._insert(link.to, next);\r\n link.is = true;\r\n return this\r\n },\r\n _insert: function(parent, next) {\r\n parent.element.insertBefore(this.element, next ? next.element : null)\r\n },\r\n linkRemove: function() {\r\n this.remove();\r\n this._link.is = false;\r\n return this\r\n },\r\n clear: function() {\r\n this._clearChildrenFuncIri();\r\n this._getJQElement().empty();\r\n return this\r\n },\r\n toBackground: function() {\r\n var elem = this.element;\r\n var parent = elem.parentNode;\r\n parent && parent.insertBefore(elem, parent.firstChild);\r\n return this\r\n },\r\n toForeground: function() {\r\n var elem = this.element;\r\n var parent = elem.parentNode;\r\n parent && parent.appendChild(elem);\r\n return this\r\n },\r\n attr: function(attrs) {\r\n return baseAttr(this, attrs)\r\n },\r\n smartAttr: function(attrs) {\r\n return this.attr(processHatchingAttrs(this, attrs))\r\n },\r\n css: function(styles) {\r\n return baseCss(this, styles)\r\n },\r\n animate: function(params, options, complete) {\r\n return baseAnimate(this, params, options, complete)\r\n },\r\n sharp: function(pos, sharpDirection) {\r\n return this.attr({\r\n sharp: pos || true,\r\n sharpDirection: sharpDirection\r\n })\r\n },\r\n _applyTransformation: function() {\r\n var tr = this._settings;\r\n var rotateX;\r\n var rotateY;\r\n var transformations = [];\r\n var sharpMode = tr.sharp;\r\n var trDirection = tr.sharpDirection || 1;\r\n var strokeOdd = tr[KEY_STROKE_WIDTH] % 2;\r\n var correctionX = strokeOdd && (\"h\" === sharpMode || true === sharpMode) ? SHARPING_CORRECTION * trDirection : 0;\r\n var correctionY = strokeOdd && (\"v\" === sharpMode || true === sharpMode) ? SHARPING_CORRECTION * trDirection : 0;\r\n transformations.push(\"translate(\" + ((tr.translateX || 0) + correctionX) + \",\" + ((tr.translateY || 0) + correctionY) + \")\");\r\n if (tr.rotate) {\r\n if (\"rotateX\" in tr) {\r\n rotateX = tr.rotateX\r\n } else {\r\n rotateX = tr.x\r\n }\r\n if (\"rotateY\" in tr) {\r\n rotateY = tr.rotateY\r\n } else {\r\n rotateY = tr.y\r\n }\r\n transformations.push(\"rotate(\" + tr.rotate + \",\" + (rotateX || 0) + \",\" + (rotateY || 0) + \")\")\r\n }\r\n var scaleXDefined = (0, _type.isDefined)(tr.scaleX);\r\n var scaleYDefined = (0, _type.isDefined)(tr.scaleY);\r\n if (scaleXDefined || scaleYDefined) {\r\n transformations.push(\"scale(\" + (scaleXDefined ? tr.scaleX : 1) + \",\" + (scaleYDefined ? tr.scaleY : 1) + \")\")\r\n }\r\n if (transformations.length) {\r\n this.element.setAttribute(\"transform\", transformations.join(\" \"))\r\n }\r\n },\r\n move: function(x, y, animate, animOptions) {\r\n var obj = {};\r\n (0, _type.isDefined)(x) && (obj.translateX = x);\r\n (0, _type.isDefined)(y) && (obj.translateY = y);\r\n if (!animate) {\r\n this.attr(obj)\r\n } else {\r\n this.animate(obj, animOptions)\r\n }\r\n return this\r\n },\r\n rotate: function(angle, x, y, animate, animOptions) {\r\n var obj = {\r\n rotate: angle || 0\r\n };\r\n (0, _type.isDefined)(x) && (obj.rotateX = x);\r\n (0, _type.isDefined)(y) && (obj.rotateY = y);\r\n if (!animate) {\r\n this.attr(obj)\r\n } else {\r\n this.animate(obj, animOptions)\r\n }\r\n return this\r\n },\r\n _getElementBBox: function() {\r\n var elem = this.element;\r\n var bBox;\r\n try {\r\n bBox = elem.getBBox && elem.getBBox()\r\n } catch (e) {}\r\n return bBox || {\r\n x: 0,\r\n y: 0,\r\n width: elem.offsetWidth || 0,\r\n height: elem.offsetHeight || 0\r\n }\r\n },\r\n getBBox: function() {\r\n var transformation = this._settings;\r\n var bBox = this._getElementBBox();\r\n if (transformation.rotate) {\r\n bBox = (0, _utils.rotateBBox)(bBox, [(\"rotateX\" in transformation ? transformation.rotateX : transformation.x) || 0, (\"rotateY\" in transformation ? transformation.rotateY : transformation.y) || 0], -transformation.rotate)\r\n } else {\r\n bBox = (0, _utils.normalizeBBox)(bBox)\r\n }\r\n return bBox\r\n },\r\n markup: function() {\r\n return (0, _svg.getSvgMarkup)(this.element)\r\n },\r\n getOffset: function() {\r\n return this._getJQElement().offset()\r\n },\r\n stopAnimation: function(disableComplete) {\r\n var animation = this.animation;\r\n animation && animation.stop(disableComplete);\r\n return this\r\n },\r\n setTitle: function(text) {\r\n var titleElem = createElement(\"title\");\r\n titleElem.textContent = text || \"\";\r\n this.element.appendChild(titleElem)\r\n },\r\n removeTitle: function() {\r\n detachTitleElements(this.element)\r\n },\r\n data: function(obj, val) {\r\n var elem = this.element;\r\n var key;\r\n if (void 0 !== val) {\r\n elem[obj] = val\r\n } else {\r\n for (key in obj) {\r\n elem[key] = obj[key]\r\n }\r\n }\r\n return this\r\n },\r\n on: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n _events_engine.default.on.apply(_events_engine.default, args);\r\n return this\r\n },\r\n off: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n _events_engine.default.off.apply(_events_engine.default, args);\r\n return this\r\n },\r\n trigger: function() {\r\n var args = [this._getJQElement()];\r\n args.push.apply(args, arguments);\r\n _events_engine.default.trigger.apply(_events_engine.default, args);\r\n return this\r\n }\r\n};\r\nvar PathSvgElement = function(renderer, type) {\r\n SvgElement.call(this, renderer, \"path\", type)\r\n};\r\nexports.PathSvgElement = PathSvgElement;\r\nPathSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(PathSvgElement.prototype, {\r\n constructor: PathSvgElement,\r\n attr: pathAttr,\r\n animate: pathAnimate\r\n});\r\nvar ArcSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"path\", \"arc\")\r\n};\r\nexports.ArcSvgElement = ArcSvgElement;\r\nArcSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(ArcSvgElement.prototype, {\r\n constructor: ArcSvgElement,\r\n attr: arcAttr,\r\n animate: arcAnimate\r\n});\r\nvar RectSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"rect\")\r\n};\r\nexports.RectSvgElement = RectSvgElement;\r\nRectSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(RectSvgElement.prototype, {\r\n constructor: RectSvgElement,\r\n attr: rectAttr\r\n});\r\nvar TextSvgElement = function(renderer) {\r\n SvgElement.call(this, renderer, \"text\");\r\n this.css({\r\n \"white-space\": \"pre\"\r\n })\r\n};\r\nexports.TextSvgElement = TextSvgElement;\r\nTextSvgElement.prototype = objectCreate(SvgElement.prototype);\r\nextend(TextSvgElement.prototype, {\r\n constructor: TextSvgElement,\r\n attr: textAttr,\r\n css: textCss,\r\n applyEllipsis: applyEllipsis,\r\n setMaxSize: setMaxSize,\r\n restoreText: restoreText,\r\n _getLineHeight: function() {\r\n return !isNaN(parseFloat(this._styles[KEY_FONT_SIZE])) ? this._styles[KEY_FONT_SIZE] : DEFAULT_FONT_SIZE\r\n }\r\n});\r\n\r\nfunction updateIndexes(items, k) {\r\n var i;\r\n var item;\r\n for (i = k; item = items[i]; ++i) {\r\n item._link.i = i\r\n }\r\n}\r\n\r\nfunction linkItem(target, container) {\r\n var items = container._links;\r\n var key = target._link.after = target._link.after || container._linkAfter;\r\n var i;\r\n var item;\r\n if (key) {\r\n for (i = 0;\r\n (item = items[i]) && item._link.name !== key; ++i) {}\r\n if (item) {\r\n for (++i;\r\n (item = items[i]) && item._link.after === key; ++i) {}\r\n }\r\n } else {\r\n i = items.length\r\n }\r\n items.splice(i, 0, target);\r\n updateIndexes(items, i)\r\n}\r\n\r\nfunction unlinkItem(target) {\r\n var i;\r\n var items = target._link.to._links;\r\n for (i = 0; items[i] !== target; ++i) {}\r\n items.splice(i, 1);\r\n updateIndexes(items, i)\r\n}\r\n\r\nfunction Renderer(options) {\r\n var that = this;\r\n that.root = that._createElement(\"svg\", {\r\n xmlns: \"http://www.w3.org/2000/svg\",\r\n version: \"1.1\",\r\n fill: NONE,\r\n stroke: NONE,\r\n \"stroke-width\": 0\r\n }).attr({\r\n \"class\": options.cssClass\r\n }).css({\r\n \"line-height\": \"normal\",\r\n \"-ms-user-select\": NONE,\r\n \"-moz-user-select\": NONE,\r\n \"-webkit-user-select\": NONE,\r\n \"-webkit-tap-highlight-color\": \"rgba(0, 0, 0, 0)\",\r\n display: \"block\",\r\n overflow: \"hidden\"\r\n });\r\n that._init();\r\n that.pathModified = !!options.pathModified;\r\n that._$container = (0, _renderer.default)(options.container);\r\n that.root.append({\r\n element: options.container\r\n });\r\n that.fixPlacement();\r\n that._locker = 0;\r\n that._backed = false\r\n}\r\nRenderer.prototype = {\r\n constructor: Renderer,\r\n _init: function() {\r\n var that = this;\r\n that._defs = that._createElement(\"defs\").append(that.root);\r\n that._animationController = new _animation.AnimationController(that.root.element);\r\n that._animation = {\r\n enabled: true,\r\n duration: 1e3,\r\n easing: \"easeOutCubic\"\r\n }\r\n },\r\n fixPlacement: function() {\r\n if (!_browser.default.mozilla && !_browser.default.msie) {\r\n return\r\n }\r\n var box = getBoundingClientRect(this._$container.get(0));\r\n var dx = roundValue(box.left % 1, 2);\r\n var dy = roundValue(box.top % 1, 2);\r\n if (_browser.default.msie) {\r\n this.root.css({\r\n transform: \"translate(\" + -dx + \"px,\" + -dy + \"px)\"\r\n })\r\n } else {\r\n if (_browser.default.mozilla) {\r\n this.root.move(-dx, -dy)\r\n }\r\n }\r\n },\r\n removePlacementFix: function() {\r\n if (!_browser.default.mozilla && !_browser.default.msie) {\r\n return\r\n }\r\n if (_browser.default.msie) {\r\n this.root.css({\r\n transform: \"\"\r\n })\r\n } else {\r\n if (_browser.default.mozilla) {\r\n this.root.attr({\r\n transform: null\r\n })\r\n }\r\n }\r\n },\r\n setOptions: function(options) {\r\n var that = this;\r\n that.rtl = !!options.rtl;\r\n that.encodeHtml = !!options.encodeHtml;\r\n that.updateAnimationOptions(options.animation || {});\r\n that.root.attr({\r\n direction: that.rtl ? \"rtl\" : \"ltr\"\r\n });\r\n return that\r\n },\r\n _createElement: function(tagName, attr, type) {\r\n var elem = new SvgElement(this, tagName, type);\r\n attr && elem.attr(attr);\r\n return elem\r\n },\r\n lock: function() {\r\n var that = this;\r\n if (0 === that._locker) {\r\n that._backed = !that._$container.is(\":visible\");\r\n if (that._backed) {\r\n backupRoot(that.root)\r\n }\r\n }++that._locker;\r\n return that\r\n },\r\n unlock: function() {\r\n var that = this;\r\n --that._locker;\r\n if (0 === that._locker) {\r\n if (that._backed) {\r\n restoreRoot(that.root, that._$container[0]);\r\n that.fixPlacement()\r\n }\r\n that._backed = false\r\n }\r\n return that\r\n },\r\n resize: function(width, height) {\r\n if (width >= 0 && height >= 0) {\r\n this.root.attr({\r\n width: width,\r\n height: height\r\n })\r\n }\r\n return this\r\n },\r\n dispose: function() {\r\n var that = this;\r\n var key;\r\n that.root.dispose();\r\n that._defs.dispose();\r\n that._animationController.dispose();\r\n fixFuncIriCallbacks.removeByRenderer(that);\r\n for (key in that) {\r\n that[key] = null\r\n }\r\n return that\r\n },\r\n animationEnabled: function() {\r\n return !!this._animation.enabled\r\n },\r\n updateAnimationOptions: function(newOptions) {\r\n extend(this._animation, newOptions);\r\n return this\r\n },\r\n stopAllAnimations: function(lock) {\r\n this._animationController[lock ? \"lock\" : \"stop\"]();\r\n return this\r\n },\r\n animateElement: function(element, params, options) {\r\n this._animationController.animateElement(element, params, options);\r\n return this\r\n },\r\n svg: function() {\r\n this.removePlacementFix();\r\n var markup = this.root.markup();\r\n this.fixPlacement();\r\n return markup\r\n },\r\n getRootOffset: function() {\r\n return this.root.getOffset()\r\n },\r\n onEndAnimation: function(endAnimation) {\r\n this._animationController.onEndAnimation(endAnimation)\r\n },\r\n rect: function(x, y, width, height) {\r\n var elem = new RectSvgElement(this);\r\n return elem.attr({\r\n x: x || 0,\r\n y: y || 0,\r\n width: width || 0,\r\n height: height || 0\r\n })\r\n },\r\n simpleRect: function() {\r\n return this._createElement(\"rect\")\r\n },\r\n circle: function(x, y, r) {\r\n return this._createElement(\"circle\", {\r\n cx: x || 0,\r\n cy: y || 0,\r\n r: r || 0\r\n })\r\n },\r\n g: function() {\r\n return this._createElement(\"g\")\r\n },\r\n image: function image(x, y, w, h, href, location) {\r\n var image = this._createElement(\"image\", {\r\n x: x || 0,\r\n y: y || 0,\r\n width: w || 0,\r\n height: h || 0,\r\n preserveAspectRatio: preserveAspectRatioMap[(0, _utils.normalizeEnum)(location)] || NONE\r\n });\r\n image.element.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", href || \"\");\r\n return image\r\n },\r\n path: function(points, type) {\r\n var elem = new PathSvgElement(this, type);\r\n return elem.attr({\r\n points: points || []\r\n })\r\n },\r\n arc: function(x, y, innerRadius, outerRadius, startAngle, endAngle) {\r\n var elem = new ArcSvgElement(this);\r\n return elem.attr({\r\n x: x || 0,\r\n y: y || 0,\r\n innerRadius: innerRadius || 0,\r\n outerRadius: outerRadius || 0,\r\n startAngle: startAngle || 0,\r\n endAngle: endAngle || 0\r\n })\r\n },\r\n text: function(_text, x, y) {\r\n var elem = new TextSvgElement(this);\r\n return elem.attr({\r\n text: _text,\r\n x: x || 0,\r\n y: y || 0\r\n })\r\n },\r\n linearGradient: function(stops) {\r\n var id = getNextDefsSvgId();\r\n var that = this;\r\n var gradient = that._createElement(\"linearGradient\", {\r\n id: id\r\n }).append(that._defs);\r\n gradient.id = id;\r\n stops.forEach(function(stop) {\r\n that._createElement(\"stop\", {\r\n offset: stop.offset,\r\n \"stop-color\": stop[\"stop-color\"]\r\n }).append(gradient)\r\n });\r\n return gradient\r\n },\r\n pattern: function pattern(color, hatching, _id) {\r\n hatching = hatching || {};\r\n var that = this;\r\n var step = hatching.step || 6;\r\n var stepTo2 = step / 2;\r\n var stepBy15 = 1.5 * step;\r\n var id = _id || getNextDefsSvgId();\r\n var d = \"right\" === (0, _utils.normalizeEnum)(hatching.direction) ? \"M \" + stepTo2 + \" \" + -stepTo2 + \" L \" + -stepTo2 + \" \" + stepTo2 + \" M 0 \" + step + \" L \" + step + \" 0 M \" + stepBy15 + \" \" + stepTo2 + \" L \" + stepTo2 + \" \" + stepBy15 : \"M 0 0 L \" + step + \" \" + step + \" M \" + -stepTo2 + \" \" + stepTo2 + \" L \" + stepTo2 + \" \" + stepBy15 + \" M \" + stepTo2 + \" \" + -stepTo2 + \" L \" + stepBy15 + \" \" + stepTo2;\r\n var pattern = that._createElement(\"pattern\", {\r\n id: id,\r\n width: step,\r\n height: step,\r\n patternUnits: \"userSpaceOnUse\"\r\n }).append(that._defs);\r\n pattern.id = id;\r\n that.rect(0, 0, step, step).attr({\r\n fill: color,\r\n opacity: hatching.opacity\r\n }).append(pattern);\r\n new PathSvgElement(this).attr({\r\n d: d,\r\n \"stroke-width\": hatching.width || 1,\r\n stroke: color\r\n }).append(pattern);\r\n return pattern\r\n },\r\n _getPointsWithYOffset: function(points, offset) {\r\n return points.map(function(point, index) {\r\n if (index % 2 !== 0) {\r\n return point + offset\r\n }\r\n return point\r\n })\r\n },\r\n clipShape: function(method, methodArgs) {\r\n var that = this;\r\n var id = getNextDefsSvgId();\r\n var clipPath = that._createElement(\"clipPath\", {\r\n id: id\r\n }).append(that._defs);\r\n var shape = method.apply(that, methodArgs).append(clipPath);\r\n shape.id = id;\r\n shape.remove = function() {\r\n throw \"Not implemented\"\r\n };\r\n shape.dispose = function() {\r\n clipPath.dispose();\r\n clipPath = null;\r\n return this\r\n };\r\n return shape\r\n },\r\n clipRect: function(x, y, width, height) {\r\n return this.clipShape(this.rect, arguments)\r\n },\r\n clipCircle: function(x, y, radius) {\r\n return this.clipShape(this.circle, arguments)\r\n },\r\n shadowFilter: function(x, y, width, height, offsetX, offsetY, blur, color, opacity) {\r\n var that = this;\r\n var id = getNextDefsSvgId();\r\n var filter = that._createElement(\"filter\", {\r\n id: id,\r\n x: x || 0,\r\n y: y || 0,\r\n width: width || 0,\r\n height: height || 0\r\n }).append(that._defs);\r\n var gaussianBlur = that._createElement(\"feGaussianBlur\", {\r\n \"in\": \"SourceGraphic\",\r\n result: \"gaussianBlurResult\",\r\n stdDeviation: blur || 0\r\n }).append(filter);\r\n var offset = that._createElement(\"feOffset\", {\r\n \"in\": \"gaussianBlurResult\",\r\n result: \"offsetResult\",\r\n dx: offsetX || 0,\r\n dy: offsetY || 0\r\n }).append(filter);\r\n var flood = that._createElement(\"feFlood\", {\r\n result: \"floodResult\",\r\n \"flood-color\": color || \"\",\r\n \"flood-opacity\": opacity\r\n }).append(filter);\r\n var composite = that._createElement(\"feComposite\", {\r\n \"in\": \"floodResult\",\r\n in2: \"offsetResult\",\r\n operator: \"in\",\r\n result: \"compositeResult\"\r\n }).append(filter);\r\n var finalComposite = that._createElement(\"feComposite\", {\r\n \"in\": \"SourceGraphic\",\r\n in2: \"compositeResult\",\r\n operator: \"over\"\r\n }).append(filter);\r\n filter.id = id;\r\n filter.gaussianBlur = gaussianBlur;\r\n filter.offset = offset;\r\n filter.flood = flood;\r\n filter.composite = composite;\r\n filter.finalComposite = finalComposite;\r\n filter.attr = function(attrs) {\r\n var that = this;\r\n var filterAttrs = {};\r\n var offsetAttrs = {};\r\n var floodAttrs = {};\r\n \"x\" in attrs && (filterAttrs.x = attrs.x);\r\n \"y\" in attrs && (filterAttrs.y = attrs.y);\r\n \"width\" in attrs && (filterAttrs.width = attrs.width);\r\n \"height\" in attrs && (filterAttrs.height = attrs.height);\r\n baseAttr(that, filterAttrs);\r\n \"blur\" in attrs && that.gaussianBlur.attr({\r\n stdDeviation: attrs.blur\r\n });\r\n \"offsetX\" in attrs && (offsetAttrs.dx = attrs.offsetX);\r\n \"offsetY\" in attrs && (offsetAttrs.dy = attrs.offsetY);\r\n that.offset.attr(offsetAttrs);\r\n \"color\" in attrs && (floodAttrs[\"flood-color\"] = attrs.color);\r\n \"opacity\" in attrs && (floodAttrs[\"flood-opacity\"] = attrs.opacity);\r\n that.flood.attr(floodAttrs);\r\n return that\r\n };\r\n return filter\r\n },\r\n brightFilter: function(type, slope) {\r\n var that = this;\r\n var id = getNextDefsSvgId();\r\n var filter = that._createElement(\"filter\", {\r\n id: id\r\n }).append(that._defs);\r\n var componentTransferElement = that._createElement(\"feComponentTransfer\").append(filter);\r\n var attrs = {\r\n type: type,\r\n slope: slope\r\n };\r\n filter.id = id;\r\n that._createElement(\"feFuncR\", attrs).append(componentTransferElement);\r\n that._createElement(\"feFuncG\", attrs).append(componentTransferElement);\r\n that._createElement(\"feFuncB\", attrs).append(componentTransferElement);\r\n return filter\r\n },\r\n getGrayScaleFilter: function() {\r\n if (this._grayScaleFilter) {\r\n return this._grayScaleFilter\r\n }\r\n var that = this;\r\n var id = getNextDefsSvgId();\r\n var filter = that._createElement(\"filter\", {\r\n id: id\r\n }).append(that._defs);\r\n that._createElement(\"feColorMatrix\").attr({\r\n type: \"matrix\",\r\n values: \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 0.6 0\"\r\n }).append(filter);\r\n filter.id = id;\r\n that._grayScaleFilter = filter;\r\n return filter\r\n },\r\n initHatching: function() {\r\n var storage = this._hatchingStorage = this._hatchingStorage || {\r\n byHash: {},\r\n baseId: getNextDefsSvgId()\r\n };\r\n var byHash = storage.byHash;\r\n var name;\r\n for (name in byHash) {\r\n byHash[name].pattern.dispose()\r\n }\r\n storage.byHash = {};\r\n storage.refToHash = {};\r\n storage.nextId = 0\r\n },\r\n lockHatching: function(color, hatching, ref) {\r\n var storage = this._hatchingStorage;\r\n var hash = getHatchingHash(color, hatching);\r\n var storageItem;\r\n var pattern;\r\n if (storage.refToHash[ref] !== hash) {\r\n if (ref) {\r\n this.releaseHatching(ref)\r\n }\r\n storageItem = storage.byHash[hash];\r\n if (!storageItem) {\r\n pattern = this.pattern(color, hatching, storage.baseId + \"-hatching-\" + storage.nextId++);\r\n storageItem = storage.byHash[hash] = {\r\n pattern: pattern,\r\n count: 0\r\n };\r\n storage.refToHash[pattern.id] = hash\r\n }++storageItem.count;\r\n ref = storageItem.pattern.id\r\n }\r\n return ref\r\n },\r\n releaseHatching: function(ref) {\r\n var storage = this._hatchingStorage;\r\n var hash = storage.refToHash[ref];\r\n var storageItem = storage.byHash[hash];\r\n if (storageItem && 0 === --storageItem.count) {\r\n storageItem.pattern.dispose();\r\n delete storage.byHash[hash];\r\n delete storage.refToHash[ref]\r\n }\r\n }\r\n};\r\n\r\nfunction getHatchingHash(color, hatching) {\r\n return \"@\" + color + \"::\" + hatching.step + \":\" + hatching.width + \":\" + hatching.opacity + \":\" + hatching.direction\r\n}\r\nvar fixFuncIriCallbacks = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(fn) {\r\n callbacks.push(fn)\r\n },\r\n remove: function(fn) {\r\n callbacks = callbacks.filter(function(el) {\r\n return el !== fn\r\n })\r\n },\r\n removeByRenderer: function(renderer) {\r\n callbacks = callbacks.filter(function(el) {\r\n return el.renderer !== renderer\r\n })\r\n },\r\n fire: function() {\r\n callbacks.forEach(function(fn) {\r\n fn()\r\n })\r\n }\r\n }\r\n}();\r\nvar refreshPaths = function() {\r\n fixFuncIriCallbacks.fire()\r\n};\r\nexports.refreshPaths = refreshPaths;\r\n","/**\r\n * DevExtreme (viz/components/legend.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 = exports.Legend = void 0;\r\nvar _utils = require(\"../core/utils\");\r\nvar _extend2 = require(\"../../core/utils/extend\");\r\nvar _layout_element = require(\"../core/layout_element\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _title = require(\"../core/title\");\r\nvar _object = require(\"../../core/utils/object\");\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _renderer = require(\"../core/renderers/renderer\");\r\nvar _deferred = require(\"../../core/utils/deferred\");\r\nvar _Number = Number;\r\nvar _math = Math;\r\nvar _round = _math.round;\r\nvar _max = _math.max;\r\nvar _min = _math.min;\r\nvar _ceil = _math.ceil;\r\nvar _isDefined = _type.isDefined;\r\nvar _isFunction = _type.isFunction;\r\nvar _enumParser = _utils.enumParser;\r\nvar _normalizeEnum = _utils.normalizeEnum;\r\nvar _extend = _extend2.extend;\r\nvar DEFAULT_MARGIN = 10;\r\nvar DEFAULT_MARKER_HATCHING_WIDTH = 2;\r\nvar DEFAULT_MARKER_HATCHING_STEP = 5;\r\nvar CENTER = \"center\";\r\nvar RIGHT = \"right\";\r\nvar LEFT = \"left\";\r\nvar TOP = \"top\";\r\nvar BOTTOM = \"bottom\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar VERTICAL = \"vertical\";\r\nvar INSIDE = \"inside\";\r\nvar OUTSIDE = \"outside\";\r\nvar NONE = \"none\";\r\nvar HEIGHT = \"height\";\r\nvar WIDTH = \"width\";\r\nvar parseHorizontalAlignment = _enumParser([LEFT, CENTER, RIGHT]);\r\nvar parseVerticalAlignment = _enumParser([TOP, BOTTOM]);\r\nvar parseOrientation = _enumParser([VERTICAL, HORIZONTAL]);\r\nvar parseItemTextPosition = _enumParser([LEFT, RIGHT, TOP, BOTTOM]);\r\nvar parsePosition = _enumParser([OUTSIDE, INSIDE]);\r\nvar parseItemsAlignment = _enumParser([LEFT, CENTER, RIGHT]);\r\n\r\nfunction getState(state, color, stateName) {\r\n if (!state) {\r\n return\r\n }\r\n var colorFromAction = state.fill;\r\n return (0, _extend2.extend)({}, {\r\n state: stateName,\r\n fill: colorFromAction === NONE ? color : colorFromAction,\r\n opacity: state.opacity,\r\n hatching: _extend({}, state.hatching, {\r\n step: DEFAULT_MARKER_HATCHING_STEP,\r\n width: DEFAULT_MARKER_HATCHING_WIDTH\r\n })\r\n })\r\n}\r\n\r\nfunction getAttributes(item, state, size) {\r\n var attrs = (0, _renderer.processHatchingAttrs)(item, state);\r\n if (attrs.fill && 0 === attrs.fill.indexOf(\"DevExpress\")) {\r\n attrs.fill = (0, _renderer.getFuncIri)(attrs.fill)\r\n }\r\n attrs.opacity = attrs.opacity >= 0 ? attrs.opacity : 1;\r\n return (0, _extend2.extend)({}, attrs, {\r\n size: size\r\n })\r\n}\r\n\r\nfunction parseMargins(options) {\r\n var margin = options.margin;\r\n if (margin >= 0) {\r\n margin = _Number(options.margin);\r\n margin = {\r\n top: margin,\r\n bottom: margin,\r\n left: margin,\r\n right: margin\r\n }\r\n } else {\r\n margin = {\r\n top: margin.top >= 0 ? _Number(margin.top) : DEFAULT_MARGIN,\r\n bottom: margin.bottom >= 0 ? _Number(margin.bottom) : DEFAULT_MARGIN,\r\n left: margin.left >= 0 ? _Number(margin.left) : DEFAULT_MARGIN,\r\n right: margin.right >= 0 ? _Number(margin.right) : DEFAULT_MARGIN\r\n }\r\n }\r\n options.margin = margin\r\n}\r\n\r\nfunction getSizeItem(options, markerBBox, labelBBox) {\r\n var defaultXMargin = 7;\r\n var defaultTopMargin = 4;\r\n var width;\r\n var height;\r\n switch (options.itemTextPosition) {\r\n case LEFT:\r\n case RIGHT:\r\n width = markerBBox.width + defaultXMargin + labelBBox.width;\r\n height = _max(markerBBox.height, labelBBox.height);\r\n break;\r\n case TOP:\r\n case BOTTOM:\r\n width = _max(markerBBox.width, labelBBox.width);\r\n height = markerBBox.height + defaultTopMargin + labelBBox.height\r\n }\r\n return {\r\n width: width,\r\n height: height\r\n }\r\n}\r\n\r\nfunction calculateBBoxLabelAndMarker(markerBBox, labelBBox) {\r\n var bBox = {};\r\n bBox.left = _min(markerBBox.x, labelBBox.x);\r\n bBox.top = _min(markerBBox.y, labelBBox.y);\r\n bBox.right = _max(markerBBox.x + markerBBox.width, labelBBox.x + labelBBox.width);\r\n bBox.bottom = _max(markerBBox.y + markerBBox.height, labelBBox.y + labelBBox.height);\r\n return bBox\r\n}\r\n\r\nfunction applyMarkerState(id, idToIndexMap, items, stateName) {\r\n var item = idToIndexMap && items[idToIndexMap[id]];\r\n if (item) {\r\n item.renderMarker(item.states[stateName])\r\n }\r\n}\r\n\r\nfunction parseOptions(options, textField, allowInsidePosition) {\r\n if (!options) {\r\n return null\r\n }\r\n parseMargins(options);\r\n options.horizontalAlignment = parseHorizontalAlignment(options.horizontalAlignment, RIGHT);\r\n options.verticalAlignment = parseVerticalAlignment(options.verticalAlignment, options.horizontalAlignment === CENTER ? BOTTOM : TOP);\r\n options.orientation = parseOrientation(options.orientation, options.horizontalAlignment === CENTER ? HORIZONTAL : VERTICAL);\r\n options.itemTextPosition = parseItemTextPosition(options.itemTextPosition, options.orientation === HORIZONTAL ? BOTTOM : RIGHT);\r\n options.position = allowInsidePosition ? parsePosition(options.position, OUTSIDE) : OUTSIDE;\r\n options.itemsAlignment = parseItemsAlignment(options.itemsAlignment, null);\r\n options.hoverMode = _normalizeEnum(options.hoverMode);\r\n options.customizeText = _isFunction(options.customizeText) ? options.customizeText : function() {\r\n return this[textField]\r\n };\r\n options.customizeHint = _isFunction(options.customizeHint) ? options.customizeHint : _common.noop;\r\n options._incidentOccurred = options._incidentOccurred || _common.noop;\r\n return options\r\n}\r\n\r\nfunction createSquareMarker(renderer, size) {\r\n return renderer.rect(0, 0, size, size)\r\n}\r\n\r\nfunction createCircleMarker(renderer, size) {\r\n return renderer.circle(size / 2, size / 2, size / 2)\r\n}\r\n\r\nfunction isCircle(type) {\r\n return \"circle\" === _normalizeEnum(type)\r\n}\r\n\r\nfunction inRect(rect, x, y) {\r\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom\r\n}\r\n\r\nfunction checkLinesSize(lines, layoutOptions, countItems, margins) {\r\n var position = {\r\n x: 0,\r\n y: 0\r\n };\r\n var maxMeasureLength = 0;\r\n var maxAltMeasureLength = 0;\r\n var margin = 0;\r\n if (\"y\" === layoutOptions.direction) {\r\n margin = margins.top + margins.bottom\r\n } else {\r\n margin = margins.left + margins.right\r\n }\r\n lines.forEach(function(line, i) {\r\n var firstItem = line[0];\r\n var lineLength = line.length;\r\n line.forEach(function(item, index) {\r\n var offset = item.offset || layoutOptions.spacing;\r\n position[layoutOptions.direction] += item[layoutOptions.measure] + (index !== lineLength - 1 ? offset : 0);\r\n maxMeasureLength = _max(maxMeasureLength, position[layoutOptions.direction])\r\n });\r\n position[layoutOptions.direction] = 0;\r\n position[layoutOptions.altDirection] += firstItem[layoutOptions.altMeasure] + firstItem.altOffset || layoutOptions.altSpacing;\r\n maxAltMeasureLength = _max(maxAltMeasureLength, position[layoutOptions.altDirection])\r\n });\r\n if (maxMeasureLength + margin > layoutOptions.length) {\r\n layoutOptions.countItem = decreaseItemCount(layoutOptions, countItems);\r\n return true\r\n }\r\n}\r\n\r\nfunction decreaseItemCount(layoutOptions, countItems) {\r\n layoutOptions.altCountItem++;\r\n return _ceil(countItems / layoutOptions.altCountItem)\r\n}\r\n\r\nfunction getLineLength(line, layoutOptions) {\r\n return line.reduce(function(lineLength, item) {\r\n var offset = item.offset || layoutOptions.spacing;\r\n return lineLength + item[layoutOptions.measure] + offset\r\n }, 0)\r\n}\r\n\r\nfunction getMaxLineLength(lines, layoutOptions) {\r\n return lines.reduce(function(maxLineLength, line) {\r\n return _max(maxLineLength, getLineLength(line, layoutOptions))\r\n }, 0)\r\n}\r\n\r\nfunction getInitPositionForDirection(line, layoutOptions, maxLineLength) {\r\n var lineLength = getLineLength(line, layoutOptions);\r\n var initPosition;\r\n switch (layoutOptions.itemsAlignment) {\r\n case RIGHT:\r\n initPosition = maxLineLength - lineLength;\r\n break;\r\n case CENTER:\r\n initPosition = (maxLineLength - lineLength) / 2;\r\n break;\r\n default:\r\n initPosition = 0\r\n }\r\n return initPosition\r\n}\r\n\r\nfunction getPos(layoutOptions) {\r\n switch (layoutOptions.itemTextPosition) {\r\n case BOTTOM:\r\n return {\r\n horizontal: CENTER, vertical: TOP\r\n };\r\n case TOP:\r\n return {\r\n horizontal: CENTER, vertical: BOTTOM\r\n };\r\n case LEFT:\r\n return {\r\n horizontal: RIGHT, vertical: CENTER\r\n };\r\n case RIGHT:\r\n return {\r\n horizontal: LEFT, vertical: CENTER\r\n }\r\n }\r\n}\r\n\r\nfunction getLines(lines, layoutOptions, itemIndex) {\r\n var tableLine = {};\r\n if (itemIndex % layoutOptions.countItem === 0) {\r\n if (layoutOptions.markerOffset) {\r\n lines.push([], [])\r\n } else {\r\n lines.push([])\r\n }\r\n }\r\n if (layoutOptions.markerOffset) {\r\n tableLine.firstLine = lines[lines.length - 1];\r\n tableLine.secondLine = lines[lines.length - 2]\r\n } else {\r\n tableLine.firstLine = tableLine.secondLine = lines[lines.length - 1]\r\n }\r\n return tableLine\r\n}\r\n\r\nfunction setMaxInLine(line, measure) {\r\n var maxLineSize = line.reduce(function(maxLineSize, item) {\r\n var itemMeasure = item ? item[measure] : maxLineSize;\r\n return _max(maxLineSize, itemMeasure)\r\n }, 0);\r\n line.forEach(function(item) {\r\n if (item) {\r\n item[measure] = maxLineSize\r\n }\r\n })\r\n}\r\n\r\nfunction transpose(array) {\r\n var width = array.length;\r\n var height = array[0].length;\r\n var i;\r\n var j;\r\n var transposeArray = [];\r\n for (i = 0; i < height; i++) {\r\n transposeArray[i] = [];\r\n for (j = 0; j < width; j++) {\r\n transposeArray[i][j] = array[j][i]\r\n }\r\n }\r\n return transposeArray\r\n}\r\n\r\nfunction getAlign(position) {\r\n switch (position) {\r\n case TOP:\r\n case BOTTOM:\r\n return CENTER;\r\n case LEFT:\r\n return RIGHT;\r\n case RIGHT:\r\n return LEFT\r\n }\r\n}\r\nvar getMarkerCreator = function(type) {\r\n return isCircle(type) ? createCircleMarker : createSquareMarker\r\n};\r\n\r\nfunction getTitleHorizontalAlignment(options) {\r\n if (options.horizontalAlignment === CENTER) {\r\n return CENTER\r\n } else {\r\n if (options.itemTextPosition === RIGHT) {\r\n return LEFT\r\n } else {\r\n if (options.itemTextPosition === LEFT) {\r\n return RIGHT\r\n } else {\r\n return CENTER\r\n }\r\n }\r\n }\r\n}\r\nvar Legend = function(settings) {\r\n var that = this;\r\n that._renderer = settings.renderer;\r\n that._legendGroup = settings.group;\r\n that._backgroundClass = settings.backgroundClass;\r\n that._itemGroupClass = settings.itemGroupClass;\r\n that._textField = settings.textField;\r\n that._getCustomizeObject = settings.getFormatObject;\r\n that._titleGroupClass = settings.titleGroupClass;\r\n that._allowInsidePosition = settings.allowInsidePosition;\r\n that._widget = settings.widget;\r\n that._updated = false\r\n};\r\nexports.Legend = Legend;\r\nvar _Legend = Legend;\r\nvar legendPrototype = _Legend.prototype = (0, _object.clone)(_layout_element.LayoutElement.prototype);\r\n(0, _extend2.extend)(legendPrototype, {\r\n constructor: _Legend,\r\n getOptions: function() {\r\n return this._options\r\n },\r\n update: function() {\r\n var data = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n var options = arguments.length > 1 ? arguments[1] : void 0;\r\n var themeManagerTitleOptions = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var that = this;\r\n options = that._options = parseOptions(options, that._textField, that._allowInsidePosition) || {};\r\n var initMarkerSize = options.markerSize;\r\n this._updated = true;\r\n this._data = data.map(function(dataItem) {\r\n dataItem.size = _Number(dataItem.size > 0 ? dataItem.size : initMarkerSize);\r\n dataItem.marker = getAttributes(dataItem, dataItem.states.normal);\r\n Object.defineProperty(dataItem.marker, \"size\", {\r\n get: function() {\r\n return dataItem.size\r\n },\r\n set: function(value) {\r\n dataItem.size = value\r\n }\r\n });\r\n Object.defineProperty(dataItem.marker, \"opacity\", {\r\n get: function() {\r\n return dataItem.states.normal.opacity\r\n },\r\n set: function(value) {\r\n dataItem.states.normal.opacity = dataItem.states.hover.opacity = dataItem.states.selection.opacity = value\r\n }\r\n });\r\n return dataItem\r\n });\r\n if (options.customizeItems) {\r\n that._data = options.customizeItems(data.slice()) || data\r\n }\r\n that._boundingRect = {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0\r\n };\r\n if (that.isVisible() && !that._title) {\r\n that._title = new _title.Title({\r\n renderer: that._renderer,\r\n cssClass: that._titleGroupClass,\r\n root: that._legendGroup\r\n })\r\n }\r\n if (that._title) {\r\n var titleOptions = options.title;\r\n themeManagerTitleOptions.horizontalAlignment = getTitleHorizontalAlignment(options);\r\n that._title.update(themeManagerTitleOptions, titleOptions)\r\n }\r\n this.erase();\r\n return that\r\n },\r\n isVisible: function() {\r\n return this._options && this._options.visible\r\n },\r\n draw: function(width, height) {\r\n var that = this;\r\n var items = that._getItemData();\r\n that.erase();\r\n if (!(that.isVisible() && items && items.length)) {\r\n return that\r\n }\r\n that._insideLegendGroup = that._renderer.g().enableLinks().append(that._legendGroup);\r\n that._title.changeLink(that._insideLegendGroup);\r\n that._createBackground();\r\n if (that._title.hasText()) {\r\n var horizontalPadding = that._background ? 2 * that._options.paddingLeftRight : 0;\r\n that._title.draw(width - horizontalPadding, height)\r\n }\r\n that._markersGroup = that._renderer.g().attr({\r\n \"class\": that._itemGroupClass\r\n }).append(that._insideLegendGroup);\r\n that._createItems(items);\r\n that._updateElementsPosition(width, height);\r\n return that\r\n },\r\n _measureElements: function() {\r\n var options = this._options;\r\n var maxBBoxHeight = 0;\r\n this._items.forEach(function(item) {\r\n var labelBBox = item.label.getBBox();\r\n var markerBBox = item.marker.getBBox();\r\n item.markerBBox = markerBBox;\r\n item.markerSize = Math.max(markerBBox.width, markerBBox.height);\r\n var bBox = getSizeItem(options, markerBBox, labelBBox);\r\n item.labelBBox = labelBBox;\r\n item.bBox = bBox;\r\n maxBBoxHeight = _max(maxBBoxHeight, bBox.height)\r\n });\r\n if (options.equalRowHeight) {\r\n this._items.forEach(function(item) {\r\n return item.bBox.height = maxBBoxHeight\r\n })\r\n }\r\n },\r\n _updateElementsPosition: function(width, height) {\r\n var that = this;\r\n var options = that._options;\r\n this._size = {\r\n width: width,\r\n height: height\r\n };\r\n that._measureElements();\r\n that._locateElements(options);\r\n that._finalUpdate(options);\r\n var size = that.getLayoutOptions();\r\n if (size.width > width || size.height > height) {\r\n that.freeSpace()\r\n }\r\n },\r\n _createItems: function(items) {\r\n var that = this;\r\n var options = that._options;\r\n var renderer = that._renderer;\r\n var createMarker = getMarkerCreator(options.markerShape);\r\n that._markersId = {};\r\n var templateFunction = !options.markerTemplate ? function(dataItem, group) {\r\n var attrs = dataItem.marker;\r\n createMarker(renderer, attrs.size).attr({\r\n fill: attrs.fill,\r\n opacity: attrs.opacity\r\n }).append({\r\n element: group\r\n })\r\n } : options.markerTemplate;\r\n var template = that._widget._getTemplate(templateFunction);\r\n var markersGroup = that._markersGroup;\r\n markersGroup.css((0, _utils.patchFontOptions)(options.font));\r\n that._deferredItems = [];\r\n that._templatesGroups = [];\r\n that._items = (items || []).map(function(dataItem, i) {\r\n var stateOfDataItem = dataItem.states;\r\n var normalState = stateOfDataItem.normal;\r\n var normalStateFill = normalState.fill;\r\n dataItem.size = dataItem.marker.size;\r\n var states = {\r\n normal: (0, _extend2.extend)(normalState, {\r\n fill: normalStateFill || options.markerColor || options.defaultColor,\r\n state: \"normal\"\r\n }),\r\n hover: getState(stateOfDataItem.hover, normalStateFill, \"hovered\"),\r\n selection: getState(stateOfDataItem.selection, normalStateFill, \"selected\")\r\n };\r\n dataItem.states = states;\r\n var itemGroup = renderer.g().append(markersGroup);\r\n var markerGroup = renderer.g().attr({\r\n \"class\": \"dxl-marker\"\r\n }).append(itemGroup);\r\n that._deferredItems[i] = new _deferred.Deferred;\r\n that._templatesGroups.push(markerGroup);\r\n var item = {\r\n label: that._createLabel(dataItem, itemGroup),\r\n marker: markerGroup,\r\n renderer: renderer,\r\n group: itemGroup,\r\n tracker: {\r\n id: dataItem.id,\r\n argument: dataItem.argument,\r\n argumentIndex: dataItem.argumentIndex\r\n },\r\n states: states,\r\n itemTextPosition: options.itemTextPosition,\r\n markerOffset: 0,\r\n bBoxes: [],\r\n renderMarker: function(state) {\r\n dataItem.marker = getAttributes(item, state, dataItem.size);\r\n markerGroup.clear();\r\n template.render({\r\n model: dataItem,\r\n container: markerGroup.element,\r\n onRendered: that._deferredItems[i].resolve\r\n })\r\n }\r\n };\r\n item.renderMarker(states.normal);\r\n that._createHint(dataItem, itemGroup);\r\n if (void 0 !== dataItem.id) {\r\n that._markersId[dataItem.id] = i\r\n }\r\n return item\r\n })\r\n },\r\n getTemplatesGroups: function() {\r\n return this._templatesGroups || []\r\n },\r\n getTemplatesDef: function() {\r\n return this._deferredItems || []\r\n },\r\n _getItemData: function() {\r\n var items = this._data || [];\r\n var options = this._options || {};\r\n if (options.inverted) {\r\n items = items.slice().reverse()\r\n }\r\n return items.filter(function(i) {\r\n return i.visible\r\n })\r\n },\r\n _finalUpdate: function(options) {\r\n this._adjustBackgroundSettings(options);\r\n this._setBoundingRect(options.margin)\r\n },\r\n erase: function() {\r\n var that = this;\r\n var insideLegendGroup = that._insideLegendGroup;\r\n insideLegendGroup && insideLegendGroup.dispose();\r\n that._insideLegendGroup = that._markersGroup = that._x1 = that._x2 = that._y2 = that._y2 = null;\r\n return that\r\n },\r\n _locateElements: function(locationOptions) {\r\n this._moveInInitialValues();\r\n this._locateRowsColumns(locationOptions)\r\n },\r\n _moveInInitialValues: function() {\r\n var that = this;\r\n that._title.hasText() && that._title.move([0, 0]);\r\n that._legendGroup && that._legendGroup.move(0, 0);\r\n that._background && that._background.attr({\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n })\r\n },\r\n applySelected: function(id) {\r\n applyMarkerState(id, this._markersId, this._items, \"selection\");\r\n return this\r\n },\r\n applyHover: function(id) {\r\n applyMarkerState(id, this._markersId, this._items, \"hover\");\r\n return this\r\n },\r\n resetItem: function(id) {\r\n applyMarkerState(id, this._markersId, this._items, \"normal\");\r\n return this\r\n },\r\n _createLabel: function(data, group) {\r\n var labelFormatObject = this._getCustomizeObject(data);\r\n var options = this._options;\r\n var align = getAlign(options.itemTextPosition);\r\n var text = options.customizeText.call(labelFormatObject, labelFormatObject);\r\n var fontStyle = _isDefined(data.textOpacity) ? {\r\n color: options.font.color,\r\n opacity: data.textOpacity\r\n } : {};\r\n return this._renderer.text(text, 0, 0).css((0, _utils.patchFontOptions)(fontStyle)).attr({\r\n align: align,\r\n \"class\": options.cssClass\r\n }).append(group)\r\n },\r\n _createHint: function(data, group) {\r\n var labelFormatObject = this._getCustomizeObject(data);\r\n var text = this._options.customizeHint.call(labelFormatObject, labelFormatObject);\r\n if (_isDefined(text) && \"\" !== text) {\r\n group.setTitle(text)\r\n }\r\n },\r\n _createBackground: function() {\r\n var that = this;\r\n var isInside = that._options.position === INSIDE;\r\n var color = that._options.backgroundColor;\r\n var fill = color || (isInside ? that._options.containerBackgroundColor : NONE);\r\n if (that._options.border.visible || (isInside || color) && color !== NONE) {\r\n that._background = that._renderer.rect(0, 0, 0, 0).attr({\r\n fill: fill,\r\n \"class\": that._backgroundClass\r\n }).append(that._insideLegendGroup)\r\n }\r\n },\r\n _locateRowsColumns: function(options) {\r\n var that = this;\r\n var iteration = 0;\r\n var layoutOptions = that._getItemsLayoutOptions();\r\n var countItems = that._items.length;\r\n var lines;\r\n do {\r\n lines = [];\r\n that._createLines(lines, layoutOptions);\r\n that._alignLines(lines, layoutOptions);\r\n iteration++\r\n } while (checkLinesSize(lines, layoutOptions, countItems, options.margin) && iteration < countItems);\r\n that._applyItemPosition(lines, layoutOptions)\r\n },\r\n _createLines: function(lines, layoutOptions) {\r\n this._items.forEach(function(item, i) {\r\n var tableLine = getLines(lines, layoutOptions, i);\r\n var labelBox = {\r\n width: item.labelBBox.width,\r\n height: item.labelBBox.height,\r\n element: item.label,\r\n bBox: item.labelBBox,\r\n pos: getPos(layoutOptions),\r\n itemIndex: i\r\n };\r\n var markerBox = {\r\n width: item.markerBBox.width,\r\n height: item.markerBBox.height,\r\n element: item.marker,\r\n pos: {\r\n horizontal: CENTER,\r\n vertical: CENTER\r\n },\r\n bBox: {\r\n width: item.markerBBox.width,\r\n height: item.markerBBox.height,\r\n x: item.markerBBox.x,\r\n y: item.markerBBox.y\r\n },\r\n itemIndex: i\r\n };\r\n var firstItem;\r\n var secondItem;\r\n var offsetDirection = layoutOptions.markerOffset ? \"altOffset\" : \"offset\";\r\n if (layoutOptions.inverseLabelPosition) {\r\n firstItem = labelBox;\r\n secondItem = markerBox\r\n } else {\r\n firstItem = markerBox;\r\n secondItem = labelBox\r\n }\r\n firstItem[offsetDirection] = layoutOptions.labelOffset;\r\n tableLine.secondLine.push(firstItem);\r\n tableLine.firstLine.push(secondItem)\r\n })\r\n },\r\n _alignLines: function(lines, layoutOptions) {\r\n var i;\r\n var measure = layoutOptions.altMeasure;\r\n lines.forEach(function(line) {\r\n return setMaxInLine(line, measure)\r\n });\r\n measure = layoutOptions.measure;\r\n if (layoutOptions.itemsAlignment) {\r\n if (layoutOptions.markerOffset) {\r\n for (i = 0; i < lines.length;) {\r\n transpose([lines[i++], lines[i++]]).forEach(processLine)\r\n }\r\n }\r\n } else {\r\n transpose(lines).forEach(processLine)\r\n }\r\n\r\n function processLine(line) {\r\n setMaxInLine(line, measure)\r\n }\r\n },\r\n _applyItemPosition: function(lines, layoutOptions) {\r\n var that = this;\r\n var position = {\r\n x: 0,\r\n y: 0\r\n };\r\n var maxLineLength = getMaxLineLength(lines, layoutOptions);\r\n lines.forEach(function(line) {\r\n var firstItem = line[0];\r\n var altOffset = firstItem.altOffset || layoutOptions.altSpacing;\r\n position[layoutOptions.direction] = getInitPositionForDirection(line, layoutOptions, maxLineLength);\r\n line.forEach(function(item) {\r\n var offset = item.offset || layoutOptions.spacing;\r\n var wrap = new _layout_element.WrapperLayoutElement(item.element, item.bBox);\r\n var itemBBoxOptions = {\r\n x: position.x,\r\n y: position.y,\r\n width: item.width,\r\n height: item.height\r\n };\r\n var itemBBox = new _layout_element.WrapperLayoutElement(null, itemBBoxOptions);\r\n var itemLegend = that._items[item.itemIndex];\r\n wrap.position({\r\n of: itemBBox,\r\n my: item.pos,\r\n at: item.pos\r\n });\r\n itemLegend.bBoxes.push(itemBBox);\r\n position[layoutOptions.direction] += item[layoutOptions.measure] + offset\r\n });\r\n position[layoutOptions.altDirection] += firstItem[layoutOptions.altMeasure] + altOffset\r\n });\r\n this._items.forEach(function(item) {\r\n var itemBBox = calculateBBoxLabelAndMarker(item.bBoxes[0].getLayoutOptions(), item.bBoxes[1].getLayoutOptions());\r\n var horizontal = that._options.columnItemSpacing / 2;\r\n var vertical = that._options.rowItemSpacing / 2;\r\n item.tracker.left = itemBBox.left - horizontal;\r\n item.tracker.right = itemBBox.right + horizontal;\r\n item.tracker.top = itemBBox.top - vertical;\r\n item.tracker.bottom = itemBBox.bottom + vertical\r\n })\r\n },\r\n _getItemsLayoutOptions: function() {\r\n var that = this;\r\n var options = that._options;\r\n var orientation = options.orientation;\r\n var layoutOptions = {\r\n itemsAlignment: options.itemsAlignment,\r\n orientation: options.orientation\r\n };\r\n var width = that._size.width - (that._background ? 2 * options.paddingLeftRight : 0);\r\n var height = that._size.height - (that._background ? 2 * options.paddingTopBottom : 0);\r\n if (orientation === HORIZONTAL) {\r\n layoutOptions.length = width;\r\n layoutOptions.spacing = options.columnItemSpacing;\r\n layoutOptions.direction = \"x\";\r\n layoutOptions.measure = WIDTH;\r\n layoutOptions.altMeasure = HEIGHT;\r\n layoutOptions.altDirection = \"y\";\r\n layoutOptions.altSpacing = options.rowItemSpacing;\r\n layoutOptions.countItem = options.columnCount;\r\n layoutOptions.altCountItem = options.rowCount;\r\n layoutOptions.marginTextLabel = 4;\r\n layoutOptions.labelOffset = 7;\r\n if (options.itemTextPosition === BOTTOM || options.itemTextPosition === TOP) {\r\n layoutOptions.labelOffset = 4;\r\n layoutOptions.markerOffset = true\r\n }\r\n } else {\r\n layoutOptions.length = height;\r\n layoutOptions.spacing = options.rowItemSpacing;\r\n layoutOptions.direction = \"y\";\r\n layoutOptions.measure = HEIGHT;\r\n layoutOptions.altMeasure = WIDTH;\r\n layoutOptions.altDirection = \"x\";\r\n layoutOptions.altSpacing = options.columnItemSpacing;\r\n layoutOptions.countItem = options.rowCount;\r\n layoutOptions.altCountItem = options.columnCount;\r\n layoutOptions.marginTextLabel = 7;\r\n layoutOptions.labelOffset = 4;\r\n if (options.itemTextPosition === RIGHT || options.itemTextPosition === LEFT) {\r\n layoutOptions.labelOffset = 7;\r\n layoutOptions.markerOffset = true\r\n }\r\n }\r\n if (!layoutOptions.countItem) {\r\n if (layoutOptions.altCountItem) {\r\n layoutOptions.countItem = _ceil(that._items.length / layoutOptions.altCountItem)\r\n } else {\r\n layoutOptions.countItem = that._items.length\r\n }\r\n }\r\n if (options.itemTextPosition === TOP || options.itemTextPosition === LEFT) {\r\n layoutOptions.inverseLabelPosition = true\r\n }\r\n layoutOptions.itemTextPosition = options.itemTextPosition;\r\n layoutOptions.altCountItem = layoutOptions.altCountItem || _ceil(that._items.length / layoutOptions.countItem);\r\n return layoutOptions\r\n },\r\n _adjustBackgroundSettings: function(locationOptions) {\r\n if (!this._background) {\r\n return\r\n }\r\n var border = locationOptions.border;\r\n var legendBox = this._calculateTotalBox();\r\n var backgroundSettings = {\r\n x: _round(legendBox.x - locationOptions.paddingLeftRight),\r\n y: _round(legendBox.y - locationOptions.paddingTopBottom),\r\n width: _round(legendBox.width) + 2 * locationOptions.paddingLeftRight,\r\n height: _round(legendBox.height),\r\n opacity: locationOptions.backgroundOpacity\r\n };\r\n if (border.visible && border.width && border.color && border.color !== NONE) {\r\n backgroundSettings[\"stroke-width\"] = border.width;\r\n backgroundSettings.stroke = border.color;\r\n backgroundSettings[\"stroke-opacity\"] = border.opacity;\r\n backgroundSettings.dashStyle = border.dashStyle;\r\n backgroundSettings.rx = border.cornerRadius || 0;\r\n backgroundSettings.ry = border.cornerRadius || 0\r\n }\r\n this._background.attr(backgroundSettings)\r\n },\r\n _setBoundingRect: function(margin) {\r\n if (!this._insideLegendGroup) {\r\n return\r\n }\r\n var box = this._calculateTotalBox();\r\n box.height += margin.top + margin.bottom;\r\n box.widthWithoutMargins = box.width;\r\n box.width += margin.left + margin.right;\r\n box.x -= margin.left;\r\n box.y -= margin.top;\r\n this._boundingRect = box\r\n },\r\n _calculateTotalBox: function() {\r\n var markerBox = this._markersGroup.getBBox();\r\n var titleBox = this._title.getCorrectedLayoutOptions();\r\n var box = this._insideLegendGroup.getBBox();\r\n var verticalPadding = this._background ? 2 * this._options.paddingTopBottom : 0;\r\n box.height = markerBox.height + titleBox.height + verticalPadding;\r\n titleBox.width > box.width && (box.width = titleBox.width);\r\n return box\r\n },\r\n getActionCallback: function(point) {\r\n var that = this;\r\n if (that._options.visible) {\r\n return function(act) {\r\n that[act](point.index)\r\n }\r\n } else {\r\n return _common.noop\r\n }\r\n },\r\n getLayoutOptions: function() {\r\n var options = this._options;\r\n var boundingRect = this._insideLegendGroup ? this._boundingRect : {\r\n width: 0,\r\n height: 0,\r\n x: 0,\r\n y: 0\r\n };\r\n if (options) {\r\n boundingRect.verticalAlignment = options.verticalAlignment;\r\n boundingRect.horizontalAlignment = options.horizontalAlignment;\r\n if (options.orientation === HORIZONTAL) {\r\n boundingRect.cutLayoutSide = options.verticalAlignment;\r\n boundingRect.cutSide = \"vertical\"\r\n } else {\r\n if (options.horizontalAlignment === CENTER) {\r\n boundingRect.cutLayoutSide = options.verticalAlignment;\r\n boundingRect.cutSide = \"vertical\"\r\n } else {\r\n boundingRect.cutLayoutSide = options.horizontalAlignment;\r\n boundingRect.cutSide = \"horizontal\"\r\n }\r\n }\r\n boundingRect.position = {\r\n horizontal: options.horizontalAlignment,\r\n vertical: options.verticalAlignment\r\n };\r\n return boundingRect\r\n }\r\n return null\r\n },\r\n shift: function(x, y) {\r\n var that = this;\r\n var box = {};\r\n if (that._insideLegendGroup) {\r\n that._insideLegendGroup.attr({\r\n translateX: x - that._boundingRect.x,\r\n translateY: y - that._boundingRect.y\r\n })\r\n }\r\n that._title && that._shiftTitle(that._boundingRect.widthWithoutMargins);\r\n that._markersGroup && that._shiftMarkers();\r\n if (that._insideLegendGroup) {\r\n box = that._legendGroup.getBBox()\r\n }\r\n that._x1 = box.x;\r\n that._y1 = box.y;\r\n that._x2 = box.x + box.width;\r\n that._y2 = box.y + box.height;\r\n return that\r\n },\r\n _shiftTitle: function(boxWidth) {\r\n var that = this;\r\n var title = that._title;\r\n var titleBox = title.getCorrectedLayoutOptions();\r\n if (!titleBox || !title.hasText()) {\r\n return\r\n }\r\n var width = boxWidth - (that._background ? 2 * that._options.paddingLeftRight : 0);\r\n var titleOptions = title.getOptions();\r\n var titleY = titleBox.y + titleOptions.margin.top;\r\n var titleX = 0;\r\n if (titleOptions.verticalAlignment === BOTTOM && that._markersGroup) {\r\n titleY += that._markersGroup.getBBox().height\r\n }\r\n if (titleOptions.horizontalAlignment === RIGHT) {\r\n titleX = width - titleBox.width\r\n } else {\r\n if (titleOptions.horizontalAlignment === CENTER) {\r\n titleX = (width - titleBox.width) / 2\r\n }\r\n }\r\n title.shift(titleX, titleY)\r\n },\r\n _shiftMarkers: function() {\r\n var titleBox = this._title.getLayoutOptions();\r\n var markerBox = this._markersGroup.getBBox();\r\n var titleOptions = this._title.getOptions() || {};\r\n var center = 0;\r\n var y = 0;\r\n if (titleBox.width > markerBox.width && this._options.horizontalAlignment === CENTER) {\r\n center = titleBox.width / 2 - markerBox.width / 2\r\n }\r\n if (titleOptions.verticalAlignment === TOP) {\r\n y = titleBox.height\r\n }\r\n if (0 !== center || 0 !== y) {\r\n this._markersGroup.attr({\r\n translateX: center,\r\n translateY: y\r\n });\r\n this._items.forEach(function(item) {\r\n item.tracker.left += center;\r\n item.tracker.right += center;\r\n item.tracker.top += y;\r\n item.tracker.bottom += y\r\n })\r\n }\r\n },\r\n getPosition: function() {\r\n return this._options.position\r\n },\r\n coordsIn: function(x, y) {\r\n return x >= this._x1 && x <= this._x2 && y >= this._y1 && y <= this._y2\r\n },\r\n getItemByCoord: function(x, y) {\r\n var items = this._items;\r\n var legendGroup = this._insideLegendGroup;\r\n x -= legendGroup.attr(\"translateX\");\r\n y -= legendGroup.attr(\"translateY\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (inRect(items[i].tracker, x, y)) {\r\n return items[i].tracker\r\n }\r\n }\r\n return null\r\n },\r\n dispose: function() {\r\n var that = this;\r\n that._title && that._title.dispose();\r\n that._legendGroup = that._insideLegendGroup = that._title = that._renderer = that._options = that._data = that._items = null;\r\n return that\r\n },\r\n layoutOptions: function() {\r\n if (!this.isVisible()) {\r\n return null\r\n }\r\n var pos = this.getLayoutOptions();\r\n return {\r\n horizontalAlignment: this._options.horizontalAlignment,\r\n verticalAlignment: this._options.verticalAlignment,\r\n side: pos.cutSide,\r\n priority: 1,\r\n position: this.getPosition()\r\n }\r\n },\r\n measure: function(size) {\r\n if (this._updated || !this._insideLegendGroup) {\r\n this.draw(size[0], size[1]);\r\n this._updated = false\r\n } else {\r\n this._items.forEach(function(item) {\r\n item.bBoxes = []\r\n });\r\n this._updateElementsPosition(size[0], size[1])\r\n }\r\n var rect = this.getLayoutOptions();\r\n return [rect.width, rect.height]\r\n },\r\n move: function(rect) {\r\n this.shift(rect[0], rect[1])\r\n },\r\n freeSpace: function() {\r\n this._options._incidentOccurred(\"W2104\");\r\n this.erase()\r\n }\r\n});\r\nvar plugin = {\r\n name: \"legend\",\r\n init: function() {\r\n var that = this;\r\n var group = this._renderer.g().attr({\r\n \"class\": this._rootClassPrefix + \"-legend\"\r\n }).enableLinks().append(that._renderer.root);\r\n that._legend = new Legend({\r\n renderer: that._renderer,\r\n group: group,\r\n widget: this,\r\n itemGroupClass: this._rootClassPrefix + \"-item\",\r\n titleGroupClass: this._rootClassPrefix + \"-title\",\r\n textField: \"text\",\r\n getFormatObject: function(data) {\r\n return {\r\n item: data.item,\r\n text: data.text\r\n }\r\n }\r\n });\r\n that._layout.add(that._legend)\r\n },\r\n extenders: {\r\n _applyTilesAppearance: function() {\r\n var that = this;\r\n this._items.forEach(function(item) {\r\n that._applyLegendItemStyle(item.id, item.getState())\r\n })\r\n },\r\n _buildNodes: function() {\r\n this._createLegendItems()\r\n }\r\n },\r\n members: {\r\n _applyLegendItemStyle: function(id, state) {\r\n var legend = this._legend;\r\n switch (state) {\r\n case \"hover\":\r\n legend.applyHover(id);\r\n break;\r\n case \"selection\":\r\n legend.applySelected(id);\r\n break;\r\n default:\r\n legend.resetItem(id)\r\n }\r\n },\r\n _createLegendItems: function() {\r\n if (this._legend.update(this._getLegendData(), this._getOption(\"legend\"), this._themeManager.theme(\"legend\").title)) {\r\n this._requestChange([\"LAYOUT\"])\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this._legend.dispose()\r\n },\r\n customize: function(constructor) {\r\n constructor.prototype._proxyData.push(function(x, y) {\r\n if (this._legend.coordsIn(x, y)) {\r\n var item = this._legend.getItemByCoord(x, y);\r\n if (item) {\r\n return {\r\n id: item.id,\r\n type: \"legend\"\r\n }\r\n }\r\n }\r\n });\r\n constructor.addChange({\r\n code: \"LEGEND\",\r\n handler: function() {\r\n this._createLegendItems()\r\n },\r\n isThemeDependent: true,\r\n option: \"legend\",\r\n isOptionChange: true\r\n })\r\n }\r\n};\r\nexports.plugin = plugin;\r\n","/**\r\n * DevExtreme (viz/core/annotations.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.plugins = exports.createAnnotations = void 0;\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _tooltip = require(\"../core/tooltip\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"./utils\");\r\nvar _plaque = require(\"./plaque\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _drag = require(\"../../events/drag\");\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar getDocument = _dom_adapter.default.getDocument;\r\nvar EVENT_NS = \"annotations\";\r\nvar DOT_EVENT_NS = \".\" + EVENT_NS;\r\nvar POINTER_ACTION = (0, _index.addNamespace)([_pointer.default.down, _pointer.default.move], EVENT_NS);\r\nvar POINTER_UP_EVENT_NAME = (0, _index.addNamespace)(_pointer.default.up, EVENT_NS);\r\nvar DRAG_START_EVENT_NAME = _drag.start + DOT_EVENT_NS;\r\nvar DRAG_EVENT_NAME = _drag.move + DOT_EVENT_NS;\r\nvar DRAG_END_EVENT_NAME = _drag.end + DOT_EVENT_NS;\r\n\r\nfunction coreAnnotation(options, contentTemplate) {\r\n return {\r\n draw: function(widget, group) {\r\n var _this = this;\r\n var annotationGroup = widget._renderer.g().append(group).css((0, _utils.patchFontOptions)(options.font));\r\n if (this.plaque) {\r\n this.plaque.clear()\r\n }\r\n this.plaque = new _plaque.Plaque((0, _extend.extend)(true, {}, options, {\r\n cornerRadius: (options.border || {}).cornerRadius\r\n }), widget, annotationGroup, contentTemplate, widget._isAnnotationBounded(options));\r\n this.plaque.draw(widget._getAnnotationCoords(this));\r\n if (options.allowDragging) {\r\n annotationGroup.on(DRAG_START_EVENT_NAME, {\r\n immediate: true\r\n }, function(e) {\r\n _this._dragOffsetX = _this.plaque.x - e.pageX;\r\n _this._dragOffsetY = _this.plaque.y - e.pageY\r\n }).on(DRAG_EVENT_NAME, function(e) {\r\n _this.plaque.move(e.pageX + _this._dragOffsetX, e.pageY + _this._dragOffsetY)\r\n }).on(DRAG_END_EVENT_NAME, function(e) {\r\n _this.offsetX = (_this.offsetX || 0) + e.offset.x;\r\n _this.offsetY = (_this.offsetY || 0) + e.offset.y\r\n })\r\n }\r\n },\r\n hitTest: function(x, y) {\r\n return this.plaque.hitTest(x, y)\r\n },\r\n showTooltip: function(tooltip, _ref) {\r\n var x = _ref.x,\r\n y = _ref.y;\r\n var that = this;\r\n var options = that.options;\r\n if (tooltip.annotation !== that) {\r\n tooltip.setTemplate(options.tooltipTemplate);\r\n var callback = function(result) {\r\n result && (tooltip.annotation = that)\r\n };\r\n callback(tooltip.show(options, {\r\n x: x,\r\n y: y\r\n }, {\r\n target: options\r\n }, options.customizeTooltip, callback))\r\n } else {\r\n tooltip.move(x, y)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getTemplateFunction(options, widget) {\r\n var template;\r\n if (\"text\" === options.type) {\r\n template = function(item, groupElement) {\r\n var text = widget._renderer.text(item.text).attr({\r\n \"class\": item.cssClass\r\n }).append({\r\n element: groupElement\r\n });\r\n if (item.width > 0 || item.height > 0) {\r\n text.setMaxSize(item.width, item.height, {\r\n wordWrap: item.wordWrap,\r\n textOverflow: item.textOverflow\r\n })\r\n }\r\n }\r\n } else {\r\n if (\"image\" === options.type) {\r\n template = function(item, groupElement) {\r\n var _ref2 = item.image || {},\r\n width = _ref2.width,\r\n height = _ref2.height,\r\n url = _ref2.url,\r\n location = _ref2.location;\r\n var outerWidth = item.width,\r\n outerHeight = item.height;\r\n var imageWidth = outerWidth > 0 ? Math.min(width, outerWidth) : width;\r\n var imageHeight = outerHeight > 0 ? Math.min(height, outerHeight) : height;\r\n widget._renderer.image(0, 0, imageWidth, imageHeight, url, location || \"center\").append({\r\n element: groupElement\r\n })\r\n }\r\n } else {\r\n if (\"custom\" === options.type) {\r\n template = options.template\r\n }\r\n }\r\n }\r\n return template\r\n}\r\n\r\nfunction getImageObject(image) {\r\n return \"string\" === typeof image ? {\r\n url: image\r\n } : image\r\n}\r\nvar createAnnotations = function(widget, items) {\r\n var commonAnnotationSettings = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var customizeAnnotation = arguments.length > 3 ? arguments[3] : void 0;\r\n var pullOptions = arguments.length > 4 ? arguments[4] : void 0;\r\n var commonImageOptions = getImageObject(commonAnnotationSettings.image);\r\n return items.reduce(function(arr, item) {\r\n var currentImageOptions = getImageObject(item.image);\r\n var customizedItem = (0, _type.isFunction)(customizeAnnotation) ? customizeAnnotation(item) : {};\r\n if (customizedItem) {\r\n customizedItem.image = getImageObject(customizedItem.image)\r\n }\r\n var options = (0, _extend.extend)(true, {}, commonAnnotationSettings, item, {\r\n image: commonImageOptions\r\n }, {\r\n image: currentImageOptions\r\n }, customizedItem);\r\n var templateFunction = getTemplateFunction(options, widget);\r\n var annotation = templateFunction && (0, _extend.extend)(true, pullOptions(options), coreAnnotation(options, widget._getTemplate(templateFunction)));\r\n annotation && arr.push(annotation);\r\n return arr\r\n }, [])\r\n};\r\nexports.createAnnotations = createAnnotations;\r\nvar chartPlugin = {\r\n name: \"annotations_chart\",\r\n init: function() {},\r\n dispose: function() {},\r\n members: {\r\n _getAnnotationCoords: function(annotation) {\r\n var _axis, _axis2;\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY\r\n };\r\n var argCoordName = this._options.silent(\"rotated\") ? \"y\" : \"x\";\r\n var valCoordName = this._options.silent(\"rotated\") ? \"x\" : \"y\";\r\n var argAxis = this.getArgumentAxis();\r\n var argument = argAxis.validateUnit(annotation.argument);\r\n var axis = this.getValueAxis(annotation.axis);\r\n var series;\r\n var pane = null === (_axis = axis) || void 0 === _axis ? void 0 : _axis.pane;\r\n if (annotation.series) {\r\n var _series;\r\n series = this.series.filter(function(s) {\r\n return s.name === annotation.series\r\n })[0];\r\n axis = null === (_series = series) || void 0 === _series ? void 0 : _series.getValueAxis();\r\n (0, _type.isDefined)(axis) && (pane = axis.pane)\r\n }\r\n if ((0, _type.isDefined)(argument)) {\r\n if (series) {\r\n var center = series.getPointCenterByArg(argument);\r\n center && (coords[argCoordName] = center[argCoordName])\r\n } else {\r\n coords[argCoordName] = argAxis.getTranslator().translate(argument)\r\n }!(0, _type.isDefined)(pane) && (pane = argAxis.pane)\r\n }\r\n var value = null === (_axis2 = axis) || void 0 === _axis2 ? void 0 : _axis2.validateUnit(annotation.value);\r\n if ((0, _type.isDefined)(value)) {\r\n var _axis3;\r\n coords[valCoordName] = null === (_axis3 = axis) || void 0 === _axis3 ? void 0 : _axis3.getTranslator().translate(value);\r\n !(0, _type.isDefined)(pane) && (0, _type.isDefined)(axis) && (pane = axis.pane)\r\n }\r\n coords.canvas = this._getCanvasForPane(pane);\r\n if ((0, _type.isDefined)(coords[argCoordName]) && !(0, _type.isDefined)(value)) {\r\n var _series2;\r\n if (!(0, _type.isDefined)(axis) && !(0, _type.isDefined)(series)) {\r\n coords[valCoordName] = argAxis.getAxisPosition()\r\n } else {\r\n if ((0, _type.isDefined)(axis) && !(0, _type.isDefined)(series)) {\r\n coords[valCoordName] = this._argumentAxes.filter(function(a) {\r\n return a.pane === axis.pane\r\n })[0].getAxisPosition()\r\n } else {\r\n if (null !== (_series2 = series) && void 0 !== _series2 && _series2.checkSeriesViewportCoord(argAxis, coords[argCoordName])) {\r\n coords[valCoordName] = series.getSeriesPairCoord(coords[argCoordName], true)\r\n }\r\n }\r\n }\r\n }\r\n if (!(0, _type.isDefined)(argument) && (0, _type.isDefined)(coords[valCoordName])) {\r\n if ((0, _type.isDefined)(axis) && !(0, _type.isDefined)(series)) {\r\n coords[argCoordName] = axis.getAxisPosition()\r\n } else {\r\n if ((0, _type.isDefined)(series)) {\r\n if (series.checkSeriesViewportCoord(axis, coords[valCoordName])) {\r\n coords[argCoordName] = series.getSeriesPairCoord(coords[valCoordName], false)\r\n }\r\n }\r\n }\r\n }\r\n return coords\r\n },\r\n _annotationsPointerEventHandler: function(event) {\r\n var originalEvent = event.originalEvent || {};\r\n var touch = originalEvent.touches && originalEvent.touches[0] || {};\r\n var rootOffset = this._renderer.getRootOffset();\r\n var coords = {\r\n x: touch.pageX || originalEvent.pageX || event.pageX,\r\n y: touch.pageY || originalEvent.pageY || event.pageY\r\n };\r\n var annotation = this._annotations.items.filter(function(a) {\r\n return a.hitTest(coords.x - rootOffset.left, coords.y - rootOffset.top)\r\n })[0];\r\n if (!annotation || !annotation.options.tooltipEnabled) {\r\n this._annotations.hideTooltip();\r\n return\r\n }\r\n this._clear();\r\n if (annotation.options.allowDragging && event.type === _pointer.default.down) {\r\n this._annotations._hideToolTipForDrag = true\r\n }\r\n if (!this._annotations._hideToolTipForDrag) {\r\n annotation.showTooltip(this._annotations.tooltip, coords);\r\n event.stopPropagation()\r\n }\r\n },\r\n _isAnnotationBounded: function(options) {\r\n return (0, _type.isDefined)(options.value) || (0, _type.isDefined)(options.argument)\r\n },\r\n _pullOptions: function(options) {\r\n return {\r\n type: options.type,\r\n name: options.name,\r\n x: options.x,\r\n y: options.y,\r\n value: options.value,\r\n argument: options.argument,\r\n axis: options.axis,\r\n series: options.series,\r\n options: options,\r\n offsetX: options.offsetX,\r\n offsetY: options.offsetY\r\n }\r\n },\r\n _forceAnnotationRender: function() {\r\n this._change([\"FORCE_RENDER\"])\r\n },\r\n _clear: function() {\r\n this.hideTooltip();\r\n this.clearHover()\r\n }\r\n }\r\n};\r\nvar polarChartPlugin = {\r\n name: \"annotations_polar_chart\",\r\n init: function() {},\r\n dispose: function() {},\r\n members: {\r\n _getAnnotationCoords: function(annotation) {\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY,\r\n canvas: this._calcCanvas()\r\n };\r\n var argAxis = this.getArgumentAxis();\r\n var argument = argAxis.validateUnit(annotation.argument);\r\n var value = this.getValueAxis().validateUnit(annotation.value);\r\n var radius = annotation.radius;\r\n var angle = annotation.angle;\r\n var pointCoords;\r\n var series;\r\n if (annotation.series) {\r\n series = this.series.filter(function(s) {\r\n return s.name === annotation.series\r\n })[0]\r\n }(0, _extend.extend)(true, coords, this.getXYFromPolar(angle, radius, argument, value));\r\n if ((0, _type.isDefined)(series)) {\r\n if ((0, _type.isDefined)(coords.angle) && !(0, _type.isDefined)(value) && !(0, _type.isDefined)(radius)) {\r\n if (!(0, _type.isDefined)(argument)) {\r\n argument = argAxis.getTranslator().from(isFinite(angle) ? this.getActualAngle(angle) : coords.angle)\r\n }\r\n pointCoords = series.getSeriesPairCoord({\r\n argument: argument,\r\n angle: -coords.angle\r\n }, true)\r\n } else {\r\n if ((0, _type.isDefined)(coords.radius) && !(0, _type.isDefined)(argument) && !(0, _type.isDefined)(angle)) {\r\n pointCoords = series.getSeriesPairCoord({\r\n radius: coords.radius\r\n }, false)\r\n }\r\n }\r\n if ((0, _type.isDefined)(pointCoords)) {\r\n coords.x = pointCoords.x;\r\n coords.y = pointCoords.y\r\n }\r\n }\r\n if (annotation.series && !(0, _type.isDefined)(pointCoords)) {\r\n coords.x = coords.y = void 0\r\n }\r\n return coords\r\n },\r\n _annotationsPointerEventHandler: chartPlugin.members._annotationsPointerEventHandler,\r\n _isAnnotationBounded: chartPlugin.members._isAnnotationBounded,\r\n _pullOptions: function(options) {\r\n var polarOptions = (0, _extend.extend)({}, {\r\n radius: options.radius,\r\n angle: options.angle\r\n }, chartPlugin.members._pullOptions(options));\r\n delete polarOptions.axis;\r\n return polarOptions\r\n },\r\n _forceAnnotationRender: chartPlugin.members._forceAnnotationRender,\r\n _clear: chartPlugin.members._clear\r\n }\r\n};\r\nvar vectorMapPlugin = {\r\n name: \"annotations_vector_map\",\r\n init: function() {},\r\n dispose: function() {\r\n this._annotations._offTracker();\r\n this._annotations._offTracker = null\r\n },\r\n members: {\r\n _getAnnotationCoords: function(annotation) {\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY\r\n };\r\n coords.canvas = this._projection.getCanvas();\r\n if (annotation.coordinates) {\r\n var data = this._projection.toScreenPoint(annotation.coordinates);\r\n coords.x = data[0];\r\n coords.y = data[1]\r\n }\r\n return coords\r\n },\r\n _annotationsPointerEventHandler: chartPlugin.members._annotationsPointerEventHandler,\r\n _isAnnotationBounded: function(options) {\r\n return (0, _type.isDefined)(options.coordinates)\r\n },\r\n _pullOptions: function(options) {\r\n var vectorMapOptions = (0, _extend.extend)({}, {\r\n coordinates: options.coordinates\r\n }, chartPlugin.members._pullOptions(options));\r\n delete vectorMapOptions.axis;\r\n delete vectorMapOptions.series;\r\n delete vectorMapOptions.argument;\r\n delete vectorMapOptions.value;\r\n return vectorMapOptions\r\n },\r\n _forceAnnotationRender: function() {\r\n this._change([\"EXTRA_ELEMENTS\"])\r\n },\r\n _getAnnotationStyles: function() {\r\n return {\r\n \"text-anchor\": \"start\"\r\n }\r\n },\r\n _clear: function() {}\r\n },\r\n extenders: {\r\n _prepareExtraElements: function() {\r\n var that = this;\r\n var renderElements = function() {\r\n that._renderExtraElements()\r\n };\r\n that._annotations._offTracker = that._tracker.on({\r\n move: renderElements,\r\n zoom: renderElements,\r\n end: renderElements\r\n })\r\n }\r\n }\r\n};\r\nvar pieChartPlugin = {\r\n name: \"annotations_pie_chart\",\r\n init: function() {},\r\n dispose: function() {},\r\n members: {\r\n _getAnnotationCoords: function(annotation) {\r\n var series;\r\n var coords = {\r\n offsetX: annotation.offsetX,\r\n offsetY: annotation.offsetY,\r\n canvas: this._canvas\r\n };\r\n if (annotation.argument) {\r\n if (annotation.series) {\r\n series = this.getSeriesByName(annotation.series)\r\n } else {\r\n series = this.series[0]\r\n }\r\n var argument = series.getPointsByArg(annotation.argument)[0];\r\n var _argument$getAnnotati = argument.getAnnotationCoords(annotation.location),\r\n x = _argument$getAnnotati.x,\r\n y = _argument$getAnnotati.y;\r\n coords.x = x;\r\n coords.y = y\r\n }\r\n return coords\r\n },\r\n _isAnnotationBounded: function(options) {\r\n return options.argument\r\n },\r\n _annotationsPointerEventHandler: chartPlugin.members._annotationsPointerEventHandler,\r\n _pullOptions: function(options) {\r\n var pieChartOptions = (0, _extend.extend)({}, {\r\n location: options.location\r\n }, chartPlugin.members._pullOptions(options));\r\n delete pieChartOptions.axis;\r\n return pieChartOptions\r\n },\r\n _clear: chartPlugin.members._clear,\r\n _forceAnnotationRender: chartPlugin.members._forceAnnotationRender\r\n }\r\n};\r\nvar corePlugin = {\r\n name: \"annotations_core\",\r\n init: function() {\r\n this._annotations = {\r\n items: [],\r\n _hideToolTipForDrag: false,\r\n tooltip: new _tooltip.Tooltip({\r\n cssClass: \"\".concat(this._rootClassPrefix, \"-annotation-tooltip\"),\r\n eventTrigger: this._eventTrigger,\r\n widgetRoot: this.element(),\r\n widget: this\r\n }),\r\n hideTooltip: function() {\r\n this.tooltip.annotation = null;\r\n this.tooltip.hide()\r\n },\r\n clearItems: function() {\r\n this.items.forEach(function(i) {\r\n return i.plaque.clear()\r\n });\r\n this.items = []\r\n }\r\n };\r\n this._annotations.tooltip.setRendererOptions(this._getRendererOptions())\r\n },\r\n dispose: function() {\r\n this._annotationsGroup.linkRemove().linkOff();\r\n _events_engine.default.off(getDocument(), DOT_EVENT_NS);\r\n this._annotationsGroup.off(DOT_EVENT_NS);\r\n this._annotations.tooltip && this._annotations.tooltip.dispose()\r\n },\r\n extenders: {\r\n _createHtmlStructure: function() {\r\n var _this2 = this;\r\n this._annotationsGroup = this._renderer.g().attr({\r\n \"class\": \"\".concat(this._rootClassPrefix, \"-annotations\")\r\n }).css(this._getAnnotationStyles()).linkOn(this._renderer.root, \"annotations\").linkAppend();\r\n _events_engine.default.on(getDocument(), POINTER_ACTION, function() {\r\n return _this2._annotations.hideTooltip()\r\n });\r\n _events_engine.default.on(getDocument(), POINTER_UP_EVENT_NAME, function(event) {\r\n _this2._annotations._hideToolTipForDrag = false;\r\n _this2._annotationsPointerEventHandler(event)\r\n });\r\n this._annotationsGroup.on(POINTER_ACTION, this._annotationsPointerEventHandler.bind(this))\r\n },\r\n _renderExtraElements: function() {\r\n var _this3 = this;\r\n this._annotationsGroup.clear();\r\n this._annotations.items.forEach(function(item) {\r\n return item.draw(_this3, _this3._annotationsGroup)\r\n })\r\n },\r\n _stopCurrentHandling: function() {\r\n this._annotations.hideTooltip()\r\n }\r\n },\r\n members: {\r\n _buildAnnotations: function() {\r\n this._annotations.clearItems();\r\n var items = this._getOption(\"annotations\", true);\r\n if (!(null !== items && void 0 !== items && items.length)) {\r\n return\r\n }\r\n this._annotations.items = createAnnotations(this, items, this._getOption(\"commonAnnotationSettings\"), this._getOption(\"customizeAnnotation\", true), this._pullOptions)\r\n },\r\n _setAnnotationTooltipOptions: function() {\r\n var tooltipOptions = (0, _extend.extend)({}, this._getOption(\"tooltip\"));\r\n tooltipOptions.contentTemplate = tooltipOptions.customizeTooltip = void 0;\r\n this._annotations.tooltip.update(tooltipOptions)\r\n },\r\n _getAnnotationCoords: function() {\r\n return {}\r\n },\r\n _pullOptions: function() {\r\n return {}\r\n },\r\n _getAnnotationStyles: function() {\r\n return {}\r\n }\r\n },\r\n customize: function(constructor) {\r\n constructor.addChange({\r\n code: \"ANNOTATIONITEMS\",\r\n handler: function() {\r\n this._requestChange([\"ANNOTATIONS\"])\r\n },\r\n isOptionChange: true,\r\n option: \"annotations\"\r\n });\r\n constructor.addChange({\r\n code: \"ANNOTATIONSSETTINGS\",\r\n handler: function() {\r\n this._requestChange([\"ANNOTATIONS\"])\r\n },\r\n isOptionChange: true,\r\n option: \"commonAnnotationSettings\"\r\n });\r\n constructor.addChange({\r\n code: \"ANNOTATIONS\",\r\n handler: function() {\r\n this._buildAnnotations();\r\n this._setAnnotationTooltipOptions();\r\n this._forceAnnotationRender()\r\n },\r\n isThemeDependent: true,\r\n isOptionChange: true\r\n })\r\n },\r\n fontFields: [\"commonAnnotationSettings.font\"]\r\n};\r\nvar plugins = {\r\n core: corePlugin,\r\n chart: chartPlugin,\r\n polarChart: polarChartPlugin,\r\n vectorMap: vectorMapPlugin,\r\n pieChart: pieChartPlugin\r\n};\r\nexports.plugins = plugins;\r\n","/**\r\n * DevExtreme (viz/core/base_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.BaseThemeManager = void 0;\r\nvar _class = _interopRequireDefault(require(\"../../core/class\"));\r\nvar _extend2 = require(\"../../core/utils/extend\");\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _iterator = require(\"../../core/utils/iterator\");\r\nvar _palette = require(\"../palette\");\r\nvar _utils = require(\"./utils\");\r\nvar _themes = require(\"../themes\");\r\nrequire(\"./themes/generic.light\");\r\nrequire(\"./themes/generic.dark\");\r\nrequire(\"./themes/generic.contrast\");\r\nrequire(\"./themes/generic.carmine\");\r\nrequire(\"./themes/generic.darkmoon\");\r\nrequire(\"./themes/generic.softblue\");\r\nrequire(\"./themes/generic.darkviolet\");\r\nrequire(\"./themes/generic.greenmist\");\r\nrequire(\"./themes/material\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _getTheme = _themes.getTheme;\r\nvar _addCacheItem = _themes.addCacheItem;\r\nvar _removeCacheItem = _themes.removeCacheItem;\r\nvar _extend = _extend2.extend;\r\nvar _each = _iterator.each;\r\n\r\nfunction getThemePart(theme, path) {\r\n var _theme = theme;\r\n path && _each(path.split(\".\"), function(_, pathItem) {\r\n return _theme = _theme[pathItem]\r\n });\r\n return _theme\r\n}\r\nvar BaseThemeManager = _class.default.inherit({\r\n ctor: function(options) {\r\n this._themeSection = options.themeSection;\r\n this._fontFields = options.fontFields || [];\r\n _addCacheItem(this)\r\n },\r\n dispose: function() {\r\n var that = this;\r\n _removeCacheItem(that);\r\n that._callback = that._theme = that._font = null;\r\n return that\r\n },\r\n setCallback: function(callback) {\r\n this._callback = callback;\r\n return this\r\n },\r\n setTheme: function(theme, rtl) {\r\n this._current = theme;\r\n this._rtl = rtl;\r\n return this.refresh()\r\n },\r\n refresh: function() {\r\n var that = this;\r\n var current = that._current || {};\r\n var theme = _getTheme(current.name || current);\r\n that._themeName = theme.name;\r\n that._defaultPalette = theme.defaultPalette;\r\n that._font = _extend({}, theme.font, current.font);\r\n that._themeSection && _each(that._themeSection.split(\".\"), function(_, path) {\r\n theme = _extend(true, {}, theme[path])\r\n });\r\n that._theme = _extend(true, {}, theme, (0, _type.isString)(current) ? {} : current);\r\n that._initializeTheme();\r\n if ((0, _utils.parseScalar)(that._rtl, that._theme.rtlEnabled)) {\r\n _extend(true, that._theme, that._theme._rtl)\r\n }\r\n that._callback();\r\n return that\r\n },\r\n theme: function(path) {\r\n return getThemePart(this._theme, path)\r\n },\r\n themeName: function() {\r\n return this._themeName\r\n },\r\n createPalette: function(palette, options) {\r\n return (0, _palette.createPalette)(palette, options, this._defaultPalette)\r\n },\r\n createDiscretePalette: function(palette, count) {\r\n return (0, _palette.getDiscretePalette)(palette, count, this._defaultPalette)\r\n },\r\n createGradientPalette: function(palette) {\r\n return (0, _palette.getGradientPalette)(palette, this._defaultPalette)\r\n },\r\n getAccentColor: function(palette) {\r\n return (0, _palette.getAccentColor)(palette, this._defaultPalette)\r\n },\r\n _initializeTheme: function() {\r\n var that = this;\r\n _each(that._fontFields || [], function(_, path) {\r\n that._initializeFont(getThemePart(that._theme, path))\r\n })\r\n },\r\n _initializeFont: function(font) {\r\n _extend(font, this._font, _extend({}, font))\r\n }\r\n});\r\nexports.BaseThemeManager = BaseThemeManager;\r\n","/**\r\n * DevExtreme (viz/core/layout_element.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.LayoutElement = LayoutElement;\r\nexports.WrapperLayoutElement = WrapperLayoutElement;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _object = require(\"../../core/utils/object\");\r\nvar _round = Math.round;\r\nvar defaultOffset = {\r\n horizontal: 0,\r\n vertical: 0\r\n};\r\nvar alignFactors = {\r\n center: .5,\r\n right: 1,\r\n bottom: 1,\r\n left: 0,\r\n top: 0\r\n};\r\n\r\nfunction LayoutElement(options) {\r\n this._options = options\r\n}\r\nLayoutElement.prototype = {\r\n constructor: LayoutElement,\r\n position: function(options) {\r\n var that = this;\r\n var ofBBox = options.of.getLayoutOptions();\r\n var myBBox = that.getLayoutOptions();\r\n var at = options.at;\r\n var my = options.my;\r\n var offset = options.offset || defaultOffset;\r\n var shiftX = -alignFactors[my.horizontal] * myBBox.width + ofBBox.x + alignFactors[at.horizontal] * ofBBox.width + parseInt(offset.horizontal);\r\n var shiftY = -alignFactors[my.vertical] * myBBox.height + ofBBox.y + alignFactors[at.vertical] * ofBBox.height + parseInt(offset.vertical);\r\n that.shift(_round(shiftX), _round(shiftY))\r\n },\r\n getLayoutOptions: _common.noop\r\n};\r\n\r\nfunction WrapperLayoutElement(renderElement, bBox) {\r\n this._renderElement = renderElement;\r\n this._cacheBBox = bBox\r\n}\r\nvar wrapperLayoutElementPrototype = WrapperLayoutElement.prototype = (0, _object.clone)(LayoutElement.prototype);\r\nwrapperLayoutElementPrototype.constructor = WrapperLayoutElement;\r\nwrapperLayoutElementPrototype.getLayoutOptions = function() {\r\n return this._cacheBBox || this._renderElement.getBBox()\r\n};\r\nwrapperLayoutElementPrototype.shift = function(shiftX, shiftY) {\r\n var bBox = this.getLayoutOptions();\r\n this._renderElement.move(_round(shiftX - bBox.x), _round(shiftY - bBox.y))\r\n};\r\n","/**\r\n * DevExtreme (viz/components/parse_utils.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.correctValueType = correctValueType;\r\nexports.getParser = void 0;\r\nvar _common = require(\"../../core/utils/common\");\r\nvar _date_serialization = _interopRequireDefault(require(\"../../core/utils/date_serialization\"));\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 parsers = {\r\n string: function(val) {\r\n return (0, _type.isDefined)(val) ? \"\" + val : val\r\n },\r\n numeric: function(val) {\r\n if (!(0, _type.isDefined)(val)) {\r\n return val\r\n }\r\n var parsedVal = Number(val);\r\n if (isNaN(parsedVal)) {\r\n parsedVal = void 0\r\n }\r\n return parsedVal\r\n },\r\n datetime: function(val) {\r\n if (!(0, _type.isDefined)(val)) {\r\n return val\r\n }\r\n var parsedVal;\r\n var numVal = Number(val);\r\n if (!isNaN(numVal)) {\r\n parsedVal = new Date(numVal)\r\n } else {\r\n parsedVal = _date_serialization.default.deserializeDate(val)\r\n }\r\n if (isNaN(Number(parsedVal))) {\r\n parsedVal = void 0\r\n }\r\n return parsedVal\r\n }\r\n};\r\n\r\nfunction correctValueType(type) {\r\n return \"numeric\" === type || \"datetime\" === type || \"string\" === type ? type : \"\"\r\n}\r\nvar getParser = function(valueType) {\r\n return parsers[correctValueType(valueType)] || _common.noop\r\n};\r\nexports.getParser = getParser;\r\n","/**\r\n * DevExtreme (viz/components/data_validator.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.validateData = validateData;\r\nvar _type = require(\"../../core/utils/type\");\r\nvar _extend = require(\"../../core/utils/extend\");\r\nvar _utils = require(\"../core/utils\");\r\nvar _parse_utils = require(\"./parse_utils\");\r\nvar STRING = \"string\";\r\nvar NUMERIC = \"numeric\";\r\nvar DATETIME = \"datetime\";\r\nvar DISCRETE = \"discrete\";\r\nvar SEMIDISCRETE = \"semidiscrete\";\r\nvar CONTINUOUS = \"continuous\";\r\nvar LOGARITHMIC = \"logarithmic\";\r\nvar VALUE_TYPE = \"valueType\";\r\nvar ARGUMENT_TYPE = \"argumentType\";\r\nvar axisTypeParser = (0, _utils.enumParser)([STRING, NUMERIC, DATETIME]);\r\nvar _isArray = Array.isArray;\r\n\r\nfunction groupingValues(data, others, valueField, index) {\r\n if (index >= 0) {\r\n data.slice(index).forEach(function(cell) {\r\n if ((0, _type.isDefined)(cell[valueField])) {\r\n others[valueField] += cell[valueField];\r\n cell[valueField] = void 0\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction processGroups(groups) {\r\n groups.forEach(function(group) {\r\n group.valueType = group.valueAxisType = null;\r\n group.series.forEach(function(series) {\r\n series.updateDataType({})\r\n });\r\n group.valueAxis && group.valueAxis.resetTypes(VALUE_TYPE)\r\n })\r\n}\r\n\r\nfunction sortValues(data, asc, selector) {\r\n var func = asc ? function(a, b) {\r\n return a - b\r\n } : function(a, b) {\r\n return b - a\r\n };\r\n data.sort(function(a, b) {\r\n var valA = selector(a);\r\n var valB = selector(b);\r\n var aa = (0, _type.isDefined)(valA) ? 1 : 0;\r\n var bb = (0, _type.isDefined)(valB) ? 1 : 0;\r\n return aa && bb ? func(valA, valB) : func(aa, bb)\r\n });\r\n return data\r\n}\r\n\r\nfunction resetArgumentAxes(axes) {\r\n axes && axes.forEach(function(axis) {\r\n axis.resetTypes(ARGUMENT_TYPE)\r\n })\r\n}\r\n\r\nfunction parseCategories(categories, parser) {\r\n var newArray = [];\r\n categories.forEach(function(category) {\r\n var parsedCategory = parser(category);\r\n void 0 !== parsedCategory && newArray.push(parsedCategory)\r\n });\r\n return newArray\r\n}\r\n\r\nfunction parseAxisCategories(groupsData, parsers) {\r\n var argumentCategories = groupsData.argumentOptions && groupsData.argumentOptions.categories;\r\n groupsData.groups.forEach(function(valueGroup, i) {\r\n var categories = valueGroup.valueOptions && valueGroup.valueOptions.categories;\r\n if (categories) {\r\n valueGroup.valueOptions.categories = parseCategories(categories, parsers[i + 1])\r\n }\r\n });\r\n if (argumentCategories) {\r\n groupsData.argumentOptions.categories = parseCategories(argumentCategories, parsers[0])\r\n }\r\n}\r\n\r\nfunction eigen(x) {\r\n return x\r\n}\r\n\r\nfunction getType(unit, type) {\r\n var result = type;\r\n if (type === STRING || (0, _type.isString)(unit)) {\r\n result = STRING\r\n } else {\r\n if (type === DATETIME || (0, _type.isDate)(unit)) {\r\n result = DATETIME\r\n } else {\r\n if ((0, _type.isNumeric)(unit)) {\r\n result = NUMERIC\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction correctAxisType(type, axisType, hasCategories, incidentOccurred) {\r\n if (type === STRING && (axisType === CONTINUOUS || axisType === LOGARITHMIC || axisType === SEMIDISCRETE)) {\r\n incidentOccurred(\"E2002\")\r\n }\r\n return axisType === LOGARITHMIC ? LOGARITHMIC : hasCategories || axisType === DISCRETE || type === STRING ? DISCRETE : axisType === SEMIDISCRETE ? SEMIDISCRETE : CONTINUOUS\r\n}\r\n\r\nfunction validUnit(unit, field, incidentOccurred) {\r\n if (unit) {\r\n incidentOccurred(!(0, _type.isNumeric)(unit) && !(0, _type.isDate)(unit) && !(0, _type.isString)(unit) ? \"E2003\" : \"E2004\", [field])\r\n }\r\n}\r\n\r\nfunction createParserUnit(type, axisType, incidentOccurred) {\r\n var parser = type ? (0, _parse_utils.getParser)(type) : eigen;\r\n var filterInfinity = axisType !== DISCRETE ? function(x) {\r\n return isFinite(x) || void 0 === x ? x : null\r\n } : eigen;\r\n return function(unit, field) {\r\n var parseUnit = filterInfinity(parser(unit));\r\n if (void 0 === parseUnit) {\r\n validUnit(unit, field, incidentOccurred)\r\n }\r\n return parseUnit\r\n }\r\n}\r\n\r\nfunction prepareParsers(groupsData, incidentOccurred) {\r\n var argumentParser = createParserUnit(groupsData.argumentType, groupsData.argumentAxisType, incidentOccurred);\r\n var sizeParser;\r\n var valueParser;\r\n var categoryParsers = [argumentParser];\r\n var cache = {};\r\n var list = [];\r\n groupsData.groups.forEach(function(group, groupIndex) {\r\n group.series.forEach(function(series) {\r\n valueParser = createParserUnit(group.valueType, group.valueAxisType, incidentOccurred);\r\n sizeParser = createParserUnit(NUMERIC, CONTINUOUS, incidentOccurred);\r\n cache[series.getArgumentField()] = argumentParser;\r\n series.getValueFields().forEach(function(field) {\r\n categoryParsers[groupIndex + 1] = valueParser;\r\n cache[field] = valueParser\r\n });\r\n if (series.getSizeField()) {\r\n cache[series.getSizeField()] = sizeParser\r\n }\r\n })\r\n });\r\n for (var field in cache) {\r\n list.push([field, cache[field]])\r\n }\r\n list.length && parseAxisCategories(groupsData, categoryParsers);\r\n return list\r\n}\r\n\r\nfunction getParsedCell(cell, parsers) {\r\n var i;\r\n var ii = parsers.length;\r\n var obj = (0, _extend.extend)({}, cell);\r\n var field;\r\n var value;\r\n for (i = 0; i < ii; ++i) {\r\n field = parsers[i][0];\r\n value = cell[field];\r\n obj[field] = parsers[i][1](value, field)\r\n }\r\n return obj\r\n}\r\n\r\nfunction parse(data, parsers) {\r\n var parsedData = [];\r\n var i;\r\n var ii = data.length;\r\n parsedData.length = ii;\r\n for (i = 0; i < ii; ++i) {\r\n parsedData[i] = getParsedCell(data[i], parsers)\r\n }\r\n return parsedData\r\n}\r\n\r\nfunction findIndexByThreshold(data, valueField, threshold) {\r\n var i;\r\n var ii = data.length;\r\n var value;\r\n for (i = 0; i < ii; ++i) {\r\n value = data[i][valueField];\r\n if ((0, _type.isDefined)(value) && threshold > value) {\r\n break\r\n }\r\n }\r\n return i\r\n}\r\n\r\nfunction groupMinSlices(originalData, argumentField, valueField, smallValuesGrouping) {\r\n smallValuesGrouping = smallValuesGrouping || {};\r\n var mode = smallValuesGrouping.mode;\r\n var others = {};\r\n if (!mode || \"none\" === mode) {\r\n return\r\n }\r\n others[argumentField] = String(smallValuesGrouping.groupName || \"others\");\r\n others[valueField] = 0;\r\n var data = sortValues(originalData.slice(), false, function(a) {\r\n return a[valueField]\r\n });\r\n groupingValues(data, others, valueField, \"smallValueThreshold\" === mode ? findIndexByThreshold(data, valueField, smallValuesGrouping.threshold) : smallValuesGrouping.topCount);\r\n others[valueField] && originalData.push(others)\r\n}\r\n\r\nfunction groupPieData(data, groupsData) {\r\n var firstSeries = groupsData.groups[0] && groupsData.groups[0].series[0];\r\n var isPie = firstSeries && (\"pie\" === firstSeries.type || \"doughnut\" === firstSeries.type || \"donut\" === firstSeries.type);\r\n if (!isPie) {\r\n return\r\n }\r\n groupsData.groups.forEach(function(group) {\r\n group.series.forEach(function(series) {\r\n groupMinSlices(data, series.getArgumentField(), series.getValueFields()[0], series.getOptions().smallValuesGrouping)\r\n })\r\n })\r\n}\r\n\r\nfunction addUniqueItemToCollection(item, collection, itemsHash) {\r\n if (!itemsHash[item]) {\r\n collection.push(item);\r\n itemsHash[item] = true\r\n }\r\n}\r\n\r\nfunction getUniqueArgumentFields(groupsData) {\r\n var uniqueArgumentFields = [];\r\n var hash = {};\r\n groupsData.groups.forEach(function(group) {\r\n group.series.forEach(function(series) {\r\n addUniqueItemToCollection(series.getArgumentField(), uniqueArgumentFields, hash)\r\n })\r\n });\r\n return uniqueArgumentFields\r\n}\r\n\r\nfunction sort(a, b) {\r\n var result = a - b;\r\n if (isNaN(result)) {\r\n if (!(0, _type.isDefined)(a)) {\r\n return 1\r\n }\r\n if (!(0, _type.isDefined)(b)) {\r\n return -1\r\n }\r\n return 0\r\n }\r\n return result\r\n}\r\n\r\nfunction sortByArgument(data, argumentField) {\r\n return data.slice().sort(function(a, b) {\r\n return sort(a[argumentField], b[argumentField])\r\n })\r\n}\r\n\r\nfunction sortByCallback(data, callback) {\r\n return data.slice().sort(callback)\r\n}\r\n\r\nfunction checkValueTypeOfGroup(group, cell) {\r\n group.series.forEach(function(series) {\r\n series.getValueFields().forEach(function(field) {\r\n group.valueType = getType(cell[field], group.valueType)\r\n })\r\n });\r\n return group.valueType\r\n}\r\n\r\nfunction getSortByCategories(categories) {\r\n var hash = {};\r\n categories.forEach(function(value, i) {\r\n hash[value] = i\r\n });\r\n return function(data, argumentField) {\r\n return sortValues(data.slice(), true, function(a) {\r\n return hash[a[argumentField]]\r\n })\r\n }\r\n}\r\n\r\nfunction sortData(data, groupsData, options, uniqueArgumentFields) {\r\n var dataByArguments = {};\r\n var isDiscrete = groupsData.argumentAxisType === DISCRETE;\r\n var userCategories = isDiscrete && groupsData.argumentOptions && groupsData.argumentOptions.categories;\r\n var sortFunction = function(data) {\r\n return data\r\n };\r\n var sortingMethodOption = options.sortingMethod;\r\n var reSortCategories;\r\n if (!userCategories && (0, _type.isFunction)(sortingMethodOption)) {\r\n data = sortByCallback(data, sortingMethodOption)\r\n }\r\n if (isDiscrete) {\r\n groupsData.categories = getCategories(data, uniqueArgumentFields, userCategories)\r\n }\r\n if (userCategories || !(0, _type.isFunction)(sortingMethodOption) && groupsData.argumentType === STRING && !options._skipArgumentSorting) {\r\n sortFunction = getSortByCategories(groupsData.categories)\r\n } else {\r\n if (true === sortingMethodOption && groupsData.argumentType !== STRING) {\r\n sortFunction = sortByArgument;\r\n reSortCategories = isDiscrete\r\n }\r\n }\r\n uniqueArgumentFields.forEach(function(field) {\r\n dataByArguments[field] = sortFunction(data, field)\r\n });\r\n if (reSortCategories) {\r\n groupsData.categories = groupsData.categories.sort(sort)\r\n }\r\n return dataByArguments\r\n}\r\n\r\nfunction checkItemExistence(collection, item) {\r\n return collection.map(function(collectionItem) {\r\n return collectionItem.valueOf()\r\n }).indexOf(item.valueOf()) === -1\r\n}\r\n\r\nfunction getCategories(data, uniqueArgumentFields, userCategories) {\r\n var categories = userCategories ? userCategories.slice() : [];\r\n uniqueArgumentFields.forEach(function(field) {\r\n data.forEach(function(item) {\r\n var dataItem = item[field];\r\n (0, _type.isDefined)(dataItem) && checkItemExistence(categories, dataItem) && categories.push(dataItem)\r\n })\r\n });\r\n return categories\r\n}\r\n\r\nfunction checkArgumentTypeOfGroup(series, cell, groupsData) {\r\n series.forEach(function(currentSeries) {\r\n groupsData.argumentType = getType(cell[currentSeries.getArgumentField()], groupsData.argumentType)\r\n });\r\n return groupsData.argumentType\r\n}\r\n\r\nfunction checkType(data, groupsData, checkTypeForAllData) {\r\n var groupsWithUndefinedValueType = [];\r\n var groupsWithUndefinedArgumentType = [];\r\n var argumentTypeGroup = groupsData.argumentOptions && axisTypeParser(groupsData.argumentOptions.argumentType);\r\n var groupsIndexes;\r\n groupsData.groups.forEach(function(group) {\r\n if (!group.series.length) {\r\n return\r\n }\r\n var valueTypeGroup = group.valueOptions && axisTypeParser(group.valueOptions.valueType);\r\n group.valueType = valueTypeGroup;\r\n groupsData.argumentType = argumentTypeGroup;\r\n !valueTypeGroup && groupsWithUndefinedValueType.push(group);\r\n !argumentTypeGroup && groupsWithUndefinedArgumentType.push(group)\r\n });\r\n if (groupsWithUndefinedValueType.length || groupsWithUndefinedArgumentType.length) {\r\n groupsIndexes = groupsWithUndefinedValueType.map(function(_, index) {\r\n return index\r\n });\r\n data.some(function(cell) {\r\n var defineArg;\r\n groupsWithUndefinedValueType.forEach(function(group, groupIndex) {\r\n if (checkValueTypeOfGroup(group, cell) && groupsIndexes.indexOf(groupIndex) >= 0) {\r\n groupsIndexes.splice(groupIndex, 1)\r\n }\r\n });\r\n if (!defineArg) {\r\n groupsWithUndefinedArgumentType.forEach(function(group) {\r\n defineArg = checkArgumentTypeOfGroup(group.series, cell, groupsData)\r\n })\r\n }\r\n if (!checkTypeForAllData && defineArg && 0 === groupsIndexes.length) {\r\n return true\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction checkAxisType(groupsData, incidentOccurred) {\r\n var argumentOptions = groupsData.argumentOptions || {};\r\n var userArgumentCategories = argumentOptions && argumentOptions.categories || [];\r\n var argumentAxisType = correctAxisType(groupsData.argumentType, argumentOptions.type, !!userArgumentCategories.length, incidentOccurred);\r\n groupsData.groups.forEach(function(group) {\r\n var valueOptions = group.valueOptions || {};\r\n var valueCategories = valueOptions.categories || [];\r\n var valueAxisType = correctAxisType(group.valueType, valueOptions.type, !!valueCategories.length, incidentOccurred);\r\n group.series.forEach(function(series) {\r\n var optionsSeries = {};\r\n optionsSeries.argumentAxisType = argumentAxisType;\r\n optionsSeries.valueAxisType = valueAxisType;\r\n groupsData.argumentAxisType = groupsData.argumentAxisType || optionsSeries.argumentAxisType;\r\n group.valueAxisType = group.valueAxisType || optionsSeries.valueAxisType;\r\n optionsSeries.argumentType = groupsData.argumentType;\r\n optionsSeries.valueType = group.valueType;\r\n optionsSeries.showZero = valueOptions.showZero;\r\n series.updateDataType(optionsSeries)\r\n });\r\n group.valueAxisType = group.valueAxisType || valueAxisType;\r\n if (group.valueAxis) {\r\n group.valueAxis.setTypes(group.valueAxisType, group.valueType, VALUE_TYPE);\r\n group.valueAxis.validate()\r\n }\r\n });\r\n groupsData.argumentAxisType = groupsData.argumentAxisType || argumentAxisType;\r\n if (groupsData.argumentAxes) {\r\n groupsData.argumentAxes.forEach(function(axis) {\r\n axis.setTypes(groupsData.argumentAxisType, groupsData.argumentType, ARGUMENT_TYPE);\r\n axis.validate()\r\n })\r\n }\r\n}\r\n\r\nfunction verifyData(source, incidentOccurred) {\r\n var data = [];\r\n var sourceIsDefined = (0, _type.isDefined)(source);\r\n var hasError = sourceIsDefined && !_isArray(source);\r\n var i;\r\n var ii;\r\n var k;\r\n var item;\r\n if (sourceIsDefined && !hasError) {\r\n for (i = 0, ii = source.length, k = 0; i < ii; ++i) {\r\n item = source[i];\r\n if ((0, _type.isObject)(item)) {\r\n data[k++] = item\r\n } else {\r\n if (item) {\r\n hasError = true\r\n }\r\n }\r\n }\r\n }\r\n if (hasError) {\r\n incidentOccurred(\"E2001\")\r\n }\r\n return data\r\n}\r\n\r\nfunction validateData(data, groupsData, incidentOccurred, options) {\r\n data = verifyData(data, incidentOccurred);\r\n groupsData.argumentType = groupsData.argumentAxisType = null;\r\n processGroups(groupsData.groups);\r\n resetArgumentAxes(groupsData.argumentAxes);\r\n checkType(data, groupsData, options.checkTypeForAllData);\r\n checkAxisType(groupsData, incidentOccurred);\r\n if (options.convertToAxisDataType) {\r\n data = parse(data, prepareParsers(groupsData, incidentOccurred))\r\n }\r\n groupPieData(data, groupsData);\r\n var dataByArgumentFields = sortData(data, groupsData, options, getUniqueArgumentFields(groupsData));\r\n return dataByArgumentFields\r\n}\r\n","/**\r\n * DevExtreme (viz/components/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.Tracker = Tracker;\r\nvar _index = require(\"../../events/utils/index\");\r\nvar _dom_adapter = _interopRequireDefault(require(\"../../core/dom_adapter\"));\r\nvar _click = require(\"../../events/click\");\r\nvar _pointer = _interopRequireDefault(require(\"../../events/pointer\"));\r\nvar _events_engine = _interopRequireDefault(require(\"../../events/core/events_engine\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar downPointerEventName = _pointer.default.down;\r\nvar movePointerEventName = _pointer.default.move;\r\n\r\nfunction Tracker(parameters) {\r\n this._initHandlers(parameters)\r\n}\r\nTracker.prototype = {\r\n constructor: Tracker,\r\n _initHandlers: function(parameters) {\r\n var document = _dom_adapter.default.getDocument();\r\n parameters.getCoords = function(e) {\r\n var data = (0, _index.eventData)(e);\r\n var offset = parameters.widget._renderer.getRootOffset();\r\n return [data.x - offset.left, data.y - offset.top]\r\n };\r\n parameters.root.on(_click.name, clickHandler);\r\n parameters.root.on(downPointerEventName, downHandler);\r\n _events_engine.default.on(document, downPointerEventName, downHandler);\r\n _events_engine.default.on(document, movePointerEventName, moveHandler);\r\n this._disposeHandlers = function() {\r\n parameters.root.off(_click.name, clickHandler);\r\n parameters.root.off(downPointerEventName, downHandler);\r\n _events_engine.default.off(document, downPointerEventName, downHandler);\r\n _events_engine.default.off(document, movePointerEventName, moveHandler)\r\n };\r\n\r\n function clickHandler(e) {\r\n processClick(e, parameters)\r\n }\r\n var isRootDown = false;\r\n\r\n function downHandler(e) {\r\n if (isRootDown) {\r\n isRootDown = false\r\n } else {\r\n if (void 0 !== parameters.getData(e)) {\r\n isRootDown = true\r\n }\r\n moveHandler(e)\r\n }\r\n }\r\n\r\n function moveHandler(e) {\r\n processHover(e, parameters);\r\n parameters.widget._getOption(\"tooltip\").enabled && processTooltip(e, parameters)\r\n }\r\n },\r\n dispose: function() {\r\n this._disposeHandlers()\r\n }\r\n};\r\n\r\nfunction processClick(e, params) {\r\n var id = params.getData(e);\r\n if (id >= 0) {\r\n params.click({\r\n node: params.getNode(id),\r\n coords: params.getCoords(e),\r\n event: e\r\n })\r\n }\r\n}\r\n\r\nfunction processHover(e, params) {\r\n var id = params.getData(e);\r\n if (id >= 0) {\r\n params.getNode(id).setHover()\r\n } else {\r\n params.widget.clearHover()\r\n }\r\n}\r\n\r\nfunction processTooltip(e, params) {\r\n var id = params.getData(e, true);\r\n var coords;\r\n if (id >= 0) {\r\n coords = (0, _index.eventData)(e);\r\n params.getNode(id).showTooltip([coords.x, coords.y])\r\n } else {\r\n params.widget.hideTooltip()\r\n }\r\n}\r\n"],"sourceRoot":""}