{"version":3,"sources":["../node_modules/devextreme/viz/core/base_theme_manager.js","../node_modules/devextreme/viz/core/layout_element.js","../node_modules/devextreme/viz/components/parse_utils.js","../node_modules/devextreme/viz/components/data_validator.js","../node_modules/devextreme/viz/components/tracker.js","../node_modules/devextreme/viz/core/errors_warnings.js","../node_modules/devextreme/viz/core/plaque.js","../node_modules/devextreme/viz/components/chart_theme_manager.js","../node_modules/devextreme/viz/core/series_family.js","../node_modules/devextreme/viz/core/themes/generic.light.js","../node_modules/devextreme/viz/core/themes/generic.dark.js","../node_modules/devextreme/viz/core/themes/generic.contrast.js","../node_modules/devextreme/viz/core/themes/generic.carmine.js","../node_modules/devextreme/viz/core/themes/generic.darkmoon.js","../node_modules/devextreme/viz/core/themes/generic.softblue.js","../node_modules/devextreme/viz/core/themes/generic.darkviolet.js","../node_modules/devextreme/viz/core/themes/generic.greenmist.js","../node_modules/devextreme/viz/core/themes/material.js","../node_modules/devextreme/viz/core/renderers/animation.js","../node_modules/devextreme/viz/core/layout.js","../node_modules/devextreme/viz/core/base_widget.utils.js","../node_modules/devextreme/viz/circular_gauge.js","../node_modules/devextreme/viz/core/base_widget.js","../node_modules/devextreme/viz/core/export.js","../node_modules/devextreme/viz/core/title.js","../node_modules/devextreme/viz/core/loading_indicator.js","../node_modules/devextreme/viz/components/consts.js","../node_modules/devextreme/viz/core/helpers.js","../node_modules/devextreme/viz/core/data_source.js","../node_modules/devextreme/viz/core/renderers/renderer.js","../node_modules/devextreme/viz/components/legend.js","../node_modules/devextreme/viz/core/annotations.js"],"names":["exports","BaseThemeManager","obj","_class","require","__esModule","_extend2","_type","_iterator","_palette","_utils","_themes","_getTheme","getTheme","_addCacheItem","addCacheItem","_removeCacheItem","removeCacheItem","_extend","extend","_each","each","getThemePart","theme","path","_theme","split","_","pathItem","default","inherit","ctor","options","this","_themeSection","themeSection","_fontFields","fontFields","dispose","_callback","_font","setCallback","callback","setTheme","rtl","_current","_rtl","refresh","current","name","_themeName","_defaultPalette","defaultPalette","font","isString","_initializeTheme","parseScalar","rtlEnabled","themeName","createPalette","palette","createDiscretePalette","count","getDiscretePalette","createGradientPalette","getGradientPalette","getAccentColor","that","_initializeFont","LayoutElement","WrapperLayoutElement","_common","_object","_round","Math","round","defaultOffset","horizontal","vertical","alignFactors","center","right","bottom","left","top","_options","renderElement","bBox","_renderElement","_cacheBBox","prototype","constructor","position","ofBBox","of","getLayoutOptions","myBBox","at","my","offset","shiftX","width","x","parseInt","shiftY","height","y","shift","noop","wrapperLayoutElementPrototype","clone","getBBox","move","correctValueType","getParser","_date_serialization","parsers","string","val","isDefined","numeric","parsedVal","Number","isNaN","datetime","numVal","deserializeDate","Date","type","valueType","validateData","data","groupsData","incidentOccurred","source","i","ii","k","item","sourceIsDefined","hasError","_isArray","length","isObject","verifyData","argumentType","argumentAxisType","groups","forEach","group","valueAxisType","series","updateDataType","valueAxis","resetTypes","axes","argumentAxes","axis","checkTypeForAllData","groupsIndexes","groupsWithUndefinedValueType","groupsWithUndefinedArgumentType","argumentTypeGroup","argumentOptions","axisTypeParser","valueTypeGroup","valueOptions","push","map","index","some","cell","defineArg","groupIndex","getValueFields","field","getType","checkValueTypeOfGroup","indexOf","splice","currentSeries","getArgumentField","checkArgumentTypeOfGroup","checkType","userArgumentCategories","categories","correctAxisType","valueCategories","optionsSeries","showZero","setTypes","validate","checkAxisType","convertToAxisDataType","parsedData","getParsedCell","parse","sizeParser","valueParser","argumentParser","createParserUnit","categoryParsers","cache","list","getSizeField","argumentCategories","valueGroup","parseCategories","parseAxisCategories","prepareParsers","firstSeries","originalData","argumentField","valueField","smallValuesGrouping","mode","others","String","groupName","sortValues","slice","a","groupingValues","threshold","value","findIndexByThreshold","topCount","groupMinSlices","getOptions","groupPieData","uniqueArgumentFields","reSortCategories","dataByArguments","isDiscrete","userCategories","sortFunction","sortingMethodOption","sortingMethod","isFunction","sort","sortByCallback","dataItem","collection","collectionItem","valueOf","checkItemExistence","getCategories","_skipArgumentSorting","hash","getSortByCategories","sortByArgument","sortData","itemsHash","getUniqueArgumentFields","_parse_utils","enumParser","Array","isArray","asc","selector","func","b","valA","valB","aa","bb","parser","newArray","category","parsedCategory","eigen","unit","result","isDate","isNumeric","axisType","hasCategories","filterInfinity","isFinite","parseUnit","validUnit","Tracker","_index","_dom_adapter","_interopRequireDefault","_click","_pointer","_events_engine","downPointerEventName","down","movePointerEventName","parameters","_initHandlers","document","getDocument","clickHandler","e","params","id","getData","click","node","getNode","coords","getCoords","event","processClick","eventData","widget","_renderer","getRootOffset","root","on","downHandler","moveHandler","_disposeHandlers","off","isRootDown","setHover","clearHover","processHover","_getOption","enabled","showTooltip","hideTooltip","processTooltip","_error","_errors","_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","_excluded","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","apply","_defineProperty","key","defineProperty","configurable","writable","_objectWithoutProperties","excluded","target","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","call","math","max","min","sin","cos","asin","PI","buildPath","_len","arguments","points","_key","join","getArc","cornerRadius","xDirection","yDirection","concat","getAbsoluteArc","rotateX","angle","x0","y0","rotateY","getCloudAngle","_ref","anchorX","anchorY","halfWidth","halfHeight","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","contentTemplate","measureContent","g","moveContentGroup","bonded","_proto","draw","_ref4","_this","_ref4$canvas","canvas","offsetX","offsetY","_ref4$offset","restProps","bounds","_root","_draw","shadowSettings","shadow","contentWidth","contentHeight","onRender","_this$_root","_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","getOwnPropertyDescriptors","defineProperties","_objectSpread","renderer","_shadow","shadowFilter","attr","cloudSettings","opacity","fill","color","borderOptions","border","visible","stroke","dashStyle","cloudGroup","_cloud","sharp","rotationAngle","clear","remove","customizeCloud","moveRoot","radRotationAngle","d","rotate","hitTest","_ref5","ThemeManager","_base_theme_manager","processAxisOptions","axisOptions","title","text","logarithmBase","logarithmBaseError","label","alignment","userAlignment","applyParticularAxisOptions","userOptions","rotated","processedUserOptions","commonAxisSettings","_userOptions","mergeOptions","workWeek","forceUserTickInterval","tickInterval","axisDivisionFactor","_mergedSettings","isPlainObject","applyParticularTheme","base","argumentAxis","valueAxisRangeSelector","seriesCount","mainSeriesColor","seriesVisibility","userCommonSettings","commonSeriesSettings","themeCommonSettings","widgetType","normalizeEnum","isBar","isLine","isArea","isBubble","resolveLabelsOverlapping","containerBackgroundColor","seriesTemplate","point","settings","aggregation","getNextColor","argument","cat","_multiPieColors","nameField","animation","zoomAndPan","parseOption","option","pan","zoom","none","dragToZoom","dragBoxStyle","panKey","allowMouseWheel","allowTouchGestures","callBase","_mergeAxisTitleOptions","resetPalette","reset","updatePalette","resetOptions","update","useHighlight","extensionMode","SeriesFamily","_math","pow","sqrt","_min","correctStackCoordinates","currentStacks","arg","stack","barsArea","seriesStackIndexCallback","extraParameters","stackIndex","getPointsByArg","barPadding","validateBarPadding","barWidth","getOffset","calculateParams","correctCoordinates","correctPointCoordinates","adjustBarSeriesDimensionsCore","_series$","barGroupPadding","commonStacks","allArguments","seriesInStacks","barGroupWidth","interval","getArgumentAxis","getTranslator","getInterval","s","stackName","getStackName","getBarOverlapGroup","toString","pointsByArgument","reduce","stacks","ignoreEmptyPoints","hasValue","isStackExist","percentWidth","fixedBarWidth","spacing","middleIndex","rawWidth","getVisibleSeries","isVisible","getAbsStackSumByArg","stackKeepers","positive","negative","getSeriesStackIndexCallback","inverted","stackCount","isInverted","adjustBarSeriesDimensions","adjustStackedSeriesValues","negativesAsZeroes","holesStack","lastSeriesInPositiveStack","lastSeriesInNegativeStack","singleSeries","hole","getPoints","initialValue","sign","getFirstValueSign","_prevSeries","holes","isNotBarSeries","resetValue","currentStack","correctValue","resetCorrection","minValue","_skipSetLeftHole","prevPoint","_skipSetRightHole","resetHoles","setHole","_stackKeepers","absTotal","total","getStackSumByArg","setPercentValue","updateStackedSeriesValues","minBarSize","valueAxisTranslator","getValueAxis","minShownBusinessValue","getMinBarSize","fullStacked","updateValue","checkMinBarSize","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","add","WHITE","BLACK","RED","NONE","SOLID","TOP","RIGHT","LEFT","CENTER","registerTheme","isDefault","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","adaptiveLayout","keepLabels","itemTextPosition","resolveLabelOverlapping","valueMarginsEnabled","placeholderSize","discreteAxisDivisionMode","grid","minorGrid","tick","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","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","winlossThreshold","showFirstLast","showMinMax","bullet","targetColor","targetWidth","showTarget","showZeroLevel","polar","closed","startAngle","firstPointOnStartAngle","period","funnel","colorField","hoverEnabled","customizeTooltip","info","valueText","algorithm","neckWidth","neckHeight","sankey","sourceField","targetField","weightField","useNodeColors","link","colorMode","menuButtonColor","activeBackgroundColor","activeColor","FONT_FAMILY","registerMaterialColorScheme","accentName","accentColor","markerColor","commonAnnotationSettings","materialAccents","blue","lime","orange","purple","teal","accent","hasOwnProperty","AnimationController","easingFunctions","animationSvgStep","_frame","easeOutCubic","pos","start","end","linear","segments","elem","progress","currentParams","curSeg","seg","j","from","to","arc","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","getTime","endAnimation","_endAnimation","_endAnimationTimer","setTimeout","requestAnimationFrame","addAnimation","clearTimeout","_startDelay","animateElement","onEndAnimation","cancelAnimationFrame","lock","unstoppable","hasUnstoppableInAnimations","_max","horizontalAlignmentMap","verticalAlignmentMap","sideMap","slicersMap","pickValue","defaultValue","normalizeLayoutOptions","primary","side","secondary","weak","priority","header","getShrink","processForward","rect","measure","minSide","isValid","processRectBackward","alignmentRect","primarySide","secondarySide","itemRect","processBackward","fitRect","targetRect","itemFitRect","freeSpace","Layout","_targets","processBackwardHeaderRect","rectCopy","makeHeader","weakElement","targetSize","weakSize","headerSize","weakRect","headerFitReact","headerRect","forward","targets","layoutOptions","headerItem","weakItem","processWeakItems","createTargets","_cache","reverse","backward","backwardRect","targetSide","createEventTrigger","eventsMap","callbackGetter","changes","triggers","createEvent","triggerEvent","change","eventInfo","applyChanges","newName","createIncidentOccurred","createResizeHandler","timeout","handler","_version","_string","_errors_warnings","widgetName","eventTrigger","args","format","version","_window","_resize_callbacks","_dom_component","_helpers","_renderer2","_layout","_devices","_deferred","_base_widget","_floor","_log","log","_option","getTrue","getFalse","defaultOnIncidentOccurred","component","_eventsStrategy","hasEvent","pickPositiveValue","values","callForEach","functions","c","baseWidget","hasWindow","emptyComponentConfig","_initTemplates","sizedElement","createElement","_getDefaultSize","setStyle","setClass","insertElement","EmptyComponent","originalInherit","config","substr","getEmptyComponent","_eventsMap","onIncidentOccurred","onDrawn","_getDefaultOptions","_useLinks","_init","_$element","children","_changesLocker","_optionChangedLocker","_asyncFirstDrawing","_changes","_suspendChanges","_themeManager","_createThemeManager","_requestChange","_themeDependentChanges","_renderElementAttributes","_initRenderer","linkTarget","enableLinks","virtualLink","_renderVisibilityChange","_attachVisibilityChangeHandlers","_toggleParentsScrollSubscription","_isVisible","_initEventTrigger","_incidentOccurred","NAME","_eventTrigger","linkAfter","_initPlugins","_initCore","_change","_initialChanges","_getThemeManagerOptions","_plugins","plugin","init","_disposePlugins","codes","_resumeChanges","_applyingChanges","_applyChanges","_changesApplied","unlock","_optionsQueue","_applyQueuedOptions","resolveItemsDeferred","_legend","_notify","items","_resolveDeferred","_getTemplatesItems","_collectTemplatesFromItems","prev","getTemplatesDef","getTemplatesGroups","elements","extraItems","_getExtraTemplatesItems","launchRequest","doneRequest","_setGroupsVisibility","_changesApplying","syncRendering","when","done","visibility","queue","beginUpdate","action","endUpdate","order","_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","_$prevRootParents","_dispose","_removeResizeHandler","_disposeCore","_createActionByOption","defaultCanvas","getSizeOfSide","elementSize","elementWidth","elementHeight","canvas1","canvas2","fixPlacement","__forceRender","_recreateSizeDependentObjects","_getMinSize","_getAlignmentRect","nextRect","_applySize","isScalar","_resizeHandler","_onBeginUpdate","_initialized","_isUpdateAllowed","_getActionForUpdating","_clean","_render","_optionChanged","partialChanges","getPartialChangeOptionsName","pc","_partialOptionChangesMap","_optionChangesMap","encodeHtml","elementAttr","disabled","_partialOptionChangesPath","changedOption","fullName","sections","partialChangeOptionsName","op","_addOptionsNameForPartialUpdate","every","_checkOptionsForPartialUpdate","self","optionObject","optionKeys","_visibilityChanged","_getRendererOptions","setOptions","svg","getSize","isReady","_dataIsReady","_resetIsReady","_drawn","replaceInherit","getMarkup","exportWidgets","exportFromMarkup","combineMarkups","ExportMenu","_exporter","_message","_hover","_console","pointerActions","ICON_COORDS","ALLOWED_IMAGE_FORMATS","ALLOWED_EXTRA_FORMATS","GET_COLOR_REGEX","getValidFormats","imageFormats","testFormats","unsupported","supported","validateFormat","validFormats","toUpperCase","getCreatorFunc","pdf","_print","imageSrc","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","patchFontOptions","menuItem","EXPORT_CSS_CLASS","css","resetState","fixPosition","textBBox","markup","fileName","exportingAction","onExporting","exportedAction","onExported","fileSavingAction","onFileSaving","parsedMarkup","exec","getBackgroundColorFromMarkup","export","widgets","markupInfo","gridLayout","compactView","exportItems","r","row","rowIndex","rowInfo","colIndex","backgroundColors","hOffset","itemWidth","rowOffsets","totalHeight","rowHeights","maxItemLen","totalWidth","getVOffset","align","dy","getHOffset","colWidth","dx","_exportTo","exportTo","_group","linkOn","after","_buttonGroup","_listGroup","_overlay","rx","ry","_subscribeEvents","getExportOptions","exportOptions","_widget$getSize","pixelRatio","devicePixelRatio","proxyUrl","svgToCanvas","forceProxy","_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","_Number","parseHorizontalAlignment","parseVerticalAlignment","hasText","processTitleLength","setMaxSize","textChanged","pickMarginValue","_params","_hasText","_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","isEmpty","srcBox","correction","checkRect","changeLink","_title","LoadingIndicator","_rect","_text","_createStates","notify","_states","_state","setSize","_transit","stateId","_isHiding","stopAnimation","animate","_noHiding","scheduleHiding","fulfillHiding","_loadingIndicator","_skipLoadingIndicatorOptions","_scheduleLoadingIndicatorHiding","_fulfillLoadingIndicatorHiding","showLoadingIndicator","hideLoadingIndicator","extenders","_dataSourceLoadingChangedHandler","isLoading","silent","_dataSourceChangedHandler","onLoadingIndicatorReady","events","mouseover","mouseout","mousemove","touchstart","touchmove","touchend","mousedown","mouseup","selectSeries","deselectSeries","selectPoint","deselectPoint","showPointTooltip","hidePointTooltip","states","normal","selection","normalMark","hoverMark","selectedMark","applyHover","applySelected","resetItem","radialLabelIndent","pieLabelSpacing","pieSeriesSpacing","Flags","expand","isServerSide","combineMaps","baseMap","thisMap","combineLists","baseList","thisList","buildTotalChanges","createChainExecutor","executeChain","_chain","copy","executor","expander","addPlugin","flags","_flags","_inherit","plugins","initialChanges","themeDependentChanges","optionChangesMap","partialOptionChangesMap","partialOptionChangesPath","optionChangesOrder","layoutChangesOrder","customChangesOrder","_data_helper","postCtor","_dataSourceLoadErrorHandler","_dataSourceOptions","paginate","_updateDataSource","_refreshDataSource","_dataIsLoaded","_dataSource","isLoaded","_dataSourceItems","RectSvgElement","PathSvgElement","ArcSvgElement","TextSvgElement","SvgElement","getFuncIri","processHatchingAttrs","refreshPaths","_call_once","_browser","_svg","_animation","_slicedToArray","arr","_arrayWithHoles","_i","Symbol","iterator","_s","_e","_arr","_n","_d","next","err","return","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","PI_DIV_180","pxAddingExceptions","orphans","widows","objectCreate","create","F","DEFAULTS","scaleX","scaleY","getBackup","backupContainer","backupCounter","getNextDefsSvgId","numDefsSvgElements","isObjectArgument","tagName","createElementNS","href","roundValue","exp","preserveAspectRatioMap","full","lefttop","leftcenter","leftbottom","centertop","centerbottom","righttop","rightcenter","rightbottom","attrs","_hatching","lockHatching","releaseHatching","buildArcPath","innerR","outerR","startAngleCos","startAngleSin","endAngleCos","endAngleSin","isCircle","longFlag","toFixed","buildPathSegments","buildLineSegments","buildCurveSegments","close","buildSegments","buildSimpleLineSegment","buildSimpleCurveSegment","buildSimpleSegment","_points$","k0","prepareConstSegment","constSeg","makeEqualLineSegments","short","long","makeEqualAreaSegments","head","constsSeg1","constsSeg2","shortLength","longLength","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","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","parseFloat","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","empty","toBackground","firstChild","toForeground","smartAttr","sharpDirection","tr","transformations","sharpMode","trDirection","strokeOdd","correctionX","correctionY","scaleXDefined","scaleYDefined","animOptions","_getElementBBox","offsetWidth","offsetHeight","transformation","rotateBBox","normalizeBBox","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","display","overflow","_$container","_locker","_backed","isResetRequired","wasStroked","maxTextWidth","t","textWidth","alignTextNodes","isStroked","parsedHtml","trim","parseMultiline","html","findStyleAndClassAttrs","allTagAttrs","p1","p2","p3","match","str","removeExtraAttrs","div","innerHTML","orderHtmlTree","parentStyle","parentClassName","realStyle","nodes","isElementNode","fontSize","fontWeight","textDecoration","currentItem","NaN","adjustLineHeights","parseHTML","createTextNodes","strokeWidth","strokeOpacity","strokeTextNodes","applyEllipsis","lineParts","ellipsisWidth","endIndex","prepareLines","textIsEmpty","restoreTitleElement","_that$_getElementBBox","_defs","_animationController","mozilla","msie","getBoundingClientRect","get","removePlacementFix","updateAnimationOptions","getBody","removeByRenderer","stopAllAnimations","simpleRect","circle","cx","cy","w","h","preserveAspectRatio","setAttributeNS","linearGradient","stops","gradient","pattern","_id","stepTo2","stepBy15","patternUnits","_getPointsWithYOffset","clipShape","method","methodArgs","clipPath","shape","clipCircle","radius","gaussianBlur","stdDeviation","flood","composite","in2","operator","finalComposite","filterAttrs","offsetAttrs","floodAttrs","brightFilter","slope","componentTransferElement","_grayScaleFilter","initHatching","storage","_hatchingStorage","byHash","baseId","refToHash","nextId","ref","storageItem","getHatchingHash","callbacks","el","fire","Legend","_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","array","transposeArray","getMarkerCreator","getTitleHorizontalAlignment","_legendGroup","_backgroundClass","backgroundClass","_itemGroupClass","itemGroupClass","_textField","_getCustomizeObject","getFormatObject","_titleGroupClass","titleGroupClass","_allowInsidePosition","_widget","_updated","_Legend","legendPrototype","themeManagerTitleOptions","initMarkerSize","_data","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","template","_getTemplate","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","itemBBoxOptions","itemBBox","itemLegend","calculateBBoxLabelAndMarker","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","_tooltip","_plaque","_drag","POINTER_ACTION","addNamespace","POINTER_UP_EVENT_NAME","DRAG_START_EVENT_NAME","DRAG_EVENT_NAME","DRAG_END_EVENT_NAME","coreAnnotation","annotationGroup","plaque","_isAnnotationBounded","_getAnnotationCoords","immediate","_dragOffsetX","pageX","_dragOffsetY","pageY","annotation","setTemplate","tooltipTemplate","getTemplateFunction","groupElement","url","outerWidth","outerHeight","imageWidth","imageHeight","getImageObject","customizeAnnotation","pullOptions","commonImageOptions","currentImageOptions","customizedItem","chartPlugin","_axis","_axis2","_series","argCoordName","valCoordName","argAxis","validateUnit","getPointCenterByArg","translate","_axis3","_series2","_getCanvasForPane","_argumentAxes","getAxisPosition","checkSeriesViewportCoord","getSeriesPairCoord","_annotationsPointerEventHandler","_disposed","originalEvent","touch","touches","rootOffset","_annotations","_clear","_hideToolTipForDrag","_pullOptions","_forceAnnotationRender","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","Tooltip","widgetRoot","clearItems","setRendererOptions","_annotationsGroup","_createHtmlStructure","_buildAnnotations","_setAnnotationTooltipOptions","tooltipOptions","polarChart","vectorMap","pieChart"],"mappings":"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","file":"static/js/main~e3ef5c61.1de84401.chunk.js","sourcesContent":["/**\r\n * DevExtreme (viz/core/base_theme_manager.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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","/**\r\n * DevExtreme (viz/core/errors_warnings.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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\nvar _excluded = [\"x\", \"y\", \"canvas\", \"offsetX\", \"offsetY\", \"offset\"];\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 enumerableOnly && (symbols = symbols.filter(function(sym) {\r\n return Object.getOwnPropertyDescriptor(object, sym).enumerable\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 i % 2 ? ownKeys(Object(source), !0).forEach(function(key) {\r\n _defineProperty(target, key, source[key])\r\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {\r\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key))\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, _excluded);\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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);\r\n var commonAxisSettings = processAxisOptions(this._userOptions.commonAxisSettings);\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 _series$;\r\n var commonStacks = [];\r\n var allArguments = [];\r\n var seriesInStacks = {};\r\n var barGroupWidth = options.barGroupWidth;\r\n var interval = null === (_series$ = series[0]) || void 0 === _series$ ? void 0 : _series$.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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.easingFunctions = exports.animationSvgStep = 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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);\r\n fitRect[2 + weakElement.primary] = weakRect[weakElement.primary];\r\n var headerFitReact = processBackwardHeaderRect(header, 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);\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)\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.createIncidentOccurred = void 0;\r\nexports.createResizeHandler = createResizeHandler;\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/base_widget.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.getMarkup = exports.exportWidgets = exports.exportFromMarkup = exports.combineMarkups = exports.ExportMenu = 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 var _widget$getSize = widget.getSize(),\r\n width = _widget$getSize.width,\r\n height = _widget$getSize.height;\r\n var pixelRatio = (0, _window.getWindow)().devicePixelRatio || 1;\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: width * pixelRatio,\r\n height: height * pixelRatio,\r\n pixelRatio: pixelRatio,\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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/loading_indicator.js)\r\n * Version: 20.2.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.changes = changes;\r\nexports.expand = expand;\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.RectSvgElement = exports.PathSvgElement = exports.ArcSvgElement = void 0;\r\nexports.Renderer = Renderer;\r\nexports.TextSvgElement = exports.SvgElement = void 0;\r\nexports.getFuncIri = getFuncIri;\r\nexports.processHatchingAttrs = processHatchingAttrs;\r\nexports.refreshPaths = 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 = null == arr ? null : \"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);\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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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.11\r\n * Build date: Wed Apr 27 2022\r\n *\r\n * Copyright (c) 2012 - 2022 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 if (this._disposed) {\r\n return\r\n }\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"],"sourceRoot":""}