{"version":3,"sources":["webpack:///./node_modules/devextreme/viz/bullet.js","webpack:///./node_modules/devextreme/viz/chart.js"],"names":["obj","exports","default","_default","__esModule","module","_common","_extend2","_array","_window","_iterator","_component_registrator","_interopRequireDefault","_utils","_utils2","_type","_math","_base_chart","_multi_axes_synchronizer","_advanced_chart","_scroll_bar","_crosshair","_range_data_calculator","_layout_manager","_range","_shutter_zoom","_zoom_and_pan","_annotations","DEFAULT_PANES","name","border","_isArray","Array","isArray","changeVisibilityAxisGrids","axis","gridVisibility","minorGridVisibility","gridOpt","getOptions","grid","minorGridOpt","minorGrid","visible","compareAxes","a","b","priority","doesPaneExist","panes","paneName","found","each","_","pane","accumulate","field","src1","src2","auxSpacing","val1","val2","pickMax","pickMaxValue","Math","max","getAxisMargins","getMargins","getHorizontalAxesMargins","axes","getMarginsFunc","reduce","margins","_axis$getOrthogonalAx","axisMargins","paneMargins","spacing","getMultipleAxesSpacing","top","bottom","left","right","orthogonalAxis","getOrthogonalAxis","call","customPositionIsAvailable","customPositionIsBoundaryOrthogonalAxis","customPositionEqualsToPredefined","getResolvedBoundaryPosition","getVerticalAxesMargins","performActionOnAxes","action","actionArgument1","actionArgument2","actionArgument3","forEach","shrinkCanvases","isRotated","canvases","sizes","verticalMargins","horizontalMargins","getMargin","side","indexOf","getMaxMargin","margins1","margins2","getOriginalField","concat","toUpperCase","slice","shrink","paneNames","sizeField","startMargin","endMargin","oppositeMargins","sort","p1","p2","canvas","margin","firstPane","emptySpace","space","length","PANE_PADDING","Object","keys","prev","key","isRelativeHeightPane","height","offset","paneSize","floor","drawAxesWithTicks","condition","panesBorderOptions","synchronize","shiftAxis","side1","side2","shifts","shift","getCommonSize","size","checkUsedSpace","sizeShortage","getMarginFunc","dxChart","AdvancedChart","inherit","_themeSection","_fontFields","_initCore","this","paneAxis","callBase","_init","_containerInitialHeight","hasWindow","_$element","_correctAxes","_correctValueAxes","_getExtraOptions","noop","_createPanes","defaultPane","option","panesNameCounter","extend","isDefined","_incidentOccurred","_isRotated","reverse","_getAxisRenderingOptions","axisType","drawingType","_prepareAxisOptions","typeSelector","userOptions","rotated","isHorizontal","containerColor","_themeManager","_checkPaneName","seriesTheme","paneList","map","inArray","_initCustomPositioningAxes","that","argumentAxis","getArgumentAxis","valueAxisName","customPositionAxis","valueAxis","_valueAxes","filter","v","customPositionIsBoundary","some","_getAllAxes","_argumentAxes","_resetAxesAnimation","isFirstDrawing","resetApplyingAnimation","_cleanGroups","beforeCleanGroups","afterCleanGroups","_axesBoundaryPositioning","allAxes","boundaryStateChanged","prevBoundaryState","_customBoundaryPosition","getCustomBoundaryPosition","_getValueAxis","axisName","axisOptions","valueAxes","valueAxisOptions","valueAxesOptions","crosshairMargins","_getCrosshairMargins","findAxis","i","result","getFirstAxisNameForPane","axInd","findAxisOptions","_createAxis","_populateAxesOptions","optionPath","crosshairMargin","y","x","applyVisualRangeSetter","_getVisualRangeSetter","push","setPane","needHideGrids","synchronizeMultiAxes","paneWithAxis","series","getValueAxis","axesForPane","axisShown","hiddenStubAxis","minorGridOptions","gridOptions","getTranslator","getBusinessRange","isEmpty","defaultAxis","axesWithSamePath","_getSeriesForPane","paneSeries","oneSeries","_createPanesBorderOptions","commonBorderOptions","_createScrollBar","scrollBarOptions","scrollBarGroup","_scrollBarGroup","_scrollBar","ScrollBar","_renderer","update","linkRemove","dispose","_prepareToRender","drawOptions","_createPanesBackground","_appendAxesGroups","_adjustViewport","_getVisibleSeries","useAggregation","s","adjustOnZoom","alignToBounds","dataVisualRangeIsReduced","adjust","_recreateSizeDependentObjects","isCanvasChanged","zoomChanged","_isZooming","updateCanvas","_canvas","_useAllAggregatedPoints","createPoints","_processSeriesFamilies","businessRange","zoomRange","getViewport","min","getLog","base","viewportDistance","getCategoriesInfo","categories","abs","precision","getPrecision","pow","round","_zoomLength","_handleSeriesDataUpdated","viewport","Range","addRange","getArgumentRange","setBusinessRange","_axesReinitialized","_isLegendInside","_legend","getPosition","_getLayoutTargets","_applyClipRects","_drawPanesBorders","_createClipRectsForPanes","_applyClipRectsForAxes","_fillPanesBackground","_updateLegendPosition","legendHasInsidePosition","drawLegend","newCanvas","layoutManager","LayoutManager","layoutInsideLegend","_allowLegendInsidePosition","_applyExtraSettings","paneIndex","_getPaneIndex","panesClipRects","_panesClipRects","wideClipRect","wide","setClippingParams","id","_getPaneBorderVisibility","_updatePanesCanvases","recreateCanvas","updatePanesCanvases","_normalizePanesHeight","normalizePanesHeight","_renderScaleBreaks","drawScaleBreaks","_getArgFilter","getViewPortFilter","visualRange","_applyPointMarkersAutoHiding","allSeries","_ref","borderCoords","usePointsToDefineAutoHiding","argAxis","markersInfo","filteredSeries","overloadedSeries","argVisualRange","argTranslator","argViewPortFilter","valAxis","valVisualRange","getCanvasRange","valTranslator","seriesIndex","valViewPortFilter","sr","seriesPoints","getPoints","p","argument","getMinValue","getMaxValue","tp","value","bubbleSize","mp","to","pointsCount","total","continuousSeries","index","points","collectMarkersInfoBySeries","area","width","_loop","currentSeries","pointSize","pointsArea","autoHidePointMarkersEnabled","autoHidePointMarkers","splice","fastHidingPointMarkersByArea","sortingCallback","type","isContinuousSeries","curPoint","j","nextPoint","next_x","next_y","distance","sqrt","updateMarkersInfo","argAxisType","tickCount","getTicksValues","majorTicksValues","parseInt","isNaN","applyAutoHidePointMarkers","_renderAxes","calculateTitlesWidth","getTitle","title","bBox","scrollBar","extendedArgAxes","_isArgumentAxisBeforeScrollBar","verticalAxes","verticalElements","horizontalAxes","horizontalElements","allElements","verticalAxesFirstDrawing","panesCanvases","paneSizes","unit","cleanPanesCanvases","needCustomAdjustAxes","adjustAxes","resolveOverlappingForCustomPositioning","vAxesMargins","hAxesMargins","estimateMargins","drawAxesAndSetCanvases","_changesApplying","_estimateTickIntervals","oldTitlesWidth","visibleSeries","axesIsAnimated","pointsToAnimation","sum","count","animate","animationPointsLimit","axisAnimationEnabled","_getPointsToAnimation","setInitRange","_axis$hasWrap","hasWrap","position","_ref2","getCustomPosition","_axisPosition","_getExtraTemplatesItems","elements","_collectTemplatesFromItems","items","groups","launchRequest","setRenderedState","doneRequest","estimateTickInterval","checkForMoreSpaceForPanesCanvas","needSpace","needHorizontalSpace","needVerticalSpace","argAxisRightMargin","rightPanesIndent","apply","argAxisBottomMargin","bottomPanesIndent","realSize","getSize","customSize","container","containerHasStyledHeight","style","_forceResize","needMoreSpaceForPanesCanvas","resize","_updateSize","_setContentSize","_preserveOriginalCanvas","_updateCanvasClipRect","_shrinkAxes","stopAllAnimations","_argumentAxis$getOpti","argAxisPosition","argAxisLabelPosition","label","scrollBarPosition","hasNonBoundaryPosition","_getPanesParameters","params","coords","clipRect","fixed","_createCrosshairCursor","options","parameters","_getCommonCanvas","enabled","Crosshair","_crosshairCursorGroup","render","commonCanvas","backgroundColor","rect","defaultBackgroundColor","renderer","rects","_panesBackgroundGroup","clear","attr","fill","append","panesBackground","bc","_calcPaneBorderCoords","_panesBorderGroup","borderOptions","stroke","color","opacity","dashStyle","segmentRectParams","prepareSegmentRectPoints","path","pathType","linkAppend","_createClipRect","clipArray","needWideClipRect","isFinancialSeries","areErrorBarsVisible","chartCanvasClipRectID","_getCanvasClipRectID","elementsClipRectID","_getElementsClipRectID","applyClipRects","commonPaneBorderVisible","paneBorder","_getCanvasForPane","panesNumber","_getTrackerSettings","themeManager","chart","crosshair","_getCrosshairOptions","stickyHovering","_resolveLabelOverlappingStack","shiftDirection","box","_getStackPoints","stacks","overlapping","resolveLabelOverlappingInOneDirection","coordPosition","labels","getFigureCenter","getPoint","isInverted","stackPoints","singleSeries","stackName","getStackName","point","_getOption","zoomArgument","_initialized","resetVisualRange","nonVirtualArgumentAxis","_applyCustomVisualRangeOption","getVisibleArgumentBounds","range","isDiscrete","minVisible","maxVisible","_change_FULL_RENDER","_changes","has","_raiseZoomEndHandlers","_getAxesForScaling","_applyVisualRangeByVirtualAxes","isArgumentAxis","start","end","handleZoomEnd","_setOptionsByReference","_optionsByReference","arguments","_options","silent","_notifyVisualRange","argumentVisualRange","convertVisualRangeObject","skipEventRising","rangesAreEqual","addPlugin","plugins","core"],"mappings":"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","file":"vendors~afce7f97.a6e1c79aa37335a8e78e.bundle.js","sourcesContent":["/**\r\n * DevExtreme (viz/bullet.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _bullet = _interopRequireDefault(require(\"./sparklines/bullet\"));\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar _default = _bullet.default;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n","/**\r\n * DevExtreme (viz/chart.js)\r\n * Version: 20.2.7\r\n * Build date: Thu Apr 22 2021\r\n *\r\n * Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\n\"use strict\";\r\nexports.default = void 0;\r\nvar _common = require(\"../core/utils/common\");\r\nvar _extend2 = require(\"../core/utils/extend\");\r\nvar _array = require(\"../core/utils/array\");\r\nvar _window = require(\"../core/utils/window\");\r\nvar _iterator = require(\"../core/utils/iterator\");\r\nvar _component_registrator = _interopRequireDefault(require(\"../core/component_registrator\"));\r\nvar _utils = require(\"./utils\");\r\nvar _utils2 = require(\"./core/utils\");\r\nvar _type = require(\"../core/utils/type\");\r\nvar _math = require(\"../core/utils/math\");\r\nvar _base_chart = require(\"./chart_components/base_chart\");\r\nvar _multi_axes_synchronizer = _interopRequireDefault(require(\"./chart_components/multi_axes_synchronizer\"));\r\nvar _advanced_chart = require(\"./chart_components/advanced_chart\");\r\nvar _scroll_bar = require(\"./chart_components/scroll_bar\");\r\nvar _crosshair = require(\"./chart_components/crosshair\");\r\nvar _range_data_calculator = _interopRequireDefault(require(\"./series/helpers/range_data_calculator\"));\r\nvar _layout_manager = require(\"./chart_components/layout_manager\");\r\nvar _range = require(\"./translators/range\");\r\nvar _shutter_zoom = _interopRequireDefault(require(\"./chart_components/shutter_zoom\"));\r\nvar _zoom_and_pan = _interopRequireDefault(require(\"./chart_components/zoom_and_pan\"));\r\nvar _annotations = require(\"./core/annotations\");\r\n\r\nfunction _interopRequireDefault(obj) {\r\n return obj && obj.__esModule ? obj : {\r\n \"default\": obj\r\n }\r\n}\r\nvar DEFAULT_PANE_NAME = \"default\";\r\nvar VISUAL_RANGE = \"VISUAL_RANGE\";\r\nvar DEFAULT_PANES = [{\r\n name: DEFAULT_PANE_NAME,\r\n border: {}\r\n}];\r\nvar DISCRETE = \"discrete\";\r\nvar _isArray = Array.isArray;\r\n\r\nfunction getFirstAxisNameForPane(axes, paneName, defaultPane) {\r\n var result;\r\n for (var i = 0; i < axes.length; i++) {\r\n if (axes[i].pane === paneName || void 0 === axes[i].pane && paneName === defaultPane) {\r\n result = axes[i].name;\r\n break\r\n }\r\n }\r\n if (!result) {\r\n result = axes[0].name\r\n }\r\n return result\r\n}\r\n\r\nfunction changeVisibilityAxisGrids(axis, gridVisibility, minorGridVisibility) {\r\n var gridOpt = axis.getOptions().grid;\r\n var minorGridOpt = axis.getOptions().minorGrid;\r\n gridOpt.visible = gridVisibility;\r\n minorGridOpt && (minorGridOpt.visible = minorGridVisibility)\r\n}\r\n\r\nfunction hideGridsOnNonFirstValueAxisForPane(axesForPane) {\r\n var axisShown = false;\r\n var hiddenStubAxis = [];\r\n var minorGridVisibility = axesForPane.some(function(axis) {\r\n var minorGridOptions = axis.getOptions().minorGrid;\r\n return minorGridOptions && minorGridOptions.visible\r\n });\r\n var gridVisibility = axesForPane.some(function(axis) {\r\n var gridOptions = axis.getOptions().grid;\r\n return gridOptions && gridOptions.visible\r\n });\r\n if (axesForPane.length > 1) {\r\n axesForPane.forEach(function(axis) {\r\n var gridOpt = axis.getOptions().grid;\r\n if (axisShown) {\r\n changeVisibilityAxisGrids(axis, false, false)\r\n } else {\r\n if (gridOpt && gridOpt.visible) {\r\n if (axis.getTranslator().getBusinessRange().isEmpty()) {\r\n changeVisibilityAxisGrids(axis, false, false);\r\n hiddenStubAxis.push(axis)\r\n } else {\r\n axisShown = true;\r\n changeVisibilityAxisGrids(axis, gridVisibility, minorGridVisibility)\r\n }\r\n }\r\n }\r\n });\r\n !axisShown && hiddenStubAxis.length && changeVisibilityAxisGrids(hiddenStubAxis[0], gridVisibility, minorGridVisibility)\r\n }\r\n}\r\n\r\nfunction findAxisOptions(valueAxes, valueAxesOptions, axisName) {\r\n var result;\r\n var axInd;\r\n for (axInd = 0; axInd < valueAxesOptions.length; axInd++) {\r\n if (valueAxesOptions[axInd].name === axisName) {\r\n result = valueAxesOptions[axInd];\r\n result.priority = axInd;\r\n break\r\n }\r\n }\r\n if (!result) {\r\n for (axInd = 0; axInd < valueAxes.length; axInd++) {\r\n if (valueAxes[axInd].name === axisName) {\r\n result = valueAxes[axInd].getOptions();\r\n result.priority = valueAxes[axInd].priority;\r\n break\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction findAxis(paneName, axisName, axes) {\r\n var axis;\r\n var i;\r\n for (i = 0; i < axes.length; i++) {\r\n axis = axes[i];\r\n if (axis.name === axisName && axis.pane === paneName) {\r\n return axis\r\n }\r\n }\r\n if (paneName) {\r\n return findAxis(void 0, axisName, axes)\r\n }\r\n}\r\n\r\nfunction compareAxes(a, b) {\r\n return a.priority - b.priority\r\n}\r\n\r\nfunction doesPaneExist(panes, paneName) {\r\n var found = false;\r\n (0, _iterator.each)(panes, function(_, pane) {\r\n if (pane.name === paneName) {\r\n found = true;\r\n return false\r\n }\r\n });\r\n return found\r\n}\r\n\r\nfunction accumulate(field, src1, src2, auxSpacing) {\r\n var val1 = src1[field] || 0;\r\n var val2 = src2[field] || 0;\r\n return val1 + val2 + (val1 && val2 ? auxSpacing : 0)\r\n}\r\n\r\nfunction pickMax(field, src1, src2) {\r\n return pickMaxValue(src1[field], src2[field])\r\n}\r\n\r\nfunction pickMaxValue(val1, val2) {\r\n return Math.max(val1 || 0, val2 || 0)\r\n}\r\n\r\nfunction getAxisMargins(axis) {\r\n return axis.getMargins()\r\n}\r\n\r\nfunction getHorizontalAxesMargins(axes, getMarginsFunc) {\r\n return axes.reduce(function(margins, axis) {\r\n var _axis$getOrthogonalAx;\r\n var axisMargins = getMarginsFunc(axis);\r\n var paneMargins = margins.panes[axis.pane] = margins.panes[axis.pane] || {};\r\n var spacing = axis.getMultipleAxesSpacing();\r\n paneMargins.top = accumulate(\"top\", paneMargins, axisMargins, spacing);\r\n paneMargins.bottom = accumulate(\"bottom\", paneMargins, axisMargins, spacing);\r\n paneMargins.left = pickMax(\"left\", paneMargins, axisMargins);\r\n paneMargins.right = pickMax(\"right\", paneMargins, axisMargins);\r\n margins.top = pickMax(\"top\", paneMargins, margins);\r\n margins.bottom = pickMax(\"bottom\", paneMargins, margins);\r\n margins.left = pickMax(\"left\", paneMargins, margins);\r\n margins.right = pickMax(\"right\", paneMargins, margins);\r\n var orthogonalAxis = null === (_axis$getOrthogonalAx = axis.getOrthogonalAxis) || void 0 === _axis$getOrthogonalAx ? void 0 : _axis$getOrthogonalAx.call(axis);\r\n if (orthogonalAxis && orthogonalAxis.customPositionIsAvailable() && (!axis.customPositionIsBoundaryOrthogonalAxis() || !orthogonalAxis.customPositionEqualsToPredefined())) {\r\n margins[orthogonalAxis.getResolvedBoundaryPosition()] = 0\r\n }\r\n return margins\r\n }, {\r\n panes: {}\r\n })\r\n}\r\n\r\nfunction getVerticalAxesMargins(axes) {\r\n return axes.reduce(function(margins, axis) {\r\n var axisMargins = axis.getMargins();\r\n var paneMargins = margins.panes[axis.pane] = margins.panes[axis.pane] || {};\r\n var spacing = axis.getMultipleAxesSpacing();\r\n paneMargins.top = pickMax(\"top\", paneMargins, axisMargins);\r\n paneMargins.bottom = pickMax(\"bottom\", paneMargins, axisMargins);\r\n paneMargins.left = accumulate(\"left\", paneMargins, axisMargins, spacing);\r\n paneMargins.right = accumulate(\"right\", paneMargins, axisMargins, spacing);\r\n margins.top = pickMax(\"top\", paneMargins, margins);\r\n margins.bottom = pickMax(\"bottom\", paneMargins, margins);\r\n margins.left = pickMax(\"left\", paneMargins, margins);\r\n margins.right = pickMax(\"right\", paneMargins, margins);\r\n return margins\r\n }, {\r\n panes: {}\r\n })\r\n}\r\n\r\nfunction performActionOnAxes(axes, action, actionArgument1, actionArgument2, actionArgument3) {\r\n axes.forEach(function(axis) {\r\n axis[action](actionArgument1 && actionArgument1[axis.pane], actionArgument2 && actionArgument2[axis.pane] || actionArgument2, actionArgument3)\r\n })\r\n}\r\n\r\nfunction shrinkCanvases(isRotated, canvases, sizes, verticalMargins, horizontalMargins) {\r\n function getMargin(side, margins, pane) {\r\n var m = (isRotated ? [\"left\", \"right\"] : [\"top\", \"bottom\"]).indexOf(side) === -1 ? margins : margins.panes[pane] || {};\r\n return m[side]\r\n }\r\n\r\n function getMaxMargin(side, margins1, margins2, pane) {\r\n return pickMaxValue(getMargin(side, margins1, pane), getMargin(side, margins2, pane))\r\n }\r\n var getOriginalField = function(field) {\r\n return \"original\".concat(field[0].toUpperCase()).concat(field.slice(1))\r\n };\r\n\r\n function shrink(canvases, paneNames, sizeField, startMargin, endMargin, oppositeMargins) {\r\n paneNames = paneNames.sort(function(p1, p2) {\r\n return canvases[p2][startMargin] - canvases[p1][startMargin]\r\n });\r\n paneNames.forEach(function(pane) {\r\n var canvas = canvases[pane];\r\n oppositeMargins.forEach(function(margin) {\r\n canvas[margin] = canvas[getOriginalField(margin)] + getMaxMargin(margin, verticalMargins, horizontalMargins, pane)\r\n })\r\n });\r\n var firstPane = canvases[paneNames[0]];\r\n var emptySpace = paneNames.reduce(function(space, paneName) {\r\n space -= getMaxMargin(startMargin, verticalMargins, horizontalMargins, paneName) + getMaxMargin(endMargin, verticalMargins, horizontalMargins, paneName);\r\n return space\r\n }, firstPane[sizeField] - firstPane[getOriginalField(endMargin)] - canvases[paneNames[paneNames.length - 1]][getOriginalField(startMargin)]) - _utils2.PANE_PADDING * (paneNames.length - 1);\r\n emptySpace -= Object.keys(sizes).reduce(function(prev, key) {\r\n return prev + (!(0, _utils2.isRelativeHeightPane)(sizes[key]) ? sizes[key].height : 0)\r\n }, 0);\r\n paneNames.reduce(function(offset, pane) {\r\n var canvas = canvases[pane];\r\n var paneSize = sizes[pane];\r\n offset -= getMaxMargin(endMargin, verticalMargins, horizontalMargins, pane);\r\n canvas[endMargin] = firstPane[sizeField] - offset;\r\n offset -= !(0, _utils2.isRelativeHeightPane)(paneSize) ? paneSize.height : Math.floor(emptySpace * paneSize.height);\r\n canvas[startMargin] = offset;\r\n offset -= getMaxMargin(startMargin, verticalMargins, horizontalMargins, pane) + _utils2.PANE_PADDING;\r\n return offset\r\n }, firstPane[sizeField] - firstPane[getOriginalField(endMargin)] - (emptySpace < 0 ? emptySpace : 0))\r\n }\r\n var paneNames = Object.keys(canvases);\r\n if (!isRotated) {\r\n shrink(canvases, paneNames, \"height\", \"top\", \"bottom\", [\"left\", \"right\"])\r\n } else {\r\n shrink(canvases, paneNames, \"width\", \"left\", \"right\", [\"top\", \"bottom\"])\r\n }\r\n return canvases\r\n}\r\n\r\nfunction drawAxesWithTicks(axes, condition, canvases, panesBorderOptions) {\r\n if (condition) {\r\n performActionOnAxes(axes, \"createTicks\", canvases);\r\n _multi_axes_synchronizer.default.synchronize(axes)\r\n }\r\n performActionOnAxes(axes, \"draw\", !condition && canvases, panesBorderOptions)\r\n}\r\n\r\nfunction shiftAxis(side1, side2) {\r\n var shifts = {};\r\n return function(axis) {\r\n if (!axis.customPositionIsAvailable() || axis.customPositionEqualsToPredefined()) {\r\n var shift = shifts[axis.pane] = shifts[axis.pane] || {\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n };\r\n var spacing = axis.getMultipleAxesSpacing();\r\n var margins = axis.getMargins();\r\n axis.shift(shift);\r\n shift[side1] = accumulate(side1, shift, margins, spacing);\r\n shift[side2] = accumulate(side2, shift, margins, spacing)\r\n } else {\r\n axis.shift({\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n })\r\n }\r\n }\r\n}\r\n\r\nfunction getCommonSize(side, margins) {\r\n var size = 0;\r\n var pane;\r\n var paneMargins;\r\n for (pane in margins.panes) {\r\n paneMargins = margins.panes[pane];\r\n size += \"height\" === side ? paneMargins.top + paneMargins.bottom : paneMargins.left + paneMargins.right\r\n }\r\n return size\r\n}\r\n\r\nfunction checkUsedSpace(sizeShortage, side, axes, getMarginFunc) {\r\n var size = 0;\r\n if (sizeShortage[side] > 0) {\r\n size = getCommonSize(side, getMarginFunc(axes, getAxisMargins));\r\n performActionOnAxes(axes, \"hideTitle\");\r\n sizeShortage[side] -= size - getCommonSize(side, getMarginFunc(axes, getAxisMargins))\r\n }\r\n if (sizeShortage[side] > 0) {\r\n performActionOnAxes(axes, \"hideOuterElements\")\r\n }\r\n}\r\n\r\nfunction axisAnimationEnabled(drawOptions, pointsToAnimation) {\r\n var pointsCount = pointsToAnimation.reduce(function(sum, count) {\r\n return sum + count\r\n }, 0) / pointsToAnimation.length;\r\n return drawOptions.animate && pointsCount <= drawOptions.animationPointsLimit\r\n}\r\n\r\nfunction collectMarkersInfoBySeries(allSeries, filteredSeries, argAxis) {\r\n var series = [];\r\n var overloadedSeries = {};\r\n var argVisualRange = argAxis.visualRange();\r\n var argTranslator = argAxis.getTranslator();\r\n var argViewPortFilter = _range_data_calculator.default.getViewPortFilter(argVisualRange || {});\r\n filteredSeries.forEach(function(s) {\r\n var valAxis = s.getValueAxis();\r\n var valVisualRange = valAxis.getCanvasRange();\r\n var valTranslator = valAxis.getTranslator();\r\n var seriesIndex = allSeries.indexOf(s);\r\n var valViewPortFilter = _range_data_calculator.default.getViewPortFilter(valVisualRange || {});\r\n overloadedSeries[seriesIndex] = {};\r\n filteredSeries.forEach(function(sr) {\r\n return overloadedSeries[seriesIndex][allSeries.indexOf(sr)] = 0\r\n });\r\n var seriesPoints = [];\r\n s.getPoints().filter(function(p) {\r\n return p.getOptions().visible && argViewPortFilter(p.argument) && (valViewPortFilter(p.getMinValue(true)) || valViewPortFilter(p.getMaxValue(true)))\r\n }).forEach(function(p) {\r\n var tp = {\r\n seriesIndex: seriesIndex,\r\n argument: p.argument,\r\n value: p.getMaxValue(true),\r\n size: p.bubbleSize || p.getOptions().size\r\n };\r\n if (p.getMinValue(true) !== p.getMaxValue(true)) {\r\n var mp = (0, _extend2.extend)({}, tp);\r\n mp.value = p.getMinValue(true);\r\n mp.x = argTranslator.to(mp.argument, 1);\r\n mp.y = valTranslator.to(mp.value, 1);\r\n seriesPoints.push(mp)\r\n }\r\n tp.x = argTranslator.to(tp.argument, 1);\r\n tp.y = valTranslator.to(tp.value, 1);\r\n seriesPoints.push(tp)\r\n });\r\n overloadedSeries[seriesIndex].pointsCount = seriesPoints.length;\r\n overloadedSeries[seriesIndex].total = 0;\r\n overloadedSeries[seriesIndex].continuousSeries = 0;\r\n series.push({\r\n name: s.name,\r\n index: seriesIndex,\r\n points: seriesPoints\r\n })\r\n });\r\n return {\r\n series: series,\r\n overloadedSeries: overloadedSeries\r\n }\r\n}\r\n\r\nfunction applyAutoHidePointMarkers(allSeries, filteredSeries, overloadedSeries, argAxis) {\r\n var argAxisType = argAxis.getOptions().type;\r\n filteredSeries.forEach(function(s) {\r\n var seriesIndex = allSeries.indexOf(s);\r\n s.autoHidePointMarkers = false;\r\n var tickCount = argAxis.getTicksValues().majorTicksValues.length;\r\n if (s.autoHidePointMarkersEnabled() && (argAxisType === DISCRETE || overloadedSeries[seriesIndex].pointsCount > tickCount)) {\r\n for (var index in overloadedSeries[seriesIndex]) {\r\n var i = parseInt(index);\r\n if (isNaN(i) || overloadedSeries[seriesIndex].total / overloadedSeries[seriesIndex].continuousSeries < 3) {\r\n continue\r\n }\r\n if (i === seriesIndex) {\r\n if (2 * overloadedSeries[i][i] >= overloadedSeries[i].pointsCount) {\r\n s.autoHidePointMarkers = true;\r\n break\r\n }\r\n } else {\r\n if (overloadedSeries[seriesIndex].total >= overloadedSeries[seriesIndex].pointsCount) {\r\n s.autoHidePointMarkers = true;\r\n break\r\n }\r\n }\r\n }\r\n }\r\n })\r\n}\r\n\r\nfunction fastHidingPointMarkersByArea(canvas, markersInfo, series) {\r\n var area = canvas.width * canvas.height;\r\n var seriesPoints = markersInfo.series;\r\n var _loop = function(i) {\r\n var currentSeries = series.filter(function(s) {\r\n return s.name === seriesPoints[i].name\r\n })[0];\r\n var points = seriesPoints[i].points;\r\n var pointSize = points.length ? points[0].size : 0;\r\n var pointsArea = pointSize * pointSize * points.length;\r\n if (currentSeries.autoHidePointMarkersEnabled() && pointsArea >= area / seriesPoints.length) {\r\n var index = seriesPoints[i].index;\r\n currentSeries.autoHidePointMarkers = true;\r\n seriesPoints.splice(i, 1);\r\n series.splice(series.indexOf(currentSeries), 1);\r\n delete markersInfo.overloadedSeries[index]\r\n }\r\n };\r\n for (var i = seriesPoints.length - 1; i >= 0; i--) {\r\n _loop(i)\r\n }\r\n}\r\n\r\nfunction updateMarkersInfo(points, overloadedSeries) {\r\n var isContinuousSeries = false;\r\n for (var i = 0; i < points.length - 1; i++) {\r\n var curPoint = points[i];\r\n var size = curPoint.size;\r\n if ((0, _type.isDefined)(curPoint.x) && (0, _type.isDefined)(curPoint.y)) {\r\n for (var j = i + 1; j < points.length; j++) {\r\n var nextPoint = points[j];\r\n var next_x = null === nextPoint || void 0 === nextPoint ? void 0 : nextPoint.x;\r\n var next_y = null === nextPoint || void 0 === nextPoint ? void 0 : nextPoint.y;\r\n if (!(0, _type.isDefined)(next_x) || Math.abs(curPoint.x - next_x) >= size) {\r\n isContinuousSeries &= j !== i + 1;\r\n break\r\n } else {\r\n var distance = (0, _type.isDefined)(next_x) && (0, _type.isDefined)(next_y) && Math.sqrt(Math.pow(curPoint.x - next_x, 2) + Math.pow(curPoint.y - next_y, 2));\r\n if (distance && distance < size) {\r\n overloadedSeries[curPoint.seriesIndex][nextPoint.seriesIndex]++;\r\n overloadedSeries[curPoint.seriesIndex].total++;\r\n if (!isContinuousSeries) {\r\n overloadedSeries[curPoint.seriesIndex].continuousSeries++;\r\n isContinuousSeries = true\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\nvar dxChart = _advanced_chart.AdvancedChart.inherit({\r\n _themeSection: \"chart\",\r\n _fontFields: [\"crosshair.label.font\"],\r\n _initCore: function() {\r\n this.paneAxis = {};\r\n this.callBase()\r\n },\r\n _init: function() {\r\n this._containerInitialHeight = (0, _window.hasWindow)() ? this._$element.height() : 0;\r\n this.callBase()\r\n },\r\n _correctAxes: function() {\r\n this._correctValueAxes(true)\r\n },\r\n _getExtraOptions: _common.noop,\r\n _createPanes: function() {\r\n var that = this;\r\n var panes = that.option(\"panes\");\r\n var panesNameCounter = 0;\r\n var defaultPane;\r\n if (!panes || _isArray(panes) && !panes.length) {\r\n panes = DEFAULT_PANES\r\n }\r\n that.callBase();\r\n defaultPane = that.option(\"defaultPane\");\r\n panes = (0, _extend2.extend)(true, [], _isArray(panes) ? panes : [panes]);\r\n (0, _iterator.each)(panes, function(_, pane) {\r\n pane.name = !(0, _type.isDefined)(pane.name) ? DEFAULT_PANE_NAME + panesNameCounter++ : pane.name\r\n });\r\n if ((0, _type.isDefined)(defaultPane)) {\r\n if (!doesPaneExist(panes, defaultPane)) {\r\n that._incidentOccurred(\"W2101\", [defaultPane]);\r\n defaultPane = panes[panes.length - 1].name\r\n }\r\n } else {\r\n defaultPane = panes[panes.length - 1].name\r\n }\r\n that.defaultPane = defaultPane;\r\n panes = that._isRotated() ? panes.reverse() : panes;\r\n return panes\r\n },\r\n _getAxisRenderingOptions: function() {\r\n return {\r\n axisType: \"xyAxes\",\r\n drawingType: \"linear\"\r\n }\r\n },\r\n _prepareAxisOptions: function(typeSelector, userOptions, rotated) {\r\n return {\r\n isHorizontal: \"argumentAxis\" === typeSelector !== rotated,\r\n containerColor: this._themeManager.getOptions(\"containerBackgroundColor\")\r\n }\r\n },\r\n _checkPaneName: function(seriesTheme) {\r\n var paneList = (0, _utils2.map)(this.panes, function(pane) {\r\n return pane.name\r\n });\r\n seriesTheme.pane = seriesTheme.pane || this.defaultPane;\r\n return (0, _array.inArray)(seriesTheme.pane, paneList) !== -1\r\n },\r\n _initCustomPositioningAxes: function() {\r\n var that = this;\r\n var argumentAxis = that.getArgumentAxis();\r\n var valueAxisName = argumentAxis.getOptions().customPositionAxis;\r\n var valueAxis = that._valueAxes.filter(function(v) {\r\n return v.pane === argumentAxis.pane && (!valueAxisName || valueAxisName === v.name)\r\n })[0];\r\n that._valueAxes.forEach(function(v) {\r\n if (argumentAxis !== v.getOrthogonalAxis()) {\r\n v.getOrthogonalAxis = function() {\r\n return argumentAxis\r\n };\r\n v.customPositionIsBoundaryOrthogonalAxis = function() {\r\n return argumentAxis.customPositionIsBoundary()\r\n }\r\n }\r\n });\r\n if ((0, _type.isDefined)(valueAxis) && valueAxis !== argumentAxis.getOrthogonalAxis()) {\r\n argumentAxis.getOrthogonalAxis = function() {\r\n return valueAxis\r\n };\r\n argumentAxis.customPositionIsBoundaryOrthogonalAxis = function() {\r\n return that._valueAxes.some(function(v) {\r\n return v.customPositionIsBoundary()\r\n })\r\n }\r\n } else {\r\n if ((0, _type.isDefined)(argumentAxis.getOrthogonalAxis()) && !(0, _type.isDefined)(valueAxis)) {\r\n argumentAxis.getOrthogonalAxis = _common.noop\r\n }\r\n }\r\n },\r\n _getAllAxes: function() {\r\n return this._argumentAxes.concat(this._valueAxes)\r\n },\r\n _resetAxesAnimation: function(isFirstDrawing, isHorizontal) {\r\n var axes = (0, _type.isDefined)(isHorizontal) ? isHorizontal ^ this._isRotated() ? this._argumentAxes : this._valueAxes : this._getAllAxes();\r\n axes.forEach(function(a) {\r\n a.resetApplyingAnimation(isFirstDrawing)\r\n })\r\n },\r\n _cleanGroups: function() {\r\n this._getAllAxes().forEach(function(a) {\r\n return a.beforeCleanGroups()\r\n });\r\n this.callBase();\r\n this._getAllAxes().forEach(function(a) {\r\n return a.afterCleanGroups()\r\n })\r\n },\r\n _axesBoundaryPositioning: function() {\r\n var that = this;\r\n var allAxes = that._getAllAxes();\r\n var boundaryStateChanged = false;\r\n allAxes.forEach(function(a) {\r\n if (!a.customPositionIsAvailable()) {\r\n return false\r\n }\r\n var prevBoundaryState = a.customPositionIsBoundary();\r\n a._customBoundaryPosition = a.getCustomBoundaryPosition();\r\n boundaryStateChanged |= prevBoundaryState !== a.customPositionIsBoundary()\r\n });\r\n return boundaryStateChanged\r\n },\r\n _getValueAxis: function(paneName, axisName) {\r\n var that = this;\r\n var valueAxes = that._valueAxes;\r\n var valueAxisOptions = that.option(\"valueAxis\") || {};\r\n var valueAxesOptions = _isArray(valueAxisOptions) ? valueAxisOptions : [valueAxisOptions];\r\n var rotated = that._isRotated();\r\n var crosshairMargins = that._getCrosshairMargins();\r\n var axisOptions;\r\n var axis;\r\n axisName = axisName || getFirstAxisNameForPane(valueAxes, paneName, that.defaultPane);\r\n axis = findAxis(paneName, axisName, valueAxes);\r\n if (!axis) {\r\n axisOptions = findAxisOptions(valueAxes, valueAxesOptions, axisName);\r\n if (!axisOptions) {\r\n that._incidentOccurred(\"W2102\", [axisName]);\r\n axisOptions = {\r\n name: axisName,\r\n priority: valueAxes.length\r\n }\r\n }\r\n axis = that._createAxis(false, that._populateAxesOptions(\"valueAxis\", axisOptions, {\r\n pane: paneName,\r\n name: axisName,\r\n optionPath: _isArray(valueAxisOptions) ? \"valueAxis[\".concat(axisOptions.priority, \"]\") : \"valueAxis\",\r\n crosshairMargin: rotated ? crosshairMargins.y : crosshairMargins.x\r\n }, rotated));\r\n axis.applyVisualRangeSetter(that._getVisualRangeSetter());\r\n valueAxes.push(axis)\r\n }\r\n axis.setPane(paneName);\r\n return axis\r\n },\r\n _correctValueAxes: function(needHideGrids) {\r\n var that = this;\r\n var synchronizeMultiAxes = that._themeManager.getOptions(\"synchronizeMultiAxes\");\r\n var valueAxes = that._valueAxes;\r\n var paneWithAxis = {};\r\n that.series.forEach(function(series) {\r\n var axis = series.getValueAxis();\r\n paneWithAxis[axis.pane] = true\r\n });\r\n that.panes.forEach(function(pane) {\r\n var paneName = pane.name;\r\n if (!paneWithAxis[paneName]) {\r\n that._getValueAxis(paneName)\r\n }\r\n if (needHideGrids && synchronizeMultiAxes) {\r\n hideGridsOnNonFirstValueAxisForPane(valueAxes.filter(function(axis) {\r\n return axis.pane === paneName\r\n }))\r\n }\r\n });\r\n that._valueAxes = valueAxes.filter(function(axis) {\r\n if (!axis.pane) {\r\n axis.setPane(that.defaultPane)\r\n }\r\n return doesPaneExist(that.panes, axis.pane)\r\n }).sort(compareAxes);\r\n var defaultAxis = this.getValueAxis();\r\n that._valueAxes.forEach(function(axis) {\r\n var optionPath = axis.getOptions().optionPath;\r\n if (optionPath) {\r\n var axesWithSamePath = that._valueAxes.filter(function(a) {\r\n return a.getOptions().optionPath === optionPath\r\n });\r\n if (axesWithSamePath.length > 1) {\r\n if (axesWithSamePath.some(function(a) {\r\n return a === defaultAxis\r\n })) {\r\n axesWithSamePath.forEach(function(a) {\r\n if (a !== defaultAxis) {\r\n a.getOptions().optionPath = null\r\n }\r\n })\r\n } else {\r\n axesWithSamePath.forEach(function(a, i) {\r\n if (0 !== i) {\r\n a.getOptions().optionPath = null\r\n }\r\n })\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _getSeriesForPane: function(paneName) {\r\n var paneSeries = [];\r\n (0, _iterator.each)(this.series, function(_, oneSeries) {\r\n if (oneSeries.pane === paneName) {\r\n paneSeries.push(oneSeries)\r\n }\r\n });\r\n return paneSeries\r\n },\r\n _createPanesBorderOptions: function() {\r\n var commonBorderOptions = this._themeManager.getOptions(\"commonPaneSettings\").border;\r\n var panesBorderOptions = {};\r\n this.panes.forEach(function(pane) {\r\n return panesBorderOptions[pane.name] = (0, _extend2.extend)(true, {}, commonBorderOptions, pane.border)\r\n });\r\n return panesBorderOptions\r\n },\r\n _createScrollBar: function() {\r\n var that = this;\r\n var scrollBarOptions = that._themeManager.getOptions(\"scrollBar\") || {};\r\n var scrollBarGroup = that._scrollBarGroup;\r\n if (scrollBarOptions.visible) {\r\n scrollBarOptions.rotated = that._isRotated();\r\n that._scrollBar = (that._scrollBar || new _scroll_bar.ScrollBar(that._renderer, scrollBarGroup)).update(scrollBarOptions)\r\n } else {\r\n scrollBarGroup.linkRemove();\r\n that._scrollBar && that._scrollBar.dispose();\r\n that._scrollBar = null\r\n }\r\n },\r\n _prepareToRender: function(drawOptions) {\r\n var panesBorderOptions = this._createPanesBorderOptions();\r\n this._createPanesBackground();\r\n this._appendAxesGroups();\r\n this._adjustViewport();\r\n return panesBorderOptions\r\n },\r\n _adjustViewport: function() {\r\n var that = this;\r\n var series = that._getVisibleSeries();\r\n var argumentAxis = that.getArgumentAxis();\r\n var useAggregation = series.some(function(s) {\r\n return s.useAggregation()\r\n });\r\n var adjustOnZoom = that._themeManager.getOptions(\"adjustOnZoom\");\r\n var alignToBounds = !argumentAxis.dataVisualRangeIsReduced();\r\n if (!useAggregation && !adjustOnZoom) {\r\n return\r\n }\r\n that._valueAxes.forEach(function(axis) {\r\n return axis.adjust(alignToBounds)\r\n })\r\n },\r\n _recreateSizeDependentObjects: function(isCanvasChanged) {\r\n var that = this;\r\n var series = that._getVisibleSeries();\r\n var useAggregation = series.some(function(s) {\r\n return s.useAggregation()\r\n });\r\n var zoomChanged = that._isZooming();\r\n if (!useAggregation) {\r\n return\r\n }\r\n that._argumentAxes.forEach(function(axis) {\r\n axis.updateCanvas(that._canvas, true)\r\n });\r\n series.forEach(function(series) {\r\n if (series.useAggregation() && (isCanvasChanged || zoomChanged || !series._useAllAggregatedPoints)) {\r\n series.createPoints()\r\n }\r\n });\r\n that._processSeriesFamilies()\r\n },\r\n _isZooming: function() {\r\n var that = this;\r\n var argumentAxis = that.getArgumentAxis();\r\n if (!argumentAxis || !argumentAxis.getTranslator()) {\r\n return false\r\n }\r\n var businessRange = argumentAxis.getTranslator().getBusinessRange();\r\n var zoomRange = argumentAxis.getViewport();\r\n var min = zoomRange ? zoomRange.min : 0;\r\n var max = zoomRange ? zoomRange.max : 0;\r\n if (\"logarithmic\" === businessRange.axisType) {\r\n min = (0, _utils2.getLog)(min, businessRange.base);\r\n max = (0, _utils2.getLog)(max, businessRange.base)\r\n }\r\n var viewportDistance = businessRange.axisType === DISCRETE ? (0, _utils2.getCategoriesInfo)(businessRange.categories, min, max).categories.length : Math.abs(max - min);\r\n var precision = (0, _math.getPrecision)(viewportDistance);\r\n precision = precision > 1 ? Math.pow(10, precision - 2) : 1;\r\n var zoomChanged = Math.round((that._zoomLength - viewportDistance) * precision) / precision !== 0;\r\n that._zoomLength = viewportDistance;\r\n return zoomChanged\r\n },\r\n _handleSeriesDataUpdated: function() {\r\n var that = this;\r\n var viewport = new _range.Range;\r\n that.series.forEach(function(s) {\r\n viewport.addRange(s.getArgumentRange())\r\n });\r\n that._argumentAxes.forEach(function(axis) {\r\n axis.updateCanvas(that._canvas, true);\r\n axis.setBusinessRange(viewport, that._axesReinitialized)\r\n });\r\n that.callBase()\r\n },\r\n _isLegendInside: function() {\r\n return this._legend && \"inside\" === this._legend.getPosition()\r\n },\r\n _isRotated: function() {\r\n return this._themeManager.getOptions(\"rotated\")\r\n },\r\n _getLayoutTargets: function() {\r\n return this.panes\r\n },\r\n _applyClipRects: function(panesBorderOptions) {\r\n var that = this;\r\n that._drawPanesBorders(panesBorderOptions);\r\n that._createClipRectsForPanes();\r\n that._applyClipRectsForAxes();\r\n that._fillPanesBackground()\r\n },\r\n _updateLegendPosition: function(drawOptions, legendHasInsidePosition) {\r\n var that = this;\r\n if (drawOptions.drawLegend && that._legend && legendHasInsidePosition) {\r\n var panes = that.panes;\r\n var newCanvas = (0, _extend2.extend)({}, panes[0].canvas);\r\n var layoutManager = new _layout_manager.LayoutManager;\r\n newCanvas.right = panes[panes.length - 1].canvas.right;\r\n newCanvas.bottom = panes[panes.length - 1].canvas.bottom;\r\n layoutManager.layoutInsideLegend(that._legend, newCanvas)\r\n }\r\n },\r\n _allowLegendInsidePosition: function() {\r\n return true\r\n },\r\n _applyExtraSettings: function(series) {\r\n var that = this;\r\n var paneIndex = that._getPaneIndex(series.pane);\r\n var panesClipRects = that._panesClipRects;\r\n var wideClipRect = panesClipRects.wide[paneIndex];\r\n series.setClippingParams(panesClipRects.base[paneIndex].id, wideClipRect && wideClipRect.id, that._getPaneBorderVisibility(paneIndex))\r\n },\r\n _updatePanesCanvases: function(drawOptions) {\r\n if (!drawOptions.recreateCanvas) {\r\n return\r\n }(0, _utils2.updatePanesCanvases)(this.panes, this._canvas, this._isRotated())\r\n },\r\n _normalizePanesHeight: function() {\r\n (0, _utils2.normalizePanesHeight)(this.panes)\r\n },\r\n _renderScaleBreaks: function() {\r\n this._valueAxes.concat(this._argumentAxes).forEach(function(axis) {\r\n axis.drawScaleBreaks()\r\n })\r\n },\r\n _getArgFilter: function() {\r\n return _range_data_calculator.default.getViewPortFilter(this.getArgumentAxis().visualRange() || {})\r\n },\r\n _applyPointMarkersAutoHiding: function() {\r\n var that = this;\r\n var allSeries = that.series;\r\n if (!that._themeManager.getOptions(\"autoHidePointMarkers\")) {\r\n allSeries.forEach(function(s) {\r\n return s.autoHidePointMarkers = false\r\n });\r\n return\r\n }\r\n that.panes.forEach(function(_ref) {\r\n var borderCoords = _ref.borderCoords,\r\n name = _ref.name;\r\n var series = allSeries.filter(function(s) {\r\n return s.pane === name && s.usePointsToDefineAutoHiding()\r\n });\r\n var argAxis = that.getArgumentAxis();\r\n var markersInfo = collectMarkersInfoBySeries(allSeries, series, argAxis);\r\n fastHidingPointMarkersByArea(borderCoords, markersInfo, series);\r\n if (markersInfo.series.length) {\r\n var argVisualRange = argAxis.visualRange();\r\n var argAxisIsDiscrete = argAxis.getOptions().type === DISCRETE;\r\n var sortingCallback = argAxisIsDiscrete ? function(p1, p2) {\r\n return argVisualRange.categories.indexOf(p1.argument) - argVisualRange.categories.indexOf(p2.argument)\r\n } : function(p1, p2) {\r\n return p1.argument - p2.argument\r\n };\r\n var points = [];\r\n markersInfo.series.forEach(function(s) {\r\n return points = points.concat(s.points)\r\n });\r\n points.sort(sortingCallback);\r\n updateMarkersInfo(points, markersInfo.overloadedSeries);\r\n applyAutoHidePointMarkers(allSeries, series, markersInfo.overloadedSeries, argAxis)\r\n }\r\n })\r\n },\r\n _renderAxes: function(drawOptions, panesBorderOptions) {\r\n function calculateTitlesWidth(axes) {\r\n return axes.map(function(axis) {\r\n if (!axis.getTitle) {\r\n return 0\r\n }\r\n var title = axis.getTitle();\r\n return title ? title.bBox.width : 0\r\n })\r\n }\r\n var that = this;\r\n var rotated = that._isRotated();\r\n var synchronizeMultiAxes = that._themeManager.getOptions(\"synchronizeMultiAxes\");\r\n var scrollBar = that._scrollBar ? [that._scrollBar] : [];\r\n var extendedArgAxes = that._isArgumentAxisBeforeScrollBar() ? that._argumentAxes.concat(scrollBar) : scrollBar.concat(that._argumentAxes);\r\n var verticalAxes = rotated ? that._argumentAxes : that._valueAxes;\r\n var verticalElements = rotated ? extendedArgAxes : that._valueAxes;\r\n var horizontalAxes = rotated ? that._valueAxes : that._argumentAxes;\r\n var horizontalElements = rotated ? that._valueAxes : extendedArgAxes;\r\n var allAxes = verticalAxes.concat(horizontalAxes);\r\n var allElements = allAxes.concat(scrollBar);\r\n var verticalAxesFirstDrawing = verticalAxes.some(function(v) {\r\n return v.isFirstDrawing()\r\n });\r\n that._normalizePanesHeight();\r\n that._updatePanesCanvases(drawOptions);\r\n var panesCanvases = that.panes.reduce(function(canvases, pane) {\r\n canvases[pane.name] = (0, _extend2.extend)({}, pane.canvas);\r\n return canvases\r\n }, {});\r\n var paneSizes = that.panes.reduce(function(sizes, pane) {\r\n sizes[pane.name] = {\r\n height: pane.height,\r\n unit: pane.unit\r\n };\r\n return sizes\r\n }, {});\r\n var cleanPanesCanvases = (0, _extend2.extend)(true, {}, panesCanvases);\r\n that._initCustomPositioningAxes();\r\n var needCustomAdjustAxes = that._axesBoundaryPositioning();\r\n if (!drawOptions.adjustAxes && !needCustomAdjustAxes) {\r\n drawAxesWithTicks(verticalAxes, !rotated && synchronizeMultiAxes, panesCanvases, panesBorderOptions);\r\n drawAxesWithTicks(horizontalAxes, rotated && synchronizeMultiAxes, panesCanvases, panesBorderOptions);\r\n performActionOnAxes(allAxes, \"prepareAnimation\");\r\n that._renderScaleBreaks();\r\n horizontalAxes.forEach(function(a) {\r\n return a.resolveOverlappingForCustomPositioning(verticalAxes)\r\n });\r\n verticalAxes.forEach(function(a) {\r\n return a.resolveOverlappingForCustomPositioning(horizontalAxes)\r\n });\r\n return false\r\n }\r\n if (needCustomAdjustAxes) {\r\n allAxes.forEach(function(a) {\r\n return a.customPositionIsAvailable() && a.shift({\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n })\r\n })\r\n }\r\n if (that._scrollBar) {\r\n that._scrollBar.setPane(that.panes)\r\n }\r\n var vAxesMargins = {\r\n panes: {}\r\n };\r\n var hAxesMargins = getHorizontalAxesMargins(horizontalElements, function(axis) {\r\n return axis.estimateMargins(panesCanvases[axis.pane])\r\n });\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, vAxesMargins, hAxesMargins);\r\n var drawAxesAndSetCanvases = function(isHorizontal) {\r\n var axes = isHorizontal ? horizontalAxes : verticalAxes;\r\n var condition = (isHorizontal ? rotated : !rotated) && synchronizeMultiAxes;\r\n drawAxesWithTicks(axes, condition, panesCanvases, panesBorderOptions);\r\n if (isHorizontal) {\r\n hAxesMargins = getHorizontalAxesMargins(horizontalElements, getAxisMargins)\r\n } else {\r\n vAxesMargins = getVerticalAxesMargins(verticalElements)\r\n }\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, vAxesMargins, hAxesMargins)\r\n };\r\n drawAxesAndSetCanvases(false);\r\n drawAxesAndSetCanvases(true);\r\n if (!that._changesApplying && that._estimateTickIntervals(verticalAxes, panesCanvases)) {\r\n drawAxesAndSetCanvases(false)\r\n }\r\n var oldTitlesWidth = calculateTitlesWidth(verticalAxes);\r\n var visibleSeries = that._getVisibleSeries();\r\n var pointsToAnimation = that._getPointsToAnimation(visibleSeries);\r\n var axesIsAnimated = axisAnimationEnabled(drawOptions, pointsToAnimation);\r\n performActionOnAxes(allElements, \"updateSize\", panesCanvases, axesIsAnimated);\r\n horizontalElements.forEach(shiftAxis(\"top\", \"bottom\"));\r\n verticalElements.forEach(shiftAxis(\"left\", \"right\"));\r\n that._renderScaleBreaks();\r\n that.panes.forEach(function(pane) {\r\n (0, _extend2.extend)(pane.canvas, panesCanvases[pane.name])\r\n });\r\n that._valueAxes.forEach(function(axis) {\r\n axis.setInitRange()\r\n });\r\n verticalAxes.forEach(function(axis, i) {\r\n var _axis$hasWrap;\r\n if (null !== (_axis$hasWrap = axis.hasWrap) && void 0 !== _axis$hasWrap && _axis$hasWrap.call(axis)) {\r\n var title = axis.getTitle();\r\n var newTitleWidth = title ? title.bBox.width : 0;\r\n var offset = newTitleWidth - oldTitlesWidth[i];\r\n if (\"right\" === axis.getOptions().position) {\r\n vAxesMargins.right += offset\r\n } else {\r\n vAxesMargins.left += offset;\r\n that.panes.forEach(function(_ref2) {\r\n var name = _ref2.name;\r\n return vAxesMargins.panes[name].left += offset\r\n })\r\n }\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, vAxesMargins, hAxesMargins);\r\n performActionOnAxes(allElements, \"updateSize\", panesCanvases, false, false);\r\n oldTitlesWidth = calculateTitlesWidth(verticalAxes)\r\n }\r\n });\r\n if (verticalAxes.some(function(v) {\r\n return v.customPositionIsAvailable() && v.getCustomPosition() !== v._axisPosition\r\n })) {\r\n axesIsAnimated && that._resetAxesAnimation(verticalAxesFirstDrawing, false);\r\n performActionOnAxes(verticalAxes, \"updateSize\", panesCanvases, axesIsAnimated)\r\n }\r\n horizontalAxes.forEach(function(a) {\r\n return a.resolveOverlappingForCustomPositioning(verticalAxes)\r\n });\r\n verticalAxes.forEach(function(a) {\r\n return a.resolveOverlappingForCustomPositioning(horizontalAxes)\r\n });\r\n return cleanPanesCanvases\r\n },\r\n _getExtraTemplatesItems: function() {\r\n var that = this;\r\n var allAxes = (that._argumentAxes || []).concat(that._valueAxes || []);\r\n var elements = that._collectTemplatesFromItems(allAxes);\r\n return {\r\n items: elements.items,\r\n groups: elements.groups,\r\n launchRequest: function() {\r\n allAxes.forEach(function(a) {\r\n a.setRenderedState(true)\r\n })\r\n },\r\n doneRequest: function() {\r\n allAxes.forEach(function(a) {\r\n a.setRenderedState(false)\r\n })\r\n }\r\n }\r\n },\r\n _estimateTickIntervals: function(axes, canvases) {\r\n return axes.some(function(axis) {\r\n return axis.estimateTickInterval(canvases[axis.pane])\r\n })\r\n },\r\n checkForMoreSpaceForPanesCanvas: function() {\r\n var that = this;\r\n var rotated = that._isRotated();\r\n var panesAreCustomSized = that.panes.filter(function(p) {\r\n return p.unit\r\n }).length === that.panes.length;\r\n var needSpace = false;\r\n if (panesAreCustomSized) {\r\n var needHorizontalSpace = 0;\r\n var needVerticalSpace = 0;\r\n if (rotated) {\r\n var argAxisRightMargin = that.getArgumentAxis().getMargins().right;\r\n var rightPanesIndent = Math.min.apply(Math, that.panes.map(function(p) {\r\n return p.canvas.right\r\n }));\r\n needHorizontalSpace = that._canvas.right + argAxisRightMargin - rightPanesIndent\r\n } else {\r\n var argAxisBottomMargin = that.getArgumentAxis().getMargins().bottom;\r\n var bottomPanesIndent = Math.min.apply(Math, that.panes.map(function(p) {\r\n return p.canvas.bottom\r\n }));\r\n needVerticalSpace = that._canvas.bottom + argAxisBottomMargin - bottomPanesIndent\r\n }\r\n needSpace = needHorizontalSpace > 0 || needVerticalSpace > 0 ? {\r\n width: needHorizontalSpace,\r\n height: needVerticalSpace\r\n } : false;\r\n if (0 !== needVerticalSpace) {\r\n var realSize = that.getSize();\r\n var customSize = that.option(\"size\");\r\n var container = that._$element[0];\r\n var containerHasStyledHeight = !!parseInt(container.style.height) || 0 !== that._containerInitialHeight;\r\n if (!rotated && !(customSize && customSize.height) && !containerHasStyledHeight) {\r\n that._forceResize(realSize.width, realSize.height + needVerticalSpace);\r\n needSpace = false\r\n }\r\n }\r\n } else {\r\n needSpace = that.layoutManager.needMoreSpaceForPanesCanvas(that._getLayoutTargets(), rotated, function(pane) {\r\n return {\r\n width: rotated && !!pane.unit,\r\n height: !rotated && !!pane.unit\r\n }\r\n })\r\n }\r\n return needSpace\r\n },\r\n _forceResize: function(width, height) {\r\n this._renderer.resize(width, height);\r\n this._updateSize();\r\n this._setContentSize();\r\n this._preserveOriginalCanvas();\r\n this._updateCanvasClipRect(this._canvas)\r\n },\r\n _shrinkAxes: function(sizeShortage, panesCanvases) {\r\n if (!sizeShortage || !panesCanvases) {\r\n return\r\n }\r\n this._renderer.stopAllAnimations(true);\r\n var that = this;\r\n var rotated = that._isRotated();\r\n var scrollBar = that._scrollBar ? [that._scrollBar] : [];\r\n var extendedArgAxes = that._isArgumentAxisBeforeScrollBar() ? that._argumentAxes.concat(scrollBar) : scrollBar.concat(that._argumentAxes);\r\n var verticalAxes = rotated ? extendedArgAxes : that._valueAxes;\r\n var horizontalAxes = rotated ? that._valueAxes : extendedArgAxes;\r\n var allAxes = verticalAxes.concat(horizontalAxes);\r\n if (sizeShortage.width || sizeShortage.height) {\r\n checkUsedSpace(sizeShortage, \"height\", horizontalAxes, getHorizontalAxesMargins);\r\n checkUsedSpace(sizeShortage, \"width\", verticalAxes, getVerticalAxesMargins);\r\n performActionOnAxes(allAxes, \"updateSize\", panesCanvases);\r\n var paneSizes = that.panes.reduce(function(sizes, pane) {\r\n sizes[pane.name] = {\r\n height: pane.height,\r\n unit: pane.unit\r\n };\r\n return sizes\r\n }, {});\r\n panesCanvases = shrinkCanvases(rotated, panesCanvases, paneSizes, getVerticalAxesMargins(verticalAxes), getHorizontalAxesMargins(horizontalAxes, getAxisMargins));\r\n performActionOnAxes(allAxes, \"updateSize\", panesCanvases);\r\n horizontalAxes.forEach(shiftAxis(\"top\", \"bottom\"));\r\n verticalAxes.forEach(shiftAxis(\"left\", \"right\"));\r\n that.panes.forEach(function(pane) {\r\n return (0, _extend2.extend)(pane.canvas, panesCanvases[pane.name])\r\n })\r\n }\r\n },\r\n _isArgumentAxisBeforeScrollBar: function() {\r\n var that = this;\r\n var argumentAxis = that.getArgumentAxis();\r\n if (that._scrollBar) {\r\n var _argumentAxis$getOpti;\r\n var argAxisPosition = argumentAxis.getResolvedBoundaryPosition();\r\n var argAxisLabelPosition = null === (_argumentAxis$getOpti = argumentAxis.getOptions().label) || void 0 === _argumentAxis$getOpti ? void 0 : _argumentAxis$getOpti.position;\r\n var scrollBarPosition = that._scrollBar.getOptions().position;\r\n return argumentAxis.hasNonBoundaryPosition() || scrollBarPosition === argAxisPosition && argAxisLabelPosition !== scrollBarPosition\r\n }\r\n return false\r\n },\r\n _getPanesParameters: function() {\r\n var that = this;\r\n var panes = that.panes;\r\n var i;\r\n var params = [];\r\n for (i = 0; i < panes.length; i++) {\r\n if (that._getPaneBorderVisibility(i)) {\r\n params.push({\r\n coords: panes[i].borderCoords,\r\n clipRect: that._panesClipRects.fixed[i]\r\n })\r\n }\r\n }\r\n return params\r\n },\r\n _createCrosshairCursor: function() {\r\n var that = this;\r\n var options = that._themeManager.getOptions(\"crosshair\") || {};\r\n var argumentAxis = that.getArgumentAxis();\r\n var axes = !that._isRotated() ? [\r\n [argumentAxis], that._valueAxes\r\n ] : [that._valueAxes, [argumentAxis]];\r\n var parameters = {\r\n canvas: that._getCommonCanvas(),\r\n panes: that._getPanesParameters(),\r\n axes: axes\r\n };\r\n if (!options || !options.enabled) {\r\n return\r\n }\r\n if (!that._crosshair) {\r\n that._crosshair = new _crosshair.Crosshair(that._renderer, options, parameters, that._crosshairCursorGroup)\r\n } else {\r\n that._crosshair.update(options, parameters)\r\n }\r\n that._crosshair.render()\r\n },\r\n _getCommonCanvas: function() {\r\n var i;\r\n var canvas;\r\n var commonCanvas;\r\n var panes = this.panes;\r\n for (i = 0; i < panes.length; i++) {\r\n canvas = panes[i].canvas;\r\n if (!commonCanvas) {\r\n commonCanvas = (0, _extend2.extend)({}, canvas)\r\n } else {\r\n commonCanvas.right = canvas.right;\r\n commonCanvas.bottom = canvas.bottom\r\n }\r\n }\r\n return commonCanvas\r\n },\r\n _createPanesBackground: function() {\r\n var that = this;\r\n var defaultBackgroundColor = that._themeManager.getOptions(\"commonPaneSettings\").backgroundColor;\r\n var backgroundColor;\r\n var renderer = that._renderer;\r\n var rect;\r\n var i;\r\n var rects = [];\r\n that._panesBackgroundGroup.clear();\r\n for (i = 0; i < that.panes.length; i++) {\r\n backgroundColor = that.panes[i].backgroundColor || defaultBackgroundColor;\r\n if (!backgroundColor || \"none\" === backgroundColor) {\r\n rects.push(null);\r\n continue\r\n }\r\n rect = renderer.rect(0, 0, 0, 0).attr({\r\n fill: backgroundColor,\r\n \"stroke-width\": 0\r\n }).append(that._panesBackgroundGroup);\r\n rects.push(rect)\r\n }\r\n that.panesBackground = rects\r\n },\r\n _fillPanesBackground: function() {\r\n var that = this;\r\n var bc;\r\n (0, _iterator.each)(that.panes, function(i, pane) {\r\n bc = pane.borderCoords;\r\n if (null !== that.panesBackground[i]) {\r\n that.panesBackground[i].attr({\r\n x: bc.left,\r\n y: bc.top,\r\n width: bc.width,\r\n height: bc.height\r\n })\r\n }\r\n })\r\n },\r\n _calcPaneBorderCoords: function(pane) {\r\n var canvas = pane.canvas;\r\n var bc = pane.borderCoords = pane.borderCoords || {};\r\n bc.left = canvas.left;\r\n bc.top = canvas.top;\r\n bc.right = canvas.width - canvas.right;\r\n bc.bottom = canvas.height - canvas.bottom;\r\n bc.width = Math.max(bc.right - bc.left, 0);\r\n bc.height = Math.max(bc.bottom - bc.top, 0)\r\n },\r\n _drawPanesBorders: function(panesBorderOptions) {\r\n var that = this;\r\n var rotated = that._isRotated();\r\n that._panesBorderGroup.linkRemove().clear();\r\n (0, _iterator.each)(that.panes, function(i, pane) {\r\n var borderOptions = panesBorderOptions[pane.name];\r\n var attr = {\r\n fill: \"none\",\r\n stroke: borderOptions.color,\r\n \"stroke-opacity\": borderOptions.opacity,\r\n \"stroke-width\": borderOptions.width,\r\n dashStyle: borderOptions.dashStyle,\r\n \"stroke-linecap\": \"square\"\r\n };\r\n that._calcPaneBorderCoords(pane, rotated);\r\n if (!borderOptions.visible) {\r\n return\r\n }\r\n var bc = pane.borderCoords;\r\n var segmentRectParams = (0, _utils.prepareSegmentRectPoints)(bc.left, bc.top, bc.width, bc.height, borderOptions);\r\n that._renderer.path(segmentRectParams.points, segmentRectParams.pathType).attr(attr).append(that._panesBorderGroup)\r\n });\r\n that._panesBorderGroup.linkAppend()\r\n },\r\n _createClipRect: function(clipArray, index, left, top, width, height) {\r\n var that = this;\r\n var clipRect = clipArray[index];\r\n if (!clipRect) {\r\n clipRect = that._renderer.clipRect(left, top, width, height);\r\n clipArray[index] = clipRect\r\n } else {\r\n clipRect.attr({\r\n x: left,\r\n y: top,\r\n width: width,\r\n height: height\r\n })\r\n }\r\n },\r\n _createClipRectsForPanes: function() {\r\n var that = this;\r\n var canvas = that._canvas;\r\n (0, _iterator.each)(that.panes, function(i, pane) {\r\n var needWideClipRect = false;\r\n var bc = pane.borderCoords;\r\n var left = bc.left;\r\n var top = bc.top;\r\n var width = bc.width;\r\n var height = bc.height;\r\n var panesClipRects = that._panesClipRects;\r\n that._createClipRect(panesClipRects.fixed, i, left, top, width, height);\r\n that._createClipRect(panesClipRects.base, i, left, top, width, height);\r\n (0, _iterator.each)(that.series, function(_, series) {\r\n if (series.pane === pane.name && (series.isFinancialSeries() || series.areErrorBarsVisible())) {\r\n needWideClipRect = true\r\n }\r\n });\r\n if (needWideClipRect) {\r\n if (that._isRotated()) {\r\n top = 0;\r\n height = canvas.height\r\n } else {\r\n left = 0;\r\n width = canvas.width\r\n }\r\n that._createClipRect(panesClipRects.wide, i, left, top, width, height)\r\n } else {\r\n panesClipRects.wide[i] = null\r\n }\r\n })\r\n },\r\n _applyClipRectsForAxes: function() {\r\n var that = this;\r\n var axes = that._getAllAxes();\r\n var chartCanvasClipRectID = that._getCanvasClipRectID();\r\n for (var i = 0; i < axes.length; i++) {\r\n var elementsClipRectID = that._getElementsClipRectID(axes[i].pane);\r\n axes[i].applyClipRects(elementsClipRectID, chartCanvasClipRectID)\r\n }\r\n },\r\n _getPaneBorderVisibility: function(paneIndex) {\r\n var commonPaneBorderVisible = this._themeManager.getOptions(\"commonPaneSettings\").border.visible;\r\n var pane = this.panes[paneIndex] || {};\r\n var paneBorder = pane.border || {};\r\n return \"visible\" in paneBorder ? paneBorder.visible : commonPaneBorderVisible\r\n },\r\n _getCanvasForPane: function(paneName) {\r\n var panes = this.panes;\r\n var panesNumber = panes.length;\r\n var i;\r\n for (i = 0; i < panesNumber; i++) {\r\n if (panes[i].name === paneName) {\r\n return panes[i].canvas\r\n }\r\n }\r\n },\r\n _getTrackerSettings: function() {\r\n var that = this;\r\n var themeManager = that._themeManager;\r\n return (0, _extend2.extend)(this.callBase(), {\r\n chart: that,\r\n rotated: that._isRotated(),\r\n crosshair: that._getCrosshairOptions().enabled ? that._crosshair : null,\r\n stickyHovering: themeManager.getOptions(\"stickyHovering\")\r\n })\r\n },\r\n _resolveLabelOverlappingStack: function() {\r\n var that = this;\r\n var isRotated = that._isRotated();\r\n var shiftDirection = isRotated ? function(box, length) {\r\n return {\r\n x: box.x - length,\r\n y: box.y\r\n }\r\n } : function(box, length) {\r\n return {\r\n x: box.x,\r\n y: box.y - length\r\n }\r\n };\r\n (0, _iterator.each)(that._getStackPoints(), function(_, stacks) {\r\n (0, _iterator.each)(stacks, function(_, points) {\r\n _base_chart.overlapping.resolveLabelOverlappingInOneDirection(points, that._getCommonCanvas(), isRotated, shiftDirection, function(a, b) {\r\n var coordPosition = isRotated ? 1 : 0;\r\n var figureCenter1 = a.labels[0].getFigureCenter()[coordPosition];\r\n var figureCenter12 = b.labels[0].getFigureCenter()[coordPosition];\r\n if (figureCenter1 - figureCenter12 === 0) {\r\n return (a.value() - b.value()) * (a.labels[0].getPoint().series.getValueAxis().getTranslator().isInverted() ? -1 : 1)\r\n }\r\n return 0\r\n })\r\n })\r\n })\r\n },\r\n _getStackPoints: function() {\r\n var stackPoints = {};\r\n var visibleSeries = this._getVisibleSeries();\r\n (0, _iterator.each)(visibleSeries, function(_, singleSeries) {\r\n var points = singleSeries.getPoints();\r\n var stackName = singleSeries.getStackName() || null;\r\n (0, _iterator.each)(points, function(_, point) {\r\n var argument = point.argument;\r\n if (!stackPoints[argument]) {\r\n stackPoints[argument] = {}\r\n }\r\n if (!stackPoints[argument][stackName]) {\r\n stackPoints[argument][stackName] = []\r\n }\r\n stackPoints[argument][stackName].push(point)\r\n })\r\n });\r\n return stackPoints\r\n },\r\n _getCrosshairOptions: function() {\r\n return this._getOption(\"crosshair\")\r\n },\r\n zoomArgument: function(min, max) {\r\n var that = this;\r\n if (!that._initialized || !(0, _type.isDefined)(min) && !(0, _type.isDefined)(max)) {\r\n return\r\n }\r\n that.getArgumentAxis().visualRange([min, max])\r\n },\r\n resetVisualRange: function() {\r\n var that = this;\r\n var axes = that._argumentAxes;\r\n var nonVirtualArgumentAxis = that.getArgumentAxis();\r\n axes.forEach(function(axis) {\r\n axis.resetVisualRange(nonVirtualArgumentAxis !== axis);\r\n that._applyCustomVisualRangeOption(axis)\r\n });\r\n that.callBase()\r\n },\r\n getVisibleArgumentBounds: function() {\r\n var translator = this._argumentAxes[0].getTranslator();\r\n var range = translator.getBusinessRange();\r\n var isDiscrete = range.axisType === DISCRETE;\r\n var categories = range.categories;\r\n return {\r\n minVisible: isDiscrete ? range.minVisible || categories[0] : range.minVisible,\r\n maxVisible: isDiscrete ? range.maxVisible || categories[categories.length - 1] : range.maxVisible\r\n }\r\n },\r\n _change_FULL_RENDER: function() {\r\n this.callBase();\r\n if (this._changes.has(VISUAL_RANGE)) {\r\n this._raiseZoomEndHandlers()\r\n }\r\n },\r\n _getAxesForScaling: function() {\r\n return [this.getArgumentAxis()].concat(this._valueAxes)\r\n },\r\n _applyVisualRangeByVirtualAxes: function(axis, range) {\r\n var that = this;\r\n if (axis.isArgumentAxis) {\r\n if (axis !== that.getArgumentAxis()) {\r\n return true\r\n }\r\n that._argumentAxes.filter(function(a) {\r\n return a !== axis\r\n }).forEach(function(a) {\r\n return a.visualRange(range, {\r\n start: true,\r\n end: true\r\n })\r\n })\r\n }\r\n return false\r\n },\r\n _raiseZoomEndHandlers: function() {\r\n this._argumentAxes.forEach(function(axis) {\r\n return axis.handleZoomEnd()\r\n });\r\n this.callBase()\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n (0, _extend2.extend)(this._optionsByReference, {\r\n \"argumentAxis.visualRange\": true\r\n })\r\n },\r\n option: function option() {\r\n var option = this.callBase.apply(this, arguments);\r\n var valueAxis = this._options.silent(\"valueAxis\");\r\n if (\"array\" === (0, _type.type)(valueAxis)) {\r\n for (var i = 0; i < valueAxis.length; i++) {\r\n var optionPath = \"valueAxis[\".concat(i, \"].visualRange\");\r\n this._optionsByReference[optionPath] = true\r\n }\r\n }\r\n return option\r\n },\r\n _notifyVisualRange: function() {\r\n var that = this;\r\n var argAxis = that._argumentAxes[0];\r\n var argumentVisualRange = (0, _utils2.convertVisualRangeObject)(argAxis.visualRange(), !_isArray(that.option(\"argumentAxis.visualRange\")));\r\n if (!argAxis.skipEventRising || !(0, _utils2.rangesAreEqual)(argumentVisualRange, that.option(\"argumentAxis.visualRange\"))) {\r\n that.option(\"argumentAxis.visualRange\", argumentVisualRange)\r\n } else {\r\n argAxis.skipEventRising = null\r\n }\r\n that.callBase()\r\n }\r\n});\r\ndxChart.addPlugin(_shutter_zoom.default);\r\ndxChart.addPlugin(_zoom_and_pan.default);\r\ndxChart.addPlugin(_annotations.plugins.core);\r\ndxChart.addPlugin(_annotations.plugins.chart);\r\n(0, _component_registrator.default)(\"dxChart\", dxChart);\r\nvar _default = dxChart;\r\nexports.default = _default;\r\nmodule.exports = exports.default;\r\nmodule.exports.default = module.exports;\r\n"],"sourceRoot":""}