blob: c643ad910d961ce1ecca4ff80859569366baf8f9 [file] [log] [blame]
{"version":3,"file":"echarts.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/env.js","../node_modules/zrender/lib/core/util.js","../node_modules/zrender/lib/core/vector.js","../node_modules/zrender/lib/mixin/Draggable.js","../node_modules/zrender/lib/core/Eventful.js","../node_modules/zrender/lib/core/fourPointsTransform.js","../node_modules/zrender/lib/core/dom.js","../node_modules/zrender/lib/core/event.js","../node_modules/zrender/lib/core/GestureMgr.js","../node_modules/zrender/lib/Handler.js","../node_modules/zrender/lib/core/matrix.js","../node_modules/zrender/lib/core/Transformable.js","../node_modules/zrender/lib/animation/easing.js","../node_modules/zrender/lib/animation/Clip.js","../node_modules/zrender/lib/core/LRU.js","../node_modules/zrender/lib/tool/color.js","../node_modules/zrender/lib/animation/Animator.js","../node_modules/zrender/lib/core/Point.js","../node_modules/zrender/lib/core/BoundingRect.js","../node_modules/zrender/lib/contain/text.js","../node_modules/zrender/lib/config.js","../node_modules/zrender/lib/Element.js","../node_modules/zrender/lib/core/timsort.js","../node_modules/zrender/lib/Storage.js","../node_modules/zrender/lib/animation/requestAnimationFrame.js","../node_modules/zrender/lib/animation/Animation.js","../node_modules/zrender/lib/dom/HandlerProxy.js","../node_modules/zrender/lib/graphic/Group.js","../node_modules/zrender/lib/zrender.js","../lib/util/number.js","../lib/util/log.js","../lib/util/model.js","../lib/util/clazz.js","../lib/model/mixin/makeStyleMapper.js","../lib/model/mixin/areaStyle.js","../node_modules/zrender/lib/graphic/helper/image.js","../node_modules/zrender/lib/graphic/helper/parseText.js","../node_modules/zrender/lib/graphic/Displayable.js","../node_modules/zrender/lib/core/curve.js","../node_modules/zrender/lib/core/bbox.js","../node_modules/zrender/lib/core/PathProxy.js","../node_modules/zrender/lib/contain/line.js","../node_modules/zrender/lib/contain/cubic.js","../node_modules/zrender/lib/contain/quadratic.js","../node_modules/zrender/lib/contain/util.js","../node_modules/zrender/lib/contain/arc.js","../node_modules/zrender/lib/contain/windingLine.js","../node_modules/zrender/lib/contain/path.js","../node_modules/zrender/lib/graphic/Path.js","../node_modules/zrender/lib/graphic/TSpan.js","../node_modules/zrender/lib/graphic/Image.js","../node_modules/zrender/lib/graphic/helper/roundRect.js","../node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","../node_modules/zrender/lib/graphic/shape/Rect.js","../node_modules/zrender/lib/graphic/Text.js","../lib/util/innerStore.js","../lib/util/states.js","../node_modules/zrender/lib/tool/transformPath.js","../node_modules/zrender/lib/tool/path.js","../node_modules/zrender/lib/graphic/shape/Circle.js","../node_modules/zrender/lib/graphic/shape/Ellipse.js","../node_modules/zrender/lib/graphic/helper/roundSector.js","../node_modules/zrender/lib/graphic/shape/Sector.js","../node_modules/zrender/lib/graphic/shape/Ring.js","../node_modules/zrender/lib/graphic/helper/smoothSpline.js","../node_modules/zrender/lib/graphic/helper/smoothBezier.js","../node_modules/zrender/lib/graphic/helper/poly.js","../node_modules/zrender/lib/graphic/shape/Polygon.js","../node_modules/zrender/lib/graphic/shape/Polyline.js","../node_modules/zrender/lib/graphic/shape/Line.js","../node_modules/zrender/lib/graphic/shape/BezierCurve.js","../node_modules/zrender/lib/graphic/shape/Arc.js","../node_modules/zrender/lib/graphic/CompoundPath.js","../node_modules/zrender/lib/graphic/Gradient.js","../node_modules/zrender/lib/graphic/LinearGradient.js","../node_modules/zrender/lib/graphic/RadialGradient.js","../node_modules/zrender/lib/core/OrientedBoundingRect.js","../node_modules/zrender/lib/graphic/IncrementalDisplayable.js","../lib/util/graphic.js","../lib/label/labelStyle.js","../lib/model/mixin/textStyle.js","../lib/model/mixin/lineStyle.js","../lib/model/mixin/itemStyle.js","../lib/model/Model.js","../lib/util/component.js","../lib/i18n/langEN.js","../lib/i18n/langZH.js","../lib/core/locale.js","../lib/util/time.js","../lib/legacy/getTextRect.js","../lib/util/format.js","../lib/util/layout.js","../lib/model/Component.js","../lib/model/globalDefault.js","../lib/util/types.js","../lib/data/helper/sourceHelper.js","../lib/model/internalComponentCreator.js","../lib/model/mixin/palette.js","../lib/model/Global.js","../lib/core/ExtensionAPI.js","../lib/core/CoordinateSystem.js","../lib/model/OptionManager.js","../lib/preprocessor/helper/compatStyle.js","../lib/preprocessor/backwardCompat.js","../lib/processor/dataStack.js","../lib/data/Source.js","../lib/data/helper/dataProvider.js","../lib/model/mixin/dataFormat.js","../lib/core/task.js","../lib/data/helper/dataValueHelper.js","../lib/data/helper/transform.js","../lib/data/helper/sourceManager.js","../lib/component/tooltip/tooltipMarkup.js","../lib/component/tooltip/seriesFormatTooltip.js","../lib/model/Series.js","../lib/view/Component.js","../lib/chart/helper/createRenderPlanner.js","../lib/view/Chart.js","../lib/util/throttle.js","../lib/visual/style.js","../lib/loading/default.js","../lib/core/Scheduler.js","../lib/theme/light.js","../lib/theme/dark.js","../node_modules/zrender/lib/tool/parseXML.js","../lib/coord/geo/mapDataStorage.js","../lib/util/ECEventProcessor.js","../lib/visual/symbol.js","../lib/visual/helper.js","../lib/label/labelGuideHelper.js","../lib/label/labelLayoutHelper.js","../lib/label/LabelManager.js","../lib/legacy/dataSelectAction.js","../lib/util/event.js","../node_modules/zrender/lib/core/WeakMap.js","../lib/util/symbol.js","../node_modules/zrender/lib/canvas/helper.js","../node_modules/zrender/lib/graphic/helper/dashStyle.js","../node_modules/zrender/lib/canvas/graphic.js","../lib/util/decal.js","../lib/visual/decal.js","../lib/core/echarts.js","../lib/extension.js","../lib/data/DataDiffer.js","../lib/data/helper/dimensionHelper.js","../lib/data/DataDimensionInfo.js","../lib/data/List.js","../lib/data/helper/completeDimensions.js","../lib/data/helper/createDimensions.js","../lib/model/referHelper.js","../lib/data/helper/dataStackHelper.js","../lib/chart/helper/createListFromArray.js","../lib/scale/Scale.js","../lib/data/OrdinalMeta.js","../lib/scale/helper.js","../lib/scale/Ordinal.js","../lib/scale/Interval.js","../lib/layout/barGrid.js","../lib/scale/Time.js","../lib/scale/Log.js","../lib/coord/scaleRawExtentInfo.js","../lib/coord/axisHelper.js","../lib/coord/axisModelCommonMixin.js","../lib/export/api/helper.js","../node_modules/zrender/lib/contain/polygon.js","../lib/coord/geo/Region.js","../lib/coord/geo/parseGeoJson.js","../lib/coord/axisTickLabelBuilder.js","../lib/coord/Axis.js","../lib/export/api.js","../node_modules/zrender/lib/svg/core.js","../node_modules/zrender/lib/core/arrayDiff.js","../node_modules/zrender/lib/svg/graphic.js","../node_modules/zrender/lib/svg/helper/Definable.js","../node_modules/zrender/lib/svg/helper/GradientManager.js","../node_modules/zrender/lib/svg/helper/PatternManager.js","../node_modules/zrender/lib/svg/helper/ClippathManager.js","../node_modules/zrender/lib/svg/helper/ShadowManager.js","../node_modules/zrender/lib/svg/Painter.js","../lib/renderer/installSVGRenderer.js","../node_modules/zrender/lib/canvas/Layer.js","../node_modules/zrender/lib/canvas/Painter.js","../lib/renderer/installCanvasRenderer.js","../lib/chart/line/LineSeries.js","../lib/chart/helper/labelHelper.js","../lib/chart/helper/Symbol.js","../lib/chart/helper/SymbolDraw.js","../lib/chart/line/helper.js","../lib/util/vendor.js","../lib/chart/line/lineAnimationDiff.js","../lib/chart/line/poly.js","../lib/chart/helper/createClipPathFromCoordSys.js","../lib/coord/CoordinateSystem.js","../lib/chart/line/LineView.js","../lib/layout/points.js","../lib/processor/dataSample.js","../lib/chart/line/install.js","../lib/chart/bar/BaseBarSeries.js","../lib/chart/bar/BarSeries.js","../lib/util/shape/sausage.js","../lib/chart/bar/BarView.js","../lib/chart/bar/install.js","../lib/chart/pie/pieLayout.js","../lib/processor/dataFilter.js","../lib/chart/pie/labelLayout.js","../lib/chart/helper/pieHelper.js","../lib/chart/pie/PieView.js","../lib/chart/helper/createListSimply.js","../lib/visual/LegendVisualProvider.js","../lib/chart/pie/PieSeries.js","../lib/chart/pie/install.js","../lib/chart/scatter/ScatterSeries.js","../lib/chart/helper/LargeSymbolDraw.js","../lib/chart/scatter/ScatterView.js","../lib/coord/cartesian/GridModel.js","../lib/coord/cartesian/AxisModel.js","../lib/coord/axisDefault.js","../lib/coord/axisCommonTypes.js","../lib/coord/axisModelCreator.js","../lib/coord/cartesian/Cartesian.js","../lib/coord/cartesian/Cartesian2D.js","../lib/coord/cartesian/Axis2D.js","../lib/coord/cartesian/cartesianAxisHelper.js","../lib/coord/cartesian/Grid.js","../lib/component/axis/AxisBuilder.js","../lib/component/axisPointer/modelHelper.js","../lib/component/axis/AxisView.js","../lib/component/axis/axisSplitHelper.js","../lib/component/axis/CartesianAxisView.js","../lib/component/grid/installSimple.js","../lib/chart/scatter/install.js","../lib/chart/radar/radarLayout.js","../lib/chart/radar/backwardCompat.js","../lib/chart/radar/RadarView.js","../lib/chart/radar/RadarSeries.js","../lib/coord/radar/RadarModel.js","../lib/component/radar/RadarView.js","../lib/coord/radar/IndicatorAxis.js","../lib/coord/radar/Radar.js","../lib/component/radar/install.js","../lib/chart/radar/install.js","../lib/component/helper/interactionMutex.js","../lib/component/helper/RoamController.js","../lib/component/helper/roamHelper.js","../lib/component/helper/cursorHelper.js","../lib/coord/geo/fix/nanhai.js","../lib/coord/geo/fix/textCoord.js","../lib/coord/geo/fix/geoCoord.js","../lib/coord/geo/fix/diaoyuIsland.js","../lib/coord/geo/geoJSONLoader.js","../node_modules/zrender/lib/tool/parseSVG.js","../lib/coord/geo/geoSVGLoader.js","../lib/coord/geo/geoSourceManager.js","../lib/component/helper/MapDraw.js","../lib/chart/map/MapView.js","../lib/chart/map/MapSeries.js","../lib/chart/map/mapDataStatistic.js","../lib/chart/map/mapSymbolLayout.js","../lib/chart/map/install.js","../lib/chart/tree/layoutHelper.js","../lib/coord/View.js","../lib/chart/tree/TreeView.js","../lib/data/helper/linkList.js","../lib/data/Tree.js","../lib/chart/tree/TreeSeries.js","../lib/chart/tree/traversalHelper.js","../lib/chart/tree/treeLayout.js","../lib/chart/tree/treeVisual.js","../lib/action/roamHelper.js","../lib/chart/tree/treeAction.js","../lib/chart/tree/install.js","../lib/chart/helper/treeHelper.js","../lib/chart/treemap/treemapAction.js","../lib/chart/helper/enableAriaDecalForTree.js","../lib/chart/treemap/TreemapSeries.js","../lib/chart/treemap/Breadcrumb.js","../lib/util/animation.js","../lib/chart/treemap/TreemapView.js","../lib/visual/VisualMapping.js","../lib/chart/treemap/treemapVisual.js","../lib/chart/treemap/treemapLayout.js","../lib/chart/treemap/install.js","../lib/chart/graph/categoryFilter.js","../lib/chart/graph/categoryVisual.js","../lib/chart/graph/edgeVisual.js","../lib/chart/helper/multipleGraphEdgeHelper.js","../lib/chart/graph/simpleLayoutHelper.js","../lib/chart/graph/simpleLayout.js","../lib/chart/graph/graphHelper.js","../lib/chart/graph/circularLayoutHelper.js","../lib/chart/graph/circularLayout.js","../lib/chart/graph/forceHelper.js","../lib/chart/graph/forceLayout.js","../lib/chart/graph/createView.js","../lib/chart/helper/LinePath.js","../lib/chart/helper/Line.js","../lib/chart/helper/LineDraw.js","../lib/chart/graph/adjustEdge.js","../lib/chart/graph/GraphView.js","../lib/data/Graph.js","../lib/chart/helper/createGraphFromNodeEdge.js","../lib/chart/graph/GraphSeries.js","../lib/chart/graph/install.js","../lib/chart/gauge/PointerPath.js","../lib/chart/gauge/GaugeView.js","../lib/chart/gauge/GaugeSeries.js","../lib/chart/gauge/install.js","../lib/chart/funnel/FunnelView.js","../lib/chart/funnel/FunnelSeries.js","../lib/chart/funnel/funnelLayout.js","../lib/chart/funnel/install.js","../lib/chart/parallel/ParallelView.js","../lib/chart/parallel/ParallelSeries.js","../lib/chart/parallel/parallelVisual.js","../lib/coord/parallel/parallelPreprocessor.js","../lib/component/parallel/ParallelView.js","../lib/coord/parallel/ParallelModel.js","../lib/coord/parallel/ParallelAxis.js","../lib/component/helper/sliderMove.js","../lib/coord/parallel/Parallel.js","../lib/coord/parallel/parallelCreator.js","../lib/coord/parallel/AxisModel.js","../lib/component/helper/BrushController.js","../lib/component/helper/brushHelper.js","../lib/component/axis/ParallelAxisView.js","../lib/component/axis/parallelAxisAction.js","../lib/component/parallel/install.js","../lib/chart/parallel/install.js","../lib/chart/sankey/SankeyView.js","../lib/chart/sankey/SankeySeries.js","../lib/chart/sankey/sankeyLayout.js","../lib/chart/sankey/sankeyVisual.js","../lib/chart/sankey/install.js","../lib/chart/helper/whiskerBoxCommon.js","../lib/chart/boxplot/BoxplotSeries.js","../lib/chart/boxplot/BoxplotView.js","../lib/chart/boxplot/boxplotVisual.js","../lib/chart/boxplot/boxplotLayout.js","../lib/chart/boxplot/prepareBoxplotData.js","../lib/chart/boxplot/boxplotTransform.js","../lib/chart/boxplot/install.js","../lib/chart/candlestick/CandlestickView.js","../lib/chart/candlestick/CandlestickSeries.js","../lib/chart/candlestick/preprocessor.js","../lib/chart/candlestick/candlestickVisual.js","../lib/chart/candlestick/candlestickLayout.js","../lib/chart/candlestick/install.js","../lib/chart/helper/EffectSymbol.js","../lib/chart/effectScatter/EffectScatterView.js","../lib/chart/effectScatter/EffectScatterSeries.js","../lib/chart/effectScatter/install.js","../lib/chart/helper/EffectLine.js","../lib/chart/helper/Polyline.js","../lib/chart/helper/EffectPolyline.js","../lib/chart/helper/LargeLineDraw.js","../lib/chart/lines/linesLayout.js","../lib/chart/lines/LinesView.js","../lib/chart/lines/LinesSeries.js","../lib/chart/lines/linesVisual.js","../lib/chart/lines/install.js","../lib/chart/heatmap/HeatmapLayer.js","../lib/chart/heatmap/HeatmapView.js","../lib/chart/heatmap/HeatmapSeries.js","../lib/chart/heatmap/install.js","../lib/chart/bar/PictorialBarView.js","../lib/chart/bar/PictorialBarSeries.js","../lib/chart/bar/installPictorialBar.js","../lib/chart/themeRiver/ThemeRiverView.js","../lib/chart/themeRiver/ThemeRiverSeries.js","../lib/chart/themeRiver/themeRiverLayout.js","../lib/chart/themeRiver/install.js","../lib/chart/sunburst/SunburstPiece.js","../lib/chart/sunburst/sunburstAction.js","../lib/chart/sunburst/SunburstView.js","../lib/chart/sunburst/SunburstSeries.js","../lib/chart/sunburst/sunburstLayout.js","../lib/chart/sunburst/sunburstVisual.js","../lib/chart/sunburst/install.js","../lib/coord/cartesian/prepareCustom.js","../lib/coord/geo/prepareCustom.js","../lib/coord/single/prepareCustom.js","../lib/coord/polar/prepareCustom.js","../lib/coord/calendar/prepareCustom.js","../lib/util/styleCompat.js","../node_modules/zrender/lib/tool/morphPath.js","../lib/chart/custom/install.js","../lib/component/axisPointer/BaseAxisPointer.js","../lib/component/axisPointer/viewHelper.js","../lib/component/axisPointer/CartesianAxisPointer.js","../lib/component/axisPointer/AxisPointerModel.js","../lib/component/axisPointer/globalListener.js","../lib/component/axisPointer/AxisPointerView.js","../lib/component/axisPointer/findPointFromSeries.js","../lib/component/axisPointer/axisTrigger.js","../lib/component/axisPointer/install.js","../lib/component/grid/install.js","../lib/component/axisPointer/PolarAxisPointer.js","../lib/coord/polar/PolarModel.js","../lib/coord/polar/AxisModel.js","../lib/coord/polar/RadiusAxis.js","../lib/coord/polar/AngleAxis.js","../lib/coord/polar/Polar.js","../lib/coord/polar/polarCreator.js","../lib/component/axis/AngleAxisView.js","../lib/component/axis/RadiusAxisView.js","../lib/layout/barPolar.js","../lib/component/polar/install.js","../lib/coord/geo/Geo.js","../lib/coord/geo/geoCreator.js","../lib/coord/geo/GeoModel.js","../lib/component/geo/GeoView.js","../lib/component/geo/install.js","../lib/coord/single/singleAxisHelper.js","../lib/component/axis/SingleAxisView.js","../lib/coord/single/AxisModel.js","../lib/coord/single/SingleAxis.js","../lib/coord/single/Single.js","../lib/coord/single/singleCreator.js","../lib/component/axisPointer/SingleAxisPointer.js","../lib/component/singleAxis/install.js","../lib/coord/calendar/CalendarModel.js","../lib/component/calendar/CalendarView.js","../lib/coord/calendar/Calendar.js","../lib/component/calendar/install.js","../lib/component/graphic/install.js","../lib/component/dataZoom/helper.js","../lib/component/dataZoom/DataZoomModel.js","../lib/component/dataZoom/SelectZoomModel.js","../lib/component/dataZoom/DataZoomView.js","../lib/component/dataZoom/SelectZoomView.js","../lib/component/dataZoom/AxisProxy.js","../lib/component/dataZoom/dataZoomProcessor.js","../lib/component/dataZoom/dataZoomAction.js","../lib/component/dataZoom/installCommon.js","../lib/component/dataZoom/installDataZoomSelect.js","../lib/component/toolbox/featureManager.js","../lib/component/toolbox/ToolboxModel.js","../lib/component/helper/listComponent.js","../lib/component/toolbox/ToolboxView.js","../lib/component/toolbox/feature/SaveAsImage.js","../lib/component/toolbox/feature/MagicType.js","../lib/component/toolbox/feature/DataView.js","../lib/component/dataZoom/history.js","../lib/component/toolbox/feature/Restore.js","../lib/component/helper/BrushTargetManager.js","../lib/component/toolbox/feature/DataZoom.js","../lib/component/toolbox/install.js","../lib/component/tooltip/TooltipModel.js","../lib/component/tooltip/helper.js","../lib/component/tooltip/TooltipHTMLContent.js","../lib/component/tooltip/TooltipRichContent.js","../lib/component/tooltip/TooltipView.js","../lib/component/tooltip/install.js","../lib/component/brush/preprocessor.js","../lib/visual/visualSolution.js","../lib/component/brush/selector.js","../lib/component/brush/visualEncoding.js","../lib/component/brush/BrushView.js","../lib/component/brush/BrushModel.js","../lib/component/toolbox/feature/Brush.js","../lib/component/brush/install.js","../lib/component/title/install.js","../lib/component/timeline/TimelineModel.js","../lib/component/timeline/SliderTimelineModel.js","../lib/component/timeline/TimelineView.js","../lib/component/timeline/TimelineAxis.js","../lib/component/timeline/SliderTimelineView.js","../lib/component/timeline/timelineAction.js","../lib/component/timeline/preprocessor.js","../lib/component/timeline/install.js","../lib/component/marker/MarkerModel.js","../lib/component/marker/MarkPointModel.js","../lib/component/marker/markerHelper.js","../lib/component/marker/MarkerView.js","../lib/component/marker/MarkPointView.js","../lib/component/marker/installMarkPoint.js","../lib/component/marker/MarkLineModel.js","../lib/component/marker/MarkLineView.js","../lib/component/marker/installMarkLine.js","../lib/component/marker/MarkAreaModel.js","../lib/component/marker/MarkAreaView.js","../lib/component/marker/installMarkArea.js","../lib/component/legend/LegendModel.js","../lib/component/legend/LegendView.js","../lib/component/legend/legendFilter.js","../lib/component/legend/legendAction.js","../lib/component/legend/installLegendPlain.js","../lib/component/legend/ScrollableLegendModel.js","../lib/component/legend/ScrollableLegendView.js","../lib/component/legend/scrollableLegendAction.js","../lib/component/legend/installLegendScroll.js","../lib/component/legend/install.js","../lib/component/dataZoom/InsideZoomModel.js","../lib/component/dataZoom/roams.js","../lib/component/dataZoom/InsideZoomView.js","../lib/component/dataZoom/installDataZoomInside.js","../lib/component/dataZoom/SliderZoomModel.js","../lib/component/dataZoom/SliderZoomView.js","../lib/component/dataZoom/installDataZoomSlider.js","../lib/component/dataZoom/install.js","../lib/visual/visualDefault.js","../lib/component/visualMap/VisualMapModel.js","../lib/component/visualMap/ContinuousModel.js","../lib/component/visualMap/VisualMapView.js","../lib/component/visualMap/helper.js","../lib/component/visualMap/ContinuousView.js","../lib/component/visualMap/visualMapAction.js","../lib/component/visualMap/visualEncoding.js","../lib/component/visualMap/preprocessor.js","../lib/component/visualMap/installCommon.js","../lib/component/visualMap/installVisualMapContinuous.js","../lib/component/visualMap/PiecewiseModel.js","../lib/component/visualMap/PiecewiseView.js","../lib/component/visualMap/installVisualMapPiecewise.js","../lib/component/visualMap/install.js","../lib/visual/aria.js","../lib/component/aria/preprocessor.js","../lib/component/aria/install.js","../lib/util/conditionalExpression.js","../lib/component/transform/filterTransform.js","../lib/component/transform/sortTransform.js","../lib/component/transform/install.js","../lib/component/dataset/install.js","../index.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","var Browser = (function () {\n function Browser() {\n this.firefox = false;\n this.ie = false;\n this.edge = false;\n this.newEdge = false;\n this.weChat = false;\n }\n return Browser;\n}());\nvar Env = (function () {\n function Env() {\n this.browser = new Browser();\n this.node = false;\n this.wxa = false;\n this.worker = false;\n this.canvasSupported = false;\n this.svgSupported = false;\n this.touchEventsSupported = false;\n this.pointerEventsSupported = false;\n this.domSupported = false;\n }\n return Env;\n}());\nvar env = new Env();\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n env.wxa = true;\n env.canvasSupported = true;\n env.touchEventsSupported = true;\n}\nelse if (typeof document === 'undefined' && typeof self !== 'undefined') {\n env.worker = true;\n env.canvasSupported = true;\n}\nelse if (typeof navigator === 'undefined') {\n env.node = true;\n env.canvasSupported = true;\n env.svgSupported = true;\n}\nelse {\n detect(navigator.userAgent, env);\n}\nfunction detect(ua, env) {\n var browser = env.browser;\n var firefox = ua.match(/Firefox\\/([\\d.]+)/);\n var ie = ua.match(/MSIE\\s([\\d.]+)/)\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n var edge = ua.match(/Edge?\\/([\\d.]+)/);\n var weChat = (/micromessenger/i).test(ua);\n if (firefox) {\n browser.firefox = true;\n browser.version = firefox[1];\n }\n if (ie) {\n browser.ie = true;\n browser.version = ie[1];\n }\n if (edge) {\n browser.edge = true;\n browser.version = edge[1];\n browser.newEdge = +edge[1].split('.')[0] > 18;\n }\n if (weChat) {\n browser.weChat = true;\n }\n env.canvasSupported = !!document.createElement('canvas').getContext;\n env.svgSupported = typeof SVGRect !== 'undefined';\n env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\n env.pointerEventsSupported = 'onpointerdown' in window\n && (browser.edge || (browser.ie && +browser.version >= 11));\n env.domSupported = typeof document !== 'undefined';\n}\nexport default env;\n","var BUILTIN_OBJECT = {\n '[object Function]': true,\n '[object RegExp]': true,\n '[object Date]': true,\n '[object Error]': true,\n '[object CanvasGradient]': true,\n '[object CanvasPattern]': true,\n '[object Image]': true,\n '[object Canvas]': true\n};\nvar TYPED_ARRAY = {\n '[object Int8Array]': true,\n '[object Uint8Array]': true,\n '[object Uint8ClampedArray]': true,\n '[object Int16Array]': true,\n '[object Uint16Array]': true,\n '[object Int32Array]': true,\n '[object Uint32Array]': true,\n '[object Float32Array]': true,\n '[object Float64Array]': true\n};\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar methods = {};\nexport function $override(name, fn) {\n methods[name] = fn;\n}\nvar idStart = 0x0907;\nexport function guid() {\n return idStart++;\n}\nexport function logError() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (typeof console !== 'undefined') {\n console.error.apply(console, args);\n }\n}\nexport function clone(source) {\n if (source == null || typeof source !== 'object') {\n return source;\n }\n var result = source;\n var typeStr = objToString.call(source);\n if (typeStr === '[object Array]') {\n if (!isPrimitive(source)) {\n result = [];\n for (var i = 0, len = source.length; i < len; i++) {\n result[i] = clone(source[i]);\n }\n }\n }\n else if (TYPED_ARRAY[typeStr]) {\n if (!isPrimitive(source)) {\n var Ctor = source.constructor;\n if (Ctor.from) {\n result = Ctor.from(source);\n }\n else {\n result = new Ctor(source.length);\n for (var i = 0, len = source.length; i < len; i++) {\n result[i] = clone(source[i]);\n }\n }\n }\n }\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n result = {};\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n result[key] = clone(source[key]);\n }\n }\n }\n return result;\n}\nexport function merge(target, source, overwrite) {\n if (!isObject(source) || !isObject(target)) {\n return overwrite ? clone(source) : target;\n }\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n var targetProp = target[key];\n var sourceProp = source[key];\n if (isObject(sourceProp)\n && isObject(targetProp)\n && !isArray(sourceProp)\n && !isArray(targetProp)\n && !isDom(sourceProp)\n && !isDom(targetProp)\n && !isBuiltInObject(sourceProp)\n && !isBuiltInObject(targetProp)\n && !isPrimitive(sourceProp)\n && !isPrimitive(targetProp)) {\n merge(targetProp, sourceProp, overwrite);\n }\n else if (overwrite || !(key in target)) {\n target[key] = clone(source[key]);\n }\n }\n }\n return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n var result = targetAndSources[0];\n for (var i = 1, len = targetAndSources.length; i < len; i++) {\n result = merge(result, targetAndSources[i], overwrite);\n }\n return result;\n}\nexport function extend(target, source) {\n if (Object.assign) {\n Object.assign(target, source);\n }\n else {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n}\nexport function defaults(target, source, overlay) {\n var keysArr = keys(source);\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n if ((overlay ? source[key] != null : target[key] == null)) {\n target[key] = source[key];\n }\n }\n return target;\n}\nexport var createCanvas = function () {\n return methods.createCanvas();\n};\nmethods.createCanvas = function () {\n return document.createElement('canvas');\n};\nexport function indexOf(array, value) {\n if (array) {\n if (array.indexOf) {\n return array.indexOf(value);\n }\n for (var i = 0, len = array.length; i < len; i++) {\n if (array[i] === value) {\n return i;\n }\n }\n }\n return -1;\n}\nexport function inherits(clazz, baseClazz) {\n var clazzPrototype = clazz.prototype;\n function F() { }\n F.prototype = baseClazz.prototype;\n clazz.prototype = new F();\n for (var prop in clazzPrototype) {\n if (clazzPrototype.hasOwnProperty(prop)) {\n clazz.prototype[prop] = clazzPrototype[prop];\n }\n }\n clazz.prototype.constructor = clazz;\n clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n target = 'prototype' in target ? target.prototype : target;\n source = 'prototype' in source ? source.prototype : source;\n if (Object.getOwnPropertyNames) {\n var keyList = Object.getOwnPropertyNames(source);\n for (var i = 0; i < keyList.length; i++) {\n var key = keyList[i];\n if (key !== 'constructor') {\n if ((override ? source[key] != null : target[key] == null)) {\n target[key] = source[key];\n }\n }\n }\n }\n else {\n defaults(target, source, override);\n }\n}\nexport function isArrayLike(data) {\n if (!data) {\n return false;\n }\n if (typeof data === 'string') {\n return false;\n }\n return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n if (!(arr && cb)) {\n return;\n }\n if (arr.forEach && arr.forEach === nativeForEach) {\n arr.forEach(cb, context);\n }\n else if (arr.length === +arr.length) {\n for (var i = 0, len = arr.length; i < len; i++) {\n cb.call(context, arr[i], i, arr);\n }\n }\n else {\n for (var key in arr) {\n if (arr.hasOwnProperty(key)) {\n cb.call(context, arr[key], key, arr);\n }\n }\n }\n}\nexport function map(arr, cb, context) {\n if (!arr) {\n return [];\n }\n if (!cb) {\n return slice(arr);\n }\n if (arr.map && arr.map === nativeMap) {\n return arr.map(cb, context);\n }\n else {\n var result = [];\n for (var i = 0, len = arr.length; i < len; i++) {\n result.push(cb.call(context, arr[i], i, arr));\n }\n return result;\n }\n}\nexport function reduce(arr, cb, memo, context) {\n if (!(arr && cb)) {\n return;\n }\n for (var i = 0, len = arr.length; i < len; i++) {\n memo = cb.call(context, memo, arr[i], i, arr);\n }\n return memo;\n}\nexport function filter(arr, cb, context) {\n if (!arr) {\n return [];\n }\n if (!cb) {\n return slice(arr);\n }\n if (arr.filter && arr.filter === nativeFilter) {\n return arr.filter(cb, context);\n }\n else {\n var result = [];\n for (var i = 0, len = arr.length; i < len; i++) {\n if (cb.call(context, arr[i], i, arr)) {\n result.push(arr[i]);\n }\n }\n return result;\n }\n}\nexport function find(arr, cb, context) {\n if (!(arr && cb)) {\n return;\n }\n for (var i = 0, len = arr.length; i < len; i++) {\n if (cb.call(context, arr[i], i, arr)) {\n return arr[i];\n }\n }\n}\nexport function keys(obj) {\n if (!obj) {\n return [];\n }\n if (Object.keys) {\n return Object.keys(obj);\n }\n var keyList = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n keyList.push(key);\n }\n }\n return keyList;\n}\nfunction bindPolyfill(func, context) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n return function () {\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\n };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n ? protoFunction.call.bind(protoFunction.bind)\n : bindPolyfill;\nfunction curry(func) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return function () {\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\n };\n}\nexport { curry };\nexport function isArray(value) {\n if (Array.isArray) {\n return Array.isArray(value);\n }\n return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n return typeof value === 'function';\n}\nexport function isString(value) {\n return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n return typeof value === 'number';\n}\nexport function isObject(value) {\n var type = typeof value;\n return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n return typeof value === 'object'\n && typeof value.nodeType === 'number'\n && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n return value.colorStops != null;\n}\nexport function isPatternObject(value) {\n return value.image != null;\n}\nexport function isRegExp(value) {\n return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n return value !== value;\n}\nexport function retrieve() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n for (var i = 0, len = args.length; i < len; i++) {\n if (args[i] != null) {\n return args[i];\n }\n }\n}\nexport function retrieve2(value0, value1) {\n return value0 != null\n ? value0\n : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n return value0 != null\n ? value0\n : value1 != null\n ? value1\n : value2;\n}\nexport function slice(arr) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n if (typeof (val) === 'number') {\n return [val, val, val, val];\n }\n var len = val.length;\n if (len === 2) {\n return [val[0], val[1], val[0], val[1]];\n }\n else if (len === 3) {\n return [val[0], val[1], val[2], val[1]];\n }\n return val;\n}\nexport function assert(condition, message) {\n if (!condition) {\n throw new Error(message);\n }\n}\nexport function trim(str) {\n if (str == null) {\n return null;\n }\n else if (typeof str.trim === 'function') {\n return str.trim();\n }\n else {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n return obj[primitiveKey];\n}\nvar HashMap = (function () {\n function HashMap(obj) {\n this.data = {};\n var isArr = isArray(obj);\n this.data = {};\n var thisMap = this;\n (obj instanceof HashMap)\n ? obj.each(visit)\n : (obj && each(obj, visit));\n function visit(value, key) {\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n }\n }\n HashMap.prototype.get = function (key) {\n return this.data.hasOwnProperty(key) ? this.data[key] : null;\n };\n HashMap.prototype.set = function (key, value) {\n return (this.data[key] = value);\n };\n HashMap.prototype.each = function (cb, context) {\n for (var key in this.data) {\n if (this.data.hasOwnProperty(key)) {\n cb.call(context, this.data[key], key);\n }\n }\n };\n HashMap.prototype.keys = function () {\n return keys(this.data);\n };\n HashMap.prototype.removeKey = function (key) {\n delete this.data[key];\n };\n return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n var newArray = new a.constructor(a.length + b.length);\n for (var i = 0; i < a.length; i++) {\n newArray[i] = a[i];\n }\n var offset = a.length;\n for (var i = 0; i < b.length; i++) {\n newArray[i + offset] = b[i];\n }\n return newArray;\n}\nexport function createObject(proto, properties) {\n var obj;\n if (Object.create) {\n obj = Object.create(proto);\n }\n else {\n var StyleCtor = function () { };\n StyleCtor.prototype = proto;\n obj = new StyleCtor();\n }\n if (properties) {\n extend(obj, properties);\n }\n return obj;\n}\nexport function hasOwn(own, prop) {\n return own.hasOwnProperty(prop);\n}\nexport function noop() { }\n","export function create(x, y) {\n if (x == null) {\n x = 0;\n }\n if (y == null) {\n y = 0;\n }\n return [x, y];\n}\nexport function copy(out, v) {\n out[0] = v[0];\n out[1] = v[1];\n return out;\n}\nexport function clone(v) {\n return [v[0], v[1]];\n}\nexport function set(out, a, b) {\n out[0] = a;\n out[1] = b;\n return out;\n}\nexport function add(out, v1, v2) {\n out[0] = v1[0] + v2[0];\n out[1] = v1[1] + v2[1];\n return out;\n}\nexport function scaleAndAdd(out, v1, v2, a) {\n out[0] = v1[0] + v2[0] * a;\n out[1] = v1[1] + v2[1] * a;\n return out;\n}\nexport function sub(out, v1, v2) {\n out[0] = v1[0] - v2[0];\n out[1] = v1[1] - v2[1];\n return out;\n}\nexport function len(v) {\n return Math.sqrt(lenSquare(v));\n}\nexport var length = len;\nexport function lenSquare(v) {\n return v[0] * v[0] + v[1] * v[1];\n}\nexport var lengthSquare = lenSquare;\nexport function mul(out, v1, v2) {\n out[0] = v1[0] * v2[0];\n out[1] = v1[1] * v2[1];\n return out;\n}\nexport function div(out, v1, v2) {\n out[0] = v1[0] / v2[0];\n out[1] = v1[1] / v2[1];\n return out;\n}\nexport function dot(v1, v2) {\n return v1[0] * v2[0] + v1[1] * v2[1];\n}\nexport function scale(out, v, s) {\n out[0] = v[0] * s;\n out[1] = v[1] * s;\n return out;\n}\nexport function normalize(out, v) {\n var d = len(v);\n if (d === 0) {\n out[0] = 0;\n out[1] = 0;\n }\n else {\n out[0] = v[0] / d;\n out[1] = v[1] / d;\n }\n return out;\n}\nexport function distance(v1, v2) {\n return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\n + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\nexport var dist = distance;\nexport function distanceSquare(v1, v2) {\n return (v1[0] - v2[0]) * (v1[0] - v2[0])\n + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\nexport var distSquare = distanceSquare;\nexport function negate(out, v) {\n out[0] = -v[0];\n out[1] = -v[1];\n return out;\n}\nexport function lerp(out, v1, v2, t) {\n out[0] = v1[0] + t * (v2[0] - v1[0]);\n out[1] = v1[1] + t * (v2[1] - v1[1]);\n return out;\n}\nexport function applyTransform(out, v, m) {\n var x = v[0];\n var y = v[1];\n out[0] = m[0] * x + m[2] * y + m[4];\n out[1] = m[1] * x + m[3] * y + m[5];\n return out;\n}\nexport function min(out, v1, v2) {\n out[0] = Math.min(v1[0], v2[0]);\n out[1] = Math.min(v1[1], v2[1]);\n return out;\n}\nexport function max(out, v1, v2) {\n out[0] = Math.max(v1[0], v2[0]);\n out[1] = Math.max(v1[1], v2[1]);\n return out;\n}\n","var Param = (function () {\n function Param(target, e) {\n this.target = target;\n this.topTarget = e && e.topTarget;\n }\n return Param;\n}());\nvar Draggable = (function () {\n function Draggable(handler) {\n this.handler = handler;\n handler.on('mousedown', this._dragStart, this);\n handler.on('mousemove', this._drag, this);\n handler.on('mouseup', this._dragEnd, this);\n }\n Draggable.prototype._dragStart = function (e) {\n var draggingTarget = e.target;\n while (draggingTarget && !draggingTarget.draggable) {\n draggingTarget = draggingTarget.parent;\n }\n if (draggingTarget) {\n this._draggingTarget = draggingTarget;\n draggingTarget.dragging = true;\n this._x = e.offsetX;\n this._y = e.offsetY;\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\n }\n };\n Draggable.prototype._drag = function (e) {\n var draggingTarget = this._draggingTarget;\n if (draggingTarget) {\n var x = e.offsetX;\n var y = e.offsetY;\n var dx = x - this._x;\n var dy = y - this._y;\n this._x = x;\n this._y = y;\n draggingTarget.drift(dx, dy, e);\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\n var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\n var lastDropTarget = this._dropTarget;\n this._dropTarget = dropTarget;\n if (draggingTarget !== dropTarget) {\n if (lastDropTarget && dropTarget !== lastDropTarget) {\n this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\n }\n if (dropTarget && dropTarget !== lastDropTarget) {\n this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\n }\n }\n }\n };\n Draggable.prototype._dragEnd = function (e) {\n var draggingTarget = this._draggingTarget;\n if (draggingTarget) {\n draggingTarget.dragging = false;\n }\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\n if (this._dropTarget) {\n this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\n }\n this._draggingTarget = null;\n this._dropTarget = null;\n };\n return Draggable;\n}());\nexport default Draggable;\n","var Eventful = (function () {\n function Eventful(eventProcessors) {\n if (eventProcessors) {\n this._$eventProcessor = eventProcessors;\n }\n }\n Eventful.prototype.on = function (event, query, handler, context) {\n if (!this._$handlers) {\n this._$handlers = {};\n }\n var _h = this._$handlers;\n if (typeof query === 'function') {\n context = handler;\n handler = query;\n query = null;\n }\n if (!handler || !event) {\n return this;\n }\n var eventProcessor = this._$eventProcessor;\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n query = eventProcessor.normalizeQuery(query);\n }\n if (!_h[event]) {\n _h[event] = [];\n }\n for (var i = 0; i < _h[event].length; i++) {\n if (_h[event][i].h === handler) {\n return this;\n }\n }\n var wrap = {\n h: handler,\n query: query,\n ctx: (context || this),\n callAtLast: handler.zrEventfulCallAtLast\n };\n var lastIndex = _h[event].length - 1;\n var lastWrap = _h[event][lastIndex];\n (lastWrap && lastWrap.callAtLast)\n ? _h[event].splice(lastIndex, 0, wrap)\n : _h[event].push(wrap);\n return this;\n };\n Eventful.prototype.isSilent = function (eventName) {\n var _h = this._$handlers;\n return !_h || !_h[eventName] || !_h[eventName].length;\n };\n Eventful.prototype.off = function (eventType, handler) {\n var _h = this._$handlers;\n if (!_h) {\n return this;\n }\n if (!eventType) {\n this._$handlers = {};\n return this;\n }\n if (handler) {\n if (_h[eventType]) {\n var newList = [];\n for (var i = 0, l = _h[eventType].length; i < l; i++) {\n if (_h[eventType][i].h !== handler) {\n newList.push(_h[eventType][i]);\n }\n }\n _h[eventType] = newList;\n }\n if (_h[eventType] && _h[eventType].length === 0) {\n delete _h[eventType];\n }\n }\n else {\n delete _h[eventType];\n }\n return this;\n };\n Eventful.prototype.trigger = function (eventType) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!this._$handlers) {\n return this;\n }\n var _h = this._$handlers[eventType];\n var eventProcessor = this._$eventProcessor;\n if (_h) {\n var argLen = args.length;\n var len = _h.length;\n for (var i = 0; i < len; i++) {\n var hItem = _h[i];\n if (eventProcessor\n && eventProcessor.filter\n && hItem.query != null\n && !eventProcessor.filter(eventType, hItem.query)) {\n continue;\n }\n switch (argLen) {\n case 0:\n hItem.h.call(hItem.ctx);\n break;\n case 1:\n hItem.h.call(hItem.ctx, args[0]);\n break;\n case 2:\n hItem.h.call(hItem.ctx, args[0], args[1]);\n break;\n default:\n hItem.h.apply(hItem.ctx, args);\n break;\n }\n }\n }\n eventProcessor && eventProcessor.afterTrigger\n && eventProcessor.afterTrigger(eventType);\n return this;\n };\n Eventful.prototype.triggerWithContext = function (type) {\n if (!this._$handlers) {\n return this;\n }\n var _h = this._$handlers[type];\n var eventProcessor = this._$eventProcessor;\n if (_h) {\n var args = arguments;\n var argLen = args.length;\n var ctx = args[argLen - 1];\n var len = _h.length;\n for (var i = 0; i < len; i++) {\n var hItem = _h[i];\n if (eventProcessor\n && eventProcessor.filter\n && hItem.query != null\n && !eventProcessor.filter(type, hItem.query)) {\n continue;\n }\n switch (argLen) {\n case 0:\n hItem.h.call(ctx);\n break;\n case 1:\n hItem.h.call(ctx, args[0]);\n break;\n case 2:\n hItem.h.call(ctx, args[0], args[1]);\n break;\n default:\n hItem.h.apply(ctx, args.slice(1, argLen - 1));\n break;\n }\n }\n }\n eventProcessor && eventProcessor.afterTrigger\n && eventProcessor.afterTrigger(type);\n return this;\n };\n return Eventful;\n}());\nexport default Eventful;\n","var LN2 = Math.log(2);\nfunction determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\n var cacheKey = rowMask + '-' + colMask;\n var fullRank = rows.length;\n if (detCache.hasOwnProperty(cacheKey)) {\n return detCache[cacheKey];\n }\n if (rank === 1) {\n var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\n return rows[rowStart][colStart];\n }\n var subRowMask = rowMask | (1 << rowStart);\n var subRowStart = rowStart + 1;\n while (rowMask & (1 << subRowStart)) {\n subRowStart++;\n }\n var sum = 0;\n for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\n var colTag = 1 << j;\n if (!(colTag & colMask)) {\n sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\n * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\n colLocalIdx++;\n }\n }\n detCache[cacheKey] = sum;\n return sum;\n}\nexport function buildTransformer(src, dest) {\n var mA = [\n [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\n [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\n [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\n [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\n [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\n [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\n [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\n [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\n ];\n var detCache = {};\n var det = determinant(mA, 8, 0, 0, 0, detCache);\n if (det === 0) {\n return;\n }\n var vh = [];\n for (var i = 0; i < 8; i++) {\n for (var j = 0; j < 8; j++) {\n vh[j] == null && (vh[j] = 0);\n vh[j] += ((i + j) % 2 ? -1 : 1)\n * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\n / det * dest[i];\n }\n }\n return function (out, srcPointX, srcPointY) {\n var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\n out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\n out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\n };\n}\n","import env from './env';\nimport { buildTransformer } from './fourPointsTransform';\nvar EVENT_SAVED_PROP = '___zrEVENTSAVED';\nvar _calcOut = [];\nexport function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\n return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\n && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\n}\nexport function transformCoordWithViewport(out, el, inX, inY, inverse) {\n if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\n var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\n var markers = prepareCoordMarkers(el, saved);\n var transformer = preparePointerTransformer(markers, saved, inverse);\n if (transformer) {\n transformer(out, inX, inY);\n return true;\n }\n }\n return false;\n}\nfunction prepareCoordMarkers(el, saved) {\n var markers = saved.markers;\n if (markers) {\n return markers;\n }\n markers = saved.markers = [];\n var propLR = ['left', 'right'];\n var propTB = ['top', 'bottom'];\n for (var i = 0; i < 4; i++) {\n var marker = document.createElement('div');\n var stl = marker.style;\n var idxLR = i % 2;\n var idxTB = (i >> 1) % 2;\n stl.cssText = [\n 'position: absolute',\n 'visibility: hidden',\n 'padding: 0',\n 'margin: 0',\n 'border-width: 0',\n 'user-select: none',\n 'width:0',\n 'height:0',\n propLR[idxLR] + ':0',\n propTB[idxTB] + ':0',\n propLR[1 - idxLR] + ':auto',\n propTB[1 - idxTB] + ':auto',\n ''\n ].join('!important;');\n el.appendChild(marker);\n markers.push(marker);\n }\n return markers;\n}\nfunction preparePointerTransformer(markers, saved, inverse) {\n var transformerName = inverse ? 'invTrans' : 'trans';\n var transformer = saved[transformerName];\n var oldSrcCoords = saved.srcCoords;\n var srcCoords = [];\n var destCoords = [];\n var oldCoordTheSame = true;\n for (var i = 0; i < 4; i++) {\n var rect = markers[i].getBoundingClientRect();\n var ii = 2 * i;\n var x = rect.left;\n var y = rect.top;\n srcCoords.push(x, y);\n oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\n destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\n }\n return (oldCoordTheSame && transformer)\n ? transformer\n : (saved.srcCoords = srcCoords,\n saved[transformerName] = inverse\n ? buildTransformer(destCoords, srcCoords)\n : buildTransformer(srcCoords, destCoords));\n}\nexport function isCanvasEl(el) {\n return el.nodeName.toUpperCase() === 'CANVAS';\n}\n","import Eventful from './Eventful';\nimport env from './env';\nimport { isCanvasEl, transformCoordWithViewport } from './dom';\nvar isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\nvar _calcOut = [];\nexport function clientToLocal(el, e, out, calculate) {\n out = out || {};\n if (calculate || !env.canvasSupported) {\n calculateZrXY(el, e, out);\n }\n else if (env.browser.firefox\n && e.layerX != null\n && e.layerX !== e.offsetX) {\n out.zrX = e.layerX;\n out.zrY = e.layerY;\n }\n else if (e.offsetX != null) {\n out.zrX = e.offsetX;\n out.zrY = e.offsetY;\n }\n else {\n calculateZrXY(el, e, out);\n }\n return out;\n}\nfunction calculateZrXY(el, e, out) {\n if (env.domSupported && el.getBoundingClientRect) {\n var ex = e.clientX;\n var ey = e.clientY;\n if (isCanvasEl(el)) {\n var box = el.getBoundingClientRect();\n out.zrX = ex - box.left;\n out.zrY = ey - box.top;\n return;\n }\n else {\n if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\n out.zrX = _calcOut[0];\n out.zrY = _calcOut[1];\n return;\n }\n }\n }\n out.zrX = out.zrY = 0;\n}\nexport function getNativeEvent(e) {\n return e\n || window.event;\n}\nexport function normalizeEvent(el, e, calculate) {\n e = getNativeEvent(e);\n if (e.zrX != null) {\n return e;\n }\n var eventType = e.type;\n var isTouch = eventType && eventType.indexOf('touch') >= 0;\n if (!isTouch) {\n clientToLocal(el, e, e, calculate);\n var wheelDelta = getWheelDeltaMayPolyfill(e);\n e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\n }\n else {\n var touch = eventType !== 'touchend'\n ? e.targetTouches[0]\n : e.changedTouches[0];\n touch && clientToLocal(el, touch, e, calculate);\n }\n var button = e.button;\n if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n }\n return e;\n}\nfunction getWheelDeltaMayPolyfill(e) {\n var rawWheelDelta = e.wheelDelta;\n if (rawWheelDelta) {\n return rawWheelDelta;\n }\n var deltaX = e.deltaX;\n var deltaY = e.deltaY;\n if (deltaX == null || deltaY == null) {\n return rawWheelDelta;\n }\n var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\n var sign = deltaY > 0 ? -1\n : deltaY < 0 ? 1\n : deltaX > 0 ? -1\n : 1;\n return 3 * delta * sign;\n}\nexport function addEventListener(el, name, handler, opt) {\n if (isDomLevel2) {\n el.addEventListener(name, handler, opt);\n }\n else {\n el.attachEvent('on' + name, handler);\n }\n}\nexport function removeEventListener(el, name, handler, opt) {\n if (isDomLevel2) {\n el.removeEventListener(name, handler, opt);\n }\n else {\n el.detachEvent('on' + name, handler);\n }\n}\nexport var stop = isDomLevel2\n ? function (e) {\n e.preventDefault();\n e.stopPropagation();\n e.cancelBubble = true;\n }\n : function (e) {\n e.returnValue = false;\n e.cancelBubble = true;\n };\nexport function isMiddleOrRightButtonOnMouseUpDown(e) {\n return e.which === 2 || e.which === 3;\n}\nexport function notLeftMouse(e) {\n return e.which > 1;\n}\nexport { Eventful as Dispatcher };\n","import * as eventUtil from './event';\nvar GestureMgr = (function () {\n function GestureMgr() {\n this._track = [];\n }\n GestureMgr.prototype.recognize = function (event, target, root) {\n this._doTrack(event, target, root);\n return this._recognize(event);\n };\n GestureMgr.prototype.clear = function () {\n this._track.length = 0;\n return this;\n };\n GestureMgr.prototype._doTrack = function (event, target, root) {\n var touches = event.touches;\n if (!touches) {\n return;\n }\n var trackItem = {\n points: [],\n touches: [],\n target: target,\n event: event\n };\n for (var i = 0, len = touches.length; i < len; i++) {\n var touch = touches[i];\n var pos = eventUtil.clientToLocal(root, touch, {});\n trackItem.points.push([pos.zrX, pos.zrY]);\n trackItem.touches.push(touch);\n }\n this._track.push(trackItem);\n };\n GestureMgr.prototype._recognize = function (event) {\n for (var eventName in recognizers) {\n if (recognizers.hasOwnProperty(eventName)) {\n var gestureInfo = recognizers[eventName](this._track, event);\n if (gestureInfo) {\n return gestureInfo;\n }\n }\n }\n };\n return GestureMgr;\n}());\nexport { GestureMgr };\nfunction dist(pointPair) {\n var dx = pointPair[1][0] - pointPair[0][0];\n var dy = pointPair[1][1] - pointPair[0][1];\n return Math.sqrt(dx * dx + dy * dy);\n}\nfunction center(pointPair) {\n return [\n (pointPair[0][0] + pointPair[1][0]) / 2,\n (pointPair[0][1] + pointPair[1][1]) / 2\n ];\n}\nvar recognizers = {\n pinch: function (tracks, event) {\n var trackLen = tracks.length;\n if (!trackLen) {\n return;\n }\n var pinchEnd = (tracks[trackLen - 1] || {}).points;\n var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\n if (pinchPre\n && pinchPre.length > 1\n && pinchEnd\n && pinchEnd.length > 1) {\n var pinchScale = dist(pinchEnd) / dist(pinchPre);\n !isFinite(pinchScale) && (pinchScale = 1);\n event.pinchScale = pinchScale;\n var pinchCenter = center(pinchEnd);\n event.pinchX = pinchCenter[0];\n event.pinchY = pinchCenter[1];\n return {\n type: 'pinch',\n target: tracks[0].target,\n event: event\n };\n }\n }\n};\n","import { __extends } from \"tslib\";\nimport * as util from './core/util';\nimport * as vec2 from './core/vector';\nimport Draggable from './mixin/Draggable';\nimport Eventful from './core/Eventful';\nimport * as eventTool from './core/event';\nimport { GestureMgr } from './core/GestureMgr';\nvar SILENT = 'silent';\nfunction makeEventPacket(eveType, targetInfo, event) {\n return {\n type: eveType,\n event: event,\n target: targetInfo.target,\n topTarget: targetInfo.topTarget,\n cancelBubble: false,\n offsetX: event.zrX,\n offsetY: event.zrY,\n gestureEvent: event.gestureEvent,\n pinchX: event.pinchX,\n pinchY: event.pinchY,\n pinchScale: event.pinchScale,\n wheelDelta: event.zrDelta,\n zrByTouch: event.zrByTouch,\n which: event.which,\n stop: stopEvent\n };\n}\nfunction stopEvent() {\n eventTool.stop(this.event);\n}\nvar EmptyProxy = (function (_super) {\n __extends(EmptyProxy, _super);\n function EmptyProxy() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.handler = null;\n return _this;\n }\n EmptyProxy.prototype.dispose = function () { };\n EmptyProxy.prototype.setCursor = function () { };\n return EmptyProxy;\n}(Eventful));\nvar HoveredResult = (function () {\n function HoveredResult(x, y) {\n this.x = x;\n this.y = y;\n }\n return HoveredResult;\n}());\nvar handlerNames = [\n 'click', 'dblclick', 'mousewheel', 'mouseout',\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n];\nvar Handler = (function (_super) {\n __extends(Handler, _super);\n function Handler(storage, painter, proxy, painterRoot) {\n var _this = _super.call(this) || this;\n _this._hovered = new HoveredResult(0, 0);\n _this.storage = storage;\n _this.painter = painter;\n _this.painterRoot = painterRoot;\n proxy = proxy || new EmptyProxy();\n _this.proxy = null;\n _this.setHandlerProxy(proxy);\n _this._draggingMgr = new Draggable(_this);\n return _this;\n }\n Handler.prototype.setHandlerProxy = function (proxy) {\n if (this.proxy) {\n this.proxy.dispose();\n }\n if (proxy) {\n util.each(handlerNames, function (name) {\n proxy.on && proxy.on(name, this[name], this);\n }, this);\n proxy.handler = this;\n }\n this.proxy = proxy;\n };\n Handler.prototype.mousemove = function (event) {\n var x = event.zrX;\n var y = event.zrY;\n var isOutside = isOutsideBoundary(this, x, y);\n var lastHovered = this._hovered;\n var lastHoveredTarget = lastHovered.target;\n if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n lastHoveredTarget = lastHovered.target;\n }\n var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\n var hoveredTarget = hovered.target;\n var proxy = this.proxy;\n proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\n if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n this.dispatchToElement(lastHovered, 'mouseout', event);\n }\n this.dispatchToElement(hovered, 'mousemove', event);\n if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n this.dispatchToElement(hovered, 'mouseover', event);\n }\n };\n Handler.prototype.mouseout = function (event) {\n var eventControl = event.zrEventControl;\n if (eventControl !== 'only_globalout') {\n this.dispatchToElement(this._hovered, 'mouseout', event);\n }\n if (eventControl !== 'no_globalout') {\n this.trigger('globalout', { type: 'globalout', event: event });\n }\n };\n Handler.prototype.resize = function () {\n this._hovered = new HoveredResult(0, 0);\n };\n Handler.prototype.dispatch = function (eventName, eventArgs) {\n var handler = this[eventName];\n handler && handler.call(this, eventArgs);\n };\n Handler.prototype.dispose = function () {\n this.proxy.dispose();\n this.storage = null;\n this.proxy = null;\n this.painter = null;\n };\n Handler.prototype.setCursorStyle = function (cursorStyle) {\n var proxy = this.proxy;\n proxy.setCursor && proxy.setCursor(cursorStyle);\n };\n Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\n targetInfo = targetInfo || {};\n var el = targetInfo.target;\n if (el && el.silent) {\n return;\n }\n var eventKey = ('on' + eventName);\n var eventPacket = makeEventPacket(eventName, targetInfo, event);\n while (el) {\n el[eventKey]\n && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\n el.trigger(eventName, eventPacket);\n el = el.__hostTarget ? el.__hostTarget : el.parent;\n if (eventPacket.cancelBubble) {\n break;\n }\n }\n if (!eventPacket.cancelBubble) {\n this.trigger(eventName, eventPacket);\n if (this.painter && this.painter.eachOtherLayer) {\n this.painter.eachOtherLayer(function (layer) {\n if (typeof (layer[eventKey]) === 'function') {\n layer[eventKey].call(layer, eventPacket);\n }\n if (layer.trigger) {\n layer.trigger(eventName, eventPacket);\n }\n });\n }\n }\n };\n Handler.prototype.findHover = function (x, y, exclude) {\n var list = this.storage.getDisplayList();\n var out = new HoveredResult(x, y);\n for (var i = list.length - 1; i >= 0; i--) {\n var hoverCheckResult = void 0;\n if (list[i] !== exclude\n && !list[i].ignore\n && (hoverCheckResult = isHover(list[i], x, y))) {\n !out.topTarget && (out.topTarget = list[i]);\n if (hoverCheckResult !== SILENT) {\n out.target = list[i];\n break;\n }\n }\n }\n return out;\n };\n Handler.prototype.processGesture = function (event, stage) {\n if (!this._gestureMgr) {\n this._gestureMgr = new GestureMgr();\n }\n var gestureMgr = this._gestureMgr;\n stage === 'start' && gestureMgr.clear();\n var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\n stage === 'end' && gestureMgr.clear();\n if (gestureInfo) {\n var type = gestureInfo.type;\n event.gestureEvent = type;\n var res = new HoveredResult();\n res.target = gestureInfo.target;\n this.dispatchToElement(res, type, gestureInfo.event);\n }\n };\n return Handler;\n}(Eventful));\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n Handler.prototype[name] = function (event) {\n var x = event.zrX;\n var y = event.zrY;\n var isOutside = isOutsideBoundary(this, x, y);\n var hovered;\n var hoveredTarget;\n if (name !== 'mouseup' || !isOutside) {\n hovered = this.findHover(x, y);\n hoveredTarget = hovered.target;\n }\n if (name === 'mousedown') {\n this._downEl = hoveredTarget;\n this._downPoint = [event.zrX, event.zrY];\n this._upEl = hoveredTarget;\n }\n else if (name === 'mouseup') {\n this._upEl = hoveredTarget;\n }\n else if (name === 'click') {\n if (this._downEl !== this._upEl\n || !this._downPoint\n || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n return;\n }\n this._downPoint = null;\n }\n this.dispatchToElement(hovered, name, event);\n };\n});\nfunction isHover(displayable, x, y) {\n if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n var el = displayable;\n var isSilent = void 0;\n var ignoreClip = false;\n while (el) {\n if (el.ignoreClip) {\n ignoreClip = true;\n }\n if (!ignoreClip) {\n var clipPath = el.getClipPath();\n if (clipPath && !clipPath.contain(x, y)) {\n return false;\n }\n if (el.silent) {\n isSilent = true;\n }\n }\n var hostEl = el.__hostTarget;\n el = hostEl ? hostEl : el.parent;\n }\n return isSilent ? SILENT : true;\n }\n return false;\n}\nfunction isOutsideBoundary(handlerInstance, x, y) {\n var painter = handlerInstance.painter;\n return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\n}\nexport default Handler;\n","export function create() {\n return [1, 0, 0, 1, 0, 0];\n}\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 1;\n out[4] = 0;\n out[5] = 0;\n return out;\n}\nexport function copy(out, m) {\n out[0] = m[0];\n out[1] = m[1];\n out[2] = m[2];\n out[3] = m[3];\n out[4] = m[4];\n out[5] = m[5];\n return out;\n}\nexport function mul(out, m1, m2) {\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n out[0] = out0;\n out[1] = out1;\n out[2] = out2;\n out[3] = out3;\n out[4] = out4;\n out[5] = out5;\n return out;\n}\nexport function translate(out, a, v) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4] + v[0];\n out[5] = a[5] + v[1];\n return out;\n}\nexport function rotate(out, a, rad) {\n var aa = a[0];\n var ac = a[2];\n var atx = a[4];\n var ab = a[1];\n var ad = a[3];\n var aty = a[5];\n var st = Math.sin(rad);\n var ct = Math.cos(rad);\n out[0] = aa * ct + ab * st;\n out[1] = -aa * st + ab * ct;\n out[2] = ac * ct + ad * st;\n out[3] = -ac * st + ct * ad;\n out[4] = ct * atx + st * aty;\n out[5] = ct * aty - st * atx;\n return out;\n}\nexport function scale(out, a, v) {\n var vx = v[0];\n var vy = v[1];\n out[0] = a[0] * vx;\n out[1] = a[1] * vy;\n out[2] = a[2] * vx;\n out[3] = a[3] * vy;\n out[4] = a[4] * vx;\n out[5] = a[5] * vy;\n return out;\n}\nexport function invert(out, a) {\n var aa = a[0];\n var ac = a[2];\n var atx = a[4];\n var ab = a[1];\n var ad = a[3];\n var aty = a[5];\n var det = aa * ad - ab * ac;\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n out[0] = ad * det;\n out[1] = -ab * det;\n out[2] = -ac * det;\n out[3] = aa * det;\n out[4] = (ac * aty - ad * atx) * det;\n out[5] = (ab * atx - aa * aty) * det;\n return out;\n}\nexport function clone(a) {\n var b = create();\n copy(b, a);\n return b;\n}\n","import * as matrix from './matrix';\nimport * as vector from './vector';\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\nfunction isNotAroundZero(val) {\n return val > EPSILON || val < -EPSILON;\n}\nvar scaleTmp = [];\nvar tmpTransform = [];\nvar originTransform = matrix.create();\nvar abs = Math.abs;\nvar Transformable = (function () {\n function Transformable() {\n }\n Transformable.prototype.setPosition = function (arr) {\n this.x = arr[0];\n this.y = arr[1];\n };\n Transformable.prototype.setScale = function (arr) {\n this.scaleX = arr[0];\n this.scaleY = arr[1];\n };\n Transformable.prototype.setOrigin = function (arr) {\n this.originX = arr[0];\n this.originY = arr[1];\n };\n Transformable.prototype.needLocalTransform = function () {\n return isNotAroundZero(this.rotation)\n || isNotAroundZero(this.x)\n || isNotAroundZero(this.y)\n || isNotAroundZero(this.scaleX - 1)\n || isNotAroundZero(this.scaleY - 1);\n };\n Transformable.prototype.updateTransform = function () {\n var parent = this.parent;\n var parentHasTransform = parent && parent.transform;\n var needLocalTransform = this.needLocalTransform();\n var m = this.transform;\n if (!(needLocalTransform || parentHasTransform)) {\n m && mIdentity(m);\n return;\n }\n m = m || matrix.create();\n if (needLocalTransform) {\n this.getLocalTransform(m);\n }\n else {\n mIdentity(m);\n }\n if (parentHasTransform) {\n if (needLocalTransform) {\n matrix.mul(m, parent.transform, m);\n }\n else {\n matrix.copy(m, parent.transform);\n }\n }\n this.transform = m;\n this._resolveGlobalScaleRatio(m);\n };\n Transformable.prototype._resolveGlobalScaleRatio = function (m) {\n var globalScaleRatio = this.globalScaleRatio;\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\n this.getGlobalScale(scaleTmp);\n var relX = scaleTmp[0] < 0 ? -1 : 1;\n var relY = scaleTmp[1] < 0 ? -1 : 1;\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n m[0] *= sx;\n m[1] *= sx;\n m[2] *= sy;\n m[3] *= sy;\n }\n this.invTransform = this.invTransform || matrix.create();\n matrix.invert(this.invTransform, m);\n };\n Transformable.prototype.getLocalTransform = function (m) {\n return Transformable.getLocalTransform(this, m);\n };\n Transformable.prototype.getComputedTransform = function () {\n var transformNode = this;\n var ancestors = [];\n while (transformNode) {\n ancestors.push(transformNode);\n transformNode = transformNode.parent;\n }\n while (transformNode = ancestors.pop()) {\n transformNode.updateTransform();\n }\n return this.transform;\n };\n Transformable.prototype.setLocalTransform = function (m) {\n if (!m) {\n return;\n }\n var sx = m[0] * m[0] + m[1] * m[1];\n var sy = m[2] * m[2] + m[3] * m[3];\n if (isNotAroundZero(sx - 1)) {\n sx = Math.sqrt(sx);\n }\n if (isNotAroundZero(sy - 1)) {\n sy = Math.sqrt(sy);\n }\n if (m[0] < 0) {\n sx = -sx;\n }\n if (m[3] < 0) {\n sy = -sy;\n }\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n if (sx < 0 && sy < 0) {\n this.rotation += Math.PI;\n sx = -sx;\n sy = -sy;\n }\n this.x = m[4];\n this.y = m[5];\n this.scaleX = sx;\n this.scaleY = sy;\n };\n Transformable.prototype.decomposeTransform = function () {\n if (!this.transform) {\n return;\n }\n var parent = this.parent;\n var m = this.transform;\n if (parent && parent.transform) {\n matrix.mul(tmpTransform, parent.invTransform, m);\n m = tmpTransform;\n }\n var ox = this.originX;\n var oy = this.originY;\n if (ox || oy) {\n originTransform[4] = ox;\n originTransform[5] = oy;\n matrix.mul(tmpTransform, m, originTransform);\n tmpTransform[4] -= ox;\n tmpTransform[5] -= oy;\n m = tmpTransform;\n }\n this.setLocalTransform(m);\n };\n Transformable.prototype.getGlobalScale = function (out) {\n var m = this.transform;\n out = out || [];\n if (!m) {\n out[0] = 1;\n out[1] = 1;\n return out;\n }\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n if (m[0] < 0) {\n out[0] = -out[0];\n }\n if (m[3] < 0) {\n out[1] = -out[1];\n }\n return out;\n };\n Transformable.prototype.transformCoordToLocal = function (x, y) {\n var v2 = [x, y];\n var invTransform = this.invTransform;\n if (invTransform) {\n vector.applyTransform(v2, v2, invTransform);\n }\n return v2;\n };\n Transformable.prototype.transformCoordToGlobal = function (x, y) {\n var v2 = [x, y];\n var transform = this.transform;\n if (transform) {\n vector.applyTransform(v2, v2, transform);\n }\n return v2;\n };\n Transformable.prototype.getLineScale = function () {\n var m = this.transform;\n return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\n ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\n : 1;\n };\n Transformable.getLocalTransform = function (target, m) {\n m = m || [];\n mIdentity(m);\n var ox = target.originX || 0;\n var oy = target.originY || 0;\n var sx = target.scaleX;\n var sy = target.scaleY;\n var rotation = target.rotation || 0;\n var x = target.x;\n var y = target.y;\n m[4] -= ox;\n m[5] -= oy;\n m[0] *= sx;\n m[1] *= sy;\n m[2] *= sx;\n m[3] *= sy;\n m[4] *= sx;\n m[5] *= sy;\n if (rotation) {\n matrix.rotate(m, m, rotation);\n }\n m[4] += ox;\n m[5] += oy;\n m[4] += x;\n m[5] += y;\n return m;\n };\n Transformable.initDefaultProps = (function () {\n var proto = Transformable.prototype;\n proto.x = 0;\n proto.y = 0;\n proto.scaleX = 1;\n proto.scaleY = 1;\n proto.originX = 0;\n proto.originY = 0;\n proto.rotation = 0;\n proto.globalScaleRatio = 1;\n })();\n return Transformable;\n}());\n;\nexport default Transformable;\n","var easing = {\n linear: function (k) {\n return k;\n },\n quadraticIn: function (k) {\n return k * k;\n },\n quadraticOut: function (k) {\n return k * (2 - k);\n },\n quadraticInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k;\n }\n return -0.5 * (--k * (k - 2) - 1);\n },\n cubicIn: function (k) {\n return k * k * k;\n },\n cubicOut: function (k) {\n return --k * k * k + 1;\n },\n cubicInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k;\n }\n return 0.5 * ((k -= 2) * k * k + 2);\n },\n quarticIn: function (k) {\n return k * k * k * k;\n },\n quarticOut: function (k) {\n return 1 - (--k * k * k * k);\n },\n quarticInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k * k;\n }\n return -0.5 * ((k -= 2) * k * k * k - 2);\n },\n quinticIn: function (k) {\n return k * k * k * k * k;\n },\n quinticOut: function (k) {\n return --k * k * k * k * k + 1;\n },\n quinticInOut: function (k) {\n if ((k *= 2) < 1) {\n return 0.5 * k * k * k * k * k;\n }\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\n },\n sinusoidalIn: function (k) {\n return 1 - Math.cos(k * Math.PI / 2);\n },\n sinusoidalOut: function (k) {\n return Math.sin(k * Math.PI / 2);\n },\n sinusoidalInOut: function (k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n },\n exponentialIn: function (k) {\n return k === 0 ? 0 : Math.pow(1024, k - 1);\n },\n exponentialOut: function (k) {\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n },\n exponentialInOut: function (k) {\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if ((k *= 2) < 1) {\n return 0.5 * Math.pow(1024, k - 1);\n }\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n },\n circularIn: function (k) {\n return 1 - Math.sqrt(1 - k * k);\n },\n circularOut: function (k) {\n return Math.sqrt(1 - (--k * k));\n },\n circularInOut: function (k) {\n if ((k *= 2) < 1) {\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\n }\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n },\n elasticIn: function (k) {\n var s;\n var a = 0.1;\n var p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / (2 * Math.PI);\n }\n return -(a * Math.pow(2, 10 * (k -= 1))\n * Math.sin((k - s) * (2 * Math.PI) / p));\n },\n elasticOut: function (k) {\n var s;\n var a = 0.1;\n var p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / (2 * Math.PI);\n }\n return (a * Math.pow(2, -10 * k)\n * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\n },\n elasticInOut: function (k) {\n var s;\n var a = 0.1;\n var p = 0.4;\n if (k === 0) {\n return 0;\n }\n if (k === 1) {\n return 1;\n }\n if (!a || a < 1) {\n a = 1;\n s = p / 4;\n }\n else {\n s = p * Math.asin(1 / a) / (2 * Math.PI);\n }\n if ((k *= 2) < 1) {\n return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\n * Math.sin((k - s) * (2 * Math.PI) / p));\n }\n return a * Math.pow(2, -10 * (k -= 1))\n * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n },\n backIn: function (k) {\n var s = 1.70158;\n return k * k * ((s + 1) * k - s);\n },\n backOut: function (k) {\n var s = 1.70158;\n return --k * k * ((s + 1) * k + s) + 1;\n },\n backInOut: function (k) {\n var s = 1.70158 * 1.525;\n if ((k *= 2) < 1) {\n return 0.5 * (k * k * ((s + 1) * k - s));\n }\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n },\n bounceIn: function (k) {\n return 1 - easing.bounceOut(1 - k);\n },\n bounceOut: function (k) {\n if (k < (1 / 2.75)) {\n return 7.5625 * k * k;\n }\n else if (k < (2 / 2.75)) {\n return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n }\n else if (k < (2.5 / 2.75)) {\n return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n }\n else {\n return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n }\n },\n bounceInOut: function (k) {\n if (k < 0.5) {\n return easing.bounceIn(k * 2) * 0.5;\n }\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n }\n};\nexport default easing;\n","import easingFuncs from './easing';\nvar Clip = (function () {\n function Clip(opts) {\n this._initialized = false;\n this._startTime = 0;\n this._pausedTime = 0;\n this._paused = false;\n this._life = opts.life || 1000;\n this._delay = opts.delay || 0;\n this.loop = opts.loop == null ? false : opts.loop;\n this.gap = opts.gap || 0;\n this.easing = opts.easing || 'linear';\n this.onframe = opts.onframe;\n this.ondestroy = opts.ondestroy;\n this.onrestart = opts.onrestart;\n }\n Clip.prototype.step = function (globalTime, deltaTime) {\n if (!this._initialized) {\n this._startTime = globalTime + this._delay;\n this._initialized = true;\n }\n if (this._paused) {\n this._pausedTime += deltaTime;\n return;\n }\n var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\n if (percent < 0) {\n percent = 0;\n }\n percent = Math.min(percent, 1);\n var easing = this.easing;\n var easingFunc = typeof easing === 'string'\n ? easingFuncs[easing] : easing;\n var schedule = typeof easingFunc === 'function'\n ? easingFunc(percent)\n : percent;\n this.onframe && this.onframe(schedule);\n if (percent === 1) {\n if (this.loop) {\n this._restart(globalTime);\n this.onrestart && this.onrestart();\n }\n else {\n return true;\n }\n }\n return false;\n };\n Clip.prototype._restart = function (globalTime) {\n var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\n this._startTime = globalTime - remainder + this.gap;\n this._pausedTime = 0;\n };\n Clip.prototype.pause = function () {\n this._paused = true;\n };\n Clip.prototype.resume = function () {\n this._paused = false;\n };\n return Clip;\n}());\nexport default Clip;\n","var Entry = (function () {\n function Entry(val) {\n this.value = val;\n }\n return Entry;\n}());\nexport { Entry };\nvar LinkedList = (function () {\n function LinkedList() {\n this._len = 0;\n }\n LinkedList.prototype.insert = function (val) {\n var entry = new Entry(val);\n this.insertEntry(entry);\n return entry;\n };\n LinkedList.prototype.insertEntry = function (entry) {\n if (!this.head) {\n this.head = this.tail = entry;\n }\n else {\n this.tail.next = entry;\n entry.prev = this.tail;\n entry.next = null;\n this.tail = entry;\n }\n this._len++;\n };\n LinkedList.prototype.remove = function (entry) {\n var prev = entry.prev;\n var next = entry.next;\n if (prev) {\n prev.next = next;\n }\n else {\n this.head = next;\n }\n if (next) {\n next.prev = prev;\n }\n else {\n this.tail = prev;\n }\n entry.next = entry.prev = null;\n this._len--;\n };\n LinkedList.prototype.len = function () {\n return this._len;\n };\n LinkedList.prototype.clear = function () {\n this.head = this.tail = null;\n this._len = 0;\n };\n return LinkedList;\n}());\nexport { LinkedList };\nvar LRU = (function () {\n function LRU(maxSize) {\n this._list = new LinkedList();\n this._maxSize = 10;\n this._map = {};\n this._maxSize = maxSize;\n }\n LRU.prototype.put = function (key, value) {\n var list = this._list;\n var map = this._map;\n var removed = null;\n if (map[key] == null) {\n var len = list.len();\n var entry = this._lastRemovedEntry;\n if (len >= this._maxSize && len > 0) {\n var leastUsedEntry = list.head;\n list.remove(leastUsedEntry);\n delete map[leastUsedEntry.key];\n removed = leastUsedEntry.value;\n this._lastRemovedEntry = leastUsedEntry;\n }\n if (entry) {\n entry.value = value;\n }\n else {\n entry = new Entry(value);\n }\n entry.key = key;\n list.insertEntry(entry);\n map[key] = entry;\n }\n return removed;\n };\n LRU.prototype.get = function (key) {\n var entry = this._map[key];\n var list = this._list;\n if (entry != null) {\n if (entry !== list.tail) {\n list.remove(entry);\n list.insertEntry(entry);\n }\n return entry.value;\n }\n };\n LRU.prototype.clear = function () {\n this._list.clear();\n this._map = {};\n };\n LRU.prototype.len = function () {\n return this._list.len();\n };\n return LRU;\n}());\nexport default LRU;\n","import LRU from '../core/LRU';\nvar kCSSColorTable = {\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n i = Math.round(i);\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n i = Math.round(i);\n return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n var str = val;\n if (str.length && str.charAt(str.length - 1) === '%') {\n return clampCssByte(parseFloat(str) / 100 * 255);\n }\n return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n var str = val;\n if (str.length && str.charAt(str.length - 1) === '%') {\n return clampCssFloat(parseFloat(str) / 100);\n }\n return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n if (h < 0) {\n h += 1;\n }\n else if (h > 1) {\n h -= 1;\n }\n if (h * 6 < 1) {\n return m1 + (m2 - m1) * h * 6;\n }\n if (h * 2 < 1) {\n return m2;\n }\n if (h * 3 < 2) {\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n }\n return m1;\n}\nfunction lerpNumber(a, b, p) {\n return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n out[0] = r;\n out[1] = g;\n out[2] = b;\n out[3] = a;\n return out;\n}\nfunction copyRgba(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n if (lastRemovedArr) {\n copyRgba(lastRemovedArr, rgbaArr);\n }\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n if (!colorStr) {\n return;\n }\n rgbaArr = rgbaArr || [];\n var cached = colorCache.get(colorStr);\n if (cached) {\n return copyRgba(rgbaArr, cached);\n }\n colorStr = colorStr + '';\n var str = colorStr.replace(/ /g, '').toLowerCase();\n if (str in kCSSColorTable) {\n copyRgba(rgbaArr, kCSSColorTable[str]);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n var strLen = str.length;\n if (str.charAt(0) === '#') {\n if (strLen === 4 || strLen === 5) {\n var iv = parseInt(str.slice(1, 4), 16);\n if (!(iv >= 0 && iv <= 0xfff)) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n else if (strLen === 7 || strLen === 9) {\n var iv = parseInt(str.slice(1, 7), 16);\n if (!(iv >= 0 && iv <= 0xffffff)) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n }\n return;\n }\n var op = str.indexOf('(');\n var ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === strLen) {\n var fname = str.substr(0, op);\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\n var alpha = 1;\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) {\n return params.length === 3\n ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n : setRgba(rgbaArr, 0, 0, 0, 1);\n }\n alpha = parseCssFloat(params.pop());\n case 'rgb':\n if (params.length !== 3) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n case 'hsla':\n if (params.length !== 4) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n params[3] = parseCssFloat(params[3]);\n hsla2rgba(params, rgbaArr);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n case 'hsl':\n if (params.length !== 3) {\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n }\n hsla2rgba(params, rgbaArr);\n putToCache(colorStr, rgbaArr);\n return rgbaArr;\n default:\n return;\n }\n }\n setRgba(rgbaArr, 0, 0, 0, 1);\n return;\n}\nfunction hsla2rgba(hsla, rgba) {\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n var s = parseCssFloat(hsla[1]);\n var l = parseCssFloat(hsla[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n rgba = rgba || [];\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\n if (hsla.length === 4) {\n rgba[3] = hsla[3];\n }\n return rgba;\n}\nfunction rgba2hsla(rgba) {\n if (!rgba) {\n return;\n }\n var R = rgba[0] / 255;\n var G = rgba[1] / 255;\n var B = rgba[2] / 255;\n var vMin = Math.min(R, G, B);\n var vMax = Math.max(R, G, B);\n var delta = vMax - vMin;\n var L = (vMax + vMin) / 2;\n var H;\n var S;\n if (delta === 0) {\n H = 0;\n S = 0;\n }\n else {\n if (L < 0.5) {\n S = delta / (vMax + vMin);\n }\n else {\n S = delta / (2 - vMax - vMin);\n }\n var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n if (R === vMax) {\n H = deltaB - deltaG;\n }\n else if (G === vMax) {\n H = (1 / 3) + deltaR - deltaB;\n }\n else if (B === vMax) {\n H = (2 / 3) + deltaG - deltaR;\n }\n if (H < 0) {\n H += 1;\n }\n if (H > 1) {\n H -= 1;\n }\n }\n var hsla = [H * 360, S, L];\n if (rgba[3] != null) {\n hsla.push(rgba[3]);\n }\n return hsla;\n}\nexport function lift(color, level) {\n var colorArr = parse(color);\n if (colorArr) {\n for (var i = 0; i < 3; i++) {\n if (level < 0) {\n colorArr[i] = colorArr[i] * (1 - level) | 0;\n }\n else {\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n }\n if (colorArr[i] > 255) {\n colorArr[i] = 255;\n }\n else if (colorArr[i] < 0) {\n colorArr[i] = 0;\n }\n }\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n }\n}\nexport function toHex(color) {\n var colorArr = parse(color);\n if (colorArr) {\n return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n if (!(colors && colors.length)\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n return;\n }\n out = out || [];\n var value = normalizedValue * (colors.length - 1);\n var leftIndex = Math.floor(value);\n var rightIndex = Math.ceil(value);\n var leftColor = colors[leftIndex];\n var rightColor = colors[rightIndex];\n var dv = value - leftIndex;\n out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n if (!(colors && colors.length)\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n return;\n }\n var value = normalizedValue * (colors.length - 1);\n var leftIndex = Math.floor(value);\n var rightIndex = Math.ceil(value);\n var leftColor = parse(colors[leftIndex]);\n var rightColor = parse(colors[rightIndex]);\n var dv = value - leftIndex;\n var color = stringify([\n clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n ], 'rgba');\n return fullOutput\n ? {\n color: color,\n leftIndex: leftIndex,\n rightIndex: rightIndex,\n value: value\n }\n : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n var colorArr = parse(color);\n if (color) {\n colorArr = rgba2hsla(colorArr);\n h != null && (colorArr[0] = clampCssAngle(h));\n s != null && (colorArr[1] = parseCssFloat(s));\n l != null && (colorArr[2] = parseCssFloat(l));\n return stringify(hsla2rgba(colorArr), 'rgba');\n }\n}\nexport function modifyAlpha(color, alpha) {\n var colorArr = parse(color);\n if (colorArr && alpha != null) {\n colorArr[3] = clampCssFloat(alpha);\n return stringify(colorArr, 'rgba');\n }\n}\nexport function stringify(arrColor, type) {\n if (!arrColor || !arrColor.length) {\n return;\n }\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n colorStr += ',' + arrColor[3];\n }\n return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n var arr = parse(color);\n return arr\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n + (1 - arr[3]) * backgroundLum\n : 0;\n}\nexport function random() {\n var r = Math.round(Math.random() * 255);\n var g = Math.round(Math.random() * 255);\n var b = Math.round(Math.random() * 255);\n return 'rgb(' + r + ',' + g + ',' + b + ')';\n}\n","import Clip from './Clip';\nimport * as color from '../tool/color';\nimport { isArrayLike, keys, logError } from '../core/util';\nvar arraySlice = Array.prototype.slice;\nexport function interpolateNumber(p0, p1, percent) {\n return (p1 - p0) * percent + p0;\n}\nexport function step(p0, p1, percent) {\n return percent > 0.5 ? p1 : p0;\n}\nexport function interpolate1DArray(out, p0, p1, percent) {\n var len = p0.length;\n for (var i = 0; i < len; i++) {\n out[i] = interpolateNumber(p0[i], p1[i], percent);\n }\n}\nexport function interpolate2DArray(out, p0, p1, percent) {\n var len = p0.length;\n var len2 = len && p0[0].length;\n for (var i = 0; i < len; i++) {\n if (!out[i]) {\n out[i] = [];\n }\n for (var j = 0; j < len2; j++) {\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n }\n }\n}\nfunction add1DArray(out, p0, p1, sign) {\n var len = p0.length;\n for (var i = 0; i < len; i++) {\n out[i] = p0[i] + p1[i] * sign;\n }\n return out;\n}\nfunction add2DArray(out, p0, p1, sign) {\n var len = p0.length;\n var len2 = len && p0[0].length;\n for (var i = 0; i < len; i++) {\n if (!out[i]) {\n out[i] = [];\n }\n for (var j = 0; j < len2; j++) {\n out[i][j] = p0[i][j] + p1[i][j] * sign;\n }\n }\n return out;\n}\nfunction fillArray(val0, val1, arrDim) {\n var arr0 = val0;\n var arr1 = val1;\n if (!arr0.push || !arr1.push) {\n return;\n }\n var arr0Len = arr0.length;\n var arr1Len = arr1.length;\n if (arr0Len !== arr1Len) {\n var isPreviousLarger = arr0Len > arr1Len;\n if (isPreviousLarger) {\n arr0.length = arr1Len;\n }\n else {\n for (var i = arr0Len; i < arr1Len; i++) {\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n }\n }\n }\n var len2 = arr0[0] && arr0[0].length;\n for (var i = 0; i < arr0.length; i++) {\n if (arrDim === 1) {\n if (isNaN(arr0[i])) {\n arr0[i] = arr1[i];\n }\n }\n else {\n for (var j = 0; j < len2; j++) {\n if (isNaN(arr0[i][j])) {\n arr0[i][j] = arr1[i][j];\n }\n }\n }\n }\n}\nfunction is1DArraySame(arr0, arr1) {\n var len = arr0.length;\n if (len !== arr1.length) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n if (arr0[i] !== arr1[i]) {\n return false;\n }\n }\n return true;\n}\nfunction is2DArraySame(arr0, arr1) {\n var len = arr0.length;\n if (len !== arr1.length) {\n return false;\n }\n var len2 = arr0[0].length;\n for (var i = 0; i < len; i++) {\n for (var j = 0; j < len2; j++) {\n if (arr0[i][j] !== arr1[i][j]) {\n return false;\n }\n }\n }\n return true;\n}\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n return (2 * (p1 - p2) + v0 + v1) * t3\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n + v0 * t + p1;\n}\nfunction catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\n var len = p0.length;\n for (var i = 0; i < len; i++) {\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n }\n}\nfunction catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\n var len = p0.length;\n var len2 = p0[0].length;\n for (var i = 0; i < len; i++) {\n if (!out[i]) {\n out[1] = [];\n }\n for (var j = 0; j < len2; j++) {\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n }\n }\n}\nexport function cloneValue(value) {\n if (isArrayLike(value)) {\n var len = value.length;\n if (isArrayLike(value[0])) {\n var ret = [];\n for (var i = 0; i < len; i++) {\n ret.push(arraySlice.call(value[i]));\n }\n return ret;\n }\n return arraySlice.call(value);\n }\n return value;\n}\nfunction rgba2String(rgba) {\n rgba[0] = Math.floor(rgba[0]);\n rgba[1] = Math.floor(rgba[1]);\n rgba[2] = Math.floor(rgba[2]);\n return 'rgba(' + rgba.join(',') + ')';\n}\nfunction guessArrayDim(value) {\n return isArrayLike(value && value[0]) ? 2 : 1;\n}\nvar tmpRgba = [0, 0, 0, 0];\nvar Track = (function () {\n function Track(propName) {\n this.keyframes = [];\n this.maxTime = 0;\n this.arrDim = 0;\n this.interpolable = true;\n this._needsSort = false;\n this._isAllValueEqual = true;\n this._lastFrame = 0;\n this._lastFramePercent = 0;\n this.propName = propName;\n }\n Track.prototype.isFinished = function () {\n return this._finished;\n };\n Track.prototype.setFinished = function () {\n this._finished = true;\n if (this._additiveTrack) {\n this._additiveTrack.setFinished();\n }\n };\n Track.prototype.needsAnimate = function () {\n return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\n };\n Track.prototype.getAdditiveTrack = function () {\n return this._additiveTrack;\n };\n Track.prototype.addKeyframe = function (time, value) {\n if (time >= this.maxTime) {\n this.maxTime = time;\n }\n else {\n this._needsSort = true;\n }\n var keyframes = this.keyframes;\n var len = keyframes.length;\n if (this.interpolable) {\n if (isArrayLike(value)) {\n var arrayDim = guessArrayDim(value);\n if (len > 0 && this.arrDim !== arrayDim) {\n this.interpolable = false;\n return;\n }\n if (arrayDim === 1 && typeof value[0] !== 'number'\n || arrayDim === 2 && typeof value[0][0] !== 'number') {\n this.interpolable = false;\n return;\n }\n if (len > 0) {\n var lastFrame = keyframes[len - 1];\n if (this._isAllValueEqual) {\n if (arrayDim === 1) {\n if (!is1DArraySame(value, lastFrame.value)) {\n this._isAllValueEqual = false;\n }\n }\n else {\n this._isAllValueEqual = false;\n }\n }\n }\n this.arrDim = arrayDim;\n }\n else {\n if (this.arrDim > 0) {\n this.interpolable = false;\n return;\n }\n if (typeof value === 'string') {\n var colorArray = color.parse(value);\n if (colorArray) {\n value = colorArray;\n this.isValueColor = true;\n }\n else {\n this.interpolable = false;\n }\n }\n else if (typeof value !== 'number') {\n this.interpolable = false;\n return;\n }\n if (this._isAllValueEqual && len > 0) {\n var lastFrame = keyframes[len - 1];\n if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\n this._isAllValueEqual = false;\n }\n else if (lastFrame.value !== value) {\n this._isAllValueEqual = false;\n }\n }\n }\n }\n var kf = {\n time: time,\n value: value,\n percent: 0\n };\n this.keyframes.push(kf);\n return kf;\n };\n Track.prototype.prepare = function (additiveTrack) {\n var kfs = this.keyframes;\n if (this._needsSort) {\n kfs.sort(function (a, b) {\n return a.time - b.time;\n });\n }\n var arrDim = this.arrDim;\n var kfsLen = kfs.length;\n var lastKf = kfs[kfsLen - 1];\n for (var i = 0; i < kfsLen; i++) {\n kfs[i].percent = kfs[i].time / this.maxTime;\n if (arrDim > 0 && i !== kfsLen - 1) {\n fillArray(kfs[i].value, lastKf.value, arrDim);\n }\n }\n if (additiveTrack\n && this.needsAnimate()\n && additiveTrack.needsAnimate()\n && arrDim === additiveTrack.arrDim\n && this.isValueColor === additiveTrack.isValueColor\n && !additiveTrack._finished) {\n this._additiveTrack = additiveTrack;\n var startValue = kfs[0].value;\n for (var i = 0; i < kfsLen; i++) {\n if (arrDim === 0) {\n if (this.isValueColor) {\n kfs[i].additiveValue\n = add1DArray([], kfs[i].value, startValue, -1);\n }\n else {\n kfs[i].additiveValue = kfs[i].value - startValue;\n }\n }\n else if (arrDim === 1) {\n kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\n }\n else if (arrDim === 2) {\n kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\n }\n }\n }\n };\n Track.prototype.step = function (target, percent) {\n if (this._finished) {\n return;\n }\n if (this._additiveTrack && this._additiveTrack._finished) {\n this._additiveTrack = null;\n }\n var isAdditive = this._additiveTrack != null;\n var valueKey = isAdditive ? 'additiveValue' : 'value';\n var keyframes = this.keyframes;\n var kfsNum = this.keyframes.length;\n var propName = this.propName;\n var arrDim = this.arrDim;\n var isValueColor = this.isValueColor;\n var frameIdx;\n if (percent < 0) {\n frameIdx = 0;\n }\n else if (percent < this._lastFramePercent) {\n var start = Math.min(this._lastFrame + 1, kfsNum - 1);\n for (frameIdx = start; frameIdx >= 0; frameIdx--) {\n if (keyframes[frameIdx].percent <= percent) {\n break;\n }\n }\n frameIdx = Math.min(frameIdx, kfsNum - 2);\n }\n else {\n for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\n if (keyframes[frameIdx].percent > percent) {\n break;\n }\n }\n frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\n }\n var nextFrame = keyframes[frameIdx + 1];\n var frame = keyframes[frameIdx];\n if (!(frame && nextFrame)) {\n return;\n }\n this._lastFrame = frameIdx;\n this._lastFramePercent = percent;\n var range = (nextFrame.percent - frame.percent);\n if (range === 0) {\n return;\n }\n var w = (percent - frame.percent) / range;\n var targetArr = isAdditive ? this._additiveValue\n : (isValueColor ? tmpRgba : target[propName]);\n if ((arrDim > 0 || isValueColor) && !targetArr) {\n targetArr = this._additiveValue = [];\n }\n if (this.useSpline) {\n var p1 = keyframes[frameIdx][valueKey];\n var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\n var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\n var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\n if (arrDim > 0) {\n arrDim === 1\n ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\n : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n }\n else if (isValueColor) {\n catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n if (!isAdditive) {\n target[propName] = rgba2String(targetArr);\n }\n }\n else {\n var value = void 0;\n if (!this.interpolable) {\n value = p2;\n }\n else {\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n }\n if (isAdditive) {\n this._additiveValue = value;\n }\n else {\n target[propName] = value;\n }\n }\n }\n else {\n if (arrDim > 0) {\n arrDim === 1\n ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\n : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n }\n else if (isValueColor) {\n interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n if (!isAdditive) {\n target[propName] = rgba2String(targetArr);\n }\n }\n else {\n var value = void 0;\n if (!this.interpolable) {\n value = step(frame[valueKey], nextFrame[valueKey], w);\n }\n else {\n value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\n }\n if (isAdditive) {\n this._additiveValue = value;\n }\n else {\n target[propName] = value;\n }\n }\n }\n if (isAdditive) {\n this._addToTarget(target);\n }\n };\n Track.prototype._addToTarget = function (target) {\n var arrDim = this.arrDim;\n var propName = this.propName;\n var additiveValue = this._additiveValue;\n if (arrDim === 0) {\n if (this.isValueColor) {\n color.parse(target[propName], tmpRgba);\n add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\n target[propName] = rgba2String(tmpRgba);\n }\n else {\n target[propName] = target[propName] + additiveValue;\n }\n }\n else if (arrDim === 1) {\n add1DArray(target[propName], target[propName], additiveValue, 1);\n }\n else if (arrDim === 2) {\n add2DArray(target[propName], target[propName], additiveValue, 1);\n }\n };\n return Track;\n}());\nvar Animator = (function () {\n function Animator(target, loop, additiveTo) {\n this._tracks = {};\n this._trackKeys = [];\n this._delay = 0;\n this._maxTime = 0;\n this._paused = false;\n this._started = 0;\n this._clip = null;\n this._target = target;\n this._loop = loop;\n if (loop && additiveTo) {\n logError('Can\\' use additive animation on looped animation.');\n return;\n }\n this._additiveAnimators = additiveTo;\n }\n Animator.prototype.getTarget = function () {\n return this._target;\n };\n Animator.prototype.changeTarget = function (target) {\n this._target = target;\n };\n Animator.prototype.when = function (time, props) {\n return this.whenWithKeys(time, props, keys(props));\n };\n Animator.prototype.whenWithKeys = function (time, props, propNames) {\n var tracks = this._tracks;\n for (var i = 0; i < propNames.length; i++) {\n var propName = propNames[i];\n var track = tracks[propName];\n if (!track) {\n track = tracks[propName] = new Track(propName);\n var initialValue = void 0;\n var additiveTrack = this._getAdditiveTrack(propName);\n if (additiveTrack) {\n var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\n initialValue = lastFinalKf && lastFinalKf.value;\n if (additiveTrack.isValueColor && initialValue) {\n initialValue = rgba2String(initialValue);\n }\n }\n else {\n initialValue = this._target[propName];\n }\n if (initialValue == null) {\n continue;\n }\n if (time !== 0) {\n track.addKeyframe(0, cloneValue(initialValue));\n }\n this._trackKeys.push(propName);\n }\n track.addKeyframe(time, cloneValue(props[propName]));\n }\n this._maxTime = Math.max(this._maxTime, time);\n return this;\n };\n Animator.prototype.pause = function () {\n this._clip.pause();\n this._paused = true;\n };\n Animator.prototype.resume = function () {\n this._clip.resume();\n this._paused = false;\n };\n Animator.prototype.isPaused = function () {\n return !!this._paused;\n };\n Animator.prototype._doneCallback = function () {\n this._setTracksFinished();\n this._clip = null;\n var doneList = this._doneList;\n if (doneList) {\n var len = doneList.length;\n for (var i = 0; i < len; i++) {\n doneList[i].call(this);\n }\n }\n };\n Animator.prototype._abortedCallback = function () {\n this._setTracksFinished();\n var animation = this.animation;\n var abortedList = this._abortedList;\n if (animation) {\n animation.removeClip(this._clip);\n }\n this._clip = null;\n if (abortedList) {\n for (var i = 0; i < abortedList.length; i++) {\n abortedList[i].call(this);\n }\n }\n };\n Animator.prototype._setTracksFinished = function () {\n var tracks = this._tracks;\n var tracksKeys = this._trackKeys;\n for (var i = 0; i < tracksKeys.length; i++) {\n tracks[tracksKeys[i]].setFinished();\n }\n };\n Animator.prototype._getAdditiveTrack = function (trackName) {\n var additiveTrack;\n var additiveAnimators = this._additiveAnimators;\n if (additiveAnimators) {\n for (var i = 0; i < additiveAnimators.length; i++) {\n var track = additiveAnimators[i].getTrack(trackName);\n if (track) {\n additiveTrack = track;\n }\n }\n }\n return additiveTrack;\n };\n Animator.prototype.start = function (easing, forceAnimate) {\n if (this._started > 0) {\n return;\n }\n this._started = 1;\n var self = this;\n var tracks = [];\n for (var i = 0; i < this._trackKeys.length; i++) {\n var propName = this._trackKeys[i];\n var track = this._tracks[propName];\n var additiveTrack = this._getAdditiveTrack(propName);\n var kfs = track.keyframes;\n track.prepare(additiveTrack);\n if (track.needsAnimate()) {\n tracks.push(track);\n }\n else if (!track.interpolable) {\n var lastKf = kfs[kfs.length - 1];\n if (lastKf) {\n self._target[track.propName] = lastKf.value;\n }\n }\n }\n if (tracks.length || forceAnimate) {\n var clip = new Clip({\n life: this._maxTime,\n loop: this._loop,\n delay: this._delay,\n onframe: function (percent) {\n self._started = 2;\n var additiveAnimators = self._additiveAnimators;\n if (additiveAnimators) {\n var stillHasAdditiveAnimator = false;\n for (var i = 0; i < additiveAnimators.length; i++) {\n if (additiveAnimators[i]._clip) {\n stillHasAdditiveAnimator = true;\n break;\n }\n }\n if (!stillHasAdditiveAnimator) {\n self._additiveAnimators = null;\n }\n }\n for (var i = 0; i < tracks.length; i++) {\n tracks[i].step(self._target, percent);\n }\n var onframeList = self._onframeList;\n if (onframeList) {\n for (var i = 0; i < onframeList.length; i++) {\n onframeList[i](self._target, percent);\n }\n }\n },\n ondestroy: function () {\n self._doneCallback();\n }\n });\n this._clip = clip;\n if (this.animation) {\n this.animation.addClip(clip);\n }\n if (easing && easing !== 'spline') {\n clip.easing = easing;\n }\n }\n else {\n this._doneCallback();\n }\n return this;\n };\n Animator.prototype.stop = function (forwardToLast) {\n if (!this._clip) {\n return;\n }\n var clip = this._clip;\n if (forwardToLast) {\n clip.onframe(1);\n }\n this._abortedCallback();\n };\n Animator.prototype.delay = function (time) {\n this._delay = time;\n return this;\n };\n Animator.prototype.during = function (cb) {\n if (cb) {\n if (!this._onframeList) {\n this._onframeList = [];\n }\n this._onframeList.push(cb);\n }\n return this;\n };\n Animator.prototype.done = function (cb) {\n if (cb) {\n if (!this._doneList) {\n this._doneList = [];\n }\n this._doneList.push(cb);\n }\n return this;\n };\n Animator.prototype.aborted = function (cb) {\n if (cb) {\n if (!this._abortedList) {\n this._abortedList = [];\n }\n this._abortedList.push(cb);\n }\n return this;\n };\n Animator.prototype.getClip = function () {\n return this._clip;\n };\n Animator.prototype.getTrack = function (propName) {\n return this._tracks[propName];\n };\n Animator.prototype.stopTracks = function (propNames, forwardToLast) {\n if (!propNames.length || !this._clip) {\n return true;\n }\n var tracks = this._tracks;\n var tracksKeys = this._trackKeys;\n for (var i = 0; i < propNames.length; i++) {\n var track = tracks[propNames[i]];\n if (track) {\n if (forwardToLast) {\n track.step(this._target, 1);\n }\n else if (this._started === 1) {\n track.step(this._target, 0);\n }\n track.setFinished();\n }\n }\n var allAborted = true;\n for (var i = 0; i < tracksKeys.length; i++) {\n if (!tracks[tracksKeys[i]].isFinished()) {\n allAborted = false;\n break;\n }\n }\n if (allAborted) {\n this._abortedCallback();\n }\n return allAborted;\n };\n Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\n if (!target) {\n return;\n }\n trackKeys = trackKeys || this._trackKeys;\n for (var i = 0; i < trackKeys.length; i++) {\n var propName = trackKeys[i];\n var track = this._tracks[propName];\n if (!track || track.isFinished()) {\n continue;\n }\n var kfs = track.keyframes;\n var lastKf = kfs[kfs.length - 1];\n if (lastKf) {\n var val = cloneValue(lastKf.value);\n if (track.isValueColor) {\n val = rgba2String(val);\n }\n target[propName] = val;\n }\n }\n };\n Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\n trackKeys = trackKeys || keys(finalProps);\n for (var i = 0; i < trackKeys.length; i++) {\n var propName = trackKeys[i];\n var track = this._tracks[propName];\n if (!track) {\n continue;\n }\n var kfs = track.keyframes;\n if (kfs.length > 1) {\n var lastKf = kfs.pop();\n track.addKeyframe(lastKf.time, finalProps[propName]);\n track.prepare(track.getAdditiveTrack());\n }\n }\n };\n return Animator;\n}());\nexport default Animator;\n","var Point = (function () {\n function Point(x, y) {\n this.x = x || 0;\n this.y = y || 0;\n }\n Point.prototype.copy = function (other) {\n this.x = other.x;\n this.y = other.y;\n return this;\n };\n Point.prototype.clone = function () {\n return new Point(this.x, this.y);\n };\n Point.prototype.set = function (x, y) {\n this.x = x;\n this.y = y;\n return this;\n };\n Point.prototype.equal = function (other) {\n return other.x === this.x && other.y === this.y;\n };\n Point.prototype.add = function (other) {\n this.x += other.x;\n this.y += other.y;\n return this;\n };\n Point.prototype.scale = function (scalar) {\n this.x *= scalar;\n this.y *= scalar;\n };\n Point.prototype.scaleAndAdd = function (other, scalar) {\n this.x += other.x * scalar;\n this.y += other.y * scalar;\n };\n Point.prototype.sub = function (other) {\n this.x -= other.x;\n this.y -= other.y;\n return this;\n };\n Point.prototype.dot = function (other) {\n return this.x * other.x + this.y * other.y;\n };\n Point.prototype.len = function () {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n };\n Point.prototype.lenSquare = function () {\n return this.x * this.x + this.y * this.y;\n };\n Point.prototype.normalize = function () {\n var len = this.len();\n this.x /= len;\n this.y /= len;\n return this;\n };\n Point.prototype.distance = function (other) {\n var dx = this.x - other.x;\n var dy = this.y - other.y;\n return Math.sqrt(dx * dx + dy * dy);\n };\n Point.prototype.distanceSquare = function (other) {\n var dx = this.x - other.x;\n var dy = this.y - other.y;\n return dx * dx + dy * dy;\n };\n Point.prototype.negate = function () {\n this.x = -this.x;\n this.y = -this.y;\n return this;\n };\n Point.prototype.transform = function (m) {\n if (!m) {\n return;\n }\n var x = this.x;\n var y = this.y;\n this.x = m[0] * x + m[2] * y + m[4];\n this.y = m[1] * x + m[3] * y + m[5];\n return this;\n };\n Point.prototype.toArray = function (out) {\n out[0] = this.x;\n out[1] = this.y;\n return out;\n };\n Point.prototype.fromArray = function (input) {\n this.x = input[0];\n this.y = input[1];\n };\n Point.set = function (p, x, y) {\n p.x = x;\n p.y = y;\n };\n Point.copy = function (p, p2) {\n p.x = p2.x;\n p.y = p2.y;\n };\n Point.len = function (p) {\n return Math.sqrt(p.x * p.x + p.y * p.y);\n };\n Point.lenSquare = function (p) {\n return p.x * p.x + p.y * p.y;\n };\n Point.dot = function (p0, p1) {\n return p0.x * p1.x + p0.y * p1.y;\n };\n Point.add = function (out, p0, p1) {\n out.x = p0.x + p1.x;\n out.y = p0.y + p1.y;\n };\n Point.sub = function (out, p0, p1) {\n out.x = p0.x - p1.x;\n out.y = p0.y - p1.y;\n };\n Point.scale = function (out, p0, scalar) {\n out.x = p0.x * scalar;\n out.y = p0.y * scalar;\n };\n Point.scaleAndAdd = function (out, p0, p1, scalar) {\n out.x = p0.x + p1.x * scalar;\n out.y = p0.y + p1.y * scalar;\n };\n Point.lerp = function (out, p0, p1, t) {\n var onet = 1 - t;\n out.x = onet * p0.x + t * p1.x;\n out.y = onet * p0.y + t * p1.y;\n };\n return Point;\n}());\nexport default Point;\n","import * as matrix from './matrix';\nimport Point from './Point';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar lt = new Point();\nvar rb = new Point();\nvar lb = new Point();\nvar rt = new Point();\nvar minTv = new Point();\nvar maxTv = new Point();\nvar BoundingRect = (function () {\n function BoundingRect(x, y, width, height) {\n if (width < 0 && isFinite(width)) {\n x = x + width;\n width = -width;\n }\n if (height < 0 && isFinite(height)) {\n y = y + height;\n height = -height;\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n BoundingRect.prototype.union = function (other) {\n var x = mathMin(other.x, this.x);\n var y = mathMin(other.y, this.y);\n if (isFinite(this.x) && isFinite(this.width)) {\n this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n }\n else {\n this.width = other.width;\n }\n if (isFinite(this.y) && isFinite(this.height)) {\n this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n }\n else {\n this.height = other.height;\n }\n this.x = x;\n this.y = y;\n };\n BoundingRect.prototype.applyTransform = function (m) {\n BoundingRect.applyTransform(this, this, m);\n };\n BoundingRect.prototype.calculateTransform = function (b) {\n var a = this;\n var sx = b.width / a.width;\n var sy = b.height / a.height;\n var m = matrix.create();\n matrix.translate(m, m, [-a.x, -a.y]);\n matrix.scale(m, m, [sx, sy]);\n matrix.translate(m, m, [b.x, b.y]);\n return m;\n };\n BoundingRect.prototype.intersect = function (b, mtv) {\n if (!b) {\n return false;\n }\n if (!(b instanceof BoundingRect)) {\n b = BoundingRect.create(b);\n }\n var a = this;\n var ax0 = a.x;\n var ax1 = a.x + a.width;\n var ay0 = a.y;\n var ay1 = a.y + a.height;\n var bx0 = b.x;\n var bx1 = b.x + b.width;\n var by0 = b.y;\n var by1 = b.y + b.height;\n var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n if (mtv) {\n var dMin = Infinity;\n var dMax = 0;\n var d0 = Math.abs(ax1 - bx0);\n var d1 = Math.abs(bx1 - ax0);\n var d2 = Math.abs(ay1 - by0);\n var d3 = Math.abs(by1 - ay0);\n var dx = Math.min(d0, d1);\n var dy = Math.min(d2, d3);\n if (ax1 < bx0 || bx1 < ax0) {\n if (dx > dMax) {\n dMax = dx;\n if (d0 < d1) {\n Point.set(maxTv, -d0, 0);\n }\n else {\n Point.set(maxTv, d1, 0);\n }\n }\n }\n else {\n if (dx < dMin) {\n dMin = dx;\n if (d0 < d1) {\n Point.set(minTv, d0, 0);\n }\n else {\n Point.set(minTv, -d1, 0);\n }\n }\n }\n if (ay1 < by0 || by1 < ay0) {\n if (dy > dMax) {\n dMax = dy;\n if (d2 < d3) {\n Point.set(maxTv, 0, -d2);\n }\n else {\n Point.set(maxTv, 0, d3);\n }\n }\n }\n else {\n if (dx < dMin) {\n dMin = dx;\n if (d2 < d3) {\n Point.set(minTv, 0, d2);\n }\n else {\n Point.set(minTv, 0, -d3);\n }\n }\n }\n }\n if (mtv) {\n Point.copy(mtv, overlap ? minTv : maxTv);\n }\n return overlap;\n };\n BoundingRect.prototype.contain = function (x, y) {\n var rect = this;\n return x >= rect.x\n && x <= (rect.x + rect.width)\n && y >= rect.y\n && y <= (rect.y + rect.height);\n };\n BoundingRect.prototype.clone = function () {\n return new BoundingRect(this.x, this.y, this.width, this.height);\n };\n BoundingRect.prototype.copy = function (other) {\n BoundingRect.copy(this, other);\n };\n BoundingRect.prototype.plain = function () {\n return {\n x: this.x,\n y: this.y,\n width: this.width,\n height: this.height\n };\n };\n BoundingRect.prototype.isFinite = function () {\n return isFinite(this.x)\n && isFinite(this.y)\n && isFinite(this.width)\n && isFinite(this.height);\n };\n BoundingRect.prototype.isZero = function () {\n return this.width === 0 || this.height === 0;\n };\n BoundingRect.create = function (rect) {\n return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n };\n BoundingRect.copy = function (target, source) {\n target.x = source.x;\n target.y = source.y;\n target.width = source.width;\n target.height = source.height;\n };\n BoundingRect.applyTransform = function (target, source, m) {\n if (!m) {\n if (target !== source) {\n BoundingRect.copy(target, source);\n }\n return;\n }\n if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\n var sx = m[0];\n var sy = m[3];\n var tx = m[4];\n var ty = m[5];\n target.x = source.x * sx + tx;\n target.y = source.y * sy + ty;\n target.width = source.width * sx;\n target.height = source.height * sy;\n if (target.width < 0) {\n target.x += target.width;\n target.width = -target.width;\n }\n if (target.height < 0) {\n target.y += target.height;\n target.height = -target.height;\n }\n return;\n }\n lt.x = lb.x = source.x;\n lt.y = rt.y = source.y;\n rb.x = rt.x = source.x + source.width;\n rb.y = lb.y = source.y + source.height;\n lt.transform(m);\n rt.transform(m);\n rb.transform(m);\n lb.transform(m);\n target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\n target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\n var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\n var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\n target.width = maxX - target.x;\n target.height = maxY - target.y;\n };\n return BoundingRect;\n}());\nexport default BoundingRect;\n","import BoundingRect from '../core/BoundingRect';\nimport { createCanvas } from '../core/util';\nimport LRU from '../core/LRU';\nvar textWidthCache = {};\nexport var DEFAULT_FONT = '12px sans-serif';\nvar _ctx;\nvar _cachedFont;\nfunction defaultMeasureText(text, font) {\n if (!_ctx) {\n _ctx = createCanvas().getContext('2d');\n }\n if (_cachedFont !== font) {\n _cachedFont = _ctx.font = font || DEFAULT_FONT;\n }\n return _ctx.measureText(text);\n}\nvar methods = {\n measureText: defaultMeasureText\n};\nexport function $override(name, fn) {\n methods[name] = fn;\n}\nexport function getWidth(text, font) {\n font = font || DEFAULT_FONT;\n var cacheOfFont = textWidthCache[font];\n if (!cacheOfFont) {\n cacheOfFont = textWidthCache[font] = new LRU(500);\n }\n var width = cacheOfFont.get(text);\n if (width == null) {\n width = methods.measureText(text, font).width;\n cacheOfFont.put(text, width);\n }\n return width;\n}\nexport function innerGetBoundingRect(text, font, textAlign, textBaseline) {\n var width = getWidth(text, font);\n var height = getLineHeight(font);\n var x = adjustTextX(0, width, textAlign);\n var y = adjustTextY(0, height, textBaseline);\n var rect = new BoundingRect(x, y, width, height);\n return rect;\n}\nexport function getBoundingRect(text, font, textAlign, textBaseline) {\n var textLines = ((text || '') + '').split('\\n');\n var len = textLines.length;\n if (len === 1) {\n return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\n }\n else {\n var uniondRect = new BoundingRect(0, 0, 0, 0);\n for (var i = 0; i < textLines.length; i++) {\n var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\n i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\n }\n return uniondRect;\n }\n}\nexport function adjustTextX(x, width, textAlign) {\n if (textAlign === 'right') {\n x -= width;\n }\n else if (textAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nexport function adjustTextY(y, height, verticalAlign) {\n if (verticalAlign === 'middle') {\n y -= height / 2;\n }\n else if (verticalAlign === 'bottom') {\n y -= height;\n }\n return y;\n}\nexport function getLineHeight(font) {\n return getWidth('国', font);\n}\nexport function measureText(text, font) {\n return methods.measureText(text, font);\n}\nexport function parsePercent(value, maxValue) {\n if (typeof value === 'string') {\n if (value.lastIndexOf('%') >= 0) {\n return parseFloat(value) / 100 * maxValue;\n }\n return parseFloat(value);\n }\n return value;\n}\nexport function calculateTextPosition(out, opts, rect) {\n var textPosition = opts.position || 'inside';\n var distance = opts.distance != null ? opts.distance : 5;\n var height = rect.height;\n var width = rect.width;\n var halfHeight = height / 2;\n var x = rect.x;\n var y = rect.y;\n var textAlign = 'left';\n var textVerticalAlign = 'top';\n if (textPosition instanceof Array) {\n x += parsePercent(textPosition[0], rect.width);\n y += parsePercent(textPosition[1], rect.height);\n textAlign = null;\n textVerticalAlign = null;\n }\n else {\n switch (textPosition) {\n case 'left':\n x -= distance;\n y += halfHeight;\n textAlign = 'right';\n textVerticalAlign = 'middle';\n break;\n case 'right':\n x += distance + width;\n y += halfHeight;\n textVerticalAlign = 'middle';\n break;\n case 'top':\n x += width / 2;\n y -= distance;\n textAlign = 'center';\n textVerticalAlign = 'bottom';\n break;\n case 'bottom':\n x += width / 2;\n y += height + distance;\n textAlign = 'center';\n break;\n case 'inside':\n x += width / 2;\n y += halfHeight;\n textAlign = 'center';\n textVerticalAlign = 'middle';\n break;\n case 'insideLeft':\n x += distance;\n y += halfHeight;\n textVerticalAlign = 'middle';\n break;\n case 'insideRight':\n x += width - distance;\n y += halfHeight;\n textAlign = 'right';\n textVerticalAlign = 'middle';\n break;\n case 'insideTop':\n x += width / 2;\n y += distance;\n textAlign = 'center';\n break;\n case 'insideBottom':\n x += width / 2;\n y += height - distance;\n textAlign = 'center';\n textVerticalAlign = 'bottom';\n break;\n case 'insideTopLeft':\n x += distance;\n y += distance;\n break;\n case 'insideTopRight':\n x += width - distance;\n y += distance;\n textAlign = 'right';\n break;\n case 'insideBottomLeft':\n x += distance;\n y += height - distance;\n textVerticalAlign = 'bottom';\n break;\n case 'insideBottomRight':\n x += width - distance;\n y += height - distance;\n textAlign = 'right';\n textVerticalAlign = 'bottom';\n break;\n }\n }\n out = out || {};\n out.x = x;\n out.y = y;\n out.align = textAlign;\n out.verticalAlign = textVerticalAlign;\n return out;\n}\n","var dpr = 1;\nif (typeof window !== 'undefined') {\n dpr = Math.max(window.devicePixelRatio\n || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI)\n || 1, 1);\n}\nexport var debugMode = 0;\nexport var devicePixelRatio = dpr;\nexport var DARK_MODE_THRESHOLD = 0.4;\nexport var DARK_LABEL_COLOR = '#333';\nexport var LIGHT_LABEL_COLOR = '#ccc';\nexport var LIGHTER_LABEL_COLOR = '#eee';\n","import Transformable from './core/Transformable';\nimport Animator, { cloneValue } from './animation/Animator';\nimport BoundingRect from './core/BoundingRect';\nimport Eventful from './core/Eventful';\nimport { calculateTextPosition, parsePercent } from './contain/text';\nimport { guid, isObject, keys, extend, indexOf, logError, mixin, isArrayLike, isTypedArray } from './core/util';\nimport { LIGHT_LABEL_COLOR, DARK_LABEL_COLOR } from './config';\nimport { parse, stringify } from './tool/color';\nimport env from './core/env';\nexport var PRESERVED_NORMAL_STATE = '__zr_normal__';\nvar PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\nvar DEFAULT_ANIMATABLE_MAP = {\n x: true,\n y: true,\n scaleX: true,\n scaleY: true,\n originX: true,\n originY: true,\n rotation: true,\n ignore: false\n};\nvar tmpTextPosCalcRes = {};\nvar tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\nvar Element = (function () {\n function Element(props) {\n this.id = guid();\n this.animators = [];\n this.currentStates = [];\n this.states = {};\n this._init(props);\n }\n Element.prototype._init = function (props) {\n this.attr(props);\n };\n Element.prototype.drift = function (dx, dy, e) {\n switch (this.draggable) {\n case 'horizontal':\n dy = 0;\n break;\n case 'vertical':\n dx = 0;\n break;\n }\n var m = this.transform;\n if (!m) {\n m = this.transform = [1, 0, 0, 1, 0, 0];\n }\n m[4] += dx;\n m[5] += dy;\n this.decomposeTransform();\n this.markRedraw();\n };\n Element.prototype.beforeUpdate = function () { };\n Element.prototype.afterUpdate = function () { };\n Element.prototype.update = function () {\n this.updateTransform();\n if (this.__dirty) {\n this.updateInnerText();\n }\n };\n Element.prototype.updateInnerText = function (forceUpdate) {\n var textEl = this._textContent;\n if (textEl && (!textEl.ignore || forceUpdate)) {\n if (!this.textConfig) {\n this.textConfig = {};\n }\n var textConfig = this.textConfig;\n var isLocal = textConfig.local;\n var attachedTransform = textEl.attachedTransform;\n var textAlign = void 0;\n var textVerticalAlign = void 0;\n var textStyleChanged = false;\n if (isLocal) {\n attachedTransform.parent = this;\n }\n else {\n attachedTransform.parent = null;\n }\n var innerOrigin = false;\n attachedTransform.x = textEl.x;\n attachedTransform.y = textEl.y;\n attachedTransform.originX = textEl.originX;\n attachedTransform.originY = textEl.originY;\n attachedTransform.rotation = textEl.rotation;\n attachedTransform.scaleX = textEl.scaleX;\n attachedTransform.scaleY = textEl.scaleY;\n if (textConfig.position != null) {\n var layoutRect = tmpBoundingRect;\n if (textConfig.layoutRect) {\n layoutRect.copy(textConfig.layoutRect);\n }\n else {\n layoutRect.copy(this.getBoundingRect());\n }\n if (!isLocal) {\n layoutRect.applyTransform(this.transform);\n }\n if (this.calculateTextPosition) {\n this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n }\n else {\n calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n }\n attachedTransform.x = tmpTextPosCalcRes.x;\n attachedTransform.y = tmpTextPosCalcRes.y;\n textAlign = tmpTextPosCalcRes.align;\n textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\n var textOrigin = textConfig.origin;\n if (textOrigin && textConfig.rotation != null) {\n var relOriginX = void 0;\n var relOriginY = void 0;\n if (textOrigin === 'center') {\n relOriginX = layoutRect.width * 0.5;\n relOriginY = layoutRect.height * 0.5;\n }\n else {\n relOriginX = parsePercent(textOrigin[0], layoutRect.width);\n relOriginY = parsePercent(textOrigin[1], layoutRect.height);\n }\n innerOrigin = true;\n attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\n attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\n }\n }\n if (textConfig.rotation != null) {\n attachedTransform.rotation = textConfig.rotation;\n }\n var textOffset = textConfig.offset;\n if (textOffset) {\n attachedTransform.x += textOffset[0];\n attachedTransform.y += textOffset[1];\n if (!innerOrigin) {\n attachedTransform.originX = -textOffset[0];\n attachedTransform.originY = -textOffset[1];\n }\n }\n var isInside = textConfig.inside == null\n ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\n : textConfig.inside;\n var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\n var textFill = void 0;\n var textStroke = void 0;\n var autoStroke = void 0;\n if (isInside && this.canBeInsideText()) {\n textFill = textConfig.insideFill;\n textStroke = textConfig.insideStroke;\n if (textFill == null || textFill === 'auto') {\n textFill = this.getInsideTextFill();\n }\n if (textStroke == null || textStroke === 'auto') {\n textStroke = this.getInsideTextStroke(textFill);\n autoStroke = true;\n }\n }\n else {\n textFill = textConfig.outsideFill;\n textStroke = textConfig.outsideStroke;\n if (textFill == null || textFill === 'auto') {\n textFill = this.getOutsideFill();\n }\n if (textStroke == null || textStroke === 'auto') {\n textStroke = this.getOutsideStroke(textFill);\n autoStroke = true;\n }\n }\n textFill = textFill || '#000';\n if (textFill !== innerTextDefaultStyle.fill\n || textStroke !== innerTextDefaultStyle.stroke\n || autoStroke !== innerTextDefaultStyle.autoStroke\n || textAlign !== innerTextDefaultStyle.align\n || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\n textStyleChanged = true;\n innerTextDefaultStyle.fill = textFill;\n innerTextDefaultStyle.stroke = textStroke;\n innerTextDefaultStyle.autoStroke = autoStroke;\n innerTextDefaultStyle.align = textAlign;\n innerTextDefaultStyle.verticalAlign = textVerticalAlign;\n textEl.setDefaultTextStyle(innerTextDefaultStyle);\n }\n if (textStyleChanged) {\n textEl.dirtyStyle();\n }\n textEl.markRedraw();\n }\n };\n Element.prototype.canBeInsideText = function () {\n return true;\n };\n Element.prototype.getInsideTextFill = function () {\n return '#fff';\n };\n Element.prototype.getInsideTextStroke = function (textFill) {\n return '#000';\n };\n Element.prototype.getOutsideFill = function () {\n return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\n };\n Element.prototype.getOutsideStroke = function (textFill) {\n var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\n var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\n if (!colorArr) {\n colorArr = [255, 255, 255, 1];\n }\n var alpha = colorArr[3];\n var isDark = this.__zr.isDarkMode();\n for (var i = 0; i < 3; i++) {\n colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\n }\n colorArr[3] = 1;\n return stringify(colorArr, 'rgba');\n };\n Element.prototype.traverse = function (cb, context) { };\n Element.prototype.attrKV = function (key, value) {\n if (key === 'textConfig') {\n this.setTextConfig(value);\n }\n else if (key === 'textContent') {\n this.setTextContent(value);\n }\n else if (key === 'clipPath') {\n this.setClipPath(value);\n }\n else if (key === 'extra') {\n this.extra = this.extra || {};\n extend(this.extra, value);\n }\n else {\n this[key] = value;\n }\n };\n Element.prototype.hide = function () {\n this.ignore = true;\n this.markRedraw();\n };\n Element.prototype.show = function () {\n this.ignore = false;\n this.markRedraw();\n };\n Element.prototype.attr = function (keyOrObj, value) {\n if (typeof keyOrObj === 'string') {\n this.attrKV(keyOrObj, value);\n }\n else if (isObject(keyOrObj)) {\n var obj = keyOrObj;\n var keysArr = keys(obj);\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n this.attrKV(key, keyOrObj[key]);\n }\n }\n this.markRedraw();\n return this;\n };\n Element.prototype.saveCurrentToNormalState = function (toState) {\n this._innerSaveToNormal(toState);\n var normalState = this._normalState;\n for (var i = 0; i < this.animators.length; i++) {\n var animator = this.animators[i];\n var fromStateTransition = animator.__fromStateTransition;\n if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\n continue;\n }\n var targetName = animator.targetName;\n var target = targetName\n ? normalState[targetName] : normalState;\n animator.saveFinalToTarget(target);\n }\n };\n Element.prototype._innerSaveToNormal = function (toState) {\n var normalState = this._normalState;\n if (!normalState) {\n normalState = this._normalState = {};\n }\n if (toState.textConfig && !normalState.textConfig) {\n normalState.textConfig = this.textConfig;\n }\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n };\n Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\n for (var i = 0; i < primaryKeys.length; i++) {\n var key = primaryKeys[i];\n if (toState[key] != null && !(key in normalState)) {\n normalState[key] = this[key];\n }\n }\n };\n Element.prototype.hasState = function () {\n return this.currentStates.length > 0;\n };\n Element.prototype.getState = function (name) {\n return this.states[name];\n };\n Element.prototype.ensureState = function (name) {\n var states = this.states;\n if (!states[name]) {\n states[name] = {};\n }\n return states[name];\n };\n Element.prototype.clearStates = function (noAnimation) {\n this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\n };\n Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\n var toNormalState = stateName === PRESERVED_NORMAL_STATE;\n var hasStates = this.hasState();\n if (!hasStates && toNormalState) {\n return;\n }\n var currentStates = this.currentStates;\n var animationCfg = this.stateTransition;\n if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\n return;\n }\n var state;\n if (this.stateProxy && !toNormalState) {\n state = this.stateProxy(stateName);\n }\n if (!state) {\n state = (this.states && this.states[stateName]);\n }\n if (!state && !toNormalState) {\n logError(\"State \" + stateName + \" not exists.\");\n return;\n }\n if (!toNormalState) {\n this.saveCurrentToNormalState(state);\n }\n var useHoverLayer = !!(state && state.hoverLayer);\n if (useHoverLayer) {\n this._toggleHoverLayerFlag(true);\n }\n this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n if (this._textContent) {\n this._textContent.useState(stateName, keepCurrentStates);\n }\n if (this._textGuide) {\n this._textGuide.useState(stateName, keepCurrentStates);\n }\n if (toNormalState) {\n this.currentStates = [];\n this._normalState = {};\n }\n else {\n if (!keepCurrentStates) {\n this.currentStates = [stateName];\n }\n else {\n this.currentStates.push(stateName);\n }\n }\n this._updateAnimationTargets();\n this.markRedraw();\n if (!useHoverLayer && this.__inHover) {\n this._toggleHoverLayerFlag(false);\n this.__dirty &= ~Element.REDARAW_BIT;\n }\n return state;\n };\n Element.prototype.useStates = function (states, noAnimation) {\n if (!states.length) {\n this.clearStates();\n }\n else {\n var stateObjects = [];\n var currentStates = this.currentStates;\n var len = states.length;\n var notChange = len === currentStates.length;\n if (notChange) {\n for (var i = 0; i < len; i++) {\n if (states[i] !== currentStates[i]) {\n notChange = false;\n break;\n }\n }\n }\n if (notChange) {\n return;\n }\n for (var i = 0; i < len; i++) {\n var stateName = states[i];\n var stateObj = void 0;\n if (this.stateProxy) {\n stateObj = this.stateProxy(stateName, states);\n }\n if (!stateObj) {\n stateObj = this.states[stateName];\n }\n if (stateObj) {\n stateObjects.push(stateObj);\n }\n }\n var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\n if (useHoverLayer) {\n this._toggleHoverLayerFlag(true);\n }\n var mergedState = this._mergeStates(stateObjects);\n var animationCfg = this.stateTransition;\n this.saveCurrentToNormalState(mergedState);\n this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n if (this._textContent) {\n this._textContent.useStates(states);\n }\n if (this._textGuide) {\n this._textGuide.useStates(states);\n }\n this._updateAnimationTargets();\n this.currentStates = states.slice();\n this.markRedraw();\n if (!useHoverLayer && this.__inHover) {\n this._toggleHoverLayerFlag(false);\n this.__dirty &= ~Element.REDARAW_BIT;\n }\n }\n };\n Element.prototype._updateAnimationTargets = function () {\n for (var i = 0; i < this.animators.length; i++) {\n var animator = this.animators[i];\n if (animator.targetName) {\n animator.changeTarget(this[animator.targetName]);\n }\n }\n };\n Element.prototype.removeState = function (state) {\n var idx = indexOf(this.currentStates, state);\n if (idx >= 0) {\n var currentStates = this.currentStates.slice();\n currentStates.splice(idx, 1);\n this.useStates(currentStates);\n }\n };\n Element.prototype.replaceState = function (oldState, newState, forceAdd) {\n var currentStates = this.currentStates.slice();\n var idx = indexOf(currentStates, oldState);\n var newStateExists = indexOf(currentStates, newState) >= 0;\n if (idx >= 0) {\n if (!newStateExists) {\n currentStates[idx] = newState;\n }\n else {\n currentStates.splice(idx, 1);\n }\n }\n else if (forceAdd && !newStateExists) {\n currentStates.push(newState);\n }\n this.useStates(currentStates);\n };\n Element.prototype.toggleState = function (state, enable) {\n if (enable) {\n this.useState(state, true);\n }\n else {\n this.removeState(state);\n }\n };\n Element.prototype._mergeStates = function (states) {\n var mergedState = {};\n var mergedTextConfig;\n for (var i = 0; i < states.length; i++) {\n var state = states[i];\n extend(mergedState, state);\n if (state.textConfig) {\n mergedTextConfig = mergedTextConfig || {};\n extend(mergedTextConfig, state.textConfig);\n }\n }\n if (mergedTextConfig) {\n mergedState.textConfig = mergedTextConfig;\n }\n return mergedState;\n };\n Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n var needsRestoreToNormal = !(state && keepCurrentStates);\n if (state && state.textConfig) {\n this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\n extend(this.textConfig, state.textConfig);\n }\n else if (needsRestoreToNormal) {\n if (normalState.textConfig) {\n this.textConfig = normalState.textConfig;\n }\n }\n var transitionTarget = {};\n var hasTransition = false;\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n var key = PRIMARY_STATES_KEYS[i];\n var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\n if (state && state[key] != null) {\n if (propNeedsTransition) {\n hasTransition = true;\n transitionTarget[key] = state[key];\n }\n else {\n this[key] = state[key];\n }\n }\n else if (needsRestoreToNormal) {\n if (normalState[key] != null) {\n if (propNeedsTransition) {\n hasTransition = true;\n transitionTarget[key] = normalState[key];\n }\n else {\n this[key] = normalState[key];\n }\n }\n }\n }\n if (!transition) {\n for (var i = 0; i < this.animators.length; i++) {\n var animator = this.animators[i];\n var targetName = animator.targetName;\n animator.__changeFinalValue(targetName\n ? (state || normalState)[targetName]\n : (state || normalState));\n }\n }\n if (hasTransition) {\n this._transitionState(stateName, transitionTarget, animationCfg);\n }\n };\n Element.prototype._attachComponent = function (componentEl) {\n if (componentEl.__zr && !componentEl.__hostTarget) {\n throw new Error('Text element has been added to zrender.');\n }\n if (componentEl === this) {\n throw new Error('Recursive component attachment.');\n }\n var zr = this.__zr;\n if (zr) {\n componentEl.addSelfToZr(zr);\n }\n componentEl.__zr = zr;\n componentEl.__hostTarget = this;\n };\n Element.prototype._detachComponent = function (componentEl) {\n if (componentEl.__zr) {\n componentEl.removeSelfFromZr(componentEl.__zr);\n }\n componentEl.__zr = null;\n componentEl.__hostTarget = null;\n };\n Element.prototype.getClipPath = function () {\n return this._clipPath;\n };\n Element.prototype.setClipPath = function (clipPath) {\n if (this._clipPath && this._clipPath !== clipPath) {\n this.removeClipPath();\n }\n this._attachComponent(clipPath);\n this._clipPath = clipPath;\n this.markRedraw();\n };\n Element.prototype.removeClipPath = function () {\n var clipPath = this._clipPath;\n if (clipPath) {\n this._detachComponent(clipPath);\n this._clipPath = null;\n this.markRedraw();\n }\n };\n Element.prototype.getTextContent = function () {\n return this._textContent;\n };\n Element.prototype.setTextContent = function (textEl) {\n var previousTextContent = this._textContent;\n if (previousTextContent === textEl) {\n return;\n }\n if (previousTextContent && previousTextContent !== textEl) {\n this.removeTextContent();\n }\n if (textEl.__zr && !textEl.__hostTarget) {\n throw new Error('Text element has been added to zrender.');\n }\n textEl.attachedTransform = new Transformable();\n this._attachComponent(textEl);\n this._textContent = textEl;\n this.markRedraw();\n };\n Element.prototype.setTextConfig = function (cfg) {\n if (!this.textConfig) {\n this.textConfig = {};\n }\n extend(this.textConfig, cfg);\n this.markRedraw();\n };\n Element.prototype.removeTextContent = function () {\n var textEl = this._textContent;\n if (textEl) {\n textEl.attachedTransform = null;\n this._detachComponent(textEl);\n this._textContent = null;\n this._innerTextDefaultStyle = null;\n this.markRedraw();\n }\n };\n Element.prototype.getTextGuideLine = function () {\n return this._textGuide;\n };\n Element.prototype.setTextGuideLine = function (guideLine) {\n if (this._textGuide && this._textGuide !== guideLine) {\n this.removeTextGuideLine();\n }\n this._attachComponent(guideLine);\n this._textGuide = guideLine;\n this.markRedraw();\n };\n Element.prototype.removeTextGuideLine = function () {\n var textGuide = this._textGuide;\n if (textGuide) {\n this._detachComponent(textGuide);\n this._textGuide = null;\n this.markRedraw();\n }\n };\n Element.prototype.markRedraw = function () {\n this.__dirty |= Element.REDARAW_BIT;\n var zr = this.__zr;\n if (zr) {\n if (this.__inHover) {\n zr.refreshHover();\n }\n else {\n zr.refresh();\n }\n }\n if (this.__hostTarget) {\n this.__hostTarget.markRedraw();\n }\n };\n Element.prototype.dirty = function () {\n this.markRedraw();\n };\n Element.prototype._toggleHoverLayerFlag = function (inHover) {\n this.__inHover = inHover;\n var textContent = this._textContent;\n var textGuide = this._textGuide;\n if (textContent) {\n textContent.__inHover = inHover;\n }\n if (textGuide) {\n textGuide.__inHover = inHover;\n }\n };\n Element.prototype.addSelfToZr = function (zr) {\n this.__zr = zr;\n var animators = this.animators;\n if (animators) {\n for (var i = 0; i < animators.length; i++) {\n zr.animation.addAnimator(animators[i]);\n }\n }\n if (this._clipPath) {\n this._clipPath.addSelfToZr(zr);\n }\n if (this._textContent) {\n this._textContent.addSelfToZr(zr);\n }\n if (this._textGuide) {\n this._textGuide.addSelfToZr(zr);\n }\n };\n Element.prototype.removeSelfFromZr = function (zr) {\n this.__zr = null;\n var animators = this.animators;\n if (animators) {\n for (var i = 0; i < animators.length; i++) {\n zr.animation.removeAnimator(animators[i]);\n }\n }\n if (this._clipPath) {\n this._clipPath.removeSelfFromZr(zr);\n }\n if (this._textContent) {\n this._textContent.removeSelfFromZr(zr);\n }\n if (this._textGuide) {\n this._textGuide.removeSelfFromZr(zr);\n }\n };\n Element.prototype.animate = function (key, loop) {\n var target = key ? this[key] : this;\n if (!target) {\n logError('Property \"'\n + key\n + '\" is not existed in element '\n + this.id);\n return;\n }\n var animator = new Animator(target, loop);\n this.addAnimator(animator, key);\n return animator;\n };\n Element.prototype.addAnimator = function (animator, key) {\n var zr = this.__zr;\n var el = this;\n animator.during(function () {\n el.updateDuringAnimation(key);\n }).done(function () {\n var animators = el.animators;\n var idx = indexOf(animators, animator);\n if (idx >= 0) {\n animators.splice(idx, 1);\n }\n });\n this.animators.push(animator);\n if (zr) {\n zr.animation.addAnimator(animator);\n }\n zr && zr.wakeUp();\n };\n Element.prototype.updateDuringAnimation = function (key) {\n this.markRedraw();\n };\n Element.prototype.stopAnimation = function (scope, forwardToLast) {\n var animators = this.animators;\n var len = animators.length;\n var leftAnimators = [];\n for (var i = 0; i < len; i++) {\n var animator = animators[i];\n if (!scope || scope === animator.scope) {\n animator.stop(forwardToLast);\n }\n else {\n leftAnimators.push(animator);\n }\n }\n this.animators = leftAnimators;\n return this;\n };\n Element.prototype.animateTo = function (target, cfg, animationProps) {\n animateTo(this, target, cfg, animationProps);\n };\n Element.prototype.animateFrom = function (target, cfg, animationProps) {\n animateTo(this, target, cfg, animationProps, true);\n };\n Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\n var animators = animateTo(this, target, cfg, animationProps);\n for (var i = 0; i < animators.length; i++) {\n animators[i].__fromStateTransition = stateName;\n }\n };\n Element.prototype.getBoundingRect = function () {\n return null;\n };\n Element.prototype.getPaintRect = function () {\n return null;\n };\n Element.REDARAW_BIT = 1;\n Element.initDefaultProps = (function () {\n var elProto = Element.prototype;\n elProto.type = 'element';\n elProto.name = '';\n elProto.ignore = false;\n elProto.silent = false;\n elProto.isGroup = false;\n elProto.draggable = false;\n elProto.dragging = false;\n elProto.ignoreClip = false;\n elProto.__inHover = false;\n elProto.__dirty = Element.REDARAW_BIT;\n var logs = {};\n function logDeprecatedError(key, xKey, yKey) {\n if (!logs[key + xKey + yKey]) {\n console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\n logs[key + xKey + yKey] = true;\n }\n }\n function createLegacyProperty(key, privateKey, xKey, yKey) {\n Object.defineProperty(elProto, key, {\n get: function () {\n logDeprecatedError(key, xKey, yKey);\n if (!this[privateKey]) {\n var pos = this[privateKey] = [];\n enhanceArray(this, pos);\n }\n return this[privateKey];\n },\n set: function (pos) {\n logDeprecatedError(key, xKey, yKey);\n this[xKey] = pos[0];\n this[yKey] = pos[1];\n this[privateKey] = pos;\n enhanceArray(this, pos);\n }\n });\n function enhanceArray(self, pos) {\n Object.defineProperty(pos, 0, {\n get: function () {\n return self[xKey];\n },\n set: function (val) {\n self[xKey] = val;\n }\n });\n Object.defineProperty(pos, 1, {\n get: function () {\n return self[yKey];\n },\n set: function (val) {\n self[yKey] = val;\n }\n });\n }\n }\n if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\n createLegacyProperty('position', '_legacyPos', 'x', 'y');\n createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\n createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\n }\n })();\n return Element;\n}());\nmixin(Element, Eventful);\nmixin(Element, Transformable);\nfunction animateTo(animatable, target, cfg, animationProps, reverse) {\n cfg = cfg || {};\n var animators = [];\n animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\n var finishCount = animators.length;\n var doneHappened = false;\n var cfgDone = cfg.done;\n var cfgAborted = cfg.aborted;\n var doneCb = function () {\n doneHappened = true;\n finishCount--;\n if (finishCount <= 0) {\n doneHappened\n ? (cfgDone && cfgDone())\n : (cfgAborted && cfgAborted());\n }\n };\n var abortedCb = function () {\n finishCount--;\n if (finishCount <= 0) {\n doneHappened\n ? (cfgDone && cfgDone())\n : (cfgAborted && cfgAborted());\n }\n };\n if (!finishCount) {\n cfgDone && cfgDone();\n }\n if (animators.length > 0 && cfg.during) {\n animators[0].during(function (target, percent) {\n cfg.during(percent);\n });\n }\n for (var i = 0; i < animators.length; i++) {\n var animator = animators[i];\n if (doneCb) {\n animator.done(doneCb);\n }\n if (abortedCb) {\n animator.aborted(abortedCb);\n }\n animator.start(cfg.easing, cfg.force);\n }\n return animators;\n}\nfunction copyArrShallow(source, target, len) {\n for (var i = 0; i < len; i++) {\n source[i] = target[i];\n }\n}\nfunction is2DArray(value) {\n return isArrayLike(value[0]);\n}\nfunction copyValue(target, source, key) {\n if (isArrayLike(source[key])) {\n if (!isArrayLike(target[key])) {\n target[key] = [];\n }\n if (isTypedArray(source[key])) {\n var len = source[key].length;\n if (target[key].length !== len) {\n target[key] = new (source[key].constructor)(len);\n copyArrShallow(target[key], source[key], len);\n }\n }\n else {\n var sourceArr = source[key];\n var targetArr = target[key];\n var len0 = sourceArr.length;\n if (is2DArray(sourceArr)) {\n var len1 = sourceArr[0].length;\n for (var i = 0; i < len0; i++) {\n if (!targetArr[i]) {\n targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\n }\n else {\n copyArrShallow(targetArr[i], sourceArr[i], len1);\n }\n }\n }\n else {\n copyArrShallow(targetArr, sourceArr, len0);\n }\n targetArr.length = sourceArr.length;\n }\n }\n else {\n target[key] = source[key];\n }\n}\nfunction animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\n var animatableKeys = [];\n var changedKeys = [];\n var targetKeys = keys(target);\n var duration = cfg.duration;\n var delay = cfg.delay;\n var additive = cfg.additive;\n var setToFinal = cfg.setToFinal;\n var animateAll = !isObject(animationProps);\n for (var k = 0; k < targetKeys.length; k++) {\n var innerKey = targetKeys[k];\n if (source[innerKey] != null\n && target[innerKey] != null\n && (animateAll || animationProps[innerKey])) {\n if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\n if (topKey) {\n if (!reverse) {\n source[innerKey] = target[innerKey];\n animatable.updateDuringAnimation(topKey);\n }\n continue;\n }\n animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\n }\n else {\n animatableKeys.push(innerKey);\n changedKeys.push(innerKey);\n }\n }\n else if (!reverse) {\n source[innerKey] = target[innerKey];\n animatable.updateDuringAnimation(topKey);\n changedKeys.push(innerKey);\n }\n }\n var keyLen = animatableKeys.length;\n if (keyLen > 0\n || (cfg.force && !animators.length)) {\n var existsAnimators = animatable.animators;\n var existsAnimatorsOnSameTarget = [];\n for (var i = 0; i < existsAnimators.length; i++) {\n if (existsAnimators[i].targetName === topKey) {\n existsAnimatorsOnSameTarget.push(existsAnimators[i]);\n }\n }\n if (!additive && existsAnimatorsOnSameTarget.length) {\n for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\n var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\n if (allAborted) {\n var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\n existsAnimators.splice(idx, 1);\n }\n }\n }\n var revertedSource = void 0;\n var reversedTarget = void 0;\n var sourceClone = void 0;\n if (reverse) {\n reversedTarget = {};\n if (setToFinal) {\n revertedSource = {};\n }\n for (var i = 0; i < keyLen; i++) {\n var innerKey = animatableKeys[i];\n reversedTarget[innerKey] = source[innerKey];\n if (setToFinal) {\n revertedSource[innerKey] = target[innerKey];\n }\n else {\n source[innerKey] = target[innerKey];\n }\n }\n }\n else if (setToFinal) {\n sourceClone = {};\n for (var i = 0; i < keyLen; i++) {\n var innerKey = animatableKeys[i];\n sourceClone[innerKey] = cloneValue(source[innerKey]);\n copyValue(source, target, innerKey);\n }\n }\n var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\n animator.targetName = topKey;\n if (cfg.scope) {\n animator.scope = cfg.scope;\n }\n if (setToFinal && revertedSource) {\n animator.whenWithKeys(0, revertedSource, animatableKeys);\n }\n if (sourceClone) {\n animator.whenWithKeys(0, sourceClone, animatableKeys);\n }\n animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\n animatable.addAnimator(animator, topKey);\n animators.push(animator);\n }\n}\nexport default Element;\n","var DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\nfunction minRunLength(n) {\n var r = 0;\n while (n >= DEFAULT_MIN_MERGE) {\n r |= n & 1;\n n >>= 1;\n }\n return n + r;\n}\nfunction makeAscendingRun(array, lo, hi, compare) {\n var runHi = lo + 1;\n if (runHi === hi) {\n return 1;\n }\n if (compare(array[runHi++], array[lo]) < 0) {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n runHi++;\n }\n reverseRun(array, lo, runHi);\n }\n else {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n runHi++;\n }\n }\n return runHi - lo;\n}\nfunction reverseRun(array, lo, hi) {\n hi--;\n while (lo < hi) {\n var t = array[lo];\n array[lo++] = array[hi];\n array[hi--] = t;\n }\n}\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n if (start === lo) {\n start++;\n }\n for (; start < hi; start++) {\n var pivot = array[start];\n var left = lo;\n var right = start;\n var mid;\n while (left < right) {\n mid = left + right >>> 1;\n if (compare(pivot, array[mid]) < 0) {\n right = mid;\n }\n else {\n left = mid + 1;\n }\n }\n var n = start - left;\n switch (n) {\n case 3:\n array[left + 3] = array[left + 2];\n case 2:\n array[left + 2] = array[left + 1];\n case 1:\n array[left + 1] = array[left];\n break;\n default:\n while (n > 0) {\n array[left + n] = array[left + n - 1];\n n--;\n }\n }\n array[left] = pivot;\n }\n}\nfunction gallopLeft(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n if (compare(value, array[start + hint]) > 0) {\n maxOffset = length - hint;\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n lastOffset += hint;\n offset += hint;\n }\n else {\n maxOffset = hint + 1;\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n }\n lastOffset++;\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n if (compare(value, array[start + m]) > 0) {\n lastOffset = m + 1;\n }\n else {\n offset = m;\n }\n }\n return offset;\n}\nfunction gallopRight(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n if (compare(value, array[start + hint]) < 0) {\n maxOffset = hint + 1;\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n }\n else {\n maxOffset = length - hint;\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n lastOffset += hint;\n offset += hint;\n }\n lastOffset++;\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n if (compare(value, array[start + m]) < 0) {\n offset = m;\n }\n else {\n lastOffset = m + 1;\n }\n }\n return offset;\n}\nfunction TimSort(array, compare) {\n var minGallop = DEFAULT_MIN_GALLOPING;\n var length = 0;\n var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n var stackLength = 0;\n var runStart;\n var runLength;\n var stackSize = 0;\n length = array.length;\n if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n tmpStorageLength = length >>> 1;\n }\n var tmp = [];\n stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n runStart = [];\n runLength = [];\n function pushRun(_runStart, _runLength) {\n runStart[stackSize] = _runStart;\n runLength[stackSize] = _runLength;\n stackSize += 1;\n }\n function mergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\n || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\n if (runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n }\n else if (runLength[n] > runLength[n + 1]) {\n break;\n }\n mergeAt(n);\n }\n }\n function forceMergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n mergeAt(n);\n }\n }\n function mergeAt(i) {\n var start1 = runStart[i];\n var length1 = runLength[i];\n var start2 = runStart[i + 1];\n var length2 = runLength[i + 1];\n runLength[i] = length1 + length2;\n if (i === stackSize - 3) {\n runStart[i + 1] = runStart[i + 2];\n runLength[i + 1] = runLength[i + 2];\n }\n stackSize--;\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n start1 += k;\n length1 -= k;\n if (length1 === 0) {\n return;\n }\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n if (length2 === 0) {\n return;\n }\n if (length1 <= length2) {\n mergeLow(start1, length1, start2, length2);\n }\n else {\n mergeHigh(start1, length1, start2, length2);\n }\n }\n function mergeLow(start1, length1, start2, length2) {\n var i = 0;\n for (i = 0; i < length1; i++) {\n tmp[i] = array[start1 + i];\n }\n var cursor1 = 0;\n var cursor2 = start2;\n var dest = start1;\n array[dest++] = array[cursor2++];\n if (--length2 === 0) {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n return;\n }\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n array[dest + length2] = tmp[cursor1];\n return;\n }\n var _minGallop = minGallop;\n var count1;\n var count2;\n var exit;\n while (1) {\n count1 = 0;\n count2 = 0;\n exit = false;\n do {\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\n array[dest++] = array[cursor2++];\n count2++;\n count1 = 0;\n if (--length2 === 0) {\n exit = true;\n break;\n }\n }\n else {\n array[dest++] = tmp[cursor1++];\n count1++;\n count2 = 0;\n if (--length1 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n if (exit) {\n break;\n }\n do {\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n if (count1 !== 0) {\n for (i = 0; i < count1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n dest += count1;\n cursor1 += count1;\n length1 -= count1;\n if (length1 <= 1) {\n exit = true;\n break;\n }\n }\n array[dest++] = array[cursor2++];\n if (--length2 === 0) {\n exit = true;\n break;\n }\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n if (count2 !== 0) {\n for (i = 0; i < count2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n dest += count2;\n cursor2 += count2;\n length2 -= count2;\n if (length2 === 0) {\n exit = true;\n break;\n }\n }\n array[dest++] = tmp[cursor1++];\n if (--length1 === 1) {\n exit = true;\n break;\n }\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n if (exit) {\n break;\n }\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n _minGallop += 2;\n }\n minGallop = _minGallop;\n minGallop < 1 && (minGallop = 1);\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n array[dest + length2] = tmp[cursor1];\n }\n else if (length1 === 0) {\n throw new Error();\n }\n else {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n }\n }\n function mergeHigh(start1, length1, start2, length2) {\n var i = 0;\n for (i = 0; i < length2; i++) {\n tmp[i] = array[start2 + i];\n }\n var cursor1 = start1 + length1 - 1;\n var cursor2 = length2 - 1;\n var dest = start2 + length2 - 1;\n var customCursor = 0;\n var customDest = 0;\n array[dest--] = array[cursor1--];\n if (--length1 === 0) {\n customCursor = dest - (length2 - 1);\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n return;\n }\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n array[dest] = tmp[cursor2];\n return;\n }\n var _minGallop = minGallop;\n while (true) {\n var count1 = 0;\n var count2 = 0;\n var exit = false;\n do {\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\n array[dest--] = array[cursor1--];\n count1++;\n count2 = 0;\n if (--length1 === 0) {\n exit = true;\n break;\n }\n }\n else {\n array[dest--] = tmp[cursor2--];\n count2++;\n count1 = 0;\n if (--length2 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n if (exit) {\n break;\n }\n do {\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n if (count1 !== 0) {\n dest -= count1;\n cursor1 -= count1;\n length1 -= count1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n for (i = count1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n if (length1 === 0) {\n exit = true;\n break;\n }\n }\n array[dest--] = tmp[cursor2--];\n if (--length2 === 1) {\n exit = true;\n break;\n }\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n if (count2 !== 0) {\n dest -= count2;\n cursor2 -= count2;\n length2 -= count2;\n customDest = dest + 1;\n customCursor = cursor2 + 1;\n for (i = 0; i < count2; i++) {\n array[customDest + i] = tmp[customCursor + i];\n }\n if (length2 <= 1) {\n exit = true;\n break;\n }\n }\n array[dest--] = array[cursor1--];\n if (--length1 === 0) {\n exit = true;\n break;\n }\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n if (exit) {\n break;\n }\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n _minGallop += 2;\n }\n minGallop = _minGallop;\n if (minGallop < 1) {\n minGallop = 1;\n }\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n array[dest] = tmp[cursor2];\n }\n else if (length2 === 0) {\n throw new Error();\n }\n else {\n customCursor = dest - (length2 - 1);\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n }\n }\n return {\n mergeRuns: mergeRuns,\n forceMergeRuns: forceMergeRuns,\n pushRun: pushRun\n };\n}\nexport default function sort(array, compare, lo, hi) {\n if (!lo) {\n lo = 0;\n }\n if (!hi) {\n hi = array.length;\n }\n var remaining = hi - lo;\n if (remaining < 2) {\n return;\n }\n var runLength = 0;\n if (remaining < DEFAULT_MIN_MERGE) {\n runLength = makeAscendingRun(array, lo, hi, compare);\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n return;\n }\n var ts = TimSort(array, compare);\n var minRun = minRunLength(remaining);\n do {\n runLength = makeAscendingRun(array, lo, hi, compare);\n if (runLength < minRun) {\n var force = remaining;\n if (force > minRun) {\n force = minRun;\n }\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n runLength = force;\n }\n ts.pushRun(lo, runLength);\n ts.mergeRuns();\n remaining -= runLength;\n lo += runLength;\n } while (remaining !== 0);\n ts.forceMergeRuns();\n}\n","import * as util from './core/util';\nimport env from './core/env';\nimport Element from './Element';\nimport timsort from './core/timsort';\nvar invalidZErrorLogged = false;\nfunction logInvalidZError() {\n if (invalidZErrorLogged) {\n return;\n }\n invalidZErrorLogged = true;\n console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\n}\nfunction shapeCompareFunc(a, b) {\n if (a.zlevel === b.zlevel) {\n if (a.z === b.z) {\n return a.z2 - b.z2;\n }\n return a.z - b.z;\n }\n return a.zlevel - b.zlevel;\n}\nvar Storage = (function () {\n function Storage() {\n this._roots = [];\n this._displayList = [];\n this._displayListLen = 0;\n this.displayableSortFunc = shapeCompareFunc;\n }\n Storage.prototype.traverse = function (cb, context) {\n for (var i = 0; i < this._roots.length; i++) {\n this._roots[i].traverse(cb, context);\n }\n };\n Storage.prototype.getDisplayList = function (update, includeIgnore) {\n includeIgnore = includeIgnore || false;\n var displayList = this._displayList;\n if (update || !displayList.length) {\n this.updateDisplayList(includeIgnore);\n }\n return displayList;\n };\n Storage.prototype.updateDisplayList = function (includeIgnore) {\n this._displayListLen = 0;\n var roots = this._roots;\n var displayList = this._displayList;\n for (var i = 0, len = roots.length; i < len; i++) {\n this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n }\n displayList.length = this._displayListLen;\n env.canvasSupported && timsort(displayList, shapeCompareFunc);\n };\n Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\n if (el.ignore && !includeIgnore) {\n return;\n }\n el.beforeUpdate();\n el.update();\n el.afterUpdate();\n var userSetClipPath = el.getClipPath();\n if (el.ignoreClip) {\n clipPaths = null;\n }\n else if (userSetClipPath) {\n if (clipPaths) {\n clipPaths = clipPaths.slice();\n }\n else {\n clipPaths = [];\n }\n var currentClipPath = userSetClipPath;\n var parentClipPath = el;\n while (currentClipPath) {\n currentClipPath.parent = parentClipPath;\n currentClipPath.updateTransform();\n clipPaths.push(currentClipPath);\n parentClipPath = currentClipPath;\n currentClipPath = currentClipPath.getClipPath();\n }\n }\n if (el.childrenRef) {\n var children = el.childrenRef();\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (el.__dirty) {\n child.__dirty |= Element.REDARAW_BIT;\n }\n this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n }\n el.__dirty = 0;\n }\n else {\n var disp = el;\n if (clipPaths && clipPaths.length) {\n disp.__clipPaths = clipPaths;\n }\n else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\n disp.__clipPaths = [];\n }\n if (isNaN(disp.z)) {\n logInvalidZError();\n disp.z = 0;\n }\n if (isNaN(disp.z2)) {\n logInvalidZError();\n disp.z2 = 0;\n }\n if (isNaN(disp.zlevel)) {\n logInvalidZError();\n disp.zlevel = 0;\n }\n this._displayList[this._displayListLen++] = disp;\n }\n var decalEl = el.getDecalElement && el.getDecalElement();\n if (decalEl) {\n this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\n }\n var textGuide = el.getTextGuideLine();\n if (textGuide) {\n this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\n }\n var textEl = el.getTextContent();\n if (textEl) {\n this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\n }\n };\n Storage.prototype.addRoot = function (el) {\n if (el.__zr && el.__zr.storage === this) {\n return;\n }\n this._roots.push(el);\n };\n Storage.prototype.delRoot = function (el) {\n if (el instanceof Array) {\n for (var i = 0, l = el.length; i < l; i++) {\n this.delRoot(el[i]);\n }\n return;\n }\n var idx = util.indexOf(this._roots, el);\n if (idx >= 0) {\n this._roots.splice(idx, 1);\n }\n };\n Storage.prototype.delAllRoots = function () {\n this._roots = [];\n this._displayList = [];\n this._displayListLen = 0;\n return;\n };\n Storage.prototype.getRoots = function () {\n return this._roots;\n };\n Storage.prototype.dispose = function () {\n this._displayList = null;\n this._roots = null;\n };\n return Storage;\n}());\nexport default Storage;\n","var requestAnimationFrame;\nrequestAnimationFrame = (typeof window !== 'undefined'\n && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\n || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\n || window.mozRequestAnimationFrame\n || window.webkitRequestAnimationFrame)) || function (func) {\n return setTimeout(func, 16);\n};\nexport default requestAnimationFrame;\n","import { __extends } from \"tslib\";\nimport Eventful from '../core/Eventful';\nimport requestAnimationFrame from './requestAnimationFrame';\nimport Animator from './Animator';\nvar Animation = (function (_super) {\n __extends(Animation, _super);\n function Animation(opts) {\n var _this = _super.call(this) || this;\n _this._running = false;\n _this._time = 0;\n _this._pausedTime = 0;\n _this._pauseStart = 0;\n _this._paused = false;\n opts = opts || {};\n _this.stage = opts.stage || {};\n _this.onframe = opts.onframe || function () { };\n return _this;\n }\n Animation.prototype.addClip = function (clip) {\n if (clip.animation) {\n this.removeClip(clip);\n }\n if (!this._clipsHead) {\n this._clipsHead = this._clipsTail = clip;\n }\n else {\n this._clipsTail.next = clip;\n clip.prev = this._clipsTail;\n clip.next = null;\n this._clipsTail = clip;\n }\n clip.animation = this;\n };\n Animation.prototype.addAnimator = function (animator) {\n animator.animation = this;\n var clip = animator.getClip();\n if (clip) {\n this.addClip(clip);\n }\n };\n Animation.prototype.removeClip = function (clip) {\n if (!clip.animation) {\n return;\n }\n var prev = clip.prev;\n var next = clip.next;\n if (prev) {\n prev.next = next;\n }\n else {\n this._clipsHead = next;\n }\n if (next) {\n next.prev = prev;\n }\n else {\n this._clipsTail = prev;\n }\n clip.next = clip.prev = clip.animation = null;\n };\n Animation.prototype.removeAnimator = function (animator) {\n var clip = animator.getClip();\n if (clip) {\n this.removeClip(clip);\n }\n animator.animation = null;\n };\n Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\n var time = new Date().getTime() - this._pausedTime;\n var delta = time - this._time;\n var clip = this._clipsHead;\n while (clip) {\n var nextClip = clip.next;\n var finished = clip.step(time, delta);\n if (finished) {\n clip.ondestroy && clip.ondestroy();\n this.removeClip(clip);\n clip = nextClip;\n }\n else {\n clip = nextClip;\n }\n }\n this._time = time;\n if (!notTriggerFrameAndStageUpdate) {\n this.onframe(delta);\n this.trigger('frame', delta);\n this.stage.update && this.stage.update();\n }\n };\n Animation.prototype._startLoop = function () {\n var self = this;\n this._running = true;\n function step() {\n if (self._running) {\n requestAnimationFrame(step);\n !self._paused && self.update();\n }\n }\n requestAnimationFrame(step);\n };\n Animation.prototype.start = function () {\n if (this._running) {\n return;\n }\n this._time = new Date().getTime();\n this._pausedTime = 0;\n this._startLoop();\n };\n Animation.prototype.stop = function () {\n this._running = false;\n };\n Animation.prototype.pause = function () {\n if (!this._paused) {\n this._pauseStart = new Date().getTime();\n this._paused = true;\n }\n };\n Animation.prototype.resume = function () {\n if (this._paused) {\n this._pausedTime += (new Date().getTime()) - this._pauseStart;\n this._paused = false;\n }\n };\n Animation.prototype.clear = function () {\n var clip = this._clipsHead;\n while (clip) {\n var nextClip = clip.next;\n clip.prev = clip.next = clip.animation = null;\n clip = nextClip;\n }\n this._clipsHead = this._clipsTail = null;\n };\n Animation.prototype.isFinished = function () {\n return this._clipsHead == null;\n };\n Animation.prototype.animate = function (target, options) {\n options = options || {};\n this.start();\n var animator = new Animator(target, options.loop);\n this.addAnimator(animator);\n return animator;\n };\n return Animation;\n}(Eventful));\nexport default Animation;\n","import { __extends } from \"tslib\";\nimport { addEventListener, removeEventListener, normalizeEvent, getNativeEvent } from '../core/event';\nimport * as zrUtil from '../core/util';\nimport Eventful from '../core/Eventful';\nimport env from '../core/env';\nvar TOUCH_CLICK_DELAY = 300;\nvar globalEventSupported = env.domSupported;\nvar localNativeListenerNames = (function () {\n var mouseHandlerNames = [\n 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n ];\n var touchHandlerNames = [\n 'touchstart', 'touchend', 'touchmove'\n ];\n var pointerEventNameMap = {\n pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\n };\n var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n var nm = name.replace('mouse', 'pointer');\n return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\n });\n return {\n mouse: mouseHandlerNames,\n touch: touchHandlerNames,\n pointer: pointerHandlerNames\n };\n})();\nvar globalNativeListenerNames = {\n mouse: ['mousemove', 'mouseup'],\n pointer: ['pointermove', 'pointerup']\n};\nvar wheelEventSupported = false;\nfunction isPointerFromTouch(event) {\n var pointerType = event.pointerType;\n return pointerType === 'pen' || pointerType === 'touch';\n}\nfunction setTouchTimer(scope) {\n scope.touching = true;\n if (scope.touchTimer != null) {\n clearTimeout(scope.touchTimer);\n scope.touchTimer = null;\n }\n scope.touchTimer = setTimeout(function () {\n scope.touching = false;\n scope.touchTimer = null;\n }, 700);\n}\nfunction markTouch(event) {\n event && (event.zrByTouch = true);\n}\nfunction normalizeGlobalEvent(instance, event) {\n return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\n}\nfunction isLocalEl(instance, el) {\n var elTmp = el;\n var isLocal = false;\n while (elTmp && elTmp.nodeType !== 9\n && !(isLocal = elTmp.domBelongToZr\n || (elTmp !== el && elTmp === instance.painterRoot))) {\n elTmp = elTmp.parentNode;\n }\n return isLocal;\n}\nvar FakeGlobalEvent = (function () {\n function FakeGlobalEvent(instance, event) {\n this.stopPropagation = zrUtil.noop;\n this.stopImmediatePropagation = zrUtil.noop;\n this.preventDefault = zrUtil.noop;\n this.type = event.type;\n this.target = this.currentTarget = instance.dom;\n this.pointerType = event.pointerType;\n this.clientX = event.clientX;\n this.clientY = event.clientY;\n }\n return FakeGlobalEvent;\n}());\nvar localDOMHandlers = {\n mousedown: function (event) {\n event = normalizeEvent(this.dom, event);\n this.__mayPointerCapture = [event.zrX, event.zrY];\n this.trigger('mousedown', event);\n },\n mousemove: function (event) {\n event = normalizeEvent(this.dom, event);\n var downPoint = this.__mayPointerCapture;\n if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\n this.__togglePointerCapture(true);\n }\n this.trigger('mousemove', event);\n },\n mouseup: function (event) {\n event = normalizeEvent(this.dom, event);\n this.__togglePointerCapture(false);\n this.trigger('mouseup', event);\n },\n mouseout: function (event) {\n event = normalizeEvent(this.dom, event);\n var element = event.toElement || event.relatedTarget;\n if (!isLocalEl(this, element)) {\n if (this.__pointerCapturing) {\n event.zrEventControl = 'no_globalout';\n }\n this.trigger('mouseout', event);\n }\n },\n wheel: function (event) {\n wheelEventSupported = true;\n event = normalizeEvent(this.dom, event);\n this.trigger('mousewheel', event);\n },\n mousewheel: function (event) {\n if (wheelEventSupported) {\n return;\n }\n event = normalizeEvent(this.dom, event);\n this.trigger('mousewheel', event);\n },\n touchstart: function (event) {\n event = normalizeEvent(this.dom, event);\n markTouch(event);\n this.__lastTouchMoment = new Date();\n this.handler.processGesture(event, 'start');\n localDOMHandlers.mousemove.call(this, event);\n localDOMHandlers.mousedown.call(this, event);\n },\n touchmove: function (event) {\n event = normalizeEvent(this.dom, event);\n markTouch(event);\n this.handler.processGesture(event, 'change');\n localDOMHandlers.mousemove.call(this, event);\n },\n touchend: function (event) {\n event = normalizeEvent(this.dom, event);\n markTouch(event);\n this.handler.processGesture(event, 'end');\n localDOMHandlers.mouseup.call(this, event);\n if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\n localDOMHandlers.click.call(this, event);\n }\n },\n pointerdown: function (event) {\n localDOMHandlers.mousedown.call(this, event);\n },\n pointermove: function (event) {\n if (!isPointerFromTouch(event)) {\n localDOMHandlers.mousemove.call(this, event);\n }\n },\n pointerup: function (event) {\n localDOMHandlers.mouseup.call(this, event);\n },\n pointerout: function (event) {\n if (!isPointerFromTouch(event)) {\n localDOMHandlers.mouseout.call(this, event);\n }\n }\n};\nzrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {\n localDOMHandlers[name] = function (event) {\n event = normalizeEvent(this.dom, event);\n this.trigger(name, event);\n };\n});\nvar globalDOMHandlers = {\n pointermove: function (event) {\n if (!isPointerFromTouch(event)) {\n globalDOMHandlers.mousemove.call(this, event);\n }\n },\n pointerup: function (event) {\n globalDOMHandlers.mouseup.call(this, event);\n },\n mousemove: function (event) {\n this.trigger('mousemove', event);\n },\n mouseup: function (event) {\n var pointerCaptureReleasing = this.__pointerCapturing;\n this.__togglePointerCapture(false);\n this.trigger('mouseup', event);\n if (pointerCaptureReleasing) {\n event.zrEventControl = 'only_globalout';\n this.trigger('mouseout', event);\n }\n }\n};\nfunction mountLocalDOMEventListeners(instance, scope) {\n var domHandlers = scope.domHandlers;\n if (env.pointerEventsSupported) {\n zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n domHandlers[nativeEventName].call(instance, event);\n });\n });\n }\n else {\n if (env.touchEventsSupported) {\n zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n domHandlers[nativeEventName].call(instance, event);\n setTouchTimer(scope);\n });\n });\n }\n zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n event = getNativeEvent(event);\n if (!scope.touching) {\n domHandlers[nativeEventName].call(instance, event);\n }\n });\n });\n }\n}\nfunction mountGlobalDOMEventListeners(instance, scope) {\n if (env.pointerEventsSupported) {\n zrUtil.each(globalNativeListenerNames.pointer, mount);\n }\n else if (!env.touchEventsSupported) {\n zrUtil.each(globalNativeListenerNames.mouse, mount);\n }\n function mount(nativeEventName) {\n function nativeEventListener(event) {\n event = getNativeEvent(event);\n if (!isLocalEl(instance, event.target)) {\n event = normalizeGlobalEvent(instance, event);\n scope.domHandlers[nativeEventName].call(instance, event);\n }\n }\n mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\n }\n}\nfunction mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\n scope.mounted[nativeEventName] = listener;\n scope.listenerOpts[nativeEventName] = opt;\n addEventListener(scope.domTarget, nativeEventName, listener, opt);\n}\nfunction unmountDOMEventListeners(scope) {\n var mounted = scope.mounted;\n for (var nativeEventName in mounted) {\n if (mounted.hasOwnProperty(nativeEventName)) {\n removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\n }\n }\n scope.mounted = {};\n}\nvar DOMHandlerScope = (function () {\n function DOMHandlerScope(domTarget, domHandlers) {\n this.mounted = {};\n this.listenerOpts = {};\n this.touching = false;\n this.domTarget = domTarget;\n this.domHandlers = domHandlers;\n }\n return DOMHandlerScope;\n}());\nvar HandlerDomProxy = (function (_super) {\n __extends(HandlerDomProxy, _super);\n function HandlerDomProxy(dom, painterRoot) {\n var _this = _super.call(this) || this;\n _this.__pointerCapturing = false;\n _this.dom = dom;\n _this.painterRoot = painterRoot;\n _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\n if (globalEventSupported) {\n _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\n }\n mountLocalDOMEventListeners(_this, _this._localHandlerScope);\n return _this;\n }\n HandlerDomProxy.prototype.dispose = function () {\n unmountDOMEventListeners(this._localHandlerScope);\n if (globalEventSupported) {\n unmountDOMEventListeners(this._globalHandlerScope);\n }\n };\n HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\n this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n };\n HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\n this.__mayPointerCapture = null;\n if (globalEventSupported\n && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\n this.__pointerCapturing = isPointerCapturing;\n var globalHandlerScope = this._globalHandlerScope;\n isPointerCapturing\n ? mountGlobalDOMEventListeners(this, globalHandlerScope)\n : unmountDOMEventListeners(globalHandlerScope);\n }\n };\n return HandlerDomProxy;\n}(Eventful));\nexport default HandlerDomProxy;\n","import { __extends } from \"tslib\";\nimport * as zrUtil from '../core/util';\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nvar Group = (function (_super) {\n __extends(Group, _super);\n function Group(opts) {\n var _this = _super.call(this) || this;\n _this.isGroup = true;\n _this._children = [];\n _this.attr(opts);\n return _this;\n }\n Group.prototype.childrenRef = function () {\n return this._children;\n };\n Group.prototype.children = function () {\n return this._children.slice();\n };\n Group.prototype.childAt = function (idx) {\n return this._children[idx];\n };\n Group.prototype.childOfName = function (name) {\n var children = this._children;\n for (var i = 0; i < children.length; i++) {\n if (children[i].name === name) {\n return children[i];\n }\n }\n };\n Group.prototype.childCount = function () {\n return this._children.length;\n };\n Group.prototype.add = function (child) {\n if (child) {\n if (child !== this && child.parent !== this) {\n this._children.push(child);\n this._doAdd(child);\n }\n if (child.__hostTarget) {\n throw 'This elemenet has been used as an attachment';\n }\n }\n return this;\n };\n Group.prototype.addBefore = function (child, nextSibling) {\n if (child && child !== this && child.parent !== this\n && nextSibling && nextSibling.parent === this) {\n var children = this._children;\n var idx = children.indexOf(nextSibling);\n if (idx >= 0) {\n children.splice(idx, 0, child);\n this._doAdd(child);\n }\n }\n return this;\n };\n Group.prototype.replaceAt = function (child, index) {\n var children = this._children;\n var old = children[index];\n if (child && child !== this && child.parent !== this && child !== old) {\n children[index] = child;\n old.parent = null;\n var zr = this.__zr;\n if (zr) {\n old.removeSelfFromZr(zr);\n }\n this._doAdd(child);\n }\n return this;\n };\n Group.prototype._doAdd = function (child) {\n if (child.parent) {\n child.parent.remove(child);\n }\n child.parent = this;\n var zr = this.__zr;\n if (zr && zr !== child.__zr) {\n child.addSelfToZr(zr);\n }\n zr && zr.refresh();\n };\n Group.prototype.remove = function (child) {\n var zr = this.__zr;\n var children = this._children;\n var idx = zrUtil.indexOf(children, child);\n if (idx < 0) {\n return this;\n }\n children.splice(idx, 1);\n child.parent = null;\n if (zr) {\n child.removeSelfFromZr(zr);\n }\n zr && zr.refresh();\n return this;\n };\n Group.prototype.removeAll = function () {\n var children = this._children;\n var zr = this.__zr;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (zr) {\n child.removeSelfFromZr(zr);\n }\n child.parent = null;\n }\n children.length = 0;\n return this;\n };\n Group.prototype.eachChild = function (cb, context) {\n var children = this._children;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n cb.call(context, child, i);\n }\n return this;\n };\n Group.prototype.traverse = function (cb, context) {\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n var stopped = cb.call(context, child);\n if (child.isGroup && !stopped) {\n child.traverse(cb, context);\n }\n }\n return this;\n };\n Group.prototype.addSelfToZr = function (zr) {\n _super.prototype.addSelfToZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n child.addSelfToZr(zr);\n }\n };\n Group.prototype.removeSelfFromZr = function (zr) {\n _super.prototype.removeSelfFromZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n child.removeSelfFromZr(zr);\n }\n };\n Group.prototype.getBoundingRect = function (includeChildren) {\n var tmpRect = new BoundingRect(0, 0, 0, 0);\n var children = includeChildren || this._children;\n var tmpMat = [];\n var rect = null;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (child.ignore || child.invisible) {\n continue;\n }\n var childRect = child.getBoundingRect();\n var transform = child.getLocalTransform(tmpMat);\n if (transform) {\n BoundingRect.applyTransform(tmpRect, childRect, transform);\n rect = rect || tmpRect.clone();\n rect.union(tmpRect);\n }\n else {\n rect = rect || childRect.clone();\n rect.union(childRect);\n }\n }\n return rect || tmpRect;\n };\n return Group;\n}(Element));\nGroup.prototype.type = 'group';\nexport default Group;\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env';\nimport * as zrUtil from './core/util';\nimport Handler from './Handler';\nimport Storage from './Storage';\nimport Animation from './animation/Animation';\nimport HandlerProxy from './dom/HandlerProxy';\nimport { lum } from './tool/color';\nimport { DARK_MODE_THRESHOLD } from './config';\nimport Group from './graphic/Group';\nvar useVML = !env.canvasSupported;\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n if (!backgroundColor) {\n return false;\n }\n if (typeof backgroundColor === 'string') {\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n }\n else if (backgroundColor.colorStops) {\n var colorStops = backgroundColor.colorStops;\n var totalLum = 0;\n var len = colorStops.length;\n for (var i = 0; i < len; i++) {\n totalLum += lum(colorStops[i].color, 1);\n }\n totalLum /= len;\n return totalLum < DARK_MODE_THRESHOLD;\n }\n return false;\n}\nvar ZRender = (function () {\n function ZRender(id, dom, opts) {\n var _this = this;\n this._sleepAfterStill = 10;\n this._stillFrameAccum = 0;\n this._needsRefresh = true;\n this._needsRefreshHover = true;\n this._darkMode = false;\n opts = opts || {};\n this.dom = dom;\n this.id = id;\n var storage = new Storage();\n var rendererType = opts.renderer || 'canvas';\n if (useVML) {\n throw new Error('IE8 support has been dropped since 5.0');\n }\n if (!painterCtors[rendererType]) {\n rendererType = zrUtil.keys(painterCtors)[0];\n }\n if (!painterCtors[rendererType]) {\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n }\n opts.useDirtyRect = opts.useDirtyRect == null\n ? false\n : opts.useDirtyRect;\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\n this.storage = storage;\n this.painter = painter;\n var handerProxy = (!env.node && !env.worker)\n ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n : null;\n this.handler = new Handler(storage, painter, handerProxy, painter.root);\n this.animation = new Animation({\n stage: {\n update: function () { return _this._flush(true); }\n }\n });\n this.animation.start();\n }\n ZRender.prototype.add = function (el) {\n if (!el) {\n return;\n }\n this.storage.addRoot(el);\n el.addSelfToZr(this);\n this.refresh();\n };\n ZRender.prototype.remove = function (el) {\n if (!el) {\n return;\n }\n this.storage.delRoot(el);\n el.removeSelfFromZr(this);\n this.refresh();\n };\n ZRender.prototype.configLayer = function (zLevel, config) {\n if (this.painter.configLayer) {\n this.painter.configLayer(zLevel, config);\n }\n this.refresh();\n };\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n if (this.painter.setBackgroundColor) {\n this.painter.setBackgroundColor(backgroundColor);\n }\n this.refresh();\n this._backgroundColor = backgroundColor;\n this._darkMode = isDarkMode(backgroundColor);\n };\n ZRender.prototype.getBackgroundColor = function () {\n return this._backgroundColor;\n };\n ZRender.prototype.setDarkMode = function (darkMode) {\n this._darkMode = darkMode;\n };\n ZRender.prototype.isDarkMode = function () {\n return this._darkMode;\n };\n ZRender.prototype.refreshImmediately = function (fromInside) {\n if (!fromInside) {\n this.animation.update(true);\n }\n this._needsRefresh = false;\n this.painter.refresh();\n this._needsRefresh = false;\n };\n ZRender.prototype.refresh = function () {\n this._needsRefresh = true;\n this.animation.start();\n };\n ZRender.prototype.flush = function () {\n this._flush(false);\n };\n ZRender.prototype._flush = function (fromInside) {\n var triggerRendered;\n var start = new Date().getTime();\n if (this._needsRefresh) {\n triggerRendered = true;\n this.refreshImmediately(fromInside);\n }\n if (this._needsRefreshHover) {\n triggerRendered = true;\n this.refreshHoverImmediately();\n }\n var end = new Date().getTime();\n if (triggerRendered) {\n this._stillFrameAccum = 0;\n this.trigger('rendered', {\n elapsedTime: end - start\n });\n }\n else if (this._sleepAfterStill > 0) {\n this._stillFrameAccum++;\n if (this._stillFrameAccum > this._sleepAfterStill) {\n this.animation.stop();\n }\n }\n };\n ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n this._sleepAfterStill = stillFramesCount;\n };\n ZRender.prototype.wakeUp = function () {\n this.animation.start();\n this._stillFrameAccum = 0;\n };\n ZRender.prototype.addHover = function (el) {\n };\n ZRender.prototype.removeHover = function (el) {\n };\n ZRender.prototype.clearHover = function () {\n };\n ZRender.prototype.refreshHover = function () {\n this._needsRefreshHover = true;\n };\n ZRender.prototype.refreshHoverImmediately = function () {\n this._needsRefreshHover = false;\n if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n this.painter.refreshHover();\n }\n };\n ZRender.prototype.resize = function (opts) {\n opts = opts || {};\n this.painter.resize(opts.width, opts.height);\n this.handler.resize();\n };\n ZRender.prototype.clearAnimation = function () {\n this.animation.clear();\n };\n ZRender.prototype.getWidth = function () {\n return this.painter.getWidth();\n };\n ZRender.prototype.getHeight = function () {\n return this.painter.getHeight();\n };\n ZRender.prototype.pathToImage = function (e, dpr) {\n if (this.painter.pathToImage) {\n return this.painter.pathToImage(e, dpr);\n }\n };\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\n this.handler.setCursorStyle(cursorStyle);\n };\n ZRender.prototype.findHover = function (x, y) {\n return this.handler.findHover(x, y);\n };\n ZRender.prototype.on = function (eventName, eventHandler, context) {\n this.handler.on(eventName, eventHandler, context);\n return this;\n };\n ZRender.prototype.off = function (eventName, eventHandler) {\n this.handler.off(eventName, eventHandler);\n };\n ZRender.prototype.trigger = function (eventName, event) {\n this.handler.trigger(eventName, event);\n };\n ZRender.prototype.clear = function () {\n var roots = this.storage.getRoots();\n for (var i = 0; i < roots.length; i++) {\n if (roots[i] instanceof Group) {\n roots[i].removeSelfFromZr(this);\n }\n }\n this.storage.delAllRoots();\n this.painter.clear();\n };\n ZRender.prototype.dispose = function () {\n this.animation.stop();\n this.clear();\n this.storage.dispose();\n this.painter.dispose();\n this.handler.dispose();\n this.animation =\n this.storage =\n this.painter =\n this.handler = null;\n delInstance(this.id);\n };\n return ZRender;\n}());\nexport function init(dom, opts) {\n var zr = new ZRender(zrUtil.guid(), dom, opts);\n instances[zr.id] = zr;\n return zr;\n}\nexport function dispose(zr) {\n zr.dispose();\n}\nexport function disposeAll() {\n for (var key in instances) {\n if (instances.hasOwnProperty(key)) {\n instances[key].dispose();\n }\n }\n instances = {};\n}\nexport function getInstance(id) {\n return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n painterCtors[name] = Ctor;\n}\nexport var version = '5.0.3';\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nexport function linearMap(val, domain, range, clamp) {\n var subDomain = domain[1] - domain[0];\n var subRange = range[1] - range[0];\n\n if (subDomain === 0) {\n return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n }\n\n if (clamp) {\n if (subDomain > 0) {\n if (val <= domain[0]) {\n return range[0];\n } else if (val >= domain[1]) {\n return range[1];\n }\n } else {\n if (val >= domain[0]) {\n return range[0];\n } else if (val <= domain[1]) {\n return range[1];\n }\n }\n } else {\n if (val === domain[0]) {\n return range[0];\n }\n\n if (val === domain[1]) {\n return range[1];\n }\n }\n\n return (val - domain[0]) / subDomain * subRange + range[0];\n}\nexport function parsePercent(percent, all) {\n switch (percent) {\n case 'center':\n case 'middle':\n percent = '50%';\n break;\n\n case 'left':\n case 'top':\n percent = '0%';\n break;\n\n case 'right':\n case 'bottom':\n percent = '100%';\n break;\n }\n\n if (typeof percent === 'string') {\n if (_trim(percent).match(/%$/)) {\n return parseFloat(percent) / 100 * all;\n }\n\n return parseFloat(percent);\n }\n\n return percent == null ? NaN : +percent;\n}\nexport function round(x, precision, returnStr) {\n if (precision == null) {\n precision = 10;\n }\n\n precision = Math.min(Math.max(0, precision), 20);\n x = (+x).toFixed(precision);\n return returnStr ? x : +x;\n}\nexport function asc(arr) {\n arr.sort(function (a, b) {\n return a - b;\n });\n return arr;\n}\nexport function getPrecision(val) {\n val = +val;\n\n if (isNaN(val)) {\n return 0;\n }\n\n var e = 1;\n var count = 0;\n\n while (Math.round(val * e) / e !== val) {\n e *= 10;\n count++;\n }\n\n return count;\n}\nexport function getPrecisionSafe(val) {\n var str = val.toString();\n var eIndex = str.indexOf('e');\n\n if (eIndex > 0) {\n var precision = +str.slice(eIndex + 1);\n return precision < 0 ? -precision : 0;\n } else {\n var dotIndex = str.indexOf('.');\n return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n }\n}\nexport function getPixelPrecision(dataExtent, pixelExtent) {\n var log = Math.log;\n var LN10 = Math.LN10;\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n return !isFinite(precision) ? 20 : precision;\n}\nexport function getPercentWithPrecision(valueList, idx, precision) {\n if (!valueList[idx]) {\n return 0;\n }\n\n var sum = zrUtil.reduce(valueList, function (acc, val) {\n return acc + (isNaN(val) ? 0 : val);\n }, 0);\n\n if (sum === 0) {\n return 0;\n }\n\n var digits = Math.pow(10, precision);\n var votesPerQuota = zrUtil.map(valueList, function (val) {\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\n });\n var targetSeats = digits * 100;\n var seats = zrUtil.map(votesPerQuota, function (votes) {\n return Math.floor(votes);\n });\n var currentSum = zrUtil.reduce(seats, function (acc, val) {\n return acc + val;\n }, 0);\n var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n return votes - seats[idx];\n });\n\n while (currentSum < targetSeats) {\n var max = Number.NEGATIVE_INFINITY;\n var maxId = null;\n\n for (var i = 0, len = remainder.length; i < len; ++i) {\n if (remainder[i] > max) {\n max = remainder[i];\n maxId = i;\n }\n }\n\n ++seats[maxId];\n remainder[maxId] = 0;\n ++currentSum;\n }\n\n return seats[idx] / digits;\n}\nexport var MAX_SAFE_INTEGER = 9007199254740991;\nexport function remRadian(radian) {\n var pi2 = Math.PI * 2;\n return (radian % pi2 + pi2) % pi2;\n}\nexport function isRadianAroundZero(val) {\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\nvar TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/;\nexport function parseDate(value) {\n if (value instanceof Date) {\n return value;\n } else if (typeof value === 'string') {\n var match = TIME_REG.exec(value);\n\n if (!match) {\n return new Date(NaN);\n }\n\n if (!match[8]) {\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\n } else {\n var hour = +match[4] || 0;\n\n if (match[8].toUpperCase() !== 'Z') {\n hour -= +match[8].slice(0, 3);\n }\n\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\n }\n } else if (value == null) {\n return new Date(NaN);\n }\n\n return new Date(Math.round(value));\n}\nexport function quantity(val) {\n return Math.pow(10, quantityExponent(val));\n}\nexport function quantityExponent(val) {\n if (val === 0) {\n return 0;\n }\n\n var exp = Math.floor(Math.log(val) / Math.LN10);\n\n if (val / Math.pow(10, exp) >= 10) {\n exp++;\n }\n\n return exp;\n}\nexport function nice(val, round) {\n var exponent = quantityExponent(val);\n var exp10 = Math.pow(10, exponent);\n var f = val / exp10;\n var nf;\n\n if (round) {\n if (f < 1.5) {\n nf = 1;\n } else if (f < 2.5) {\n nf = 2;\n } else if (f < 4) {\n nf = 3;\n } else if (f < 7) {\n nf = 5;\n } else {\n nf = 10;\n }\n } else {\n if (f < 1) {\n nf = 1;\n } else if (f < 2) {\n nf = 2;\n } else if (f < 3) {\n nf = 3;\n } else if (f < 5) {\n nf = 5;\n } else {\n nf = 10;\n }\n }\n\n val = nf * exp10;\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\nexport function quantile(ascArr, p) {\n var H = (ascArr.length - 1) * p + 1;\n var h = Math.floor(H);\n var v = +ascArr[h - 1];\n var e = H - h;\n return e ? v + e * (ascArr[h] - v) : v;\n}\nexport function reformIntervals(list) {\n list.sort(function (a, b) {\n return littleThan(a, b, 0) ? -1 : 1;\n });\n var curr = -Infinity;\n var currClose = 1;\n\n for (var i = 0; i < list.length;) {\n var interval = list[i].interval;\n var close_1 = list[i].close;\n\n for (var lg = 0; lg < 2; lg++) {\n if (interval[lg] <= curr) {\n interval[lg] = curr;\n close_1[lg] = !lg ? 1 - currClose : 1;\n }\n\n curr = interval[lg];\n currClose = close_1[lg];\n }\n\n if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\n list.splice(i, 1);\n } else {\n i++;\n }\n }\n\n return list;\n\n function littleThan(a, b, lg) {\n return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n }\n}\nexport function numericToNumber(val) {\n var valFloat = parseFloat(val);\n return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN;\n}\nexport function isNumeric(val) {\n return !isNaN(numericToNumber(val));\n}\nexport function getRandomIdBase() {\n return Math.round(Math.random() * 9);\n}\nexport function getGreatestCommonDividor(a, b) {\n if (b === 0) {\n return a;\n }\n\n return getGreatestCommonDividor(b, a % b);\n}\nexport function getLeastCommonMultiple(a, b) {\n if (a == null) {\n return b;\n }\n\n if (b == null) {\n return a;\n }\n\n return a * b / getGreatestCommonDividor(a, b);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map, isString, isFunction, eqNaN, isRegExp } from 'zrender/lib/core/util';\nvar ECHARTS_PREFIX = '[ECharts] ';\nvar storedLogs = {};\nvar hasConsole = typeof console !== 'undefined' && console.warn && console.log;\nexport function log(str) {\n if (hasConsole) {\n console.log(ECHARTS_PREFIX + str);\n }\n}\nexport function warn(str) {\n if (hasConsole) {\n console.warn(ECHARTS_PREFIX + str);\n }\n}\nexport function error(str) {\n if (hasConsole) {\n console.error(ECHARTS_PREFIX + str);\n }\n}\nexport function deprecateLog(str) {\n if (process.env.NODE_ENV !== 'production') {\n if (storedLogs[str]) {\n return;\n }\n\n if (hasConsole) {\n storedLogs[str] = true;\n console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\n }\n }\n}\nexport function deprecateReplaceLog(oldOpt, newOpt, scope) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\n }\n}\nexport function consoleLog() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof console !== 'undefined' && console.log) {\n console.log.apply(console, args);\n }\n }\n}\nexport function makePrintable() {\n var hintInfo = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n hintInfo[_i] = arguments[_i];\n }\n\n var msg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n var makePrintableStringIfPossible_1 = function (val) {\n return val === void 0 ? 'undefined' : val === Infinity ? 'Infinity' : val === -Infinity ? '-Infinity' : eqNaN(val) ? 'NaN' : val instanceof Date ? 'Date(' + val.toISOString() + ')' : isFunction(val) ? 'function () { ... }' : isRegExp(val) ? val + '' : null;\n };\n\n msg = map(hintInfo, function (arg) {\n if (isString(arg)) {\n return arg;\n } else {\n var printableStr = makePrintableStringIfPossible_1(arg);\n\n if (printableStr != null) {\n return printableStr;\n } else if (typeof JSON !== 'undefined' && JSON.stringify) {\n try {\n return JSON.stringify(arg, function (n, val) {\n var printableStr = makePrintableStringIfPossible_1(val);\n return printableStr == null ? val : printableStr;\n });\n } catch (err) {\n return '?';\n }\n } else {\n return '?';\n }\n }\n }).join(' ');\n }\n\n return msg;\n}\nexport function throwError(msg) {\n throw new Error(msg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isObject, isArray, createHashMap, map, assert, isString, indexOf, isStringSafe } from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { isNumeric, getRandomIdBase, getPrecisionSafe, round } from './number';\nimport { interpolateNumber } from 'zrender/lib/animation/Animator';\nimport { warn } from './log';\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\nvar INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\nexport function normalizeToArray(value) {\n return value instanceof Array ? value : value == null ? [] : [value];\n}\nexport function defaultEmphasis(opt, key, subOpts) {\n if (opt) {\n opt[key] = opt[key] || {};\n opt.emphasis = opt.emphasis || {};\n opt.emphasis[key] = opt.emphasis[key] || {};\n\n for (var i = 0, len = subOpts.length; i < len; i++) {\n var subOptName = subOpts[i];\n\n if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n opt.emphasis[key][subOptName] = opt[key][subOptName];\n }\n }\n }\n}\nexport var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'];\nexport function getDataItemValue(dataItem) {\n return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\nexport function isDataItemOption(dataItem) {\n return isObject(dataItem) && !(dataItem instanceof Array);\n}\n;\nexport function mappingToExists(existings, newCmptOptions, mode) {\n var isNormalMergeMode = mode === 'normalMerge';\n var isReplaceMergeMode = mode === 'replaceMerge';\n var isReplaceAllMode = mode === 'replaceAll';\n existings = existings || [];\n newCmptOptions = (newCmptOptions || []).slice();\n var existingIdIdxMap = createHashMap();\n each(newCmptOptions, function (cmptOption, index) {\n if (!isObject(cmptOption)) {\n newCmptOptions[index] = null;\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\n warnInvalidateIdOrName(cmptOption.id);\n }\n\n if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\n warnInvalidateIdOrName(cmptOption.name);\n }\n }\n });\n var result = prepareResult(existings, existingIdIdxMap, mode);\n\n if (isNormalMergeMode || isReplaceMergeMode) {\n mappingById(result, existings, existingIdIdxMap, newCmptOptions);\n }\n\n if (isNormalMergeMode) {\n mappingByName(result, newCmptOptions);\n }\n\n if (isNormalMergeMode || isReplaceMergeMode) {\n mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\n } else if (isReplaceAllMode) {\n mappingInReplaceAllMode(result, newCmptOptions);\n }\n\n makeIdAndName(result);\n return result;\n}\n\nfunction prepareResult(existings, existingIdIdxMap, mode) {\n var result = [];\n\n if (mode === 'replaceAll') {\n return result;\n }\n\n for (var index = 0; index < existings.length; index++) {\n var existing = existings[index];\n\n if (existing && existing.id != null) {\n existingIdIdxMap.set(existing.id, index);\n }\n\n result.push({\n existing: mode === 'replaceMerge' || isComponentIdInternal(existing) ? null : existing,\n newOption: null,\n keyInfo: null,\n brandNew: null\n });\n }\n\n return result;\n}\n\nfunction mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\n each(newCmptOptions, function (cmptOption, index) {\n if (!cmptOption || cmptOption.id == null) {\n return;\n }\n\n var optionId = makeComparableKey(cmptOption.id);\n var existingIdx = existingIdIdxMap.get(optionId);\n\n if (existingIdx != null) {\n var resultItem = result[existingIdx];\n assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\n resultItem.newOption = cmptOption;\n resultItem.existing = existings[existingIdx];\n newCmptOptions[index] = null;\n }\n });\n}\n\nfunction mappingByName(result, newCmptOptions) {\n each(newCmptOptions, function (cmptOption, index) {\n if (!cmptOption || cmptOption.name == null) {\n return;\n }\n\n for (var i = 0; i < result.length; i++) {\n var existing = result[i].existing;\n\n if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual('name', existing, cmptOption)) {\n result[i].newOption = cmptOption;\n newCmptOptions[index] = null;\n return;\n }\n }\n });\n}\n\nfunction mappingByIndex(result, newCmptOptions, brandNew) {\n each(newCmptOptions, function (cmptOption) {\n if (!cmptOption) {\n return;\n }\n\n var resultItem;\n var nextIdx = 0;\n\n while ((resultItem = result[nextIdx]) && (resultItem.newOption || isComponentIdInternal(resultItem.existing) || resultItem.existing && cmptOption.id != null && !keyExistAndEqual('id', cmptOption, resultItem.existing))) {\n nextIdx++;\n }\n\n if (resultItem) {\n resultItem.newOption = cmptOption;\n resultItem.brandNew = brandNew;\n } else {\n result.push({\n newOption: cmptOption,\n brandNew: brandNew,\n existing: null,\n keyInfo: null\n });\n }\n\n nextIdx++;\n });\n}\n\nfunction mappingInReplaceAllMode(result, newCmptOptions) {\n each(newCmptOptions, function (cmptOption) {\n result.push({\n newOption: cmptOption,\n brandNew: true,\n existing: null,\n keyInfo: null\n });\n });\n}\n\nfunction makeIdAndName(mapResult) {\n var idMap = createHashMap();\n each(mapResult, function (item) {\n var existing = item.existing;\n existing && idMap.set(existing.id, item);\n });\n each(mapResult, function (item) {\n var opt = item.newOption;\n assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n opt && opt.id != null && idMap.set(opt.id, item);\n !item.keyInfo && (item.keyInfo = {});\n });\n each(mapResult, function (item, index) {\n var existing = item.existing;\n var opt = item.newOption;\n var keyInfo = item.keyInfo;\n\n if (!isObject(opt)) {\n return;\n }\n\n keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n if (existing) {\n keyInfo.id = makeComparableKey(existing.id);\n } else if (opt.id != null) {\n keyInfo.id = makeComparableKey(opt.id);\n } else {\n var idNum = 0;\n\n do {\n keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n } while (idMap.get(keyInfo.id));\n }\n\n idMap.set(keyInfo.id, item);\n });\n}\n\nfunction keyExistAndEqual(attr, obj1, obj2) {\n var key1 = convertOptionIdName(obj1[attr], null);\n var key2 = convertOptionIdName(obj2[attr], null);\n return key1 != null && key2 != null && key1 === key2;\n}\n\nfunction makeComparableKey(val) {\n if (process.env.NODE_ENV !== 'production') {\n if (val == null) {\n throw new Error();\n }\n }\n\n return convertOptionIdName(val, '');\n}\n\nexport function convertOptionIdName(idOrName, defaultValue) {\n if (idOrName == null) {\n return defaultValue;\n }\n\n var type = typeof idOrName;\n return type === 'string' ? idOrName : type === 'number' || isStringSafe(idOrName) ? idOrName + '' : defaultValue;\n}\n\nfunction warnInvalidateIdOrName(idOrName) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\n }\n}\n\nfunction isValidIdOrName(idOrName) {\n return isStringSafe(idOrName) || isNumeric(idOrName);\n}\n\nexport function isNameSpecified(componentModel) {\n var name = componentModel.name;\n return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\nexport function isComponentIdInternal(cmptOption) {\n return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\n}\nexport function makeInternalComponentId(idSuffix) {\n return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\n}\nexport function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\n each(mappingResult, function (item) {\n var newOption = item.newOption;\n\n if (isObject(newOption)) {\n item.keyInfo.mainType = mainType;\n item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\n }\n });\n}\n\nfunction determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\n var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption);\n return subType;\n}\n\nexport function compressBatches(batchA, batchB) {\n var mapA = {};\n var mapB = {};\n makeMap(batchA || [], mapA);\n makeMap(batchB || [], mapB, mapA);\n return [mapToArray(mapA), mapToArray(mapB)];\n\n function makeMap(sourceBatch, map, otherMap) {\n for (var i = 0, len = sourceBatch.length; i < len; i++) {\n var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\n\n if (seriesId == null) {\n return;\n }\n\n var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n var otherDataIndices = otherMap && otherMap[seriesId];\n\n for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n var dataIndex = dataIndices[j];\n\n if (otherDataIndices && otherDataIndices[dataIndex]) {\n otherDataIndices[dataIndex] = null;\n } else {\n (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n }\n }\n }\n }\n\n function mapToArray(map, isData) {\n var result = [];\n\n for (var i in map) {\n if (map.hasOwnProperty(i) && map[i] != null) {\n if (isData) {\n result.push(+i);\n } else {\n var dataIndices = mapToArray(map[i], true);\n dataIndices.length && result.push({\n seriesId: i,\n dataIndex: dataIndices\n });\n }\n }\n }\n\n return result;\n }\n}\nexport function queryDataIndex(data, payload) {\n if (payload.dataIndexInside != null) {\n return payload.dataIndexInside;\n } else if (payload.dataIndex != null) {\n return isArray(payload.dataIndex) ? map(payload.dataIndex, function (value) {\n return data.indexOfRawIndex(value);\n }) : data.indexOfRawIndex(payload.dataIndex);\n } else if (payload.name != null) {\n return isArray(payload.name) ? map(payload.name, function (value) {\n return data.indexOfName(value);\n }) : data.indexOfName(payload.name);\n }\n}\nexport function makeInner() {\n var key = '__ec_inner_' + innerUniqueIndex++;\n return function (hostObj) {\n return hostObj[key] || (hostObj[key] = {});\n };\n}\nvar innerUniqueIndex = getRandomIdBase();\nexport function parseFinder(ecModel, finderInput, opt) {\n var finder;\n\n if (isString(finderInput)) {\n var obj = {};\n obj[finderInput + 'Index'] = 0;\n finder = obj;\n } else {\n finder = finderInput;\n }\n\n var queryOptionMap = createHashMap();\n var result = {};\n var mainTypeSpecified = false;\n each(finder, function (value, key) {\n if (key === 'dataIndex' || key === 'dataIndexInside') {\n result[key] = value;\n return;\n }\n\n var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n var mainType = parsedKey[1];\n var queryType = (parsedKey[2] || '').toLowerCase();\n\n if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) {\n return;\n }\n\n mainTypeSpecified = mainTypeSpecified || !!mainType;\n var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\n queryOption[queryType] = value;\n });\n var defaultMainType = opt ? opt.defaultMainType : null;\n\n if (!mainTypeSpecified && defaultMainType) {\n queryOptionMap.set(defaultMainType, {});\n }\n\n queryOptionMap.each(function (queryOption, mainType) {\n var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\n useDefault: defaultMainType === mainType,\n enableAll: opt && opt.enableAll != null ? opt.enableAll : true,\n enableNone: opt && opt.enableNone != null ? opt.enableNone : true\n });\n result[mainType + 'Models'] = queryResult.models;\n result[mainType + 'Model'] = queryResult.models[0];\n });\n return result;\n}\nexport var SINGLE_REFERRING = {\n useDefault: true,\n enableAll: false,\n enableNone: false\n};\nexport var MULTIPLE_REFERRING = {\n useDefault: false,\n enableAll: true,\n enableNone: true\n};\nexport function queryReferringComponents(ecModel, mainType, userOption, opt) {\n opt = opt || SINGLE_REFERRING;\n var indexOption = userOption.index;\n var idOption = userOption.id;\n var nameOption = userOption.name;\n var result = {\n models: null,\n specified: indexOption != null || idOption != null || nameOption != null\n };\n\n if (!result.specified) {\n var firstCmpt = void 0;\n result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : [];\n return result;\n }\n\n if (indexOption === 'none' || indexOption === false) {\n assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\n result.models = [];\n return result;\n }\n\n if (indexOption === 'all') {\n assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\n indexOption = idOption = nameOption = null;\n }\n\n result.models = ecModel.queryComponents({\n mainType: mainType,\n index: indexOption,\n id: idOption,\n name: nameOption\n });\n return result;\n}\nexport function setAttribute(dom, key, value) {\n dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\nexport function getAttribute(dom, key) {\n return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\nexport function getTooltipRenderMode(renderModeOption) {\n if (renderModeOption === 'auto') {\n return env.domSupported ? 'html' : 'richText';\n } else {\n return renderModeOption || 'html';\n }\n}\nexport function groupData(array, getKey) {\n var buckets = createHashMap();\n var keys = [];\n each(array, function (item) {\n var key = getKey(item);\n (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item);\n });\n return {\n keys: keys,\n buckets: buckets\n };\n}\nexport function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\n var isAutoPrecision = precision == null || precision === 'auto';\n\n if (targetValue == null) {\n return targetValue;\n }\n\n if (typeof targetValue === 'number') {\n var value = interpolateNumber(sourceValue || 0, targetValue, percent);\n return round(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue)) : precision);\n } else if (typeof targetValue === 'string') {\n return percent < 1 ? sourceValue : targetValue;\n } else {\n var interpolated = [];\n var leftArr = sourceValue;\n var rightArr = targetValue;\n var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length);\n\n for (var i = 0; i < length_1; ++i) {\n var info = data.getDimensionInfo(i);\n\n if (info.type === 'ordinal') {\n interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i];\n } else {\n var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\n var rightVal = rightArr[i];\n var value = interpolateNumber(leftVal, rightVal, percent);\n interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal)) : precision);\n }\n }\n\n return interpolated;\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\nvar IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\nexport function parseClassType(componentType) {\n var ret = {\n main: '',\n sub: ''\n };\n\n if (componentType) {\n var typeArr = componentType.split(TYPE_DELIMITER);\n ret.main = typeArr[0] || '';\n ret.sub = typeArr[1] || '';\n }\n\n return ret;\n}\n\nfunction checkClassType(componentType) {\n zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n\nexport function isExtendedClass(clz) {\n return !!(clz && clz[IS_EXTENDED_CLASS]);\n}\nexport function enableClassExtend(rootClz, mandatoryMethods) {\n rootClz.$constructor = rootClz;\n\n rootClz.extend = function (proto) {\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.each(mandatoryMethods, function (method) {\n if (!proto[method]) {\n console.warn('Method `' + method + '` should be implemented' + (proto.type ? ' in ' + proto.type : '') + '.');\n }\n });\n }\n\n var superClass = this;\n\n function ExtendedClass() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!proto.$constructor) {\n if (!isESClass(superClass)) {\n superClass.apply(this, arguments);\n } else {\n var ins = zrUtil.createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\n return ins;\n }\n } else {\n proto.$constructor.apply(this, arguments);\n }\n }\n\n ExtendedClass[IS_EXTENDED_CLASS] = true;\n zrUtil.extend(ExtendedClass.prototype, proto);\n ExtendedClass.extend = this.extend;\n ExtendedClass.superCall = superCall;\n ExtendedClass.superApply = superApply;\n zrUtil.inherits(ExtendedClass, this);\n ExtendedClass.superClass = superClass;\n return ExtendedClass;\n };\n}\n\nfunction isESClass(fn) {\n return typeof fn === 'function' && /^class\\s/.test(Function.prototype.toString.call(fn));\n}\n\nexport function mountExtend(SubClz, SupperClz) {\n SubClz.extend = SupperClz.extend;\n}\nvar classBase = Math.round(Math.random() * 10);\nexport function enableClassCheck(target) {\n var classAttr = ['__\\0is_clz', classBase++].join('_');\n target.prototype[classAttr] = true;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(!target.isInstance, 'The method \"is\" can not be defined.');\n }\n\n target.isInstance = function (obj) {\n return !!(obj && obj[classAttr]);\n };\n}\n\nfunction superCall(context, methodName) {\n var args = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n\n return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n return this.superClass.prototype[methodName].apply(context, args);\n}\n\nexport function enableClassManagement(target) {\n var storage = {};\n\n target.registerClass = function (clz) {\n var componentFullType = clz.type || clz.prototype.type;\n\n if (componentFullType) {\n checkClassType(componentFullType);\n clz.prototype.type = componentFullType;\n var componentTypeInfo = parseClassType(componentFullType);\n\n if (!componentTypeInfo.sub) {\n if (process.env.NODE_ENV !== 'production') {\n if (storage[componentTypeInfo.main]) {\n console.warn(componentTypeInfo.main + ' exists.');\n }\n }\n\n storage[componentTypeInfo.main] = clz;\n } else if (componentTypeInfo.sub !== IS_CONTAINER) {\n var container = makeContainer(componentTypeInfo);\n container[componentTypeInfo.sub] = clz;\n }\n }\n\n return clz;\n };\n\n target.getClass = function (mainType, subType, throwWhenNotFound) {\n var clz = storage[mainType];\n\n if (clz && clz[IS_CONTAINER]) {\n clz = subType ? clz[subType] : null;\n }\n\n if (throwWhenNotFound && !clz) {\n throw new Error(!subType ? mainType + '.' + 'type should be specified.' : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\n }\n\n return clz;\n };\n\n target.getClassesByMainType = function (componentType) {\n var componentTypeInfo = parseClassType(componentType);\n var result = [];\n var obj = storage[componentTypeInfo.main];\n\n if (obj && obj[IS_CONTAINER]) {\n zrUtil.each(obj, function (o, type) {\n type !== IS_CONTAINER && result.push(o);\n });\n } else {\n result.push(obj);\n }\n\n return result;\n };\n\n target.hasClass = function (componentType) {\n var componentTypeInfo = parseClassType(componentType);\n return !!storage[componentTypeInfo.main];\n };\n\n target.getAllClassMainTypes = function () {\n var types = [];\n zrUtil.each(storage, function (obj, type) {\n types.push(type);\n });\n return types;\n };\n\n target.hasSubTypes = function (componentType) {\n var componentTypeInfo = parseClassType(componentType);\n var obj = storage[componentTypeInfo.main];\n return obj && obj[IS_CONTAINER];\n };\n\n function makeContainer(componentTypeInfo) {\n var container = storage[componentTypeInfo.main];\n\n if (!container || !container[IS_CONTAINER]) {\n container = storage[componentTypeInfo.main] = {};\n container[IS_CONTAINER] = true;\n }\n\n return container;\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function makeStyleMapper(properties, ignoreParent) {\n for (var i = 0; i < properties.length; i++) {\n if (!properties[i][1]) {\n properties[i][1] = properties[i][0];\n }\n }\n\n ignoreParent = ignoreParent || false;\n return function (model, excludes, includes) {\n var style = {};\n\n for (var i = 0; i < properties.length; i++) {\n var propName = properties[i][1];\n\n if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n continue;\n }\n\n var val = model.getShallow(propName, ignoreParent);\n\n if (val != null) {\n style[properties[i][0]] = val;\n }\n }\n\n return style;\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var AREA_STYLE_KEY_MAP = [['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']];\nvar getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\n\nvar AreaStyleMixin = function () {\n function AreaStyleMixin() {}\n\n AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\n return getAreaStyle(this, excludes, includes);\n };\n\n return AreaStyleMixin;\n}();\n\n;\nexport { AreaStyleMixin };","import LRU from '../../core/LRU';\nvar globalImageCache = new LRU(50);\nexport function findExistImage(newImageOrSrc) {\n if (typeof newImageOrSrc === 'string') {\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\n return cachedImgObj && cachedImgObj.image;\n }\n else {\n return newImageOrSrc;\n }\n}\nexport function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\n if (!newImageOrSrc) {\n return image;\n }\n else if (typeof newImageOrSrc === 'string') {\n if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\n return image;\n }\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\n var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\n if (cachedImgObj) {\n image = cachedImgObj.image;\n !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n }\n else {\n image = new Image();\n image.onload = image.onerror = imageOnLoad;\n globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n image: image,\n pending: [pendingWrap]\n });\n image.src = image.__zrImageSrc = newImageOrSrc;\n }\n return image;\n }\n else {\n return newImageOrSrc;\n }\n}\nfunction imageOnLoad() {\n var cachedImgObj = this.__cachedImgObj;\n this.onload = this.onerror = this.__cachedImgObj = null;\n for (var i = 0; i < cachedImgObj.pending.length; i++) {\n var pendingWrap = cachedImgObj.pending[i];\n var cb = pendingWrap.cb;\n cb && cb(this, pendingWrap.cbPayload);\n pendingWrap.hostEl.dirty();\n }\n cachedImgObj.pending.length = 0;\n}\nexport function isImageReady(image) {\n return image && image.width && image.height;\n}\n","import * as imageHelper from '../helper/image';\nimport { extend, retrieve2, retrieve3, reduce } from '../../core/util';\nimport { getLineHeight, getWidth } from '../../contain/text';\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nexport function truncateText(text, containerWidth, font, ellipsis, options) {\n if (!containerWidth) {\n return '';\n }\n var textLines = (text + '').split('\\n');\n options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\n for (var i = 0, len = textLines.length; i < len; i++) {\n textLines[i] = truncateSingleLine(textLines[i], options);\n }\n return textLines.join('\\n');\n}\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n options = options || {};\n var preparedOpts = extend({}, options);\n preparedOpts.font = font;\n ellipsis = retrieve2(ellipsis, '...');\n preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\n var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\n preparedOpts.cnCharWidth = getWidth('国', font);\n var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\n preparedOpts.placeholder = retrieve2(options.placeholder, '');\n var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\n for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n contentWidth -= ascCharWidth;\n }\n var ellipsisWidth = getWidth(ellipsis, font);\n if (ellipsisWidth > contentWidth) {\n ellipsis = '';\n ellipsisWidth = 0;\n }\n contentWidth = containerWidth - ellipsisWidth;\n preparedOpts.ellipsis = ellipsis;\n preparedOpts.ellipsisWidth = ellipsisWidth;\n preparedOpts.contentWidth = contentWidth;\n preparedOpts.containerWidth = containerWidth;\n return preparedOpts;\n}\nfunction truncateSingleLine(textLine, options) {\n var containerWidth = options.containerWidth;\n var font = options.font;\n var contentWidth = options.contentWidth;\n if (!containerWidth) {\n return '';\n }\n var lineWidth = getWidth(textLine, font);\n if (lineWidth <= containerWidth) {\n return textLine;\n }\n for (var j = 0;; j++) {\n if (lineWidth <= contentWidth || j >= options.maxIterations) {\n textLine += options.ellipsis;\n break;\n }\n var subLength = j === 0\n ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\n : lineWidth > 0\n ? Math.floor(textLine.length * contentWidth / lineWidth)\n : 0;\n textLine = textLine.substr(0, subLength);\n lineWidth = getWidth(textLine, font);\n }\n if (textLine === '') {\n textLine = options.placeholder;\n }\n return textLine;\n}\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n var width = 0;\n var i = 0;\n for (var len = text.length; i < len && width < contentWidth; i++) {\n var charCode = text.charCodeAt(i);\n width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\n }\n return i;\n}\nexport function parsePlainText(text, style) {\n text != null && (text += '');\n var overflow = style.overflow;\n var padding = style.padding;\n var font = style.font;\n var truncate = overflow === 'truncate';\n var calculatedLineHeight = getLineHeight(font);\n var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\n var truncateLineOverflow = style.lineOverflow === 'truncate';\n var width = style.width;\n var lines;\n if (width != null && overflow === 'break' || overflow === 'breakAll') {\n lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\n }\n else {\n lines = text ? text.split('\\n') : [];\n }\n var contentHeight = lines.length * lineHeight;\n var height = retrieve2(style.height, contentHeight);\n if (contentHeight > height && truncateLineOverflow) {\n var lineCount = Math.floor(height / lineHeight);\n lines = lines.slice(0, lineCount);\n }\n var outerHeight = height;\n var outerWidth = width;\n if (padding) {\n outerHeight += padding[0] + padding[2];\n if (outerWidth != null) {\n outerWidth += padding[1] + padding[3];\n }\n }\n if (text && truncate && outerWidth != null) {\n var options = prepareTruncateOptions(width, font, style.ellipsis, {\n minChar: style.truncateMinChar,\n placeholder: style.placeholder\n });\n for (var i = 0; i < lines.length; i++) {\n lines[i] = truncateSingleLine(lines[i], options);\n }\n }\n if (width == null) {\n var maxWidth = 0;\n for (var i = 0; i < lines.length; i++) {\n maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\n }\n width = maxWidth;\n }\n return {\n lines: lines,\n height: height,\n outerHeight: outerHeight,\n lineHeight: lineHeight,\n calculatedLineHeight: calculatedLineHeight,\n contentHeight: contentHeight,\n width: width\n };\n}\nvar RichTextToken = (function () {\n function RichTextToken() {\n }\n return RichTextToken;\n}());\nvar RichTextLine = (function () {\n function RichTextLine(tokens) {\n this.tokens = [];\n if (tokens) {\n this.tokens = tokens;\n }\n }\n return RichTextLine;\n}());\nvar RichTextContentBlock = (function () {\n function RichTextContentBlock() {\n this.width = 0;\n this.height = 0;\n this.contentWidth = 0;\n this.contentHeight = 0;\n this.outerWidth = 0;\n this.outerHeight = 0;\n this.lines = [];\n }\n return RichTextContentBlock;\n}());\nexport { RichTextContentBlock };\nexport function parseRichText(text, style) {\n var contentBlock = new RichTextContentBlock();\n text != null && (text += '');\n if (!text) {\n return contentBlock;\n }\n var topWidth = style.width;\n var topHeight = style.height;\n var overflow = style.overflow;\n var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\n ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\n : null;\n var lastIndex = STYLE_REG.lastIndex = 0;\n var result;\n while ((result = STYLE_REG.exec(text)) != null) {\n var matchedIndex = result.index;\n if (matchedIndex > lastIndex) {\n pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\n }\n pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\n lastIndex = STYLE_REG.lastIndex;\n }\n if (lastIndex < text.length) {\n pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\n }\n var pendingList = [];\n var calculatedHeight = 0;\n var calculatedWidth = 0;\n var stlPadding = style.padding;\n var truncate = overflow === 'truncate';\n var truncateLine = style.lineOverflow === 'truncate';\n var prevToken;\n function finishLine(line, lineWidth, lineHeight) {\n line.width = lineWidth;\n line.lineHeight = lineHeight;\n calculatedHeight += lineHeight;\n calculatedWidth = Math.max(calculatedWidth, lineWidth);\n }\n outer: for (var i = 0; i < contentBlock.lines.length; i++) {\n var line = contentBlock.lines[i];\n var lineHeight = 0;\n var lineWidth = 0;\n for (var j = 0; j < line.tokens.length; j++) {\n var token = line.tokens[j];\n var tokenStyle = token.styleName && style.rich[token.styleName] || {};\n var textPadding = token.textPadding = tokenStyle.padding;\n var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\n var font = token.font = tokenStyle.font || style.font;\n token.contentHeight = getLineHeight(font);\n var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\n token.innerHeight = tokenHeight;\n textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n token.height = tokenHeight;\n token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\n token.align = tokenStyle && tokenStyle.align || style.align;\n token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\n if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\n if (j > 0) {\n line.tokens = line.tokens.slice(0, j);\n finishLine(line, lineWidth, lineHeight);\n contentBlock.lines = contentBlock.lines.slice(0, i + 1);\n }\n else {\n contentBlock.lines = contentBlock.lines.slice(0, i);\n }\n break outer;\n }\n var styleTokenWidth = tokenStyle.width;\n var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\n if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\n token.percentWidth = styleTokenWidth;\n pendingList.push(token);\n token.contentWidth = getWidth(token.text, font);\n }\n else {\n if (tokenWidthNotSpecified) {\n var textBackgroundColor = tokenStyle.backgroundColor;\n var bgImg = textBackgroundColor && textBackgroundColor.image;\n if (bgImg) {\n bgImg = imageHelper.findExistImage(bgImg);\n if (imageHelper.isImageReady(bgImg)) {\n token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\n }\n }\n }\n var remainTruncWidth = truncate && topWidth != null\n ? topWidth - lineWidth : null;\n if (remainTruncWidth != null && remainTruncWidth < token.width) {\n if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\n token.text = '';\n token.width = token.contentWidth = 0;\n }\n else {\n token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\n token.width = token.contentWidth = getWidth(token.text, font);\n }\n }\n else {\n token.contentWidth = getWidth(token.text, font);\n }\n }\n token.width += paddingH;\n lineWidth += token.width;\n tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n prevToken = token;\n }\n finishLine(line, lineWidth, lineHeight);\n }\n contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\n contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\n contentBlock.contentHeight = calculatedHeight;\n contentBlock.contentWidth = calculatedWidth;\n if (stlPadding) {\n contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n }\n for (var i = 0; i < pendingList.length; i++) {\n var token = pendingList[i];\n var percentWidth = token.percentWidth;\n token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\n }\n return contentBlock;\n}\nfunction pushTokens(block, str, style, wrapInfo, styleName) {\n var isEmptyStr = str === '';\n var tokenStyle = styleName && style.rich[styleName] || {};\n var lines = block.lines;\n var font = tokenStyle.font || style.font;\n var newLine = false;\n var strLines;\n var linesWidths;\n if (wrapInfo) {\n var tokenPadding = tokenStyle.padding;\n var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\n if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\n var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\n if (lines.length > 0) {\n if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\n strLines = str.split('\\n');\n newLine = true;\n }\n }\n wrapInfo.accumWidth = outerWidth_1;\n }\n else {\n var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\n wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\n linesWidths = res.linesWidths;\n strLines = res.lines;\n }\n }\n else {\n strLines = str.split('\\n');\n }\n for (var i = 0; i < strLines.length; i++) {\n var text = strLines[i];\n var token = new RichTextToken();\n token.styleName = styleName;\n token.text = text;\n token.isLineHolder = !text && !isEmptyStr;\n if (typeof tokenStyle.width === 'number') {\n token.width = tokenStyle.width;\n }\n else {\n token.width = linesWidths\n ? linesWidths[i]\n : getWidth(text, font);\n }\n if (!i && !newLine) {\n var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\n var tokensLen = tokens.length;\n (tokensLen === 1 && tokens[0].isLineHolder)\n ? (tokens[0] = token)\n : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\n }\n else {\n lines.push(new RichTextLine([token]));\n }\n }\n}\nfunction isLatin(ch) {\n var code = ch.charCodeAt(0);\n return code >= 0x21 && code <= 0xFF;\n}\nvar breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\n obj[ch] = true;\n return obj;\n}, {});\nfunction isWordBreakChar(ch) {\n if (isLatin(ch)) {\n if (breakCharMap[ch]) {\n return true;\n }\n return false;\n }\n return true;\n}\nfunction wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\n var lines = [];\n var linesWidths = [];\n var line = '';\n var currentWord = '';\n var currentWordWidth = 0;\n var accumWidth = 0;\n for (var i = 0; i < text.length; i++) {\n var ch = text.charAt(i);\n if (ch === '\\n') {\n if (currentWord) {\n line += currentWord;\n accumWidth += currentWordWidth;\n }\n lines.push(line);\n linesWidths.push(accumWidth);\n line = '';\n currentWord = '';\n currentWordWidth = 0;\n accumWidth = 0;\n continue;\n }\n var chWidth = getWidth(ch, font);\n var inWord = isBreakAll ? false : !isWordBreakChar(ch);\n if (!lines.length\n ? lastAccumWidth + accumWidth + chWidth > lineWidth\n : accumWidth + chWidth > lineWidth) {\n if (!accumWidth) {\n if (inWord) {\n lines.push(currentWord);\n linesWidths.push(currentWordWidth);\n currentWord = ch;\n currentWordWidth = chWidth;\n }\n else {\n lines.push(ch);\n linesWidths.push(chWidth);\n }\n }\n else if (line || currentWord) {\n if (inWord) {\n if (!line) {\n line = currentWord;\n currentWord = '';\n currentWordWidth = 0;\n accumWidth = currentWordWidth;\n }\n lines.push(line);\n linesWidths.push(accumWidth - currentWordWidth);\n currentWord += ch;\n currentWordWidth += chWidth;\n line = '';\n accumWidth = currentWordWidth;\n }\n else {\n if (currentWord) {\n line += currentWord;\n accumWidth += currentWordWidth;\n currentWord = '';\n currentWordWidth = 0;\n }\n lines.push(line);\n linesWidths.push(accumWidth);\n line = ch;\n accumWidth = chWidth;\n }\n }\n continue;\n }\n accumWidth += chWidth;\n if (inWord) {\n currentWord += ch;\n currentWordWidth += chWidth;\n }\n else {\n if (currentWord) {\n line += currentWord;\n currentWord = '';\n currentWordWidth = 0;\n }\n line += ch;\n }\n }\n if (!lines.length && !line) {\n line = text;\n currentWord = '';\n currentWordWidth = 0;\n }\n if (currentWord) {\n line += currentWord;\n }\n if (line) {\n lines.push(line);\n linesWidths.push(accumWidth);\n }\n if (lines.length === 1) {\n accumWidth += lastAccumWidth;\n }\n return {\n accumWidth: accumWidth,\n lines: lines,\n linesWidths: linesWidths\n };\n}\nfunction parsePercent(value, maxValue) {\n if (typeof value === 'string') {\n if (value.lastIndexOf('%') >= 0) {\n return parseFloat(value) / 100 * maxValue;\n }\n return parseFloat(value);\n }\n return value;\n}\n","import { __extends } from \"tslib\";\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nimport { keys, extend, createObject } from '../core/util';\nvar STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\nexport var DEFAULT_COMMON_STYLE = {\n shadowBlur: 0,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n shadowColor: '#000',\n opacity: 1,\n blend: 'source-over'\n};\nexport var DEFAULT_COMMON_ANIMATION_PROPS = {\n style: {\n shadowBlur: true,\n shadowOffsetX: true,\n shadowOffsetY: true,\n shadowColor: true,\n opacity: true\n }\n};\nDEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\nvar PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'];\nvar Displayable = (function (_super) {\n __extends(Displayable, _super);\n function Displayable(props) {\n return _super.call(this, props) || this;\n }\n Displayable.prototype._init = function (props) {\n var keysArr = keys(props);\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n if (key === 'style') {\n this.useStyle(props[key]);\n }\n else {\n _super.prototype.attrKV.call(this, key, props[key]);\n }\n }\n if (!this.style) {\n this.useStyle({});\n }\n };\n Displayable.prototype.beforeBrush = function () { };\n Displayable.prototype.afterBrush = function () { };\n Displayable.prototype.innerBeforeBrush = function () { };\n Displayable.prototype.innerAfterBrush = function () { };\n Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\n var m = this.transform;\n if (this.ignore\n || this.invisible\n || this.style.opacity === 0\n || (this.culling\n && isDisplayableCulled(this, viewWidth, viewHeight))\n || (m && !m[0] && !m[3])) {\n return false;\n }\n if (considerClipPath && this.__clipPaths) {\n for (var i = 0; i < this.__clipPaths.length; ++i) {\n if (this.__clipPaths[i].isZeroArea()) {\n return false;\n }\n }\n }\n if (considerAncestors && this.parent) {\n var parent_1 = this.parent;\n while (parent_1) {\n if (parent_1.ignore) {\n return false;\n }\n parent_1 = parent_1.parent;\n }\n }\n return true;\n };\n Displayable.prototype.contain = function (x, y) {\n return this.rectContain(x, y);\n };\n Displayable.prototype.traverse = function (cb, context) {\n cb.call(context, this);\n };\n Displayable.prototype.rectContain = function (x, y) {\n var coord = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n return rect.contain(coord[0], coord[1]);\n };\n Displayable.prototype.getPaintRect = function () {\n var rect = this._paintRect;\n if (!this._paintRect || this.__dirty) {\n var transform = this.transform;\n var elRect = this.getBoundingRect();\n var style = this.style;\n var shadowSize = style.shadowBlur || 0;\n var shadowOffsetX = style.shadowOffsetX || 0;\n var shadowOffsetY = style.shadowOffsetY || 0;\n rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\n if (transform) {\n BoundingRect.applyTransform(rect, elRect, transform);\n }\n else {\n rect.copy(elRect);\n }\n if (shadowSize || shadowOffsetX || shadowOffsetY) {\n rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\n rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\n rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\n rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\n }\n var tolerance = this.dirtyRectTolerance;\n if (!rect.isZero()) {\n rect.x = Math.floor(rect.x - tolerance);\n rect.y = Math.floor(rect.y - tolerance);\n rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\n rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\n }\n }\n return rect;\n };\n Displayable.prototype.setPrevPaintRect = function (paintRect) {\n if (paintRect) {\n this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\n this._prevPaintRect.copy(paintRect);\n }\n else {\n this._prevPaintRect = null;\n }\n };\n Displayable.prototype.getPrevPaintRect = function () {\n return this._prevPaintRect;\n };\n Displayable.prototype.animateStyle = function (loop) {\n return this.animate('style', loop);\n };\n Displayable.prototype.updateDuringAnimation = function (targetKey) {\n if (targetKey === 'style') {\n this.dirtyStyle();\n }\n else {\n this.markRedraw();\n }\n };\n Displayable.prototype.attrKV = function (key, value) {\n if (key !== 'style') {\n _super.prototype.attrKV.call(this, key, value);\n }\n else {\n if (!this.style) {\n this.useStyle(value);\n }\n else {\n this.setStyle(value);\n }\n }\n };\n Displayable.prototype.setStyle = function (keyOrObj, value) {\n if (typeof keyOrObj === 'string') {\n this.style[keyOrObj] = value;\n }\n else {\n extend(this.style, keyOrObj);\n }\n this.dirtyStyle();\n return this;\n };\n Displayable.prototype.dirtyStyle = function () {\n this.markRedraw();\n this.__dirty |= Displayable.STYLE_CHANGED_BIT;\n if (this._rect) {\n this._rect = null;\n }\n };\n Displayable.prototype.dirty = function () {\n this.dirtyStyle();\n };\n Displayable.prototype.styleChanged = function () {\n return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\n };\n Displayable.prototype.styleUpdated = function () {\n this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\n };\n Displayable.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_COMMON_STYLE, obj);\n };\n Displayable.prototype.useStyle = function (obj) {\n if (!obj[STYLE_MAGIC_KEY]) {\n obj = this.createStyle(obj);\n }\n if (this.__inHover) {\n this.__hoverStyle = obj;\n }\n else {\n this.style = obj;\n }\n this.dirtyStyle();\n };\n Displayable.prototype.isStyleObject = function (obj) {\n return obj[STYLE_MAGIC_KEY];\n };\n Displayable.prototype._innerSaveToNormal = function (toState) {\n _super.prototype._innerSaveToNormal.call(this, toState);\n var normalState = this._normalState;\n if (toState.style && !normalState.style) {\n normalState.style = this._mergeStyle(this.createStyle(), this.style);\n }\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n };\n Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n var needsRestoreToNormal = !(state && keepCurrentStates);\n var targetStyle;\n if (state && state.style) {\n if (transition) {\n if (keepCurrentStates) {\n targetStyle = state.style;\n }\n else {\n targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\n this._mergeStyle(targetStyle, state.style);\n }\n }\n else {\n targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\n this._mergeStyle(targetStyle, state.style);\n }\n }\n else if (needsRestoreToNormal) {\n targetStyle = normalState.style;\n }\n if (targetStyle) {\n if (transition) {\n var sourceStyle = this.style;\n this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\n if (needsRestoreToNormal) {\n var changedKeys = keys(sourceStyle);\n for (var i = 0; i < changedKeys.length; i++) {\n var key = changedKeys[i];\n if (key in targetStyle) {\n targetStyle[key] = targetStyle[key];\n this.style[key] = sourceStyle[key];\n }\n }\n }\n var targetKeys = keys(targetStyle);\n for (var i = 0; i < targetKeys.length; i++) {\n var key = targetKeys[i];\n this.style[key] = this.style[key];\n }\n this._transitionState(stateName, {\n style: targetStyle\n }, animationCfg, this.getAnimationStyleProps());\n }\n else {\n this.useStyle(targetStyle);\n }\n }\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n var key = PRIMARY_STATES_KEYS[i];\n if (state && state[key] != null) {\n this[key] = state[key];\n }\n else if (needsRestoreToNormal) {\n if (normalState[key] != null) {\n this[key] = normalState[key];\n }\n }\n }\n };\n Displayable.prototype._mergeStates = function (states) {\n var mergedState = _super.prototype._mergeStates.call(this, states);\n var mergedStyle;\n for (var i = 0; i < states.length; i++) {\n var state = states[i];\n if (state.style) {\n mergedStyle = mergedStyle || {};\n this._mergeStyle(mergedStyle, state.style);\n }\n }\n if (mergedStyle) {\n mergedState.style = mergedStyle;\n }\n return mergedState;\n };\n Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n extend(targetStyle, sourceStyle);\n return targetStyle;\n };\n Displayable.prototype.getAnimationStyleProps = function () {\n return DEFAULT_COMMON_ANIMATION_PROPS;\n };\n Displayable.STYLE_CHANGED_BIT = 2;\n Displayable.initDefaultProps = (function () {\n var dispProto = Displayable.prototype;\n dispProto.type = 'displayable';\n dispProto.invisible = false;\n dispProto.z = 0;\n dispProto.z2 = 0;\n dispProto.zlevel = 0;\n dispProto.culling = false;\n dispProto.cursor = 'pointer';\n dispProto.rectHover = false;\n dispProto.incremental = false;\n dispProto._rect = null;\n dispProto.dirtyRectTolerance = 0;\n dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\n })();\n return Displayable;\n}(Element));\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\nfunction isDisplayableCulled(el, width, height) {\n tmpRect.copy(el.getBoundingRect());\n if (el.transform) {\n tmpRect.applyTransform(el.transform);\n }\n viewRect.width = width;\n viewRect.height = height;\n return !tmpRect.intersect(viewRect);\n}\nexport default Displayable;\n","import { create as v2Create, distSquare as v2DistSquare } from './vector';\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3;\nvar _v0 = v2Create();\nvar _v1 = v2Create();\nvar _v2 = v2Create();\nfunction isAroundZero(val) {\n return val > -EPSILON && val < EPSILON;\n}\nfunction isNotAroundZero(val) {\n return val > EPSILON || val < -EPSILON;\n}\nexport function cubicAt(p0, p1, p2, p3, t) {\n var onet = 1 - t;\n return onet * onet * (onet * p0 + 3 * t * p1)\n + t * t * (t * p3 + 3 * onet * p2);\n}\nexport function cubicDerivativeAt(p0, p1, p2, p3, t) {\n var onet = 1 - t;\n return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\n + (p3 - p2) * t * t);\n}\nexport function cubicRootAt(p0, p1, p2, p3, val, roots) {\n var a = p3 + 3 * (p1 - p2) - p0;\n var b = 3 * (p2 - p1 * 2 + p0);\n var c = 3 * (p1 - p0);\n var d = p0 - val;\n var A = b * b - 3 * a * c;\n var B = b * c - 9 * a * d;\n var C = c * c - 3 * b * d;\n var n = 0;\n if (isAroundZero(A) && isAroundZero(B)) {\n if (isAroundZero(b)) {\n roots[0] = 0;\n }\n else {\n var t1 = -c / b;\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n }\n else {\n var disc = B * B - 4 * A * C;\n if (isAroundZero(disc)) {\n var K = B / A;\n var t1 = -b / a + K;\n var t2 = -K / 2;\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n roots[n++] = t2;\n }\n }\n else if (disc > 0) {\n var discSqrt = mathSqrt(disc);\n var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n if (Y1 < 0) {\n Y1 = -mathPow(-Y1, ONE_THIRD);\n }\n else {\n Y1 = mathPow(Y1, ONE_THIRD);\n }\n if (Y2 < 0) {\n Y2 = -mathPow(-Y2, ONE_THIRD);\n }\n else {\n Y2 = mathPow(Y2, ONE_THIRD);\n }\n var t1 = (-b - (Y1 + Y2)) / (3 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n else {\n var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n var theta = Math.acos(T) / 3;\n var ASqrt = mathSqrt(A);\n var tmp = Math.cos(theta);\n var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n roots[n++] = t2;\n }\n if (t3 >= 0 && t3 <= 1) {\n roots[n++] = t3;\n }\n }\n }\n return n;\n}\nexport function cubicExtrema(p0, p1, p2, p3, extrema) {\n var b = 6 * p2 - 12 * p1 + 6 * p0;\n var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n var c = 3 * p1 - 3 * p0;\n var n = 0;\n if (isAroundZero(a)) {\n if (isNotAroundZero(b)) {\n var t1 = -c / b;\n if (t1 >= 0 && t1 <= 1) {\n extrema[n++] = t1;\n }\n }\n }\n else {\n var disc = b * b - 4 * a * c;\n if (isAroundZero(disc)) {\n extrema[0] = -b / (2 * a);\n }\n else if (disc > 0) {\n var discSqrt = mathSqrt(disc);\n var t1 = (-b + discSqrt) / (2 * a);\n var t2 = (-b - discSqrt) / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n extrema[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n extrema[n++] = t2;\n }\n }\n }\n return n;\n}\nexport function cubicSubdivide(p0, p1, p2, p3, t, out) {\n var p01 = (p1 - p0) * t + p0;\n var p12 = (p2 - p1) * t + p1;\n var p23 = (p3 - p2) * t + p2;\n var p012 = (p12 - p01) * t + p01;\n var p123 = (p23 - p12) * t + p12;\n var p0123 = (p123 - p012) * t + p012;\n out[0] = p0;\n out[1] = p01;\n out[2] = p012;\n out[3] = p0123;\n out[4] = p0123;\n out[5] = p123;\n out[6] = p23;\n out[7] = p3;\n}\nexport function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n var t;\n var interval = 0.005;\n var d = Infinity;\n var prev;\n var next;\n var d1;\n var d2;\n _v0[0] = x;\n _v0[1] = y;\n for (var _t = 0; _t < 1; _t += 0.05) {\n _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n d1 = v2DistSquare(_v0, _v1);\n if (d1 < d) {\n t = _t;\n d = d1;\n }\n }\n d = Infinity;\n for (var i = 0; i < 32; i++) {\n if (interval < EPSILON_NUMERIC) {\n break;\n }\n prev = t - interval;\n next = t + interval;\n _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n d1 = v2DistSquare(_v1, _v0);\n if (prev >= 0 && d1 < d) {\n t = prev;\n d = d1;\n }\n else {\n _v2[0] = cubicAt(x0, x1, x2, x3, next);\n _v2[1] = cubicAt(y0, y1, y2, y3, next);\n d2 = v2DistSquare(_v2, _v0);\n if (next <= 1 && d2 < d) {\n t = next;\n d = d2;\n }\n else {\n interval *= 0.5;\n }\n }\n }\n if (out) {\n out[0] = cubicAt(x0, x1, x2, x3, t);\n out[1] = cubicAt(y0, y1, y2, y3, t);\n }\n return mathSqrt(d);\n}\nexport function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\n var px = x0;\n var py = y0;\n var d = 0;\n var step = 1 / iteration;\n for (var i = 1; i <= iteration; i++) {\n var t = i * step;\n var x = cubicAt(x0, x1, x2, x3, t);\n var y = cubicAt(y0, y1, y2, y3, t);\n var dx = x - px;\n var dy = y - py;\n d += Math.sqrt(dx * dx + dy * dy);\n px = x;\n py = y;\n }\n return d;\n}\nexport function quadraticAt(p0, p1, p2, t) {\n var onet = 1 - t;\n return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\nexport function quadraticDerivativeAt(p0, p1, p2, t) {\n return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\nexport function quadraticRootAt(p0, p1, p2, val, roots) {\n var a = p0 - 2 * p1 + p2;\n var b = 2 * (p1 - p0);\n var c = p0 - val;\n var n = 0;\n if (isAroundZero(a)) {\n if (isNotAroundZero(b)) {\n var t1 = -c / b;\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n }\n else {\n var disc = b * b - 4 * a * c;\n if (isAroundZero(disc)) {\n var t1 = -b / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n }\n else if (disc > 0) {\n var discSqrt = mathSqrt(disc);\n var t1 = (-b + discSqrt) / (2 * a);\n var t2 = (-b - discSqrt) / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots[n++] = t1;\n }\n if (t2 >= 0 && t2 <= 1) {\n roots[n++] = t2;\n }\n }\n }\n return n;\n}\nexport function quadraticExtremum(p0, p1, p2) {\n var divider = p0 + p2 - 2 * p1;\n if (divider === 0) {\n return 0.5;\n }\n else {\n return (p0 - p1) / divider;\n }\n}\nexport function quadraticSubdivide(p0, p1, p2, t, out) {\n var p01 = (p1 - p0) * t + p0;\n var p12 = (p2 - p1) * t + p1;\n var p012 = (p12 - p01) * t + p01;\n out[0] = p0;\n out[1] = p01;\n out[2] = p012;\n out[3] = p012;\n out[4] = p12;\n out[5] = p2;\n}\nexport function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n var t;\n var interval = 0.005;\n var d = Infinity;\n _v0[0] = x;\n _v0[1] = y;\n for (var _t = 0; _t < 1; _t += 0.05) {\n _v1[0] = quadraticAt(x0, x1, x2, _t);\n _v1[1] = quadraticAt(y0, y1, y2, _t);\n var d1 = v2DistSquare(_v0, _v1);\n if (d1 < d) {\n t = _t;\n d = d1;\n }\n }\n d = Infinity;\n for (var i = 0; i < 32; i++) {\n if (interval < EPSILON_NUMERIC) {\n break;\n }\n var prev = t - interval;\n var next = t + interval;\n _v1[0] = quadraticAt(x0, x1, x2, prev);\n _v1[1] = quadraticAt(y0, y1, y2, prev);\n var d1 = v2DistSquare(_v1, _v0);\n if (prev >= 0 && d1 < d) {\n t = prev;\n d = d1;\n }\n else {\n _v2[0] = quadraticAt(x0, x1, x2, next);\n _v2[1] = quadraticAt(y0, y1, y2, next);\n var d2 = v2DistSquare(_v2, _v0);\n if (next <= 1 && d2 < d) {\n t = next;\n d = d2;\n }\n else {\n interval *= 0.5;\n }\n }\n }\n if (out) {\n out[0] = quadraticAt(x0, x1, x2, t);\n out[1] = quadraticAt(y0, y1, y2, t);\n }\n return mathSqrt(d);\n}\nexport function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\n var px = x0;\n var py = y0;\n var d = 0;\n var step = 1 / iteration;\n for (var i = 1; i <= iteration; i++) {\n var t = i * step;\n var x = quadraticAt(x0, x1, x2, t);\n var y = quadraticAt(y0, y1, y2, t);\n var dx = x - px;\n var dy = y - py;\n d += Math.sqrt(dx * dx + dy * dy);\n px = x;\n py = y;\n }\n return d;\n}\n","import * as vec2 from './vector';\nimport * as curve from './curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\nexport function fromPoints(points, min, max) {\n if (points.length === 0) {\n return;\n }\n var p = points[0];\n var left = p[0];\n var right = p[0];\n var top = p[1];\n var bottom = p[1];\n for (var i = 1; i < points.length; i++) {\n p = points[i];\n left = mathMin(left, p[0]);\n right = mathMax(right, p[0]);\n top = mathMin(top, p[1]);\n bottom = mathMax(bottom, p[1]);\n }\n min[0] = left;\n min[1] = top;\n max[0] = right;\n max[1] = bottom;\n}\nexport function fromLine(x0, y0, x1, y1, min, max) {\n min[0] = mathMin(x0, x1);\n min[1] = mathMin(y0, y1);\n max[0] = mathMax(x0, x1);\n max[1] = mathMax(y0, y1);\n}\nvar xDim = [];\nvar yDim = [];\nexport function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n var cubicExtrema = curve.cubicExtrema;\n var cubicAt = curve.cubicAt;\n var n = cubicExtrema(x0, x1, x2, x3, xDim);\n min[0] = Infinity;\n min[1] = Infinity;\n max[0] = -Infinity;\n max[1] = -Infinity;\n for (var i = 0; i < n; i++) {\n var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n min[0] = mathMin(x, min[0]);\n max[0] = mathMax(x, max[0]);\n }\n n = cubicExtrema(y0, y1, y2, y3, yDim);\n for (var i = 0; i < n; i++) {\n var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n min[1] = mathMin(y, min[1]);\n max[1] = mathMax(y, max[1]);\n }\n min[0] = mathMin(x0, min[0]);\n max[0] = mathMax(x0, max[0]);\n min[0] = mathMin(x3, min[0]);\n max[0] = mathMax(x3, max[0]);\n min[1] = mathMin(y0, min[1]);\n max[1] = mathMax(y0, max[1]);\n min[1] = mathMin(y3, min[1]);\n max[1] = mathMax(y3, max[1]);\n}\nexport function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n var quadraticExtremum = curve.quadraticExtremum;\n var quadraticAt = curve.quadraticAt;\n var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n var x = quadraticAt(x0, x1, x2, tx);\n var y = quadraticAt(y0, y1, y2, ty);\n min[0] = mathMin(x0, x2, x);\n min[1] = mathMin(y0, y2, y);\n max[0] = mathMax(x0, x2, x);\n max[1] = mathMax(y0, y2, y);\n}\nexport function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n var vec2Min = vec2.min;\n var vec2Max = vec2.max;\n var diff = Math.abs(startAngle - endAngle);\n if (diff % PI2 < 1e-4 && diff > 1e-4) {\n min[0] = x - rx;\n min[1] = y - ry;\n max[0] = x + rx;\n max[1] = y + ry;\n return;\n }\n start[0] = mathCos(startAngle) * rx + x;\n start[1] = mathSin(startAngle) * ry + y;\n end[0] = mathCos(endAngle) * rx + x;\n end[1] = mathSin(endAngle) * ry + y;\n vec2Min(min, start, end);\n vec2Max(max, start, end);\n startAngle = startAngle % (PI2);\n if (startAngle < 0) {\n startAngle = startAngle + PI2;\n }\n endAngle = endAngle % (PI2);\n if (endAngle < 0) {\n endAngle = endAngle + PI2;\n }\n if (startAngle > endAngle && !anticlockwise) {\n endAngle += PI2;\n }\n else if (startAngle < endAngle && anticlockwise) {\n startAngle += PI2;\n }\n if (anticlockwise) {\n var tmp = endAngle;\n endAngle = startAngle;\n startAngle = tmp;\n }\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n if (angle > startAngle) {\n extremity[0] = mathCos(angle) * rx + x;\n extremity[1] = mathSin(angle) * ry + y;\n vec2Min(min, extremity, min);\n vec2Max(max, extremity, max);\n }\n }\n}\n","import * as vec2 from './vector';\nimport BoundingRect from './BoundingRect';\nimport { devicePixelRatio as dpr } from '../config';\nimport { fromLine, fromCubic, fromQuadratic, fromArc } from './bbox';\nimport { cubicAt, cubicLength, cubicSubdivide, quadraticLength, quadraticSubdivide } from './curve';\nvar CMD = {\n M: 1,\n L: 2,\n C: 3,\n Q: 4,\n A: 5,\n Z: 6,\n R: 7\n};\nvar tmpOutX = [];\nvar tmpOutY = [];\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\nvar tmpAngles = [];\nfunction modPI2(radian) {\n var n = Math.round(radian / PI * 1e8) / 1e8;\n return (n % 2) * PI;\n}\nexport function normalizeArcAngles(angles, anticlockwise) {\n var newStartAngle = modPI2(angles[0]);\n if (newStartAngle < 0) {\n newStartAngle += PI2;\n }\n var delta = newStartAngle - angles[0];\n var newEndAngle = angles[1];\n newEndAngle += delta;\n if (!anticlockwise && newEndAngle - newStartAngle >= PI2) {\n newEndAngle = newStartAngle + PI2;\n }\n else if (anticlockwise && newStartAngle - newEndAngle >= PI2) {\n newEndAngle = newStartAngle - PI2;\n }\n else if (!anticlockwise && newStartAngle > newEndAngle) {\n newEndAngle = newStartAngle +\n (PI2 - modPI2(newStartAngle - newEndAngle));\n }\n else if (anticlockwise && newStartAngle < newEndAngle) {\n newEndAngle = newStartAngle -\n (PI2 - modPI2(newEndAngle - newStartAngle));\n }\n angles[0] = newStartAngle;\n angles[1] = newEndAngle;\n}\nvar PathProxy = (function () {\n function PathProxy(notSaveData) {\n this.dpr = 1;\n this._version = 0;\n this._xi = 0;\n this._yi = 0;\n this._x0 = 0;\n this._y0 = 0;\n this._len = 0;\n if (notSaveData) {\n this._saveData = false;\n }\n if (this._saveData) {\n this.data = [];\n }\n }\n PathProxy.prototype.increaseVersion = function () {\n this._version++;\n };\n PathProxy.prototype.getVersion = function () {\n return this._version;\n };\n PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n if (segmentIgnoreThreshold > 0) {\n this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n }\n };\n PathProxy.prototype.setDPR = function (dpr) {\n this.dpr = dpr;\n };\n PathProxy.prototype.setContext = function (ctx) {\n this._ctx = ctx;\n };\n PathProxy.prototype.getContext = function () {\n return this._ctx;\n };\n PathProxy.prototype.beginPath = function () {\n this._ctx && this._ctx.beginPath();\n this.reset();\n return this;\n };\n PathProxy.prototype.reset = function () {\n if (this._saveData) {\n this._len = 0;\n }\n if (this._lineDash) {\n this._lineDash = null;\n this._dashOffset = 0;\n }\n if (this._pathSegLen) {\n this._pathSegLen = null;\n this._pathLen = 0;\n }\n this._version++;\n };\n PathProxy.prototype.moveTo = function (x, y) {\n this.addData(CMD.M, x, y);\n this._ctx && this._ctx.moveTo(x, y);\n this._x0 = x;\n this._y0 = y;\n this._xi = x;\n this._yi = y;\n return this;\n };\n PathProxy.prototype.lineTo = function (x, y) {\n var exceedUnit = mathAbs(x - this._xi) > this._ux\n || mathAbs(y - this._yi) > this._uy\n || this._len < 5;\n this.addData(CMD.L, x, y);\n if (this._ctx && exceedUnit) {\n this._needsDash ? this._dashedLineTo(x, y)\n : this._ctx.lineTo(x, y);\n }\n if (exceedUnit) {\n this._xi = x;\n this._yi = y;\n }\n return this;\n };\n PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n if (this._ctx) {\n this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\n : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n }\n this._xi = x3;\n this._yi = y3;\n return this;\n };\n PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\n this.addData(CMD.Q, x1, y1, x2, y2);\n if (this._ctx) {\n this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\n : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n }\n this._xi = x2;\n this._yi = y2;\n return this;\n };\n PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n tmpAngles[0] = startAngle;\n tmpAngles[1] = endAngle;\n normalizeArcAngles(tmpAngles, anticlockwise);\n startAngle = tmpAngles[0];\n endAngle = tmpAngles[1];\n var delta = endAngle - startAngle;\n this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n this._xi = mathCos(endAngle) * r + cx;\n this._yi = mathSin(endAngle) * r + cy;\n return this;\n };\n PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\n if (this._ctx) {\n this._ctx.arcTo(x1, y1, x2, y2, radius);\n }\n return this;\n };\n PathProxy.prototype.rect = function (x, y, w, h) {\n this._ctx && this._ctx.rect(x, y, w, h);\n this.addData(CMD.R, x, y, w, h);\n return this;\n };\n PathProxy.prototype.closePath = function () {\n this.addData(CMD.Z);\n var ctx = this._ctx;\n var x0 = this._x0;\n var y0 = this._y0;\n if (ctx) {\n this._needsDash && this._dashedLineTo(x0, y0);\n ctx.closePath();\n }\n this._xi = x0;\n this._yi = y0;\n return this;\n };\n PathProxy.prototype.fill = function (ctx) {\n ctx && ctx.fill();\n this.toStatic();\n };\n PathProxy.prototype.stroke = function (ctx) {\n ctx && ctx.stroke();\n this.toStatic();\n };\n PathProxy.prototype.setLineDash = function (lineDash) {\n if (lineDash instanceof Array) {\n this._lineDash = lineDash;\n this._dashIdx = 0;\n var lineDashSum = 0;\n for (var i = 0; i < lineDash.length; i++) {\n lineDashSum += lineDash[i];\n }\n this._dashSum = lineDashSum;\n this._needsDash = true;\n }\n else {\n this._lineDash = null;\n this._needsDash = false;\n }\n return this;\n };\n PathProxy.prototype.setLineDashOffset = function (offset) {\n this._dashOffset = offset;\n return this;\n };\n PathProxy.prototype.len = function () {\n return this._len;\n };\n PathProxy.prototype.setData = function (data) {\n var len = data.length;\n if (!(this.data && this.data.length === len) && hasTypedArray) {\n this.data = new Float32Array(len);\n }\n for (var i = 0; i < len; i++) {\n this.data[i] = data[i];\n }\n this._len = len;\n };\n PathProxy.prototype.appendPath = function (path) {\n if (!(path instanceof Array)) {\n path = [path];\n }\n var len = path.length;\n var appendSize = 0;\n var offset = this._len;\n for (var i = 0; i < len; i++) {\n appendSize += path[i].len();\n }\n if (hasTypedArray && (this.data instanceof Float32Array)) {\n this.data = new Float32Array(offset + appendSize);\n }\n for (var i = 0; i < len; i++) {\n var appendPathData = path[i].data;\n for (var k = 0; k < appendPathData.length; k++) {\n this.data[offset++] = appendPathData[k];\n }\n }\n this._len = offset;\n };\n PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\n if (!this._saveData) {\n return;\n }\n var data = this.data;\n if (this._len + arguments.length > data.length) {\n this._expandData();\n data = this.data;\n }\n for (var i = 0; i < arguments.length; i++) {\n data[this._len++] = arguments[i];\n }\n };\n PathProxy.prototype._expandData = function () {\n if (!(this.data instanceof Array)) {\n var newData = [];\n for (var i = 0; i < this._len; i++) {\n newData[i] = this.data[i];\n }\n this.data = newData;\n }\n };\n PathProxy.prototype._dashedLineTo = function (x1, y1) {\n var dashSum = this._dashSum;\n var lineDash = this._lineDash;\n var ctx = this._ctx;\n var offset = this._dashOffset;\n var x0 = this._xi;\n var y0 = this._yi;\n var dx = x1 - x0;\n var dy = y1 - y0;\n var dist = mathSqrt(dx * dx + dy * dy);\n var x = x0;\n var y = y0;\n var nDash = lineDash.length;\n var dash;\n var idx;\n dx /= dist;\n dy /= dist;\n if (offset < 0) {\n offset = dashSum + offset;\n }\n offset %= dashSum;\n x -= offset * dx;\n y -= offset * dy;\n while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\n || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\n idx = this._dashIdx;\n dash = lineDash[idx];\n x += dx * dash;\n y += dy * dash;\n this._dashIdx = (idx + 1) % nDash;\n if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\n continue;\n }\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n }\n dx = x - x1;\n dy = y - y1;\n this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n };\n PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\n var ctx = this._ctx;\n var dashSum = this._dashSum;\n var offset = this._dashOffset;\n var lineDash = this._lineDash;\n var x0 = this._xi;\n var y0 = this._yi;\n var bezierLen = 0;\n var idx = this._dashIdx;\n var nDash = lineDash.length;\n var t;\n var dx;\n var dy;\n var x;\n var y;\n var tmpLen = 0;\n if (offset < 0) {\n offset = dashSum + offset;\n }\n offset %= dashSum;\n for (t = 0; t < 1; t += 0.1) {\n dx = cubicAt(x0, x1, x2, x3, t + 0.1)\n - cubicAt(x0, x1, x2, x3, t);\n dy = cubicAt(y0, y1, y2, y3, t + 0.1)\n - cubicAt(y0, y1, y2, y3, t);\n bezierLen += mathSqrt(dx * dx + dy * dy);\n }\n for (; idx < nDash; idx++) {\n tmpLen += lineDash[idx];\n if (tmpLen > offset) {\n break;\n }\n }\n t = (tmpLen - offset) / bezierLen;\n while (t <= 1) {\n x = cubicAt(x0, x1, x2, x3, t);\n y = cubicAt(y0, y1, y2, y3, t);\n idx % 2 ? ctx.moveTo(x, y)\n : ctx.lineTo(x, y);\n t += lineDash[idx] / bezierLen;\n idx = (idx + 1) % nDash;\n }\n (idx % 2 !== 0) && ctx.lineTo(x3, y3);\n dx = x3 - x;\n dy = y3 - y;\n this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n };\n PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\n var x3 = x2;\n var y3 = y2;\n x2 = (x2 + 2 * x1) / 3;\n y2 = (y2 + 2 * y1) / 3;\n x1 = (this._xi + 2 * x1) / 3;\n y1 = (this._yi + 2 * y1) / 3;\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n };\n PathProxy.prototype.toStatic = function () {\n if (!this._saveData) {\n return;\n }\n var data = this.data;\n if (data instanceof Array) {\n data.length = this._len;\n if (hasTypedArray && this._len > 11) {\n this.data = new Float32Array(data);\n }\n }\n };\n PathProxy.prototype.getBoundingRect = function () {\n min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n var data = this.data;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var i;\n for (i = 0; i < this._len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n switch (cmd) {\n case CMD.M:\n xi = x0 = data[i++];\n yi = y0 = data[i++];\n min2[0] = x0;\n min2[1] = y0;\n max2[0] = x0;\n max2[1] = y0;\n break;\n case CMD.L:\n fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.C:\n fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.Q:\n fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var startAngle = data[i++];\n var endAngle = data[i++] + startAngle;\n i += 1;\n var anticlockwise = !data[i++];\n if (isFirst) {\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n break;\n case CMD.Z:\n xi = x0;\n yi = y0;\n break;\n }\n vec2.min(min, min, min2);\n vec2.max(max, max, max2);\n }\n if (i === 0) {\n min[0] = min[1] = max[0] = max[1] = 0;\n }\n return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n };\n PathProxy.prototype._calculateLength = function () {\n var data = this.data;\n var len = this._len;\n var ux = this._ux;\n var uy = this._uy;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n if (!this._pathSegLen) {\n this._pathSegLen = [];\n }\n var pathSegLen = this._pathSegLen;\n var pathTotalLen = 0;\n var segCount = 0;\n for (var i = 0; i < len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n var l = -1;\n switch (cmd) {\n case CMD.M:\n xi = x0 = data[i++];\n yi = y0 = data[i++];\n break;\n case CMD.L: {\n var x2 = data[i++];\n var y2 = data[i++];\n var dx = x2 - xi;\n var dy = y2 - yi;\n if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\n l = Math.sqrt(dx * dx + dy * dy);\n xi = x2;\n yi = y2;\n }\n break;\n }\n case CMD.C: {\n var x1 = data[i++];\n var y1 = data[i++];\n var x2 = data[i++];\n var y2 = data[i++];\n var x3 = data[i++];\n var y3 = data[i++];\n l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\n xi = x3;\n yi = y3;\n break;\n }\n case CMD.Q: {\n var x1 = data[i++];\n var y1 = data[i++];\n var x2 = data[i++];\n var y2 = data[i++];\n l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\n xi = x2;\n yi = y2;\n break;\n }\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var startAngle = data[i++];\n var delta = data[i++];\n var endAngle = delta + startAngle;\n i += 1;\n var anticlockwise = !data[i++];\n if (isFirst) {\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n l = mathMax(rx, ry) * mathMin(PI2, Math.abs(delta));\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n case CMD.R: {\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n l = width * 2 + height * 2;\n break;\n }\n case CMD.Z: {\n var dx = x0 - xi;\n var dy = y0 - yi;\n l = Math.sqrt(dx * dx + dy * dy);\n xi = x0;\n yi = y0;\n break;\n }\n }\n if (l >= 0) {\n pathSegLen[segCount++] = l;\n pathTotalLen += l;\n }\n }\n this._pathLen = pathTotalLen;\n return pathTotalLen;\n };\n PathProxy.prototype.rebuildPath = function (ctx, percent) {\n var d = this.data;\n var ux = this._ux;\n var uy = this._uy;\n var len = this._len;\n var x0;\n var y0;\n var xi;\n var yi;\n var x;\n var y;\n var drawPart = percent < 1;\n var pathSegLen;\n var pathTotalLen;\n var accumLength = 0;\n var segCount = 0;\n var displayedLength;\n if (drawPart) {\n if (!this._pathSegLen) {\n this._calculateLength();\n }\n pathSegLen = this._pathSegLen;\n pathTotalLen = this._pathLen;\n displayedLength = percent * pathTotalLen;\n if (!displayedLength) {\n return;\n }\n }\n lo: for (var i = 0; i < len;) {\n var cmd = d[i++];\n var isFirst = i === 1;\n if (isFirst) {\n xi = d[i];\n yi = d[i + 1];\n x0 = xi;\n y0 = yi;\n }\n switch (cmd) {\n case CMD.M:\n x0 = xi = d[i++];\n y0 = yi = d[i++];\n ctx.moveTo(xi, yi);\n break;\n case CMD.L: {\n x = d[i++];\n y = d[i++];\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\n break lo;\n }\n accumLength += l;\n }\n ctx.lineTo(x, y);\n xi = x;\n yi = y;\n }\n break;\n }\n case CMD.C: {\n var x1 = d[i++];\n var y1 = d[i++];\n var x2 = d[i++];\n var y2 = d[i++];\n var x3 = d[i++];\n var y3 = d[i++];\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\n cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\n ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\n break lo;\n }\n accumLength += l;\n }\n ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n xi = x3;\n yi = y3;\n break;\n }\n case CMD.Q: {\n var x1 = d[i++];\n var y1 = d[i++];\n var x2 = d[i++];\n var y2 = d[i++];\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n quadraticSubdivide(xi, x1, x2, t, tmpOutX);\n quadraticSubdivide(yi, y1, y2, t, tmpOutY);\n ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\n break lo;\n }\n accumLength += l;\n }\n ctx.quadraticCurveTo(x1, y1, x2, y2);\n xi = x2;\n yi = y2;\n break;\n }\n case CMD.A:\n var cx = d[i++];\n var cy = d[i++];\n var rx = d[i++];\n var ry = d[i++];\n var startAngle = d[i++];\n var delta = d[i++];\n var psi = d[i++];\n var anticlockwise = !d[i++];\n var r = (rx > ry) ? rx : ry;\n var scaleX = (rx > ry) ? 1 : rx / ry;\n var scaleY = (rx > ry) ? ry / rx : 1;\n var isEllipse = mathAbs(rx - ry) > 1e-3;\n var endAngle = startAngle + delta;\n var breakBuild = false;\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n endAngle = startAngle + delta * (displayedLength - accumLength) / l;\n breakBuild = true;\n }\n accumLength += l;\n }\n if (isEllipse && ctx.ellipse) {\n ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\n }\n else {\n ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n }\n if (breakBuild) {\n break lo;\n }\n if (isFirst) {\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = d[i];\n y0 = yi = d[i + 1];\n x = d[i++];\n y = d[i++];\n var width = d[i++];\n var height = d[i++];\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var d_1 = displayedLength - accumLength;\n ctx.moveTo(x, y);\n ctx.lineTo(x + mathMin(d_1, width), y);\n d_1 -= width;\n if (d_1 > 0) {\n ctx.lineTo(x + width, y + mathMin(d_1, height));\n }\n d_1 -= height;\n if (d_1 > 0) {\n ctx.lineTo(x + mathMax(width - d_1, 0), y + height);\n }\n d_1 -= width;\n if (d_1 > 0) {\n ctx.lineTo(x, y + mathMax(height - d_1, 0));\n }\n break lo;\n }\n accumLength += l;\n }\n ctx.rect(x, y, width, height);\n break;\n case CMD.Z:\n if (drawPart) {\n var l = pathSegLen[segCount++];\n if (accumLength + l > displayedLength) {\n var t = (displayedLength - accumLength) / l;\n ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\n break lo;\n }\n accumLength += l;\n }\n ctx.closePath();\n xi = x0;\n yi = y0;\n }\n }\n };\n PathProxy.CMD = CMD;\n PathProxy.initDefaultProps = (function () {\n var proto = PathProxy.prototype;\n proto._saveData = true;\n proto._needsDash = false;\n proto._dashOffset = 0;\n proto._dashIdx = 0;\n proto._dashSum = 0;\n proto._ux = 0;\n proto._uy = 0;\n })();\n return PathProxy;\n}());\nexport default PathProxy;\n","export function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n var _a = 0;\n var _b = x0;\n if ((y > y0 + _l && y > y1 + _l)\n || (y < y0 - _l && y < y1 - _l)\n || (x > x0 + _l && x > x1 + _l)\n || (x < x0 - _l && x < x1 - _l)) {\n return false;\n }\n if (x0 !== x1) {\n _a = (y0 - y1) / (x0 - x1);\n _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n }\n else {\n return Math.abs(x - x0) <= _l / 2;\n }\n var tmp = _a * x - y + _b;\n var _s = tmp * tmp / (_a * _a + 1);\n return _s <= _l / 2 * _l / 2;\n}\n","import * as curve from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\n return false;\n }\n var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n return d <= _l / 2;\n}\n","import { quadraticProjectPoint } from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\n return false;\n }\n var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n return d <= _l / 2;\n}\n","var PI2 = Math.PI * 2;\nexport function normalizeRadian(angle) {\n angle %= PI2;\n if (angle < 0) {\n angle += PI2;\n }\n return angle;\n}\n","import { normalizeRadian } from './util';\nvar PI2 = Math.PI * 2;\nexport function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n if (lineWidth === 0) {\n return false;\n }\n var _l = lineWidth;\n x -= cx;\n y -= cy;\n var d = Math.sqrt(x * x + y * y);\n if ((d - _l > r) || (d + _l < r)) {\n return false;\n }\n if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n return true;\n }\n if (anticlockwise) {\n var tmp = startAngle;\n startAngle = normalizeRadian(endAngle);\n endAngle = normalizeRadian(tmp);\n }\n else {\n startAngle = normalizeRadian(startAngle);\n endAngle = normalizeRadian(endAngle);\n }\n if (startAngle > endAngle) {\n endAngle += PI2;\n }\n var angle = Math.atan2(y, x);\n if (angle < 0) {\n angle += PI2;\n }\n return (angle >= startAngle && angle <= endAngle)\n || (angle + PI2 >= startAngle && angle + PI2 <= endAngle);\n}\n","export default function windingLine(x0, y0, x1, y1, x, y) {\n if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\n return 0;\n }\n if (y1 === y0) {\n return 0;\n }\n var t = (y - y0) / (y1 - y0);\n var dir = y1 < y0 ? 1 : -1;\n if (t === 1 || t === 0) {\n dir = y1 < y0 ? 0.5 : -0.5;\n }\n var x_ = t * (x1 - x0) + x0;\n return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n","import PathProxy from '../core/PathProxy';\nimport * as line from './line';\nimport * as cubic from './cubic';\nimport * as quadratic from './quadratic';\nimport * as arc from './arc';\nimport * as curve from '../core/curve';\nimport windingLine from './windingLine';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n var tmp = extrema[0];\n extrema[0] = extrema[1];\n extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n if ((y > y0 && y > y1 && y > y2 && y > y3)\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\n return 0;\n }\n var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n if (nRoots === 0) {\n return 0;\n }\n else {\n var w = 0;\n var nExtrema = -1;\n var y0_ = void 0;\n var y1_ = void 0;\n for (var i = 0; i < nRoots; i++) {\n var t = roots[i];\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\n var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n if (x_ < x) {\n continue;\n }\n if (nExtrema < 0) {\n nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n if (extrema[1] < extrema[0] && nExtrema > 1) {\n swapExtrema();\n }\n y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n if (nExtrema > 1) {\n y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n }\n }\n if (nExtrema === 2) {\n if (t < extrema[0]) {\n w += y0_ < y0 ? unit : -unit;\n }\n else if (t < extrema[1]) {\n w += y1_ < y0_ ? unit : -unit;\n }\n else {\n w += y3 < y1_ ? unit : -unit;\n }\n }\n else {\n if (t < extrema[0]) {\n w += y0_ < y0 ? unit : -unit;\n }\n else {\n w += y3 < y0_ ? unit : -unit;\n }\n }\n }\n return w;\n }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n if ((y > y0 && y > y1 && y > y2)\n || (y < y0 && y < y1 && y < y2)) {\n return 0;\n }\n var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n if (nRoots === 0) {\n return 0;\n }\n else {\n var t = curve.quadraticExtremum(y0, y1, y2);\n if (t >= 0 && t <= 1) {\n var w = 0;\n var y_ = curve.quadraticAt(y0, y1, y2, t);\n for (var i = 0; i < nRoots; i++) {\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n if (x_ < x) {\n continue;\n }\n if (roots[i] < t) {\n w += y_ < y0 ? unit : -unit;\n }\n else {\n w += y2 < y_ ? unit : -unit;\n }\n }\n return w;\n }\n else {\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n if (x_ < x) {\n return 0;\n }\n return y2 < y0 ? unit : -unit;\n }\n }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n y -= cy;\n if (y > r || y < -r) {\n return 0;\n }\n var tmp = Math.sqrt(r * r - y * y);\n roots[0] = -tmp;\n roots[1] = tmp;\n var dTheta = Math.abs(startAngle - endAngle);\n if (dTheta < 1e-4) {\n return 0;\n }\n if (dTheta >= PI2 - 1e-4) {\n startAngle = 0;\n endAngle = PI2;\n var dir = anticlockwise ? 1 : -1;\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\n return dir;\n }\n else {\n return 0;\n }\n }\n if (startAngle > endAngle) {\n var tmp_1 = startAngle;\n startAngle = endAngle;\n endAngle = tmp_1;\n }\n if (startAngle < 0) {\n startAngle += PI2;\n endAngle += PI2;\n }\n var w = 0;\n for (var i = 0; i < 2; i++) {\n var x_ = roots[i];\n if (x_ + cx > x) {\n var angle = Math.atan2(y, x_);\n var dir = anticlockwise ? 1 : -1;\n if (angle < 0) {\n angle = PI2 + angle;\n }\n if ((angle >= startAngle && angle <= endAngle)\n || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n dir = -dir;\n }\n w += dir;\n }\n }\n }\n return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n var data = path.data;\n var len = path.len();\n var w = 0;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var x1;\n var y1;\n for (var i = 0; i < len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (cmd === CMD.M && i > 1) {\n if (!isStroke) {\n w += windingLine(xi, yi, x0, y0, x, y);\n }\n }\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n switch (cmd) {\n case CMD.M:\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n break;\n case CMD.L:\n if (isStroke) {\n if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.C:\n if (isStroke) {\n if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.Q:\n if (isStroke) {\n if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n }\n xi = data[i++];\n yi = data[i++];\n break;\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var theta = data[i++];\n var dTheta = data[i++];\n i += 1;\n var anticlockwise = !!(1 - data[i++]);\n x1 = Math.cos(theta) * rx + cx;\n y1 = Math.sin(theta) * ry + cy;\n if (!isFirst) {\n w += windingLine(xi, yi, x1, y1, x, y);\n }\n else {\n x0 = x1;\n y0 = y1;\n }\n var _x = (x - cx) * ry / rx + cx;\n if (isStroke) {\n if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n return true;\n }\n }\n else {\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n }\n xi = Math.cos(theta + dTheta) * rx + cx;\n yi = Math.sin(theta + dTheta) * ry + cy;\n break;\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n x1 = x0 + width;\n y1 = y0 + height;\n if (isStroke) {\n if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(x1, y0, x1, y1, x, y);\n w += windingLine(x0, y1, x0, y0, x, y);\n }\n break;\n case CMD.Z:\n if (isStroke) {\n if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n return true;\n }\n }\n else {\n w += windingLine(xi, yi, x0, y0, x, y);\n }\n xi = x0;\n yi = y0;\n break;\n }\n }\n if (!isStroke && !isAroundEqual(yi, y0)) {\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\n }\n return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n return containPath(pathProxy, lineWidth, true, x, y);\n}\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport Element from '../Element';\nimport PathProxy from '../core/PathProxy';\nimport * as pathContain from '../contain/path';\nimport { defaults, keys, extend, clone, isString, createObject } from '../core/util';\nimport { lum } from '../tool/color';\nimport { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config';\nexport var DEFAULT_PATH_STYLE = defaults({\n fill: '#000',\n stroke: null,\n strokePercent: 1,\n fillOpacity: 1,\n strokeOpacity: 1,\n lineDashOffset: 0,\n lineWidth: 1,\n lineCap: 'butt',\n miterLimit: 10,\n strokeNoScale: false,\n strokeFirst: false\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_PATH_ANIMATION_PROPS = {\n style: defaults({\n fill: true,\n stroke: true,\n strokePercent: true,\n fillOpacity: true,\n strokeOpacity: true,\n lineDashOffset: true,\n lineWidth: true,\n miterLimit: true\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar pathCopyParams = [\n 'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\n 'culling', 'z', 'z2', 'zlevel', 'parent'\n];\nvar Path = (function (_super) {\n __extends(Path, _super);\n function Path(opts) {\n return _super.call(this, opts) || this;\n }\n Path.prototype.update = function () {\n var _this = this;\n _super.prototype.update.call(this);\n var style = this.style;\n if (style.decal) {\n var decalEl = this._decalEl\n = this._decalEl || new Path();\n if (decalEl.buildPath === Path.prototype.buildPath) {\n decalEl.buildPath = function (ctx) {\n _this.buildPath(ctx, _this.shape);\n };\n }\n decalEl.silent = true;\n var decalElStyle = decalEl.style;\n for (var key in style) {\n if (decalElStyle[key] !== style[key]) {\n decalElStyle[key] = style[key];\n }\n }\n decalElStyle.fill = style.fill ? style.decal : null;\n decalElStyle.decal = null;\n decalElStyle.shadowColor = null;\n style.strokeFirst && (decalElStyle.stroke = null);\n for (var i = 0; i < pathCopyParams.length; ++i) {\n decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\n }\n decalEl.__dirty |= Element.REDARAW_BIT;\n }\n else if (this._decalEl) {\n this._decalEl = null;\n }\n };\n Path.prototype.getDecalElement = function () {\n return this._decalEl;\n };\n Path.prototype._init = function (props) {\n var keysArr = keys(props);\n this.shape = this.getDefaultShape();\n var defaultStyle = this.getDefaultStyle();\n if (defaultStyle) {\n this.useStyle(defaultStyle);\n }\n for (var i = 0; i < keysArr.length; i++) {\n var key = keysArr[i];\n var value = props[key];\n if (key === 'style') {\n if (!this.style) {\n this.useStyle(value);\n }\n else {\n extend(this.style, value);\n }\n }\n else if (key === 'shape') {\n extend(this.shape, value);\n }\n else {\n _super.prototype.attrKV.call(this, key, value);\n }\n }\n if (!this.style) {\n this.useStyle({});\n }\n };\n Path.prototype.getDefaultStyle = function () {\n return null;\n };\n Path.prototype.getDefaultShape = function () {\n return {};\n };\n Path.prototype.canBeInsideText = function () {\n return this.hasFill();\n };\n Path.prototype.getInsideTextFill = function () {\n var pathFill = this.style.fill;\n if (pathFill !== 'none') {\n if (isString(pathFill)) {\n var fillLum = lum(pathFill, 0);\n if (fillLum > 0.5) {\n return DARK_LABEL_COLOR;\n }\n else if (fillLum > 0.2) {\n return LIGHTER_LABEL_COLOR;\n }\n return LIGHT_LABEL_COLOR;\n }\n else if (pathFill) {\n return LIGHT_LABEL_COLOR;\n }\n }\n return DARK_LABEL_COLOR;\n };\n Path.prototype.getInsideTextStroke = function (textFill) {\n var pathFill = this.style.fill;\n if (isString(pathFill)) {\n var zr = this.__zr;\n var isDarkMode = !!(zr && zr.isDarkMode());\n var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\n if (isDarkMode === isDarkLabel) {\n return pathFill;\n }\n }\n };\n Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\n Path.prototype.pathUpdated = function () {\n this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\n };\n Path.prototype.createPathProxy = function () {\n this.path = new PathProxy(false);\n };\n Path.prototype.hasStroke = function () {\n var style = this.style;\n var stroke = style.stroke;\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n };\n Path.prototype.hasFill = function () {\n var style = this.style;\n var fill = style.fill;\n return fill != null && fill !== 'none';\n };\n Path.prototype.getBoundingRect = function () {\n var rect = this._rect;\n var style = this.style;\n var needsUpdateRect = !rect;\n if (needsUpdateRect) {\n var firstInvoke = false;\n if (!this.path) {\n firstInvoke = true;\n this.createPathProxy();\n }\n var path = this.path;\n if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\n path.beginPath();\n this.buildPath(path, this.shape, false);\n this.pathUpdated();\n }\n rect = path.getBoundingRect();\n }\n this._rect = rect;\n if (this.hasStroke() && this.path && this.path.len() > 0) {\n var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\n if (this.__dirty || needsUpdateRect) {\n rectWithStroke.copy(rect);\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n var w = style.lineWidth;\n if (!this.hasFill()) {\n var strokeContainThreshold = this.strokeContainThreshold;\n w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\n }\n if (lineScale > 1e-10) {\n rectWithStroke.width += w / lineScale;\n rectWithStroke.height += w / lineScale;\n rectWithStroke.x -= w / lineScale / 2;\n rectWithStroke.y -= w / lineScale / 2;\n }\n }\n return rectWithStroke;\n }\n return rect;\n };\n Path.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n var style = this.style;\n x = localPos[0];\n y = localPos[1];\n if (rect.contain(x, y)) {\n var pathProxy = this.path;\n if (this.hasStroke()) {\n var lineWidth = style.lineWidth;\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n if (lineScale > 1e-10) {\n if (!this.hasFill()) {\n lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n }\n if (pathContain.containStroke(pathProxy, lineWidth / lineScale, x, y)) {\n return true;\n }\n }\n }\n if (this.hasFill()) {\n return pathContain.contain(pathProxy, x, y);\n }\n }\n return false;\n };\n Path.prototype.dirtyShape = function () {\n this.__dirty |= Path.SHAPE_CHANGED_BIT;\n if (this._rect) {\n this._rect = null;\n }\n if (this._decalEl) {\n this._decalEl.dirtyShape();\n }\n this.markRedraw();\n };\n Path.prototype.dirty = function () {\n this.dirtyStyle();\n this.dirtyShape();\n };\n Path.prototype.animateShape = function (loop) {\n return this.animate('shape', loop);\n };\n Path.prototype.updateDuringAnimation = function (targetKey) {\n if (targetKey === 'style') {\n this.dirtyStyle();\n }\n else if (targetKey === 'shape') {\n this.dirtyShape();\n }\n else {\n this.markRedraw();\n }\n };\n Path.prototype.attrKV = function (key, value) {\n if (key === 'shape') {\n this.setShape(value);\n }\n else {\n _super.prototype.attrKV.call(this, key, value);\n }\n };\n Path.prototype.setShape = function (keyOrObj, value) {\n var shape = this.shape;\n if (!shape) {\n shape = this.shape = {};\n }\n if (typeof keyOrObj === 'string') {\n shape[keyOrObj] = value;\n }\n else {\n extend(shape, keyOrObj);\n }\n this.dirtyShape();\n return this;\n };\n Path.prototype.shapeChanged = function () {\n return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\n };\n Path.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_PATH_STYLE, obj);\n };\n Path.prototype._innerSaveToNormal = function (toState) {\n _super.prototype._innerSaveToNormal.call(this, toState);\n var normalState = this._normalState;\n if (toState.shape && !normalState.shape) {\n normalState.shape = extend({}, this.shape);\n }\n };\n Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n var needsRestoreToNormal = !(state && keepCurrentStates);\n var targetShape;\n if (state && state.shape) {\n if (transition) {\n if (keepCurrentStates) {\n targetShape = state.shape;\n }\n else {\n targetShape = extend({}, normalState.shape);\n extend(targetShape, state.shape);\n }\n }\n else {\n targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\n extend(targetShape, state.shape);\n }\n }\n else if (needsRestoreToNormal) {\n targetShape = normalState.shape;\n }\n if (targetShape) {\n if (transition) {\n this.shape = extend({}, this.shape);\n var targetShapePrimaryProps = {};\n var shapeKeys = keys(targetShape);\n for (var i = 0; i < shapeKeys.length; i++) {\n var key = shapeKeys[i];\n if (typeof targetShape[key] === 'object') {\n this.shape[key] = targetShape[key];\n }\n else {\n targetShapePrimaryProps[key] = targetShape[key];\n }\n }\n this._transitionState(stateName, {\n shape: targetShapePrimaryProps\n }, animationCfg);\n }\n else {\n this.shape = targetShape;\n this.dirtyShape();\n }\n }\n };\n Path.prototype._mergeStates = function (states) {\n var mergedState = _super.prototype._mergeStates.call(this, states);\n var mergedShape;\n for (var i = 0; i < states.length; i++) {\n var state = states[i];\n if (state.shape) {\n mergedShape = mergedShape || {};\n this._mergeStyle(mergedShape, state.shape);\n }\n }\n if (mergedShape) {\n mergedState.shape = mergedShape;\n }\n return mergedState;\n };\n Path.prototype.getAnimationStyleProps = function () {\n return DEFAULT_PATH_ANIMATION_PROPS;\n };\n Path.prototype.isZeroArea = function () {\n return false;\n };\n Path.extend = function (defaultProps) {\n var Sub = (function (_super) {\n __extends(Sub, _super);\n function Sub(opts) {\n var _this = _super.call(this, opts) || this;\n defaultProps.init && defaultProps.init.call(_this, opts);\n return _this;\n }\n Sub.prototype.getDefaultStyle = function () {\n return clone(defaultProps.style);\n };\n Sub.prototype.getDefaultShape = function () {\n return clone(defaultProps.shape);\n };\n return Sub;\n }(Path));\n for (var key in defaultProps) {\n if (typeof defaultProps[key] === 'function') {\n Sub.prototype[key] = defaultProps[key];\n }\n }\n return Sub;\n };\n Path.SHAPE_CHANGED_BIT = 4;\n Path.initDefaultProps = (function () {\n var pathProto = Path.prototype;\n pathProto.type = 'path';\n pathProto.strokeContainThreshold = 5;\n pathProto.segmentIgnoreThreshold = 0;\n pathProto.subPixelOptimize = false;\n pathProto.autoBatch = false;\n pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\n })();\n return Path;\n}(Displayable));\nexport default Path;\n","import { __extends } from \"tslib\";\nimport Displayable from './Displayable';\nimport { getBoundingRect, DEFAULT_FONT } from '../contain/text';\nimport { DEFAULT_PATH_STYLE } from './Path';\nimport { createObject, defaults } from '../core/util';\nexport var DEFAULT_TSPAN_STYLE = defaults({\n strokeFirst: true,\n font: DEFAULT_FONT,\n x: 0,\n y: 0,\n textAlign: 'left',\n textBaseline: 'top',\n miterLimit: 2\n}, DEFAULT_PATH_STYLE);\nvar TSpan = (function (_super) {\n __extends(TSpan, _super);\n function TSpan() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TSpan.prototype.hasStroke = function () {\n var style = this.style;\n var stroke = style.stroke;\n return stroke != null && stroke !== 'none' && style.lineWidth > 0;\n };\n TSpan.prototype.hasFill = function () {\n var style = this.style;\n var fill = style.fill;\n return fill != null && fill !== 'none';\n };\n TSpan.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_TSPAN_STYLE, obj);\n };\n TSpan.prototype.setBoundingRect = function (rect) {\n this._rect = rect;\n };\n TSpan.prototype.getBoundingRect = function () {\n var style = this.style;\n if (!this._rect) {\n var text = style.text;\n text != null ? (text += '') : (text = '');\n var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\n rect.x += style.x || 0;\n rect.y += style.y || 0;\n if (this.hasStroke()) {\n var w = style.lineWidth;\n rect.x -= w / 2;\n rect.y -= w / 2;\n rect.width += w;\n rect.height += w;\n }\n this._rect = rect;\n }\n return this._rect;\n };\n TSpan.initDefaultProps = (function () {\n var tspanProto = TSpan.prototype;\n tspanProto.dirtyRectTolerance = 10;\n })();\n return TSpan;\n}(Displayable));\nTSpan.prototype.type = 'tspan';\nexport default TSpan;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nimport { defaults, createObject } from '../core/util';\nexport var DEFAULT_IMAGE_STYLE = defaults({\n x: 0,\n y: 0\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_IMAGE_ANIMATION_PROPS = {\n style: defaults({\n x: true,\n y: true,\n width: true,\n height: true,\n sx: true,\n sy: true,\n sWidth: true,\n sHeight: true\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nfunction isImageLike(source) {\n return !!(source\n && typeof source !== 'string'\n && source.width && source.height);\n}\nvar ZRImage = (function (_super) {\n __extends(ZRImage, _super);\n function ZRImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ZRImage.prototype.createStyle = function (obj) {\n return createObject(DEFAULT_IMAGE_STYLE, obj);\n };\n ZRImage.prototype._getSize = function (dim) {\n var style = this.style;\n var size = style[dim];\n if (size != null) {\n return size;\n }\n var imageSource = isImageLike(style.image)\n ? style.image : this.__image;\n if (!imageSource) {\n return 0;\n }\n var otherDim = dim === 'width' ? 'height' : 'width';\n var otherDimSize = style[otherDim];\n if (otherDimSize == null) {\n return imageSource[dim];\n }\n else {\n return imageSource[dim] / imageSource[otherDim] * otherDimSize;\n }\n };\n ZRImage.prototype.getWidth = function () {\n return this._getSize('width');\n };\n ZRImage.prototype.getHeight = function () {\n return this._getSize('height');\n };\n ZRImage.prototype.getAnimationStyleProps = function () {\n return DEFAULT_IMAGE_ANIMATION_PROPS;\n };\n ZRImage.prototype.getBoundingRect = function () {\n var style = this.style;\n if (!this._rect) {\n this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\n }\n return this._rect;\n };\n return ZRImage;\n}(Displayable));\nZRImage.prototype.type = 'image';\nexport default ZRImage;\n","export function buildPath(ctx, shape) {\n var x = shape.x;\n var y = shape.y;\n var width = shape.width;\n var height = shape.height;\n var r = shape.r;\n var r1;\n var r2;\n var r3;\n var r4;\n if (width < 0) {\n x = x + width;\n width = -width;\n }\n if (height < 0) {\n y = y + height;\n height = -height;\n }\n if (typeof r === 'number') {\n r1 = r2 = r3 = r4 = r;\n }\n else if (r instanceof Array) {\n if (r.length === 1) {\n r1 = r2 = r3 = r4 = r[0];\n }\n else if (r.length === 2) {\n r1 = r3 = r[0];\n r2 = r4 = r[1];\n }\n else if (r.length === 3) {\n r1 = r[0];\n r2 = r4 = r[1];\n r3 = r[2];\n }\n else {\n r1 = r[0];\n r2 = r[1];\n r3 = r[2];\n r4 = r[3];\n }\n }\n else {\n r1 = r2 = r3 = r4 = 0;\n }\n var total;\n if (r1 + r2 > width) {\n total = r1 + r2;\n r1 *= width / total;\n r2 *= width / total;\n }\n if (r3 + r4 > width) {\n total = r3 + r4;\n r3 *= width / total;\n r4 *= width / total;\n }\n if (r2 + r3 > height) {\n total = r2 + r3;\n r2 *= height / total;\n r3 *= height / total;\n }\n if (r1 + r4 > height) {\n total = r1 + r4;\n r1 *= height / total;\n r4 *= height / total;\n }\n ctx.moveTo(x + r1, y);\n ctx.lineTo(x + width - r2, y);\n r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n ctx.lineTo(x + width, y + height - r3);\n r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n ctx.lineTo(x + r4, y + height);\n r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n ctx.lineTo(x, y + r1);\n r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n","var round = Math.round;\nexport function subPixelOptimizeLine(outputShape, inputShape, style) {\n if (!inputShape) {\n return;\n }\n var x1 = inputShape.x1;\n var x2 = inputShape.x2;\n var y1 = inputShape.y1;\n var y2 = inputShape.y2;\n outputShape.x1 = x1;\n outputShape.x2 = x2;\n outputShape.y1 = y1;\n outputShape.y2 = y2;\n var lineWidth = style && style.lineWidth;\n if (!lineWidth) {\n return outputShape;\n }\n if (round(x1 * 2) === round(x2 * 2)) {\n outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\n }\n if (round(y1 * 2) === round(y2 * 2)) {\n outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\n }\n return outputShape;\n}\nexport function subPixelOptimizeRect(outputShape, inputShape, style) {\n if (!inputShape) {\n return;\n }\n var originX = inputShape.x;\n var originY = inputShape.y;\n var originWidth = inputShape.width;\n var originHeight = inputShape.height;\n outputShape.x = originX;\n outputShape.y = originY;\n outputShape.width = originWidth;\n outputShape.height = originHeight;\n var lineWidth = style && style.lineWidth;\n if (!lineWidth) {\n return outputShape;\n }\n outputShape.x = subPixelOptimize(originX, lineWidth, true);\n outputShape.y = subPixelOptimize(originY, lineWidth, true);\n outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\n outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\n return outputShape;\n}\nexport function subPixelOptimize(position, lineWidth, positiveOrNegative) {\n if (!lineWidth) {\n return position;\n }\n var doubledPosition = round(position * 2);\n return (doubledPosition + round(lineWidth)) % 2 === 0\n ? doubledPosition / 2\n : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundRectHelper from '../helper/roundRect';\nimport { subPixelOptimizeRect } from '../helper/subPixelOptimize';\nvar RectShape = (function () {\n function RectShape() {\n this.x = 0;\n this.y = 0;\n this.width = 0;\n this.height = 0;\n }\n return RectShape;\n}());\nvar subPixelOptimizeOutputShape = {};\nvar Rect = (function (_super) {\n __extends(Rect, _super);\n function Rect(opts) {\n return _super.call(this, opts) || this;\n }\n Rect.prototype.getDefaultShape = function () {\n return new RectShape();\n };\n Rect.prototype.buildPath = function (ctx, shape) {\n var x;\n var y;\n var width;\n var height;\n if (this.subPixelOptimize) {\n var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\n x = optimizedShape.x;\n y = optimizedShape.y;\n width = optimizedShape.width;\n height = optimizedShape.height;\n optimizedShape.r = shape.r;\n shape = optimizedShape;\n }\n else {\n x = shape.x;\n y = shape.y;\n width = shape.width;\n height = shape.height;\n }\n if (!shape.r) {\n ctx.rect(x, y, width, height);\n }\n else {\n roundRectHelper.buildPath(ctx, shape);\n }\n };\n Rect.prototype.isZeroArea = function () {\n return !this.shape.width || !this.shape.height;\n };\n return Rect;\n}(Path));\nRect.prototype.type = 'rect';\nexport default Rect;\n","import { __extends } from \"tslib\";\nimport { parseRichText, parsePlainText } from './helper/parseText';\nimport TSpan from './TSpan';\nimport { retrieve2, isString, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util';\nimport { DEFAULT_FONT, adjustTextX, adjustTextY } from '../contain/text';\nimport ZRImage from './Image';\nimport Rect from './shape/Rect';\nimport BoundingRect from '../core/BoundingRect';\nimport { copy } from '../core/matrix';\nimport Displayable, { DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nvar DEFAULT_RICH_TEXT_COLOR = {\n fill: '#000'\n};\nvar DEFAULT_STROKE_LINE_WIDTH = 2;\nexport var DEFAULT_TEXT_ANIMATION_PROPS = {\n style: defaults({\n fill: true,\n stroke: true,\n fillOpacity: true,\n strokeOpacity: true,\n lineWidth: true,\n fontSize: true,\n lineHeight: true,\n width: true,\n height: true,\n textShadowColor: true,\n textShadowBlur: true,\n textShadowOffsetX: true,\n textShadowOffsetY: true,\n backgroundColor: true,\n padding: true,\n borderColor: true,\n borderWidth: true,\n borderRadius: true\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar ZRText = (function (_super) {\n __extends(ZRText, _super);\n function ZRText(opts) {\n var _this = _super.call(this) || this;\n _this.type = 'text';\n _this._children = [];\n _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\n _this.attr(opts);\n return _this;\n }\n ZRText.prototype.childrenRef = function () {\n return this._children;\n };\n ZRText.prototype.update = function () {\n if (this.styleChanged()) {\n this._updateSubTexts();\n }\n for (var i = 0; i < this._children.length; i++) {\n var child = this._children[i];\n child.zlevel = this.zlevel;\n child.z = this.z;\n child.z2 = this.z2;\n child.culling = this.culling;\n child.cursor = this.cursor;\n child.invisible = this.invisible;\n }\n var attachedTransform = this.attachedTransform;\n if (attachedTransform) {\n attachedTransform.updateTransform();\n var m = attachedTransform.transform;\n if (m) {\n this.transform = this.transform || [];\n copy(this.transform, m);\n }\n else {\n this.transform = null;\n }\n }\n else {\n _super.prototype.update.call(this);\n }\n };\n ZRText.prototype.getComputedTransform = function () {\n if (this.__hostTarget) {\n this.__hostTarget.getComputedTransform();\n this.__hostTarget.updateInnerText(true);\n }\n return this.attachedTransform ? this.attachedTransform.getComputedTransform()\n : _super.prototype.getComputedTransform.call(this);\n };\n ZRText.prototype._updateSubTexts = function () {\n this._childCursor = 0;\n normalizeTextStyle(this.style);\n this.style.rich\n ? this._updateRichTexts()\n : this._updatePlainTexts();\n this._children.length = this._childCursor;\n this.styleUpdated();\n };\n ZRText.prototype.addSelfToZr = function (zr) {\n _super.prototype.addSelfToZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n this._children[i].__zr = zr;\n }\n };\n ZRText.prototype.removeSelfFromZr = function (zr) {\n _super.prototype.removeSelfFromZr.call(this, zr);\n for (var i = 0; i < this._children.length; i++) {\n this._children[i].__zr = null;\n }\n };\n ZRText.prototype.getBoundingRect = function () {\n if (this.styleChanged()) {\n this._updateSubTexts();\n }\n if (!this._rect) {\n var tmpRect = new BoundingRect(0, 0, 0, 0);\n var children = this._children;\n var tmpMat = [];\n var rect = null;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n var childRect = child.getBoundingRect();\n var transform = child.getLocalTransform(tmpMat);\n if (transform) {\n tmpRect.copy(childRect);\n tmpRect.applyTransform(transform);\n rect = rect || tmpRect.clone();\n rect.union(tmpRect);\n }\n else {\n rect = rect || childRect.clone();\n rect.union(childRect);\n }\n }\n this._rect = rect || tmpRect;\n }\n return this._rect;\n };\n ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\n this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\n };\n ZRText.prototype.setTextContent = function (textContent) {\n throw new Error('Can\\'t attach text on another text');\n };\n ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n if (!sourceStyle) {\n return targetStyle;\n }\n var sourceRich = sourceStyle.rich;\n var targetRich = targetStyle.rich || (sourceRich && {});\n extend(targetStyle, sourceStyle);\n if (sourceRich && targetRich) {\n this._mergeRich(targetRich, sourceRich);\n targetStyle.rich = targetRich;\n }\n else if (targetRich) {\n targetStyle.rich = targetRich;\n }\n return targetStyle;\n };\n ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\n var richNames = keys(sourceRich);\n for (var i = 0; i < richNames.length; i++) {\n var richName = richNames[i];\n targetRich[richName] = targetRich[richName] || {};\n extend(targetRich[richName], sourceRich[richName]);\n }\n };\n ZRText.prototype.getAnimationStyleProps = function () {\n return DEFAULT_TEXT_ANIMATION_PROPS;\n };\n ZRText.prototype._getOrCreateChild = function (Ctor) {\n var child = this._children[this._childCursor];\n if (!child || !(child instanceof Ctor)) {\n child = new Ctor();\n }\n this._children[this._childCursor++] = child;\n child.__zr = this.__zr;\n child.parent = this;\n return child;\n };\n ZRText.prototype._updatePlainTexts = function () {\n var style = this.style;\n var textFont = style.font || DEFAULT_FONT;\n var textPadding = style.padding;\n var text = getStyleText(style);\n var contentBlock = parsePlainText(text, style);\n var needDrawBg = needDrawBackground(style);\n var bgColorDrawn = !!(style.backgroundColor);\n var outerHeight = contentBlock.outerHeight;\n var textLines = contentBlock.lines;\n var lineHeight = contentBlock.lineHeight;\n var defaultStyle = this._defaultStyle;\n var baseX = style.x || 0;\n var baseY = style.y || 0;\n var textAlign = style.align || defaultStyle.align || 'left';\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\n var textX = baseX;\n var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\n if (needDrawBg || textPadding) {\n var outerWidth_1 = contentBlock.width;\n textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\n var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\n }\n textY += lineHeight / 2;\n if (textPadding) {\n textX = getTextXForPadding(baseX, textAlign, textPadding);\n if (verticalAlign === 'top') {\n textY += textPadding[0];\n }\n else if (verticalAlign === 'bottom') {\n textY -= textPadding[2];\n }\n }\n var defaultLineWidth = 0;\n var useDefaultFill = false;\n var textFill = getFill('fill' in style\n ? style.fill\n : (useDefaultFill = true, defaultStyle.fill));\n var textStroke = getStroke('stroke' in style\n ? style.stroke\n : (!bgColorDrawn\n && (!defaultStyle.autoStroke || useDefaultFill))\n ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n : null);\n var hasShadow = style.textShadowBlur > 0;\n var fixedBoundingRect = style.width != null\n && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\n var calculatedLineHeight = contentBlock.calculatedLineHeight;\n for (var i = 0; i < textLines.length; i++) {\n var el = this._getOrCreateChild(TSpan);\n var subElStyle = el.createStyle();\n el.useStyle(subElStyle);\n subElStyle.text = textLines[i];\n subElStyle.x = textX;\n subElStyle.y = textY;\n if (textAlign) {\n subElStyle.textAlign = textAlign;\n }\n subElStyle.textBaseline = 'middle';\n subElStyle.opacity = style.opacity;\n subElStyle.strokeFirst = true;\n if (hasShadow) {\n subElStyle.shadowBlur = style.textShadowBlur || 0;\n subElStyle.shadowColor = style.textShadowColor || 'transparent';\n subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\n subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\n }\n if (textStroke) {\n subElStyle.stroke = textStroke;\n subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\n subElStyle.lineDash = style.lineDash;\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\n }\n if (textFill) {\n subElStyle.fill = textFill;\n }\n subElStyle.font = textFont;\n textY += lineHeight;\n if (fixedBoundingRect) {\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\n }\n }\n };\n ZRText.prototype._updateRichTexts = function () {\n var style = this.style;\n var text = getStyleText(style);\n var contentBlock = parseRichText(text, style);\n var contentWidth = contentBlock.width;\n var outerWidth = contentBlock.outerWidth;\n var outerHeight = contentBlock.outerHeight;\n var textPadding = style.padding;\n var baseX = style.x || 0;\n var baseY = style.y || 0;\n var defaultStyle = this._defaultStyle;\n var textAlign = style.align || defaultStyle.align;\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n var xLeft = boxX;\n var lineTop = boxY;\n if (textPadding) {\n xLeft += textPadding[3];\n lineTop += textPadding[0];\n }\n var xRight = xLeft + contentWidth;\n if (needDrawBackground(style)) {\n this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n }\n var bgColorDrawn = !!(style.backgroundColor);\n for (var i = 0; i < contentBlock.lines.length; i++) {\n var line = contentBlock.lines[i];\n var tokens = line.tokens;\n var tokenCount = tokens.length;\n var lineHeight = line.lineHeight;\n var remainedWidth = line.width;\n var leftIndex = 0;\n var lineXLeft = xLeft;\n var lineXRight = xRight;\n var rightIndex = tokenCount - 1;\n var token = void 0;\n while (leftIndex < tokenCount\n && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\n remainedWidth -= token.width;\n lineXLeft += token.width;\n leftIndex++;\n }\n while (rightIndex >= 0\n && (token = tokens[rightIndex], token.align === 'right')) {\n this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\n remainedWidth -= token.width;\n lineXRight -= token.width;\n rightIndex--;\n }\n lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\n while (leftIndex <= rightIndex) {\n token = tokens[leftIndex];\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\n lineXLeft += token.width;\n leftIndex++;\n }\n lineTop += lineHeight;\n }\n };\n ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\n var tokenStyle = style.rich[token.styleName] || {};\n tokenStyle.text = token.text;\n var verticalAlign = token.verticalAlign;\n var y = lineTop + lineHeight / 2;\n if (verticalAlign === 'top') {\n y = lineTop + token.height / 2;\n }\n else if (verticalAlign === 'bottom') {\n y = lineTop + lineHeight - token.height / 2;\n }\n var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\n needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\n ? x - token.width\n : textAlign === 'center'\n ? x - token.width / 2\n : x, y - token.height / 2, token.width, token.height);\n var bgColorDrawn = !!tokenStyle.backgroundColor;\n var textPadding = token.textPadding;\n if (textPadding) {\n x = getTextXForPadding(x, textAlign, textPadding);\n y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\n }\n var el = this._getOrCreateChild(TSpan);\n var subElStyle = el.createStyle();\n el.useStyle(subElStyle);\n var defaultStyle = this._defaultStyle;\n var useDefaultFill = false;\n var defaultLineWidth = 0;\n var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\n : 'fill' in style ? style.fill\n : (useDefaultFill = true, defaultStyle.fill));\n var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\n : 'stroke' in style ? style.stroke\n : (!bgColorDrawn\n && !parentBgColorDrawn\n && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n : null);\n var hasShadow = tokenStyle.textShadowBlur > 0\n || style.textShadowBlur > 0;\n subElStyle.text = token.text;\n subElStyle.x = x;\n subElStyle.y = y;\n if (hasShadow) {\n subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\n subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\n subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\n subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\n }\n subElStyle.textAlign = textAlign;\n subElStyle.textBaseline = 'middle';\n subElStyle.font = token.font || DEFAULT_FONT;\n subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\n if (textStroke) {\n subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\n subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\n subElStyle.stroke = textStroke;\n }\n if (textFill) {\n subElStyle.fill = textFill;\n }\n var textWidth = token.contentWidth;\n var textHeight = token.contentHeight;\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\n };\n ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\n var textBackgroundColor = style.backgroundColor;\n var textBorderWidth = style.borderWidth;\n var textBorderColor = style.borderColor;\n var isPlainBg = isString(textBackgroundColor);\n var textBorderRadius = style.borderRadius;\n var self = this;\n var rectEl;\n var imgEl;\n if (isPlainBg || (textBorderWidth && textBorderColor)) {\n rectEl = this._getOrCreateChild(Rect);\n rectEl.useStyle(rectEl.createStyle());\n rectEl.style.fill = null;\n var rectShape = rectEl.shape;\n rectShape.x = x;\n rectShape.y = y;\n rectShape.width = width;\n rectShape.height = height;\n rectShape.r = textBorderRadius;\n rectEl.dirtyShape();\n }\n if (isPlainBg) {\n var rectStyle = rectEl.style;\n rectStyle.fill = textBackgroundColor || null;\n rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\n }\n else if (textBackgroundColor && textBackgroundColor.image) {\n imgEl = this._getOrCreateChild(ZRImage);\n imgEl.onload = function () {\n self.dirtyStyle();\n };\n var imgStyle = imgEl.style;\n imgStyle.image = textBackgroundColor.image;\n imgStyle.x = x;\n imgStyle.y = y;\n imgStyle.width = width;\n imgStyle.height = height;\n }\n if (textBorderWidth && textBorderColor) {\n var rectStyle = rectEl.style;\n rectStyle.lineWidth = textBorderWidth;\n rectStyle.stroke = textBorderColor;\n rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\n rectStyle.lineDash = style.borderDash;\n rectStyle.lineDashOffset = style.borderDashOffset || 0;\n rectEl.strokeContainThreshold = 0;\n if (rectEl.hasFill() && rectEl.hasStroke()) {\n rectStyle.strokeFirst = true;\n rectStyle.lineWidth *= 2;\n }\n }\n var commonStyle = (rectEl || imgEl).style;\n commonStyle.shadowBlur = style.shadowBlur || 0;\n commonStyle.shadowColor = style.shadowColor || 'transparent';\n commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\n commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\n commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\n };\n ZRText.makeFont = function (style) {\n var font = '';\n if (style.fontSize || style.fontFamily || style.fontWeight) {\n var fontSize = '';\n if (typeof style.fontSize === 'string'\n && (style.fontSize.indexOf('px') !== -1\n || style.fontSize.indexOf('rem') !== -1\n || style.fontSize.indexOf('em') !== -1)) {\n fontSize = style.fontSize;\n }\n else if (!isNaN(+style.fontSize)) {\n fontSize = style.fontSize + 'px';\n }\n else {\n fontSize = '12px';\n }\n font = [\n style.fontStyle,\n style.fontWeight,\n fontSize,\n style.fontFamily || 'sans-serif'\n ].join(' ');\n }\n return font && trim(font) || style.textFont || style.font;\n };\n return ZRText;\n}(Displayable));\nvar VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\nvar VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\nexport function normalizeTextStyle(style) {\n normalizeStyle(style);\n each(style.rich, normalizeStyle);\n return style;\n}\nfunction normalizeStyle(style) {\n if (style) {\n style.font = ZRText.makeFont(style);\n var textAlign = style.align;\n textAlign === 'middle' && (textAlign = 'center');\n style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\n var verticalAlign = style.verticalAlign;\n verticalAlign === 'center' && (verticalAlign = 'middle');\n style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\n var textPadding = style.padding;\n if (textPadding) {\n style.padding = normalizeCssArray(style.padding);\n }\n }\n}\nfunction getStroke(stroke, lineWidth) {\n return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\n ? null\n : (stroke.image || stroke.colorStops)\n ? '#000'\n : stroke;\n}\nfunction getFill(fill) {\n return (fill == null || fill === 'none')\n ? null\n : (fill.image || fill.colorStops)\n ? '#000'\n : fill;\n}\nfunction getTextXForPadding(x, textAlign, textPadding) {\n return textAlign === 'right'\n ? (x - textPadding[1])\n : textAlign === 'center'\n ? (x + textPadding[3] / 2 - textPadding[1] / 2)\n : (x + textPadding[3]);\n}\nfunction getStyleText(style) {\n var text = style.text;\n text != null && (text += '');\n return text;\n}\nfunction needDrawBackground(style) {\n return !!(style.backgroundColor\n || (style.borderWidth && style.borderColor));\n}\nexport default ZRText;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from './model';\nexport var getECData = makeInner();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LRU from 'zrender/lib/core/LRU';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport { queryDataIndex, makeInner } from './model';\nimport Path from 'zrender/lib/graphic/Path';\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n return fillOrStroke != null && fillOrStroke !== 'none';\n}\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n if (typeof color !== 'string') {\n return color;\n }\n\n var liftedColor = liftedColorCache.get(color);\n\n if (!liftedColor) {\n liftedColor = colorTool.lift(color, -0.1);\n liftedColorCache.put(color, liftedColor);\n }\n\n return liftedColor;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n el.onHoverStateChange(stateName);\n }\n\n el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n if (el.hoverState === HOVER_STATE_EMPHASIS) {\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n }\n}\n\nfunction singleEnterBlur(el) {\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n if (el.hoverState === HOVER_STATE_BLUR) {\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n }\n}\n\nfunction singleEnterSelect(el) {\n el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n updateElementState(el, updater, commonParam);\n el.isGroup && el.traverse(function (child) {\n updateElementState(child, updater, commonParam);\n });\n}\n\nexport function setStatesFlag(el, stateName) {\n switch (stateName) {\n case 'emphasis':\n el.hoverState = HOVER_STATE_EMPHASIS;\n break;\n\n case 'normal':\n el.hoverState = HOVER_STATE_NORMAL;\n break;\n\n case 'blur':\n el.hoverState = HOVER_STATE_BLUR;\n break;\n\n case 'select':\n el.selected = true;\n }\n}\nexport function clearStates(el) {\n if (el.isGroup) {\n el.traverse(function (child) {\n child.clearStates();\n });\n } else {\n el.clearStates();\n }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n var style = el.style;\n var fromState = {};\n\n for (var i = 0; i < props.length; i++) {\n var propName = props[i];\n var val = style[propName];\n fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n }\n\n for (var i = 0; i < el.animators.length; i++) {\n var animator = el.animators[i];\n\n if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n animator.saveFinalToTarget(fromState, props);\n }\n }\n\n return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n var cloned = false;\n\n if (el instanceof Path) {\n var store = getSavedStates(el);\n var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n state = state || {};\n var emphasisStyle = state.style || {};\n\n if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n cloned = true;\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle);\n emphasisStyle.fill = liftColor(fromFill);\n } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n if (!cloned) {\n state = extend({}, state);\n emphasisStyle = extend({}, emphasisStyle);\n }\n\n emphasisStyle.stroke = liftColor(fromStroke);\n }\n\n state.style = emphasisStyle;\n }\n }\n\n if (state) {\n if (state.z2 == null) {\n if (!cloned) {\n state = extend({}, state);\n }\n\n var z2EmphasisLift = el.z2EmphasisLift;\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n }\n }\n\n return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n if (state) {\n if (state.z2 == null) {\n state = extend({}, state);\n var z2SelectLift = el.z2SelectLift;\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n }\n }\n\n return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n var currentOpacity = el.style.opacity;\n var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n opacity: 1\n }) : null;\n state = state || {};\n var blurStyle = state.style || {};\n\n if (blurStyle.opacity == null) {\n state = extend({}, state);\n blurStyle = extend({\n opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n }, blurStyle);\n state.style = blurStyle;\n }\n\n return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n var state = this.states[stateName];\n\n if (this.style) {\n if (stateName === 'emphasis') {\n return createEmphasisDefaultState(this, stateName, targetStates, state);\n } else if (stateName === 'blur') {\n return createBlurDefaultState(this, stateName, state);\n } else if (stateName === 'select') {\n return createSelectDefaultState(this, stateName, state);\n }\n }\n\n return state;\n}\n\nexport function setDefaultStateProxy(el) {\n el.stateProxy = elementStateProxy;\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine();\n\n if (textContent) {\n textContent.stateProxy = elementStateProxy;\n }\n\n if (textGuide) {\n textGuide.stateProxy = elementStateProxy;\n }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n el.__highByOuter |= 1 << (highlightDigit || 0);\n traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nfunction allLeaveBlur(api) {\n var model = api.getModel();\n model.eachComponent(function (componentType, componentModel) {\n var view = componentType === 'series' ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n view.group.traverse(function (child) {\n singleLeaveBlur(child);\n });\n });\n}\n\nexport function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\n var ecModel = api.getModel();\n blurScope = blurScope || 'coordinateSystem';\n\n function leaveBlurOfIndices(data, dataIndices) {\n for (var i = 0; i < dataIndices.length; i++) {\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\n itemEl && leaveBlur(itemEl);\n }\n }\n\n if (!isBlur) {\n allLeaveBlur(api);\n return;\n }\n\n if (targetSeriesIndex == null) {\n return;\n }\n\n if (!focus || focus === 'none') {\n return;\n }\n\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n if (targetCoordSys && targetCoordSys.master) {\n targetCoordSys = targetCoordSys.master;\n }\n\n var blurredSeries = [];\n ecModel.eachSeries(function (seriesModel) {\n var sameSeries = targetSeriesModel === seriesModel;\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.master) {\n coordSys = coordSys.master;\n }\n\n var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries;\n\n if (!(blurScope === 'series' && !sameSeries || blurScope === 'coordinateSystem' && !sameCoordSys || focus === 'series' && sameSeries)) {\n var view = api.getViewOfSeriesModel(seriesModel);\n view.group.traverse(function (child) {\n singleEnterBlur(child);\n });\n\n if (isArrayLike(focus)) {\n leaveBlurOfIndices(seriesModel.getData(), focus);\n } else if (isObject(focus)) {\n var dataTypes = keys(focus);\n\n for (var d = 0; d < dataTypes.length; d++) {\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n }\n }\n\n blurredSeries.push(seriesModel);\n }\n });\n ecModel.eachComponent(function (componentType, componentModel) {\n if (componentType === 'series') {\n return;\n }\n\n var view = api.getViewOfComponentModel(componentModel);\n\n if (view && view.blurSeries) {\n view.blurSeries(blurredSeries, ecModel);\n }\n });\n}\nexport function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\n if (!isHighDownPayload(payload)) {\n return;\n }\n\n var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\n var seriesIndex = seriesModel.seriesIndex;\n var data = seriesModel.getData(payload.dataType);\n var dataIndex = queryDataIndex(data, payload);\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n var el = data.getItemGraphicEl(dataIndex);\n\n if (!el) {\n var count = data.count();\n var current = 0;\n\n while (!el && current < count) {\n el = data.getItemGraphicEl(current++);\n }\n }\n\n if (el) {\n var ecData = getECData(el);\n toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\n } else {\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n if (focus_1 != null) {\n toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\n }\n }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n if (!isSelectChangePayload(payload)) {\n return;\n }\n\n var dataType = payload.dataType;\n var data = seriesModel.getData(dataType);\n var dataIndex = queryDataIndex(data, payload);\n\n if (!isArray(dataIndex)) {\n dataIndex = [dataIndex];\n }\n\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n var allData = seriesModel.getAllData();\n each(allData, function (_a) {\n var data = _a.data,\n type = _a.type;\n data.eachItemGraphicEl(function (el, idx) {\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n });\n });\n}\nexport function getAllSelectedIndices(ecModel) {\n var ret = [];\n ecModel.eachSeries(function (seriesModel) {\n var allData = seriesModel.getAllData();\n each(allData, function (_a) {\n var data = _a.data,\n type = _a.type;\n var dataIndices = seriesModel.getSelectedDataIndices();\n\n if (dataIndices.length > 0) {\n var item = {\n dataIndex: dataIndices,\n seriesIndex: seriesModel.seriesIndex\n };\n\n if (type != null) {\n item.dataType = type;\n }\n\n ret.push(item);\n }\n });\n });\n return ret;\n}\nexport function enableHoverEmphasis(el, focus, blurScope) {\n setAsHighDownDispatcher(el, true);\n traverseUpdateState(el, setDefaultStateProxy);\n enableHoverFocus(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n var ecData = getECData(el);\n\n if (focus != null) {\n ecData.focus = focus;\n ecData.blurScope = blurScope;\n } else if (ecData.focus) {\n ecData.focus = null;\n }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n itemStyle: 'getItemStyle',\n lineStyle: 'getLineStyle',\n areaStyle: 'getAreaStyle'\n};\nexport function setStatesStylesFromModel(el, itemModel, styleType, getter) {\n styleType = styleType || 'itemStyle';\n\n for (var i = 0; i < OTHER_STATES.length; i++) {\n var stateName = OTHER_STATES[i];\n var model = itemModel.getModel([stateName, styleType]);\n var state = el.ensureState(stateName);\n state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n }\n}\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n var disable = asDispatcher === false;\n var extendedEl = el;\n\n if (el.highDownSilentOnTouch) {\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n }\n\n if (!disable || extendedEl.__highDownDispatcher) {\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n extendedEl.__highDownDispatcher = !disable;\n }\n}\nexport function isHighDownDispatcher(el) {\n return !!(el && el.__highDownDispatcher);\n}\nexport function getHighlightDigit(highlightKey) {\n var highlightDigit = _highlightKeyMap[highlightKey];\n\n if (highlightDigit == null && _highlightNextDigit <= 32) {\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n }\n\n return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n var payloadType = payload.type;\n return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n var payloadType = payload.type;\n return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n var store = getSavedStates(el);\n store.normalFill = el.style.fill;\n store.normalStroke = el.style.stroke;\n var selectState = el.states.select || {};\n store.selectFill = selectState.style && selectState.style.fill || null;\n store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","import PathProxy from '../core/PathProxy';\nimport { applyTransform as v2ApplyTransform } from '../core/vector';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n var data = path.data;\n var len = path.len();\n var cmd;\n var nPoint;\n var i;\n var j;\n var k;\n var p;\n var M = CMD.M;\n var C = CMD.C;\n var L = CMD.L;\n var R = CMD.R;\n var A = CMD.A;\n var Q = CMD.Q;\n for (i = 0, j = 0; i < len;) {\n cmd = data[i++];\n j = i;\n nPoint = 0;\n switch (cmd) {\n case M:\n nPoint = 1;\n break;\n case L:\n nPoint = 1;\n break;\n case C:\n nPoint = 3;\n break;\n case Q:\n nPoint = 2;\n break;\n case A:\n var x = m[4];\n var y = m[5];\n var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n data[i] *= sx;\n data[i++] += x;\n data[i] *= sy;\n data[i++] += y;\n data[i++] *= sx;\n data[i++] *= sy;\n data[i++] += angle;\n data[i++] += angle;\n i += 2;\n j = i;\n break;\n case R:\n p[0] = data[i++];\n p[1] = data[i++];\n v2ApplyTransform(p, p, m);\n data[j++] = p[0];\n data[j++] = p[1];\n p[0] += data[i++];\n p[1] += data[i++];\n v2ApplyTransform(p, p, m);\n data[j++] = p[0];\n data[j++] = p[1];\n }\n for (k = 0; k < nPoint; k++) {\n var p_1 = points[k];\n p_1[0] = data[i++];\n p_1[1] = data[i++];\n v2ApplyTransform(p_1, p_1, m);\n data[j++] = p_1[0];\n data[j++] = p_1[1];\n }\n }\n path.increaseVersion();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path';\nimport PathProxy from '../core/PathProxy';\nimport transformPath from './transformPath';\nimport { extend } from '../core/util';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n var psi = psiDeg * (PI / 180.0);\n var xp = mathCos(psi) * (x1 - x2) / 2.0\n + mathSin(psi) * (y1 - y2) / 2.0;\n var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n + mathCos(psi) * (y1 - y2) / 2.0;\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n if (lambda > 1) {\n rx *= mathSqrt(lambda);\n ry *= mathSqrt(lambda);\n }\n var f = (fa === fs ? -1 : 1)\n * mathSqrt((((rx * rx) * (ry * ry))\n - ((rx * rx) * (yp * yp))\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n + (ry * ry) * (xp * xp))) || 0;\n var cxp = f * rx * yp / ry;\n var cyp = f * -ry * xp / rx;\n var cx = (x1 + x2) / 2.0\n + mathCos(psi) * cxp\n - mathSin(psi) * cyp;\n var cy = (y1 + y2) / 2.0\n + mathSin(psi) * cxp\n + mathCos(psi) * cyp;\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n var dTheta = vAngle(u, v);\n if (vRatio(u, v) <= -1) {\n dTheta = PI;\n }\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n if (dTheta < 0) {\n var n = Math.round(dTheta / PI * 1e6) / 1e6;\n dTheta = PI * 2 + (n % 2) * PI;\n }\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n var path = new PathProxy();\n if (!data) {\n return path;\n }\n var cpx = 0;\n var cpy = 0;\n var subpathX = cpx;\n var subpathY = cpy;\n var prevCmd;\n var CMD = PathProxy.CMD;\n var cmdList = data.match(commandReg);\n if (!cmdList) {\n return path;\n }\n for (var l = 0; l < cmdList.length; l++) {\n var cmdText = cmdList[l];\n var cmdStr = cmdText.charAt(0);\n var cmd = void 0;\n var p = cmdText.match(numberReg) || [];\n var pLen = p.length;\n for (var i = 0; i < pLen; i++) {\n p[i] = parseFloat(p[i]);\n }\n var off = 0;\n while (off < pLen) {\n var ctlPtx = void 0;\n var ctlPty = void 0;\n var rx = void 0;\n var ry = void 0;\n var psi = void 0;\n var fa = void 0;\n var fs = void 0;\n var x1 = cpx;\n var y1 = cpy;\n var len = void 0;\n var pathData = void 0;\n switch (cmdStr) {\n case 'l':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'L':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'm':\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'l';\n break;\n case 'M':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.M;\n path.addData(cmd, cpx, cpy);\n subpathX = cpx;\n subpathY = cpy;\n cmdStr = 'L';\n break;\n case 'h':\n cpx += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'H':\n cpx = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'v':\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'V':\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n case 'C':\n cmd = CMD.C;\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n cpx = p[off - 2];\n cpy = p[off - 1];\n break;\n case 'c':\n cmd = CMD.C;\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n cpx += p[off - 2];\n cpy += p[off - 1];\n break;\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cmd = CMD.C;\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cmd = CMD.C;\n x1 = cpx + p[off++];\n y1 = cpy + p[off++];\n cpx += p[off++];\n cpy += p[off++];\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n break;\n case 'Q':\n x1 = p[off++];\n y1 = p[off++];\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n case 'q':\n x1 = p[off++] + cpx;\n y1 = p[off++] + cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, x1, y1, cpx, cpy);\n break;\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n len = path.len();\n pathData = path.data;\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n case 'A':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n case 'a':\n rx = p[off++];\n ry = p[off++];\n psi = p[off++];\n fa = p[off++];\n fs = p[off++];\n x1 = cpx, y1 = cpy;\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.A;\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n break;\n }\n }\n if (cmdStr === 'z' || cmdStr === 'Z') {\n cmd = CMD.Z;\n path.addData(cmd);\n cpx = subpathX;\n cpy = subpathY;\n }\n prevCmd = cmd;\n }\n path.toStatic();\n return path;\n}\nvar SVGPath = (function (_super) {\n __extends(SVGPath, _super);\n function SVGPath() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SVGPath.prototype.applyTransform = function (m) { };\n return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n var pathProxy = createPathProxyFromString(str);\n var innerOpts = extend({}, opts);\n innerOpts.buildPath = function (path) {\n if (isPathProxy(path)) {\n path.setData(pathProxy.data);\n var ctx = path.getContext();\n if (ctx) {\n path.rebuildPath(ctx, 1);\n }\n }\n else {\n var ctx = path;\n pathProxy.rebuildPath(ctx, 1);\n }\n };\n innerOpts.applyTransform = function (m) {\n transformPath(pathProxy, m);\n this.dirtyShape();\n };\n return innerOpts;\n}\nexport function createFromString(str, opts) {\n return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n var innerOpts = createPathOptions(str, defaultOpts);\n var Sub = (function (_super) {\n __extends(Sub, _super);\n function Sub(opts) {\n var _this = _super.call(this, opts) || this;\n _this.applyTransform = innerOpts.applyTransform;\n _this.buildPath = innerOpts.buildPath;\n return _this;\n }\n return Sub;\n }(SVGPath));\n return Sub;\n}\nexport function mergePath(pathEls, opts) {\n var pathList = [];\n var len = pathEls.length;\n for (var i = 0; i < len; i++) {\n var pathEl = pathEls[i];\n if (!pathEl.path) {\n pathEl.createPathProxy();\n }\n if (pathEl.shapeChanged()) {\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\n }\n pathList.push(pathEl.path);\n }\n var pathBundle = new Path(opts);\n pathBundle.createPathProxy();\n pathBundle.buildPath = function (path) {\n if (isPathProxy(path)) {\n path.appendPath(pathList);\n var ctx = path.getContext();\n if (ctx) {\n path.rebuildPath(ctx, 1);\n }\n }\n };\n return pathBundle;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar CircleShape = (function () {\n function CircleShape() {\n this.cx = 0;\n this.cy = 0;\n this.r = 0;\n }\n return CircleShape;\n}());\nvar Circle = (function (_super) {\n __extends(Circle, _super);\n function Circle(opts) {\n return _super.call(this, opts) || this;\n }\n Circle.prototype.getDefaultShape = function () {\n return new CircleShape();\n };\n Circle.prototype.buildPath = function (ctx, shape, inBundle) {\n if (inBundle) {\n ctx.moveTo(shape.cx + shape.r, shape.cy);\n }\n ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\n };\n return Circle;\n}(Path));\n;\nCircle.prototype.type = 'circle';\nexport default Circle;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar EllipseShape = (function () {\n function EllipseShape() {\n this.cx = 0;\n this.cy = 0;\n this.rx = 0;\n this.ry = 0;\n }\n return EllipseShape;\n}());\nvar Ellipse = (function (_super) {\n __extends(Ellipse, _super);\n function Ellipse(opts) {\n return _super.call(this, opts) || this;\n }\n Ellipse.prototype.getDefaultShape = function () {\n return new EllipseShape();\n };\n Ellipse.prototype.buildPath = function (ctx, shape) {\n var k = 0.5522848;\n var x = shape.cx;\n var y = shape.cy;\n var a = shape.rx;\n var b = shape.ry;\n var ox = a * k;\n var oy = b * k;\n ctx.moveTo(x - a, y);\n ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\n ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\n ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\n ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\n ctx.closePath();\n };\n return Ellipse;\n}(Path));\nEllipse.prototype.type = 'ellipse';\nexport default Ellipse;\n","import { normalizeArcAngles } from '../../core/PathProxy';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0;\n var y10 = y1 - y0;\n var x32 = x3 - x2;\n var y32 = y3 - y2;\n var t = y32 * x10 - x32 * y10;\n if (t * t < e) {\n return;\n }\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n var x01 = x0 - x1;\n var y01 = y0 - y1;\n var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n var ox = lo * y01;\n var oy = -lo * x01;\n var x11 = x0 + ox;\n var y11 = y0 + oy;\n var x10 = x1 + ox;\n var y10 = y1 + oy;\n var x00 = (x11 + x10) / 2;\n var y00 = (y11 + y10) / 2;\n var dx = x10 - x11;\n var dy = y10 - y11;\n var d2 = dx * dx + dy * dy;\n var r = radius - cr;\n var s = x11 * y10 - x10 * y11;\n var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n var cx0 = (s * dy - dx * d) / d2;\n var cy0 = (-s * dx - dy * d) / d2;\n var cx1 = (s * dy + dx * d) / d2;\n var cy1 = (-s * dx + dy * d) / d2;\n var dx0 = cx0 - x00;\n var dy0 = cy0 - y00;\n var dx1 = cx1 - x00;\n var dy1 = cy1 - y00;\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n cx0 = cx1;\n cy0 = cy1;\n }\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (radius / r - 1),\n y11: cy0 * (radius / r - 1)\n };\n}\nexport function buildPath(ctx, shape) {\n var radius = mathMax(shape.r, 0);\n var innerRadius = mathMax(shape.r0 || 0, 0);\n var hasRadius = radius > 0;\n var hasInnerRadius = innerRadius > 0;\n if (!hasRadius && !hasInnerRadius) {\n return;\n }\n if (!hasRadius) {\n radius = innerRadius;\n innerRadius = 0;\n }\n if (innerRadius > radius) {\n var tmp = radius;\n radius = innerRadius;\n innerRadius = tmp;\n }\n var clockwise = !!shape.clockwise;\n var startAngle = shape.startAngle;\n var endAngle = shape.endAngle;\n var tmpAngles = [startAngle, endAngle];\n normalizeArcAngles(tmpAngles, !clockwise);\n var arc = mathAbs(tmpAngles[0] - tmpAngles[1]);\n var x = shape.cx;\n var y = shape.cy;\n var cornerRadius = shape.cornerRadius || 0;\n var innerCornerRadius = shape.innerCornerRadius || 0;\n if (!(radius > e)) {\n ctx.moveTo(x, y);\n }\n else if (arc > PI2 - e) {\n ctx.moveTo(x + radius * mathCos(startAngle), y + radius * mathSin(startAngle));\n ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n if (innerRadius > e) {\n ctx.moveTo(x + innerRadius * mathCos(endAngle), y + innerRadius * mathSin(endAngle));\n ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n }\n }\n else {\n var halfRd = mathAbs(radius - innerRadius) / 2;\n var cr = mathMin(halfRd, cornerRadius);\n var icr = mathMin(halfRd, innerCornerRadius);\n var cr0 = icr;\n var cr1 = cr;\n var xrs = radius * mathCos(startAngle);\n var yrs = radius * mathSin(startAngle);\n var xire = innerRadius * mathCos(endAngle);\n var yire = innerRadius * mathSin(endAngle);\n var xre = void 0;\n var yre = void 0;\n var xirs = void 0;\n var yirs = void 0;\n if (cr > e || icr > e) {\n xre = radius * mathCos(endAngle);\n yre = radius * mathSin(endAngle);\n xirs = innerRadius * mathCos(startAngle);\n yirs = innerRadius * mathSin(startAngle);\n if (arc < PI) {\n var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n if (it_1) {\n var x0 = xrs - it_1[0];\n var y0 = yrs - it_1[1];\n var x1 = xre - it_1[0];\n var y1 = yre - it_1[1];\n var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n cr0 = mathMin(icr, (innerRadius - b) / (a - 1));\n cr1 = mathMin(cr, (radius - b) / (a + 1));\n }\n }\n }\n if (!(arc > e)) {\n ctx.moveTo(x + xrs, y + yrs);\n }\n else if (cr1 > e) {\n var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, cr1, clockwise);\n var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, cr1, clockwise);\n ctx.moveTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n if (cr1 < cr) {\n ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n }\n else {\n ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n ctx.arc(x, y, radius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), !clockwise);\n ctx.arc(x + ct1.cx, y + ct1.cy, cr1, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n }\n }\n else {\n ctx.moveTo(x + xrs, y + yrs);\n ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n }\n if (!(innerRadius > e) || !(arc > e)) {\n ctx.lineTo(x + xire, y + yire);\n }\n else if (cr0 > e) {\n var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -cr0, clockwise);\n var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -cr0, clockwise);\n ctx.lineTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n if (cr0 < icr) {\n ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n }\n else {\n ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n ctx.arc(x, y, innerRadius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), clockwise);\n ctx.arc(x + ct1.cx, y + ct1.cy, cr0, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n }\n }\n else {\n ctx.lineTo(x + xire, y + yire);\n ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n }\n }\n ctx.closePath();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundSectorHelper from '../helper/roundSector';\nvar SectorShape = (function () {\n function SectorShape() {\n this.cx = 0;\n this.cy = 0;\n this.r0 = 0;\n this.r = 0;\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.clockwise = true;\n this.cornerRadius = 0;\n this.innerCornerRadius = 0;\n }\n return SectorShape;\n}());\nvar Sector = (function (_super) {\n __extends(Sector, _super);\n function Sector(opts) {\n return _super.call(this, opts) || this;\n }\n Sector.prototype.getDefaultShape = function () {\n return new SectorShape();\n };\n Sector.prototype.buildPath = function (ctx, shape) {\n roundSectorHelper.buildPath(ctx, shape);\n };\n Sector.prototype.isZeroArea = function () {\n return this.shape.startAngle === this.shape.endAngle\n || this.shape.r === this.shape.r0;\n };\n return Sector;\n}(Path));\nSector.prototype.type = 'sector';\nexport default Sector;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar RingShape = (function () {\n function RingShape() {\n this.cx = 0;\n this.cy = 0;\n this.r = 0;\n this.r0 = 0;\n }\n return RingShape;\n}());\nvar Ring = (function (_super) {\n __extends(Ring, _super);\n function Ring(opts) {\n return _super.call(this, opts) || this;\n }\n Ring.prototype.getDefaultShape = function () {\n return new RingShape();\n };\n Ring.prototype.buildPath = function (ctx, shape) {\n var x = shape.cx;\n var y = shape.cy;\n var PI2 = Math.PI * 2;\n ctx.moveTo(x + shape.r, y);\n ctx.arc(x, y, shape.r, 0, PI2, false);\n ctx.moveTo(x + shape.r0, y);\n ctx.arc(x, y, shape.r0, 0, PI2, true);\n };\n return Ring;\n}(Path));\nRing.prototype.type = 'ring';\nexport default Ring;\n","import { distance as v2Distance } from '../../core/vector';\nfunction interpolate(p0, p1, p2, p3, t, t2, t3) {\n var v0 = (p2 - p0) * 0.5;\n var v1 = (p3 - p1) * 0.5;\n return (2 * (p1 - p2) + v0 + v1) * t3\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n + v0 * t + p1;\n}\nexport default function smoothSpline(points, isLoop) {\n var len = points.length;\n var ret = [];\n var distance = 0;\n for (var i = 1; i < len; i++) {\n distance += v2Distance(points[i - 1], points[i]);\n }\n var segs = distance / 2;\n segs = segs < len ? len : segs;\n for (var i = 0; i < segs; i++) {\n var pos = i / (segs - 1) * (isLoop ? len : len - 1);\n var idx = Math.floor(pos);\n var w = pos - idx;\n var p0 = void 0;\n var p1 = points[idx % len];\n var p2 = void 0;\n var p3 = void 0;\n if (!isLoop) {\n p0 = points[idx === 0 ? idx : idx - 1];\n p2 = points[idx > len - 2 ? len - 1 : idx + 1];\n p3 = points[idx > len - 3 ? len - 1 : idx + 2];\n }\n else {\n p0 = points[(idx - 1 + len) % len];\n p2 = points[(idx + 1) % len];\n p3 = points[(idx + 2) % len];\n }\n var w2 = w * w;\n var w3 = w * w2;\n ret.push([\n interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\n interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\n ]);\n }\n return ret;\n}\n","import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n var cps = [];\n var v = [];\n var v1 = [];\n var v2 = [];\n var prevPoint;\n var nextPoint;\n var min;\n var max;\n if (constraint) {\n min = [Infinity, Infinity];\n max = [-Infinity, -Infinity];\n for (var i = 0, len = points.length; i < len; i++) {\n v2Min(min, min, points[i]);\n v2Max(max, max, points[i]);\n }\n v2Min(min, min, constraint[0]);\n v2Max(max, max, constraint[1]);\n }\n for (var i = 0, len = points.length; i < len; i++) {\n var point = points[i];\n if (isLoop) {\n prevPoint = points[i ? i - 1 : len - 1];\n nextPoint = points[(i + 1) % len];\n }\n else {\n if (i === 0 || i === len - 1) {\n cps.push(v2Clone(points[i]));\n continue;\n }\n else {\n prevPoint = points[i - 1];\n nextPoint = points[i + 1];\n }\n }\n v2Sub(v, nextPoint, prevPoint);\n v2Scale(v, v, smooth);\n var d0 = v2Distance(point, prevPoint);\n var d1 = v2Distance(point, nextPoint);\n var sum = d0 + d1;\n if (sum !== 0) {\n d0 /= sum;\n d1 /= sum;\n }\n v2Scale(v1, v, -d0);\n v2Scale(v2, v, d1);\n var cp0 = v2Add([], point, v1);\n var cp1 = v2Add([], point, v2);\n if (constraint) {\n v2Max(cp0, cp0, min);\n v2Min(cp0, cp0, max);\n v2Max(cp1, cp1, min);\n v2Min(cp1, cp1, max);\n }\n cps.push(cp0);\n cps.push(cp1);\n }\n if (isLoop) {\n cps.push(cps.shift());\n }\n return cps;\n}\n","import smoothSpline from './smoothSpline';\nimport smoothBezier from './smoothBezier';\nexport function buildPath(ctx, shape, closePath) {\n var smooth = shape.smooth;\n var points = shape.points;\n if (points && points.length >= 2) {\n if (smooth && smooth !== 'spline') {\n var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n ctx.moveTo(points[0][0], points[0][1]);\n var len = points.length;\n for (var i = 0; i < (closePath ? len : len - 1); i++) {\n var cp1 = controlPoints[i * 2];\n var cp2 = controlPoints[i * 2 + 1];\n var p = points[(i + 1) % len];\n ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n }\n }\n else {\n if (smooth === 'spline') {\n points = smoothSpline(points, closePath);\n }\n ctx.moveTo(points[0][0], points[0][1]);\n for (var i = 1, l = points.length; i < l; i++) {\n ctx.lineTo(points[i][0], points[i][1]);\n }\n }\n closePath && ctx.closePath();\n }\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolygonShape = (function () {\n function PolygonShape() {\n this.points = null;\n this.smooth = 0;\n this.smoothConstraint = null;\n }\n return PolygonShape;\n}());\nvar Polygon = (function (_super) {\n __extends(Polygon, _super);\n function Polygon(opts) {\n return _super.call(this, opts) || this;\n }\n Polygon.prototype.getDefaultShape = function () {\n return new PolygonShape();\n };\n Polygon.prototype.buildPath = function (ctx, shape) {\n polyHelper.buildPath(ctx, shape, true);\n };\n return Polygon;\n}(Path));\n;\nPolygon.prototype.type = 'polygon';\nexport default Polygon;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolylineShape = (function () {\n function PolylineShape() {\n this.points = null;\n this.percent = 1;\n this.smooth = 0;\n this.smoothConstraint = null;\n }\n return PolylineShape;\n}());\nvar Polyline = (function (_super) {\n __extends(Polyline, _super);\n function Polyline(opts) {\n return _super.call(this, opts) || this;\n }\n Polyline.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n Polyline.prototype.getDefaultShape = function () {\n return new PolylineShape();\n };\n Polyline.prototype.buildPath = function (ctx, shape) {\n polyHelper.buildPath(ctx, shape, false);\n };\n return Polyline;\n}(Path));\nPolyline.prototype.type = 'polyline';\nexport default Polyline;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport { subPixelOptimizeLine } from '../helper/subPixelOptimize';\nvar subPixelOptimizeOutputShape = {};\nvar LineShape = (function () {\n function LineShape() {\n this.x1 = 0;\n this.y1 = 0;\n this.x2 = 0;\n this.y2 = 0;\n this.percent = 1;\n }\n return LineShape;\n}());\nvar Line = (function (_super) {\n __extends(Line, _super);\n function Line(opts) {\n return _super.call(this, opts) || this;\n }\n Line.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n Line.prototype.getDefaultShape = function () {\n return new LineShape();\n };\n Line.prototype.buildPath = function (ctx, shape) {\n var x1;\n var y1;\n var x2;\n var y2;\n if (this.subPixelOptimize) {\n var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);\n x1 = optimizedShape.x1;\n y1 = optimizedShape.y1;\n x2 = optimizedShape.x2;\n y2 = optimizedShape.y2;\n }\n else {\n x1 = shape.x1;\n y1 = shape.y1;\n x2 = shape.x2;\n y2 = shape.y2;\n }\n var percent = shape.percent;\n if (percent === 0) {\n return;\n }\n ctx.moveTo(x1, y1);\n if (percent < 1) {\n x2 = x1 * (1 - percent) + x2 * percent;\n y2 = y1 * (1 - percent) + y2 * percent;\n }\n ctx.lineTo(x2, y2);\n };\n Line.prototype.pointAt = function (p) {\n var shape = this.shape;\n return [\n shape.x1 * (1 - p) + shape.x2 * p,\n shape.y1 * (1 - p) + shape.y2 * p\n ];\n };\n return Line;\n}(Path));\nLine.prototype.type = 'line';\nexport default Line;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as vec2 from '../../core/vector';\nimport { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve';\nvar out = [];\nvar BezierCurveShape = (function () {\n function BezierCurveShape() {\n this.x1 = 0;\n this.y1 = 0;\n this.x2 = 0;\n this.y2 = 0;\n this.cpx1 = 0;\n this.cpy1 = 0;\n this.percent = 1;\n }\n return BezierCurveShape;\n}());\nfunction someVectorAt(shape, t, isTangent) {\n var cpx2 = shape.cpx2;\n var cpy2 = shape.cpy2;\n if (cpx2 === null || cpy2 === null) {\n return [\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\n ];\n }\n else {\n return [\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\n ];\n }\n}\nvar BezierCurve = (function (_super) {\n __extends(BezierCurve, _super);\n function BezierCurve(opts) {\n return _super.call(this, opts) || this;\n }\n BezierCurve.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n BezierCurve.prototype.getDefaultShape = function () {\n return new BezierCurveShape();\n };\n BezierCurve.prototype.buildPath = function (ctx, shape) {\n var x1 = shape.x1;\n var y1 = shape.y1;\n var x2 = shape.x2;\n var y2 = shape.y2;\n var cpx1 = shape.cpx1;\n var cpy1 = shape.cpy1;\n var cpx2 = shape.cpx2;\n var cpy2 = shape.cpy2;\n var percent = shape.percent;\n if (percent === 0) {\n return;\n }\n ctx.moveTo(x1, y1);\n if (cpx2 == null || cpy2 == null) {\n if (percent < 1) {\n quadraticSubdivide(x1, cpx1, x2, percent, out);\n cpx1 = out[1];\n x2 = out[2];\n quadraticSubdivide(y1, cpy1, y2, percent, out);\n cpy1 = out[1];\n y2 = out[2];\n }\n ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n }\n else {\n if (percent < 1) {\n cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n cpx1 = out[1];\n cpx2 = out[2];\n x2 = out[3];\n cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n cpy1 = out[1];\n cpy2 = out[2];\n y2 = out[3];\n }\n ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n }\n };\n BezierCurve.prototype.pointAt = function (t) {\n return someVectorAt(this.shape, t, false);\n };\n BezierCurve.prototype.tangentAt = function (t) {\n var p = someVectorAt(this.shape, t, true);\n return vec2.normalize(p, p);\n };\n return BezierCurve;\n}(Path));\n;\nBezierCurve.prototype.type = 'bezier-curve';\nexport default BezierCurve;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar ArcShape = (function () {\n function ArcShape() {\n this.cx = 0;\n this.cy = 0;\n this.r = 0;\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.clockwise = true;\n }\n return ArcShape;\n}());\nvar Arc = (function (_super) {\n __extends(Arc, _super);\n function Arc(opts) {\n return _super.call(this, opts) || this;\n }\n Arc.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n Arc.prototype.getDefaultShape = function () {\n return new ArcShape();\n };\n Arc.prototype.buildPath = function (ctx, shape) {\n var x = shape.cx;\n var y = shape.cy;\n var r = Math.max(shape.r, 0);\n var startAngle = shape.startAngle;\n var endAngle = shape.endAngle;\n var clockwise = shape.clockwise;\n var unitX = Math.cos(startAngle);\n var unitY = Math.sin(startAngle);\n ctx.moveTo(unitX * r + x, unitY * r + y);\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n };\n return Arc;\n}(Path));\nArc.prototype.type = 'arc';\nexport default Arc;\n","import { __extends } from \"tslib\";\nimport Path from './Path';\nvar CompoundPath = (function (_super) {\n __extends(CompoundPath, _super);\n function CompoundPath() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'compound';\n return _this;\n }\n CompoundPath.prototype._updatePathDirty = function () {\n var paths = this.shape.paths;\n var dirtyPath = this.shapeChanged();\n for (var i = 0; i < paths.length; i++) {\n dirtyPath = dirtyPath || paths[i].shapeChanged();\n }\n if (dirtyPath) {\n this.dirtyShape();\n }\n };\n CompoundPath.prototype.beforeBrush = function () {\n this._updatePathDirty();\n var paths = this.shape.paths || [];\n var scale = this.getGlobalScale();\n for (var i = 0; i < paths.length; i++) {\n if (!paths[i].path) {\n paths[i].createPathProxy();\n }\n paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\n }\n };\n CompoundPath.prototype.buildPath = function (ctx, shape) {\n var paths = shape.paths || [];\n for (var i = 0; i < paths.length; i++) {\n paths[i].buildPath(ctx, paths[i].shape, true);\n }\n };\n CompoundPath.prototype.afterBrush = function () {\n var paths = this.shape.paths || [];\n for (var i = 0; i < paths.length; i++) {\n paths[i].pathUpdated();\n }\n };\n CompoundPath.prototype.getBoundingRect = function () {\n this._updatePathDirty.call(this);\n return Path.prototype.getBoundingRect.call(this);\n };\n return CompoundPath;\n}(Path));\nexport default CompoundPath;\n","var Gradient = (function () {\n function Gradient(colorStops) {\n this.colorStops = colorStops || [];\n }\n Gradient.prototype.addColorStop = function (offset, color) {\n this.colorStops.push({\n offset: offset,\n color: color\n });\n };\n return Gradient;\n}());\nexport default Gradient;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar LinearGradient = (function (_super) {\n __extends(LinearGradient, _super);\n function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\n var _this = _super.call(this, colorStops) || this;\n _this.x = x == null ? 0 : x;\n _this.y = y == null ? 0 : y;\n _this.x2 = x2 == null ? 1 : x2;\n _this.y2 = y2 == null ? 0 : y2;\n _this.type = 'linear';\n _this.global = globalCoord || false;\n return _this;\n }\n return LinearGradient;\n}(Gradient));\nexport default LinearGradient;\n;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar RadialGradient = (function (_super) {\n __extends(RadialGradient, _super);\n function RadialGradient(x, y, r, colorStops, globalCoord) {\n var _this = _super.call(this, colorStops) || this;\n _this.x = x == null ? 0.5 : x;\n _this.y = y == null ? 0.5 : y;\n _this.r = r == null ? 0.5 : r;\n _this.type = 'radial';\n _this.global = globalCoord || false;\n return _this;\n }\n return RadialGradient;\n}(Gradient));\nexport default RadialGradient;\n","import Point from './Point';\nvar extent = [0, 0];\nvar extent2 = [0, 0];\nvar minTv = new Point();\nvar maxTv = new Point();\nvar OrientedBoundingRect = (function () {\n function OrientedBoundingRect(rect, transform) {\n this._corners = [];\n this._axes = [];\n this._origin = [0, 0];\n for (var i = 0; i < 4; i++) {\n this._corners[i] = new Point();\n }\n for (var i = 0; i < 2; i++) {\n this._axes[i] = new Point();\n }\n if (rect) {\n this.fromBoundingRect(rect, transform);\n }\n }\n OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\n var corners = this._corners;\n var axes = this._axes;\n var x = rect.x;\n var y = rect.y;\n var x2 = x + rect.width;\n var y2 = y + rect.height;\n corners[0].set(x, y);\n corners[1].set(x2, y);\n corners[2].set(x2, y2);\n corners[3].set(x, y2);\n if (transform) {\n for (var i = 0; i < 4; i++) {\n corners[i].transform(transform);\n }\n }\n Point.sub(axes[0], corners[1], corners[0]);\n Point.sub(axes[1], corners[3], corners[0]);\n axes[0].normalize();\n axes[1].normalize();\n for (var i = 0; i < 2; i++) {\n this._origin[i] = axes[i].dot(corners[0]);\n }\n };\n OrientedBoundingRect.prototype.intersect = function (other, mtv) {\n var overlapped = true;\n var noMtv = !mtv;\n minTv.set(Infinity, Infinity);\n maxTv.set(0, 0);\n if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) {\n overlapped = false;\n if (noMtv) {\n return overlapped;\n }\n }\n if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) {\n overlapped = false;\n if (noMtv) {\n return overlapped;\n }\n }\n if (!noMtv) {\n Point.copy(mtv, overlapped ? minTv : maxTv);\n }\n return overlapped;\n };\n OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\n var overlapped = true;\n for (var i = 0; i < 2; i++) {\n var axis = this._axes[i];\n this._getProjMinMaxOnAxis(i, self._corners, extent);\n this._getProjMinMaxOnAxis(i, other._corners, extent2);\n if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\n overlapped = false;\n if (noMtv) {\n return overlapped;\n }\n var dist0 = Math.abs(extent2[0] - extent[1]);\n var dist1 = Math.abs(extent[0] - extent2[1]);\n if (Math.min(dist0, dist1) > maxTv.len()) {\n if (dist0 < dist1) {\n Point.scale(maxTv, axis, -dist0 * inverse);\n }\n else {\n Point.scale(maxTv, axis, dist1 * inverse);\n }\n }\n }\n else if (minTv) {\n var dist0 = Math.abs(extent2[0] - extent[1]);\n var dist1 = Math.abs(extent[0] - extent2[1]);\n if (Math.min(dist0, dist1) < minTv.len()) {\n if (dist0 < dist1) {\n Point.scale(minTv, axis, dist0 * inverse);\n }\n else {\n Point.scale(minTv, axis, -dist1 * inverse);\n }\n }\n }\n }\n return overlapped;\n };\n OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\n var axis = this._axes[dim];\n var origin = this._origin;\n var proj = corners[0].dot(axis) + origin[dim];\n var min = proj;\n var max = proj;\n for (var i = 1; i < corners.length; i++) {\n var proj_1 = corners[i].dot(axis) + origin[dim];\n min = Math.min(proj_1, min);\n max = Math.max(proj_1, max);\n }\n out[0] = min;\n out[1] = max;\n };\n return OrientedBoundingRect;\n}());\nexport default OrientedBoundingRect;\n","import { __extends } from \"tslib\";\nimport Displayble from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nvar m = [];\nvar IncrementalDisplayable = (function (_super) {\n __extends(IncrementalDisplayable, _super);\n function IncrementalDisplayable() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.notClear = true;\n _this.incremental = true;\n _this._displayables = [];\n _this._temporaryDisplayables = [];\n _this._cursor = 0;\n return _this;\n }\n IncrementalDisplayable.prototype.traverse = function (cb, context) {\n cb.call(context, this);\n };\n IncrementalDisplayable.prototype.useStyle = function () {\n this.style = {};\n };\n IncrementalDisplayable.prototype.getCursor = function () {\n return this._cursor;\n };\n IncrementalDisplayable.prototype.innerAfterBrush = function () {\n this._cursor = this._displayables.length;\n };\n IncrementalDisplayable.prototype.clearDisplaybles = function () {\n this._displayables = [];\n this._temporaryDisplayables = [];\n this._cursor = 0;\n this.markRedraw();\n this.notClear = false;\n };\n IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {\n this._temporaryDisplayables = [];\n };\n IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {\n if (notPersistent) {\n this._temporaryDisplayables.push(displayable);\n }\n else {\n this._displayables.push(displayable);\n }\n this.markRedraw();\n };\n IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {\n notPersistent = notPersistent || false;\n for (var i = 0; i < displayables.length; i++) {\n this.addDisplayable(displayables[i], notPersistent);\n }\n };\n IncrementalDisplayable.prototype.getDisplayables = function () {\n return this._displayables;\n };\n IncrementalDisplayable.prototype.getTemporalDisplayables = function () {\n return this._temporaryDisplayables;\n };\n IncrementalDisplayable.prototype.eachPendingDisplayable = function (cb) {\n for (var i = this._cursor; i < this._displayables.length; i++) {\n cb && cb(this._displayables[i]);\n }\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n cb && cb(this._temporaryDisplayables[i]);\n }\n };\n IncrementalDisplayable.prototype.update = function () {\n this.updateTransform();\n for (var i = this._cursor; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n var displayable = this._temporaryDisplayables[i];\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n };\n IncrementalDisplayable.prototype.getBoundingRect = function () {\n if (!this._rect) {\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n for (var i = 0; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n var childRect = displayable.getBoundingRect().clone();\n if (displayable.needLocalTransform()) {\n childRect.applyTransform(displayable.getLocalTransform(m));\n }\n rect.union(childRect);\n }\n this._rect = rect;\n }\n return this._rect;\n };\n IncrementalDisplayable.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n if (rect.contain(localPos[0], localPos[1])) {\n for (var i = 0; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n if (displayable.contain(x, y)) {\n return true;\n }\n }\n }\n return false;\n };\n return IncrementalDisplayable;\n}(Displayble));\nexport default IncrementalDisplayable;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as pathTool from 'zrender/lib/tool/path';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport Path from 'zrender/lib/graphic/Path';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport Group from 'zrender/lib/graphic/Group';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport Circle from 'zrender/lib/graphic/shape/Circle';\nimport Ellipse from 'zrender/lib/graphic/shape/Ellipse';\nimport Sector from 'zrender/lib/graphic/shape/Sector';\nimport Ring from 'zrender/lib/graphic/shape/Ring';\nimport Polygon from 'zrender/lib/graphic/shape/Polygon';\nimport Polyline from 'zrender/lib/graphic/shape/Polyline';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport Line from 'zrender/lib/graphic/shape/Line';\nimport BezierCurve from 'zrender/lib/graphic/shape/BezierCurve';\nimport Arc from 'zrender/lib/graphic/shape/Arc';\nimport CompoundPath from 'zrender/lib/graphic/CompoundPath';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport RadialGradient from 'zrender/lib/graphic/RadialGradient';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport OrientedBoundingRect from 'zrender/lib/core/OrientedBoundingRect';\nimport Point from 'zrender/lib/core/Point';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as subPixelOptimizeUtil from 'zrender/lib/graphic/helper/subPixelOptimize';\nimport { extend, isArrayLike, map, defaults, isObject, retrieve2 } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar _customShapeMap = {};\nexport function extendShape(opts) {\n return Path.extend(opts);\n}\nvar extendPathFromString = pathTool.extendFromString;\nexport function extendPath(pathData, opts) {\n return extendPathFromString(pathData, opts);\n}\nexport function registerShape(name, ShapeClass) {\n _customShapeMap[name] = ShapeClass;\n}\nexport function getShapeClass(name) {\n if (_customShapeMap.hasOwnProperty(name)) {\n return _customShapeMap[name];\n }\n}\nexport function makePath(pathData, opts, rect, layout) {\n var path = pathTool.createFromString(pathData, opts);\n\n if (rect) {\n if (layout === 'center') {\n rect = centerGraphic(rect, path.getBoundingRect());\n }\n\n resizePath(path, rect);\n }\n\n return path;\n}\nexport function makeImage(imageUrl, rect, layout) {\n var zrImg = new ZRImage({\n style: {\n image: imageUrl,\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n onload: function (img) {\n if (layout === 'center') {\n var boundingRect = {\n width: img.width,\n height: img.height\n };\n zrImg.setStyle(centerGraphic(rect, boundingRect));\n }\n }\n });\n return zrImg;\n}\n\nfunction centerGraphic(rect, boundingRect) {\n var aspect = boundingRect.width / boundingRect.height;\n var width = rect.height * aspect;\n var height;\n\n if (width <= rect.width) {\n height = rect.height;\n } else {\n width = rect.width;\n height = width / aspect;\n }\n\n var cx = rect.x + rect.width / 2;\n var cy = rect.y + rect.height / 2;\n return {\n x: cx - width / 2,\n y: cy - height / 2,\n width: width,\n height: height\n };\n}\n\nexport var mergePath = pathTool.mergePath;\nexport function resizePath(path, rect) {\n if (!path.applyTransform) {\n return;\n }\n\n var pathRect = path.getBoundingRect();\n var m = pathRect.calculateTransform(rect);\n path.applyTransform(m);\n}\nexport function subPixelOptimizeLine(param) {\n subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n return param;\n}\nexport function subPixelOptimizeRect(param) {\n subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n return param;\n}\nexport var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\n var isFrom = false;\n var removeOpt;\n\n if (typeof dataIndex === 'function') {\n during = cb;\n cb = dataIndex;\n dataIndex = null;\n } else if (isObject(dataIndex)) {\n cb = dataIndex.cb;\n during = dataIndex.during;\n isFrom = dataIndex.isFrom;\n removeOpt = dataIndex.removeOpt;\n dataIndex = dataIndex.dataIndex;\n }\n\n var isUpdate = animationType === 'update';\n var isRemove = animationType === 'remove';\n var animationPayload;\n\n if (animatableModel && animatableModel.ecModel) {\n var updatePayload = animatableModel.ecModel.getUpdatePayload();\n animationPayload = updatePayload && updatePayload.animation;\n }\n\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n if (!isRemove) {\n el.stopAnimation('remove');\n }\n\n if (animationEnabled) {\n var duration = void 0;\n var animationEasing = void 0;\n var animationDelay = void 0;\n\n if (animationPayload) {\n duration = animationPayload.duration || 0;\n animationEasing = animationPayload.easing || 'cubicOut';\n animationDelay = animationPayload.delay || 0;\n } else if (isRemove) {\n removeOpt = removeOpt || {};\n duration = retrieve2(removeOpt.duration, 200);\n animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\n animationDelay = 0;\n } else {\n duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\n animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\n animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\n }\n\n if (typeof animationDelay === 'function') {\n animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n }\n\n if (typeof duration === 'function') {\n duration = duration(dataIndex);\n }\n\n duration > 0 ? isFrom ? el.animateFrom(props, {\n duration: duration,\n delay: animationDelay || 0,\n easing: animationEasing,\n done: cb,\n force: !!cb || !!during,\n scope: animationType,\n during: during\n }) : el.animateTo(props, {\n duration: duration,\n delay: animationDelay || 0,\n easing: animationEasing,\n done: cb,\n force: !!cb || !!during,\n setToFinal: true,\n scope: animationType,\n during: during\n }) : (el.stopAnimation(), !isFrom && el.attr(props), cb && cb());\n } else {\n el.stopAnimation();\n !isFrom && el.attr(props);\n during && during(1);\n cb && cb();\n }\n}\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb, during) {\n animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\n}\n\nexport { updateProps };\nexport function initProps(el, props, animatableModel, dataIndex, cb, during) {\n animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\n}\nexport function removeElement(el, props, animatableModel, dataIndex, cb, during) {\n if (isElementRemoved(el)) {\n return;\n }\n\n animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\n}\n\nfunction fadeOutDisplayable(el, animatableModel, dataIndex, done) {\n el.removeTextContent();\n el.removeTextGuideLine();\n removeElement(el, {\n style: {\n opacity: 0\n }\n }, animatableModel, dataIndex, done);\n}\n\nexport function removeElementWithFadeOut(el, animatableModel, dataIndex) {\n function doRemove() {\n el.parent && el.parent.remove(el);\n }\n\n if (!el.isGroup) {\n fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\n } else {\n el.traverse(function (disp) {\n if (!disp.isGroup) {\n fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\n }\n });\n }\n}\nexport function isElementRemoved(el) {\n if (!el.__zr) {\n return true;\n }\n\n for (var i = 0; i < el.animators.length; i++) {\n var animator = el.animators[i];\n\n if (animator.scope === 'remove') {\n return true;\n }\n }\n\n return false;\n}\nexport function getTransform(target, ancestor) {\n var mat = matrix.identity([]);\n\n while (target && target !== ancestor) {\n matrix.mul(mat, target.getLocalTransform(), mat);\n target = target.parent;\n }\n\n return mat;\n}\nexport function applyTransform(target, transform, invert) {\n if (transform && !isArrayLike(transform)) {\n transform = Transformable.getLocalTransform(transform);\n }\n\n if (invert) {\n transform = matrix.invert([], transform);\n }\n\n return vector.applyTransform([], target, transform);\n}\nexport function transformDirection(direction, transform, invert) {\n var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n vertex = applyTransform(vertex, transform, invert);\n return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n\nfunction isNotGroup(el) {\n return !el.isGroup;\n}\n\nfunction isPath(el) {\n return el.shape != null;\n}\n\nexport function groupTransition(g1, g2, animatableModel) {\n if (!g1 || !g2) {\n return;\n }\n\n function getElMap(g) {\n var elMap = {};\n g.traverse(function (el) {\n if (isNotGroup(el) && el.anid) {\n elMap[el.anid] = el;\n }\n });\n return elMap;\n }\n\n function getAnimatableProps(el) {\n var obj = {\n x: el.x,\n y: el.y,\n rotation: el.rotation\n };\n\n if (isPath(el)) {\n obj.shape = extend({}, el.shape);\n }\n\n return obj;\n }\n\n var elMap1 = getElMap(g1);\n g2.traverse(function (el) {\n if (isNotGroup(el) && el.anid) {\n var oldEl = elMap1[el.anid];\n\n if (oldEl) {\n var newProp = getAnimatableProps(el);\n el.attr(getAnimatableProps(oldEl));\n updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\n }\n }\n });\n}\nexport function clipPointsByRect(points, rect) {\n return map(points, function (point) {\n var x = point[0];\n x = mathMax(x, rect.x);\n x = mathMin(x, rect.x + rect.width);\n var y = point[1];\n y = mathMax(y, rect.y);\n y = mathMin(y, rect.y + rect.height);\n return [x, y];\n });\n}\nexport function clipRectByRect(targetRect, rect) {\n var x = mathMax(targetRect.x, rect.x);\n var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n var y = mathMax(targetRect.y, rect.y);\n var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height);\n\n if (x2 >= x && y2 >= y) {\n return {\n x: x,\n y: y,\n width: x2 - x,\n height: y2 - y\n };\n }\n}\nexport function createIcon(iconStr, opt, rect) {\n var innerOpts = extend({\n rectHover: true\n }, opt);\n var style = innerOpts.style = {\n strokeNoScale: true\n };\n rect = rect || {\n x: -1,\n y: -1,\n width: 2,\n height: 2\n };\n\n if (iconStr) {\n return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center');\n }\n}\nexport function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n var p = points[i];\n\n if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n return true;\n }\n\n p2 = p;\n }\n}\nexport function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n var mx = a2x - a1x;\n var my = a2y - a1y;\n var nx = b2x - b1x;\n var ny = b2y - b1y;\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n if (nearZero(nmCrossProduct)) {\n return false;\n }\n\n var b1a1x = a1x - b1x;\n var b1a1y = a1y - b1y;\n var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n if (q < 0 || q > 1) {\n return false;\n }\n\n var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n if (p < 0 || p > 1) {\n return false;\n }\n\n return true;\n}\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n return val <= 1e-6 && val >= -1e-6;\n}\n\nregisterShape('circle', Circle);\nregisterShape('ellipse', Ellipse);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexport { Group, ZRImage as Image, ZRText as Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect, OrientedBoundingRect, Point, Path };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states';\nimport { deprecateReplaceLog } from '../util/log';\nimport { makeInner, interpolateRawValues } from '../util/model';\nimport { initProps, updateProps } from '../util/graphic';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var text = labelTexts[stateName];\n var state = label.ensureState(stateName);\n state.style = state.style || {};\n state.style.text = text;\n }\n\n var oldStates = label.currentStates.slice();\n label.clearStates(true);\n label.setStyle({\n text: labelTexts.normal\n });\n label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n var labelFetcher = opt.labelFetcher;\n var labelDataIndex = opt.labelDataIndex;\n var labelDimIndex = opt.labelDimIndex;\n var normalModel = stateModels.normal;\n var baseText;\n\n if (labelFetcher) {\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n interpolatedValue: interpolatedValue\n } : null);\n }\n\n if (baseText == null) {\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n }\n\n var statesText = {\n normal: baseText\n };\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var stateModel = stateModels[stateName];\n statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n }\n\n return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\n opt = opt || EMPTY_OBJ;\n var isSetOnText = targetEl instanceof ZRText;\n var needsCreateText = false;\n\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n if (stateModel && stateModel.getShallow('show')) {\n needsCreateText = true;\n break;\n }\n }\n\n var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n if (needsCreateText) {\n if (!isSetOnText) {\n if (!textContent) {\n textContent = new ZRText();\n targetEl.setTextContent(textContent);\n }\n\n if (targetEl.stateProxy) {\n textContent.stateProxy = targetEl.stateProxy;\n }\n }\n\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\n var normalModel = labelStatesModels.normal;\n var showNormal = !!normalModel.getShallow('show');\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n normalStyle.text = labelStatesTexts.normal;\n\n if (!isSetOnText) {\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n }\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var stateModel = labelStatesModels[stateName];\n\n if (stateModel) {\n var stateObj = textContent.ensureState(stateName);\n var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n if (stateShow !== showNormal) {\n stateObj.ignore = !stateShow;\n }\n\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n stateObj.style.text = labelStatesTexts[stateName];\n\n if (!isSetOnText) {\n var targetElEmphasisState = targetEl.ensureState(stateName);\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n }\n }\n }\n\n textContent.silent = !!normalModel.getShallow('silent');\n\n if (textContent.style.x != null) {\n normalStyle.x = textContent.style.x;\n }\n\n if (textContent.style.y != null) {\n normalStyle.y = textContent.style.y;\n }\n\n textContent.ignore = !showNormal;\n textContent.useStyle(normalStyle);\n textContent.dirty();\n\n if (opt.enableTextSetter) {\n labelInner(textContent).setLabelText = function (interpolatedValue) {\n var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n setLabelText(textContent, labelStatesTexts);\n };\n }\n } else if (textContent) {\n textContent.ignore = true;\n }\n\n targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n labelName = labelName || 'label';\n var statesModels = {\n normal: itemModel.getModel(labelName)\n };\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n }\n\n return statesModels;\n}\nexport function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\n var textStyle = {};\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n specifiedTextStyle && extend(textStyle, specifiedTextStyle);\n return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n opt = opt || {};\n var textConfig = {};\n var labelPosition;\n var labelRotate = textStyleModel.getShallow('rotate');\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n var labelOffset = textStyleModel.getShallow('offset');\n labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside');\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n if (labelPosition != null) {\n textConfig.position = labelPosition;\n }\n\n if (labelOffset != null) {\n textConfig.offset = labelOffset;\n }\n\n if (labelRotate != null) {\n labelRotate *= Math.PI / 180;\n textConfig.rotation = labelRotate;\n }\n\n if (labelDistance != null) {\n textConfig.distance = labelDistance;\n }\n\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n return textConfig;\n}\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n opt = opt || EMPTY_OBJ;\n var ecModel = textStyleModel.ecModel;\n var globalTextStyle = ecModel && ecModel.option.textStyle;\n var richItemNames = getRichItemNames(textStyleModel);\n var richResult;\n\n if (richItemNames) {\n richResult = {};\n\n for (var name_1 in richItemNames) {\n if (richItemNames.hasOwnProperty(name_1)) {\n var richTextStyle = textStyleModel.getModel(['rich', name_1]);\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n }\n }\n }\n\n if (richResult) {\n textStyle.rich = richResult;\n }\n\n var overflow = textStyleModel.get('overflow');\n\n if (overflow) {\n textStyle.overflow = overflow;\n }\n\n var margin = textStyleModel.get('minMargin');\n\n if (margin != null) {\n textStyle.margin = margin;\n }\n\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n}\n\nfunction getRichItemNames(textStyleModel) {\n var richItemNameMap;\n\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n if (rich) {\n richItemNameMap = richItemNameMap || {};\n var richKeys = keys(rich);\n\n for (var i = 0; i < richKeys.length; i++) {\n var richKey = richKeys[i];\n richItemNameMap[richKey] = 1;\n }\n }\n\n textStyleModel = textStyleModel.parentModel;\n }\n\n return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n var inheritColor = opt && opt.inheritColor;\n var fillColor = textStyleModel.getShallow('color');\n var strokeColor = textStyleModel.getShallow('textBorderColor');\n var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n if (fillColor === 'inherit' || fillColor === 'auto') {\n if (process.env.NODE_ENV !== 'production') {\n if (fillColor === 'auto') {\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n }\n }\n\n if (inheritColor) {\n fillColor = inheritColor;\n } else {\n fillColor = null;\n }\n }\n\n if (strokeColor === 'inherit' || strokeColor === 'auto') {\n if (process.env.NODE_ENV !== 'production') {\n if (strokeColor === 'auto') {\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n }\n }\n\n if (inheritColor) {\n strokeColor = inheritColor;\n } else {\n strokeColor = null;\n }\n }\n\n if (!isAttached) {\n fillColor = fillColor || globalTextStyle.color;\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\n }\n\n if (fillColor != null) {\n textStyle.fill = fillColor;\n }\n\n if (strokeColor != null) {\n textStyle.stroke = strokeColor;\n }\n\n var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n if (textBorderWidth != null) {\n textStyle.lineWidth = textBorderWidth;\n }\n\n var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n if (textBorderType != null) {\n textStyle.lineDash = textBorderType;\n }\n\n var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n if (textBorderDashOffset != null) {\n textStyle.lineDashOffset = textBorderDashOffset;\n }\n\n if (!isNotNormal && opacity == null && !inRich) {\n opacity = opt && opt.defaultOpacity;\n }\n\n if (opacity != null) {\n textStyle.opacity = opacity;\n }\n\n if (!isNotNormal && !isAttached) {\n if (textStyle.fill == null && opt.inheritColor) {\n textStyle.fill = opt.inheritColor;\n }\n }\n\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n var key = TEXT_PROPS_WITH_GLOBAL[i];\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n var key = TEXT_PROPS_SELF[i];\n var val = textStyleModel.getShallow(key);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n if (textStyle.verticalAlign == null) {\n var baseline = textStyleModel.getShallow('baseline');\n\n if (baseline != null) {\n textStyle.verticalAlign = baseline;\n }\n }\n\n if (!isBlock || !opt.disableBox) {\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n var key = TEXT_PROPS_BOX[i];\n var val = textStyleModel.getShallow(key);\n\n if (val != null) {\n textStyle[key] = val;\n }\n }\n\n var borderType = textStyleModel.getShallow('borderType');\n\n if (borderType != null) {\n textStyle.borderDash = borderType;\n }\n\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n if (process.env.NODE_ENV !== 'production') {\n if (textStyle.backgroundColor === 'auto') {\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n }\n }\n\n textStyle.backgroundColor = inheritColor;\n }\n\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n if (process.env.NODE_ENV !== 'production') {\n if (textStyle.borderColor === 'auto') {\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n }\n }\n\n textStyle.borderColor = inheritColor;\n }\n }\n}\n\nexport function getFont(opt, ecModel) {\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n return trim([opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n if (!label) {\n return;\n }\n\n var obj = labelInner(label);\n obj.prevValue = obj.value;\n obj.value = value;\n var normalLabelModel = labelStatesModels.normal;\n obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n if (obj.valueAnimation) {\n obj.precision = normalLabelModel.get('precision');\n obj.defaultInterpolatedText = getDefaultText;\n obj.statesModels = labelStatesModels;\n }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n var labelInnerStore = labelInner(textEl);\n\n if (!labelInnerStore.valueAnimation) {\n return;\n }\n\n var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\n var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n var targetValue = labelInnerStore.value;\n\n function during(percent) {\n var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n var labelText = getLabelText({\n labelDataIndex: dataIndex,\n labelFetcher: labelFetcher,\n defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n }, labelInnerStore.statesModels, interpolated);\n setLabelText(textEl, labelText);\n }\n\n (currValue == null ? initProps : updateProps)(textEl, {}, animatableModel, dataIndex, null, during);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getFont } from '../../label/labelStyle';\nimport ZRText from 'zrender/lib/graphic/Text';\nvar PATH_COLOR = ['textStyle', 'color'];\nvar tmpRichText = new ZRText();\n\nvar TextStyleMixin = function () {\n function TextStyleMixin() {}\n\n TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\n var ecModel = this.ecModel;\n return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n };\n\n TextStyleMixin.prototype.getFont = function () {\n return getFont({\n fontStyle: this.getShallow('fontStyle'),\n fontWeight: this.getShallow('fontWeight'),\n fontSize: this.getShallow('fontSize'),\n fontFamily: this.getShallow('fontFamily')\n }, this.ecModel);\n };\n\n TextStyleMixin.prototype.getTextRect = function (text) {\n tmpRichText.useStyle({\n text: text,\n fontStyle: this.getShallow('fontStyle'),\n fontWeight: this.getShallow('fontWeight'),\n fontSize: this.getShallow('fontSize'),\n fontFamily: this.getShallow('fontFamily'),\n verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\n padding: this.getShallow('padding'),\n lineHeight: this.getShallow('lineHeight'),\n rich: this.getShallow('rich')\n });\n tmpRichText.update();\n return tmpRichText.getBoundingRect();\n };\n\n return TextStyleMixin;\n}();\n\n;\nexport default TextStyleMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var LINE_STYLE_KEY_MAP = [['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit']];\nvar getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\n\nvar LineStyleMixin = function () {\n function LineStyleMixin() {}\n\n LineStyleMixin.prototype.getLineStyle = function (excludes) {\n return getLineStyle(this, excludes);\n };\n\n return LineStyleMixin;\n}();\n\n;\nexport { LineStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var ITEM_STYLE_KEY_MAP = [['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit']];\nvar getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\n\nvar ItemStyleMixin = function () {\n function ItemStyleMixin() {}\n\n ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\n return getItemStyle(this, excludes, includes);\n };\n\n return ItemStyleMixin;\n}();\n\nexport { ItemStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport env from 'zrender/lib/core/env';\nimport { enableClassExtend, enableClassCheck } from '../util/clazz';\nimport { AreaStyleMixin } from './mixin/areaStyle';\nimport TextStyleMixin from './mixin/textStyle';\nimport { LineStyleMixin } from './mixin/lineStyle';\nimport { ItemStyleMixin } from './mixin/itemStyle';\nimport { mixin, clone, merge } from 'zrender/lib/core/util';\n\nvar Model = function () {\n function Model(option, parentModel, ecModel) {\n this.parentModel = parentModel;\n this.ecModel = ecModel;\n this.option = option;\n }\n\n Model.prototype.init = function (option, parentModel, ecModel) {\n var rest = [];\n\n for (var _i = 3; _i < arguments.length; _i++) {\n rest[_i - 3] = arguments[_i];\n }\n };\n\n Model.prototype.mergeOption = function (option, ecModel) {\n merge(this.option, option, true);\n };\n\n Model.prototype.get = function (path, ignoreParent) {\n if (path == null) {\n return this.option;\n }\n\n return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\n };\n\n Model.prototype.getShallow = function (key, ignoreParent) {\n var option = this.option;\n var val = option == null ? option : option[key];\n\n if (val == null && !ignoreParent) {\n var parentModel = this.parentModel;\n\n if (parentModel) {\n val = parentModel.getShallow(key);\n }\n }\n\n return val;\n };\n\n Model.prototype.getModel = function (path, parentModel) {\n var hasPath = path != null;\n var pathFinal = hasPath ? this.parsePath(path) : null;\n var obj = hasPath ? this._doGet(pathFinal) : this.option;\n parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));\n return new Model(obj, parentModel, this.ecModel);\n };\n\n Model.prototype.isEmpty = function () {\n return this.option == null;\n };\n\n Model.prototype.restoreData = function () {};\n\n Model.prototype.clone = function () {\n var Ctor = this.constructor;\n return new Ctor(clone(this.option));\n };\n\n Model.prototype.parsePath = function (path) {\n if (typeof path === 'string') {\n return path.split('.');\n }\n\n return path;\n };\n\n Model.prototype.resolveParentPath = function (path) {\n return path;\n };\n\n Model.prototype.isAnimationEnabled = function () {\n if (!env.node && this.option) {\n if (this.option.animation != null) {\n return !!this.option.animation;\n } else if (this.parentModel) {\n return this.parentModel.isAnimationEnabled();\n }\n }\n };\n\n Model.prototype._doGet = function (pathArr, parentModel) {\n var obj = this.option;\n\n if (!pathArr) {\n return obj;\n }\n\n for (var i = 0; i < pathArr.length; i++) {\n if (!pathArr[i]) {\n continue;\n }\n\n obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n if (obj == null) {\n break;\n }\n }\n\n if (obj == null && parentModel) {\n obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\n }\n\n return obj;\n };\n\n return Model;\n}();\n\n;\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, LineStyleMixin);\nmixin(Model, ItemStyleMixin);\nmixin(Model, AreaStyleMixin);\nmixin(Model, TextStyleMixin);\nexport default Model;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\nimport { makePrintable } from './log';\nvar base = Math.round(Math.random() * 10);\nexport function getUID(type) {\n return [type || '', base++].join('_');\n}\nexport function enableSubTypeDefaulter(target) {\n var subTypeDefaulters = {};\n\n target.registerSubTypeDefaulter = function (componentType, defaulter) {\n var componentTypeInfo = parseClassType(componentType);\n subTypeDefaulters[componentTypeInfo.main] = defaulter;\n };\n\n target.determineSubType = function (componentType, option) {\n var type = option.type;\n\n if (!type) {\n var componentTypeMain = parseClassType(componentType).main;\n\n if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n type = subTypeDefaulters[componentTypeMain](option);\n }\n }\n\n return type;\n };\n}\nexport function enableTopologicalTravel(entity, dependencyGetter) {\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n if (!targetNameList.length) {\n return;\n }\n\n var result = makeDepndencyGraph(fullNameList);\n var graph = result.graph;\n var noEntryList = result.noEntryList;\n var targetNameSet = {};\n zrUtil.each(targetNameList, function (name) {\n targetNameSet[name] = true;\n });\n\n while (noEntryList.length) {\n var currComponentType = noEntryList.pop();\n var currVertex = graph[currComponentType];\n var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n if (isInTargetNameSet) {\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\n delete targetNameSet[currComponentType];\n }\n\n zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n }\n\n zrUtil.each(targetNameSet, function () {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\n }\n\n throw new Error(errMsg);\n });\n\n function removeEdge(succComponentType) {\n graph[succComponentType].entryCount--;\n\n if (graph[succComponentType].entryCount === 0) {\n noEntryList.push(succComponentType);\n }\n }\n\n function removeEdgeAndAdd(succComponentType) {\n targetNameSet[succComponentType] = true;\n removeEdge(succComponentType);\n }\n };\n\n function makeDepndencyGraph(fullNameList) {\n var graph = {};\n var noEntryList = [];\n zrUtil.each(fullNameList, function (name) {\n var thisItem = createDependencyGraphItem(graph, name);\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n thisItem.entryCount = availableDeps.length;\n\n if (thisItem.entryCount === 0) {\n noEntryList.push(name);\n }\n\n zrUtil.each(availableDeps, function (dependentName) {\n if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n thisItem.predecessor.push(dependentName);\n }\n\n var thatItem = createDependencyGraphItem(graph, dependentName);\n\n if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n thatItem.successor.push(name);\n }\n });\n });\n return {\n graph: graph,\n noEntryList: noEntryList\n };\n }\n\n function createDependencyGraphItem(graph, name) {\n if (!graph[name]) {\n graph[name] = {\n predecessor: [],\n successor: []\n };\n }\n\n return graph[name];\n }\n\n function getAvailableDependencies(originalDeps, fullNameList) {\n var availableDeps = [];\n zrUtil.each(originalDeps, function (dep) {\n zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n });\n return availableDeps;\n }\n}\nexport function inheritDefaultOption(superOption, subOption) {\n return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n time: {\n month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n },\n legend: {\n selector: {\n all: 'All',\n inverse: 'Inv'\n }\n },\n toolbox: {\n brush: {\n title: {\n rect: 'Box Select',\n polygon: 'Lasso Select',\n lineX: 'Horizontally Select',\n lineY: 'Vertically Select',\n keep: 'Keep Selections',\n clear: 'Clear Selections'\n }\n },\n dataView: {\n title: 'Data View',\n lang: ['Data View', 'Close', 'Refresh']\n },\n dataZoom: {\n title: {\n zoom: 'Zoom',\n back: 'Zoom Reset'\n }\n },\n magicType: {\n title: {\n line: 'Switch to Line Chart',\n bar: 'Switch to Bar Chart',\n stack: 'Stack',\n tiled: 'Tile'\n }\n },\n restore: {\n title: 'Restore'\n },\n saveAsImage: {\n title: 'Save as Image',\n lang: ['Right Click to Save Image']\n }\n },\n series: {\n typeNames: {\n pie: 'Pie chart',\n bar: 'Bar chart',\n line: 'Line chart',\n scatter: 'Scatter plot',\n effectScatter: 'Ripple scatter plot',\n radar: 'Radar chart',\n tree: 'Tree',\n treemap: 'Treemap',\n boxplot: 'Boxplot',\n candlestick: 'Candlestick',\n k: 'K line chart',\n heatmap: 'Heat map',\n map: 'Map',\n parallel: 'Parallel coordinate map',\n lines: 'Line graph',\n graph: 'Relationship graph',\n sankey: 'Sankey diagram',\n funnel: 'Funnel chart',\n gauge: 'Guage',\n pictorialBar: 'Pictorial bar',\n themeRiver: 'Theme River Map',\n sunburst: 'Sunburst'\n }\n },\n aria: {\n general: {\n withTitle: 'This is a chart about \"{title}\"',\n withoutTitle: 'This is a chart'\n },\n series: {\n single: {\n prefix: '',\n withName: ' with type {seriesType} named {seriesName}.',\n withoutName: ' with type {seriesType}.'\n },\n multiple: {\n prefix: '. It consists of {seriesCount} series count.',\n withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n withoutName: ' The {seriesId} series is a {seriesType}.',\n separator: {\n middle: '',\n end: ''\n }\n }\n },\n data: {\n allData: 'The data is as follows: ',\n partialData: 'The first {displayCnt} items are: ',\n withName: 'the data for {name} is {value}',\n withoutName: '{value}',\n separator: {\n middle: ', ',\n end: '. '\n }\n }\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n time: {\n month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']\n },\n legend: {\n selector: {\n all: '全选',\n inverse: '反选'\n }\n },\n toolbox: {\n brush: {\n title: {\n rect: '矩形选择',\n polygon: '圈选',\n lineX: '横向选择',\n lineY: '纵向选择',\n keep: '保持选择',\n clear: '清除选择'\n }\n },\n dataView: {\n title: '数据视图',\n lang: ['数据视图', '关闭', '刷新']\n },\n dataZoom: {\n title: {\n zoom: '区域缩放',\n back: '区域缩放还原'\n }\n },\n magicType: {\n title: {\n line: '切换为折线图',\n bar: '切换为柱状图',\n stack: '切换为堆叠',\n tiled: '切换为平铺'\n }\n },\n restore: {\n title: '还原'\n },\n saveAsImage: {\n title: '保存为图片',\n lang: ['右键另存为图片']\n }\n },\n series: {\n typeNames: {\n pie: '饼图',\n bar: '柱状图',\n line: '折线图',\n scatter: '散点图',\n effectScatter: '涟漪散点图',\n radar: '雷达图',\n tree: '树图',\n treemap: '矩形树图',\n boxplot: '箱型图',\n candlestick: 'K线图',\n k: 'K线图',\n heatmap: '热力图',\n map: '地图',\n parallel: '平行坐标图',\n lines: '线图',\n graph: '关系图',\n sankey: '桑基图',\n funnel: '漏斗图',\n gauge: '仪表盘图',\n pictorialBar: '象形柱图',\n themeRiver: '主题河流图',\n sunburst: '旭日图'\n }\n },\n aria: {\n general: {\n withTitle: '这是一个关于“{title}”的图表。',\n withoutTitle: '这是一个图表,'\n },\n series: {\n single: {\n prefix: '',\n withName: '图表类型是{seriesType},表示{seriesName}。',\n withoutName: '图表类型是{seriesType}。'\n },\n multiple: {\n prefix: '它由{seriesCount}个图表系列组成。',\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n withoutName: '第{seriesId}个系列是一个{seriesType},',\n separator: {\n middle: ';',\n end: '。'\n }\n }\n },\n data: {\n allData: '其数据是——',\n partialData: '其中,前{displayCnt}项是——',\n withName: '{name}的数据是{value}',\n withoutName: '{value}',\n separator: {\n middle: ',',\n end: ''\n }\n }\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../model/Model';\nimport env from 'zrender/lib/core/env';\nimport langEN from '../i18n/langEN';\nimport langZH from '../i18n/langZH';\nimport { isString, clone, merge } from 'zrender/lib/core/util';\nvar LOCALE_ZH = 'ZH';\nvar LOCALE_EN = 'EN';\nvar DEFAULT_LOCALE = LOCALE_EN;\nvar localeStorage = {};\nvar localeModels = {};\nexport var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function () {\n var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\n return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\n}();\nexport function registerLocale(locale, localeObj) {\n locale = locale.toUpperCase();\n localeModels[locale] = new Model(localeObj);\n localeStorage[locale] = localeObj;\n}\nexport function createLocaleObject(locale) {\n if (isString(locale)) {\n var localeObj = localeStorage[locale.toUpperCase()] || {};\n\n if (locale === LOCALE_ZH || locale === LOCALE_EN) {\n return clone(localeObj);\n } else {\n return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\n }\n } else {\n return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\n }\n}\nexport function getLocaleModel(lang) {\n return localeModels[lang];\n}\nexport function getDefaultLocaleModel() {\n return localeModels[DEFAULT_LOCALE];\n}\nregisterLocale(LOCALE_EN, langEN);\nregisterLocale(LOCALE_ZH, langZH);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from './number';\nimport { getDefaultLocaleModel, getLocaleModel, SYSTEM_LANG } from '../core/locale';\nimport Model from '../model/Model';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = ONE_SECOND * 60;\nexport var ONE_HOUR = ONE_MINUTE * 60;\nexport var ONE_DAY = ONE_HOUR * 24;\nexport var ONE_YEAR = ONE_DAY * 365;\nexport var defaultLeveledFormatter = {\n year: '{yyyy}',\n month: '{MMM}',\n day: '{d}',\n hour: '{HH}:{mm}',\n minute: '{HH}:{mm}',\n second: '{HH}:{mm}:{ss}',\n millisecond: '{hh}:{mm}:{ss} {SSS}',\n none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\n};\nvar fullDayFormatter = '{yyyy}-{MM}-{dd}';\nexport var fullLeveledFormatter = {\n year: '{yyyy}',\n month: '{yyyy}-{MM}',\n day: fullDayFormatter,\n hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\n minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\n second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\n millisecond: defaultLeveledFormatter.none\n};\nexport var primaryTimeUnits = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'];\nexport var timeUnits = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'];\nexport function pad(str, len) {\n str += '';\n return '0000'.substr(0, len - str.length) + str;\n}\nexport function getPrimaryTimeUnit(timeUnit) {\n switch (timeUnit) {\n case 'half-year':\n case 'quarter':\n return 'month';\n\n case 'week':\n case 'half-week':\n return 'day';\n\n case 'half-day':\n case 'quarter-day':\n return 'hour';\n\n default:\n return timeUnit;\n }\n}\nexport function isPrimaryTimeUnit(timeUnit) {\n return timeUnit === getPrimaryTimeUnit(timeUnit);\n}\nexport function getDefaultFormatPrecisionOfInterval(timeUnit) {\n switch (timeUnit) {\n case 'year':\n case 'month':\n return 'day';\n\n case 'millisecond':\n return 'millisecond';\n\n default:\n return 'second';\n }\n}\nexport function format(time, template, isUTC, lang) {\n var date = numberUtil.parseDate(time);\n var y = date[fullYearGetterName(isUTC)]();\n var M = date[monthGetterName(isUTC)]() + 1;\n var q = Math.floor((M - 1) / 4) + 1;\n var d = date[dateGetterName(isUTC)]();\n var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\n var H = date[hoursGetterName(isUTC)]();\n var h = (H - 1) % 12 + 1;\n var m = date[minutesGetterName(isUTC)]();\n var s = date[secondsGetterName(isUTC)]();\n var S = date[millisecondsGetterName(isUTC)]();\n var localeModel = lang instanceof Model ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\n var timeModel = localeModel.getModel('time');\n var month = timeModel.get('month');\n var monthAbbr = timeModel.get('monthAbbr');\n var dayOfWeek = timeModel.get('dayOfWeek');\n var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\n return (template || '').replace(/{yyyy}/g, y + '').replace(/{yy}/g, y % 100 + '').replace(/{Q}/g, q + '').replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + '').replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + '').replace(/{eeee}/g, dayOfWeek[e]).replace(/{ee}/g, dayOfWeekAbbr[e]).replace(/{e}/g, e + '').replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + '').replace(/{hh}/g, pad(h + '', 2)).replace(/{h}/g, h + '').replace(/{mm}/g, pad(m, 2)).replace(/{m}/g, m + '').replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + '').replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + '');\n}\nexport function leveledFormat(tick, idx, formatter, lang, isUTC) {\n var template = null;\n\n if (typeof formatter === 'string') {\n template = formatter;\n } else if (typeof formatter === 'function') {\n template = formatter(tick.value, idx, {\n level: tick.level\n });\n } else {\n var defaults = zrUtil.extend({}, defaultLeveledFormatter);\n\n if (tick.level > 0) {\n for (var i = 0; i < primaryTimeUnits.length; ++i) {\n defaults[primaryTimeUnits[i]] = \"{primary|\" + defaults[primaryTimeUnits[i]] + \"}\";\n }\n }\n\n var mergedFormatter = formatter ? formatter.inherit === false ? formatter : zrUtil.defaults(formatter, defaults) : defaults;\n var unit = getUnitFromValue(tick.value, isUTC);\n\n if (mergedFormatter[unit]) {\n template = mergedFormatter[unit];\n } else if (mergedFormatter.inherit) {\n var targetId = timeUnits.indexOf(unit);\n\n for (var i = targetId - 1; i >= 0; --i) {\n if (mergedFormatter[unit]) {\n template = mergedFormatter[unit];\n break;\n }\n }\n\n template = template || defaults.none;\n }\n\n if (zrUtil.isArray(template)) {\n var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level;\n levelId = Math.min(levelId, template.length - 1);\n template = template[levelId];\n }\n }\n\n return format(new Date(tick.value), template, isUTC, lang);\n}\nexport function getUnitFromValue(value, isUTC) {\n var date = numberUtil.parseDate(value);\n var M = date[monthGetterName(isUTC)]() + 1;\n var d = date[dateGetterName(isUTC)]();\n var h = date[hoursGetterName(isUTC)]();\n var m = date[minutesGetterName(isUTC)]();\n var s = date[secondsGetterName(isUTC)]();\n var S = date[millisecondsGetterName(isUTC)]();\n var isSecond = S === 0;\n var isMinute = isSecond && s === 0;\n var isHour = isMinute && m === 0;\n var isDay = isHour && h === 0;\n var isMonth = isDay && d === 1;\n var isYear = isMonth && M === 1;\n\n if (isYear) {\n return 'year';\n } else if (isMonth) {\n return 'month';\n } else if (isDay) {\n return 'day';\n } else if (isHour) {\n return 'hour';\n } else if (isMinute) {\n return 'minute';\n } else if (isSecond) {\n return 'second';\n } else {\n return 'millisecond';\n }\n}\nexport function getUnitValue(value, unit, isUTC) {\n var date = typeof value === 'number' ? numberUtil.parseDate(value) : value;\n unit = unit || getUnitFromValue(value, isUTC);\n\n switch (unit) {\n case 'year':\n return date[fullYearGetterName(isUTC)]();\n\n case 'half-year':\n return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\n\n case 'quarter':\n return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\n\n case 'month':\n return date[monthGetterName(isUTC)]();\n\n case 'day':\n return date[dateGetterName(isUTC)]();\n\n case 'half-day':\n return date[hoursGetterName(isUTC)]() / 24;\n\n case 'hour':\n return date[hoursGetterName(isUTC)]();\n\n case 'minute':\n return date[minutesGetterName(isUTC)]();\n\n case 'second':\n return date[secondsGetterName(isUTC)]();\n\n case 'millisecond':\n return date[millisecondsGetterName(isUTC)]();\n }\n}\nexport function fullYearGetterName(isUTC) {\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\nexport function monthGetterName(isUTC) {\n return isUTC ? 'getUTCMonth' : 'getMonth';\n}\nexport function dateGetterName(isUTC) {\n return isUTC ? 'getUTCDate' : 'getDate';\n}\nexport function hoursGetterName(isUTC) {\n return isUTC ? 'getUTCHours' : 'getHours';\n}\nexport function minutesGetterName(isUTC) {\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\nexport function secondsGetterName(isUTC) {\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function millisecondsGetterName(isUTC) {\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function fullYearSetterName(isUTC) {\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\nexport function monthSetterName(isUTC) {\n return isUTC ? 'setUTCMonth' : 'setMonth';\n}\nexport function dateSetterName(isUTC) {\n return isUTC ? 'setUTCDate' : 'setDate';\n}\nexport function hoursSetterName(isUTC) {\n return isUTC ? 'setUTCHours' : 'setHours';\n}\nexport function minutesSetterName(isUTC) {\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\nexport function secondsSetterName(isUTC) {\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\nexport function millisecondsSetterName(isUTC) {\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Text } from '../util/graphic';\nimport { deprecateLog } from '../util/log';\nexport function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\n deprecateLog('getTextRect is deprecated.');\n var textEl = new Text({\n style: {\n text: text,\n font: font,\n align: align,\n verticalAlign: verticalAlign,\n padding: padding,\n rich: rich,\n overflow: truncate ? 'truncate' : null,\n lineHeight: lineHeight\n }\n });\n return textEl.getBoundingRect();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseDate, isNumeric, numericToNumber } from './number';\nimport { format as timeFormat, pad } from './time';\nimport { deprecateReplaceLog } from './log';\nexport function addCommas(x) {\n if (!isNumeric(x)) {\n return zrUtil.isString(x) ? x : '-';\n }\n\n var parts = (x + '').split('.');\n return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (parts.length > 1 ? '.' + parts[1] : '');\n}\nexport function toCamelCase(str, upperCaseFirst) {\n str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n return group1.toUpperCase();\n });\n\n if (upperCaseFirst && str) {\n str = str.charAt(0).toUpperCase() + str.slice(1);\n }\n\n return str;\n}\nexport var normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n '\\'': '&#39;'\n};\nexport function encodeHTML(source) {\n return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n return replaceMap[c];\n });\n}\nexport function makeValueReadable(value, valueType, useUTC) {\n var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\n\n function stringToUserReadable(str) {\n return str && zrUtil.trim(str) ? str : '-';\n }\n\n function isNumberUserReadable(num) {\n return !!(num != null && !isNaN(num) && isFinite(num));\n }\n\n var isTypeTime = valueType === 'time';\n var isValueDate = value instanceof Date;\n\n if (isTypeTime || isValueDate) {\n var date = isTypeTime ? parseDate(value) : value;\n\n if (!isNaN(+date)) {\n return timeFormat(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\n } else if (isValueDate) {\n return '-';\n }\n }\n\n if (valueType === 'ordinal') {\n return zrUtil.isStringSafe(value) ? stringToUserReadable(value) : zrUtil.isNumber(value) ? isNumberUserReadable(value) ? value + '' : '-' : '-';\n }\n\n var numericResult = numericToNumber(value);\n return isNumberUserReadable(numericResult) ? addCommas(numericResult) : zrUtil.isStringSafe(value) ? stringToUserReadable(value) : '-';\n}\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n\nexport function formatTpl(tpl, paramsList, encode) {\n if (!zrUtil.isArray(paramsList)) {\n paramsList = [paramsList];\n }\n\n var seriesLen = paramsList.length;\n\n if (!seriesLen) {\n return '';\n }\n\n var $vars = paramsList[0].$vars || [];\n\n for (var i = 0; i < $vars.length; i++) {\n var alias = TPL_VAR_ALIAS[i];\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n }\n\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n for (var k = 0; k < $vars.length; k++) {\n var val = paramsList[seriesIdx][$vars[k]];\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n }\n }\n\n return tpl;\n}\nexport function formatTplSimple(tpl, param, encode) {\n zrUtil.each(param, function (value, key) {\n tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n });\n return tpl;\n}\nexport function getTooltipMarker(inOpt, extraCssText) {\n var opt = zrUtil.isString(inOpt) ? {\n color: inOpt,\n extraCssText: extraCssText\n } : inOpt || {};\n var color = opt.color;\n var type = opt.type;\n extraCssText = opt.extraCssText;\n var renderMode = opt.renderMode || 'html';\n\n if (!color) {\n return '';\n }\n\n if (renderMode === 'html') {\n return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:4px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n } else {\n var markerId = opt.markerId || 'markerX';\n return {\n renderMode: renderMode,\n content: '{' + markerId + '|} ',\n style: type === 'subItem' ? {\n width: 4,\n height: 4,\n borderRadius: 2,\n backgroundColor: color\n } : {\n width: 10,\n height: 10,\n borderRadius: 5,\n backgroundColor: color\n }\n };\n }\n}\nexport function formatTime(tpl, value, isUTC) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\n }\n\n if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n tpl = 'MM-dd\\nyyyy';\n }\n\n var date = parseDate(value);\n var utc = isUTC ? 'UTC' : '';\n var y = date['get' + utc + 'FullYear']();\n var M = date['get' + utc + 'Month']() + 1;\n var d = date['get' + utc + 'Date']();\n var h = date['get' + utc + 'Hours']();\n var m = date['get' + utc + 'Minutes']();\n var s = date['get' + utc + 'Seconds']();\n var S = date['get' + utc + 'Milliseconds']();\n tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100 + '').replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n return tpl;\n}\nexport function capitalFirst(str) {\n return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\nexport function convertToColorString(color, defaultColor) {\n defaultColor = defaultColor || 'transparent';\n return zrUtil.isString(color) ? color : zrUtil.isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor;\n}\nexport { truncateText } from 'zrender/lib/graphic/helper/parseText';\nexport function windowOpen(link, target) {\n if (target === '_blank' || target === 'blank') {\n var blank = window.open();\n blank.opener = null;\n blank.location.href = link;\n } else {\n window.open(link, target);\n }\n}\nexport { getTextRect } from '../legacy/getTextRect';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent } from './number';\nimport * as formatUtil from './format';\nvar each = zrUtil.each;\nexport var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\nexport var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n var x = 0;\n var y = 0;\n\n if (maxWidth == null) {\n maxWidth = Infinity;\n }\n\n if (maxHeight == null) {\n maxHeight = Infinity;\n }\n\n var currentLineMaxSize = 0;\n group.eachChild(function (child, idx) {\n var rect = child.getBoundingRect();\n var nextChild = group.childAt(idx + 1);\n var nextChildRect = nextChild && nextChild.getBoundingRect();\n var nextX;\n var nextY;\n\n if (orient === 'horizontal') {\n var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n nextX = x + moveX;\n\n if (nextX > maxWidth || child.newline) {\n x = 0;\n nextX = moveX;\n y += currentLineMaxSize + gap;\n currentLineMaxSize = rect.height;\n } else {\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n }\n } else {\n var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n nextY = y + moveY;\n\n if (nextY > maxHeight || child.newline) {\n x += currentLineMaxSize + gap;\n y = 0;\n nextY = moveY;\n currentLineMaxSize = rect.width;\n } else {\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n }\n }\n\n if (child.newline) {\n return;\n }\n\n child.x = x;\n child.y = y;\n child.markRedraw();\n orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n });\n}\n\nexport var box = boxLayout;\nexport var vbox = zrUtil.curry(boxLayout, 'vertical');\nexport var hbox = zrUtil.curry(boxLayout, 'horizontal');\nexport function getAvailableSize(positionInfo, containerRect, margin) {\n var containerWidth = containerRect.width;\n var containerHeight = containerRect.height;\n var x = parsePercent(positionInfo.left, containerWidth);\n var y = parsePercent(positionInfo.top, containerHeight);\n var x2 = parsePercent(positionInfo.right, containerWidth);\n var y2 = parsePercent(positionInfo.bottom, containerHeight);\n (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\n (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\n (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\n (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\n margin = formatUtil.normalizeCssArray(margin || 0);\n return {\n width: Math.max(x2 - x - margin[1] - margin[3], 0),\n height: Math.max(y2 - y - margin[0] - margin[2], 0)\n };\n}\nexport function getLayoutRect(positionInfo, containerRect, margin) {\n margin = formatUtil.normalizeCssArray(margin || 0);\n var containerWidth = containerRect.width;\n var containerHeight = containerRect.height;\n var left = parsePercent(positionInfo.left, containerWidth);\n var top = parsePercent(positionInfo.top, containerHeight);\n var right = parsePercent(positionInfo.right, containerWidth);\n var bottom = parsePercent(positionInfo.bottom, containerHeight);\n var width = parsePercent(positionInfo.width, containerWidth);\n var height = parsePercent(positionInfo.height, containerHeight);\n var verticalMargin = margin[2] + margin[0];\n var horizontalMargin = margin[1] + margin[3];\n var aspect = positionInfo.aspect;\n\n if (isNaN(width)) {\n width = containerWidth - right - horizontalMargin - left;\n }\n\n if (isNaN(height)) {\n height = containerHeight - bottom - verticalMargin - top;\n }\n\n if (aspect != null) {\n if (isNaN(width) && isNaN(height)) {\n if (aspect > containerWidth / containerHeight) {\n width = containerWidth * 0.8;\n } else {\n height = containerHeight * 0.8;\n }\n }\n\n if (isNaN(width)) {\n width = aspect * height;\n }\n\n if (isNaN(height)) {\n height = width / aspect;\n }\n }\n\n if (isNaN(left)) {\n left = containerWidth - right - width - horizontalMargin;\n }\n\n if (isNaN(top)) {\n top = containerHeight - bottom - height - verticalMargin;\n }\n\n switch (positionInfo.left || positionInfo.right) {\n case 'center':\n left = containerWidth / 2 - width / 2 - margin[3];\n break;\n\n case 'right':\n left = containerWidth - width - horizontalMargin;\n break;\n }\n\n switch (positionInfo.top || positionInfo.bottom) {\n case 'middle':\n case 'center':\n top = containerHeight / 2 - height / 2 - margin[0];\n break;\n\n case 'bottom':\n top = containerHeight - height - verticalMargin;\n break;\n }\n\n left = left || 0;\n top = top || 0;\n\n if (isNaN(width)) {\n width = containerWidth - horizontalMargin - left - (right || 0);\n }\n\n if (isNaN(height)) {\n height = containerHeight - verticalMargin - top - (bottom || 0);\n }\n\n var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n rect.margin = margin;\n return rect;\n}\nexport function positionElement(el, positionInfo, containerRect, margin, opt) {\n var h = !opt || !opt.hv || opt.hv[0];\n var v = !opt || !opt.hv || opt.hv[1];\n var boundingMode = opt && opt.boundingMode || 'all';\n\n if (!h && !v) {\n return;\n }\n\n var rect;\n\n if (boundingMode === 'raw') {\n rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n } else {\n rect = el.getBoundingRect();\n\n if (el.needLocalTransform()) {\n var transform = el.getLocalTransform();\n rect = rect.clone();\n rect.applyTransform(transform);\n }\n }\n\n var layoutRect = getLayoutRect(zrUtil.defaults({\n width: rect.width,\n height: rect.height\n }, positionInfo), containerRect, margin);\n var dx = h ? layoutRect.x - rect.x : 0;\n var dy = v ? layoutRect.y - rect.y : 0;\n\n if (boundingMode === 'raw') {\n el.x = dx;\n el.y = dy;\n } else {\n el.x += dx;\n el.y += dy;\n }\n\n el.markRedraw();\n}\nexport function sizeCalculable(option, hvIdx) {\n return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\nexport function fetchLayoutMode(ins) {\n var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\n return zrUtil.isObject(layoutMode) ? layoutMode : layoutMode ? {\n type: layoutMode\n } : null;\n}\nexport function mergeLayoutParam(targetOption, newOption, opt) {\n var ignoreSize = opt && opt.ignoreSize;\n !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n var hResult = merge(HV_NAMES[0], 0);\n var vResult = merge(HV_NAMES[1], 1);\n copy(HV_NAMES[0], targetOption, hResult);\n copy(HV_NAMES[1], targetOption, vResult);\n\n function merge(names, hvIdx) {\n var newParams = {};\n var newValueCount = 0;\n var merged = {};\n var mergedValueCount = 0;\n var enoughParamNumber = 2;\n each(names, function (name) {\n merged[name] = targetOption[name];\n });\n each(names, function (name) {\n hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n hasValue(newParams, name) && newValueCount++;\n hasValue(merged, name) && mergedValueCount++;\n });\n\n if (ignoreSize[hvIdx]) {\n if (hasValue(newOption, names[1])) {\n merged[names[2]] = null;\n } else if (hasValue(newOption, names[2])) {\n merged[names[1]] = null;\n }\n\n return merged;\n }\n\n if (mergedValueCount === enoughParamNumber || !newValueCount) {\n return merged;\n } else if (newValueCount >= enoughParamNumber) {\n return newParams;\n } else {\n for (var i = 0; i < names.length; i++) {\n var name_1 = names[i];\n\n if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\n newParams[name_1] = targetOption[name_1];\n break;\n }\n }\n\n return newParams;\n }\n }\n\n function hasProp(obj, name) {\n return obj.hasOwnProperty(name);\n }\n\n function hasValue(obj, name) {\n return obj[name] != null && obj[name] !== 'auto';\n }\n\n function copy(names, target, source) {\n each(names, function (name) {\n target[name] = source[name];\n });\n }\n}\nexport function getLayoutParams(source) {\n return copyLayoutParams({}, source);\n}\nexport function copyLayoutParams(target, source) {\n source && target && each(LOCATION_PARAMS, function (name) {\n source.hasOwnProperty(name) && (target[name] = source[name]);\n });\n return target;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from './Model';\nimport * as componentUtil from '../util/component';\nimport { enableClassManagement, parseClassType, isExtendedClass, mountExtend } from '../util/clazz';\nimport { makeInner, queryReferringComponents } from '../util/model';\nimport * as layout from '../util/layout';\nvar inner = makeInner();\n\nvar ComponentModel = function (_super) {\n __extends(ComponentModel, _super);\n\n function ComponentModel(option, parentModel, ecModel) {\n var _this = _super.call(this, option, parentModel, ecModel) || this;\n\n _this.uid = componentUtil.getUID('ec_cpt_model');\n return _this;\n }\n\n ComponentModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n };\n\n ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n var layoutMode = layout.fetchLayoutMode(this);\n var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n var themeModel = ecModel.getTheme();\n zrUtil.merge(option, themeModel.get(this.mainType));\n zrUtil.merge(option, this.getDefaultOption());\n\n if (layoutMode) {\n layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n };\n\n ComponentModel.prototype.mergeOption = function (option, ecModel) {\n zrUtil.merge(this.option, option, true);\n var layoutMode = layout.fetchLayoutMode(this);\n\n if (layoutMode) {\n layout.mergeLayoutParam(this.option, option, layoutMode);\n }\n };\n\n ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) {};\n\n ComponentModel.prototype.getDefaultOption = function () {\n var ctor = this.constructor;\n\n if (!isExtendedClass(ctor)) {\n return ctor.defaultOption;\n }\n\n var fields = inner(this);\n\n if (!fields.defaultOption) {\n var optList = [];\n var clz = ctor;\n\n while (clz) {\n var opt = clz.prototype.defaultOption;\n opt && optList.push(opt);\n clz = clz.superClass;\n }\n\n var defaultOption = {};\n\n for (var i = optList.length - 1; i >= 0; i--) {\n defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n }\n\n fields.defaultOption = defaultOption;\n }\n\n return fields.defaultOption;\n };\n\n ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\n var indexKey = mainType + 'Index';\n var idKey = mainType + 'Id';\n return queryReferringComponents(this.ecModel, mainType, {\n index: this.get(indexKey, true),\n id: this.get(idKey, true)\n }, opt);\n };\n\n ComponentModel.prototype.getBoxLayoutParams = function () {\n var boxLayoutModel = this;\n return {\n left: boxLayoutModel.get('left'),\n top: boxLayoutModel.get('top'),\n right: boxLayoutModel.get('right'),\n bottom: boxLayoutModel.get('bottom'),\n width: boxLayoutModel.get('width'),\n height: boxLayoutModel.get('height')\n };\n };\n\n ComponentModel.protoInitialize = function () {\n var proto = ComponentModel.prototype;\n proto.type = 'component';\n proto.id = '';\n proto.name = '';\n proto.mainType = '';\n proto.subType = '';\n proto.componentIndex = 0;\n }();\n\n return ComponentModel;\n}(Model);\n\nmountExtend(ComponentModel, Model);\nenableClassManagement(ComponentModel);\ncomponentUtil.enableSubTypeDefaulter(ComponentModel);\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n var deps = [];\n zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (clz) {\n deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\n });\n deps = zrUtil.map(deps, function (type) {\n return parseClassType(type).main;\n });\n\n if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n deps.unshift('dataset');\n }\n\n return deps;\n}\n\nexport default ComponentModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar platform = '';\n\nif (typeof navigator !== 'undefined') {\n platform = navigator.platform || '';\n}\n\nvar decalColor = 'rgba(0, 0, 0, 0.2)';\nexport default {\n darkMode: 'auto',\n color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n aria: {\n decal: {\n decals: [{\n color: decalColor,\n dashArrayX: [1, 0],\n dashArrayY: [2, 5],\n symbolSize: 1,\n rotation: Math.PI / 6\n }, {\n color: decalColor,\n symbol: 'circle',\n dashArrayX: [[8, 8], [0, 8, 8, 0]],\n dashArrayY: [6, 0],\n symbolSize: 0.8\n }, {\n color: decalColor,\n dashArrayX: [1, 0],\n dashArrayY: [4, 3],\n rotation: -Math.PI / 4\n }, {\n color: decalColor,\n dashArrayX: [[6, 6], [0, 6, 6, 0]],\n dashArrayY: [6, 0]\n }, {\n color: decalColor,\n dashArrayX: [[1, 0], [1, 6]],\n dashArrayY: [1, 0, 6, 0],\n rotation: Math.PI / 4\n }, {\n color: decalColor,\n symbol: 'triangle',\n dashArrayX: [[9, 9], [0, 9, 9, 0]],\n dashArrayY: [7, 2],\n symbolSize: 0.75\n }]\n }\n },\n textStyle: {\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n fontSize: 12,\n fontStyle: 'normal',\n fontWeight: 'normal'\n },\n blendMode: null,\n stateAnimation: {\n duration: 300,\n easing: 'cubicOut'\n },\n animation: 'auto',\n animationDuration: 1000,\n animationDurationUpdate: 500,\n animationEasing: 'cubicInOut',\n animationEasingUpdate: 'cubicInOut',\n animationThreshold: 2000,\n progressiveThreshold: 3000,\n progressive: 400,\n hoverLayerThreshold: 3000,\n useUTC: false\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap } from 'zrender/lib/core/util';\n;\n;\n;\nexport var VISUAL_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\nexport var SOURCE_FORMAT_ORIGINAL = 'original';\nexport var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nexport var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nexport var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nexport var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nexport var SOURCE_FORMAT_UNKNOWN = 'unknown';\nexport var SERIES_LAYOUT_BY_COLUMN = 'column';\nexport var SERIES_LAYOUT_BY_ROW = 'row';\n;\n;\n;\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, getDataItemValue, queryReferringComponents, SINGLE_REFERRING } from '../../util/model';\nimport { createHashMap, each, isArray, isString, isObject, isTypedArray } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW, SOURCE_FORMAT_KEYED_COLUMNS } from '../../util/types';\nexport var BE_ORDINAL = {\n Must: 1,\n Might: 2,\n Not: 3\n};\nvar innerGlobalModel = makeInner();\nexport function resetSourceDefaulter(ecModel) {\n innerGlobalModel(ecModel).datasetMap = createHashMap();\n}\nexport function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n var encode = {};\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n if (!datasetModel || !coordDimensions) {\n return encode;\n }\n\n var encodeItemName = [];\n var encodeSeriesName = [];\n var ecModel = seriesModel.ecModel;\n var datasetMap = innerGlobalModel(ecModel).datasetMap;\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n var baseCategoryDimIndex;\n var categoryWayValueDimStart;\n coordDimensions = coordDimensions.slice();\n each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\n var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = {\n name: coordDimInfoLoose\n };\n\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n baseCategoryDimIndex = coordDimIdx;\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\n }\n\n encode[coordDimInfo.name] = [];\n });\n var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n categoryWayDim: categoryWayValueDimStart,\n valueWayDim: 0\n });\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n var coordDimName = coordDimInfo.name;\n var count = getDataDimCountOnCoordDim(coordDimInfo);\n\n if (baseCategoryDimIndex == null) {\n var start = datasetRecord.valueWayDim;\n pushDim(encode[coordDimName], start, count);\n pushDim(encodeSeriesName, start, count);\n datasetRecord.valueWayDim += count;\n } else if (baseCategoryDimIndex === coordDimIdx) {\n pushDim(encode[coordDimName], 0, count);\n pushDim(encodeItemName, 0, count);\n } else {\n var start = datasetRecord.categoryWayDim;\n pushDim(encode[coordDimName], start, count);\n pushDim(encodeSeriesName, start, count);\n datasetRecord.categoryWayDim += count;\n }\n });\n\n function pushDim(dimIdxArr, idxFrom, idxCount) {\n for (var i = 0; i < idxCount; i++) {\n dimIdxArr.push(idxFrom + i);\n }\n }\n\n function getDataDimCountOnCoordDim(coordDimInfo) {\n var dimsDef = coordDimInfo.dimsDef;\n return dimsDef ? dimsDef.length : 1;\n }\n\n encodeItemName.length && (encode.itemName = encodeItemName);\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n return encode;\n}\nexport function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n var encode = {};\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n if (!datasetModel) {\n return encode;\n }\n\n var sourceFormat = source.sourceFormat;\n var dimensionsDefine = source.dimensionsDefine;\n var potentialNameDimIndex;\n\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n each(dimensionsDefine, function (dim, idx) {\n if ((isObject(dim) ? dim.name : dim) === 'name') {\n potentialNameDimIndex = idx;\n }\n });\n }\n\n var idxResult = function () {\n var idxRes0 = {};\n var idxRes1 = {};\n var guessRecords = [];\n\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n guessRecords.push(guessResult);\n var isPureNumber = guessResult === BE_ORDINAL.Not;\n\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n idxRes0.v = i;\n }\n\n if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n idxRes0.n = i;\n }\n\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n return idxRes0;\n }\n\n if (!isPureNumber) {\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n idxRes1.v = i;\n }\n\n if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n idxRes1.n = i;\n }\n }\n }\n\n function fulfilled(idxResult) {\n return idxResult.v != null && idxResult.n != null;\n }\n\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n }();\n\n if (idxResult) {\n encode.value = [idxResult.v];\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\n encode.itemName = [nameDimIndex];\n encode.seriesName = [nameDimIndex];\n }\n\n return encode;\n}\nexport function querySeriesUpstreamDatasetModel(seriesModel) {\n var thisData = seriesModel.get('data', true);\n\n if (!thisData) {\n return queryReferringComponents(seriesModel.ecModel, 'dataset', {\n index: seriesModel.get('datasetIndex', true),\n id: seriesModel.get('datasetId', true)\n }, SINGLE_REFERRING).models[0];\n }\n}\nexport function queryDatasetUpstreamDatasetModels(datasetModel) {\n if (!datasetModel.get('transform', true) && !datasetModel.get('fromTransformResult', true)) {\n return [];\n }\n\n return queryReferringComponents(datasetModel.ecModel, 'dataset', {\n index: datasetModel.get('fromDatasetIndex', true),\n id: datasetModel.get('fromDatasetId', true)\n }, SINGLE_REFERRING).models;\n}\nexport function guessOrdinal(source, dimIndex) {\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n}\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n var result;\n var maxLoop = 5;\n\n if (isTypedArray(data)) {\n return BE_ORDINAL.Not;\n }\n\n var dimName;\n var dimType;\n\n if (dimensionsDefine) {\n var dimDefItem = dimensionsDefine[dimIndex];\n\n if (isObject(dimDefItem)) {\n dimName = dimDefItem.name;\n dimType = dimDefItem.type;\n } else if (isString(dimDefItem)) {\n dimName = dimDefItem;\n }\n }\n\n if (dimType != null) {\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n }\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n var dataArrayRows = data;\n\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n var sample = dataArrayRows[dimIndex];\n\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n if ((result = detectValue(sample[startIndex + i])) != null) {\n return result;\n }\n }\n } else {\n for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\n var row = dataArrayRows[startIndex + i];\n\n if (row && (result = detectValue(row[dimIndex])) != null) {\n return result;\n }\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n var dataObjectRows = data;\n\n if (!dimName) {\n return BE_ORDINAL.Not;\n }\n\n for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\n var item = dataObjectRows[i];\n\n if (item && (result = detectValue(item[dimName])) != null) {\n return result;\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n var dataKeyedColumns = data;\n\n if (!dimName) {\n return BE_ORDINAL.Not;\n }\n\n var sample = dataKeyedColumns[dimName];\n\n if (!sample || isTypedArray(sample)) {\n return BE_ORDINAL.Not;\n }\n\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\n if ((result = detectValue(sample[i])) != null) {\n return result;\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var dataOriginal = data;\n\n for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\n var item = dataOriginal[i];\n var val = getDataItemValue(item);\n\n if (!isArray(val)) {\n return BE_ORDINAL.Not;\n }\n\n if ((result = detectValue(val[dimIndex])) != null) {\n return result;\n }\n }\n }\n\n function detectValue(val) {\n var beStr = isString(val);\n\n if (val != null && isFinite(val) && val !== '') {\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n } else if (beStr && val !== '-') {\n return BE_ORDINAL.Must;\n }\n }\n\n return BE_ORDINAL.Not;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, assert } from 'zrender/lib/core/util';\nimport { isComponentIdInternal } from '../util/model';\nvar internalOptionCreatorMap = createHashMap();\nexport function registerInternalOptionCreator(mainType, creator) {\n assert(internalOptionCreatorMap.get(mainType) == null && creator);\n internalOptionCreatorMap.set(mainType, creator);\n}\nexport function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\n var internalOptionCreator = internalOptionCreatorMap.get(mainType);\n\n if (!internalOptionCreator) {\n return newCmptOptionList;\n }\n\n var internalOptions = internalOptionCreator(ecModel);\n\n if (!internalOptions) {\n return newCmptOptionList;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n for (var i = 0; i < internalOptions.length; i++) {\n assert(isComponentIdInternal(internalOptions[i]));\n }\n }\n\n return newCmptOptionList.concat(internalOptions);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, normalizeToArray } from '../../util/model';\nvar innerColor = makeInner();\nvar innerDecal = makeInner();\n\nvar PaletteMixin = function () {\n function PaletteMixin() {}\n\n PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\n var defaultPalette = normalizeToArray(this.get('color', true));\n var layeredPalette = this.get('colorLayer', true);\n return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\n };\n\n PaletteMixin.prototype.clearColorPalette = function () {\n clearPalette(this, innerColor);\n };\n\n return PaletteMixin;\n}();\n\nexport function getDecalFromPalette(ecModel, name, scope, requestNum) {\n var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\n}\n\nfunction getNearestPalette(palettes, requestColorNum) {\n var paletteNum = palettes.length;\n\n for (var i = 0; i < paletteNum; i++) {\n if (palettes[i].length > requestColorNum) {\n return palettes[i];\n }\n }\n\n return palettes[paletteNum - 1];\n}\n\nfunction getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\n scope = scope || that;\n var scopeFields = inner(scope);\n var paletteIdx = scopeFields.paletteIdx || 0;\n var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\n\n if (paletteNameMap.hasOwnProperty(name)) {\n return paletteNameMap[name];\n }\n\n var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum);\n palette = palette || defaultPalette;\n\n if (!palette || !palette.length) {\n return;\n }\n\n var pickedPaletteItem = palette[paletteIdx];\n\n if (name) {\n paletteNameMap[name] = pickedPaletteItem;\n }\n\n scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\n return pickedPaletteItem;\n}\n\nfunction clearPalette(that, inner) {\n inner(that).paletteIdx = 0;\n inner(that).paletteNameMap = {};\n}\n\nexport { PaletteMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, filter, isArray, isObject, isString, createHashMap, assert, clone, merge, extend, mixin, isFunction } from 'zrender/lib/core/util';\nimport * as modelUtil from '../util/model';\nimport Model from './Model';\nimport ComponentModel from './Component';\nimport globalDefault from './globalDefault';\nimport { resetSourceDefaulter } from '../data/helper/sourceHelper';\nimport { concatInternalOptions } from './internalComponentCreator';\nimport { PaletteMixin } from './mixin/palette';\nvar reCreateSeriesIndices;\nvar assertSeriesInitialized;\nvar initBase;\nvar OPTION_INNER_KEY = '\\0_ec_inner';\nvar OPTION_INNER_VALUE = 1;\n\nvar GlobalModel = function (_super) {\n __extends(GlobalModel, _super);\n\n function GlobalModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\n theme = theme || {};\n this.option = null;\n this._theme = new Model(theme);\n this._locale = new Model(locale);\n this._optionManager = optionManager;\n };\n\n GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\n if (process.env.NODE_ENV !== 'production') {\n assert(option != null, 'option is null/undefined');\n assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, 'please use chart.getOption()');\n }\n\n var innerOpt = normalizeSetOptionInput(opts);\n\n this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\n\n this._resetOption(null, innerOpt);\n };\n\n GlobalModel.prototype.resetOption = function (type, opt) {\n return this._resetOption(type, normalizeSetOptionInput(opt));\n };\n\n GlobalModel.prototype._resetOption = function (type, opt) {\n var optionChanged = false;\n var optionManager = this._optionManager;\n\n if (!type || type === 'recreate') {\n var baseOption = optionManager.mountOption(type === 'recreate');\n\n if (!this.option || type === 'recreate') {\n initBase(this, baseOption);\n } else {\n this.restoreData();\n\n this._mergeOption(baseOption, opt);\n }\n\n optionChanged = true;\n }\n\n if (type === 'timeline' || type === 'media') {\n this.restoreData();\n }\n\n if (!type || type === 'recreate' || type === 'timeline') {\n var timelineOption = optionManager.getTimelineOption(this);\n\n if (timelineOption) {\n optionChanged = true;\n\n this._mergeOption(timelineOption, opt);\n }\n }\n\n if (!type || type === 'recreate' || type === 'media') {\n var mediaOptions = optionManager.getMediaOption(this);\n\n if (mediaOptions.length) {\n each(mediaOptions, function (mediaOption) {\n optionChanged = true;\n\n this._mergeOption(mediaOption, opt);\n }, this);\n }\n }\n\n return optionChanged;\n };\n\n GlobalModel.prototype.mergeOption = function (option) {\n this._mergeOption(option, null);\n };\n\n GlobalModel.prototype._mergeOption = function (newOption, opt) {\n var option = this.option;\n var componentsMap = this._componentsMap;\n var componentsCount = this._componentsCount;\n var newCmptTypes = [];\n var newCmptTypeMap = createHashMap();\n var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\n resetSourceDefaulter(this);\n each(newOption, function (componentOption, mainType) {\n if (componentOption == null) {\n return;\n }\n\n if (!ComponentModel.hasClass(mainType)) {\n option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n } else if (mainType) {\n newCmptTypes.push(mainType);\n newCmptTypeMap.set(mainType, true);\n }\n });\n\n if (replaceMergeMainTypeMap) {\n replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\n if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\n newCmptTypes.push(mainTypeInReplaceMerge);\n newCmptTypeMap.set(mainTypeInReplaceMerge, true);\n }\n });\n }\n\n ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n function visitComponent(mainType) {\n var newCmptOptionList = concatInternalOptions(this, mainType, modelUtil.normalizeToArray(newOption[mainType]));\n var oldCmptList = componentsMap.get(mainType);\n var mergeMode = !oldCmptList ? 'replaceAll' : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? 'replaceMerge' : 'normalMerge';\n var mappingResult = modelUtil.mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\n modelUtil.setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\n option[mainType] = null;\n componentsMap.set(mainType, null);\n componentsCount.set(mainType, 0);\n var optionsByMainType = [];\n var cmptsByMainType = [];\n var cmptsCountByMainType = 0;\n each(mappingResult, function (resultItem, index) {\n var componentModel = resultItem.existing;\n var newCmptOption = resultItem.newOption;\n\n if (!newCmptOption) {\n if (componentModel) {\n componentModel.mergeOption({}, this);\n componentModel.optionUpdated({}, false);\n }\n } else {\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n if (componentModel && componentModel.constructor === ComponentModelClass) {\n componentModel.name = resultItem.keyInfo.name;\n componentModel.mergeOption(newCmptOption, this);\n componentModel.optionUpdated(newCmptOption, false);\n } else {\n var extraOpt = extend({\n componentIndex: index\n }, resultItem.keyInfo);\n componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\n extend(componentModel, extraOpt);\n\n if (resultItem.brandNew) {\n componentModel.__requireNewView = true;\n }\n\n componentModel.init(newCmptOption, this, this);\n componentModel.optionUpdated(null, true);\n }\n }\n\n if (componentModel) {\n optionsByMainType.push(componentModel.option);\n cmptsByMainType.push(componentModel);\n cmptsCountByMainType++;\n } else {\n optionsByMainType.push(void 0);\n cmptsByMainType.push(void 0);\n }\n }, this);\n option[mainType] = optionsByMainType;\n componentsMap.set(mainType, cmptsByMainType);\n componentsCount.set(mainType, cmptsCountByMainType);\n\n if (mainType === 'series') {\n reCreateSeriesIndices(this);\n }\n }\n\n if (!this._seriesIndices) {\n reCreateSeriesIndices(this);\n }\n };\n\n GlobalModel.prototype.getOption = function () {\n var option = clone(this.option);\n each(option, function (optInMainType, mainType) {\n if (ComponentModel.hasClass(mainType)) {\n var opts = modelUtil.normalizeToArray(optInMainType);\n var realLen = opts.length;\n var metNonInner = false;\n\n for (var i = realLen - 1; i >= 0; i--) {\n if (opts[i] && !modelUtil.isComponentIdInternal(opts[i])) {\n metNonInner = true;\n } else {\n opts[i] = null;\n !metNonInner && realLen--;\n }\n }\n\n opts.length = realLen;\n option[mainType] = opts;\n }\n });\n delete option[OPTION_INNER_KEY];\n return option;\n };\n\n GlobalModel.prototype.getTheme = function () {\n return this._theme;\n };\n\n GlobalModel.prototype.getLocaleModel = function () {\n return this._locale;\n };\n\n GlobalModel.prototype.getLocale = function (localePosition) {\n var locale = this.getLocaleModel();\n return locale.get(localePosition);\n };\n\n GlobalModel.prototype.setUpdatePayload = function (payload) {\n this._payload = payload;\n };\n\n GlobalModel.prototype.getUpdatePayload = function () {\n return this._payload;\n };\n\n GlobalModel.prototype.getComponent = function (mainType, idx) {\n var list = this._componentsMap.get(mainType);\n\n if (list) {\n var cmpt = list[idx || 0];\n\n if (cmpt) {\n return cmpt;\n } else if (idx == null) {\n for (var i = 0; i < list.length; i++) {\n if (list[i]) {\n return list[i];\n }\n }\n }\n }\n };\n\n GlobalModel.prototype.queryComponents = function (condition) {\n var mainType = condition.mainType;\n\n if (!mainType) {\n return [];\n }\n\n var index = condition.index;\n var id = condition.id;\n var name = condition.name;\n\n var cmpts = this._componentsMap.get(mainType);\n\n if (!cmpts || !cmpts.length) {\n return [];\n }\n\n var result;\n\n if (index != null) {\n result = [];\n each(modelUtil.normalizeToArray(index), function (idx) {\n cmpts[idx] && result.push(cmpts[idx]);\n });\n } else if (id != null) {\n result = queryByIdOrName('id', id, cmpts);\n } else if (name != null) {\n result = queryByIdOrName('name', name, cmpts);\n } else {\n result = filter(cmpts, function (cmpt) {\n return !!cmpt;\n });\n }\n\n return filterBySubType(result, condition);\n };\n\n GlobalModel.prototype.findComponents = function (condition) {\n var query = condition.query;\n var mainType = condition.mainType;\n var queryCond = getQueryCond(query);\n var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function (cmpt) {\n return !!cmpt;\n });\n return doFilter(filterBySubType(result, condition));\n\n function getQueryCond(q) {\n var indexAttr = mainType + 'Index';\n var idAttr = mainType + 'Id';\n var nameAttr = mainType + 'Name';\n return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n mainType: mainType,\n index: q[indexAttr],\n id: q[idAttr],\n name: q[nameAttr]\n } : null;\n }\n\n function doFilter(res) {\n return condition.filter ? filter(res, condition.filter) : res;\n }\n };\n\n GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\n var componentsMap = this._componentsMap;\n\n if (isFunction(mainType)) {\n var ctxForAll_1 = cb;\n var cbForAll_1 = mainType;\n componentsMap.each(function (cmpts, componentType) {\n for (var i = 0; cmpts && i < cmpts.length; i++) {\n var cmpt = cmpts[i];\n cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\n }\n });\n } else {\n var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null;\n\n for (var i = 0; cmpts && i < cmpts.length; i++) {\n var cmpt = cmpts[i];\n cmpt && cb.call(context, cmpt, cmpt.componentIndex);\n }\n }\n };\n\n GlobalModel.prototype.getSeriesByName = function (name) {\n var nameStr = modelUtil.convertOptionIdName(name, null);\n return filter(this._componentsMap.get('series'), function (oneSeries) {\n return !!oneSeries && nameStr != null && oneSeries.name === nameStr;\n });\n };\n\n GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\n return this._componentsMap.get('series')[seriesIndex];\n };\n\n GlobalModel.prototype.getSeriesByType = function (subType) {\n return filter(this._componentsMap.get('series'), function (oneSeries) {\n return !!oneSeries && oneSeries.subType === subType;\n });\n };\n\n GlobalModel.prototype.getSeries = function () {\n return filter(this._componentsMap.get('series').slice(), function (oneSeries) {\n return !!oneSeries;\n });\n };\n\n GlobalModel.prototype.getSeriesCount = function () {\n return this._componentsCount.get('series');\n };\n\n GlobalModel.prototype.eachSeries = function (cb, context) {\n assertSeriesInitialized(this);\n each(this._seriesIndices, function (rawSeriesIndex) {\n var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n cb.call(context, series, rawSeriesIndex);\n }, this);\n };\n\n GlobalModel.prototype.eachRawSeries = function (cb, context) {\n each(this._componentsMap.get('series'), function (series) {\n series && cb.call(context, series, series.componentIndex);\n });\n };\n\n GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\n assertSeriesInitialized(this);\n each(this._seriesIndices, function (rawSeriesIndex) {\n var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n if (series.subType === subType) {\n cb.call(context, series, rawSeriesIndex);\n }\n }, this);\n };\n\n GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\n return each(this.getSeriesByType(subType), cb, context);\n };\n\n GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\n assertSeriesInitialized(this);\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n };\n\n GlobalModel.prototype.getCurrentSeriesIndices = function () {\n return (this._seriesIndices || []).slice();\n };\n\n GlobalModel.prototype.filterSeries = function (cb, context) {\n assertSeriesInitialized(this);\n var newSeriesIndices = [];\n each(this._seriesIndices, function (seriesRawIdx) {\n var series = this._componentsMap.get('series')[seriesRawIdx];\n\n cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\n }, this);\n this._seriesIndices = newSeriesIndices;\n this._seriesIndicesMap = createHashMap(newSeriesIndices);\n };\n\n GlobalModel.prototype.restoreData = function (payload) {\n reCreateSeriesIndices(this);\n var componentsMap = this._componentsMap;\n var componentTypes = [];\n componentsMap.each(function (components, componentType) {\n if (ComponentModel.hasClass(componentType)) {\n componentTypes.push(componentType);\n }\n });\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\n each(componentsMap.get(componentType), function (component) {\n if (component && (componentType !== 'series' || !isNotTargetSeries(component, payload))) {\n component.restoreData();\n }\n });\n });\n };\n\n GlobalModel.internalField = function () {\n reCreateSeriesIndices = function (ecModel) {\n var seriesIndices = ecModel._seriesIndices = [];\n each(ecModel._componentsMap.get('series'), function (series) {\n series && seriesIndices.push(series.componentIndex);\n });\n ecModel._seriesIndicesMap = createHashMap(seriesIndices);\n };\n\n assertSeriesInitialized = function (ecModel) {\n if (process.env.NODE_ENV !== 'production') {\n if (!ecModel._seriesIndices) {\n throw new Error('Option should contains series.');\n }\n }\n };\n\n initBase = function (ecModel, baseOption) {\n ecModel.option = {};\n ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE;\n ecModel._componentsMap = createHashMap({\n series: []\n });\n ecModel._componentsCount = createHashMap();\n var airaOption = baseOption.aria;\n\n if (isObject(airaOption) && airaOption.enabled == null) {\n airaOption.enabled = true;\n }\n\n mergeTheme(baseOption, ecModel._theme.option);\n merge(baseOption, globalDefault, false);\n\n ecModel._mergeOption(baseOption, null);\n };\n }();\n\n return GlobalModel;\n}(Model);\n\nfunction isNotTargetSeries(seriesModel, payload) {\n if (payload) {\n var index = payload.seriesIndex;\n var id = payload.seriesId;\n var name_1 = payload.seriesName;\n return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1;\n }\n}\n\nfunction mergeTheme(option, theme) {\n var notMergeColorLayer = option.color && !option.colorLayer;\n each(theme, function (themeItem, name) {\n if (name === 'colorLayer' && notMergeColorLayer) {\n return;\n }\n\n if (!ComponentModel.hasClass(name)) {\n if (typeof themeItem === 'object') {\n option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n } else {\n if (option[name] == null) {\n option[name] = themeItem;\n }\n }\n }\n });\n}\n\nfunction queryByIdOrName(attr, idOrName, cmpts) {\n if (isArray(idOrName)) {\n var keyMap_1 = createHashMap();\n each(idOrName, function (idOrNameItem) {\n if (idOrNameItem != null) {\n var idName = modelUtil.convertOptionIdName(idOrNameItem, null);\n idName != null && keyMap_1.set(idOrNameItem, true);\n }\n });\n return filter(cmpts, function (cmpt) {\n return cmpt && keyMap_1.get(cmpt[attr]);\n });\n } else {\n var idName_1 = modelUtil.convertOptionIdName(idOrName, null);\n return filter(cmpts, function (cmpt) {\n return cmpt && idName_1 != null && cmpt[attr] === idName_1;\n });\n }\n}\n\nfunction filterBySubType(components, condition) {\n return condition.hasOwnProperty('subType') ? filter(components, function (cmpt) {\n return cmpt && cmpt.subType === condition.subType;\n }) : components;\n}\n\nfunction normalizeSetOptionInput(opts) {\n var replaceMergeMainTypeMap = createHashMap();\n opts && each(modelUtil.normalizeToArray(opts.replaceMerge), function (mainType) {\n if (process.env.NODE_ENV !== 'production') {\n assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\n }\n\n replaceMergeMainTypeMap.set(mainType, true);\n });\n return {\n replaceMergeMainTypeMap: replaceMergeMainTypeMap\n };\n}\n\nmixin(GlobalModel, PaletteMixin);\nexport default GlobalModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar availableMethods = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getOption', 'getId', 'updateLabelLayout'];\n\nvar ExtensionAPI = function () {\n function ExtensionAPI(ecInstance) {\n zrUtil.each(availableMethods, function (methodName) {\n this[methodName] = zrUtil.bind(ecInstance[methodName], ecInstance);\n }, this);\n }\n\n return ExtensionAPI;\n}();\n\nexport default ExtensionAPI;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar coordinateSystemCreators = {};\n\nvar CoordinateSystemManager = function () {\n function CoordinateSystemManager() {\n this._coordinateSystems = [];\n }\n\n CoordinateSystemManager.prototype.create = function (ecModel, api) {\n var coordinateSystems = [];\n zrUtil.each(coordinateSystemCreators, function (creater, type) {\n var list = creater.create(ecModel, api);\n coordinateSystems = coordinateSystems.concat(list || []);\n });\n this._coordinateSystems = coordinateSystems;\n };\n\n CoordinateSystemManager.prototype.update = function (ecModel, api) {\n zrUtil.each(this._coordinateSystems, function (coordSys) {\n coordSys.update && coordSys.update(ecModel, api);\n });\n };\n\n CoordinateSystemManager.prototype.getCoordinateSystems = function () {\n return this._coordinateSystems.slice();\n };\n\n CoordinateSystemManager.register = function (type, creator) {\n coordinateSystemCreators[type] = creator;\n };\n\n CoordinateSystemManager.get = function (type) {\n return coordinateSystemCreators[type];\n };\n\n return CoordinateSystemManager;\n}();\n\nexport default CoordinateSystemManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { normalizeToArray } from '../util/model';\nimport { each, clone, map, isTypedArray, setAsPrimitive, isArray, isObject } from 'zrender/lib/core/util';\nimport { error } from '../util/log';\nvar QUERY_REG = /^(min|max)?(.+)$/;\n\nvar OptionManager = function () {\n function OptionManager(api) {\n this._timelineOptions = [];\n this._mediaList = [];\n this._currentMediaIndices = [];\n this._api = api;\n }\n\n OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\n if (rawOption) {\n each(normalizeToArray(rawOption.series), function (series) {\n series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\n });\n each(normalizeToArray(rawOption.dataset), function (dataset) {\n dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\n });\n }\n\n rawOption = clone(rawOption);\n var optionBackup = this._optionBackup;\n var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\n this._newBaseOption = newParsedOption.baseOption;\n\n if (optionBackup) {\n if (newParsedOption.timelineOptions.length) {\n optionBackup.timelineOptions = newParsedOption.timelineOptions;\n }\n\n if (newParsedOption.mediaList.length) {\n optionBackup.mediaList = newParsedOption.mediaList;\n }\n\n if (newParsedOption.mediaDefault) {\n optionBackup.mediaDefault = newParsedOption.mediaDefault;\n }\n } else {\n this._optionBackup = newParsedOption;\n }\n };\n\n OptionManager.prototype.mountOption = function (isRecreate) {\n var optionBackup = this._optionBackup;\n this._timelineOptions = optionBackup.timelineOptions;\n this._mediaList = optionBackup.mediaList;\n this._mediaDefault = optionBackup.mediaDefault;\n this._currentMediaIndices = [];\n return clone(isRecreate ? optionBackup.baseOption : this._newBaseOption);\n };\n\n OptionManager.prototype.getTimelineOption = function (ecModel) {\n var option;\n var timelineOptions = this._timelineOptions;\n\n if (timelineOptions.length) {\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel) {\n option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\n }\n }\n\n return option;\n };\n\n OptionManager.prototype.getMediaOption = function (ecModel) {\n var ecWidth = this._api.getWidth();\n\n var ecHeight = this._api.getHeight();\n\n var mediaList = this._mediaList;\n var mediaDefault = this._mediaDefault;\n var indices = [];\n var result = [];\n\n if (!mediaList.length && !mediaDefault) {\n return result;\n }\n\n for (var i = 0, len = mediaList.length; i < len; i++) {\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n indices.push(i);\n }\n }\n\n if (!indices.length && mediaDefault) {\n indices = [-1];\n }\n\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n result = map(indices, function (index) {\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n });\n }\n\n this._currentMediaIndices = indices;\n return result;\n };\n\n return OptionManager;\n}();\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n var mediaList = [];\n var mediaDefault;\n var baseOption;\n var declaredBaseOption = rawOption.baseOption;\n var timelineOnRoot = rawOption.timeline;\n var timelineOptionsOnRoot = rawOption.options;\n var mediaOnRoot = rawOption.media;\n var hasMedia = !!rawOption.media;\n var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline);\n\n if (declaredBaseOption) {\n baseOption = declaredBaseOption;\n\n if (!baseOption.timeline) {\n baseOption.timeline = timelineOnRoot;\n }\n } else {\n if (hasTimeline || hasMedia) {\n rawOption.options = rawOption.media = null;\n }\n\n baseOption = rawOption;\n }\n\n if (hasMedia) {\n if (isArray(mediaOnRoot)) {\n each(mediaOnRoot, function (singleMedia) {\n if (process.env.NODE_ENV !== 'production') {\n if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) {\n error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\n }\n }\n\n if (singleMedia && singleMedia.option) {\n if (singleMedia.query) {\n mediaList.push(singleMedia);\n } else if (!mediaDefault) {\n mediaDefault = singleMedia;\n }\n }\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\n }\n }\n }\n\n doPreprocess(baseOption);\n each(timelineOptionsOnRoot, function (option) {\n return doPreprocess(option);\n });\n each(mediaList, function (media) {\n return doPreprocess(media.option);\n });\n\n function doPreprocess(option) {\n each(optionPreprocessorFuncs, function (preProcess) {\n preProcess(option, isNew);\n });\n }\n\n return {\n baseOption: baseOption,\n timelineOptions: timelineOptionsOnRoot || [],\n mediaDefault: mediaDefault,\n mediaList: mediaList\n };\n}\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n var realMap = {\n width: ecWidth,\n height: ecHeight,\n aspectratio: ecWidth / ecHeight\n };\n var applicatable = true;\n each(query, function (value, attr) {\n var matched = attr.match(QUERY_REG);\n\n if (!matched || !matched[1] || !matched[2]) {\n return;\n }\n\n var operator = matched[1];\n var realAttr = matched[2].toLowerCase();\n\n if (!compare(realMap[realAttr], value, operator)) {\n applicatable = false;\n }\n });\n return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n if (operator === 'min') {\n return real >= expect;\n } else if (operator === 'max') {\n return real <= expect;\n } else {\n return real === expect;\n }\n}\n\nfunction indicesEquals(indices1, indices2) {\n return indices1.join(',') === indices2.join(',');\n}\n\nexport default OptionManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../../util/log';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n var itemStyleOpt = opt && opt.itemStyle;\n\n if (!itemStyleOpt) {\n return;\n }\n\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n var styleName = POSSIBLE_STYLES[i];\n var normalItemStyleOpt = itemStyleOpt.normal;\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\n }\n\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].normal) {\n opt[styleName].normal = normalItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n }\n\n normalItemStyleOpt[styleName] = null;\n }\n\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\n }\n\n opt[styleName] = opt[styleName] || {};\n\n if (!opt[styleName].emphasis) {\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n } else {\n zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n }\n\n emphasisItemStyleOpt[styleName] = null;\n }\n }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n var normalOpt = opt[optType].normal;\n var emphasisOpt = opt[optType].emphasis;\n\n if (normalOpt) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\n }\n\n if (useExtend) {\n opt[optType].normal = opt[optType].emphasis = null;\n zrUtil.defaults(opt[optType], normalOpt);\n } else {\n opt[optType] = normalOpt;\n }\n }\n\n if (emphasisOpt) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\n }\n\n opt.emphasis = opt.emphasis || {};\n opt.emphasis[optType] = emphasisOpt;\n\n if (emphasisOpt.focus) {\n opt.emphasis.focus = emphasisOpt.focus;\n }\n\n if (emphasisOpt.blurScope) {\n opt.emphasis.blurScope = emphasisOpt.blurScope;\n }\n }\n }\n}\n\nfunction removeEC3NormalStatus(opt) {\n convertNormalEmphasis(opt, 'itemStyle');\n convertNormalEmphasis(opt, 'lineStyle');\n convertNormalEmphasis(opt, 'areaStyle');\n convertNormalEmphasis(opt, 'label');\n convertNormalEmphasis(opt, 'labelLine');\n convertNormalEmphasis(opt, 'upperLabel');\n convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n var labelOptSingle = isObject(opt) && opt[propName];\n var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n if (textStyle) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\n }\n\n for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n var textPropName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n if (textStyle.hasOwnProperty(textPropName)) {\n labelOptSingle[textPropName] = textStyle[textPropName];\n }\n }\n }\n}\n\nfunction compatEC3CommonStyles(opt) {\n if (opt) {\n removeEC3NormalStatus(opt);\n compatTextStyle(opt, 'label');\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n }\n}\n\nfunction processSeries(seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n compatEC2ItemStyle(seriesOpt);\n removeEC3NormalStatus(seriesOpt);\n compatTextStyle(seriesOpt, 'label');\n compatTextStyle(seriesOpt, 'upperLabel');\n compatTextStyle(seriesOpt, 'edgeLabel');\n\n if (seriesOpt.emphasis) {\n compatTextStyle(seriesOpt.emphasis, 'label');\n compatTextStyle(seriesOpt.emphasis, 'upperLabel');\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n }\n\n var markPoint = seriesOpt.markPoint;\n\n if (markPoint) {\n compatEC2ItemStyle(markPoint);\n compatEC3CommonStyles(markPoint);\n }\n\n var markLine = seriesOpt.markLine;\n\n if (markLine) {\n compatEC2ItemStyle(markLine);\n compatEC3CommonStyles(markLine);\n }\n\n var markArea = seriesOpt.markArea;\n\n if (markArea) {\n compatEC3CommonStyles(markArea);\n }\n\n var data = seriesOpt.data;\n\n if (seriesOpt.type === 'graph') {\n data = data || seriesOpt.nodes;\n var edgeData = seriesOpt.links || seriesOpt.edges;\n\n if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n for (var i = 0; i < edgeData.length; i++) {\n compatEC3CommonStyles(edgeData[i]);\n }\n }\n\n zrUtil.each(seriesOpt.categories, function (opt) {\n removeEC3NormalStatus(opt);\n });\n }\n\n if (data && !zrUtil.isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n compatEC3CommonStyles(data[i]);\n }\n }\n\n markPoint = seriesOpt.markPoint;\n\n if (markPoint && markPoint.data) {\n var mpData = markPoint.data;\n\n for (var i = 0; i < mpData.length; i++) {\n compatEC3CommonStyles(mpData[i]);\n }\n }\n\n markLine = seriesOpt.markLine;\n\n if (markLine && markLine.data) {\n var mlData = markLine.data;\n\n for (var i = 0; i < mlData.length; i++) {\n if (zrUtil.isArray(mlData[i])) {\n compatEC3CommonStyles(mlData[i][0]);\n compatEC3CommonStyles(mlData[i][1]);\n } else {\n compatEC3CommonStyles(mlData[i]);\n }\n }\n }\n\n if (seriesOpt.type === 'gauge') {\n compatTextStyle(seriesOpt, 'axisLabel');\n compatTextStyle(seriesOpt, 'title');\n compatTextStyle(seriesOpt, 'detail');\n } else if (seriesOpt.type === 'treemap') {\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n zrUtil.each(seriesOpt.levels, function (opt) {\n removeEC3NormalStatus(opt);\n });\n } else if (seriesOpt.type === 'tree') {\n removeEC3NormalStatus(seriesOpt.leaves);\n }\n}\n\nfunction toArr(o) {\n return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nexport default function globalCompatStyle(option, isTheme) {\n each(toArr(option.series), function (seriesOpt) {\n isObject(seriesOpt) && processSeries(seriesOpt);\n });\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n each(axes, function (axisName) {\n each(toArr(option[axisName]), function (axisOpt) {\n if (axisOpt) {\n compatTextStyle(axisOpt, 'axisLabel');\n compatTextStyle(axisOpt.axisPointer, 'label');\n }\n });\n });\n each(toArr(option.parallel), function (parallelOpt) {\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n compatTextStyle(parallelAxisDefault, 'axisLabel');\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n });\n each(toArr(option.calendar), function (calendarOpt) {\n convertNormalEmphasis(calendarOpt, 'itemStyle');\n compatTextStyle(calendarOpt, 'dayLabel');\n compatTextStyle(calendarOpt, 'monthLabel');\n compatTextStyle(calendarOpt, 'yearLabel');\n });\n each(toArr(option.radar), function (radarOpt) {\n compatTextStyle(radarOpt, 'name');\n\n if (radarOpt.name && radarOpt.axisName == null) {\n radarOpt.axisName = radarOpt.name;\n delete radarOpt.name;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('name property in radar component has been changed to axisName');\n }\n }\n\n if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\n radarOpt.axisNameGap = radarOpt.nameGap;\n delete radarOpt.nameGap;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('nameGap property in radar component has been changed to axisNameGap');\n }\n }\n });\n each(toArr(option.geo), function (geoOpt) {\n if (isObject(geoOpt)) {\n compatEC3CommonStyles(geoOpt);\n each(toArr(geoOpt.regions), function (regionObj) {\n compatEC3CommonStyles(regionObj);\n });\n }\n });\n each(toArr(option.timeline), function (timelineOpt) {\n compatEC3CommonStyles(timelineOpt);\n convertNormalEmphasis(timelineOpt, 'label');\n convertNormalEmphasis(timelineOpt, 'itemStyle');\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n var data = timelineOpt.data;\n zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n if (zrUtil.isObject(item)) {\n convertNormalEmphasis(item, 'label');\n convertNormalEmphasis(item, 'itemStyle');\n }\n });\n });\n each(toArr(option.toolbox), function (toolboxOpt) {\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\n each(toolboxOpt.feature, function (featureOpt) {\n convertNormalEmphasis(featureOpt, 'iconStyle');\n });\n });\n compatTextStyle(toObj(option.axisPointer), 'label');\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util';\nimport compatStyle from './helper/compatStyle';\nimport { normalizeToArray } from '../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../util/log';\n\nfunction get(opt, path) {\n var pathArr = path.split(',');\n var obj = opt;\n\n for (var i = 0; i < pathArr.length; i++) {\n obj = obj && obj[pathArr[i]];\n\n if (obj == null) {\n break;\n }\n }\n\n return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n var pathArr = path.split(',');\n var obj = opt;\n var key;\n var i = 0;\n\n for (; i < pathArr.length - 1; i++) {\n key = pathArr[i];\n\n if (obj[key] == null) {\n obj[key] = {};\n }\n\n obj = obj[key];\n }\n\n if (overwrite || obj[pathArr[i]] == null) {\n obj[pathArr[i]] = val;\n }\n}\n\nfunction compatLayoutProperties(option) {\n option && each(LAYOUT_PROPERTIES, function (prop) {\n if (prop[0] in option && !(prop[1] in option)) {\n option[prop[1]] = option[prop[0]];\n }\n });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\nvar BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];\n\nfunction compatBarItemStyle(option) {\n var itemStyle = option && option.itemStyle;\n\n if (itemStyle) {\n for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\n var oldName = BAR_ITEM_STYLE_MAP[i][1];\n var newName = BAR_ITEM_STYLE_MAP[i][0];\n\n if (itemStyle[oldName] != null) {\n itemStyle[newName] = itemStyle[oldName];\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(oldName, newName);\n }\n }\n }\n }\n}\n\nfunction compatPieLabel(option) {\n if (!option) {\n return;\n }\n\n if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\n }\n\n option.edgeDistance = option.margin;\n }\n}\n\nfunction compatSunburstState(option) {\n if (!option) {\n return;\n }\n\n if (option.downplay && !option.blur) {\n option.blur = option.downplay;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('downplay', 'blur', 'sunburst');\n }\n }\n}\n\nfunction compatGraphFocus(option) {\n if (!option) {\n return;\n }\n\n if (option.focusNodeAdjacency != null) {\n option.emphasis = option.emphasis || {};\n\n if (option.emphasis.focus == null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\n }\n\n option.emphasis.focus = 'adjacency';\n }\n }\n}\n\nfunction traverseTree(data, cb) {\n if (data) {\n for (var i = 0; i < data.length; i++) {\n cb(data[i]);\n data[i] && traverseTree(data[i].children, cb);\n }\n }\n}\n\nexport default function globalBackwardCompat(option, isTheme) {\n compatStyle(option, isTheme);\n option.series = normalizeToArray(option.series);\n each(option.series, function (seriesOpt) {\n if (!isObject(seriesOpt)) {\n return;\n }\n\n var seriesType = seriesOpt.type;\n\n if (seriesType === 'line') {\n if (seriesOpt.clipOverflow != null) {\n seriesOpt.clip = seriesOpt.clipOverflow;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('clipOverflow', 'clip', 'line');\n }\n }\n } else if (seriesType === 'pie' || seriesType === 'gauge') {\n if (seriesOpt.clockWise != null) {\n seriesOpt.clockwise = seriesOpt.clockWise;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('clockWise', 'clockwise');\n }\n }\n\n compatPieLabel(seriesOpt.label);\n var data = seriesOpt.data;\n\n if (data && !isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n compatPieLabel(data[i]);\n }\n }\n\n if (seriesOpt.hoverOffset != null) {\n seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n if (seriesOpt.emphasis.scaleSize = null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\n }\n\n seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\n }\n }\n } else if (seriesType === 'gauge') {\n var pointerColor = get(seriesOpt, 'pointer.color');\n pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n } else if (seriesType === 'bar') {\n compatBarItemStyle(seriesOpt);\n compatBarItemStyle(seriesOpt.backgroundStyle);\n compatBarItemStyle(seriesOpt.emphasis);\n var data = seriesOpt.data;\n\n if (data && !isTypedArray(data)) {\n for (var i = 0; i < data.length; i++) {\n if (typeof data[i] === 'object') {\n compatBarItemStyle(data[i]);\n compatBarItemStyle(data[i] && data[i].emphasis);\n }\n }\n }\n } else if (seriesType === 'sunburst') {\n var highlightPolicy = seriesOpt.highlightPolicy;\n\n if (highlightPolicy) {\n seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n if (!seriesOpt.emphasis.focus) {\n seriesOpt.emphasis.focus = highlightPolicy;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\n }\n }\n }\n\n compatSunburstState(seriesOpt);\n traverseTree(seriesOpt.data, compatSunburstState);\n } else if (seriesType === 'graph' || seriesType === 'sankey') {\n compatGraphFocus(seriesOpt);\n } else if (seriesType === 'map') {\n if (seriesOpt.mapType && !seriesOpt.map) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('mapType', 'map', 'map');\n }\n\n seriesOpt.map = seriesOpt.mapType;\n }\n\n if (seriesOpt.mapLocation) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('`mapLocation` is not used anymore.');\n }\n\n defaults(seriesOpt, seriesOpt.mapLocation);\n }\n }\n\n if (seriesOpt.hoverAnimation != null) {\n seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\n }\n\n seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\n }\n }\n\n compatLayoutProperties(seriesOpt);\n });\n\n if (option.dataRange) {\n option.visualMap = option.dataRange;\n }\n\n each(COMPATITABLE_COMPONENTS, function (componentName) {\n var options = option[componentName];\n\n if (options) {\n if (!isArray(options)) {\n options = [options];\n }\n\n each(options, function (option) {\n compatLayoutProperties(option);\n });\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nexport default function dataStack(ecModel) {\n var stackInfoMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var stack = seriesModel.get('stack');\n\n if (stack) {\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n var data = seriesModel.getData();\n var stackInfo = {\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n stackedDimension: data.getCalculationInfo('stackedDimension'),\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n data: data,\n seriesModel: seriesModel\n };\n\n if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n return;\n }\n\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n stackInfoList.push(stackInfo);\n }\n });\n stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n each(stackInfoList, function (targetStackInfo, idxInStack) {\n var resultVal = [];\n var resultNaN = [NaN, NaN];\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n var targetData = targetStackInfo.data;\n var isStackedByIndex = targetStackInfo.isStackedByIndex;\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\n\n if (isNaN(sum)) {\n return resultNaN;\n }\n\n var byValue;\n var stackedDataRawIndex;\n\n if (isStackedByIndex) {\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n } else {\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n }\n\n var stackedOver = NaN;\n\n for (var j = idxInStack - 1; j >= 0; j--) {\n var stackInfo = stackInfoList[j];\n\n if (!isStackedByIndex) {\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n }\n\n if (stackedDataRawIndex >= 0) {\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\n\n if (sum >= 0 && val > 0 || sum <= 0 && val < 0) {\n sum += val;\n stackedOver = val;\n break;\n }\n }\n }\n\n resultVal[0] = sum;\n resultVal[1] = stackedOver;\n return resultVal;\n });\n targetData.hostModel.setData(newData);\n targetStackInfo.data = newData;\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isTypedArray, clone, createHashMap, isArray, isObject, isArrayLike, hasOwn, assert, each, map, isNumber, isString } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_UNKNOWN, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW } from '../util/types';\nimport { getDataItemValue } from '../util/model';\n;\n\nvar SourceImpl = function () {\n function SourceImpl(fields) {\n this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\n this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n this.startIndex = fields.startIndex || 0;\n this.dimensionsDefine = fields.dimensionsDefine;\n this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\n this.encodeDefine = fields.encodeDefine;\n this.metaRawOption = fields.metaRawOption;\n }\n\n return SourceImpl;\n}();\n\nexport function isSourceInstance(val) {\n return val instanceof SourceImpl;\n}\nexport function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\n sourceFormat = sourceFormat || detectSourceFormat(sourceData);\n var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\n var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\n var source = new SourceImpl({\n data: sourceData,\n sourceFormat: sourceFormat,\n seriesLayoutBy: seriesLayoutBy,\n dimensionsDefine: determined.dimensionsDefine,\n startIndex: determined.startIndex,\n dimensionsDetectedCount: determined.dimensionsDetectedCount,\n encodeDefine: makeEncodeDefine(encodeDefine),\n metaRawOption: clone(thisMetaRawOption)\n });\n return source;\n}\nexport function createSourceFromSeriesDataOption(data) {\n return new SourceImpl({\n data: data,\n sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL\n });\n}\nexport function cloneSourceShallow(source) {\n return new SourceImpl({\n data: source.data,\n sourceFormat: source.sourceFormat,\n seriesLayoutBy: source.seriesLayoutBy,\n dimensionsDefine: clone(source.dimensionsDefine),\n startIndex: source.startIndex,\n dimensionsDetectedCount: source.dimensionsDetectedCount,\n encodeDefine: makeEncodeDefine(source.encodeDefine)\n });\n}\n\nfunction makeEncodeDefine(encodeDefine) {\n return encodeDefine ? createHashMap(encodeDefine) : null;\n}\n\nexport function detectSourceFormat(data) {\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n if (isTypedArray(data)) {\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n } else if (isArray(data)) {\n if (data.length === 0) {\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n }\n\n for (var i = 0, len = data.length; i < len; i++) {\n var item = data[i];\n\n if (item == null) {\n continue;\n } else if (isArray(item)) {\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n break;\n } else if (isObject(item)) {\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n break;\n }\n }\n } else if (isObject(data)) {\n for (var key in data) {\n if (hasOwn(data, key) && isArrayLike(data[key])) {\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n break;\n }\n }\n }\n\n return sourceFormat;\n}\n\nfunction determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n var dimensionsDetectedCount;\n var startIndex;\n\n if (!data) {\n return {\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n startIndex: startIndex,\n dimensionsDetectedCount: dimensionsDetectedCount\n };\n }\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n var dataArrayRows = data;\n\n if (sourceHeader === 'auto' || sourceHeader == null) {\n arrayRowsTravelFirst(function (val) {\n if (val != null && val !== '-') {\n if (isString(val)) {\n startIndex == null && (startIndex = 1);\n } else {\n startIndex = 0;\n }\n }\n }, seriesLayoutBy, dataArrayRows, 10);\n } else {\n startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\n }\n\n if (!dimensionsDefine && startIndex === 1) {\n dimensionsDefine = [];\n arrayRowsTravelFirst(function (val, index) {\n dimensionsDefine[index] = val != null ? val + '' : '';\n }, seriesLayoutBy, dataArrayRows, Infinity);\n }\n\n dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null;\n } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n if (!dimensionsDefine) {\n dimensionsDefine = objectRowsCollectDimensions(data);\n }\n } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n if (!dimensionsDefine) {\n dimensionsDefine = [];\n each(data, function (colArr, key) {\n dimensionsDefine.push(key);\n });\n }\n } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var value0 = getDataItemValue(data[0]);\n dimensionsDetectedCount = isArray(value0) && value0.length || 1;\n } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\n }\n }\n\n return {\n startIndex: startIndex,\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n dimensionsDetectedCount: dimensionsDetectedCount\n };\n}\n\nfunction objectRowsCollectDimensions(data) {\n var firstIndex = 0;\n var obj;\n\n while (firstIndex < data.length && !(obj = data[firstIndex++])) {}\n\n if (obj) {\n var dimensions_1 = [];\n each(obj, function (value, key) {\n dimensions_1.push(key);\n });\n return dimensions_1;\n }\n}\n\nfunction normalizeDimensionsOption(dimensionsDefine) {\n if (!dimensionsDefine) {\n return;\n }\n\n var nameMap = createHashMap();\n return map(dimensionsDefine, function (rawItem, index) {\n rawItem = isObject(rawItem) ? rawItem : {\n name: rawItem\n };\n var item = {\n name: rawItem.name,\n displayName: rawItem.displayName,\n type: rawItem.type\n };\n\n if (item.name == null) {\n return item;\n }\n\n item.name += '';\n\n if (item.displayName == null) {\n item.displayName = item.name;\n }\n\n var exist = nameMap.get(item.name);\n\n if (!exist) {\n nameMap.set(item.name, {\n count: 1\n });\n } else {\n item.name += '-' + exist.count++;\n }\n\n return item;\n });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n for (var i = 0; i < data.length && i < maxLoop; i++) {\n cb(data[i] ? data[i][0] : null, i);\n }\n } else {\n var value0 = data[0] || [];\n\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\n cb(value0[i], i);\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar _a, _b, _c;\n\nimport { isTypedArray, extend, assert, each, isObject, bind } from 'zrender/lib/core/util';\nimport { getDataItemValue } from '../../util/model';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN, SERIES_LAYOUT_BY_ROW } from '../../util/types';\nvar providerMethods;\nvar mountMethods;\n\nvar DefaultDataProvider = function () {\n function DefaultDataProvider(sourceParam, dimSize) {\n var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam;\n this._source = source;\n var data = this._data = source.data;\n\n if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n if (process.env.NODE_ENV !== 'production') {\n if (dimSize == null) {\n throw new Error('Typed array data must specify dimension size');\n }\n }\n\n this._offset = 0;\n this._dimSize = dimSize;\n this._data = data;\n }\n\n mountMethods(this, data, source);\n }\n\n DefaultDataProvider.prototype.getSource = function () {\n return this._source;\n };\n\n DefaultDataProvider.prototype.count = function () {\n return 0;\n };\n\n DefaultDataProvider.prototype.getItem = function (idx, out) {\n return;\n };\n\n DefaultDataProvider.prototype.appendData = function (newData) {};\n\n DefaultDataProvider.prototype.clean = function () {};\n\n DefaultDataProvider.protoInitialize = function () {\n var proto = DefaultDataProvider.prototype;\n proto.pure = false;\n proto.persistent = true;\n }();\n\n DefaultDataProvider.internalField = function () {\n var _a;\n\n mountMethods = function (provider, data, source) {\n var sourceFormat = source.sourceFormat;\n var seriesLayoutBy = source.seriesLayoutBy;\n var startIndex = source.startIndex;\n var dimsDef = source.dimensionsDefine;\n var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\n }\n\n extend(provider, methods);\n\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n provider.getItem = getItemForTypedArray;\n provider.count = countForTypedArray;\n provider.fillStorage = fillStorageForTypedArray;\n } else {\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\n provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\n var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\n provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\n }\n };\n\n var getItemForTypedArray = function (idx, out) {\n idx = idx - this._offset;\n out = out || [];\n var data = this._data;\n var dimSize = this._dimSize;\n var offset = dimSize * idx;\n\n for (var i = 0; i < dimSize; i++) {\n out[i] = data[offset + i];\n }\n\n return out;\n };\n\n var fillStorageForTypedArray = function (start, end, storage, extent) {\n var data = this._data;\n var dimSize = this._dimSize;\n\n for (var dim = 0; dim < dimSize; dim++) {\n var dimExtent = extent[dim];\n var min = dimExtent[0] == null ? Infinity : dimExtent[0];\n var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\n var count = end - start;\n var arr = storage[dim];\n\n for (var i = 0; i < count; i++) {\n var val = data[i * dimSize + dim];\n arr[start + i] = val;\n val < min && (min = val);\n val > max && (max = val);\n }\n\n dimExtent[0] = min;\n dimExtent[1] = max;\n }\n };\n\n var countForTypedArray = function () {\n return this._data ? this._data.length / this._dimSize : 0;\n };\n\n providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\n pure: true,\n appendData: appendDataSimply\n }, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\n pure: true,\n appendData: function () {\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n }\n }, _a[SOURCE_FORMAT_OBJECT_ROWS] = {\n pure: true,\n appendData: appendDataSimply\n }, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\n pure: true,\n appendData: function (newData) {\n var data = this._data;\n each(newData, function (newCol, key) {\n var oldCol = data[key] || (data[key] = []);\n\n for (var i = 0; i < (newCol || []).length; i++) {\n oldCol.push(newCol[i]);\n }\n });\n }\n }, _a[SOURCE_FORMAT_ORIGINAL] = {\n appendData: appendDataSimply\n }, _a[SOURCE_FORMAT_TYPED_ARRAY] = {\n persistent: false,\n pure: true,\n appendData: function (newData) {\n if (process.env.NODE_ENV !== 'production') {\n assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\n }\n\n this._data = newData;\n },\n clean: function () {\n this._offset += this.count();\n this._data = null;\n }\n }, _a);\n\n function appendDataSimply(newData) {\n for (var i = 0; i < newData.length; i++) {\n this._data.push(newData[i]);\n }\n }\n }();\n\n return DefaultDataProvider;\n}();\n\nexport { DefaultDataProvider };\n\nvar getItemSimply = function (rawData, startIndex, dimsDef, idx) {\n return rawData[idx];\n};\n\nvar rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\n return rawData[idx + startIndex];\n}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\n idx += startIndex;\n var item = [];\n var data = rawData;\n\n for (var i = 0; i < data.length; i++) {\n var row = data[i];\n item.push(row ? row[idx] : null);\n }\n\n return item;\n}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\n var item = [];\n\n for (var i = 0; i < dimsDef.length; i++) {\n var dimName = dimsDef[i].name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (dimName == null) {\n throw new Error();\n }\n }\n\n var col = rawData[dimName];\n item.push(col ? col[idx] : null);\n }\n\n return item;\n}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a);\nexport function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\n var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n }\n\n return method;\n}\n\nvar countSimply = function (rawData, startIndex, dimsDef) {\n return rawData.length;\n};\n\nvar rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\n return Math.max(0, rawData.length - startIndex);\n}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\n var row = rawData[0];\n return row ? Math.max(0, row.length - startIndex) : 0;\n}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\n var dimName = dimsDef[0].name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (dimName == null) {\n throw new Error();\n }\n }\n\n var col = rawData[dimName];\n return col ? col.length : 0;\n}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b);\nexport function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\n var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n }\n\n return method;\n}\n\nvar getRawValueSimply = function (dataItem, dimIndex, dimName) {\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\n};\n\nvar rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\n return dimIndex != null ? dataItem[dimName] : dataItem;\n}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\n var value = getDataItemValue(dataItem);\n return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c);\nexport function getRawSourceValueGetter(sourceFormat) {\n var method = rawSourceValueGetterMap[sourceFormat];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\n }\n\n return method;\n}\n\nfunction getMethodMapKey(sourceFormat, seriesLayoutBy) {\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + seriesLayoutBy : sourceFormat;\n}\n\nexport function retrieveRawValue(data, dataIndex, dim) {\n if (!data) {\n return;\n }\n\n var dataItem = data.getRawDataItem(dataIndex);\n\n if (dataItem == null) {\n return;\n }\n\n var sourceFormat = data.getProvider().getSource().sourceFormat;\n var dimName;\n var dimIndex;\n var dimInfo = data.getDimensionInfo(dim);\n\n if (dimInfo) {\n dimName = dimInfo.name;\n dimIndex = dimInfo.index;\n }\n\n return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\n}\nexport function retrieveRawAttr(data, dataIndex, attr) {\n if (!data) {\n return;\n }\n\n var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n return;\n }\n\n var dataItem = data.getRawDataItem(dataIndex);\n\n if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n dataItem = null;\n }\n\n if (dataItem) {\n return dataItem[attr];\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { formatTpl } from '../../util/format';\nimport { makePrintable } from '../../util/log';\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\n\nvar DataFormatMixin = function () {\n function DataFormatMixin() {}\n\n DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\n var data = this.getData(dataType);\n var rawValue = this.getRawValue(dataIndex, dataType);\n var rawDataIndex = data.getRawIndex(dataIndex);\n var name = data.getName(dataIndex);\n var itemOpt = data.getRawDataItem(dataIndex);\n var style = data.getItemVisual(dataIndex, 'style');\n var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\n var borderColor = style && style.stroke;\n var mainType = this.mainType;\n var isSeries = mainType === 'series';\n var userOutput = data.userOutput;\n return {\n componentType: mainType,\n componentSubType: this.subType,\n componentIndex: this.componentIndex,\n seriesType: isSeries ? this.subType : null,\n seriesIndex: this.seriesIndex,\n seriesId: isSeries ? this.id : null,\n seriesName: isSeries ? this.name : null,\n name: name,\n dataIndex: rawDataIndex,\n data: itemOpt,\n dataType: dataType,\n value: rawValue,\n color: color,\n borderColor: borderColor,\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\n encode: userOutput ? userOutput.encode : null,\n $vars: ['seriesName', 'name', 'value']\n };\n };\n\n DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\n status = status || 'normal';\n var data = this.getData(dataType);\n var params = this.getDataParams(dataIndex, dataType);\n\n if (extendParams) {\n params.value = extendParams.interpolatedValue;\n }\n\n if (labelDimIndex != null && zrUtil.isArray(params.value)) {\n params.value = params.value[labelDimIndex];\n }\n\n if (!formatter) {\n var itemModel = data.getItemModel(dataIndex);\n formatter = itemModel.get(status === 'normal' ? ['label', 'formatter'] : [status, 'label', 'formatter']);\n }\n\n if (typeof formatter === 'function') {\n params.status = status;\n params.dimensionIndex = labelDimIndex;\n return formatter(params);\n } else if (typeof formatter === 'string') {\n var str = formatTpl(formatter, params);\n return str.replace(DIMENSION_LABEL_REG, function (origin, dimStr) {\n var len = dimStr.length;\n var dimLoose = dimStr.charAt(0) === '[' && dimStr.charAt(len - 1) === ']' ? +dimStr.slice(1, len - 1) : dimStr;\n var val = retrieveRawValue(data, dataIndex, dimLoose);\n\n if (extendParams && zrUtil.isArray(extendParams.interpolatedValue)) {\n var dimInfo = data.getDimensionInfo(dimLoose);\n\n if (dimInfo) {\n val = extendParams.interpolatedValue[dimInfo.index];\n }\n }\n\n return val != null ? val + '' : '';\n });\n }\n };\n\n DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\n return retrieveRawValue(this.getData(dataType), idx);\n };\n\n DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n return;\n };\n\n return DataFormatMixin;\n}();\n\nexport { DataFormatMixin };\n;\nexport function normalizeTooltipFormatResult(result) {\n var markupText;\n var markupFragment;\n\n if (zrUtil.isObject(result)) {\n if (result.type) {\n markupFragment = result;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\n }\n }\n } else {\n markupText = result;\n }\n\n return {\n markupText: markupText,\n markupFragment: markupFragment\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray } from 'zrender/lib/core/util';\n;\nexport function createTask(define) {\n return new Task(define);\n}\n\nvar Task = function () {\n function Task(define) {\n define = define || {};\n this._reset = define.reset;\n this._plan = define.plan;\n this._count = define.count;\n this._onDirty = define.onDirty;\n this._dirty = true;\n }\n\n Task.prototype.perform = function (performArgs) {\n var upTask = this._upstream;\n var skip = performArgs && performArgs.skip;\n\n if (this._dirty && upTask) {\n var context = this.context;\n context.data = context.outputData = upTask.context.outputData;\n }\n\n if (this.__pipeline) {\n this.__pipeline.currentTask = this;\n }\n\n var planResult;\n\n if (this._plan && !skip) {\n planResult = this._plan(this.context);\n }\n\n var lastModBy = normalizeModBy(this._modBy);\n var lastModDataCount = this._modDataCount || 0;\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\n var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n planResult = 'reset';\n }\n\n function normalizeModBy(val) {\n !(val >= 1) && (val = 1);\n return val;\n }\n\n var forceFirstProgress;\n\n if (this._dirty || planResult === 'reset') {\n this._dirty = false;\n forceFirstProgress = this._doReset(skip);\n }\n\n this._modBy = modBy;\n this._modDataCount = modDataCount;\n var step = performArgs && performArgs.step;\n\n if (upTask) {\n if (process.env.NODE_ENV !== 'production') {\n assert(upTask._outputDueEnd != null);\n }\n\n this._dueEnd = upTask._outputDueEnd;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n assert(!this._progress || this._count);\n }\n\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\n }\n\n if (this._progress) {\n var start = this._dueIndex;\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n if (!skip && (forceFirstProgress || start < end)) {\n var progress = this._progress;\n\n if (isArray(progress)) {\n for (var i = 0; i < progress.length; i++) {\n this._doProgress(progress[i], start, end, modBy, modDataCount);\n }\n } else {\n this._doProgress(progress, start, end, modBy, modDataCount);\n }\n }\n\n this._dueIndex = end;\n var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n\n if (process.env.NODE_ENV !== 'production') {\n assert(outputDueEnd >= this._outputDueEnd);\n }\n\n this._outputDueEnd = outputDueEnd;\n } else {\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n }\n\n return this.unfinished();\n };\n\n Task.prototype.dirty = function () {\n this._dirty = true;\n this._onDirty && this._onDirty(this.context);\n };\n\n Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\n iterator.reset(start, end, modBy, modDataCount);\n this._callingProgress = progress;\n\n this._callingProgress({\n start: start,\n end: end,\n count: end - start,\n next: iterator.next\n }, this.context);\n };\n\n Task.prototype._doReset = function (skip) {\n this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\n this._settedOutputEnd = null;\n var progress;\n var forceFirstProgress;\n\n if (!skip && this._reset) {\n progress = this._reset(this.context);\n\n if (progress && progress.progress) {\n forceFirstProgress = progress.forceFirstProgress;\n progress = progress.progress;\n }\n\n if (isArray(progress) && !progress.length) {\n progress = null;\n }\n }\n\n this._progress = progress;\n this._modBy = this._modDataCount = null;\n var downstream = this._downstream;\n downstream && downstream.dirty();\n return forceFirstProgress;\n };\n\n Task.prototype.unfinished = function () {\n return this._progress && this._dueIndex < this._dueEnd;\n };\n\n Task.prototype.pipe = function (downTask) {\n if (process.env.NODE_ENV !== 'production') {\n assert(downTask && !downTask._disposed && downTask !== this);\n }\n\n if (this._downstream !== downTask || this._dirty) {\n this._downstream = downTask;\n downTask._upstream = this;\n downTask.dirty();\n }\n };\n\n Task.prototype.dispose = function () {\n if (this._disposed) {\n return;\n }\n\n this._upstream && (this._upstream._downstream = null);\n this._downstream && (this._downstream._upstream = null);\n this._dirty = false;\n this._disposed = true;\n };\n\n Task.prototype.getUpstream = function () {\n return this._upstream;\n };\n\n Task.prototype.getDownstream = function () {\n return this._downstream;\n };\n\n Task.prototype.setOutputEnd = function (end) {\n this._outputDueEnd = this._settedOutputEnd = end;\n };\n\n return Task;\n}();\n\nexport { Task };\n\nvar iterator = function () {\n var end;\n var current;\n var modBy;\n var modDataCount;\n var winCount;\n var it = {\n reset: function (s, e, sStep, sCount) {\n current = s;\n end = e;\n modBy = sStep;\n modDataCount = sCount;\n winCount = Math.ceil(modDataCount / modBy);\n it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n }\n };\n return it;\n\n function sequentialNext() {\n return current < end ? current++ : null;\n }\n\n function modNext() {\n var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current;\n current++;\n return result;\n }\n}();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseDate, numericToNumber } from '../../util/number';\nimport { createHashMap, trim, hasOwn } from 'zrender/lib/core/util';\nimport { throwError } from '../../util/log';\nexport function parseDataValue(value, opt) {\n var dimType = opt && opt.type;\n\n if (dimType === 'ordinal') {\n var ordinalMeta = opt && opt.ordinalMeta;\n return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n }\n\n if (dimType === 'time' && typeof value !== 'number' && value != null && value !== '-') {\n value = +parseDate(value);\n }\n\n return value == null || value === '' ? NaN : +value;\n}\n;\nvar valueParserMap = createHashMap({\n 'number': function (val) {\n return parseFloat(val);\n },\n 'time': function (val) {\n return +parseDate(val);\n },\n 'trim': function (val) {\n return typeof val === 'string' ? trim(val) : val;\n }\n});\nexport function getRawValueParser(type) {\n return valueParserMap.get(type);\n}\nvar ORDER_COMPARISON_OP_MAP = {\n lt: function (lval, rval) {\n return lval < rval;\n },\n lte: function (lval, rval) {\n return lval <= rval;\n },\n gt: function (lval, rval) {\n return lval > rval;\n },\n gte: function (lval, rval) {\n return lval >= rval;\n }\n};\n\nvar FilterOrderComparator = function () {\n function FilterOrderComparator(op, rval) {\n if (typeof rval !== 'number') {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\n }\n\n throwError(errMsg);\n }\n\n this._opFn = ORDER_COMPARISON_OP_MAP[op];\n this._rvalFloat = numericToNumber(rval);\n }\n\n FilterOrderComparator.prototype.evaluate = function (lval) {\n return typeof lval === 'number' ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat);\n };\n\n return FilterOrderComparator;\n}();\n\nvar SortOrderComparator = function () {\n function SortOrderComparator(order, incomparable) {\n var isDesc = order === 'desc';\n this._resultLT = isDesc ? 1 : -1;\n\n if (incomparable == null) {\n incomparable = isDesc ? 'min' : 'max';\n }\n\n this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\n }\n\n SortOrderComparator.prototype.evaluate = function (lval, rval) {\n var lvalTypeof = typeof lval;\n var rvalTypeof = typeof rval;\n var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\n var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\n var lvalNotNumeric = isNaN(lvalFloat);\n var rvalNotNumeric = isNaN(rvalFloat);\n\n if (lvalNotNumeric) {\n lvalFloat = this._incomparable;\n }\n\n if (rvalNotNumeric) {\n rvalFloat = this._incomparable;\n }\n\n if (lvalNotNumeric && rvalNotNumeric) {\n var lvalIsStr = lvalTypeof === 'string';\n var rvalIsStr = rvalTypeof === 'string';\n\n if (lvalIsStr) {\n lvalFloat = rvalIsStr ? lval : 0;\n }\n\n if (rvalIsStr) {\n rvalFloat = lvalIsStr ? rval : 0;\n }\n }\n\n return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0;\n };\n\n return SortOrderComparator;\n}();\n\nexport { SortOrderComparator };\n\nvar FilterEqualityComparator = function () {\n function FilterEqualityComparator(isEq, rval) {\n this._rval = rval;\n this._isEQ = isEq;\n this._rvalTypeof = typeof rval;\n this._rvalFloat = numericToNumber(rval);\n }\n\n FilterEqualityComparator.prototype.evaluate = function (lval) {\n var eqResult = lval === this._rval;\n\n if (!eqResult) {\n var lvalTypeof = typeof lval;\n\n if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\n eqResult = numericToNumber(lval) === this._rvalFloat;\n }\n }\n\n return this._isEQ ? eqResult : !eqResult;\n };\n\n return FilterEqualityComparator;\n}();\n\nexport function createFilterComparator(op, rval) {\n return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nimport { normalizeToArray } from '../../util/model';\nimport { createHashMap, bind, each, hasOwn, map, clone, isObject, extend } from 'zrender/lib/core/util';\nimport { getRawSourceItemGetter, getRawSourceDataCounter, getRawSourceValueGetter } from './dataProvider';\nimport { parseDataValue } from './dataValueHelper';\nimport { consoleLog, makePrintable, throwError } from '../../util/log';\nimport { createSource, detectSourceFormat } from '../Source';\n\nvar ExternalSource = function () {\n function ExternalSource() {}\n\n ExternalSource.prototype.getRawData = function () {\n throw new Error('not supported');\n };\n\n ExternalSource.prototype.getRawDataItem = function (dataIndex) {\n throw new Error('not supported');\n };\n\n ExternalSource.prototype.cloneRawData = function () {\n return;\n };\n\n ExternalSource.prototype.getDimensionInfo = function (dim) {\n return;\n };\n\n ExternalSource.prototype.cloneAllDimensionInfo = function () {\n return;\n };\n\n ExternalSource.prototype.count = function () {\n return;\n };\n\n ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\n return;\n };\n\n ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\n return;\n };\n\n ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\n return parseDataValue(rawVal, dimInfo);\n };\n\n return ExternalSource;\n}();\n\nexport { ExternalSource };\n\nfunction createExternalSource(internalSource, externalTransform) {\n var extSource = new ExternalSource();\n var data = internalSource.data;\n var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\n var sourceHeaderCount = internalSource.startIndex;\n var errMsg = '';\n\n if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`seriesLayoutBy` of upstream dataset can only be \"column\" in data transform.';\n }\n\n throwError(errMsg);\n }\n\n var dimensions = [];\n var dimsByName = {};\n var dimsDef = internalSource.dimensionsDefine;\n\n if (dimsDef) {\n each(dimsDef, function (dimDef, idx) {\n var name = dimDef.name;\n var dimDefExt = {\n index: idx,\n name: name,\n displayName: dimDef.displayName\n };\n dimensions.push(dimDefExt);\n\n if (name != null) {\n var errMsg_1 = '';\n\n if (hasOwn(dimsByName, name)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg_1 = 'dimension name \"' + name + '\" duplicated.';\n }\n\n throwError(errMsg_1);\n }\n\n dimsByName[name] = dimDefExt;\n }\n });\n } else {\n for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\n dimensions.push({\n index: i\n });\n }\n }\n\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n\n if (externalTransform.__isBuiltIn) {\n extSource.getRawDataItem = function (dataIndex) {\n return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n };\n\n extSource.getRawData = bind(getRawData, null, internalSource);\n }\n\n extSource.cloneRawData = bind(cloneRawData, null, internalSource);\n var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\n var rawValueGetter = getRawSourceValueGetter(sourceFormat);\n\n extSource.retrieveValue = function (dataIndex, dimIndex) {\n var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n return retrieveValueFromItem(rawItem, dimIndex);\n };\n\n var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\n if (dataItem == null) {\n return;\n }\n\n var dimDef = dimensions[dimIndex];\n\n if (dimDef) {\n return rawValueGetter(dataItem, dimIndex, dimDef.name);\n }\n };\n\n extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\n extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\n return extSource;\n}\n\nfunction getRawData(upstream) {\n var sourceFormat = upstream.sourceFormat;\n\n if (!isSupportedSourceFormat(sourceFormat)) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\n }\n\n throwError(errMsg);\n }\n\n return upstream.data;\n}\n\nfunction cloneRawData(upstream) {\n var sourceFormat = upstream.sourceFormat;\n var data = upstream.data;\n\n if (!isSupportedSourceFormat(sourceFormat)) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`cloneRawData` is not supported in source format ' + sourceFormat;\n }\n\n throwError(errMsg);\n }\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n var result = [];\n\n for (var i = 0, len = data.length; i < len; i++) {\n result.push(data[i].slice());\n }\n\n return result;\n } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n var result = [];\n\n for (var i = 0, len = data.length; i < len; i++) {\n result.push(extend({}, data[i]));\n }\n\n return result;\n }\n}\n\nfunction getDimensionInfo(dimensions, dimsByName, dim) {\n if (dim == null) {\n return;\n }\n\n if (typeof dim === 'number' || !isNaN(dim) && !hasOwn(dimsByName, dim)) {\n return dimensions[dim];\n } else if (hasOwn(dimsByName, dim)) {\n return dimsByName[dim];\n }\n}\n\nfunction cloneAllDimensionInfo(dimensions) {\n return clone(dimensions);\n}\n\nvar externalTransformMap = createHashMap();\nexport function registerExternalTransform(externalTransform) {\n externalTransform = clone(externalTransform);\n var type = externalTransform.type;\n var errMsg = '';\n\n if (!type) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Must have a `type` when `registerTransform`.';\n }\n\n throwError(errMsg);\n }\n\n var typeParsed = type.split(':');\n\n if (typeParsed.length !== 2) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Name must include namespace like \"ns:regression\".';\n }\n\n throwError(errMsg);\n }\n\n var isBuiltIn = false;\n\n if (typeParsed[0] === 'echarts') {\n type = typeParsed[1];\n isBuiltIn = true;\n }\n\n externalTransform.__isBuiltIn = isBuiltIn;\n externalTransformMap.set(type, externalTransform);\n}\nexport function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\n var pipedTransOption = normalizeToArray(rawTransOption);\n var pipeLen = pipedTransOption.length;\n var errMsg = '';\n\n if (!pipeLen) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'If `transform` declared, it should at least contain one transform.';\n }\n\n throwError(errMsg);\n }\n\n for (var i = 0, len = pipeLen; i < len; i++) {\n var transOption = pipedTransOption[i];\n sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\n\n if (i !== len - 1) {\n sourceList.length = Math.max(sourceList.length, 1);\n }\n }\n\n return sourceList;\n}\n\nfunction applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\n var errMsg = '';\n\n if (!upSourceList.length) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Must have at least one upstream dataset.';\n }\n\n throwError(errMsg);\n }\n\n if (!isObject(transOption)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\n }\n\n throwError(errMsg);\n }\n\n var transType = transOption.type;\n var externalTransform = externalTransformMap.get(transType);\n\n if (!externalTransform) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Can not find transform on type \"' + transType + '\".';\n }\n\n throwError(errMsg);\n }\n\n var extUpSourceList = map(upSourceList, function (upSource) {\n return createExternalSource(upSource, externalTransform);\n });\n var resultList = normalizeToArray(externalTransform.transform({\n upstream: extUpSourceList[0],\n upstreamList: extUpSourceList,\n config: clone(transOption.config)\n }));\n\n if (process.env.NODE_ENV !== 'production') {\n if (transOption.print) {\n var printStrArr = map(resultList, function (extSource) {\n var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\n return ['=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===', '- transform result data:', makePrintable(extSource.data), '- transform result dimensions:', makePrintable(extSource.dimensions)].join('\\n');\n }).join('\\n');\n consoleLog(printStrArr);\n }\n }\n\n return map(resultList, function (result, resultIndex) {\n var errMsg = '';\n\n if (!isObject(result)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'A transform should not return some empty results.';\n }\n\n throwError(errMsg);\n }\n\n if (!result.data) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Transform result data should be not be null or undefined';\n }\n\n throwError(errMsg);\n }\n\n var sourceFormat = detectSourceFormat(result.data);\n\n if (!isSupportedSourceFormat(sourceFormat)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Transform result data should be array rows or object rows.';\n }\n\n throwError(errMsg);\n }\n\n var resultMetaRawOption;\n var firstUpSource = upSourceList[0];\n\n if (firstUpSource && resultIndex === 0 && !result.dimensions) {\n var startIndex = firstUpSource.startIndex;\n\n if (startIndex) {\n result.data = firstUpSource.data.slice(0, startIndex).concat(result.data);\n }\n\n resultMetaRawOption = {\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n sourceHeader: startIndex,\n dimensions: firstUpSource.metaRawOption.dimensions\n };\n } else {\n resultMetaRawOption = {\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n sourceHeader: 0,\n dimensions: result.dimensions\n };\n }\n\n return createSource(result.data, resultMetaRawOption, null, null);\n });\n}\n\nfunction isSupportedSourceFormat(sourceFormat) {\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { setAsPrimitive, map, isTypedArray, assert, each, retrieve2 } from 'zrender/lib/core/util';\nimport { createSource, cloneSourceShallow } from '../Source';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../../util/types';\nimport { querySeriesUpstreamDatasetModel, queryDatasetUpstreamDatasetModels } from './sourceHelper';\nimport { applyDataTransform } from './transform';\n\nvar SourceManager = function () {\n function SourceManager(sourceHost) {\n this._sourceList = [];\n this._upstreamSignList = [];\n this._versionSignBase = 0;\n this._sourceHost = sourceHost;\n }\n\n SourceManager.prototype.dirty = function () {\n this._setLocalSource([], []);\n };\n\n SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\n this._sourceList = sourceList;\n this._upstreamSignList = upstreamSignList;\n this._versionSignBase++;\n\n if (this._versionSignBase > 9e10) {\n this._versionSignBase = 0;\n }\n };\n\n SourceManager.prototype._getVersionSign = function () {\n return this._sourceHost.uid + '_' + this._versionSignBase;\n };\n\n SourceManager.prototype.prepareSource = function () {\n if (this._isDirty()) {\n this._createSource();\n }\n };\n\n SourceManager.prototype._createSource = function () {\n this._setLocalSource([], []);\n\n var sourceHost = this._sourceHost;\n\n var upSourceMgrList = this._getUpstreamSourceManagers();\n\n var hasUpstream = !!upSourceMgrList.length;\n var resultSourceList;\n var upstreamSignList;\n\n if (isSeries(sourceHost)) {\n var seriesModel = sourceHost;\n var data = void 0;\n var sourceFormat = void 0;\n var upSource = void 0;\n\n if (hasUpstream) {\n var upSourceMgr = upSourceMgrList[0];\n upSourceMgr.prepareSource();\n upSource = upSourceMgr.getSource();\n data = upSource.data;\n sourceFormat = upSource.sourceFormat;\n upstreamSignList = [upSourceMgr._getVersionSign()];\n } else {\n data = seriesModel.get('data', true);\n sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n upstreamSignList = [];\n }\n\n var newMetaRawOption = this._getSourceMetaRawOption();\n\n var upMetaRawOption = upSource ? upSource.metaRawOption : null;\n var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption ? upMetaRawOption.seriesLayoutBy : null);\n var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption ? upMetaRawOption.sourceHeader : null);\n var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption ? upMetaRawOption.dimensions : null);\n resultSourceList = [createSource(data, {\n seriesLayoutBy: seriesLayoutBy,\n sourceHeader: sourceHeader,\n dimensions: dimensions\n }, sourceFormat, seriesModel.get('encode', true))];\n } else {\n var datasetModel = sourceHost;\n\n if (hasUpstream) {\n var result = this._applyTransform(upSourceMgrList);\n\n resultSourceList = result.sourceList;\n upstreamSignList = result.upstreamSignList;\n } else {\n var sourceData = datasetModel.get('source', true);\n resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\n upstreamSignList = [];\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(resultSourceList && upstreamSignList);\n }\n\n this._setLocalSource(resultSourceList, upstreamSignList);\n };\n\n SourceManager.prototype._applyTransform = function (upMgrList) {\n var datasetModel = this._sourceHost;\n var transformOption = datasetModel.get('transform', true);\n var fromTransformResult = datasetModel.get('fromTransformResult', true);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(fromTransformResult != null || transformOption != null);\n }\n\n if (fromTransformResult != null) {\n var errMsg = '';\n\n if (upMgrList.length !== 1) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\n }\n\n doThrow(errMsg);\n }\n }\n\n var sourceList;\n var upSourceList = [];\n var upstreamSignList = [];\n each(upMgrList, function (upMgr) {\n upMgr.prepareSource();\n var upSource = upMgr.getSource(fromTransformResult || 0);\n var errMsg = '';\n\n if (fromTransformResult != null && !upSource) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\n }\n\n doThrow(errMsg);\n }\n\n upSourceList.push(upSource);\n upstreamSignList.push(upMgr._getVersionSign());\n });\n\n if (transformOption) {\n sourceList = applyDataTransform(transformOption, upSourceList, {\n datasetIndex: datasetModel.componentIndex\n });\n } else if (fromTransformResult != null) {\n sourceList = [cloneSourceShallow(upSourceList[0])];\n }\n\n return {\n sourceList: sourceList,\n upstreamSignList: upstreamSignList\n };\n };\n\n SourceManager.prototype._isDirty = function () {\n var sourceList = this._sourceList;\n\n if (!sourceList.length) {\n return true;\n }\n\n var upSourceMgrList = this._getUpstreamSourceManagers();\n\n for (var i = 0; i < upSourceMgrList.length; i++) {\n var upSrcMgr = upSourceMgrList[i];\n\n if (upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\n return true;\n }\n }\n };\n\n SourceManager.prototype.getSource = function (sourceIndex) {\n return this._sourceList[sourceIndex || 0];\n };\n\n SourceManager.prototype._getUpstreamSourceManagers = function () {\n var sourceHost = this._sourceHost;\n\n if (isSeries(sourceHost)) {\n var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\n return !datasetModel ? [] : [datasetModel.getSourceManager()];\n } else {\n return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) {\n return datasetModel.getSourceManager();\n });\n }\n };\n\n SourceManager.prototype._getSourceMetaRawOption = function () {\n var sourceHost = this._sourceHost;\n var seriesLayoutBy;\n var sourceHeader;\n var dimensions;\n\n if (isSeries(sourceHost)) {\n seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\n sourceHeader = sourceHost.get('sourceHeader', true);\n dimensions = sourceHost.get('dimensions', true);\n } else if (!this._getUpstreamSourceManagers().length) {\n var model = sourceHost;\n seriesLayoutBy = model.get('seriesLayoutBy', true);\n sourceHeader = model.get('sourceHeader', true);\n dimensions = model.get('dimensions', true);\n }\n\n return {\n seriesLayoutBy: seriesLayoutBy,\n sourceHeader: sourceHeader,\n dimensions: dimensions\n };\n };\n\n return SourceManager;\n}();\n\nexport { SourceManager };\nexport function disableTransformOptionMerge(datasetModel) {\n var transformOption = datasetModel.option.transform;\n transformOption && setAsPrimitive(datasetModel.option.transform);\n}\n\nfunction isSeries(sourceHost) {\n return sourceHost.mainType === 'series';\n}\n\nfunction doThrow(errMsg) {\n throw new Error(errMsg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper';\nimport { getRandomIdBase } from '../../util/number';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n var nameFontColor = textStyle.color || '#6e7079';\n var nameFontSize = textStyle.fontSize || 12;\n var nameFontWeight = textStyle.fontWeight || '400';\n var valueFontColor = textStyle.color || '#464646';\n var valueFontSize = textStyle.fontSize || 14;\n var valueFontWeight = textStyle.fontWeight || '900';\n\n if (renderMode === 'html') {\n return {\n nameStyle: \"font-size:\" + nameFontSize + \"px;color:\" + nameFontColor + \";font-weight:\" + nameFontWeight,\n valueStyle: \"font-size:\" + valueFontSize + \"px;color:\" + valueFontColor + \";font-weight:\" + valueFontWeight\n };\n } else {\n return {\n nameStyle: {\n fontSize: nameFontSize,\n fill: nameFontColor,\n fontWeight: nameFontWeight\n },\n valueStyle: {\n fontSize: valueFontSize,\n fill: valueFontColor,\n fontWeight: valueFontWeight\n }\n };\n }\n}\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\nexport function createTooltipMarkup(type, option) {\n option.type = type;\n return option;\n}\n\nfunction getBuilder(fragment) {\n return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\n}\n\nvar builderMap = {\n section: {\n planLayout: function (fragment) {\n var subBlockLen = fragment.blocks.length;\n var thisBlockHasInnerGap = subBlockLen > 1 || subBlockLen > 0 && !fragment.noHeader;\n var thisGapLevelBetweenSubBlocks = 0;\n each(fragment.blocks, function (subBlock) {\n getBuilder(subBlock).planLayout(subBlock);\n var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\n\n if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\n thisGapLevelBetweenSubBlocks = subGapLevel + (thisBlockHasInnerGap && (!subGapLevel || subBlock.type === 'section' && !subBlock.noHeader) ? 1 : 0);\n }\n });\n fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\n },\n build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n var noHeader = fragment.noHeader;\n var gaps = getGap(fragment);\n var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html, toolTipTextStyle);\n\n if (noHeader) {\n return subMarkupText;\n }\n\n var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n if (ctx.renderMode === 'richText') {\n return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n } else {\n return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n }\n }\n },\n nameValue: {\n planLayout: function (fragment) {\n fragment.__gapLevelBetweenSubBlocks = 0;\n },\n build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n var renderMode = ctx.renderMode;\n var noName = fragment.noName;\n var noValue = fragment.noValue;\n var noMarker = !fragment.markerType;\n var name = fragment.name;\n var value = fragment.value;\n var useUTC = ctx.useUTC;\n\n if (noName && noValue) {\n return;\n }\n\n var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n var valueTypeOption = fragment.valueType;\n var readableValueList = noValue ? [] : isArray(value) ? map(value, function (val, idx) {\n return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n }) : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)];\n var valueAlignRight = !noMarker || !noName;\n var valueCloseToMarker = !noMarker && noName;\n\n var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n nameStyle = _a.nameStyle,\n valueStyle = _a.valueStyle;\n\n return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n }\n }\n};\n\nfunction buildSubBlocks(ctx, fragment, topMarginForOuterGap, tooltipTextStyle) {\n var subMarkupTextList = [];\n var subBlocks = fragment.blocks || [];\n assert(!subBlocks || isArray(subBlocks));\n subBlocks = subBlocks || [];\n var orderMode = ctx.orderMode;\n\n if (fragment.sortBlocks && orderMode) {\n subBlocks = subBlocks.slice();\n var orderMap = {\n valueAsc: 'asc',\n valueDesc: 'desc'\n };\n\n if (hasOwn(orderMap, orderMode)) {\n var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n subBlocks.sort(function (a, b) {\n return comparator_1.evaluate(a.sortParam, b.sortParam);\n });\n } else if (orderMode === 'seriesDesc') {\n subBlocks.reverse();\n }\n }\n\n var gaps = getGap(fragment);\n each(subBlocks, function (subBlock, idx) {\n var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0, tooltipTextStyle);\n subMarkupText != null && subMarkupTextList.push(subMarkupText);\n });\n\n if (!subMarkupTextList.length) {\n return;\n }\n\n return ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\n}\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n if (!fragment) {\n return;\n }\n\n var builder = getBuilder(fragment);\n builder.planLayout(fragment);\n var ctx = {\n useUTC: useUTC,\n renderMode: renderMode,\n orderMode: orderMode,\n markupStyleCreator: markupStyleCreator\n };\n return builder.build(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(fragment) {\n var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\n return {\n html: HTML_GAPS[gapLevelBetweenSubBlocks],\n richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\n };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n var clearfix = '<div style=\"clear:both\"></div>';\n var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n var paddingStr = valueCloseToMarker ? '10px' : '20px';\n var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" + map(valueList, function (value) {\n return encodeHTML(value);\n }).join('&nbsp;&nbsp;') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker, style) {\n var styles = [style];\n var paddingLeft = valueCloseToMarker ? 10 : 20;\n alignRight && styles.push({\n padding: [0, 0, 0, paddingLeft],\n align: 'right'\n });\n return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join(' '), styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n var style = series.getData().getItemVisual(dataIndex, 'style');\n var color = style[series.visualDrawType];\n return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n var padding = model.get('padding');\n return padding != null ? padding : renderMode === 'richText' ? [8, 10] : 10;\n}\n\nvar TooltipMarkupStyleCreator = function () {\n function TooltipMarkupStyleCreator() {\n this.richTextStyles = {};\n this._nextStyleNameId = getRandomIdBase();\n }\n\n TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n return '__EC_aUTo_' + this._nextStyleNameId++;\n };\n\n TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n var marker = getTooltipMarker({\n color: colorStr,\n type: markerType,\n renderMode: renderMode,\n markerId: markerId\n });\n\n if (isString(marker)) {\n return marker;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n assert(markerId);\n }\n\n this.richTextStyles[markerId] = marker.style;\n return marker.content;\n }\n };\n\n TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n var finalStl = {};\n\n if (isArray(styles)) {\n each(styles, function (stl) {\n return extend(finalStl, stl);\n });\n } else {\n extend(finalStl, styles);\n }\n\n var styleName = this._generateStyleName();\n\n this.richTextStyles[styleName] = finalStl;\n return \"{\" + styleName + \"|\" + text + \"}\";\n };\n\n return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { trim, isArray, each, reduce } from 'zrender/lib/core/util';\nimport { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isNameSpecified } from '../../util/model';\nexport function defaultSeriesFormatTooltip(opt) {\n var series = opt.series;\n var dataIndex = opt.dataIndex;\n var multipleSeries = opt.multipleSeries;\n var data = series.getData();\n var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\n var tooltipDimLen = tooltipDims.length;\n var value = series.getRawValue(dataIndex);\n var isValueArr = isArray(value);\n var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\n var inlineValue;\n var inlineValueType;\n var subBlocks;\n var sortParam;\n\n if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {\n var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\n inlineValue = formatArrResult.inlineValues;\n inlineValueType = formatArrResult.inlineValueTypes;\n subBlocks = formatArrResult.blocks;\n sortParam = formatArrResult.inlineValues[0];\n } else if (tooltipDimLen) {\n var dimInfo = data.getDimensionInfo(tooltipDims[0]);\n sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\n inlineValueType = dimInfo.type;\n } else {\n sortParam = inlineValue = isValueArr ? value[0] : value;\n }\n\n var seriesNameSpecified = isNameSpecified(series);\n var seriesName = seriesNameSpecified && series.name || '';\n var itemName = data.getName(dataIndex);\n var inlineName = multipleSeries ? seriesName : itemName;\n return createTooltipMarkup('section', {\n header: seriesName,\n noHeader: multipleSeries || !seriesNameSpecified,\n sortParam: sortParam,\n blocks: [createTooltipMarkup('nameValue', {\n markerType: 'item',\n markerColor: markerColor,\n name: inlineName,\n noName: !trim(inlineName),\n value: inlineValue,\n valueType: inlineValueType\n })].concat(subBlocks || [])\n });\n}\n\nfunction formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\n var data = series.getData();\n var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\n var dimItem = data.getDimensionInfo(idx);\n return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n }, false);\n var inlineValues = [];\n var inlineValueTypes = [];\n var blocks = [];\n tooltipDims.length ? each(tooltipDims, function (dim) {\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n }) : each(value, setEachItem);\n\n function setEachItem(val, dim) {\n var dimInfo = data.getDimensionInfo(dim);\n\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n return;\n }\n\n if (isValueMultipleLine) {\n blocks.push(createTooltipMarkup('nameValue', {\n markerType: 'subItem',\n markerColor: colorStr,\n name: dimInfo.displayName,\n value: val,\n valueType: dimInfo.type\n }));\n } else {\n inlineValues.push(val);\n inlineValueTypes.push(dimInfo.type);\n }\n }\n\n return {\n inlineValues: inlineValues,\n inlineValueTypes: inlineValueTypes,\n blocks: blocks\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends, __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport * as modelUtil from '../util/model';\nimport ComponentModel from './Component';\nimport { PaletteMixin } from './mixin/palette';\nimport { DataFormatMixin } from '../model/mixin/dataFormat';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport { createTask } from '../core/task';\nimport { mountExtend } from '../util/clazz';\nimport { SourceManager } from '../data/helper/sourceManager';\nimport { defaultSeriesFormatTooltip } from '../component/tooltip/seriesFormatTooltip';\nvar inner = modelUtil.makeInner();\n\nfunction getSelectionKey(data, dataIndex) {\n return data.getName(dataIndex) || data.getId(dataIndex);\n}\n\nvar SeriesModel = function (_super) {\n __extends(SeriesModel, _super);\n\n function SeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this._selectedDataIndicesMap = {};\n return _this;\n }\n\n SeriesModel.prototype.init = function (option, parentModel, ecModel) {\n this.seriesIndex = this.componentIndex;\n this.dataTask = createTask({\n count: dataTaskCount,\n reset: dataTaskReset\n });\n this.dataTask.context = {\n model: this\n };\n this.mergeDefaultAndTheme(option, ecModel);\n var sourceManager = inner(this).sourceManager = new SourceManager(this);\n sourceManager.prepareSource();\n var data = this.getInitialData(option, ecModel);\n wrapData(data, this);\n this.dataTask.context.data = data;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(data, 'getInitialData returned invalid data.');\n }\n\n inner(this).dataBeforeProcessed = data;\n autoSeriesName(this);\n\n this._initSelectedMapFromData(data);\n };\n\n SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n var layoutMode = fetchLayoutMode(this);\n var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n var themeSubType = this.subType;\n\n if (ComponentModel.hasClass(themeSubType)) {\n themeSubType += 'Series';\n }\n\n zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n zrUtil.merge(option, this.getDefaultOption());\n modelUtil.defaultEmphasis(option, 'label', ['show']);\n this.fillDataTextStyle(option.data);\n\n if (layoutMode) {\n mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n };\n\n SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\n newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n this.fillDataTextStyle(newSeriesOption.data);\n var layoutMode = fetchLayoutMode(this);\n\n if (layoutMode) {\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n }\n\n var sourceManager = inner(this).sourceManager;\n sourceManager.dirty();\n sourceManager.prepareSource();\n var data = this.getInitialData(newSeriesOption, ecModel);\n wrapData(data, this);\n this.dataTask.dirty();\n this.dataTask.context.data = data;\n inner(this).dataBeforeProcessed = data;\n autoSeriesName(this);\n\n this._initSelectedMapFromData(data);\n };\n\n SeriesModel.prototype.fillDataTextStyle = function (data) {\n if (data && !zrUtil.isTypedArray(data)) {\n var props = ['show'];\n\n for (var i = 0; i < data.length; i++) {\n if (data[i] && data[i].label) {\n modelUtil.defaultEmphasis(data[i], 'label', props);\n }\n }\n }\n };\n\n SeriesModel.prototype.getInitialData = function (option, ecModel) {\n return;\n };\n\n SeriesModel.prototype.appendData = function (params) {\n var data = this.getRawData();\n data.appendData(params.data);\n };\n\n SeriesModel.prototype.getData = function (dataType) {\n var task = getCurrentTask(this);\n\n if (task) {\n var data = task.context.data;\n return dataType == null ? data : data.getLinkedData(dataType);\n } else {\n return inner(this).data;\n }\n };\n\n SeriesModel.prototype.getAllData = function () {\n var mainData = this.getData();\n return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{\n data: mainData\n }];\n };\n\n SeriesModel.prototype.setData = function (data) {\n var task = getCurrentTask(this);\n\n if (task) {\n var context = task.context;\n context.outputData = data;\n\n if (task !== this.dataTask) {\n context.data = data;\n }\n }\n\n inner(this).data = data;\n };\n\n SeriesModel.prototype.getSource = function () {\n return inner(this).sourceManager.getSource();\n };\n\n SeriesModel.prototype.getRawData = function () {\n return inner(this).dataBeforeProcessed;\n };\n\n SeriesModel.prototype.getBaseAxis = function () {\n var coordSys = this.coordinateSystem;\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n };\n\n SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n return defaultSeriesFormatTooltip({\n series: this,\n dataIndex: dataIndex,\n multipleSeries: multipleSeries\n });\n };\n\n SeriesModel.prototype.isAnimationEnabled = function () {\n if (env.node) {\n return false;\n }\n\n var animationEnabled = this.getShallow('animation');\n\n if (animationEnabled) {\n if (this.getData().count() > this.getShallow('animationThreshold')) {\n animationEnabled = false;\n }\n }\n\n return !!animationEnabled;\n };\n\n SeriesModel.prototype.restoreData = function () {\n this.dataTask.dirty();\n };\n\n SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\n var ecModel = this.ecModel;\n var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n if (!color) {\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n }\n\n return color;\n };\n\n SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\n return this.getRawData().mapDimensionsAll(coordDim);\n };\n\n SeriesModel.prototype.getProgressive = function () {\n return this.get('progressive');\n };\n\n SeriesModel.prototype.getProgressiveThreshold = function () {\n return this.get('progressiveThreshold');\n };\n\n SeriesModel.prototype.select = function (innerDataIndices, dataType) {\n this._innerSelect(this.getData(dataType), innerDataIndices);\n };\n\n SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\n var selectedMap = this.option.selectedMap;\n\n if (!selectedMap) {\n return;\n }\n\n var data = this.getData(dataType);\n\n for (var i = 0; i < innerDataIndices.length; i++) {\n var dataIndex = innerDataIndices[i];\n var nameOrId = getSelectionKey(data, dataIndex);\n selectedMap[nameOrId] = false;\n this._selectedDataIndicesMap[nameOrId] = -1;\n }\n };\n\n SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\n var tmpArr = [];\n\n for (var i = 0; i < innerDataIndices.length; i++) {\n tmpArr[0] = innerDataIndices[i];\n this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType);\n }\n };\n\n SeriesModel.prototype.getSelectedDataIndices = function () {\n var selectedDataIndicesMap = this._selectedDataIndicesMap;\n var nameOrIds = zrUtil.keys(selectedDataIndicesMap);\n var dataIndices = [];\n\n for (var i = 0; i < nameOrIds.length; i++) {\n var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\n\n if (dataIndex >= 0) {\n dataIndices.push(dataIndex);\n }\n }\n\n return dataIndices;\n };\n\n SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\n var selectedMap = this.option.selectedMap;\n\n if (!selectedMap) {\n return false;\n }\n\n var data = this.getData(dataType);\n var nameOrId = getSelectionKey(data, dataIndex);\n return selectedMap[nameOrId] || false;\n };\n\n SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\n var _a, _b;\n\n var selectedMode = this.option.selectedMode;\n var len = innerDataIndices.length;\n\n if (!selectedMode || !len) {\n return;\n }\n\n if (selectedMode === 'multiple') {\n var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\n\n for (var i = 0; i < len; i++) {\n var dataIndex = innerDataIndices[i];\n var nameOrId = getSelectionKey(data, dataIndex);\n selectedMap[nameOrId] = true;\n this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\n }\n } else if (selectedMode === 'single' || selectedMode === true) {\n var lastDataIndex = innerDataIndices[len - 1];\n var nameOrId = getSelectionKey(data, lastDataIndex);\n this.option.selectedMap = (_a = {}, _a[nameOrId] = true, _a);\n this._selectedDataIndicesMap = (_b = {}, _b[nameOrId] = data.getRawIndex(lastDataIndex), _b);\n }\n };\n\n SeriesModel.prototype._initSelectedMapFromData = function (data) {\n if (this.option.selectedMap) {\n return;\n }\n\n var dataIndices = [];\n\n if (data.hasItemOption) {\n data.each(function (idx) {\n var rawItem = data.getRawDataItem(idx);\n\n if (typeof rawItem === 'object' && rawItem.selected) {\n dataIndices.push(idx);\n }\n });\n }\n\n if (dataIndices.length > 0) {\n this._innerSelect(data, dataIndices);\n }\n };\n\n SeriesModel.registerClass = function (clz) {\n return ComponentModel.registerClass(clz);\n };\n\n SeriesModel.protoInitialize = function () {\n var proto = SeriesModel.prototype;\n proto.type = 'series.__base__';\n proto.seriesIndex = 0;\n proto.useColorPaletteOnData = false;\n proto.ignoreStyleOnData = false;\n proto.hasSymbolVisual = false;\n proto.defaultSymbol = 'circle';\n proto.visualStyleAccessPath = 'itemStyle';\n proto.visualDrawType = 'fill';\n }();\n\n return SeriesModel;\n}(ComponentModel);\n\nzrUtil.mixin(SeriesModel, DataFormatMixin);\nzrUtil.mixin(SeriesModel, PaletteMixin);\nmountExtend(SeriesModel, ComponentModel);\n\nfunction autoSeriesName(seriesModel) {\n var name = seriesModel.name;\n\n if (!modelUtil.isNameSpecified(seriesModel)) {\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\n }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n var data = seriesModel.getRawData();\n var dataDims = data.mapDimensionsAll('seriesName');\n var nameArr = [];\n zrUtil.each(dataDims, function (dataDim) {\n var dimInfo = data.getDimensionInfo(dataDim);\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\n });\n return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n var seriesModel = context.model;\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\n return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n if (context.outputData && param.end > context.outputData.count()) {\n context.model.getRawData().cloneShallow(context.outputData);\n }\n}\n\nfunction wrapData(data, seriesModel) {\n zrUtil.each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\n data.wrapMethod(methodName, zrUtil.curry(onDataChange, seriesModel));\n });\n}\n\nfunction onDataChange(seriesModel, newList) {\n var task = getCurrentTask(seriesModel);\n\n if (task) {\n task.setOutputEnd((newList || this).count());\n }\n\n return newList;\n}\n\nfunction getCurrentTask(seriesModel) {\n var scheduler = (seriesModel.ecModel || {}).scheduler;\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n if (pipeline) {\n var task = pipeline.currentTask;\n\n if (task) {\n var agentStubMap = task.agentStubMap;\n\n if (agentStubMap) {\n task = agentStubMap.get(seriesModel.uid);\n }\n }\n\n return task;\n }\n}\n\nexport default SeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\n\nvar ComponentView = function () {\n function ComponentView() {\n this.group = new Group();\n this.uid = componentUtil.getUID('viewComponent');\n }\n\n ComponentView.prototype.init = function (ecModel, api) {};\n\n ComponentView.prototype.render = function (model, ecModel, api, payload) {};\n\n ComponentView.prototype.dispose = function (ecModel, api) {};\n\n ComponentView.prototype.updateView = function (model, ecModel, api, payload) {};\n\n ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {};\n\n ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {};\n\n ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {};\n\n return ComponentView;\n}();\n\n;\nclazzUtil.enableClassExtend(ComponentView);\nclazzUtil.enableClassManagement(ComponentView);\nexport default ComponentView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nexport default function createRenderPlanner() {\n var inner = makeInner();\n return function (seriesModel) {\n var fields = inner(seriesModel);\n var pipelineContext = seriesModel.pipelineContext;\n var originalLarge = !!fields.large;\n var originalProgressive = !!fields.progressiveRender;\n var large = fields.large = !!(pipelineContext && pipelineContext.large);\n var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\n return !!(originalLarge !== large || originalProgressive !== progressive) && 'reset';\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\nimport * as modelUtil from '../util/model';\nimport { enterEmphasis, leaveEmphasis, getHighlightDigit } from '../util/states';\nimport { createTask } from '../core/task';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nvar ChartView = function () {\n function ChartView() {\n this.group = new Group();\n this.uid = componentUtil.getUID('viewChart');\n this.renderTask = createTask({\n plan: renderTaskPlan,\n reset: renderTaskReset\n });\n this.renderTask.context = {\n view: this\n };\n }\n\n ChartView.prototype.init = function (ecModel, api) {};\n\n ChartView.prototype.render = function (seriesModel, ecModel, api, payload) {};\n\n ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n toggleHighlight(seriesModel.getData(), payload, 'emphasis');\n };\n\n ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n toggleHighlight(seriesModel.getData(), payload, 'normal');\n };\n\n ChartView.prototype.remove = function (ecModel, api) {\n this.group.removeAll();\n };\n\n ChartView.prototype.dispose = function (ecModel, api) {};\n\n ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\n this.render(seriesModel, ecModel, api, payload);\n };\n\n ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\n this.render(seriesModel, ecModel, api, payload);\n };\n\n ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\n this.render(seriesModel, ecModel, api, payload);\n };\n\n ChartView.markUpdateMethod = function (payload, methodName) {\n inner(payload).updateMethod = methodName;\n };\n\n ChartView.protoInitialize = function () {\n var proto = ChartView.prototype;\n proto.type = 'chart';\n }();\n\n return ChartView;\n}();\n\n;\n\nfunction elSetState(el, state, highlightDigit) {\n if (el) {\n (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\n }\n}\n\nfunction toggleHighlight(data, payload, state) {\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null;\n\n if (dataIndex != null) {\n each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\n });\n } else {\n data.eachItemGraphicEl(function (el) {\n elSetState(el, state, highlightDigit);\n });\n }\n}\n\nclazzUtil.enableClassExtend(ChartView, ['dispose']);\nclazzUtil.enableClassManagement(ChartView);\n\nfunction renderTaskPlan(context) {\n return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n var seriesModel = context.model;\n var ecModel = context.ecModel;\n var api = context.api;\n var payload = context.payload;\n var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n var view = context.view;\n var updateMethod = payload && inner(payload).updateMethod;\n var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod : 'render';\n\n if (methodName !== 'render') {\n view[methodName](seriesModel, ecModel, api, payload);\n }\n\n return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n incrementalPrepareRender: {\n progress: function (params, context) {\n context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n }\n },\n render: {\n forceFirstProgress: true,\n progress: function (params, context) {\n context.view.render(context.model, context.ecModel, context.api, context.payload);\n }\n }\n};\nexport default ChartView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n;\nexport function throttle(fn, delay, debounce) {\n var currCall;\n var lastCall = 0;\n var lastExec = 0;\n var timer = null;\n var diff;\n var scope;\n var args;\n var debounceNextCall;\n delay = delay || 0;\n\n function exec() {\n lastExec = new Date().getTime();\n timer = null;\n fn.apply(scope, args || []);\n }\n\n var cb = function () {\n var cbArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n cbArgs[_i] = arguments[_i];\n }\n\n currCall = new Date().getTime();\n scope = this;\n args = cbArgs;\n var thisDelay = debounceNextCall || delay;\n var thisDebounce = debounceNextCall || debounce;\n debounceNextCall = null;\n diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n clearTimeout(timer);\n\n if (thisDebounce) {\n timer = setTimeout(exec, thisDelay);\n } else {\n if (diff >= 0) {\n exec();\n } else {\n timer = setTimeout(exec, -diff);\n }\n }\n\n lastCall = currCall;\n };\n\n cb.clear = function () {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n };\n\n cb.debounceNextCall = function (debounceDelay) {\n debounceNextCall = debounceDelay;\n };\n\n return cb;\n}\nexport function createOrUpdate(obj, fnAttr, rate, throttleType) {\n var fn = obj[fnAttr];\n\n if (!fn) {\n return;\n }\n\n var originFn = fn[ORIGIN_METHOD] || fn;\n var lastThrottleType = fn[THROTTLE_TYPE];\n var lastRate = fn[RATE];\n\n if (lastRate !== rate || lastThrottleType !== throttleType) {\n if (rate == null || !throttleType) {\n return obj[fnAttr] = originFn;\n }\n\n fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n fn[ORIGIN_METHOD] = originFn;\n fn[THROTTLE_TYPE] = throttleType;\n fn[RATE] = rate;\n }\n\n return fn;\n}\nexport function clear(obj, fnAttr) {\n var fn = obj[fnAttr];\n\n if (fn && fn[ORIGIN_METHOD]) {\n obj[fnAttr] = fn[ORIGIN_METHOD];\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction, extend, createHashMap } from 'zrender/lib/core/util';\nimport makeStyleMapper from '../model/mixin/makeStyleMapper';\nimport { ITEM_STYLE_KEY_MAP } from '../model/mixin/itemStyle';\nimport { LINE_STYLE_KEY_MAP } from '../model/mixin/lineStyle';\nimport Model from '../model/Model';\nimport { makeInner } from '../util/model';\nvar inner = makeInner();\nvar defaultStyleMappers = {\n itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\n lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\n};\nvar defaultColorKey = {\n lineStyle: 'stroke',\n itemStyle: 'fill'\n};\n\nfunction getStyleMapper(seriesModel, stylePath) {\n var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath];\n\n if (!styleMapper) {\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n return defaultStyleMappers.itemStyle;\n }\n\n return styleMapper;\n}\n\nfunction getDefaultColorKey(seriesModel, stylePath) {\n var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath];\n\n if (!colorKey) {\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n return 'fill';\n }\n\n return colorKey;\n}\n\nvar seriesStyleTask = {\n createOnAllSeries: true,\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n var styleModel = seriesModel.getModel(stylePath);\n var getStyle = getStyleMapper(seriesModel, stylePath);\n var globalStyle = getStyle(styleModel);\n var decalOption = styleModel.getShallow('decal');\n\n if (decalOption) {\n data.setVisual('decal', decalOption);\n decalOption.dirty = true;\n }\n\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\n var color = globalStyle[colorKey];\n var colorCallback = isFunction(color) ? color : null;\n\n if (!globalStyle[colorKey] || colorCallback) {\n globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\n data.setVisual('colorFromPalette', true);\n }\n\n data.setVisual('style', globalStyle);\n data.setVisual('drawType', colorKey);\n\n if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\n data.setVisual('colorFromPalette', false);\n return {\n dataEach: function (data, idx) {\n var dataParams = seriesModel.getDataParams(idx);\n var itemStyle = extend({}, globalStyle);\n itemStyle[colorKey] = colorCallback(dataParams);\n data.setItemVisual(idx, 'style', itemStyle);\n }\n };\n }\n }\n};\nvar sharedModel = new Model();\nvar dataStyleTask = {\n createOnAllSeries: true,\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n var getStyle = getStyleMapper(seriesModel, stylePath);\n var colorKey = data.getVisual('drawType');\n return {\n dataEach: data.hasItemOption ? function (data, idx) {\n var rawItem = data.getRawDataItem(idx);\n\n if (rawItem && rawItem[stylePath]) {\n sharedModel.option = rawItem[stylePath];\n var style = getStyle(sharedModel);\n var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\n extend(existsStyle, style);\n\n if (sharedModel.option.decal) {\n data.setItemVisual(idx, 'decal', sharedModel.option.decal);\n sharedModel.option.decal.dirty = true;\n }\n\n if (colorKey in style) {\n data.setItemVisual(idx, 'colorFromPalette', false);\n }\n }\n } : null\n };\n }\n};\nvar dataColorPaletteTask = {\n performRawSeries: true,\n overallReset: function (ecModel) {\n var paletteScopeGroupByType = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n if (!seriesModel.useColorPaletteOnData) {\n return;\n }\n\n var colorScope = paletteScopeGroupByType.get(seriesModel.type);\n\n if (!colorScope) {\n colorScope = {};\n paletteScopeGroupByType.set(seriesModel.type, colorScope);\n }\n\n inner(seriesModel).scope = colorScope;\n });\n ecModel.eachSeries(function (seriesModel) {\n if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var dataAll = seriesModel.getRawData();\n var idxMap = {};\n var data = seriesModel.getData();\n var colorScope = inner(seriesModel).scope;\n var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\n data.each(function (idx) {\n var rawIdx = data.getRawIndex(idx);\n idxMap[rawIdx] = idx;\n });\n dataAll.each(function (rawIdx) {\n var idx = idxMap[rawIdx];\n var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\n\n if (fromPalette) {\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n var name_1 = dataAll.getName(rawIdx) || rawIdx + '';\n var dataCount = dataAll.count();\n itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\n }\n });\n });\n }\n};\nexport { seriesStyleTask, dataStyleTask, dataColorPaletteTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../util/graphic';\nvar PI = Math.PI;\nexport default function defaultLoading(api, opts) {\n opts = opts || {};\n zrUtil.defaults(opts, {\n text: 'loading',\n textColor: '#000',\n fontSize: 12,\n fontWeight: 'normal',\n fontStyle: 'normal',\n fontFamily: 'sans-serif',\n maskColor: 'rgba(255, 255, 255, 0.8)',\n showSpinner: true,\n color: '#5470c6',\n spinnerRadius: 10,\n lineWidth: 5,\n zlevel: 0\n });\n var group = new graphic.Group();\n var mask = new graphic.Rect({\n style: {\n fill: opts.maskColor\n },\n zlevel: opts.zlevel,\n z: 10000\n });\n group.add(mask);\n var textContent = new graphic.Text({\n style: {\n text: opts.text,\n fill: opts.textColor,\n fontSize: opts.fontSize,\n fontWeight: opts.fontWeight,\n fontStyle: opts.fontStyle,\n fontFamily: opts.fontFamily\n }\n });\n var labelRect = new graphic.Rect({\n style: {\n fill: 'none'\n },\n textContent: textContent,\n textConfig: {\n position: 'right',\n distance: 10\n },\n zlevel: opts.zlevel,\n z: 10001\n });\n group.add(labelRect);\n var arc;\n\n if (opts.showSpinner) {\n arc = new graphic.Arc({\n shape: {\n startAngle: -PI / 2,\n endAngle: -PI / 2 + 0.1,\n r: opts.spinnerRadius\n },\n style: {\n stroke: opts.color,\n lineCap: 'round',\n lineWidth: opts.lineWidth\n },\n zlevel: opts.zlevel,\n z: 10001\n });\n arc.animateShape(true).when(1000, {\n endAngle: PI * 3 / 2\n }).start('circularInOut');\n arc.animateShape(true).when(1000, {\n startAngle: PI * 3 / 2\n }).delay(300).start('circularInOut');\n group.add(arc);\n }\n\n group.resize = function () {\n var textWidth = textContent.getBoundingRect().width;\n var r = opts.showSpinner ? opts.spinnerRadius : 0;\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r);\n var cy = api.getHeight() / 2;\n opts.showSpinner && arc.setShape({\n cx: cx,\n cy: cy\n });\n labelRect.setShape({\n x: cx - r,\n y: cy - r,\n width: r * 2,\n height: r * 2\n });\n mask.setShape({\n x: 0,\n y: 0,\n width: api.getWidth(),\n height: api.getHeight()\n });\n };\n\n group.resize();\n return group;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map, isFunction, createHashMap, noop, assert } from 'zrender/lib/core/util';\nimport { createTask } from './task';\nimport { getUID } from '../util/component';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport { normalizeToArray } from '../util/model';\n;\n\nvar Scheduler = function () {\n function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n this._stageTaskMap = createHashMap();\n this.ecInstance = ecInstance;\n this.api = api;\n dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n visualHandlers = this._visualHandlers = visualHandlers.slice();\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n }\n\n Scheduler.prototype.restoreData = function (ecModel, payload) {\n ecModel.restoreData(payload);\n\n this._stageTaskMap.each(function (taskRecord) {\n var overallTask = taskRecord.overallTask;\n overallTask && overallTask.dirty();\n });\n };\n\n Scheduler.prototype.getPerformArgs = function (task, isBlock) {\n if (!task.__pipeline) {\n return;\n }\n\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n var pCtx = pipeline.context;\n var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n var step = incremental ? pipeline.step : null;\n var modDataCount = pCtx && pCtx.modDataCount;\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n return {\n step: step,\n modBy: modBy,\n modDataCount: modDataCount\n };\n };\n\n Scheduler.prototype.getPipeline = function (pipelineId) {\n return this._pipelineMap.get(pipelineId);\n };\n\n Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\n var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n var data = seriesModel.getData();\n var dataLen = data.count();\n var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n seriesModel.pipelineContext = pipeline.context = {\n progressiveRender: progressiveRender,\n modDataCount: modDataCount,\n large: large\n };\n };\n\n Scheduler.prototype.restorePipelines = function (ecModel) {\n var scheduler = this;\n var pipelineMap = scheduler._pipelineMap = createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var progressive = seriesModel.getProgressive();\n var pipelineId = seriesModel.uid;\n pipelineMap.set(pipelineId, {\n id: pipelineId,\n head: null,\n tail: null,\n threshold: seriesModel.getProgressiveThreshold(),\n progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n blockIndex: -1,\n step: Math.round(progressive || 700),\n count: 0\n });\n\n scheduler._pipe(seriesModel, seriesModel.dataTask);\n });\n };\n\n Scheduler.prototype.prepareStageTasks = function () {\n var stageTaskMap = this._stageTaskMap;\n var ecModel = this.api.getModel();\n var api = this.api;\n each(this._allHandlers, function (handler) {\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\n }\n\n assert(!(handler.reset && handler.overallReset), errMsg);\n handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\n handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\n }, this);\n };\n\n Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\n var renderTask = view.renderTask;\n var context = renderTask.context;\n context.model = model;\n context.ecModel = ecModel;\n context.api = api;\n renderTask.__block = !view.incrementalPrepareRender;\n\n this._pipe(model, renderTask);\n };\n\n Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\n this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, {\n block: true\n });\n };\n\n Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\n this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\n };\n\n Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\n opt = opt || {};\n var unfinished = false;\n var scheduler = this;\n each(stageHandlers, function (stageHandler, idx) {\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n return;\n }\n\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n var overallTask = stageHandlerRecord.overallTask;\n\n if (overallTask) {\n var overallNeedDirty_1;\n var agentStubMap = overallTask.agentStubMap;\n agentStubMap.each(function (stub) {\n if (needSetDirty(opt, stub)) {\n stub.dirty();\n overallNeedDirty_1 = true;\n }\n });\n overallNeedDirty_1 && overallTask.dirty();\n scheduler.updatePayload(overallTask, payload);\n var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\n agentStubMap.each(function (stub) {\n stub.perform(performArgs_1);\n });\n\n if (overallTask.perform(performArgs_1)) {\n unfinished = true;\n }\n } else if (seriesTaskMap) {\n seriesTaskMap.each(function (task, pipelineId) {\n if (needSetDirty(opt, task)) {\n task.dirty();\n }\n\n var performArgs = scheduler.getPerformArgs(task, opt.block);\n performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n scheduler.updatePayload(task, payload);\n\n if (task.perform(performArgs)) {\n unfinished = true;\n }\n });\n }\n });\n\n function needSetDirty(opt, task) {\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n }\n\n this.unfinished = unfinished || this.unfinished;\n };\n\n Scheduler.prototype.performSeriesTasks = function (ecModel) {\n var unfinished;\n ecModel.eachSeries(function (seriesModel) {\n unfinished = seriesModel.dataTask.perform() || unfinished;\n });\n this.unfinished = unfinished || this.unfinished;\n };\n\n Scheduler.prototype.plan = function () {\n this._pipelineMap.each(function (pipeline) {\n var task = pipeline.tail;\n\n do {\n if (task.__block) {\n pipeline.blockIndex = task.__idxInPipeline;\n break;\n }\n\n task = task.getUpstream();\n } while (task);\n });\n };\n\n Scheduler.prototype.updatePayload = function (task, payload) {\n payload !== 'remain' && (task.context.payload = payload);\n };\n\n Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n var scheduler = this;\n var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\n var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\n var seriesType = stageHandler.seriesType;\n var getTargetSeries = stageHandler.getTargetSeries;\n\n if (stageHandler.createOnAllSeries) {\n ecModel.eachRawSeries(create);\n } else if (seriesType) {\n ecModel.eachRawSeriesByType(seriesType, create);\n } else if (getTargetSeries) {\n getTargetSeries(ecModel, api).each(create);\n }\n\n function create(seriesModel) {\n var pipelineId = seriesModel.uid;\n var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({\n plan: seriesTaskPlan,\n reset: seriesTaskReset,\n count: seriesTaskCount\n }));\n task.context = {\n model: seriesModel,\n ecModel: ecModel,\n api: api,\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n plan: stageHandler.plan,\n reset: stageHandler.reset,\n scheduler: scheduler\n };\n\n scheduler._pipe(seriesModel, task);\n }\n };\n\n Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n var scheduler = this;\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({\n reset: overallTaskReset\n });\n overallTask.context = {\n ecModel: ecModel,\n api: api,\n overallReset: stageHandler.overallReset,\n scheduler: scheduler\n };\n var oldAgentStubMap = overallTask.agentStubMap;\n var newAgentStubMap = overallTask.agentStubMap = createHashMap();\n var seriesType = stageHandler.seriesType;\n var getTargetSeries = stageHandler.getTargetSeries;\n var overallProgress = true;\n var shouldOverallTaskDirty = false;\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", ' + 'becuase it will block all streams.';\n }\n\n assert(!stageHandler.createOnAllSeries, errMsg);\n\n if (seriesType) {\n ecModel.eachRawSeriesByType(seriesType, createStub);\n } else if (getTargetSeries) {\n getTargetSeries(ecModel, api).each(createStub);\n } else {\n overallProgress = false;\n each(ecModel.getSeries(), createStub);\n }\n\n function createStub(seriesModel) {\n var pipelineId = seriesModel.uid;\n var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || (shouldOverallTaskDirty = true, createTask({\n reset: stubReset,\n onDirty: stubOnDirty\n })));\n stub.context = {\n model: seriesModel,\n overallProgress: overallProgress\n };\n stub.agent = overallTask;\n stub.__block = overallProgress;\n\n scheduler._pipe(seriesModel, stub);\n }\n\n if (shouldOverallTaskDirty) {\n overallTask.dirty();\n }\n };\n\n Scheduler.prototype._pipe = function (seriesModel, task) {\n var pipelineId = seriesModel.uid;\n\n var pipeline = this._pipelineMap.get(pipelineId);\n\n !pipeline.head && (pipeline.head = task);\n pipeline.tail && pipeline.tail.pipe(task);\n pipeline.tail = task;\n task.__idxInPipeline = pipeline.count++;\n task.__pipeline = pipeline;\n };\n\n Scheduler.wrapStageHandler = function (stageHandler, visualType) {\n if (isFunction(stageHandler)) {\n stageHandler = {\n overallReset: stageHandler,\n seriesType: detectSeriseType(stageHandler)\n };\n }\n\n stageHandler.uid = getUID('stageHandler');\n visualType && (stageHandler.visualType = visualType);\n return stageHandler;\n };\n\n ;\n return Scheduler;\n}();\n\nfunction overallTaskReset(context) {\n context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context) {\n return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n this.agent.dirty();\n this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\n}\n\nfunction seriesTaskReset(context) {\n if (context.useClearVisual) {\n context.data.clearAllVisual();\n }\n\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n return makeSeriesTaskProgress(idx);\n }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n return function (params, context) {\n var data = context.data;\n var resetDefine = context.resetDefines[resetDefineIdx];\n\n if (resetDefine && resetDefine.dataEach) {\n for (var i = params.start; i < params.end; i++) {\n resetDefine.dataEach(data, i);\n }\n } else if (resetDefine && resetDefine.progress) {\n resetDefine.progress(params, data);\n }\n };\n}\n\nfunction seriesTaskCount(context) {\n return context.data.count();\n}\n\nfunction detectSeriseType(legacyFunc) {\n seriesType = null;\n\n try {\n legacyFunc(ecModelMock, apiMock);\n } catch (e) {}\n\n return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n if (cond.mainType === 'series' && cond.subType) {\n seriesType = cond.subType;\n }\n};\n\nfunction mockMethods(target, Clz) {\n for (var name_1 in Clz.prototype) {\n target[name_1] = noop;\n }\n}\n\nexport default Scheduler;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nexport default {\n color: colorAll,\n colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar contrastColor = '#B9B8CE';\nvar backgroundColor = '#100C2A';\n\nvar axisCommon = function () {\n return {\n axisLine: {\n lineStyle: {\n color: contrastColor\n }\n },\n splitLine: {\n lineStyle: {\n color: '#484753'\n }\n },\n splitArea: {\n areaStyle: {\n color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n }\n },\n minorSplitLine: {\n lineStyle: {\n color: '#20203B'\n }\n }\n };\n};\n\nvar colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff'];\nvar theme = {\n darkMode: true,\n color: colorPalette,\n backgroundColor: backgroundColor,\n axisPointer: {\n lineStyle: {\n color: '#817f91'\n },\n crossStyle: {\n color: '#817f91'\n },\n label: {\n color: '#fff'\n }\n },\n legend: {\n textStyle: {\n color: contrastColor\n }\n },\n textStyle: {\n color: contrastColor\n },\n title: {\n textStyle: {\n color: '#EEF1FA'\n },\n subtextStyle: {\n color: '#B9B8CE'\n }\n },\n toolbox: {\n iconStyle: {\n borderColor: contrastColor\n }\n },\n dataZoom: {\n borderColor: '#71708A',\n textStyle: {\n color: contrastColor\n },\n brushStyle: {\n color: 'rgba(135,163,206,0.3)'\n },\n handleStyle: {\n color: '#353450',\n borderColor: '#C5CBE3'\n },\n moveHandleStyle: {\n color: '#B0B6C3',\n opacity: 0.3\n },\n fillerColor: 'rgba(135,163,206,0.2)',\n emphasis: {\n handleStyle: {\n borderColor: '#91B7F2',\n color: '#4D587D'\n },\n moveHandleStyle: {\n color: '#636D9A',\n opacity: 0.7\n }\n },\n dataBackground: {\n lineStyle: {\n color: '#71708A',\n width: 1\n },\n areaStyle: {\n color: '#71708A'\n }\n },\n selectedDataBackground: {\n lineStyle: {\n color: '#87A3CE'\n },\n areaStyle: {\n color: '#87A3CE'\n }\n }\n },\n visualMap: {\n textStyle: {\n color: contrastColor\n }\n },\n timeline: {\n lineStyle: {\n color: contrastColor\n },\n label: {\n color: contrastColor\n },\n controlStyle: {\n color: contrastColor,\n borderColor: contrastColor\n }\n },\n calendar: {\n itemStyle: {\n color: backgroundColor\n },\n dayLabel: {\n color: contrastColor\n },\n monthLabel: {\n color: contrastColor\n },\n yearLabel: {\n color: contrastColor\n }\n },\n timeAxis: axisCommon(),\n logAxis: axisCommon(),\n valueAxis: axisCommon(),\n categoryAxis: axisCommon(),\n line: {\n symbol: 'circle'\n },\n graph: {\n color: colorPalette\n },\n gauge: {\n title: {\n color: contrastColor\n },\n axisLine: {\n lineStyle: {\n color: [[1, 'rgba(207,212,219,0.2)']]\n }\n },\n axisLabel: {\n color: contrastColor\n },\n detail: {\n color: '#EEF1FA'\n }\n },\n candlestick: {\n itemStyle: {\n color: '#f64e56',\n color0: '#54ea92',\n borderColor: '#f64e56',\n borderColor0: '#54ea92'\n }\n }\n};\ntheme.categoryAxis.splitLine.show = false;\nexport default theme;","import { isString } from '../core/util';\nexport function parseXML(svg) {\n if (isString(svg)) {\n var parser = new DOMParser();\n svg = parser.parseFromString(svg, 'text/xml');\n }\n var svgNode = svg;\n if (svgNode.nodeType === 9) {\n svgNode = svgNode.firstChild;\n }\n while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n svgNode = svgNode.nextSibling;\n }\n return svgNode;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isString, isArray, each, assert } from 'zrender/lib/core/util';\nimport { parseXML } from 'zrender/lib/tool/parseXML';\nvar storage = createHashMap();\nexport default {\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\n var records;\n\n if (isArray(rawDef)) {\n records = rawDef;\n } else if (rawDef.svg) {\n records = [{\n type: 'svg',\n source: rawDef.svg,\n specialAreas: rawDef.specialAreas\n }];\n } else {\n var geoSource = rawDef.geoJson || rawDef.geoJSON;\n\n if (geoSource && !rawDef.features) {\n rawSpecialAreas = rawDef.specialAreas;\n rawDef = geoSource;\n }\n\n records = [{\n type: 'geoJSON',\n source: rawDef,\n specialAreas: rawSpecialAreas\n }];\n }\n\n each(records, function (record) {\n var type = record.type;\n type === 'geoJson' && (type = record.type = 'geoJSON');\n var parse = parsers[type];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(parse, 'Illegal map type: ' + type);\n }\n\n parse(record);\n });\n return storage.set(mapName, records);\n },\n retrieveMap: function (mapName) {\n return storage.get(mapName);\n }\n};\nvar parsers = {\n geoJSON: function (record) {\n var source = record.source;\n record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n },\n svg: function (record) {\n record.svgXML = parseXML(record.source);\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\n\nvar ECEventProcessor = function () {\n function ECEventProcessor() {}\n\n ECEventProcessor.prototype.normalizeQuery = function (query) {\n var cptQuery = {};\n var dataQuery = {};\n var otherQuery = {};\n\n if (zrUtil.isString(query)) {\n var condCptType = parseClassType(query);\n cptQuery.mainType = condCptType.main || null;\n cptQuery.subType = condCptType.sub || null;\n } else {\n var suffixes_1 = ['Index', 'Name', 'Id'];\n var dataKeys_1 = {\n name: 1,\n dataIndex: 1,\n dataType: 1\n };\n zrUtil.each(query, function (val, key) {\n var reserved = false;\n\n for (var i = 0; i < suffixes_1.length; i++) {\n var propSuffix = suffixes_1[i];\n var suffixPos = key.lastIndexOf(propSuffix);\n\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n var mainType = key.slice(0, suffixPos);\n\n if (mainType !== 'data') {\n cptQuery.mainType = mainType;\n cptQuery[propSuffix.toLowerCase()] = val;\n reserved = true;\n }\n }\n }\n\n if (dataKeys_1.hasOwnProperty(key)) {\n dataQuery[key] = val;\n reserved = true;\n }\n\n if (!reserved) {\n otherQuery[key] = val;\n }\n });\n }\n\n return {\n cptQuery: cptQuery,\n dataQuery: dataQuery,\n otherQuery: otherQuery\n };\n };\n\n ECEventProcessor.prototype.filter = function (eventType, query) {\n var eventInfo = this.eventInfo;\n\n if (!eventInfo) {\n return true;\n }\n\n var targetEl = eventInfo.targetEl;\n var packedEvent = eventInfo.packedEvent;\n var model = eventInfo.model;\n var view = eventInfo.view;\n\n if (!model || !view) {\n return true;\n }\n\n var cptQuery = query.cptQuery;\n var dataQuery = query.dataQuery;\n return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n function check(query, host, prop, propOnHost) {\n return query[prop] == null || host[propOnHost || prop] === query[prop];\n }\n };\n\n ECEventProcessor.prototype.afterTrigger = function () {\n this.eventInfo = null;\n };\n\n return ECEventProcessor;\n}();\n\nexport { ECEventProcessor };\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction } from 'zrender/lib/core/util';\nvar seriesSymbolTask = {\n createOnAllSeries: true,\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n\n if (seriesModel.legendSymbol) {\n data.setVisual('legendSymbol', seriesModel.legendSymbol);\n }\n\n if (!seriesModel.hasSymbolVisual) {\n return;\n }\n\n var symbolType = seriesModel.get('symbol');\n var symbolSize = seriesModel.get('symbolSize');\n var keepAspect = seriesModel.get('symbolKeepAspect');\n var symbolRotate = seriesModel.get('symbolRotate');\n var hasSymbolTypeCallback = isFunction(symbolType);\n var hasSymbolSizeCallback = isFunction(symbolSize);\n var hasSymbolRotateCallback = isFunction(symbolRotate);\n var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\n var seriesSymbol = !hasSymbolTypeCallback && symbolType ? symbolType : seriesModel.defaultSymbol;\n var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\n var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\n data.setVisual({\n legendSymbol: seriesModel.legendSymbol || seriesSymbol,\n symbol: seriesSymbol,\n symbolSize: seriesSymbolSize,\n symbolKeepAspect: keepAspect,\n symbolRotate: seriesSymbolRotate\n });\n\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n function dataEach(data, idx) {\n var rawValue = seriesModel.getRawValue(idx);\n var params = seriesModel.getDataParams(idx);\n hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\n hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\n hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\n }\n\n return {\n dataEach: hasCallback ? dataEach : null\n };\n }\n};\nvar dataSymbolTask = {\n createOnAllSeries: true,\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n if (!seriesModel.hasSymbolVisual) {\n return;\n }\n\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n\n function dataEach(data, idx) {\n var itemModel = data.getItemModel(idx);\n var itemSymbolType = itemModel.getShallow('symbol', true);\n var itemSymbolSize = itemModel.getShallow('symbolSize', true);\n var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\n var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\n\n if (itemSymbolType != null) {\n data.setItemVisual(idx, 'symbol', itemSymbolType);\n }\n\n if (itemSymbolSize != null) {\n data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\n }\n\n if (itemSymbolRotate != null) {\n data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\n }\n\n if (itemSymbolKeepAspect != null) {\n data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\n }\n }\n\n return {\n dataEach: data.hasItemOption ? dataEach : null\n };\n }\n};\nexport { seriesSymbolTask, dataSymbolTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getItemVisualFromData(data, dataIndex, key) {\n switch (key) {\n case 'color':\n var style = data.getItemVisual(dataIndex, 'style');\n return style[data.getVisual('drawType')];\n\n case 'opacity':\n return data.getItemVisual(dataIndex, 'style').opacity;\n\n case 'symbol':\n case 'symbolSize':\n case 'liftZ':\n return data.getItemVisual(dataIndex, key);\n\n default:\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Unknown visual type \" + key);\n }\n\n }\n}\nexport function getVisualFromData(data, key) {\n switch (key) {\n case 'color':\n var style = data.getVisual('style');\n return style[data.getVisual('drawType')];\n\n case 'opacity':\n return data.getVisual('style').opacity;\n\n case 'symbol':\n case 'symbolSize':\n case 'liftZ':\n return data.getVisual(key);\n\n default:\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Unknown visual type \" + key);\n }\n\n }\n}\nexport function setItemVisualFromData(data, dataIndex, key, value) {\n switch (key) {\n case 'color':\n var style = data.ensureUniqueItemVisual(dataIndex, 'style');\n style[data.getVisual('drawType')] = value;\n data.setItemVisual(dataIndex, 'colorFromPalette', false);\n break;\n\n case 'opacity':\n data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\n break;\n\n case 'symbol':\n case 'symbolSize':\n case 'liftZ':\n data.setItemVisual(dataIndex, key, value);\n break;\n\n default:\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\"Unknown visual type \" + key);\n }\n\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Point, Path, Polyline } from '../util/graphic';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { normalizeRadian } from 'zrender/lib/contain/util';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util';\nimport { invert } from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\n\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n var width = rect.width;\n var height = rect.height;\n\n switch (pos) {\n case 'top':\n outPt.set(rect.x + width / 2, rect.y - distance);\n outDir.set(0, -1);\n break;\n\n case 'bottom':\n outPt.set(rect.x + width / 2, rect.y + height + distance);\n outDir.set(0, 1);\n break;\n\n case 'left':\n outPt.set(rect.x - distance, rect.y + height / 2);\n outDir.set(-1, 0);\n break;\n\n case 'right':\n outPt.set(rect.x + width + distance, rect.y + height / 2);\n outDir.set(1, 0);\n break;\n }\n}\n\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n x -= cx;\n y -= cy;\n var d = Math.sqrt(x * x + y * y);\n x /= d;\n y /= d;\n var ox = x * r + cx;\n var oy = y * r + cy;\n\n if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n out[0] = ox;\n out[1] = oy;\n return d - r;\n }\n\n if (anticlockwise) {\n var tmp = startAngle;\n startAngle = normalizeRadian(endAngle);\n endAngle = normalizeRadian(tmp);\n } else {\n startAngle = normalizeRadian(startAngle);\n endAngle = normalizeRadian(endAngle);\n }\n\n if (startAngle > endAngle) {\n endAngle += PI2;\n }\n\n var angle = Math.atan2(y, x);\n\n if (angle < 0) {\n angle += PI2;\n }\n\n if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n out[0] = ox;\n out[1] = oy;\n return d - r;\n }\n\n var x1 = r * Math.cos(startAngle) + cx;\n var y1 = r * Math.sin(startAngle) + cy;\n var x2 = r * Math.cos(endAngle) + cx;\n var y2 = r * Math.sin(endAngle) + cy;\n var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n\n if (d1 < d2) {\n out[0] = x1;\n out[1] = y1;\n return Math.sqrt(d1);\n } else {\n out[0] = x2;\n out[1] = y2;\n return Math.sqrt(d2);\n }\n}\n\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n var dx = x - x1;\n var dy = y - y1;\n var dx1 = x2 - x1;\n var dy1 = y2 - y1;\n var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n dx1 /= lineLen;\n dy1 /= lineLen;\n var projectedLen = dx * dx1 + dy * dy1;\n var t = projectedLen / lineLen;\n\n if (limitToEnds) {\n t = Math.min(Math.max(t, 0), 1);\n }\n\n t *= lineLen;\n var ox = out[0] = x1 + t * dx1;\n var oy = out[1] = y1 + t * dy1;\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n if (width < 0) {\n x1 = x1 + width;\n width = -width;\n }\n\n if (height < 0) {\n y1 = y1 + height;\n height = -height;\n }\n\n var x2 = x1 + width;\n var y2 = y1 + height;\n var ox = out[0] = Math.min(Math.max(x, x1), x2);\n var oy = out[1] = Math.min(Math.max(y, y1), y2);\n return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nvar tmpPt = [];\n\nfunction nearestPointOnRect(pt, rect, out) {\n var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n out.set(tmpPt[0], tmpPt[1]);\n return dist;\n}\n\nfunction nearestPointOnPath(pt, path, out) {\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n var x1;\n var y1;\n var minDist = Infinity;\n var data = path.data;\n var x = pt.x;\n var y = pt.y;\n\n for (var i = 0; i < data.length;) {\n var cmd = data[i++];\n\n if (i === 1) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n\n var d = minDist;\n\n switch (cmd) {\n case CMD.M:\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n break;\n\n case CMD.L:\n d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.C:\n d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.Q:\n d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var theta = data[i++];\n var dTheta = data[i++];\n i += 1;\n var anticlockwise = !!(1 - data[i++]);\n x1 = Math.cos(theta) * rx + cx;\n y1 = Math.sin(theta) * ry + cy;\n\n if (i <= 1) {\n x0 = x1;\n y0 = y1;\n }\n\n var _x = (x - cx) * ry / rx + cx;\n\n d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n xi = Math.cos(theta + dTheta) * rx + cx;\n yi = Math.sin(theta + dTheta) * ry + cy;\n break;\n\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++];\n d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n break;\n\n case CMD.Z:\n d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n xi = x0;\n yi = y0;\n break;\n }\n\n if (d < minDist) {\n minDist = d;\n out.set(tmpPt[0], tmpPt[1]);\n }\n }\n\n return minDist;\n}\n\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\nexport function updateLabelLinePoints(target, labelLineModel) {\n if (!target) {\n return;\n }\n\n var labelLine = target.getTextGuideLine();\n var label = target.getTextContent();\n\n if (!(label && labelLine)) {\n return;\n }\n\n var labelGuideConfig = target.textGuideLineConfig || {};\n var points = [[0, 0], [0, 0], [0, 0]];\n var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n var labelRect = label.getBoundingRect().clone();\n labelRect.applyTransform(label.getComputedTransform());\n var minDist = Infinity;\n var anchorPoint = labelGuideConfig.anchor;\n var targetTransform = target.getComputedTransform();\n var targetInversedTransform = targetTransform && invert([], targetTransform);\n var len = labelLineModel.get('length2') || 0;\n\n if (anchorPoint) {\n pt2.copy(anchorPoint);\n }\n\n for (var i = 0; i < searchSpace.length; i++) {\n var candidate = searchSpace[i];\n getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n Point.scaleAndAdd(pt1, pt0, dir, len);\n pt1.transform(targetInversedTransform);\n var boundingRect = target.getBoundingRect();\n var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n\n if (dist < minDist) {\n minDist = dist;\n pt1.transform(targetTransform);\n pt2.transform(targetTransform);\n pt2.toArray(points[0]);\n pt1.toArray(points[1]);\n pt0.toArray(points[2]);\n }\n }\n\n limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n labelLine.setShape({\n points: points\n });\n}\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n return;\n }\n\n minTurnAngle = minTurnAngle / 180 * Math.PI;\n pt0.fromArray(linePoints[0]);\n pt1.fromArray(linePoints[1]);\n pt2.fromArray(linePoints[2]);\n Point.sub(dir, pt0, pt1);\n Point.sub(dir2, pt2, pt1);\n var len1 = dir.len();\n var len2 = dir2.len();\n\n if (len1 < 1e-3 || len2 < 1e-3) {\n return;\n }\n\n dir.scale(1 / len1);\n dir2.scale(1 / len2);\n var angleCos = dir.dot(dir2);\n var minTurnAngleCos = Math.cos(minTurnAngle);\n\n if (minTurnAngleCos < angleCos) {\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n tmpProjPoint.fromArray(tmpArr);\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n if (isNaN(t)) {\n return;\n }\n\n if (t < 0) {\n Point.copy(tmpProjPoint, pt1);\n } else if (t > 1) {\n Point.copy(tmpProjPoint, pt2);\n }\n\n tmpProjPoint.toArray(linePoints[1]);\n }\n}\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n return;\n }\n\n maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n pt0.fromArray(linePoints[0]);\n pt1.fromArray(linePoints[1]);\n pt2.fromArray(linePoints[2]);\n Point.sub(dir, pt1, pt0);\n Point.sub(dir2, pt2, pt1);\n var len1 = dir.len();\n var len2 = dir2.len();\n\n if (len1 < 1e-3 || len2 < 1e-3) {\n return;\n }\n\n dir.scale(1 / len1);\n dir2.scale(1 / len2);\n var angleCos = dir.dot(surfaceNormal);\n var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n\n if (angleCos < maxSurfaceAngleCos) {\n var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n tmpProjPoint.fromArray(tmpArr);\n var HALF_PI = Math.PI / 2;\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n\n if (newAngle >= HALF_PI) {\n Point.copy(tmpProjPoint, pt2);\n } else {\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n if (isNaN(t)) {\n return;\n }\n\n if (t < 0) {\n Point.copy(tmpProjPoint, pt1);\n } else if (t > 1) {\n Point.copy(tmpProjPoint, pt2);\n }\n }\n\n tmpProjPoint.toArray(linePoints[1]);\n }\n}\n\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n var isNormal = stateName === 'normal';\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n stateObj.ignore = ignore;\n var smooth = stateModel.get('smooth');\n\n if (smooth && smooth === true) {\n smooth = 0.3;\n }\n\n stateObj.shape = stateObj.shape || {};\n\n if (smooth > 0) {\n stateObj.shape.smooth = smooth;\n }\n\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\n\nfunction buildLabelLinePath(path, shape) {\n var smooth = shape.smooth;\n var points = shape.points;\n\n if (!points) {\n return;\n }\n\n path.moveTo(points[0][0], points[0][1]);\n\n if (smooth > 0 && points.length >= 3) {\n var len1 = vector.dist(points[0], points[1]);\n var len2 = vector.dist(points[1], points[2]);\n\n if (!len1 || !len2) {\n path.lineTo(points[1][0], points[1][1]);\n path.lineTo(points[2][0], points[2][1]);\n return;\n }\n\n var moveLen = Math.min(len1, len2) * smooth;\n var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n } else {\n for (var i = 1; i < points.length; i++) {\n path.lineTo(points[i][0], points[i][1]);\n }\n }\n}\n\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n var labelLine = targetEl.getTextGuideLine();\n var label = targetEl.getTextContent();\n\n if (!label) {\n if (labelLine) {\n targetEl.removeTextGuideLine();\n }\n\n return;\n }\n\n var normalModel = statesModels.normal;\n var showNormal = normalModel.get('show');\n var labelIgnoreNormal = label.ignore;\n\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\n var stateName = DISPLAY_STATES[i];\n var stateModel = statesModels[stateName];\n var isNormal = stateName === 'normal';\n\n if (stateModel) {\n var stateShow = stateModel.get('show');\n var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n\n if (isLabelIgnored || !retrieve2(stateShow, showNormal)) {\n var stateObj = isNormal ? labelLine : labelLine && labelLine.states.normal;\n\n if (stateObj) {\n stateObj.ignore = true;\n }\n\n continue;\n }\n\n if (!labelLine) {\n labelLine = new Polyline();\n targetEl.setTextGuideLine(labelLine);\n\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n }\n\n if (targetEl.stateProxy) {\n labelLine.stateProxy = targetEl.stateProxy;\n }\n }\n\n setLabelLineState(labelLine, false, stateName, stateModel);\n }\n }\n\n if (labelLine) {\n defaults(labelLine.style, defaultStyle);\n labelLine.style.fill = null;\n var showAbove = normalModel.get('showAbove');\n var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n labelLineConfig.showAbove = showAbove || false;\n labelLine.buildPath = buildLabelLinePath;\n }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n labelLineName = labelLineName || 'labelLine';\n var statesModels = {\n normal: itemModel.getModel(labelLineName)\n };\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n }\n\n return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, OrientedBoundingRect } from '../util/graphic';\nexport function prepareLayoutList(input) {\n var list = [];\n\n for (var i = 0; i < input.length; i++) {\n var rawItem = input[i];\n\n if (rawItem.defaultAttr.ignore) {\n continue;\n }\n\n var label = rawItem.label;\n var transform = label.getComputedTransform();\n var localRect = label.getBoundingRect();\n var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5;\n var minMargin = label.style.margin || 0;\n var globalRect = localRect.clone();\n globalRect.applyTransform(transform);\n globalRect.x -= minMargin / 2;\n globalRect.y -= minMargin / 2;\n globalRect.width += minMargin;\n globalRect.height += minMargin;\n var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\n list.push({\n label: label,\n labelLine: rawItem.labelLine,\n rect: globalRect,\n localRect: localRect,\n obb: obb,\n priority: rawItem.priority,\n defaultAttr: rawItem.defaultAttr,\n layoutOption: rawItem.computedLayoutOption,\n axisAligned: isAxisAligned,\n transform: transform\n });\n }\n\n return list;\n}\n\nfunction shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\n var len = list.length;\n\n if (len < 2) {\n return;\n }\n\n list.sort(function (a, b) {\n return a.rect[xyDim] - b.rect[xyDim];\n });\n var lastPos = 0;\n var delta;\n var adjusted = false;\n var shifts = [];\n var totalShifts = 0;\n\n for (var i = 0; i < len; i++) {\n var item = list[i];\n var rect = item.rect;\n delta = rect[xyDim] - lastPos;\n\n if (delta < 0) {\n rect[xyDim] -= delta;\n item.label[xyDim] -= delta;\n adjusted = true;\n }\n\n var shift = Math.max(-delta, 0);\n shifts.push(shift);\n totalShifts += shift;\n lastPos = rect[xyDim] + rect[sizeDim];\n }\n\n if (totalShifts > 0 && balanceShift) {\n shiftList(-totalShifts / len, 0, len);\n }\n\n var first = list[0];\n var last = list[len - 1];\n var minGap;\n var maxGap;\n updateMinMaxGap();\n minGap < 0 && squeezeGaps(-minGap, 0.8);\n maxGap < 0 && squeezeGaps(maxGap, 0.8);\n updateMinMaxGap();\n takeBoundsGap(minGap, maxGap, 1);\n takeBoundsGap(maxGap, minGap, -1);\n updateMinMaxGap();\n\n if (minGap < 0) {\n squeezeWhenBailout(-minGap);\n }\n\n if (maxGap < 0) {\n squeezeWhenBailout(maxGap);\n }\n\n function updateMinMaxGap() {\n minGap = first.rect[xyDim] - minBound;\n maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\n }\n\n function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\n if (gapThisBound < 0) {\n var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\n\n if (moveFromMaxGap > 0) {\n shiftList(moveFromMaxGap * moveDir, 0, len);\n var remained = moveFromMaxGap + gapThisBound;\n\n if (remained < 0) {\n squeezeGaps(-remained * moveDir, 1);\n }\n } else {\n squeezeGaps(-gapThisBound * moveDir, 1);\n }\n }\n }\n\n function shiftList(delta, start, end) {\n if (delta !== 0) {\n adjusted = true;\n }\n\n for (var i = start; i < end; i++) {\n var item = list[i];\n var rect = item.rect;\n rect[xyDim] += delta;\n item.label[xyDim] += delta;\n }\n }\n\n function squeezeGaps(delta, maxSqeezePercent) {\n var gaps = [];\n var totalGaps = 0;\n\n for (var i = 1; i < len; i++) {\n var prevItemRect = list[i - 1].rect;\n var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\n gaps.push(gap);\n totalGaps += gap;\n }\n\n if (!totalGaps) {\n return;\n }\n\n var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\n\n if (delta > 0) {\n for (var i = 0; i < len - 1; i++) {\n var movement = gaps[i] * squeezePercent;\n shiftList(movement, 0, i + 1);\n }\n } else {\n for (var i = len - 1; i > 0; i--) {\n var movement = gaps[i - 1] * squeezePercent;\n shiftList(-movement, i, len);\n }\n }\n }\n\n function squeezeWhenBailout(delta) {\n var dir = delta < 0 ? -1 : 1;\n delta = Math.abs(delta);\n var moveForEachLabel = Math.ceil(delta / (len - 1));\n\n for (var i = 0; i < len - 1; i++) {\n if (dir > 0) {\n shiftList(moveForEachLabel, 0, i + 1);\n } else {\n shiftList(-moveForEachLabel, len - i - 1, len);\n }\n\n delta -= moveForEachLabel;\n\n if (delta <= 0) {\n return;\n }\n }\n }\n\n return adjusted;\n}\n\nexport function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\n return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\n}\nexport function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\n return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\n}\nexport function hideOverlap(labelList) {\n var displayedLabels = [];\n labelList.sort(function (a, b) {\n return b.priority - a.priority;\n });\n var globalRect = new BoundingRect(0, 0, 0, 0);\n\n function hideEl(el) {\n if (!el.ignore) {\n var emphasisState = el.ensureState('emphasis');\n\n if (emphasisState.ignore == null) {\n emphasisState.ignore = false;\n }\n }\n\n el.ignore = true;\n }\n\n for (var i = 0; i < labelList.length; i++) {\n var labelItem = labelList[i];\n var isAxisAligned = labelItem.axisAligned;\n var localRect = labelItem.localRect;\n var transform = labelItem.transform;\n var label = labelItem.label;\n var labelLine = labelItem.labelLine;\n globalRect.copy(labelItem.rect);\n globalRect.width -= 0.1;\n globalRect.height -= 0.1;\n globalRect.x += 0.05;\n globalRect.y += 0.05;\n var obb = labelItem.obb;\n var overlapped = false;\n\n for (var j = 0; j < displayedLabels.length; j++) {\n var existsTextCfg = displayedLabels[j];\n\n if (!globalRect.intersect(existsTextCfg.rect)) {\n continue;\n }\n\n if (isAxisAligned && existsTextCfg.axisAligned) {\n overlapped = true;\n break;\n }\n\n if (!existsTextCfg.obb) {\n existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\n }\n\n if (!obb) {\n obb = new OrientedBoundingRect(localRect, transform);\n }\n\n if (obb.intersect(existsTextCfg.obb)) {\n overlapped = true;\n break;\n }\n }\n\n if (overlapped) {\n hideEl(label);\n labelLine && hideEl(labelLine);\n } else {\n label.attr('ignore', labelItem.defaultAttr.ignore);\n labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\n displayedLabels.push(labelItem);\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { parsePercent } from '../util/number';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper';\nimport { makeInner } from '../util/model';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper';\nimport { labelInner, animateLabelValue } from './labelStyle';\n\nfunction cloneArr(points) {\n if (points) {\n var newPoints = [];\n\n for (var i = 0; i < points.length; i++) {\n newPoints.push(points[i].slice());\n }\n\n return newPoints;\n }\n}\n\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n var label = labelItem.label;\n var labelLine = hostEl && hostEl.getTextGuideLine();\n return {\n dataIndex: labelItem.dataIndex,\n dataType: labelItem.dataType,\n seriesIndex: labelItem.seriesModel.seriesIndex,\n text: labelItem.label.style.text,\n rect: labelItem.hostRect,\n labelRect: labelItem.rect,\n align: label.style.align,\n verticalAlign: label.style.verticalAlign,\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n };\n}\n\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\n\nfunction extendWithKeys(target, source, keys) {\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (source[key] != null) {\n target[key] = source[key];\n }\n }\n}\n\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\n\nvar LabelManager = function () {\n function LabelManager() {\n this._labelList = [];\n this._chartViewList = [];\n }\n\n LabelManager.prototype.clearLabels = function () {\n this._labelList = [];\n this._chartViewList = [];\n };\n\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n var labelStyle = label.style;\n var hostEl = label.__hostTarget;\n var textConfig = hostEl.textConfig || {};\n var labelTransform = label.getComputedTransform();\n var labelRect = label.getBoundingRect().plain();\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n\n if (labelTransform) {\n dummyTransformable.setLocalTransform(labelTransform);\n } else {\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n }\n\n var host = label.__hostTarget;\n var hostRect;\n\n if (host) {\n hostRect = host.getBoundingRect().plain();\n var transform = host.getComputedTransform();\n BoundingRect.applyTransform(hostRect, hostRect, transform);\n }\n\n var labelGuide = hostRect && host.getTextGuideLine();\n\n this._labelList.push({\n label: label,\n labelLine: labelGuide,\n seriesModel: seriesModel,\n dataIndex: dataIndex,\n dataType: dataType,\n layoutOption: layoutOption,\n computedLayoutOption: null,\n rect: labelRect,\n hostRect: hostRect,\n priority: hostRect ? hostRect.width * hostRect.height : 0,\n defaultAttr: {\n ignore: label.ignore,\n labelGuideIgnore: labelGuide && labelGuide.ignore,\n x: dummyTransformable.x,\n y: dummyTransformable.y,\n rotation: dummyTransformable.rotation,\n style: {\n x: labelStyle.x,\n y: labelStyle.y,\n align: labelStyle.align,\n verticalAlign: labelStyle.verticalAlign,\n width: labelStyle.width,\n height: labelStyle.height,\n fontSize: labelStyle.fontSize\n },\n cursor: label.cursor,\n attachedPos: textConfig.position,\n attachedRot: textConfig.rotation\n }\n });\n };\n\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n var _this = this;\n\n this._chartViewList.push(chartView);\n\n var seriesModel = chartView.__model;\n var layoutOption = seriesModel.get('labelLayout');\n\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n return;\n }\n\n chartView.group.traverse(function (child) {\n if (child.ignore) {\n return true;\n }\n\n var textEl = child.getTextContent();\n var ecData = getECData(child);\n\n if (textEl && !textEl.disableLabelLayout) {\n _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n }\n });\n };\n\n LabelManager.prototype.updateLayoutConfig = function (api) {\n var width = api.getWidth();\n var height = api.getHeight();\n\n function createDragHandler(el, labelLineModel) {\n return function () {\n updateLabelLinePoints(el, labelLineModel);\n };\n }\n\n for (var i = 0; i < this._labelList.length; i++) {\n var labelItem = this._labelList[i];\n var label = labelItem.label;\n var hostEl = label.__hostTarget;\n var defaultLabelAttr = labelItem.defaultAttr;\n var layoutOption = void 0;\n\n if (typeof labelItem.layoutOption === 'function') {\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n } else {\n layoutOption = labelItem.layoutOption;\n }\n\n layoutOption = layoutOption || {};\n labelItem.computedLayoutOption = layoutOption;\n var degreeToRadian = Math.PI / 180;\n\n if (hostEl) {\n hostEl.setTextConfig({\n local: false,\n position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n });\n }\n\n var needsUpdateLabelLine = false;\n\n if (layoutOption.x != null) {\n label.x = parsePercent(layoutOption.x, width);\n label.setStyle('x', 0);\n needsUpdateLabelLine = true;\n } else {\n label.x = defaultLabelAttr.x;\n label.setStyle('x', defaultLabelAttr.style.x);\n }\n\n if (layoutOption.y != null) {\n label.y = parsePercent(layoutOption.y, height);\n label.setStyle('y', 0);\n needsUpdateLabelLine = true;\n } else {\n label.y = defaultLabelAttr.y;\n label.setStyle('y', defaultLabelAttr.style.y);\n }\n\n if (layoutOption.labelLinePoints) {\n var guideLine = hostEl.getTextGuideLine();\n\n if (guideLine) {\n guideLine.setShape({\n points: layoutOption.labelLinePoints\n });\n needsUpdateLabelLine = false;\n }\n }\n\n var labelLayoutStore = labelLayoutInnerStore(label);\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n }\n\n if (layoutOption.draggable) {\n label.draggable = true;\n label.cursor = 'move';\n\n if (hostEl) {\n var hostModel = labelItem.seriesModel;\n\n if (labelItem.dataIndex != null) {\n var data = labelItem.seriesModel.getData(labelItem.dataType);\n hostModel = data.getItemModel(labelItem.dataIndex);\n }\n\n label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n }\n } else {\n label.off('drag');\n label.cursor = defaultLabelAttr.cursor;\n }\n }\n };\n\n LabelManager.prototype.layout = function (api) {\n var width = api.getWidth();\n var height = api.getHeight();\n var labelList = prepareLayoutList(this._labelList);\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n return item.layoutOption.moveOverlap === 'shiftX';\n });\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n return item.layoutOption.moveOverlap === 'shiftY';\n });\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\n return item.layoutOption.hideOverlap;\n });\n hideOverlap(labelsNeedsHideOverlap);\n };\n\n LabelManager.prototype.processLabelsOverall = function () {\n var _this = this;\n\n each(this._chartViewList, function (chartView) {\n var seriesModel = chartView.__model;\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n var animationEnabled = seriesModel.isAnimationEnabled();\n chartView.group.traverse(function (child) {\n if (child.ignore) {\n return true;\n }\n\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n var label = child.getTextContent();\n\n if (!needsUpdateLabelLine && label) {\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n }\n\n if (needsUpdateLabelLine) {\n _this._updateLabelLine(child, seriesModel);\n }\n\n if (animationEnabled) {\n _this._animateLabels(child, seriesModel);\n }\n });\n });\n };\n\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n var textEl = el.getTextContent();\n var ecData = getECData(el);\n var dataIndex = ecData.dataIndex;\n\n if (textEl && dataIndex != null) {\n var data = seriesModel.getData(ecData.dataType);\n var itemModel = data.getItemModel(dataIndex);\n var defaultStyle = {};\n var visualStyle = data.getItemVisual(dataIndex, 'style');\n var visualType = data.getVisual('drawType');\n defaultStyle.stroke = visualStyle[visualType];\n var labelLineModel = itemModel.getModel('labelLine');\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n updateLabelLinePoints(el, labelLineModel);\n }\n };\n\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\n var textEl = el.getTextContent();\n var guideLine = el.getTextGuideLine();\n\n if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el)) {\n var layoutStore = labelLayoutInnerStore(textEl);\n var oldLayout = layoutStore.oldLayout;\n var ecData = getECData(el);\n var dataIndex = ecData.dataIndex;\n var newProps = {\n x: textEl.x,\n y: textEl.y,\n rotation: textEl.rotation\n };\n var data = seriesModel.getData(ecData.dataType);\n\n if (!oldLayout) {\n textEl.attr(newProps);\n\n if (!labelInner(textEl).valueAnimation) {\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\n textEl.style.opacity = 0;\n initProps(textEl, {\n style: {\n opacity: oldOpacity\n }\n }, seriesModel, dataIndex);\n }\n } else {\n textEl.attr(oldLayout);\n var prevStates = el.prevStates;\n\n if (prevStates) {\n if (indexOf(prevStates, 'select') >= 0) {\n textEl.attr(layoutStore.oldLayoutSelect);\n }\n\n if (indexOf(prevStates, 'emphasis') >= 0) {\n textEl.attr(layoutStore.oldLayoutEmphasis);\n }\n }\n\n updateProps(textEl, newProps, seriesModel, dataIndex);\n }\n\n layoutStore.oldLayout = newProps;\n\n if (textEl.states.select) {\n var layoutSelect = layoutStore.oldLayoutSelect = {};\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n }\n\n if (textEl.states.emphasis) {\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n }\n\n animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n }\n\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n var layoutStore = labelLineAnimationStore(guideLine);\n var oldLayout = layoutStore.oldLayout;\n var newLayout = {\n points: guideLine.shape.points\n };\n\n if (!oldLayout) {\n guideLine.setShape(newLayout);\n guideLine.style.strokePercent = 0;\n initProps(guideLine, {\n style: {\n strokePercent: 1\n }\n }, seriesModel);\n } else {\n guideLine.attr({\n shape: oldLayout\n });\n updateProps(guideLine, {\n shape: newLayout\n }, seriesModel);\n }\n\n layoutStore.oldLayout = newLayout;\n }\n };\n\n return LabelManager;\n}();\n\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend, each, isArray } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog, deprecateLog } from '../util/log';\nimport { queryDataIndex } from '../util/model';\nexport function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\n function getSeriesIndices(ecModel, payload) {\n var seriesIndices = [];\n ecModel.eachComponent({\n mainType: 'series',\n subType: seriesType,\n query: payload\n }, function (seriesModel) {\n seriesIndices.push(seriesModel.seriesIndex);\n });\n return seriesIndices;\n }\n\n each([[seriesType + 'ToggleSelect', 'toggleSelect'], [seriesType + 'Select', 'select'], [seriesType + 'UnSelect', 'unselect']], function (eventsMap) {\n ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\n payload = extend({}, payload);\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog(payload.type, eventsMap[1]);\n }\n\n api.dispatchAction(extend(payload, {\n type: eventsMap[1],\n seriesIndex: getSeriesIndices(ecModel, payload)\n }));\n });\n });\n}\n\nfunction handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\n var legacyEventName = type + eventPostfix;\n\n if (!ecIns.isSilent(legacyEventName)) {\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\n }\n\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'pie'\n }, function (seriesModel) {\n var seriesIndex = seriesModel.seriesIndex;\n var selected = payload.selected;\n\n for (var i = 0; i < selected.length; i++) {\n if (selected[i].seriesIndex === seriesIndex) {\n var data = seriesModel.getData();\n var dataIndex = queryDataIndex(data, payload.fromActionPayload);\n ecIns.trigger(legacyEventName, {\n type: legacyEventName,\n seriesId: seriesModel.id,\n name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\n selected: extend({}, seriesModel.option.selectedMap)\n });\n }\n }\n });\n }\n}\n\nexport function handleLegacySelectEvents(messageCenter, ecIns, api) {\n messageCenter.on('selectchanged', function (params) {\n var ecModel = api.getModel();\n\n if (params.isFromClick) {\n handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\n handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\n } else if (params.fromAction === 'select') {\n handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\n handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\n } else if (params.fromAction === 'unselect') {\n handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\n handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function findEventDispatcher(target, det, returnFirstMatch) {\n var found;\n\n while (target) {\n if (det(target)) {\n found = target;\n\n if (returnFirstMatch) {\n break;\n }\n }\n\n target = target.__hostTarget || target.parent;\n }\n\n return found;\n}","var wmUniqueIndex = Math.round(Math.random() * 9);\nvar WeakMap = (function () {\n function WeakMap() {\n this._id = '__ec_inner_' + wmUniqueIndex++;\n }\n WeakMap.prototype.get = function (key) {\n return this._guard(key)[this._id];\n };\n WeakMap.prototype.set = function (key, value) {\n var target = this._guard(key);\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(target, this._id, {\n value: value,\n enumerable: false,\n configurable: true\n });\n }\n else {\n target[this._id] = value;\n }\n return this;\n };\n WeakMap.prototype[\"delete\"] = function (key) {\n if (this.has(key)) {\n delete this._guard(key)[this._id];\n return true;\n }\n return false;\n };\n WeakMap.prototype.has = function (key) {\n return !!this._guard(key)[this._id];\n };\n WeakMap.prototype._guard = function (key) {\n if (key !== Object(key)) {\n throw TypeError('Value of WeakMap is not a non-null object.');\n }\n return key;\n };\n return WeakMap;\n}());\nexport default WeakMap;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from './graphic';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { calculateTextPosition } from 'zrender/lib/contain/text';\nvar Triangle = graphic.Path.extend({\n type: 'triangle',\n shape: {\n cx: 0,\n cy: 0,\n width: 0,\n height: 0\n },\n buildPath: function (path, shape) {\n var cx = shape.cx;\n var cy = shape.cy;\n var width = shape.width / 2;\n var height = shape.height / 2;\n path.moveTo(cx, cy - height);\n path.lineTo(cx + width, cy + height);\n path.lineTo(cx - width, cy + height);\n path.closePath();\n }\n});\nvar Diamond = graphic.Path.extend({\n type: 'diamond',\n shape: {\n cx: 0,\n cy: 0,\n width: 0,\n height: 0\n },\n buildPath: function (path, shape) {\n var cx = shape.cx;\n var cy = shape.cy;\n var width = shape.width / 2;\n var height = shape.height / 2;\n path.moveTo(cx, cy - height);\n path.lineTo(cx + width, cy);\n path.lineTo(cx, cy + height);\n path.lineTo(cx - width, cy);\n path.closePath();\n }\n});\nvar Pin = graphic.Path.extend({\n type: 'pin',\n shape: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n buildPath: function (path, shape) {\n var x = shape.x;\n var y = shape.y;\n var w = shape.width / 5 * 3;\n var h = Math.max(w, shape.height);\n var r = w / 2;\n var dy = r * r / (h - r);\n var cy = y - h + r + dy;\n var angle = Math.asin(dy / r);\n var dx = Math.cos(angle) * r;\n var tanX = Math.sin(angle);\n var tanY = Math.cos(angle);\n var cpLen = r * 0.6;\n var cpLen2 = r * 0.7;\n path.moveTo(x - dx, cy + dy);\n path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n path.closePath();\n }\n});\nvar Arrow = graphic.Path.extend({\n type: 'arrow',\n shape: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n buildPath: function (ctx, shape) {\n var height = shape.height;\n var width = shape.width;\n var x = shape.x;\n var y = shape.y;\n var dx = width / 3 * 2;\n ctx.moveTo(x, y);\n ctx.lineTo(x + dx, y + height);\n ctx.lineTo(x, y + height / 4 * 3);\n ctx.lineTo(x - dx, y + height);\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n});\nvar symbolCtors = {\n line: graphic.Rect,\n rect: graphic.Rect,\n roundRect: graphic.Rect,\n square: graphic.Rect,\n circle: graphic.Circle,\n diamond: Diamond,\n pin: Pin,\n arrow: Arrow,\n triangle: Triangle\n};\nvar symbolShapeMakers = {\n line: function (x, y, w, h, shape) {\n var thickness = 2;\n shape.x = x;\n shape.y = y + h / 2 - thickness / 2;\n shape.width = w;\n shape.height = thickness;\n },\n rect: function (x, y, w, h, shape) {\n shape.x = x;\n shape.y = y;\n shape.width = w;\n shape.height = h;\n },\n roundRect: function (x, y, w, h, shape) {\n shape.x = x;\n shape.y = y;\n shape.width = w;\n shape.height = h;\n shape.r = Math.min(w, h) / 4;\n },\n square: function (x, y, w, h, shape) {\n var size = Math.min(w, h);\n shape.x = x;\n shape.y = y;\n shape.width = size;\n shape.height = size;\n },\n circle: function (x, y, w, h, shape) {\n shape.cx = x + w / 2;\n shape.cy = y + h / 2;\n shape.r = Math.min(w, h) / 2;\n },\n diamond: function (x, y, w, h, shape) {\n shape.cx = x + w / 2;\n shape.cy = y + h / 2;\n shape.width = w;\n shape.height = h;\n },\n pin: function (x, y, w, h, shape) {\n shape.x = x + w / 2;\n shape.y = y + h / 2;\n shape.width = w;\n shape.height = h;\n },\n arrow: function (x, y, w, h, shape) {\n shape.x = x + w / 2;\n shape.y = y + h / 2;\n shape.width = w;\n shape.height = h;\n },\n triangle: function (x, y, w, h, shape) {\n shape.cx = x + w / 2;\n shape.cy = y + h / 2;\n shape.width = w;\n shape.height = h;\n }\n};\nexport var symbolBuildProxies = {};\nzrUtil.each(symbolCtors, function (Ctor, name) {\n symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.Path.extend({\n type: 'symbol',\n shape: {\n symbolType: '',\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n calculateTextPosition: function (out, config, rect) {\n var res = calculateTextPosition(out, config, rect);\n var shape = this.shape;\n\n if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\n res.y = rect.y + rect.height * 0.4;\n }\n\n return res;\n },\n buildPath: function (ctx, shape, inBundle) {\n var symbolType = shape.symbolType;\n\n if (symbolType !== 'none') {\n var proxySymbol = symbolBuildProxies[symbolType];\n\n if (!proxySymbol) {\n symbolType = 'rect';\n proxySymbol = symbolBuildProxies[symbolType];\n }\n\n symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n }\n }\n});\n\nfunction symbolPathSetColor(color, innerColor) {\n if (this.type !== 'image') {\n var symbolStyle = this.style;\n\n if (this.__isEmptyBrush) {\n symbolStyle.stroke = color;\n symbolStyle.fill = innerColor || '#fff';\n symbolStyle.lineWidth = 2;\n } else {\n symbolStyle.fill = color;\n }\n\n this.markRedraw();\n }\n}\n\nexport function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\n var isEmpty = symbolType.indexOf('empty') === 0;\n\n if (isEmpty) {\n symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n }\n\n var symbolPath;\n\n if (symbolType.indexOf('image://') === 0) {\n symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n } else if (symbolType.indexOf('path://') === 0) {\n symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n } else {\n symbolPath = new SymbolClz({\n shape: {\n symbolType: symbolType,\n x: x,\n y: y,\n width: w,\n height: h\n }\n });\n }\n\n symbolPath.__isEmptyBrush = isEmpty;\n symbolPath.setColor = symbolPathSetColor;\n\n if (color) {\n symbolPath.setColor(color);\n }\n\n return symbolPath;\n}","export function createLinearGradient(ctx, obj, rect) {\n var x = obj.x == null ? 0 : obj.x;\n var x2 = obj.x2 == null ? 1 : obj.x2;\n var y = obj.y == null ? 0 : obj.y;\n var y2 = obj.y2 == null ? 0 : obj.y2;\n if (!obj.global) {\n x = x * rect.width + rect.x;\n x2 = x2 * rect.width + rect.x;\n y = y * rect.height + rect.y;\n y2 = y2 * rect.height + rect.y;\n }\n x = isNaN(x) ? 0 : x;\n x2 = isNaN(x2) ? 1 : x2;\n y = isNaN(y) ? 0 : y;\n y2 = isNaN(y2) ? 0 : y2;\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n return canvasGradient;\n}\nexport function createRadialGradient(ctx, obj, rect) {\n var width = rect.width;\n var height = rect.height;\n var min = Math.min(width, height);\n var x = obj.x == null ? 0.5 : obj.x;\n var y = obj.y == null ? 0.5 : obj.y;\n var r = obj.r == null ? 0.5 : obj.r;\n if (!obj.global) {\n x = x * width + rect.x;\n y = y * height + rect.y;\n r = r * min;\n }\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n return canvasGradient;\n}\nexport function getCanvasGradient(ctx, obj, rect) {\n var canvasGradient = obj.type === 'radial'\n ? createRadialGradient(ctx, obj, rect)\n : createLinearGradient(ctx, obj, rect);\n var colorStops = obj.colorStops;\n for (var i = 0; i < colorStops.length; i++) {\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n }\n return canvasGradient;\n}\nexport function isClipPathChanged(clipPaths, prevClipPaths) {\n if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\n return false;\n }\n if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\n return true;\n }\n for (var i = 0; i < clipPaths.length; i++) {\n if (clipPaths[i] !== prevClipPaths[i]) {\n return true;\n }\n }\n return false;\n}\n","import { isArray, isNumber } from '../../core/util';\nexport function normalizeLineDash(lineType, lineWidth) {\n if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\n return null;\n }\n lineWidth = lineWidth || 1;\n return lineType === 'dashed'\n ? [4 * lineWidth, 2 * lineWidth]\n : lineType === 'dotted'\n ? [lineWidth]\n : isNumber(lineType)\n ? [lineType] : isArray(lineType) ? lineType : null;\n}\n","import { DEFAULT_COMMON_STYLE } from '../graphic/Displayable';\nimport PathProxy from '../core/PathProxy';\nimport { createOrUpdateImage, isImageReady } from '../graphic/helper/image';\nimport { getCanvasGradient, isClipPathChanged } from './helper';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport { DEFAULT_FONT } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nimport Element from '../Element';\nimport IncrementalDisplayable from '../graphic/IncrementalDisplayable';\nvar pathProxyForDraw = new PathProxy(true);\nfunction styleHasStroke(style) {\n var stroke = style.stroke;\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n}\nfunction styleHasFill(style) {\n var fill = style.fill;\n return fill != null && fill !== 'none';\n}\nfunction doFillPath(ctx, style) {\n if (style.fillOpacity != null && style.fillOpacity !== 1) {\n var originalGlobalAlpha = ctx.globalAlpha;\n ctx.globalAlpha = style.fillOpacity * style.opacity;\n ctx.fill();\n ctx.globalAlpha = originalGlobalAlpha;\n }\n else {\n ctx.fill();\n }\n}\nfunction doStrokePath(ctx, style) {\n if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\n var originalGlobalAlpha = ctx.globalAlpha;\n ctx.globalAlpha = style.strokeOpacity * style.opacity;\n ctx.stroke();\n ctx.globalAlpha = originalGlobalAlpha;\n }\n else {\n ctx.stroke();\n }\n}\nexport function createCanvasPattern(ctx, pattern, el) {\n var image = createOrUpdateImage(pattern.image, pattern.__image, el);\n if (isImageReady(image)) {\n var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\n if (typeof DOMMatrix === 'function') {\n var matrix = new DOMMatrix();\n matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\n matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\n matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\n canvasPattern.setTransform(matrix);\n }\n return canvasPattern;\n }\n}\nfunction brushPath(ctx, el, style, inBatch) {\n var hasStroke = styleHasStroke(style);\n var hasFill = styleHasFill(style);\n var strokePercent = style.strokePercent;\n var strokePart = strokePercent < 1;\n var firstDraw = !el.path;\n if ((!el.silent || strokePart) && firstDraw) {\n el.createPathProxy();\n }\n var path = el.path || pathProxyForDraw;\n if (!inBatch) {\n var fill = style.fill;\n var stroke = style.stroke;\n var hasFillGradient = hasFill && !!fill.colorStops;\n var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n var hasFillPattern = hasFill && !!fill.image;\n var hasStrokePattern = hasStroke && !!stroke.image;\n var fillGradient = void 0;\n var strokeGradient = void 0;\n var fillPattern = void 0;\n var strokePattern = void 0;\n var rect = void 0;\n if (hasFillGradient || hasStrokeGradient) {\n rect = el.getBoundingRect();\n }\n if (hasFillGradient) {\n fillGradient = el.__dirty\n ? getCanvasGradient(ctx, fill, rect)\n : el.__canvasFillGradient;\n el.__canvasFillGradient = fillGradient;\n }\n if (hasStrokeGradient) {\n strokeGradient = el.__dirty\n ? getCanvasGradient(ctx, stroke, rect)\n : el.__canvasStrokeGradient;\n el.__canvasStrokeGradient = strokeGradient;\n }\n if (hasFillPattern) {\n fillPattern = (el.__dirty || !el.__canvasFillPattern)\n ? createCanvasPattern(ctx, fill, el)\n : el.__canvasFillPattern;\n el.__canvasFillPattern = fillPattern;\n }\n if (hasStrokePattern) {\n strokePattern = (el.__dirty || !el.__canvasStrokePattern)\n ? createCanvasPattern(ctx, stroke, el)\n : el.__canvasStrokePattern;\n el.__canvasStrokePattern = fillPattern;\n }\n if (hasFillGradient) {\n ctx.fillStyle = fillGradient;\n }\n else if (hasFillPattern) {\n if (fillPattern) {\n ctx.fillStyle = fillPattern;\n }\n else {\n hasFill = false;\n }\n }\n if (hasStrokeGradient) {\n ctx.strokeStyle = strokeGradient;\n }\n else if (hasStrokePattern) {\n if (strokePattern) {\n ctx.strokeStyle = strokePattern;\n }\n else {\n hasStroke = false;\n }\n }\n }\n var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n var lineDashOffset = style.lineDashOffset;\n var ctxLineDash = !!ctx.setLineDash;\n var scale = el.getGlobalScale();\n path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\n if (lineDash) {\n var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n if (lineScale_1 && lineScale_1 !== 1) {\n lineDash = map(lineDash, function (rawVal) {\n return rawVal / lineScale_1;\n });\n lineDashOffset /= lineScale_1;\n }\n }\n var needsRebuild = true;\n if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\n || (lineDash && !ctxLineDash && hasStroke)) {\n path.setDPR(ctx.dpr);\n if (strokePart) {\n path.setContext(null);\n }\n else {\n path.setContext(ctx);\n needsRebuild = false;\n }\n path.reset();\n if (lineDash && !ctxLineDash) {\n path.setLineDash(lineDash);\n path.setLineDashOffset(lineDashOffset);\n }\n el.buildPath(path, el.shape, inBatch);\n path.toStatic();\n el.pathUpdated();\n }\n if (needsRebuild) {\n path.rebuildPath(ctx, strokePart ? strokePercent : 1);\n }\n if (lineDash && ctxLineDash) {\n ctx.setLineDash(lineDash);\n ctx.lineDashOffset = lineDashOffset;\n }\n if (!inBatch) {\n if (style.strokeFirst) {\n if (hasStroke) {\n doStrokePath(ctx, style);\n }\n if (hasFill) {\n doFillPath(ctx, style);\n }\n }\n else {\n if (hasFill) {\n doFillPath(ctx, style);\n }\n if (hasStroke) {\n doStrokePath(ctx, style);\n }\n }\n }\n if (lineDash && ctxLineDash) {\n ctx.setLineDash([]);\n }\n}\nfunction brushImage(ctx, el, style) {\n var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\n if (!image || !isImageReady(image)) {\n return;\n }\n var x = style.x || 0;\n var y = style.y || 0;\n var width = el.getWidth();\n var height = el.getHeight();\n var aspect = image.width / image.height;\n if (width == null && height != null) {\n width = height * aspect;\n }\n else if (height == null && width != null) {\n height = width / aspect;\n }\n else if (width == null && height == null) {\n width = image.width;\n height = image.height;\n }\n if (style.sWidth && style.sHeight) {\n var sx = style.sx || 0;\n var sy = style.sy || 0;\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n }\n else if (style.sx && style.sy) {\n var sx = style.sx;\n var sy = style.sy;\n var sWidth = width - sx;\n var sHeight = height - sy;\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n}\nfunction brushText(ctx, el, style) {\n var text = style.text;\n text != null && (text += '');\n if (text) {\n ctx.font = style.font || DEFAULT_FONT;\n ctx.textAlign = style.textAlign;\n ctx.textBaseline = style.textBaseline;\n var hasLineDash = void 0;\n if (ctx.setLineDash) {\n var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n var lineDashOffset = style.lineDashOffset;\n if (lineDash) {\n var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n if (lineScale_2 && lineScale_2 !== 1) {\n lineDash = map(lineDash, function (rawVal) {\n return rawVal / lineScale_2;\n });\n lineDashOffset /= lineScale_2;\n }\n ctx.setLineDash(lineDash);\n ctx.lineDashOffset = lineDashOffset;\n hasLineDash = true;\n }\n }\n if (style.strokeFirst) {\n if (styleHasStroke(style)) {\n ctx.strokeText(text, style.x, style.y);\n }\n if (styleHasFill(style)) {\n ctx.fillText(text, style.x, style.y);\n }\n }\n else {\n if (styleHasFill(style)) {\n ctx.fillText(text, style.x, style.y);\n }\n if (styleHasStroke(style)) {\n ctx.strokeText(text, style.x, style.y);\n }\n }\n if (hasLineDash) {\n ctx.setLineDash([]);\n }\n }\n}\nvar SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\nvar STROKE_PROPS = [\n ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\n];\nfunction bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\n var styleChanged = false;\n if (!forceSetAll) {\n prevStyle = prevStyle || {};\n if (style === prevStyle) {\n return false;\n }\n }\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\n }\n if (forceSetAll || style.blend !== prevStyle.blend) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\n }\n for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\n var propName = SHADOW_NUMBER_PROPS[i];\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx[propName] = ctx.dpr * (style[propName] || 0);\n }\n }\n if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\n }\n return styleChanged;\n}\nfunction bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\n var style = getStyle(el, scope.inHover);\n var prevStyle = forceSetAll\n ? null\n : (prevEl && getStyle(prevEl, scope.inHover) || {});\n if (style === prevStyle) {\n return false;\n }\n var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\n if (forceSetAll || style.fill !== prevStyle.fill) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.fillStyle = style.fill;\n }\n if (forceSetAll || style.stroke !== prevStyle.stroke) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.strokeStyle = style.stroke;\n }\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n }\n if (el.hasStroke()) {\n var lineWidth = style.lineWidth;\n var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\n if (ctx.lineWidth !== newLineWidth) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx.lineWidth = newLineWidth;\n }\n }\n for (var i = 0; i < STROKE_PROPS.length; i++) {\n var prop = STROKE_PROPS[i];\n var propName = prop[0];\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\n if (!styleChanged) {\n flushPathDrawn(ctx, scope);\n styleChanged = true;\n }\n ctx[propName] = style[propName] || prop[1];\n }\n }\n return styleChanged;\n}\nfunction bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\n return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\n}\nfunction setContextTransform(ctx, el) {\n var m = el.transform;\n var dpr = ctx.dpr || 1;\n if (m) {\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n }\n else {\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n }\n}\nfunction updateClipStatus(clipPaths, ctx, scope) {\n var allClipped = false;\n for (var i = 0; i < clipPaths.length; i++) {\n var clipPath = clipPaths[i];\n allClipped = allClipped || clipPath.isZeroArea();\n setContextTransform(ctx, clipPath);\n ctx.beginPath();\n clipPath.buildPath(ctx, clipPath.shape);\n ctx.clip();\n }\n scope.allClipped = allClipped;\n}\nfunction isTransformChanged(m0, m1) {\n if (m0 && m1) {\n return m0[0] !== m1[0]\n || m0[1] !== m1[1]\n || m0[2] !== m1[2]\n || m0[3] !== m1[3]\n || m0[4] !== m1[4]\n || m0[5] !== m1[5];\n }\n else if (!m0 && !m1) {\n return false;\n }\n return true;\n}\nvar DRAW_TYPE_PATH = 1;\nvar DRAW_TYPE_IMAGE = 2;\nvar DRAW_TYPE_TEXT = 3;\nvar DRAW_TYPE_INCREMENTAL = 4;\nfunction canPathBatch(style) {\n var hasFill = styleHasFill(style);\n var hasStroke = styleHasStroke(style);\n return !(style.lineDash\n || !(+hasFill ^ +hasStroke)\n || (hasFill && typeof style.fill !== 'string')\n || (hasStroke && typeof style.stroke !== 'string')\n || style.strokePercent < 1\n || style.strokeOpacity < 1\n || style.fillOpacity < 1);\n}\nfunction flushPathDrawn(ctx, scope) {\n scope.batchFill && ctx.fill();\n scope.batchStroke && ctx.stroke();\n scope.batchFill = '';\n scope.batchStroke = '';\n}\nfunction getStyle(el, inHover) {\n return inHover ? (el.__hoverStyle || el.style) : el.style;\n}\nexport function brushSingle(ctx, el) {\n brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\n}\nexport function brush(ctx, el, scope, isLast) {\n var m = el.transform;\n if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\n el.__dirty &= ~Element.REDARAW_BIT;\n el.__isRendered = false;\n return;\n }\n var clipPaths = el.__clipPaths;\n var prevElClipPaths = scope.prevElClipPaths;\n var forceSetTransform = false;\n var forceSetStyle = false;\n if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\n if (prevElClipPaths && prevElClipPaths.length) {\n flushPathDrawn(ctx, scope);\n ctx.restore();\n forceSetStyle = forceSetTransform = true;\n scope.prevElClipPaths = null;\n scope.allClipped = false;\n scope.prevEl = null;\n }\n if (clipPaths && clipPaths.length) {\n flushPathDrawn(ctx, scope);\n ctx.save();\n updateClipStatus(clipPaths, ctx, scope);\n forceSetTransform = true;\n }\n scope.prevElClipPaths = clipPaths;\n }\n if (scope.allClipped) {\n el.__isRendered = false;\n return;\n }\n el.beforeBrush && el.beforeBrush();\n el.innerBeforeBrush();\n var prevEl = scope.prevEl;\n if (!prevEl) {\n forceSetStyle = forceSetTransform = true;\n }\n var canBatchPath = el instanceof Path\n && el.autoBatch\n && canPathBatch(el.style);\n if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\n flushPathDrawn(ctx, scope);\n setContextTransform(ctx, el);\n }\n else if (!canBatchPath) {\n flushPathDrawn(ctx, scope);\n }\n var style = getStyle(el, scope.inHover);\n if (el instanceof Path) {\n if (scope.lastDrawType !== DRAW_TYPE_PATH) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_PATH;\n }\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\n ctx.beginPath();\n }\n brushPath(ctx, el, style, canBatchPath);\n if (canBatchPath) {\n scope.batchFill = style.fill || '';\n scope.batchStroke = style.stroke || '';\n }\n }\n else {\n if (el instanceof TSpan) {\n if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_TEXT;\n }\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n brushText(ctx, el, style);\n }\n else if (el instanceof ZRImage) {\n if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_IMAGE;\n }\n bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\n brushImage(ctx, el, style);\n }\n else if (el instanceof IncrementalDisplayable) {\n if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\n forceSetStyle = true;\n scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\n }\n brushIncremental(ctx, el, scope);\n }\n }\n if (canBatchPath && isLast) {\n flushPathDrawn(ctx, scope);\n }\n el.innerAfterBrush();\n el.afterBrush && el.afterBrush();\n scope.prevEl = el;\n el.__dirty = 0;\n el.__isRendered = true;\n}\nfunction brushIncremental(ctx, el, scope) {\n var displayables = el.getDisplayables();\n var temporalDisplayables = el.getTemporalDisplayables();\n ctx.save();\n var innerScope = {\n prevElClipPaths: null,\n prevEl: null,\n allClipped: false,\n viewWidth: scope.viewWidth,\n viewHeight: scope.viewHeight,\n inHover: scope.inHover\n };\n var i;\n var len;\n for (i = el.getCursor(), len = displayables.length; i < len; i++) {\n var displayable = displayables[i];\n displayable.beforeBrush && displayable.beforeBrush();\n displayable.innerBeforeBrush();\n brush(ctx, displayable, innerScope, i === len - 1);\n displayable.innerAfterBrush();\n displayable.afterBrush && displayable.afterBrush();\n innerScope.prevEl = displayable;\n }\n for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\n var displayable = temporalDisplayables[i_1];\n displayable.beforeBrush && displayable.beforeBrush();\n displayable.innerBeforeBrush();\n brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\n displayable.innerAfterBrush();\n displayable.afterBrush && displayable.afterBrush();\n innerScope.prevEl = displayable;\n }\n el.clearTemporalDisplayables();\n el.notClear = true;\n ctx.restore();\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport WeakMap from 'zrender/lib/core/WeakMap';\nimport LRU from 'zrender/lib/core/LRU';\nimport { defaults, createCanvas, map, isArray } from 'zrender/lib/core/util';\nimport { getLeastCommonMultiple } from './number';\nimport { createSymbol } from './symbol';\nimport { brushSingle } from 'zrender/lib/canvas/graphic';\nvar decalMap = new WeakMap();\nvar decalCache = new LRU(100);\nvar decalKeys = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight'];\nexport function createOrUpdatePatternFromDecal(decalObject, api) {\n if (decalObject === 'none') {\n return null;\n }\n\n var dpr = api.getDevicePixelRatio();\n var zr = api.getZr();\n var isSVG = zr.painter.type === 'svg';\n\n if (decalObject.dirty) {\n decalMap[\"delete\"](decalObject);\n }\n\n var oldPattern = decalMap.get(decalObject);\n\n if (oldPattern) {\n return oldPattern;\n }\n\n var decalOpt = defaults(decalObject, {\n symbol: 'rect',\n symbolSize: 1,\n symbolKeepAspect: true,\n color: 'rgba(0, 0, 0, 0.2)',\n backgroundColor: null,\n dashArrayX: 5,\n dashArrayY: 5,\n rotation: 0,\n maxTileWidth: 512,\n maxTileHeight: 512\n });\n\n if (decalOpt.backgroundColor === 'none') {\n decalOpt.backgroundColor = null;\n }\n\n var pattern = {\n repeat: 'repeat'\n };\n setPatternnSource(pattern);\n pattern.rotation = decalOpt.rotation;\n pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\n decalMap.set(decalObject, pattern);\n decalObject.dirty = false;\n return pattern;\n\n function setPatternnSource(pattern) {\n var keys = [dpr];\n var isValidKey = true;\n\n for (var i = 0; i < decalKeys.length; ++i) {\n var value = decalOpt[decalKeys[i]];\n var valueType = typeof value;\n\n if (value != null && !isArray(value) && valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') {\n isValidKey = false;\n break;\n }\n\n keys.push(value);\n }\n\n var cacheKey;\n\n if (isValidKey) {\n cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\n var cache = decalCache.get(cacheKey);\n\n if (cache) {\n isSVG ? pattern.svgElement = cache : pattern.image = cache;\n }\n }\n\n var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\n var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\n var symbolArray = normalizeSymbolArray(decalOpt.symbol);\n var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\n var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\n var canvas = !isSVG && createCanvas();\n var svgRoot = isSVG && zr.painter.createSVGElement('g');\n var pSize = getPatternSize();\n var ctx;\n\n if (canvas) {\n canvas.width = pSize.width * dpr;\n canvas.height = pSize.height * dpr;\n ctx = canvas.getContext('2d');\n }\n\n brushDecal();\n\n if (isValidKey) {\n decalCache.put(cacheKey, canvas || svgRoot);\n }\n\n pattern.image = canvas;\n pattern.svgElement = svgRoot;\n pattern.svgWidth = pSize.width;\n pattern.svgHeight = pSize.height;\n\n function getPatternSize() {\n var width = 1;\n\n for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\n width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\n }\n\n var symbolRepeats = 1;\n\n for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\n symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\n }\n\n width *= symbolRepeats;\n var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\n\n if (process.env.NODE_ENV !== 'production') {\n var warn = function (attrName) {\n console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\n };\n\n if (width > decalOpt.maxTileWidth) {\n warn('maxTileWidth');\n }\n\n if (height > decalOpt.maxTileHeight) {\n warn('maxTileHeight');\n }\n }\n\n return {\n width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\n height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\n };\n }\n\n function brushDecal() {\n if (ctx) {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n if (decalOpt.backgroundColor) {\n ctx.fillStyle = decalOpt.backgroundColor;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n }\n\n var ySum = 0;\n\n for (var i = 0; i < dashArrayY.length; ++i) {\n ySum += dashArrayY[i];\n }\n\n if (ySum <= 0) {\n return;\n }\n\n var y = -lineBlockLengthY;\n var yId = 0;\n var yIdTotal = 0;\n var xId0 = 0;\n\n while (y < pSize.height) {\n if (yId % 2 === 0) {\n var symbolYId = yIdTotal / 2 % symbolArray.length;\n var x = 0;\n var xId1 = 0;\n var xId1Total = 0;\n\n while (x < pSize.width * 2) {\n var xSum = 0;\n\n for (var i = 0; i < dashArrayX[xId0].length; ++i) {\n xSum += dashArrayX[xId0][i];\n }\n\n if (xSum <= 0) {\n break;\n }\n\n if (xId1 % 2 === 0) {\n var size = (1 - decalOpt.symbolSize) * 0.5;\n var left = x + dashArrayX[xId0][xId1] * size;\n var top_1 = y + dashArrayY[yId] * size;\n var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\n var height = dashArrayY[yId] * decalOpt.symbolSize;\n var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length;\n brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\n }\n\n x += dashArrayX[xId0][xId1];\n ++xId1Total;\n ++xId1;\n\n if (xId1 === dashArrayX[xId0].length) {\n xId1 = 0;\n }\n }\n\n ++xId0;\n\n if (xId0 === dashArrayX.length) {\n xId0 = 0;\n }\n }\n\n y += dashArrayY[yId];\n ++yIdTotal;\n ++yId;\n\n if (yId === dashArrayY.length) {\n yId = 0;\n }\n }\n\n function brushSymbol(x, y, width, height, symbolType) {\n var scale = isSVG ? 1 : dpr;\n var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\n\n if (isSVG) {\n svgRoot.appendChild(zr.painter.paintOne(symbol));\n } else {\n brushSingle(ctx, symbol);\n }\n }\n }\n }\n}\n\nfunction normalizeSymbolArray(symbol) {\n if (!symbol || symbol.length === 0) {\n return [['rect']];\n }\n\n if (typeof symbol === 'string') {\n return [[symbol]];\n }\n\n var isAllString = true;\n\n for (var i = 0; i < symbol.length; ++i) {\n if (typeof symbol[i] !== 'string') {\n isAllString = false;\n break;\n }\n }\n\n if (isAllString) {\n return normalizeSymbolArray([symbol]);\n }\n\n var result = [];\n\n for (var i = 0; i < symbol.length; ++i) {\n if (typeof symbol[i] === 'string') {\n result.push([symbol[i]]);\n } else {\n result.push(symbol[i]);\n }\n }\n\n return result;\n}\n\nfunction normalizeDashArrayX(dash) {\n if (!dash || dash.length === 0) {\n return [[0, 0]];\n }\n\n if (typeof dash === 'number') {\n var dashValue = Math.ceil(dash);\n return [[dashValue, dashValue]];\n }\n\n var isAllNumber = true;\n\n for (var i = 0; i < dash.length; ++i) {\n if (typeof dash[i] !== 'number') {\n isAllNumber = false;\n break;\n }\n }\n\n if (isAllNumber) {\n return normalizeDashArrayX([dash]);\n }\n\n var result = [];\n\n for (var i = 0; i < dash.length; ++i) {\n if (typeof dash[i] === 'number') {\n var dashValue = Math.ceil(dash[i]);\n result.push([dashValue, dashValue]);\n } else {\n var dashValue = map(dash[i], function (n) {\n return Math.ceil(n);\n });\n\n if (dashValue.length % 2 === 1) {\n result.push(dashValue.concat(dashValue));\n } else {\n result.push(dashValue);\n }\n }\n }\n\n return result;\n}\n\nfunction normalizeDashArrayY(dash) {\n if (!dash || typeof dash === 'object' && dash.length === 0) {\n return [0, 0];\n }\n\n if (typeof dash === 'number') {\n var dashValue_1 = Math.ceil(dash);\n return [dashValue_1, dashValue_1];\n }\n\n var dashValue = map(dash, function (n) {\n return Math.ceil(n);\n });\n return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\n}\n\nfunction getLineBlockLengthX(dash) {\n return map(dash, function (line) {\n return getLineBlockLengthY(line);\n });\n}\n\nfunction getLineBlockLengthY(dash) {\n var blockLength = 0;\n\n for (var i = 0; i < dash.length; ++i) {\n blockLength += dash[i];\n }\n\n if (dash.length % 2 === 1) {\n return blockLength * 2;\n }\n\n return blockLength;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createOrUpdatePatternFromDecal } from '../util/decal';\nexport default function decalVisual(ecModel, api) {\n ecModel.eachRawSeries(function (seriesModel) {\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n\n if (data.hasItemVisual()) {\n data.each(function (idx) {\n var decal = data.getItemVisual(idx, 'decal');\n\n if (decal) {\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n }\n });\n }\n\n var decal = data.getVisual('decal');\n\n if (decal) {\n var style = data.getVisual('style');\n style.decal = createOrUpdatePatternFromDecal(decal, api);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrender from 'zrender/lib/zrender';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport env from 'zrender/lib/core/env';\nimport timsort from 'zrender/lib/core/timsort';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport CoordinateSystemManager from './CoordinateSystem';\nimport OptionManager from '../model/OptionManager';\nimport backwardCompat from '../preprocessor/backwardCompat';\nimport dataStack from '../processor/dataStack';\nimport SeriesModel from '../model/Series';\nimport ComponentView from '../view/Component';\nimport ChartView from '../view/Chart';\nimport * as graphic from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { enterEmphasisWhenMouseOver, leaveEmphasisWhenMouseOut, isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, toggleSeriesBlurState, toggleSeriesBlurStateFromPayload, toggleSelectionFromPayload, updateSeriesElementSelection, getAllSelectedIndices, isSelectChangePayload, isHighDownPayload, HIGHLIGHT_ACTION_TYPE, DOWNPLAY_ACTION_TYPE, SELECT_ACTION_TYPE, UNSELECT_ACTION_TYPE, TOGGLE_SELECT_ACTION_TYPE, savePathStates, enterEmphasis, leaveEmphasis, leaveBlur, enterSelect, leaveSelect, enterBlur } from '../util/states';\nimport * as modelUtil from '../util/model';\nimport { throttle } from '../util/throttle';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style';\nimport loadingDefault from '../loading/default';\nimport Scheduler from './Scheduler';\nimport lightTheme from '../theme/light';\nimport darkTheme from '../theme/dark';\nimport mapDataStorage from '../coord/geo/mapDataStorage';\nimport { parseClassType } from '../util/clazz';\nimport { ECEventProcessor } from '../util/ECEventProcessor';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper';\nimport LabelManager from '../label/LabelManager';\nimport { deprecateLog, throwError } from '../util/log';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction';\nimport { registerExternalTransform } from '../data/helper/transform';\nimport { createLocaleObject, SYSTEM_LANG } from './locale';\nimport { findEventDispatcher } from '../util/event';\nimport decal from '../visual/decal';\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar indexOf = zrUtil.indexOf;\nvar hasWindow = typeof window !== 'undefined';\nexport var version = '5.0.1';\nexport var dependencies = {\n zrender: '5.0.3'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000;\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY_VISUAL_ARIA = 6000;\nvar PRIORITY_VISUAL_DECAL = 7000;\nexport var PRIORITY = {\n PROCESSOR: {\n FILTER: PRIORITY_PROCESSOR_FILTER,\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n },\n VISUAL: {\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\n CHART: PRIORITY_VISUAL_CHART,\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\n BRUSH: PRIORITY_VISUAL_BRUSH,\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\n ARIA: PRIORITY_VISUAL_ARIA,\n DECAL: PRIORITY_VISUAL_DECAL\n }\n};\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar OPTION_UPDATED_KEY = '__optionUpdated';\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\nvar CONNECT_STATUS_PENDING = 0;\nvar CONNECT_STATUS_UPDATING = 1;\nvar CONNECT_STATUS_UPDATED = 2;\n;\n\nfunction createRegisterEventWithLowercaseECharts(method) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (this.isDisposed()) {\n disposedWarning(this.id);\n return;\n }\n\n return toLowercaseNameAndCallEventful(this, method, args);\n };\n}\n\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return toLowercaseNameAndCallEventful(this, method, args);\n };\n}\n\nfunction toLowercaseNameAndCallEventful(host, method, args) {\n args[0] = args[0] && args[0].toLowerCase();\n return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter = function (_super) {\n __extends(MessageCenter, _super);\n\n function MessageCenter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return MessageCenter;\n}(Eventful);\n\nvar messageCenterProto = MessageCenter.prototype;\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar clearColorPalette;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar performPostUpdateFuncs;\nvar createExtensionAPI;\nvar enableConnect;\nvar setTransitionOpt;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts = function (_super) {\n __extends(ECharts, _super);\n\n function ECharts(dom, theme, opts) {\n var _this = _super.call(this, new ECEventProcessor()) || this;\n\n _this._chartsViews = [];\n _this._chartsMap = {};\n _this._componentsViews = [];\n _this._componentsMap = {};\n _this._pendingActions = [];\n opts = opts || {};\n\n if (typeof theme === 'string') {\n theme = themeStorage[theme];\n }\n\n _this._dom = dom;\n var defaultRenderer = 'canvas';\n var defaultUseDirtyRect = false;\n\n if (process.env.NODE_ENV !== 'production') {\n var root = hasWindow ? window : global;\n defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\n var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\n defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\n }\n\n var zr = _this._zr = zrender.init(dom, {\n renderer: opts.renderer || defaultRenderer,\n devicePixelRatio: opts.devicePixelRatio,\n width: opts.width,\n height: opts.height,\n useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\n });\n _this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n theme = zrUtil.clone(theme);\n theme && backwardCompat(theme, true);\n _this._theme = theme;\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\n _this._coordSysMgr = new CoordinateSystemManager();\n var api = _this._api = createExtensionAPI(_this);\n\n function prioritySortFunc(a, b) {\n return a.__prio - b.__prio;\n }\n\n timsort(visualFuncs, prioritySortFunc);\n timsort(dataProcessorFuncs, prioritySortFunc);\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\n _this._messageCenter = new MessageCenter();\n _this._labelManager = new LabelManager();\n\n _this._initEvents();\n\n _this.resize = zrUtil.bind(_this.resize, _this);\n zr.animation.on('frame', _this._onframe, _this);\n bindRenderedEvent(zr, _this);\n bindMouseEvent(zr, _this);\n zrUtil.setAsPrimitive(_this);\n return _this;\n }\n\n ECharts.prototype._onframe = function () {\n if (this._disposed) {\n return;\n }\n\n applyChangedStates(this);\n var scheduler = this._scheduler;\n\n if (this[OPTION_UPDATED_KEY]) {\n var silent = this[OPTION_UPDATED_KEY].silent;\n this[IN_MAIN_PROCESS_KEY] = true;\n prepare(this);\n updateMethods.update.call(this);\n\n this._zr.flush();\n\n this[IN_MAIN_PROCESS_KEY] = false;\n this[OPTION_UPDATED_KEY] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n } else if (scheduler.unfinished) {\n var remainTime = TEST_FRAME_REMAIN_TIME;\n var ecModel = this._model;\n var api = this._api;\n scheduler.unfinished = false;\n\n do {\n var startTime = +new Date();\n scheduler.performSeriesTasks(ecModel);\n scheduler.performDataProcessorTasks(ecModel);\n updateStreamModes(this, ecModel);\n scheduler.performVisualTasks(ecModel);\n renderSeries(this, this._model, api, 'remain');\n remainTime -= +new Date() - startTime;\n } while (remainTime > 0 && scheduler.unfinished);\n\n if (!scheduler.unfinished) {\n this._zr.flush();\n }\n }\n };\n\n ECharts.prototype.getDom = function () {\n return this._dom;\n };\n\n ECharts.prototype.getId = function () {\n return this.id;\n };\n\n ECharts.prototype.getZr = function () {\n return this._zr;\n };\n\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\n }\n\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var silent;\n var replaceMerge;\n var transitionOpt;\n\n if (isObject(notMerge)) {\n lazyUpdate = notMerge.lazyUpdate;\n silent = notMerge.silent;\n replaceMerge = notMerge.replaceMerge;\n transitionOpt = notMerge.transition;\n notMerge = notMerge.notMerge;\n }\n\n this[IN_MAIN_PROCESS_KEY] = true;\n\n if (!this._model || notMerge) {\n var optionManager = new OptionManager(this._api);\n var theme = this._theme;\n var ecModel = this._model = new GlobalModel();\n ecModel.scheduler = this._scheduler;\n ecModel.init(null, null, null, theme, this._locale, optionManager);\n }\n\n this._model.setOption(option, {\n replaceMerge: replaceMerge\n }, optionPreprocessorFuncs);\n\n setTransitionOpt(this, transitionOpt);\n\n if (lazyUpdate) {\n this[OPTION_UPDATED_KEY] = {\n silent: silent\n };\n this[IN_MAIN_PROCESS_KEY] = false;\n this.getZr().wakeUp();\n } else {\n prepare(this);\n updateMethods.update.call(this);\n\n this._zr.flush();\n\n this[OPTION_UPDATED_KEY] = false;\n this[IN_MAIN_PROCESS_KEY] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n }\n };\n\n ECharts.prototype.setTheme = function () {\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n };\n\n ECharts.prototype.getModel = function () {\n return this._model;\n };\n\n ECharts.prototype.getOption = function () {\n return this._model && this._model.getOption();\n };\n\n ECharts.prototype.getWidth = function () {\n return this._zr.getWidth();\n };\n\n ECharts.prototype.getHeight = function () {\n return this._zr.getHeight();\n };\n\n ECharts.prototype.getDevicePixelRatio = function () {\n return this._zr.painter.dpr || hasWindow && window.devicePixelRatio || 1;\n };\n\n ECharts.prototype.getRenderedCanvas = function (opts) {\n if (!env.canvasSupported) {\n return;\n }\n\n opts = zrUtil.extend({}, opts || {});\n opts.pixelRatio = opts.pixelRatio || 1;\n opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n var zr = this._zr;\n return zr.painter.getRenderedCanvas(opts);\n };\n\n ECharts.prototype.getSvgDataURL = function () {\n if (!env.svgSupported) {\n return;\n }\n\n var zr = this._zr;\n var list = zr.storage.getDisplayList();\n zrUtil.each(list, function (el) {\n el.stopAnimation(null, true);\n });\n return zr.painter.toDataURL();\n };\n\n ECharts.prototype.getDataURL = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n opts = opts || {};\n var excludeComponents = opts.excludeComponents;\n var ecModel = this._model;\n var excludesComponentViews = [];\n var self = this;\n each(excludeComponents, function (componentType) {\n ecModel.eachComponent({\n mainType: componentType\n }, function (component) {\n var view = self._componentsMap[component.__viewId];\n\n if (!view.group.ignore) {\n excludesComponentViews.push(view);\n view.group.ignore = true;\n }\n });\n });\n var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n each(excludesComponentViews, function (view) {\n view.group.ignore = false;\n });\n return url;\n };\n\n ECharts.prototype.getConnectedDataURL = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (!env.canvasSupported) {\n return;\n }\n\n var isSvg = opts.type === 'svg';\n var groupId = this.group;\n var mathMin = Math.min;\n var mathMax = Math.max;\n var MAX_NUMBER = Infinity;\n\n if (connectedGroups[groupId]) {\n var left_1 = MAX_NUMBER;\n var top_1 = MAX_NUMBER;\n var right_1 = -MAX_NUMBER;\n var bottom_1 = -MAX_NUMBER;\n var canvasList_1 = [];\n var dpr_1 = opts && opts.pixelRatio || 1;\n zrUtil.each(instances, function (chart, id) {\n if (chart.group === groupId) {\n var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n var boundingRect = chart.getDom().getBoundingClientRect();\n left_1 = mathMin(boundingRect.left, left_1);\n top_1 = mathMin(boundingRect.top, top_1);\n right_1 = mathMax(boundingRect.right, right_1);\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\n canvasList_1.push({\n dom: canvas,\n left: boundingRect.left,\n top: boundingRect.top\n });\n }\n });\n left_1 *= dpr_1;\n top_1 *= dpr_1;\n right_1 *= dpr_1;\n bottom_1 *= dpr_1;\n var width = right_1 - left_1;\n var height = bottom_1 - top_1;\n var targetCanvas = zrUtil.createCanvas();\n var zr_1 = zrender.init(targetCanvas, {\n renderer: isSvg ? 'svg' : 'canvas'\n });\n zr_1.resize({\n width: width,\n height: height\n });\n\n if (isSvg) {\n var content_1 = '';\n each(canvasList_1, function (item) {\n var x = item.left - left_1;\n var y = item.top - top_1;\n content_1 += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\n });\n zr_1.painter.getSvgRoot().innerHTML = content_1;\n\n if (opts.connectedBackgroundColor) {\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\n }\n\n zr_1.refreshImmediately();\n return zr_1.painter.toDataURL();\n } else {\n if (opts.connectedBackgroundColor) {\n zr_1.add(new graphic.Rect({\n shape: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n style: {\n fill: opts.connectedBackgroundColor\n }\n }));\n }\n\n each(canvasList_1, function (item) {\n var img = new graphic.Image({\n style: {\n x: item.left * dpr_1 - left_1,\n y: item.top * dpr_1 - top_1,\n image: item.dom\n }\n });\n zr_1.add(img);\n });\n zr_1.refreshImmediately();\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n }\n } else {\n return this.getDataURL(opts);\n }\n };\n\n ECharts.prototype.convertToPixel = function (finder, value) {\n return doConvertPixel(this, 'convertToPixel', finder, value);\n };\n\n ECharts.prototype.convertFromPixel = function (finder, value) {\n return doConvertPixel(this, 'convertFromPixel', finder, value);\n };\n\n ECharts.prototype.containPixel = function (finder, value) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var ecModel = this._model;\n var result;\n var findResult = modelUtil.parseFinder(ecModel, finder);\n zrUtil.each(findResult, function (models, key) {\n key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n var coordSys = model.coordinateSystem;\n\n if (coordSys && coordSys.containPoint) {\n result = result || !!coordSys.containPoint(value);\n } else if (key === 'seriesModels') {\n var view = this._chartsMap[model.__viewId];\n\n if (view && view.containPoint) {\n result = result || view.containPoint(value, model);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(key + ': containPoint is not supported');\n }\n }\n }, this);\n }, this);\n return !!result;\n };\n\n ECharts.prototype.getVisual = function (finder, visualType) {\n var ecModel = this._model;\n var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\n defaultMainType: 'series'\n });\n var seriesModel = parsedFinder.seriesModel;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!seriesModel) {\n console.warn('There is no specified seires model');\n }\n }\n\n var data = seriesModel.getData();\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\n return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\n };\n\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n return this._componentsMap[componentModel.__viewId];\n };\n\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\n return this._chartsMap[seriesModel.__viewId];\n };\n\n ECharts.prototype._initEvents = function () {\n var _this = this;\n\n each(MOUSE_EVENT_NAMES, function (eveName) {\n var handler = function (e) {\n var ecModel = _this.getModel();\n\n var el = e.target;\n var params;\n var isGlobalOut = eveName === 'globalout';\n\n if (isGlobalOut) {\n params = {};\n } else {\n el && findEventDispatcher(el, function (parent) {\n var ecData = getECData(parent);\n\n if (ecData && ecData.dataIndex != null) {\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\n params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\n return true;\n } else if (ecData.eventData) {\n params = zrUtil.extend({}, ecData.eventData);\n return true;\n }\n }, true);\n }\n\n if (params) {\n var componentType = params.componentType;\n var componentIndex = params.componentIndex;\n\n if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n componentType = 'series';\n componentIndex = params.seriesIndex;\n }\n\n var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!isGlobalOut && !(model && view)) {\n console.warn('model or view can not be found by params');\n }\n }\n\n params.event = e;\n params.type = eveName;\n _this._$eventProcessor.eventInfo = {\n targetEl: el,\n packedEvent: params,\n model: model,\n view: view\n };\n\n _this.trigger(eveName, params);\n }\n };\n\n handler.zrEventfulCallAtLast = true;\n\n _this._zr.on(eveName, handler, _this);\n });\n each(eventActionMap, function (actionType, eventType) {\n _this._messageCenter.on(eventType, function (event) {\n this.trigger(eventType, event);\n }, _this);\n });\n each(['selectchanged'], function (eventType) {\n _this._messageCenter.on(eventType, function (event) {\n this.trigger(eventType, event);\n }, _this);\n });\n handleLegacySelectEvents(this._messageCenter, this, this._api);\n };\n\n ECharts.prototype.isDisposed = function () {\n return this._disposed;\n };\n\n ECharts.prototype.clear = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this.setOption({\n series: []\n }, true);\n };\n\n ECharts.prototype.dispose = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._disposed = true;\n modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n var api = this._api;\n var ecModel = this._model;\n each(this._componentsViews, function (component) {\n component.dispose(ecModel, api);\n });\n each(this._chartsViews, function (chart) {\n chart.dispose(ecModel, api);\n });\n\n this._zr.dispose();\n\n delete instances[this.id];\n };\n\n ECharts.prototype.resize = function (opts) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\n }\n\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._zr.resize(opts);\n\n var ecModel = this._model;\n this._loadingFX && this._loadingFX.resize();\n\n if (!ecModel) {\n return;\n }\n\n var optionChanged = ecModel.resetOption('media');\n var silent = opts && opts.silent;\n this[IN_MAIN_PROCESS_KEY] = true;\n optionChanged && prepare(this);\n updateMethods.update.call(this, {\n type: 'resize',\n animation: {\n duration: 0\n }\n });\n this[IN_MAIN_PROCESS_KEY] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n };\n\n ECharts.prototype.showLoading = function (name, cfg) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (isObject(name)) {\n cfg = name;\n name = '';\n }\n\n name = name || 'default';\n this.hideLoading();\n\n if (!loadingEffects[name]) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Loading effects ' + name + ' not exists.');\n }\n\n return;\n }\n\n var el = loadingEffects[name](this._api, cfg);\n var zr = this._zr;\n this._loadingFX = el;\n zr.add(el);\n };\n\n ECharts.prototype.hideLoading = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._loadingFX && this._zr.remove(this._loadingFX);\n this._loadingFX = null;\n };\n\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\n var payload = zrUtil.extend({}, eventObj);\n payload.type = eventActionMap[eventObj.type];\n return payload;\n };\n\n ECharts.prototype.dispatchAction = function (payload, opt) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n if (!isObject(opt)) {\n opt = {\n silent: !!opt\n };\n }\n\n if (!actions[payload.type]) {\n return;\n }\n\n if (!this._model) {\n return;\n }\n\n if (this[IN_MAIN_PROCESS_KEY]) {\n this._pendingActions.push(payload);\n\n return;\n }\n\n var silent = opt.silent;\n doDispatchAction.call(this, payload, silent);\n var flush = opt.flush;\n\n if (flush) {\n this._zr.flush();\n } else if (flush !== false && env.browser.weChat) {\n this._throttledZrFlush();\n }\n\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n };\n\n ECharts.prototype.updateLabelLayout = function () {\n var labelManager = this._labelManager;\n labelManager.updateLayoutConfig(this._api);\n labelManager.layout(this._api);\n labelManager.processLabelsOverall();\n };\n\n ECharts.prototype.appendData = function (params) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var seriesIndex = params.seriesIndex;\n var ecModel = this.getModel();\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(params.data && seriesModel);\n }\n\n seriesModel.appendData(params);\n this._scheduler.unfinished = true;\n this.getZr().wakeUp();\n };\n\n ECharts.internalField = function () {\n prepare = function (ecIns) {\n var scheduler = ecIns._scheduler;\n scheduler.restorePipelines(ecIns._model);\n scheduler.prepareStageTasks();\n prepareView(ecIns, true);\n prepareView(ecIns, false);\n scheduler.plan();\n };\n\n prepareView = function (ecIns, isComponent) {\n var ecModel = ecIns._model;\n var scheduler = ecIns._scheduler;\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n var zr = ecIns._zr;\n var api = ecIns._api;\n\n for (var i = 0; i < viewList.length; i++) {\n viewList[i].__alive = false;\n }\n\n isComponent ? ecModel.eachComponent(function (componentType, model) {\n componentType !== 'series' && doPrepare(model);\n }) : ecModel.eachSeries(doPrepare);\n\n function doPrepare(model) {\n var requireNewView = model.__requireNewView;\n model.__requireNewView = false;\n var viewId = '_ec_' + model.id + '_' + model.type;\n var view = !requireNewView && viewMap[viewId];\n\n if (!view) {\n var classType = parseClassType(model.type);\n var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(Clazz, classType.sub + ' does not exist.');\n }\n\n view = new Clazz();\n view.init(ecModel, api);\n viewMap[viewId] = view;\n viewList.push(view);\n zr.add(view.group);\n }\n\n model.__viewId = view.__id = viewId;\n view.__alive = true;\n view.__model = model;\n view.group.__ecComponentInfo = {\n mainType: model.mainType,\n index: model.componentIndex\n };\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\n }\n\n for (var i = 0; i < viewList.length;) {\n var view = viewList[i];\n\n if (!view.__alive) {\n !isComponent && view.renderTask.dispose();\n zr.remove(view.group);\n view.dispose(ecModel, api);\n viewList.splice(i, 1);\n\n if (viewMap[view.__id] === view) {\n delete viewMap[view.__id];\n }\n\n view.__id = view.group.__ecComponentInfo = null;\n } else {\n i++;\n }\n }\n };\n\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\n var ecModel = ecIns._model;\n ecModel.setUpdatePayload(payload);\n\n if (!mainType) {\n each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\n return;\n }\n\n var query = {};\n query[mainType + 'Id'] = payload[mainType + 'Id'];\n query[mainType + 'Index'] = payload[mainType + 'Index'];\n query[mainType + 'Name'] = payload[mainType + 'Name'];\n var condition = {\n mainType: mainType,\n query: query\n };\n subType && (condition.subType = subType);\n var excludeSeriesId = payload.excludeSeriesId;\n var excludeSeriesIdMap;\n\n if (excludeSeriesId != null) {\n excludeSeriesIdMap = zrUtil.createHashMap();\n each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\n var modelId = modelUtil.convertOptionIdName(id, null);\n\n if (modelId != null) {\n excludeSeriesIdMap.set(modelId, true);\n }\n });\n }\n\n ecModel && ecModel.eachComponent(condition, function (model) {\n if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\n if (isHighDownPayload(payload) && !payload.notBlur) {\n if (model instanceof SeriesModel) {\n toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\n }\n } else if (isSelectChangePayload(payload)) {\n if (model instanceof SeriesModel) {\n toggleSelectionFromPayload(model, payload, ecIns._api);\n updateSeriesElementSelection(model);\n markStatusToUpdate(ecIns);\n }\n }\n\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n }\n }, ecIns);\n\n function callView(view) {\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n }\n };\n\n updateMethods = {\n prepareAndUpdate: function (payload) {\n prepare(this);\n updateMethods.update.call(this, payload);\n },\n update: function (payload) {\n var ecModel = this._model;\n var api = this._api;\n var zr = this._zr;\n var coordSysMgr = this._coordSysMgr;\n var scheduler = this._scheduler;\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n scheduler.restoreData(ecModel, payload);\n scheduler.performSeriesTasks(ecModel);\n coordSysMgr.create(ecModel, api);\n scheduler.performDataProcessorTasks(ecModel, payload);\n updateStreamModes(this, ecModel);\n coordSysMgr.update(ecModel, api);\n clearColorPalette(ecModel);\n scheduler.performVisualTasks(ecModel, payload);\n render(this, ecModel, api, payload);\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n var darkMode = ecModel.get('darkMode');\n\n if (!env.canvasSupported) {\n var colorArr = colorTool.parse(backgroundColor);\n backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n if (colorArr[3] === 0) {\n backgroundColor = 'transparent';\n }\n } else {\n zr.setBackgroundColor(backgroundColor);\n\n if (darkMode != null && darkMode !== 'auto') {\n zr.setDarkMode(darkMode);\n }\n }\n\n performPostUpdateFuncs(ecModel, api);\n },\n updateTransform: function (payload) {\n var _this = this;\n\n var ecModel = this._model;\n var api = this._api;\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n var componentDirtyList = [];\n ecModel.eachComponent(function (componentType, componentModel) {\n if (componentType === 'series') {\n return;\n }\n\n var componentView = _this.getViewOfComponentModel(componentModel);\n\n if (componentView && componentView.__alive) {\n if (componentView.updateTransform) {\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n result && result.update && componentDirtyList.push(componentView);\n } else {\n componentDirtyList.push(componentView);\n }\n }\n });\n var seriesDirtyMap = zrUtil.createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n var chartView = _this._chartsMap[seriesModel.__viewId];\n\n if (chartView.updateTransform) {\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n } else {\n seriesDirtyMap.set(seriesModel.uid, 1);\n }\n });\n clearColorPalette(ecModel);\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n setDirty: true,\n dirtyMap: seriesDirtyMap\n });\n\n renderSeries(this, ecModel, api, payload, seriesDirtyMap);\n performPostUpdateFuncs(ecModel, this._api);\n },\n updateView: function (payload) {\n var ecModel = this._model;\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n ChartView.markUpdateMethod(payload, 'updateView');\n clearColorPalette(ecModel);\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n setDirty: true\n });\n\n render(this, this._model, this._api, payload);\n performPostUpdateFuncs(ecModel, this._api);\n },\n updateVisual: function (payload) {\n var _this = this;\n\n var ecModel = this._model;\n\n if (!ecModel) {\n return;\n }\n\n ecModel.setUpdatePayload(payload);\n ecModel.eachSeries(function (seriesModel) {\n seriesModel.getData().clearAllVisual();\n });\n ChartView.markUpdateMethod(payload, 'updateVisual');\n clearColorPalette(ecModel);\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n visualType: 'visual',\n setDirty: true\n });\n\n ecModel.eachComponent(function (componentType, componentModel) {\n if (componentType !== 'series') {\n var componentView = _this.getViewOfComponentModel(componentModel);\n\n componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\n }\n });\n ecModel.eachSeries(function (seriesModel) {\n var chartView = _this._chartsMap[seriesModel.__viewId];\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\n });\n performPostUpdateFuncs(ecModel, this._api);\n },\n updateLayout: function (payload) {\n updateMethods.update.call(this, payload);\n }\n };\n\n doConvertPixel = function (ecIns, methodName, finder, value) {\n if (ecIns._disposed) {\n disposedWarning(ecIns.id);\n return;\n }\n\n var ecModel = ecIns._model;\n\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\n\n var result;\n var parsedFinder = modelUtil.parseFinder(ecModel, finder);\n\n for (var i = 0; i < coordSysList.length; i++) {\n var coordSys = coordSysList[i];\n\n if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\n return result;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\n }\n };\n\n updateStreamModes = function (ecIns, ecModel) {\n var chartsMap = ecIns._chartsMap;\n var scheduler = ecIns._scheduler;\n ecModel.eachSeries(function (seriesModel) {\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n });\n };\n\n doDispatchAction = function (payload, silent) {\n var _this = this;\n\n var ecModel = this.getModel();\n var payloadType = payload.type;\n var escapeConnect = payload.escapeConnect;\n var actionWrap = actions[payloadType];\n var actionInfo = actionWrap.actionInfo;\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\n var updateMethod = cptTypeTmp.pop();\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\n this[IN_MAIN_PROCESS_KEY] = true;\n var payloads = [payload];\n var batched = false;\n\n if (payload.batch) {\n batched = true;\n payloads = zrUtil.map(payload.batch, function (item) {\n item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n item.batch = null;\n return item;\n });\n }\n\n var eventObjBatch = [];\n var eventObj;\n var isSelectChange = isSelectChangePayload(payload);\n var isStatusChange = isHighDownPayload(payload) || isSelectChange;\n each(payloads, function (batchItem) {\n eventObj = actionWrap.action(batchItem, _this._model, _this._api);\n eventObj = eventObj || zrUtil.extend({}, batchItem);\n eventObj.type = actionInfo.event || eventObj.type;\n eventObjBatch.push(eventObj);\n\n if (isStatusChange) {\n updateDirectly(_this, updateMethod, batchItem, 'series');\n markStatusToUpdate(_this);\n } else if (cptType) {\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\n }\n });\n\n if (updateMethod !== 'none' && !isStatusChange && !cptType) {\n if (this[OPTION_UPDATED_KEY]) {\n prepare(this);\n updateMethods.update.call(this, payload);\n this[OPTION_UPDATED_KEY] = false;\n } else {\n updateMethods[updateMethod].call(this, payload);\n }\n }\n\n if (batched) {\n eventObj = {\n type: actionInfo.event || payloadType,\n escapeConnect: escapeConnect,\n batch: eventObjBatch\n };\n } else {\n eventObj = eventObjBatch[0];\n }\n\n this[IN_MAIN_PROCESS_KEY] = false;\n\n if (!silent) {\n var messageCenter = this._messageCenter;\n messageCenter.trigger(eventObj.type, eventObj);\n\n if (isSelectChange) {\n var newObj = {\n type: 'selectchanged',\n escapeConnect: escapeConnect,\n selected: getAllSelectedIndices(ecModel),\n isFromClick: payload.isFromClick || false,\n fromAction: payload.type,\n fromActionPayload: payload\n };\n messageCenter.trigger(newObj.type, newObj);\n }\n }\n };\n\n flushPendingActions = function (silent) {\n var pendingActions = this._pendingActions;\n\n while (pendingActions.length) {\n var payload = pendingActions.shift();\n doDispatchAction.call(this, payload, silent);\n }\n };\n\n triggerUpdatedEvent = function (silent) {\n !silent && this.trigger('updated');\n };\n\n bindRenderedEvent = function (zr, ecIns) {\n zr.on('rendered', function (params) {\n ecIns.trigger('rendered', params);\n\n if (zr.animation.isFinished() && !ecIns[OPTION_UPDATED_KEY] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n ecIns.trigger('finished');\n }\n });\n };\n\n bindMouseEvent = function (zr, ecIns) {\n zr.on('mouseover', function (e) {\n var el = e.target;\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n if (dispatcher) {\n var ecData = getECData(dispatcher);\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\n enterEmphasisWhenMouseOver(dispatcher, e);\n markStatusToUpdate(ecIns);\n }\n }).on('mouseout', function (e) {\n var el = e.target;\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n if (dispatcher) {\n var ecData = getECData(dispatcher);\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\n leaveEmphasisWhenMouseOut(dispatcher, e);\n markStatusToUpdate(ecIns);\n }\n }).on('click', function (e) {\n var el = e.target;\n var dispatcher = findEventDispatcher(el, function (target) {\n return getECData(target).dataIndex != null;\n }, true);\n\n if (dispatcher) {\n var actionType = dispatcher.selected ? 'unselect' : 'select';\n var ecData = getECData(dispatcher);\n\n ecIns._api.dispatchAction({\n type: actionType,\n dataType: ecData.dataType,\n dataIndexInside: ecData.dataIndex,\n seriesIndex: ecData.seriesIndex,\n isFromClick: true\n });\n }\n });\n };\n\n clearColorPalette = function (ecModel) {\n ecModel.clearColorPalette();\n ecModel.eachSeries(function (seriesModel) {\n seriesModel.clearColorPalette();\n });\n };\n\n render = function (ecIns, ecModel, api, payload) {\n renderComponents(ecIns, ecModel, api, payload);\n each(ecIns._chartsViews, function (chart) {\n chart.__alive = false;\n });\n renderSeries(ecIns, ecModel, api, payload);\n each(ecIns._chartsViews, function (chart) {\n if (!chart.__alive) {\n chart.remove(ecModel, api);\n }\n });\n };\n\n renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\n each(dirtyList || ecIns._componentsViews, function (componentView) {\n var componentModel = componentView.__model;\n clearStates(componentModel, componentView);\n componentView.render(componentModel, ecModel, api, payload);\n updateZ(componentModel, componentView);\n updateStates(componentModel, componentView);\n });\n };\n\n renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\n var scheduler = ecIns._scheduler;\n var labelManager = ecIns._labelManager;\n labelManager.clearLabels();\n var unfinished = false;\n ecModel.eachSeries(function (seriesModel) {\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n chartView.__alive = true;\n var renderTask = chartView.renderTask;\n scheduler.updatePayload(renderTask, payload);\n clearStates(seriesModel, chartView);\n\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n renderTask.dirty();\n }\n\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\n unfinished = true;\n }\n\n seriesModel.__transientTransitionOpt = null;\n chartView.group.silent = !!seriesModel.get('silent');\n updateBlend(seriesModel, chartView);\n updateSeriesElementSelection(seriesModel);\n labelManager.addLabelsOfSeries(chartView);\n });\n scheduler.unfinished = unfinished || scheduler.unfinished;\n labelManager.updateLayoutConfig(api);\n labelManager.layout(api);\n labelManager.processLabelsOverall();\n ecModel.eachSeries(function (seriesModel) {\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n updateZ(seriesModel, chartView);\n updateStates(seriesModel, chartView);\n });\n updateHoverLayerStatus(ecIns, ecModel);\n };\n\n performPostUpdateFuncs = function (ecModel, api) {\n each(postUpdateFuncs, function (func) {\n func(ecModel, api);\n });\n };\n\n markStatusToUpdate = function (ecIns) {\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\n ecIns.getZr().wakeUp();\n };\n\n applyChangedStates = function (ecIns) {\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n return;\n }\n\n ecIns.getZr().storage.traverse(function (el) {\n if (graphic.isElementRemoved(el)) {\n return;\n }\n\n applyElementStates(el);\n });\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\n };\n\n function applyElementStates(el) {\n var newStates = [];\n var oldStates = el.currentStates;\n\n for (var i = 0; i < oldStates.length; i++) {\n var stateName = oldStates[i];\n\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\n newStates.push(stateName);\n }\n }\n\n if (el.selected && el.states.select) {\n newStates.push('select');\n }\n\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\n newStates.push('emphasis');\n } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\n newStates.push('blur');\n }\n\n el.useStates(newStates);\n }\n\n function updateHoverLayerStatus(ecIns, ecModel) {\n var zr = ecIns._zr;\n var storage = zr.storage;\n var elCount = 0;\n storage.traverse(function (el) {\n if (!el.isGroup) {\n elCount++;\n }\n });\n\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.preventUsingHoverLayer) {\n return;\n }\n\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n if (chartView.__alive) {\n chartView.group.traverse(function (el) {\n if (el.states.emphasis) {\n el.states.emphasis.hoverLayer = true;\n }\n });\n }\n });\n }\n }\n\n ;\n\n function updateBlend(seriesModel, chartView) {\n var blendMode = seriesModel.get('blendMode') || null;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\n console.warn('Only canvas support blendMode');\n }\n }\n\n chartView.group.traverse(function (el) {\n if (!el.isGroup) {\n el.style.blend = blendMode;\n }\n\n if (el.eachPendingDisplayable) {\n el.eachPendingDisplayable(function (displayable) {\n displayable.style.blend = blendMode;\n });\n }\n });\n }\n\n ;\n\n function updateZ(model, view) {\n if (model.preventAutoZ) {\n return;\n }\n\n var z = model.get('z');\n var zlevel = model.get('zlevel');\n view.group.traverse(function (el) {\n if (!el.isGroup) {\n z != null && (el.z = z);\n zlevel != null && (el.zlevel = zlevel);\n var label = el.getTextContent();\n var labelLine = el.getTextGuideLine();\n\n if (label) {\n label.z = el.z;\n label.zlevel = el.zlevel;\n label.z2 = el.z2 + 2;\n }\n\n if (labelLine) {\n var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\n labelLine.z = el.z;\n labelLine.zlevel = el.zlevel;\n labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\n }\n }\n });\n }\n\n ;\n\n function clearStates(model, view) {\n view.group.traverse(function (el) {\n if (graphic.isElementRemoved(el)) {\n return;\n }\n\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine();\n\n if (el.stateTransition) {\n el.stateTransition = null;\n }\n\n if (textContent && textContent.stateTransition) {\n textContent.stateTransition = null;\n }\n\n if (textGuide && textGuide.stateTransition) {\n textGuide.stateTransition = null;\n }\n\n if (el.hasState()) {\n el.prevStates = el.currentStates;\n el.clearStates();\n } else if (el.prevStates) {\n el.prevStates = null;\n }\n });\n }\n\n function updateStates(model, view) {\n var stateAnimationModel = model.getModel('stateAnimation');\n var enableAnimation = model.isAnimationEnabled();\n var duration = stateAnimationModel.get('duration');\n var stateTransition = duration > 0 ? {\n duration: duration,\n delay: stateAnimationModel.get('delay'),\n easing: stateAnimationModel.get('easing')\n } : null;\n view.group.traverse(function (el) {\n if (el.states && el.states.emphasis) {\n if (graphic.isElementRemoved(el)) {\n return;\n }\n\n if (el instanceof graphic.Path) {\n savePathStates(el);\n }\n\n if (el.__dirty) {\n var prevStates = el.prevStates;\n\n if (prevStates) {\n el.useStates(prevStates);\n }\n }\n\n if (enableAnimation) {\n el.stateTransition = stateTransition;\n var textContent = el.getTextContent();\n var textGuide = el.getTextGuideLine();\n\n if (textContent) {\n textContent.stateTransition = stateTransition;\n }\n\n if (textGuide) {\n textGuide.stateTransition = stateTransition;\n }\n }\n\n if (el.__dirty) {\n applyElementStates(el);\n }\n }\n });\n }\n\n ;\n\n createExtensionAPI = function (ecIns) {\n return new (function (_super) {\n __extends(class_1, _super);\n\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n class_1.prototype.getCoordinateSystems = function () {\n return ecIns._coordSysMgr.getCoordinateSystems();\n };\n\n class_1.prototype.getComponentByElement = function (el) {\n while (el) {\n var modelInfo = el.__ecComponentInfo;\n\n if (modelInfo != null) {\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\n }\n\n el = el.parent;\n }\n };\n\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\n enterEmphasis(el, highlightDigit);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\n leaveEmphasis(el, highlightDigit);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.enterBlur = function (el) {\n enterBlur(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.leaveBlur = function (el) {\n leaveBlur(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.enterSelect = function (el) {\n enterSelect(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.leaveSelect = function (el) {\n leaveSelect(el);\n markStatusToUpdate(ecIns);\n };\n\n class_1.prototype.getModel = function () {\n return ecIns.getModel();\n };\n\n class_1.prototype.getViewOfComponentModel = function (componentModel) {\n return ecIns.getViewOfComponentModel(componentModel);\n };\n\n class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\n return ecIns.getViewOfSeriesModel(seriesModel);\n };\n\n return class_1;\n }(ExtensionAPI))(ecIns);\n };\n\n enableConnect = function (chart) {\n function updateConnectedChartsStatus(charts, status) {\n for (var i = 0; i < charts.length; i++) {\n var otherChart = charts[i];\n otherChart[CONNECT_STATUS_KEY] = status;\n }\n }\n\n each(eventActionMap, function (actionType, eventType) {\n chart._messageCenter.on(eventType, function (event) {\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\n if (event && event.escapeConnect) {\n return;\n }\n\n var action_1 = chart.makeActionFromEvent(event);\n var otherCharts_1 = [];\n each(instances, function (otherChart) {\n if (otherChart !== chart && otherChart.group === chart.group) {\n otherCharts_1.push(otherChart);\n }\n });\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\n each(otherCharts_1, function (otherChart) {\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\n otherChart.dispatchAction(action_1);\n }\n });\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\n }\n });\n });\n };\n\n setTransitionOpt = function (chart, transitionOpt) {\n var ecModel = chart._model;\n zrUtil.each(modelUtil.normalizeToArray(transitionOpt), function (transOpt) {\n var errMsg;\n var fromOpt = transOpt.from;\n var toOpt = transOpt.to;\n\n if (toOpt == null) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`transition.to` must be specified.';\n }\n\n throwError(errMsg);\n }\n\n var finderOpt = {\n includeMainTypes: ['series'],\n enableAll: false,\n enableNone: false\n };\n var fromResult = fromOpt ? modelUtil.parseFinder(ecModel, fromOpt, finderOpt) : null;\n var toResult = modelUtil.parseFinder(ecModel, toOpt, finderOpt);\n var toSeries = toResult.seriesModel;\n\n if (toSeries == null) {\n errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`transition` is only supported on series.';\n }\n }\n\n if (fromResult && fromResult.seriesModel !== toSeries) {\n errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\n }\n }\n\n if (errMsg != null) {\n throwError(errMsg);\n }\n\n toSeries.__transientTransitionOpt = {\n from: fromOpt ? fromOpt.dimension : null,\n to: toOpt.dimension,\n dividingMethod: transOpt.dividingMethod\n };\n });\n };\n }();\n\n return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n\nechartsProto.one = function (eventName, cb, ctx) {\n var self = this;\n deprecateLog('ECharts#one is deprecated.');\n\n function wrapped() {\n var args2 = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args2[_i] = arguments[_i];\n }\n\n cb && cb.apply && cb.apply(this, args2);\n self.off(eventName, wrapped);\n }\n\n ;\n this.on.call(this, eventName, wrapped, ctx);\n};\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n\nfunction disposedWarning(id) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Instance ' + id + ' has been disposed');\n }\n}\n\nvar actions = {};\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\nvar postInitFuncs = [];\nvar postUpdateFuncs = [];\nvar visualFuncs = [];\nvar themeStorage = {};\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = +new Date() - 0;\nvar groupIdBase = +new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\nexport function init(dom, theme, opts) {\n if (process.env.NODE_ENV !== 'production') {\n if (!dom) {\n throw new Error('Initialize failed: invalid dom.');\n }\n }\n\n var existInstance = getInstanceByDom(dom);\n\n if (existInstance) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('There is a chart instance already initialized on the dom.');\n }\n\n return existInstance;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (zrUtil.isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\n console.warn('Can\\'t get DOM width or height. Please check ' + 'dom.clientWidth and dom.clientHeight. They should not be 0.' + 'For example, you may need to call this in the callback ' + 'of window.onload.');\n }\n }\n\n var chart = new ECharts(dom, theme, opts);\n chart.id = 'ec_' + idBase++;\n instances[chart.id] = chart;\n modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n enableConnect(chart);\n each(postInitFuncs, function (postInitFunc) {\n postInitFunc(chart);\n });\n return chart;\n}\nexport function connect(groupId) {\n if (zrUtil.isArray(groupId)) {\n var charts = groupId;\n groupId = null;\n each(charts, function (chart) {\n if (chart.group != null) {\n groupId = chart.group;\n }\n });\n groupId = groupId || 'g_' + groupIdBase++;\n each(charts, function (chart) {\n chart.group = groupId;\n });\n }\n\n connectedGroups[groupId] = true;\n return groupId;\n}\nexport function disConnect(groupId) {\n connectedGroups[groupId] = false;\n}\nexport var disconnect = disConnect;\nexport function dispose(chart) {\n if (typeof chart === 'string') {\n chart = instances[chart];\n } else if (!(chart instanceof ECharts)) {\n chart = getInstanceByDom(chart);\n }\n\n if (chart instanceof ECharts && !chart.isDisposed()) {\n chart.dispose();\n }\n}\nexport function getInstanceByDom(dom) {\n return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\nexport function getInstanceById(key) {\n return instances[key];\n}\nexport function registerTheme(name, theme) {\n themeStorage[name] = theme;\n}\nexport function registerPreprocessor(preprocessorFunc) {\n if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\n optionPreprocessorFuncs.push(preprocessorFunc);\n }\n}\nexport function registerProcessor(priority, processor) {\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\n}\nexport function registerPostInit(postInitFunc) {\n if (indexOf(postInitFuncs, postInitFunc) < 0) {\n postInitFunc && postInitFuncs.push(postInitFunc);\n }\n}\nexport function registerPostUpdate(postUpdateFunc) {\n if (indexOf(postUpdateFuncs, postUpdateFunc) < 0) {\n postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\n }\n}\nexport function registerAction(actionInfo, eventName, action) {\n if (typeof eventName === 'function') {\n action = eventName;\n eventName = '';\n }\n\n var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n event: eventName\n }][0];\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n eventName = actionInfo.event;\n\n if (eventActionMap[eventName]) {\n return;\n }\n\n assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n if (!actions[actionType]) {\n actions[actionType] = {\n action: action,\n actionInfo: actionInfo\n };\n }\n\n eventActionMap[eventName] = actionType;\n}\nexport function registerCoordinateSystem(type, coordSysCreator) {\n CoordinateSystemManager.register(type, coordSysCreator);\n}\nexport function getCoordinateSystemDimensions(type) {\n var coordSysCreator = CoordinateSystemManager.get(type);\n\n if (coordSysCreator) {\n return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n }\n}\nexport { registerLocale } from './locale';\n\nfunction registerLayout(priority, layoutTask) {\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n\nfunction registerVisual(priority, visualTask) {\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n\nexport { registerLayout, registerVisual };\nvar registeredTasks = [];\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n if (isFunction(priority) || isObject(priority)) {\n fn = priority;\n priority = defaultPriority;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isNaN(priority) || priority == null) {\n throw new Error('Illegal priority');\n }\n\n each(targetList, function (wrap) {\n assert(wrap.__raw !== fn);\n });\n }\n\n if (indexOf(registeredTasks, fn) >= 0) {\n return;\n }\n\n registeredTasks.push(fn);\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n stageHandler.__prio = priority;\n stageHandler.__raw = fn;\n targetList.push(stageHandler);\n}\n\nexport function registerLoading(name, loadingFx) {\n loadingEffects[name] = loadingFx;\n}\nexport function setCanvasCreator(creator) {\n zrUtil.$override('createCanvas', creator);\n}\nexport function registerMap(mapName, geoJson, specialAreas) {\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n var records = mapDataStorage.retrieveMap(mapName);\n return records && records[0] && {\n geoJson: records[0].geoJSON,\n specialAreas: records[0].specialAreas\n };\n}\nexport var registerTransform = registerExternalTransform;\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault);\nregisterAction({\n type: HIGHLIGHT_ACTION_TYPE,\n event: HIGHLIGHT_ACTION_TYPE,\n update: HIGHLIGHT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n type: DOWNPLAY_ACTION_TYPE,\n event: DOWNPLAY_ACTION_TYPE,\n update: DOWNPLAY_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n type: SELECT_ACTION_TYPE,\n event: SELECT_ACTION_TYPE,\n update: SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n type: UNSELECT_ACTION_TYPE,\n event: UNSELECT_ACTION_TYPE,\n update: UNSELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n type: TOGGLE_SELECT_ACTION_TYPE,\n event: TOGGLE_SELECT_ACTION_TYPE,\n update: TOGGLE_SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme);\nexport var dataTool = {};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, PRIORITY } from './core/echarts';\nimport ComponentView from './view/Component';\nimport ChartView from './view/Chart';\nimport ComponentModel from './model/Component';\nimport SeriesModel from './model/Series';\nimport { isFunction, indexOf, isArray, each } from 'zrender/lib/core/util';\nimport { registerPainter } from 'zrender/lib/zrender';\nvar extensions = [];\nvar extensionRegisters = {\n registerPreprocessor: registerPreprocessor,\n registerProcessor: registerProcessor,\n registerPostInit: registerPostInit,\n registerPostUpdate: registerPostUpdate,\n registerAction: registerAction,\n registerCoordinateSystem: registerCoordinateSystem,\n registerLayout: registerLayout,\n registerVisual: registerVisual,\n registerTransform: registerTransform,\n registerLoading: registerLoading,\n registerMap: registerMap,\n PRIORITY: PRIORITY,\n ComponentModel: ComponentModel,\n ComponentView: ComponentView,\n SeriesModel: SeriesModel,\n ChartView: ChartView,\n registerComponentModel: function (ComponentModelClass) {\n ComponentModel.registerClass(ComponentModelClass);\n },\n registerComponentView: function (ComponentViewClass) {\n ComponentView.registerClass(ComponentViewClass);\n },\n registerSeriesModel: function (SeriesModelClass) {\n SeriesModel.registerClass(SeriesModelClass);\n },\n registerChartView: function (ChartViewClass) {\n ChartView.registerClass(ChartViewClass);\n },\n registerSubTypeDefaulter: function (componentType, defaulter) {\n ComponentModel.registerSubTypeDefaulter(componentType, defaulter);\n },\n registerPainter: function (painterType, PainterCtor) {\n registerPainter(painterType, PainterCtor);\n }\n};\nexport function use(ext) {\n if (isArray(ext)) {\n each(ext, function (singleExt) {\n use(singleExt);\n });\n return;\n }\n\n if (indexOf(extensions, ext) >= 0) {\n return;\n }\n\n extensions.push(ext);\n\n if (isFunction(ext)) {\n ext = {\n install: ext\n };\n }\n\n ext.install(extensionRegisters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\n return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1;\n}\n\nfunction defaultKeyGetter(item) {\n return item;\n}\n\nvar DataDiffer = function () {\n function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\n this._old = oldArr;\n this._new = newArr;\n this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n this._newKeyGetter = newKeyGetter || defaultKeyGetter;\n this.context = context;\n this._diffModeMultiple = diffMode === 'multiple';\n }\n\n DataDiffer.prototype.add = function (func) {\n this._add = func;\n return this;\n };\n\n DataDiffer.prototype.update = function (func) {\n this._update = func;\n return this;\n };\n\n DataDiffer.prototype.updateManyToOne = function (func) {\n this._updateManyToOne = func;\n return this;\n };\n\n DataDiffer.prototype.updateOneToMany = function (func) {\n this._updateOneToMany = func;\n return this;\n };\n\n DataDiffer.prototype.remove = function (func) {\n this._remove = func;\n return this;\n };\n\n DataDiffer.prototype.execute = function () {\n this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\n };\n\n DataDiffer.prototype._executeOneToOne = function () {\n var oldArr = this._old;\n var newArr = this._new;\n var newDataIndexMap = {};\n var oldDataKeyArr = new Array(oldArr.length);\n var newDataKeyArr = new Array(newArr.length);\n\n this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\n\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n for (var i = 0; i < oldArr.length; i++) {\n var oldKey = oldDataKeyArr[i];\n var newIdxMapVal = newDataIndexMap[oldKey];\n var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n if (newIdxMapValLen > 1) {\n var newIdx = newIdxMapVal.shift();\n\n if (newIdxMapVal.length === 1) {\n newDataIndexMap[oldKey] = newIdxMapVal[0];\n }\n\n this._update && this._update(newIdx, i);\n } else if (newIdxMapValLen === 1) {\n newDataIndexMap[oldKey] = null;\n this._update && this._update(newIdxMapVal, i);\n } else {\n this._remove && this._remove(i);\n }\n }\n\n this._performRestAdd(newDataKeyArr, newDataIndexMap);\n };\n\n DataDiffer.prototype._executeMultiple = function () {\n var oldArr = this._old;\n var newArr = this._new;\n var oldDataIndexMap = {};\n var newDataIndexMap = {};\n var oldDataKeyArr = [];\n var newDataKeyArr = [];\n\n this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\n\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n for (var i = 0; i < oldDataKeyArr.length; i++) {\n var oldKey = oldDataKeyArr[i];\n var oldIdxMapVal = oldDataIndexMap[oldKey];\n var newIdxMapVal = newDataIndexMap[oldKey];\n var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\n var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\n this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\n newDataIndexMap[oldKey] = null;\n } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\n this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\n newDataIndexMap[oldKey] = null;\n } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\n this._update && this._update(newIdxMapVal, oldIdxMapVal);\n newDataIndexMap[oldKey] = null;\n } else if (oldIdxMapValLen > 1) {\n for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\n this._remove && this._remove(oldIdxMapVal[i_1]);\n }\n } else {\n this._remove && this._remove(oldIdxMapVal);\n }\n }\n\n this._performRestAdd(newDataKeyArr, newDataIndexMap);\n };\n\n DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\n for (var i = 0; i < newDataKeyArr.length; i++) {\n var newKey = newDataKeyArr[i];\n var newIdxMapVal = newDataIndexMap[newKey];\n var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n if (idxMapValLen > 1) {\n for (var j = 0; j < idxMapValLen; j++) {\n this._add && this._add(newIdxMapVal[j]);\n }\n } else if (idxMapValLen === 1) {\n this._add && this._add(newIdxMapVal);\n }\n\n newDataIndexMap[newKey] = null;\n }\n };\n\n DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\n var cbModeMultiple = this._diffModeMultiple;\n\n for (var i = 0; i < arr.length; i++) {\n var key = '_ec_' + this[keyGetterName](arr[i], i);\n\n if (!cbModeMultiple) {\n keyArr[i] = key;\n }\n\n if (!map) {\n continue;\n }\n\n var idxMapVal = map[key];\n var idxMapValLen = dataIndexMapValueLength(idxMapVal);\n\n if (idxMapValLen === 0) {\n map[key] = i;\n\n if (cbModeMultiple) {\n keyArr.push(key);\n }\n } else if (idxMapValLen === 1) {\n map[key] = [idxMapVal, i];\n } else {\n idxMapVal.push(i);\n }\n }\n };\n\n return DataDiffer;\n}();\n\nexport default DataDiffer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap, assert } from 'zrender/lib/core/util';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nexport function summarizeDimensions(data) {\n var summary = {};\n var encode = summary.encode = {};\n var notExtraCoordDimMap = createHashMap();\n var defaultedLabel = [];\n var defaultedTooltip = [];\n var userOutput = summary.userOutput = {\n dimensionNames: data.dimensions.slice(),\n encode: {}\n };\n each(data.dimensions, function (dimName) {\n var dimItem = data.getDimensionInfo(dimName);\n var coordDim = dimItem.coordDim;\n\n if (coordDim) {\n if (process.env.NODE_ENV !== 'production') {\n assert(VISUAL_DIMENSIONS.get(coordDim) == null);\n }\n\n var coordDimIndex = dimItem.coordDimIndex;\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n if (!dimItem.isExtraCoord) {\n notExtraCoordDimMap.set(coordDim, 1);\n\n if (mayLabelDimType(dimItem.type)) {\n defaultedLabel[0] = dimName;\n }\n\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n }\n\n if (dimItem.defaultTooltip) {\n defaultedTooltip.push(dimName);\n }\n }\n\n VISUAL_DIMENSIONS.each(function (v, otherDim) {\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n var dimIndex = dimItem.otherDims[otherDim];\n\n if (dimIndex != null && dimIndex !== false) {\n encodeArr[dimIndex] = dimItem.name;\n }\n });\n });\n var dataDimsOnCoord = [];\n var encodeFirstDimNotExtra = {};\n notExtraCoordDimMap.each(function (v, coordDim) {\n var dimArr = encode[coordDim];\n encodeFirstDimNotExtra[coordDim] = dimArr[0];\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n });\n summary.dataDimsOnCoord = dataDimsOnCoord;\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n var encodeLabel = encode.label;\n\n if (encodeLabel && encodeLabel.length) {\n defaultedLabel = encodeLabel.slice();\n }\n\n var encodeTooltip = encode.tooltip;\n\n if (encodeTooltip && encodeTooltip.length) {\n defaultedTooltip = encodeTooltip.slice();\n } else if (!defaultedTooltip.length) {\n defaultedTooltip = defaultedLabel.slice();\n }\n\n encode.defaultedLabel = defaultedLabel;\n encode.defaultedTooltip = defaultedTooltip;\n return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n if (!encode.hasOwnProperty(dim)) {\n encode[dim] = [];\n }\n\n return encode[dim];\n}\n\nexport function getDimensionTypeByAxis(axisType) {\n return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n return !(dimType === 'ordinal' || dimType === 'time');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar DataDimensionInfo = function () {\n function DataDimensionInfo(opt) {\n this.otherDims = {};\n\n if (opt != null) {\n zrUtil.extend(this, opt);\n }\n }\n\n return DataDimensionInfo;\n}();\n\n;\nexport default DataDimensionInfo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../model/Model';\nimport DataDiffer from './DataDiffer';\nimport { DefaultDataProvider } from './helper/dataProvider';\nimport { summarizeDimensions } from './helper/dimensionHelper';\nimport DataDimensionInfo from './DataDimensionInfo';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../util/types';\nimport { isDataItemOption, convertOptionIdName } from '../util/model';\nimport { getECData } from '../util/innerStore';\nimport { parseDataValue } from './helper/dataValueHelper';\nimport { isSourceInstance } from './Source';\nvar mathFloor = Math.floor;\nvar isObject = zrUtil.isObject;\nvar map = zrUtil.map;\nvar UNDEFINED = 'undefined';\nvar INDEX_NOT_FOUND = -1;\nvar ID_PREFIX = 'e\\0\\0';\nvar dataCtors = {\n 'float': typeof Float64Array === UNDEFINED ? Array : Float64Array,\n 'int': typeof Int32Array === UNDEFINED ? Array : Int32Array,\n 'ordinal': Array,\n 'number': Array,\n 'time': Array\n};\nvar CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nvar CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\nvar CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'];\nvar CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent'];\nvar defaultDimValueGetters;\nvar prepareInvertedIndex;\nvar getIndicesCtor;\nvar prepareStorage;\nvar getRawIndexWithoutIndices;\nvar getRawIndexWithIndices;\nvar getId;\nvar getIdNameFromStore;\nvar makeIdFromName;\nvar normalizeDimensions;\nvar validateDimensions;\nvar cloneListForMapAndSample;\nvar getInitialExtent;\nvar setItemDataAndSeriesIndex;\nvar transferProperties;\n\nvar List = function () {\n function List(dimensions, hostModel) {\n this.type = 'list';\n this._count = 0;\n this._rawCount = 0;\n this._storage = {};\n this._storageArr = [];\n this._nameList = [];\n this._idList = [];\n this._visual = {};\n this._layout = {};\n this._itemVisuals = [];\n this._itemLayouts = [];\n this._graphicEls = [];\n this._rawExtent = {};\n this._extent = {};\n this._approximateExtent = {};\n this._calculationInfo = {};\n this.hasItemOption = true;\n this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\n this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\n this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\n this.getRawIndex = getRawIndexWithoutIndices;\n dimensions = dimensions || ['x', 'y'];\n var dimensionInfos = {};\n var dimensionNames = [];\n var invertedIndicesMap = {};\n\n for (var i = 0; i < dimensions.length; i++) {\n var dimInfoInput = dimensions[i];\n var dimensionInfo = zrUtil.isString(dimInfoInput) ? new DataDimensionInfo({\n name: dimInfoInput\n }) : !(dimInfoInput instanceof DataDimensionInfo) ? new DataDimensionInfo(dimInfoInput) : dimInfoInput;\n var dimensionName = dimensionInfo.name;\n dimensionInfo.type = dimensionInfo.type || 'float';\n\n if (!dimensionInfo.coordDim) {\n dimensionInfo.coordDim = dimensionName;\n dimensionInfo.coordDimIndex = 0;\n }\n\n var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n dimensionNames.push(dimensionName);\n dimensionInfos[dimensionName] = dimensionInfo;\n dimensionInfo.index = i;\n\n if (dimensionInfo.createInvertedIndices) {\n invertedIndicesMap[dimensionName] = [];\n }\n\n if (otherDims.itemName === 0) {\n this._nameDimIdx = i;\n this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\n }\n\n if (otherDims.itemId === 0) {\n this._idDimIdx = i;\n this._idOrdinalMeta = dimensionInfo.ordinalMeta;\n }\n }\n\n this.dimensions = dimensionNames;\n this._dimensionInfos = dimensionInfos;\n this.hostModel = hostModel;\n this._dimensionsSummary = summarizeDimensions(this);\n this._invertedIndicesMap = invertedIndicesMap;\n this.userOutput = this._dimensionsSummary.userOutput;\n }\n\n List.prototype.getDimension = function (dim) {\n if (typeof dim === 'number' || !isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim)) {\n dim = this.dimensions[dim];\n }\n\n return dim;\n };\n\n List.prototype.getDimensionInfo = function (dim) {\n return this._dimensionInfos[this.getDimension(dim)];\n };\n\n List.prototype.getDimensionsOnCoord = function () {\n return this._dimensionsSummary.dataDimsOnCoord.slice();\n };\n\n List.prototype.mapDimension = function (coordDim, idx) {\n var dimensionsSummary = this._dimensionsSummary;\n\n if (idx == null) {\n return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n }\n\n var dims = dimensionsSummary.encode[coordDim];\n return dims ? dims[idx] : null;\n };\n\n List.prototype.mapDimensionsAll = function (coordDim) {\n var dimensionsSummary = this._dimensionsSummary;\n var dims = dimensionsSummary.encode[coordDim];\n return (dims || []).slice();\n };\n\n List.prototype.initData = function (data, nameList, dimValueGetter) {\n var notProvider = isSourceInstance(data) || zrUtil.isArrayLike(data);\n var provider = notProvider ? new DefaultDataProvider(data, this.dimensions.length) : data;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(notProvider || zrUtil.isFunction(provider.getItem) && zrUtil.isFunction(provider.count), 'Inavlid data provider.');\n }\n\n this._rawData = provider;\n var sourceFormat = provider.getSource().sourceFormat;\n this._storage = {};\n this._indices = null;\n this._dontMakeIdFromName = this._idDimIdx != null || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY || !!provider.fillStorage;\n this._nameList = (nameList || []).slice();\n this._idList = [];\n this._nameRepeatCount = {};\n\n if (!dimValueGetter) {\n this.hasItemOption = false;\n }\n\n this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\n this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter;\n this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\n this._rawExtent = {};\n\n this._initDataFromProvider(0, provider.count());\n\n if (provider.pure) {\n this.hasItemOption = false;\n }\n };\n\n List.prototype.getProvider = function () {\n return this._rawData;\n };\n\n List.prototype.appendData = function (data) {\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(!this._indices, 'appendData can only be called on raw data.');\n }\n\n var rawData = this._rawData;\n var start = this.count();\n rawData.appendData(data);\n var end = rawData.count();\n\n if (!rawData.persistent) {\n end += start;\n }\n\n this._initDataFromProvider(start, end, true);\n };\n\n List.prototype.appendValues = function (values, names) {\n var storage = this._storage;\n var dimensions = this.dimensions;\n var dimLen = dimensions.length;\n var rawExtent = this._rawExtent;\n var start = this.count();\n var end = start + Math.max(values.length, names ? names.length : 0);\n\n for (var i = 0; i < dimLen; i++) {\n var dim = dimensions[i];\n\n if (!rawExtent[dim]) {\n rawExtent[dim] = getInitialExtent();\n }\n\n prepareStorage(storage, this._dimensionInfos[dim], end, true);\n }\n\n var rawExtentArr = map(dimensions, function (dim) {\n return rawExtent[dim];\n });\n var storageArr = this._storageArr = map(dimensions, function (dim) {\n return storage[dim];\n });\n var emptyDataItem = [];\n\n for (var idx = start; idx < end; idx++) {\n var sourceIdx = idx - start;\n\n for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n var dim = dimensions[dimIdx];\n\n var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\n\n storageArr[dimIdx][idx] = val;\n var dimRawExtent = rawExtentArr[dimIdx];\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\n }\n\n if (names) {\n this._nameList[idx] = names[sourceIdx];\n\n if (!this._dontMakeIdFromName) {\n makeIdFromName(this, idx);\n }\n }\n }\n\n this._rawCount = this._count = end;\n this._extent = {};\n prepareInvertedIndex(this);\n };\n\n List.prototype._initDataFromProvider = function (start, end, append) {\n if (start >= end) {\n return;\n }\n\n var rawData = this._rawData;\n var storage = this._storage;\n var dimensions = this.dimensions;\n var dimLen = dimensions.length;\n var dimensionInfoMap = this._dimensionInfos;\n var nameList = this._nameList;\n var idList = this._idList;\n var rawExtent = this._rawExtent;\n var sourceFormat = rawData.getSource().sourceFormat;\n var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\n\n for (var i = 0; i < dimLen; i++) {\n var dim = dimensions[i];\n\n if (!rawExtent[dim]) {\n rawExtent[dim] = getInitialExtent();\n }\n\n prepareStorage(storage, dimensionInfoMap[dim], end, append);\n }\n\n var storageArr = this._storageArr = map(dimensions, function (dim) {\n return storage[dim];\n });\n var rawExtentArr = map(dimensions, function (dim) {\n return rawExtent[dim];\n });\n\n if (rawData.fillStorage) {\n rawData.fillStorage(start, end, storageArr, rawExtentArr);\n } else {\n var dataItem = [];\n\n for (var idx = start; idx < end; idx++) {\n dataItem = rawData.getItem(idx, dataItem);\n\n for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n var dim = dimensions[dimIdx];\n var dimStorage = storageArr[dimIdx];\n\n var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\n\n dimStorage[idx] = val;\n var dimRawExtent = rawExtentArr[dimIdx];\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\n }\n\n if (isFormatOriginal && !rawData.pure && dataItem) {\n var itemName = dataItem.name;\n\n if (nameList[idx] == null && itemName != null) {\n nameList[idx] = convertOptionIdName(itemName, null);\n }\n\n var itemId = dataItem.id;\n\n if (idList[idx] == null && itemId != null) {\n idList[idx] = convertOptionIdName(itemId, null);\n }\n }\n\n if (!this._dontMakeIdFromName) {\n makeIdFromName(this, idx);\n }\n }\n }\n\n if (!rawData.persistent && rawData.clean) {\n rawData.clean();\n }\n\n this._rawCount = this._count = end;\n this._extent = {};\n prepareInvertedIndex(this);\n };\n\n List.prototype.count = function () {\n return this._count;\n };\n\n List.prototype.getIndices = function () {\n var newIndices;\n var indices = this._indices;\n\n if (indices) {\n var Ctor = indices.constructor;\n var thisCount = this._count;\n\n if (Ctor === Array) {\n newIndices = new Ctor(thisCount);\n\n for (var i = 0; i < thisCount; i++) {\n newIndices[i] = indices[i];\n }\n } else {\n newIndices = new Ctor(indices.buffer, 0, thisCount);\n }\n } else {\n var Ctor = getIndicesCtor(this);\n newIndices = new Ctor(this.count());\n\n for (var i = 0; i < newIndices.length; i++) {\n newIndices[i] = i;\n }\n }\n\n return newIndices;\n };\n\n List.prototype.getByDimIdx = function (dimIdx, idx) {\n if (!(idx >= 0 && idx < this._count)) {\n return NaN;\n }\n\n var dimStore = this._storageArr[dimIdx];\n return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n };\n\n List.prototype.get = function (dim, idx) {\n if (!(idx >= 0 && idx < this._count)) {\n return NaN;\n }\n\n var dimStore = this._storage[dim];\n return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n };\n\n List.prototype.getByRawIndex = function (dim, rawIdx) {\n if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n return NaN;\n }\n\n var dimStore = this._storage[dim];\n return dimStore ? dimStore[rawIdx] : NaN;\n };\n\n List.prototype.getValues = function (dimensions, idx) {\n var values = [];\n\n if (!zrUtil.isArray(dimensions)) {\n idx = dimensions;\n dimensions = this.dimensions;\n }\n\n for (var i = 0, len = dimensions.length; i < len; i++) {\n values.push(this.get(dimensions[i], idx));\n }\n\n return values;\n };\n\n List.prototype.hasValue = function (idx) {\n var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\n\n for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\n if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\n return false;\n }\n }\n\n return true;\n };\n\n List.prototype.getDataExtent = function (dim) {\n dim = this.getDimension(dim);\n var dimData = this._storage[dim];\n var initialExtent = getInitialExtent();\n\n if (!dimData) {\n return initialExtent;\n }\n\n var currEnd = this.count();\n var useRaw = !this._indices;\n var dimExtent;\n\n if (useRaw) {\n return this._rawExtent[dim].slice();\n }\n\n dimExtent = this._extent[dim];\n\n if (dimExtent) {\n return dimExtent.slice();\n }\n\n dimExtent = initialExtent;\n var min = dimExtent[0];\n var max = dimExtent[1];\n\n for (var i = 0; i < currEnd; i++) {\n var rawIdx = this.getRawIndex(i);\n var value = dimData[rawIdx];\n value < min && (min = value);\n value > max && (max = value);\n }\n\n dimExtent = [min, max];\n this._extent[dim] = dimExtent;\n return dimExtent;\n };\n\n List.prototype.getApproximateExtent = function (dim) {\n dim = this.getDimension(dim);\n return this._approximateExtent[dim] || this.getDataExtent(dim);\n };\n\n List.prototype.setApproximateExtent = function (extent, dim) {\n dim = this.getDimension(dim);\n this._approximateExtent[dim] = extent.slice();\n };\n\n List.prototype.getCalculationInfo = function (key) {\n return this._calculationInfo[key];\n };\n\n List.prototype.setCalculationInfo = function (key, value) {\n isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n };\n\n List.prototype.getSum = function (dim) {\n var dimData = this._storage[dim];\n var sum = 0;\n\n if (dimData) {\n for (var i = 0, len = this.count(); i < len; i++) {\n var value = this.get(dim, i);\n\n if (!isNaN(value)) {\n sum += value;\n }\n }\n }\n\n return sum;\n };\n\n List.prototype.getMedian = function (dim) {\n var dimDataArray = [];\n this.each(dim, function (val) {\n if (!isNaN(val)) {\n dimDataArray.push(val);\n }\n });\n var sortedDimDataArray = dimDataArray.sort(function (a, b) {\n return a - b;\n });\n var len = this.count();\n return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n };\n\n List.prototype.rawIndexOf = function (dim, value) {\n var invertedIndices = dim && this._invertedIndicesMap[dim];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!invertedIndices) {\n throw new Error('Do not supported yet');\n }\n }\n\n var rawIndex = invertedIndices[value];\n\n if (rawIndex == null || isNaN(rawIndex)) {\n return INDEX_NOT_FOUND;\n }\n\n return rawIndex;\n };\n\n List.prototype.indexOfName = function (name) {\n for (var i = 0, len = this.count(); i < len; i++) {\n if (this.getName(i) === name) {\n return i;\n }\n }\n\n return -1;\n };\n\n List.prototype.indexOfRawIndex = function (rawIndex) {\n if (rawIndex >= this._rawCount || rawIndex < 0) {\n return -1;\n }\n\n if (!this._indices) {\n return rawIndex;\n }\n\n var indices = this._indices;\n var rawDataIndex = indices[rawIndex];\n\n if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n return rawIndex;\n }\n\n var left = 0;\n var right = this._count - 1;\n\n while (left <= right) {\n var mid = (left + right) / 2 | 0;\n\n if (indices[mid] < rawIndex) {\n left = mid + 1;\n } else if (indices[mid] > rawIndex) {\n right = mid - 1;\n } else {\n return mid;\n }\n }\n\n return -1;\n };\n\n List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n var storage = this._storage;\n var dimData = storage[dim];\n var nearestIndices = [];\n\n if (!dimData) {\n return nearestIndices;\n }\n\n if (maxDistance == null) {\n maxDistance = Infinity;\n }\n\n var minDist = Infinity;\n var minDiff = -1;\n var nearestIndicesLen = 0;\n\n for (var i = 0, len = this.count(); i < len; i++) {\n var dataIndex = this.getRawIndex(i);\n var diff = value - dimData[dataIndex];\n var dist = Math.abs(diff);\n\n if (dist <= maxDistance) {\n if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) {\n minDist = dist;\n minDiff = diff;\n nearestIndicesLen = 0;\n }\n\n if (diff === minDiff) {\n nearestIndices[nearestIndicesLen++] = i;\n }\n }\n }\n\n nearestIndices.length = nearestIndicesLen;\n return nearestIndices;\n };\n\n List.prototype.getRawDataItem = function (idx) {\n if (!this._rawData.persistent) {\n var val = [];\n\n for (var i = 0; i < this.dimensions.length; i++) {\n var dim = this.dimensions[i];\n val.push(this.get(dim, idx));\n }\n\n return val;\n } else {\n return this._rawData.getItem(this.getRawIndex(idx));\n }\n };\n\n List.prototype.getName = function (idx) {\n var rawIndex = this.getRawIndex(idx);\n var name = this._nameList[rawIndex];\n\n if (name == null && this._nameDimIdx != null) {\n name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\n }\n\n if (name == null) {\n name = '';\n }\n\n return name;\n };\n\n List.prototype.getId = function (idx) {\n return getId(this, this.getRawIndex(idx));\n };\n\n List.prototype.each = function (dims, cb, ctx, ctxCompat) {\n 'use strict';\n\n var _this = this;\n\n if (!this._count) {\n return;\n }\n\n if (typeof dims === 'function') {\n ctxCompat = ctx;\n ctx = cb;\n cb = dims;\n dims = [];\n }\n\n var fCtx = ctx || ctxCompat || this;\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n if (process.env.NODE_ENV !== 'production') {\n validateDimensions(this, dimNames);\n }\n\n var dimSize = dimNames.length;\n var dimIndices = map(dimNames, function (dimName) {\n return _this._dimensionInfos[dimName].index;\n });\n var storageArr = this._storageArr;\n\n for (var i = 0, len = this.count(); i < len; i++) {\n var rawIdx = this.getRawIndex(i);\n\n switch (dimSize) {\n case 0:\n cb.call(fCtx, i);\n break;\n\n case 1:\n cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\n break;\n\n case 2:\n cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\n break;\n\n default:\n var k = 0;\n var value = [];\n\n for (; k < dimSize; k++) {\n value[k] = storageArr[dimIndices[k]][rawIdx];\n }\n\n value[k] = i;\n cb.apply(fCtx, value);\n }\n }\n };\n\n List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\n 'use strict';\n\n var _this = this;\n\n if (!this._count) {\n return;\n }\n\n if (typeof dims === 'function') {\n ctxCompat = ctx;\n ctx = cb;\n cb = dims;\n dims = [];\n }\n\n var fCtx = ctx || ctxCompat || this;\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n if (process.env.NODE_ENV !== 'production') {\n validateDimensions(this, dimNames);\n }\n\n var count = this.count();\n var Ctor = getIndicesCtor(this);\n var newIndices = new Ctor(count);\n var value = [];\n var dimSize = dimNames.length;\n var offset = 0;\n var dimIndices = map(dimNames, function (dimName) {\n return _this._dimensionInfos[dimName].index;\n });\n var dim0 = dimIndices[0];\n var storageArr = this._storageArr;\n\n for (var i = 0; i < count; i++) {\n var keep = void 0;\n var rawIdx = this.getRawIndex(i);\n\n if (dimSize === 0) {\n keep = cb.call(fCtx, i);\n } else if (dimSize === 1) {\n var val = storageArr[dim0][rawIdx];\n keep = cb.call(fCtx, val, i);\n } else {\n var k = 0;\n\n for (; k < dimSize; k++) {\n value[k] = storageArr[dimIndices[k]][rawIdx];\n }\n\n value[k] = i;\n keep = cb.apply(fCtx, value);\n }\n\n if (keep) {\n newIndices[offset++] = rawIdx;\n }\n }\n\n if (offset < count) {\n this._indices = newIndices;\n }\n\n this._count = offset;\n this._extent = {};\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n return this;\n };\n\n List.prototype.selectRange = function (range) {\n 'use strict';\n\n var _this = this;\n\n var len = this._count;\n\n if (!len) {\n return;\n }\n\n var dimensions = [];\n\n for (var dim in range) {\n if (range.hasOwnProperty(dim)) {\n dimensions.push(dim);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n validateDimensions(this, dimensions);\n }\n\n var dimSize = dimensions.length;\n\n if (!dimSize) {\n return;\n }\n\n var originalCount = this.count();\n var Ctor = getIndicesCtor(this);\n var newIndices = new Ctor(originalCount);\n var offset = 0;\n var dim0 = dimensions[0];\n var dimIndices = map(dimensions, function (dimName) {\n return _this._dimensionInfos[dimName].index;\n });\n var min = range[dim0][0];\n var max = range[dim0][1];\n var storageArr = this._storageArr;\n var quickFinished = false;\n\n if (!this._indices) {\n var idx = 0;\n\n if (dimSize === 1) {\n var dimStorage = storageArr[dimIndices[0]];\n\n for (var i = 0; i < len; i++) {\n var val = dimStorage[i];\n\n if (val >= min && val <= max || isNaN(val)) {\n newIndices[offset++] = idx;\n }\n\n idx++;\n }\n\n quickFinished = true;\n } else if (dimSize === 2) {\n var dimStorage = storageArr[dimIndices[0]];\n var dimStorage2 = storageArr[dimIndices[1]];\n var min2 = range[dimensions[1]][0];\n var max2 = range[dimensions[1]][1];\n\n for (var i = 0; i < len; i++) {\n var val = dimStorage[i];\n var val2 = dimStorage2[i];\n\n if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n newIndices[offset++] = idx;\n }\n\n idx++;\n }\n\n quickFinished = true;\n }\n }\n\n if (!quickFinished) {\n if (dimSize === 1) {\n for (var i = 0; i < originalCount; i++) {\n var rawIndex = this.getRawIndex(i);\n var val = storageArr[dimIndices[0]][rawIndex];\n\n if (val >= min && val <= max || isNaN(val)) {\n newIndices[offset++] = rawIndex;\n }\n }\n } else {\n for (var i = 0; i < originalCount; i++) {\n var keep = true;\n var rawIndex = this.getRawIndex(i);\n\n for (var k = 0; k < dimSize; k++) {\n var dimk = dimensions[k];\n var val = storageArr[dimIndices[k]][rawIndex];\n\n if (val < range[dimk][0] || val > range[dimk][1]) {\n keep = false;\n }\n }\n\n if (keep) {\n newIndices[offset++] = this.getRawIndex(i);\n }\n }\n }\n }\n\n if (offset < originalCount) {\n this._indices = newIndices;\n }\n\n this._count = offset;\n this._extent = {};\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n return this;\n };\n\n List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\n 'use strict';\n\n if (typeof dims === 'function') {\n ctxCompat = ctx;\n ctx = cb;\n cb = dims;\n dims = [];\n }\n\n ctx = ctx || ctxCompat || this;\n var result = [];\n this.each(dims, function () {\n result.push(cb && cb.apply(this, arguments));\n }, ctx);\n return result;\n };\n\n List.prototype.map = function (dims, cb, ctx, ctxCompat) {\n 'use strict';\n\n var fCtx = ctx || ctxCompat || this;\n var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n if (process.env.NODE_ENV !== 'production') {\n validateDimensions(this, dimNames);\n }\n\n var list = cloneListForMapAndSample(this, dimNames);\n var storage = list._storage;\n list._indices = this._indices;\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n var tmpRetValue = [];\n var dimSize = dimNames.length;\n var dataCount = this.count();\n var values = [];\n var rawExtent = list._rawExtent;\n\n for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\n values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\n }\n\n values[dimSize] = dataIndex;\n var retValue = cb && cb.apply(fCtx, values);\n\n if (retValue != null) {\n if (typeof retValue !== 'object') {\n tmpRetValue[0] = retValue;\n retValue = tmpRetValue;\n }\n\n var rawIndex = this.getRawIndex(dataIndex);\n\n for (var i = 0; i < retValue.length; i++) {\n var dim = dimNames[i];\n var val = retValue[i];\n var rawExtentOnDim = rawExtent[dim];\n var dimStore = storage[dim];\n\n if (dimStore) {\n dimStore[rawIndex] = val;\n }\n\n if (val < rawExtentOnDim[0]) {\n rawExtentOnDim[0] = val;\n }\n\n if (val > rawExtentOnDim[1]) {\n rawExtentOnDim[1] = val;\n }\n }\n }\n }\n\n return list;\n };\n\n List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n var list = cloneListForMapAndSample(this, [dimension]);\n var targetStorage = list._storage;\n var frameValues = [];\n var frameSize = mathFloor(1 / rate);\n var dimStore = targetStorage[dimension];\n var len = this.count();\n var rawExtentOnDim = list._rawExtent[dimension];\n var newIndices = new (getIndicesCtor(this))(len);\n var offset = 0;\n\n for (var i = 0; i < len; i += frameSize) {\n if (frameSize > len - i) {\n frameSize = len - i;\n frameValues.length = frameSize;\n }\n\n for (var k = 0; k < frameSize; k++) {\n var dataIdx = this.getRawIndex(i + k);\n frameValues[k] = dimStore[dataIdx];\n }\n\n var value = sampleValue(frameValues);\n var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\n dimStore[sampleFrameIdx] = value;\n\n if (value < rawExtentOnDim[0]) {\n rawExtentOnDim[0] = value;\n }\n\n if (value > rawExtentOnDim[1]) {\n rawExtentOnDim[1] = value;\n }\n\n newIndices[offset++] = sampleFrameIdx;\n }\n\n list._count = offset;\n list._indices = newIndices;\n list.getRawIndex = getRawIndexWithIndices;\n return list;\n };\n\n List.prototype.lttbDownSample = function (valueDimension, rate) {\n var list = cloneListForMapAndSample(this, []);\n var targetStorage = list._storage;\n var dimStore = targetStorage[valueDimension];\n var len = this.count();\n var newIndices = new (getIndicesCtor(this))(len);\n var sampledIndex = 0;\n var frameSize = mathFloor(1 / rate);\n var currentRawIndex = this.getRawIndex(0);\n var maxArea;\n var area;\n var nextRawIndex;\n newIndices[sampledIndex++] = currentRawIndex;\n\n for (var i = 1; i < len - 1; i += frameSize) {\n var nextFrameStart = Math.min(i + frameSize, len - 1);\n var nextFrameEnd = Math.min(i + frameSize * 2, len);\n var avgX = (nextFrameEnd + nextFrameStart) / 2;\n var avgY = 0;\n\n for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\n var rawIndex = this.getRawIndex(idx);\n var y = dimStore[rawIndex];\n\n if (isNaN(y)) {\n continue;\n }\n\n avgY += y;\n }\n\n avgY /= nextFrameEnd - nextFrameStart;\n var frameStart = i;\n var frameEnd = Math.min(i + frameSize, len);\n var pointAX = i - 1;\n var pointAY = dimStore[currentRawIndex];\n maxArea = -1;\n nextRawIndex = frameStart;\n\n for (var idx = frameStart; idx < frameEnd; idx++) {\n var rawIndex = this.getRawIndex(idx);\n var y = dimStore[rawIndex];\n\n if (isNaN(y)) {\n continue;\n }\n\n area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY));\n\n if (area > maxArea) {\n maxArea = area;\n nextRawIndex = rawIndex;\n }\n }\n\n newIndices[sampledIndex++] = nextRawIndex;\n currentRawIndex = nextRawIndex;\n }\n\n newIndices[sampledIndex++] = this.getRawIndex(len - 1);\n list._count = sampledIndex;\n list._indices = newIndices;\n list.getRawIndex = getRawIndexWithIndices;\n return list;\n };\n\n List.prototype.getItemModel = function (idx) {\n var hostModel = this.hostModel;\n var dataItem = this.getRawDataItem(idx);\n return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\n };\n\n List.prototype.diff = function (otherList) {\n var thisList = this;\n return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\n return getId(otherList, idx);\n }, function (idx) {\n return getId(thisList, idx);\n });\n };\n\n List.prototype.getVisual = function (key) {\n var visual = this._visual;\n return visual && visual[key];\n };\n\n List.prototype.setVisual = function (kvObj, val) {\n this._visual = this._visual || {};\n\n if (isObject(kvObj)) {\n zrUtil.extend(this._visual, kvObj);\n } else {\n this._visual[kvObj] = val;\n }\n };\n\n List.prototype.getItemVisual = function (idx, key) {\n var itemVisual = this._itemVisuals[idx];\n var val = itemVisual && itemVisual[key];\n\n if (val == null) {\n return this.getVisual(key);\n }\n\n return val;\n };\n\n List.prototype.hasItemVisual = function () {\n return this._itemVisuals.length > 0;\n };\n\n List.prototype.ensureUniqueItemVisual = function (idx, key) {\n var itemVisuals = this._itemVisuals;\n var itemVisual = itemVisuals[idx];\n\n if (!itemVisual) {\n itemVisual = itemVisuals[idx] = {};\n }\n\n var val = itemVisual[key];\n\n if (val == null) {\n val = this.getVisual(key);\n\n if (zrUtil.isArray(val)) {\n val = val.slice();\n } else if (isObject(val)) {\n val = zrUtil.extend({}, val);\n }\n\n itemVisual[key] = val;\n }\n\n return val;\n };\n\n List.prototype.setItemVisual = function (idx, key, value) {\n var itemVisual = this._itemVisuals[idx] || {};\n this._itemVisuals[idx] = itemVisual;\n\n if (isObject(key)) {\n zrUtil.extend(itemVisual, key);\n } else {\n itemVisual[key] = value;\n }\n };\n\n List.prototype.clearAllVisual = function () {\n this._visual = {};\n this._itemVisuals = [];\n };\n\n List.prototype.setLayout = function (key, val) {\n if (isObject(key)) {\n for (var name_1 in key) {\n if (key.hasOwnProperty(name_1)) {\n this.setLayout(name_1, key[name_1]);\n }\n }\n\n return;\n }\n\n this._layout[key] = val;\n };\n\n List.prototype.getLayout = function (key) {\n return this._layout[key];\n };\n\n List.prototype.getItemLayout = function (idx) {\n return this._itemLayouts[idx];\n };\n\n List.prototype.setItemLayout = function (idx, layout, merge) {\n this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n };\n\n List.prototype.clearItemLayouts = function () {\n this._itemLayouts.length = 0;\n };\n\n List.prototype.setItemGraphicEl = function (idx, el) {\n var hostModel = this.hostModel;\n\n if (el) {\n var ecData = getECData(el);\n ecData.dataIndex = idx;\n ecData.dataType = this.dataType;\n ecData.seriesIndex = hostModel && hostModel.seriesIndex;\n\n if (el.type === 'group') {\n el.traverse(setItemDataAndSeriesIndex, el);\n }\n }\n\n this._graphicEls[idx] = el;\n };\n\n List.prototype.getItemGraphicEl = function (idx) {\n return this._graphicEls[idx];\n };\n\n List.prototype.eachItemGraphicEl = function (cb, context) {\n zrUtil.each(this._graphicEls, function (el, idx) {\n if (el) {\n cb && cb.call(context, el, idx);\n }\n });\n };\n\n List.prototype.cloneShallow = function (list) {\n if (!list) {\n var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\n list = new List(dimensionInfoList, this.hostModel);\n }\n\n list._storage = this._storage;\n list._storageArr = this._storageArr;\n transferProperties(list, this);\n\n if (this._indices) {\n var Ctor = this._indices.constructor;\n\n if (Ctor === Array) {\n var thisCount = this._indices.length;\n list._indices = new Ctor(thisCount);\n\n for (var i = 0; i < thisCount; i++) {\n list._indices[i] = this._indices[i];\n }\n } else {\n list._indices = new Ctor(this._indices);\n }\n } else {\n list._indices = null;\n }\n\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n return list;\n };\n\n List.prototype.wrapMethod = function (methodName, injectFunction) {\n var originalMethod = this[methodName];\n\n if (typeof originalMethod !== 'function') {\n return;\n }\n\n this.__wrappedMethods = this.__wrappedMethods || [];\n\n this.__wrappedMethods.push(methodName);\n\n this[methodName] = function () {\n var res = originalMethod.apply(this, arguments);\n return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n };\n };\n\n List.internalField = function () {\n defaultDimValueGetters = {\n arrayRows: getDimValueSimply,\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n },\n keyedColumns: getDimValueSimply,\n original: function (dataItem, dimName, dataIndex, dimIndex) {\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\n\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\n this.hasItemOption = true;\n }\n\n return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensionInfos[dimName]);\n },\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n return dataItem[dimIndex];\n }\n };\n\n function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n }\n\n prepareInvertedIndex = function (list) {\n var invertedIndicesMap = list._invertedIndicesMap;\n zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n var dimInfo = list._dimensionInfos[dim];\n var ordinalMeta = dimInfo.ordinalMeta;\n\n if (ordinalMeta) {\n invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\n\n for (var i = 0; i < invertedIndices.length; i++) {\n invertedIndices[i] = INDEX_NOT_FOUND;\n }\n\n for (var i = 0; i < list._count; i++) {\n invertedIndices[list.get(dim, i)] = i;\n }\n }\n });\n };\n\n getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\n var val;\n var chunk = list._storageArr[dimIdx];\n\n if (chunk) {\n val = chunk[rawIndex];\n\n if (ordinalMeta && ordinalMeta.categories.length) {\n val = ordinalMeta.categories[val];\n }\n }\n\n return convertOptionIdName(val, null);\n };\n\n getIndicesCtor = function (list) {\n return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n };\n\n prepareStorage = function (storage, dimInfo, end, append) {\n var DataCtor = dataCtors[dimInfo.type];\n var dim = dimInfo.name;\n\n if (append) {\n var oldStore = storage[dim];\n var oldLen = oldStore && oldStore.length;\n\n if (!(oldLen === end)) {\n var newStore = new DataCtor(end);\n\n for (var j = 0; j < oldLen; j++) {\n newStore[j] = oldStore[j];\n }\n\n storage[dim] = newStore;\n }\n } else {\n storage[dim] = new DataCtor(end);\n }\n };\n\n getRawIndexWithoutIndices = function (idx) {\n return idx;\n };\n\n getRawIndexWithIndices = function (idx) {\n if (idx < this._count && idx >= 0) {\n return this._indices[idx];\n }\n\n return -1;\n };\n\n getId = function (list, rawIndex) {\n var id = list._idList[rawIndex];\n\n if (id == null && list._idDimIdx != null) {\n id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\n }\n\n if (id == null) {\n id = ID_PREFIX + rawIndex;\n }\n\n return id;\n };\n\n normalizeDimensions = function (dimensions) {\n if (!zrUtil.isArray(dimensions)) {\n dimensions = dimensions != null ? [dimensions] : [];\n }\n\n return dimensions;\n };\n\n validateDimensions = function (list, dims) {\n for (var i = 0; i < dims.length; i++) {\n if (!list._dimensionInfos[dims[i]]) {\n console.error('Unkown dimension ' + dims[i]);\n }\n }\n };\n\n cloneListForMapAndSample = function (original, excludeDimensions) {\n var allDimensions = original.dimensions;\n var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\n transferProperties(list, original);\n var storage = list._storage = {};\n var originalStorage = original._storage;\n var storageArr = list._storageArr = [];\n\n for (var i = 0; i < allDimensions.length; i++) {\n var dim = allDimensions[i];\n\n if (originalStorage[dim]) {\n if (zrUtil.indexOf(excludeDimensions, dim) >= 0) {\n storage[dim] = cloneChunk(originalStorage[dim]);\n list._rawExtent[dim] = getInitialExtent();\n list._extent[dim] = null;\n } else {\n storage[dim] = originalStorage[dim];\n }\n\n storageArr.push(storage[dim]);\n }\n }\n\n return list;\n };\n\n function cloneChunk(originalChunk) {\n var Ctor = originalChunk.constructor;\n return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n }\n\n getInitialExtent = function () {\n return [Infinity, -Infinity];\n };\n\n setItemDataAndSeriesIndex = function (child) {\n var childECData = getECData(child);\n var thisECData = getECData(this);\n childECData.seriesIndex = thisECData.seriesIndex;\n childECData.dataIndex = thisECData.dataIndex;\n childECData.dataType = thisECData.dataType;\n };\n\n transferProperties = function (target, source) {\n zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n if (source.hasOwnProperty(propName)) {\n target[propName] = source[propName];\n }\n });\n target.__wrappedMethods = source.__wrappedMethods;\n zrUtil.each(CLONE_PROPERTIES, function (propName) {\n target[propName] = zrUtil.clone(source[propName]);\n });\n target._calculationInfo = zrUtil.extend({}, source._calculationInfo);\n };\n\n makeIdFromName = function (list, idx) {\n var nameList = list._nameList;\n var idList = list._idList;\n var nameDimIdx = list._nameDimIdx;\n var idDimIdx = list._idDimIdx;\n var name = nameList[idx];\n var id = idList[idx];\n\n if (name == null && nameDimIdx != null) {\n nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\n }\n\n if (id == null && idDimIdx != null) {\n idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\n }\n\n if (id == null && name != null) {\n var nameRepeatCount = list._nameRepeatCount;\n var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\n id = name;\n\n if (nmCnt > 1) {\n id += '__ec__' + nmCnt;\n }\n\n idList[idx] = id;\n }\n };\n }();\n\n return List;\n}();\n\nexport default List;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each, isString, defaults, extend, isObject, clone } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { guessOrdinal, BE_ORDINAL } from './sourceHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nimport DataDimensionInfo from '../DataDimensionInfo';\n\nfunction completeDimensions(sysDims, source, opt) {\n if (!isSourceInstance(source)) {\n source = createSourceFromSeriesDataOption(source);\n }\n\n opt = opt || {};\n sysDims = (sysDims || []).slice();\n var dimsDef = (opt.dimsDef || []).slice();\n var dataDimNameMap = createHashMap();\n var coordDimNameMap = createHashMap();\n var result = [];\n var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\n\n for (var i = 0; i < dimCount; i++) {\n var dimDefItemRaw = dimsDef[i];\n var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : {\n name: dimDefItemRaw\n });\n var userDimName = dimDefItem.name;\n var resultItem = result[i] = new DataDimensionInfo();\n\n if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n resultItem.name = resultItem.displayName = userDimName;\n dataDimNameMap.set(userDimName, i);\n }\n\n dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n }\n\n var encodeDef = opt.encodeDef;\n\n if (!encodeDef && opt.encodeDefaulter) {\n encodeDef = opt.encodeDefaulter(source, dimCount);\n }\n\n var encodeDefMap = createHashMap(encodeDef);\n encodeDefMap.each(function (dataDimsRaw, coordDim) {\n var dataDims = normalizeToArray(dataDimsRaw).slice();\n\n if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\n encodeDefMap.set(coordDim, false);\n return;\n }\n\n var validDataDims = encodeDefMap.set(coordDim, []);\n each(dataDims, function (resultDimIdxOrName, idx) {\n var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;\n\n if (resultDimIdx != null && resultDimIdx < dimCount) {\n validDataDims[idx] = resultDimIdx;\n applyDim(result[resultDimIdx], coordDim, idx);\n }\n });\n });\n var availDimIdx = 0;\n each(sysDims, function (sysDimItemRaw) {\n var coordDim;\n var sysDimItemDimsDef;\n var sysDimItemOtherDims;\n var sysDimItem;\n\n if (isString(sysDimItemRaw)) {\n coordDim = sysDimItemRaw;\n sysDimItem = {};\n } else {\n sysDimItem = sysDimItemRaw;\n coordDim = sysDimItem.name;\n var ordinalMeta = sysDimItem.ordinalMeta;\n sysDimItem.ordinalMeta = null;\n sysDimItem = clone(sysDimItem);\n sysDimItem.ordinalMeta = ordinalMeta;\n sysDimItemDimsDef = sysDimItem.dimsDef;\n sysDimItemOtherDims = sysDimItem.otherDims;\n sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n }\n\n var dataDims = encodeDefMap.get(coordDim);\n\n if (dataDims === false) {\n return;\n }\n\n dataDims = normalizeToArray(dataDims);\n\n if (!dataDims.length) {\n for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\n availDimIdx++;\n }\n\n availDimIdx < result.length && dataDims.push(availDimIdx++);\n }\n }\n\n each(dataDims, function (resultDimIdx, coordDimIndex) {\n var resultItem = result[resultDimIdx];\n applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n if (resultItem.name == null && sysDimItemDimsDef) {\n var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n name: sysDimItemDimsDefItem\n });\n resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n }\n\n sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n });\n });\n\n function applyDim(resultItem, coordDim, coordDimIndex) {\n if (VISUAL_DIMENSIONS.get(coordDim) != null) {\n resultItem.otherDims[coordDim] = coordDimIndex;\n } else {\n resultItem.coordDim = coordDim;\n resultItem.coordDimIndex = coordDimIndex;\n coordDimNameMap.set(coordDim, true);\n }\n }\n\n var generateCoord = opt.generateCoord;\n var generateCoordCount = opt.generateCoordCount;\n var fromZero = generateCoordCount != null;\n generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n var extra = generateCoord || 'value';\n\n for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\n var coordDim = resultItem.coordDim;\n\n if (coordDim == null) {\n resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\n resultItem.coordDimIndex = 0;\n\n if (!generateCoord || generateCoordCount <= 0) {\n resultItem.isExtraCoord = true;\n }\n\n generateCoordCount--;\n }\n\n resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\n\n if (resultItem.type == null && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) {\n resultItem.type = 'ordinal';\n }\n }\n\n return result;\n}\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n each(sysDims, function (sysDimItem) {\n var sysDimItemDimsDef;\n\n if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\n dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\n }\n });\n return dimCount;\n}\n\nfunction genName(name, map, fromZero) {\n if (fromZero || map.get(name) != null) {\n var i = 0;\n\n while (map.get(name + i) != null) {\n i++;\n }\n\n name += i;\n }\n\n map.set(name, true);\n return name;\n}\n\nexport default completeDimensions;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport completeDimensions from './completeDimensions';\nexport default function createDimensions(source, opt) {\n opt = opt || {};\n return completeDimensions(opt.coordDimensions || [], source, {\n dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\n encodeDef: opt.encodeDefine || source.encodeDefine,\n dimCount: opt.dimensionsCount,\n encodeDefaulter: opt.encodeDefaulter,\n generateCoord: opt.generateCoord,\n generateCoordCount: opt.generateCoordCount\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../util/model';\n\nvar CoordSysInfo = function () {\n function CoordSysInfo(coordSysName) {\n this.coordSysDims = [];\n this.axisMap = createHashMap();\n this.categoryAxisMap = createHashMap();\n this.coordSysName = coordSysName;\n }\n\n return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n var coordSysName = seriesModel.get('coordinateSystem');\n var result = new CoordSysInfo(coordSysName);\n var fetch = fetchers[coordSysName];\n\n if (fetch) {\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n return result;\n }\n}\nvar fetchers = {\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!xAxisModel) {\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n }\n\n if (!yAxisModel) {\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n }\n }\n\n result.coordSysDims = ['x', 'y'];\n axisMap.set('x', xAxisModel);\n axisMap.set('y', yAxisModel);\n\n if (isCategory(xAxisModel)) {\n categoryAxisMap.set('x', xAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n\n if (isCategory(yAxisModel)) {\n categoryAxisMap.set('y', yAxisModel);\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n }\n },\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!singleAxisModel) {\n throw new Error('singleAxis should be specified.');\n }\n }\n\n result.coordSysDims = ['single'];\n axisMap.set('single', singleAxisModel);\n\n if (isCategory(singleAxisModel)) {\n categoryAxisMap.set('single', singleAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n },\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n if (process.env.NODE_ENV !== 'production') {\n if (!angleAxisModel) {\n throw new Error('angleAxis option not found');\n }\n\n if (!radiusAxisModel) {\n throw new Error('radiusAxis option not found');\n }\n }\n\n result.coordSysDims = ['radius', 'angle'];\n axisMap.set('radius', radiusAxisModel);\n axisMap.set('angle', angleAxisModel);\n\n if (isCategory(radiusAxisModel)) {\n categoryAxisMap.set('radius', radiusAxisModel);\n result.firstCategoryDimIndex = 0;\n }\n\n if (isCategory(angleAxisModel)) {\n categoryAxisMap.set('angle', angleAxisModel);\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n }\n },\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n result.coordSysDims = ['lng', 'lat'];\n },\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n var ecModel = seriesModel.ecModel;\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n var axisDim = coordSysDims[index];\n axisMap.set(axisDim, axisModel);\n\n if (isCategory(axisModel)) {\n categoryAxisMap.set(axisDim, axisModel);\n\n if (result.firstCategoryDimIndex == null) {\n result.firstCategoryDimIndex = index;\n }\n }\n });\n }\n};\n\nfunction isCategory(axisModel) {\n return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isString } from 'zrender/lib/core/util';\nexport function enableDataStack(seriesModel, dimensionInfoList, opt) {\n opt = opt || {};\n var byIndex = opt.byIndex;\n var stackedCoordDimension = opt.stackedCoordDimension;\n var mayStack = !!(seriesModel && seriesModel.get('stack'));\n var stackedByDimInfo;\n var stackedDimInfo;\n var stackResultDimension;\n var stackedOverDimension;\n each(dimensionInfoList, function (dimensionInfo, index) {\n if (isString(dimensionInfo)) {\n dimensionInfoList[index] = dimensionInfo = {\n name: dimensionInfo\n };\n }\n\n if (mayStack && !dimensionInfo.isExtraCoord) {\n if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n stackedByDimInfo = dimensionInfo;\n }\n\n if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n stackedDimInfo = dimensionInfo;\n }\n }\n });\n\n if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n byIndex = true;\n }\n\n if (stackedDimInfo) {\n stackResultDimension = '__\\0ecstackresult';\n stackedOverDimension = '__\\0ecstackedover';\n\n if (stackedByDimInfo) {\n stackedByDimInfo.createInvertedIndices = true;\n }\n\n var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\n var stackedDimType = stackedDimInfo.type;\n var stackedDimCoordIndex_1 = 0;\n each(dimensionInfoList, function (dimensionInfo) {\n if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\n stackedDimCoordIndex_1++;\n }\n });\n dimensionInfoList.push({\n name: stackResultDimension,\n coordDim: stackedDimCoordDim_1,\n coordDimIndex: stackedDimCoordIndex_1,\n type: stackedDimType,\n isExtraCoord: true,\n isCalculationCoord: true\n });\n stackedDimCoordIndex_1++;\n dimensionInfoList.push({\n name: stackedOverDimension,\n coordDim: stackedOverDimension,\n coordDimIndex: stackedDimCoordIndex_1,\n type: stackedDimType,\n isExtraCoord: true,\n isCalculationCoord: true\n });\n }\n\n return {\n stackedDimension: stackedDimInfo && stackedDimInfo.name,\n stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n isStackedByIndex: byIndex,\n stackedOverDimension: stackedOverDimension,\n stackResultDimension: stackResultDimension\n };\n}\nexport function isDimensionStacked(data, stackedDim) {\n return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\n}\nexport function getStackedDimension(data, targetDim) {\n return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { getDataItemValue } from '../../util/model';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../../data/Source';\nimport { enableDataStack } from '../../data/helper/dataStackHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types';\n\nfunction createListFromArray(source, seriesModel, opt) {\n opt = opt || {};\n\n if (!isSourceInstance(source)) {\n source = createSourceFromSeriesDataOption(source);\n }\n\n var coordSysName = seriesModel.get('coordinateSystem');\n var registeredCoordSys = CoordinateSystem.get(coordSysName);\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n var coordSysDimDefs;\n\n if (coordSysInfo && coordSysInfo.coordSysDims) {\n coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n var dimInfo = {\n name: dim\n };\n var axisModel = coordSysInfo.axisMap.get(dim);\n\n if (axisModel) {\n var axisType = axisModel.get('type');\n dimInfo.type = getDimensionTypeByAxis(axisType);\n }\n\n return dimInfo;\n });\n }\n\n if (!coordSysDimDefs) {\n coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n }\n\n var useEncodeDefaulter = opt.useEncodeDefaulter;\n var dimInfoList = createDimensions(source, {\n coordDimensions: coordSysDimDefs,\n generateCoord: opt.generateCoord,\n encodeDefaulter: zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null\n });\n var firstCategoryDimIndex;\n var hasNameEncode;\n coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n var coordDim = dimInfo.coordDim;\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n if (categoryAxisModel) {\n if (firstCategoryDimIndex == null) {\n firstCategoryDimIndex = dimIndex;\n }\n\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n if (opt.createInvertedIndices) {\n dimInfo.createInvertedIndices = true;\n }\n }\n\n if (dimInfo.otherDims.itemName != null) {\n hasNameEncode = true;\n }\n });\n\n if (!hasNameEncode && firstCategoryDimIndex != null) {\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n }\n\n var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n var list = new List(dimInfoList, seriesModel);\n list.setCalculationInfo(stackCalculationInfo);\n var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n } : null;\n list.hasItemOption = false;\n list.initData(source, null, dimValueGetter);\n return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n var sampleItem = firstDataNotNull(source.data || []);\n return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n }\n}\n\nfunction firstDataNotNull(data) {\n var i = 0;\n\n while (i < data.length && data[i] == null) {\n i++;\n }\n\n return data[i];\n}\n\nexport default createListFromArray;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as clazzUtil from '../util/clazz';\n\nvar Scale = function () {\n function Scale(setting) {\n this._setting = setting || {};\n this._extent = [Infinity, -Infinity];\n }\n\n Scale.prototype.getSetting = function (name) {\n return this._setting[name];\n };\n\n Scale.prototype.unionExtent = function (other) {\n var extent = this._extent;\n other[0] < extent[0] && (extent[0] = other[0]);\n other[1] > extent[1] && (extent[1] = other[1]);\n };\n\n Scale.prototype.unionExtentFromData = function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n };\n\n Scale.prototype.getExtent = function () {\n return this._extent.slice();\n };\n\n Scale.prototype.setExtent = function (start, end) {\n var thisExtent = this._extent;\n\n if (!isNaN(start)) {\n thisExtent[0] = start;\n }\n\n if (!isNaN(end)) {\n thisExtent[1] = end;\n }\n };\n\n Scale.prototype.isInExtentRange = function (value) {\n return this._extent[0] <= value && this._extent[1] >= value;\n };\n\n Scale.prototype.isBlank = function () {\n return this._isBlank;\n };\n\n Scale.prototype.setBlank = function (isBlank) {\n this._isBlank = isBlank;\n };\n\n return Scale;\n}();\n\nclazzUtil.enableClassManagement(Scale);\nexport default Scale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isObject, map } from 'zrender/lib/core/util';\n\nvar OrdinalMeta = function () {\n function OrdinalMeta(opt) {\n this.categories = opt.categories || [];\n this._needCollect = opt.needCollect;\n this._deduplication = opt.deduplication;\n }\n\n OrdinalMeta.createByAxisModel = function (axisModel) {\n var option = axisModel.option;\n var data = option.data;\n var categories = data && map(data, getName);\n return new OrdinalMeta({\n categories: categories,\n needCollect: !categories,\n deduplication: option.dedplication !== false\n });\n };\n\n ;\n\n OrdinalMeta.prototype.getOrdinal = function (category) {\n return this._getOrCreateMap().get(category);\n };\n\n OrdinalMeta.prototype.parseAndCollect = function (category) {\n var index;\n var needCollect = this._needCollect;\n\n if (typeof category !== 'string' && !needCollect) {\n return category;\n }\n\n if (needCollect && !this._deduplication) {\n index = this.categories.length;\n this.categories[index] = category;\n return index;\n }\n\n var map = this._getOrCreateMap();\n\n index = map.get(category);\n\n if (index == null) {\n if (needCollect) {\n index = this.categories.length;\n this.categories[index] = category;\n map.set(category, index);\n } else {\n index = NaN;\n }\n }\n\n return index;\n };\n\n OrdinalMeta.prototype._getOrCreateMap = function () {\n return this._map || (this._map = createHashMap(this.categories));\n };\n\n return OrdinalMeta;\n}();\n\nfunction getName(obj) {\n if (isObject(obj) && obj.value != null) {\n return obj.value;\n } else {\n return obj + '';\n }\n}\n\nexport default OrdinalMeta;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../util/number';\nvar roundNumber = numberUtil.round;\nexport function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n var result = {};\n var span = extent[1] - extent[0];\n var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n if (minInterval != null && interval < minInterval) {\n interval = result.interval = minInterval;\n }\n\n if (maxInterval != null && interval > maxInterval) {\n interval = result.interval = maxInterval;\n }\n\n var precision = result.intervalPrecision = getIntervalPrecision(interval);\n var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n fixExtent(niceTickExtent, extent);\n return result;\n}\nexport function getIntervalPrecision(interval) {\n return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n}\n\nexport function fixExtent(niceTickExtent, extent) {\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n clamp(niceTickExtent, 0, extent);\n clamp(niceTickExtent, 1, extent);\n\n if (niceTickExtent[0] > niceTickExtent[1]) {\n niceTickExtent[0] = niceTickExtent[1];\n }\n}\nexport function contain(val, extent) {\n return val >= extent[0] && val <= extent[1];\n}\nexport function normalize(val, extent) {\n if (extent[1] === extent[0]) {\n return 0.5;\n }\n\n return (val - extent[0]) / (extent[1] - extent[0]);\n}\nexport function scale(val, extent) {\n return val * (extent[1] - extent[0]) + extent[0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Scale from './Scale';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport * as scaleHelper from './helper';\nimport { isArray, map, isObject } from 'zrender/lib/core/util';\n\nvar OrdinalScale = function (_super) {\n __extends(OrdinalScale, _super);\n\n function OrdinalScale(setting) {\n var _this = _super.call(this, setting) || this;\n\n _this.type = 'ordinal';\n\n var ordinalMeta = _this.getSetting('ordinalMeta');\n\n if (!ordinalMeta) {\n ordinalMeta = new OrdinalMeta({});\n }\n\n if (isArray(ordinalMeta)) {\n ordinalMeta = new OrdinalMeta({\n categories: map(ordinalMeta, function (item) {\n return isObject(item) ? item.value : item;\n })\n });\n }\n\n _this._ordinalMeta = ordinalMeta;\n _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\n return _this;\n }\n\n OrdinalScale.prototype.parse = function (val) {\n return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) : Math.round(val);\n };\n\n OrdinalScale.prototype.contain = function (rank) {\n rank = this.parse(rank);\n return scaleHelper.contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null;\n };\n\n OrdinalScale.prototype.normalize = function (val) {\n val = this._getTickNumber(this.parse(val));\n return scaleHelper.normalize(val, this._extent);\n };\n\n OrdinalScale.prototype.scale = function (val) {\n val = Math.round(scaleHelper.scale(val, this._extent));\n return this.getRawOrdinalNumber(val);\n };\n\n OrdinalScale.prototype.getTicks = function () {\n var ticks = [];\n var extent = this._extent;\n var rank = extent[0];\n\n while (rank <= extent[1]) {\n ticks.push({\n value: rank\n });\n rank++;\n }\n\n return ticks;\n };\n\n OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\n return;\n };\n\n OrdinalScale.prototype.setSortInfo = function (info) {\n if (info == null) {\n this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null;\n return;\n }\n\n var infoOrdinalNumbers = info.ordinalNumbers;\n var ordinalsByTick = this._ordinalNumbersByTick = [];\n var ticksByOrdinal = this._ticksByOrdinalNumber = [];\n var tickNum = 0;\n var allCategoryLen = this._ordinalMeta.categories.length;\n\n for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) {\n var ordinalNumber = infoOrdinalNumbers[tickNum];\n ordinalsByTick[tickNum] = ordinalNumber;\n ticksByOrdinal[ordinalNumber] = tickNum;\n }\n\n var unusedOrdinal = 0;\n\n for (; tickNum < allCategoryLen; ++tickNum) {\n while (ticksByOrdinal[unusedOrdinal] != null) {\n unusedOrdinal++;\n }\n\n ;\n ordinalsByTick.push(unusedOrdinal);\n ticksByOrdinal[unusedOrdinal] = tickNum;\n }\n };\n\n OrdinalScale.prototype._getTickNumber = function (ordinal) {\n var ticksByOrdinalNumber = this._ticksByOrdinalNumber;\n return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal;\n };\n\n OrdinalScale.prototype.getRawOrdinalNumber = function (tickNumber) {\n var ordinalNumbersByTick = this._ordinalNumbersByTick;\n return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber;\n };\n\n OrdinalScale.prototype.getLabel = function (tick) {\n if (!this.isBlank()) {\n var ordinalNumber = this.getRawOrdinalNumber(tick.value);\n var cateogry = this._ordinalMeta.categories[ordinalNumber];\n return cateogry == null ? '' : cateogry + '';\n }\n };\n\n OrdinalScale.prototype.count = function () {\n return this._extent[1] - this._extent[0] + 1;\n };\n\n OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n };\n\n OrdinalScale.prototype.isInExtentRange = function (value) {\n value = this._getTickNumber(value);\n return this._extent[0] <= value && this._extent[1] >= value;\n };\n\n OrdinalScale.prototype.getOrdinalMeta = function () {\n return this._ordinalMeta;\n };\n\n OrdinalScale.prototype.niceTicks = function () {};\n\n OrdinalScale.prototype.niceExtent = function () {};\n\n OrdinalScale.type = 'ordinal';\n return OrdinalScale;\n}(Scale);\n\nScale.registerClass(OrdinalScale);\nexport default OrdinalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport * as formatUtil from '../util/format';\nimport Scale from './Scale';\nimport * as helper from './helper';\nvar roundNumber = numberUtil.round;\n\nvar IntervalScale = function (_super) {\n __extends(IntervalScale, _super);\n\n function IntervalScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'interval';\n _this._interval = 0;\n _this._intervalPrecision = 2;\n return _this;\n }\n\n IntervalScale.prototype.parse = function (val) {\n return val;\n };\n\n IntervalScale.prototype.contain = function (val) {\n return helper.contain(val, this._extent);\n };\n\n IntervalScale.prototype.normalize = function (val) {\n return helper.normalize(val, this._extent);\n };\n\n IntervalScale.prototype.scale = function (val) {\n return helper.scale(val, this._extent);\n };\n\n IntervalScale.prototype.setExtent = function (start, end) {\n var thisExtent = this._extent;\n\n if (!isNaN(start)) {\n thisExtent[0] = parseFloat(start);\n }\n\n if (!isNaN(end)) {\n thisExtent[1] = parseFloat(end);\n }\n };\n\n IntervalScale.prototype.unionExtent = function (other) {\n var extent = this._extent;\n other[0] < extent[0] && (extent[0] = other[0]);\n other[1] > extent[1] && (extent[1] = other[1]);\n this.setExtent(extent[0], extent[1]);\n };\n\n IntervalScale.prototype.getInterval = function () {\n return this._interval;\n };\n\n IntervalScale.prototype.setInterval = function (interval) {\n this._interval = interval;\n this._niceExtent = this._extent.slice();\n this._intervalPrecision = helper.getIntervalPrecision(interval);\n };\n\n IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\n var interval = this._interval;\n var extent = this._extent;\n var niceTickExtent = this._niceExtent;\n var intervalPrecision = this._intervalPrecision;\n var ticks = [];\n\n if (!interval) {\n return ticks;\n }\n\n var safeLimit = 10000;\n\n if (extent[0] < niceTickExtent[0]) {\n if (expandToNicedExtent) {\n ticks.push({\n value: roundNumber(niceTickExtent[0] - interval, intervalPrecision)\n });\n } else {\n ticks.push({\n value: extent[0]\n });\n }\n }\n\n var tick = niceTickExtent[0];\n\n while (tick <= niceTickExtent[1]) {\n ticks.push({\n value: tick\n });\n tick = roundNumber(tick + interval, intervalPrecision);\n\n if (tick === ticks[ticks.length - 1].value) {\n break;\n }\n\n if (ticks.length > safeLimit) {\n return [];\n }\n }\n\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\n\n if (extent[1] > lastNiceTick) {\n if (expandToNicedExtent) {\n ticks.push({\n value: roundNumber(lastNiceTick + interval, intervalPrecision)\n });\n } else {\n ticks.push({\n value: extent[1]\n });\n }\n }\n\n return ticks;\n };\n\n IntervalScale.prototype.getMinorTicks = function (splitNumber) {\n var ticks = this.getTicks(true);\n var minorTicks = [];\n var extent = this.getExtent();\n\n for (var i = 1; i < ticks.length; i++) {\n var nextTick = ticks[i];\n var prevTick = ticks[i - 1];\n var count = 0;\n var minorTicksGroup = [];\n var interval = nextTick.value - prevTick.value;\n var minorInterval = interval / splitNumber;\n\n while (count < splitNumber - 1) {\n var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval);\n\n if (minorTick > extent[0] && minorTick < extent[1]) {\n minorTicksGroup.push(minorTick);\n }\n\n count++;\n }\n\n minorTicks.push(minorTicksGroup);\n }\n\n return minorTicks;\n };\n\n IntervalScale.prototype.getLabel = function (data, opt) {\n if (data == null) {\n return '';\n }\n\n var precision = opt && opt.precision;\n\n if (precision == null) {\n precision = numberUtil.getPrecisionSafe(data.value) || 0;\n } else if (precision === 'auto') {\n precision = this._intervalPrecision;\n }\n\n var dataNum = roundNumber(data.value, precision, true);\n return formatUtil.addCommas(dataNum);\n };\n\n IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\n splitNumber = splitNumber || 5;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n\n if (!isFinite(span)) {\n return;\n }\n\n if (span < 0) {\n span = -span;\n extent.reverse();\n }\n\n var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n this._intervalPrecision = result.intervalPrecision;\n this._interval = result.interval;\n this._niceExtent = result.niceTickExtent;\n };\n\n IntervalScale.prototype.niceExtent = function (opt) {\n var extent = this._extent;\n\n if (extent[0] === extent[1]) {\n if (extent[0] !== 0) {\n var expandSize = extent[0];\n\n if (!opt.fixMax) {\n extent[1] += expandSize / 2;\n extent[0] -= expandSize / 2;\n } else {\n extent[0] -= expandSize / 2;\n }\n } else {\n extent[1] = 1;\n }\n }\n\n var span = extent[1] - extent[0];\n\n if (!isFinite(span)) {\n extent[0] = 0;\n extent[1] = 1;\n }\n\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n var interval = this._interval;\n\n if (!opt.fixMin) {\n extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n }\n\n if (!opt.fixMax) {\n extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n }\n };\n\n IntervalScale.type = 'interval';\n return IntervalScale;\n}(Scale);\n\nScale.registerClass(IntervalScale);\nexport default IntervalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n return axis.dim + axis.index;\n}\n\nexport function getLayoutOnAxis(opt) {\n var params = [];\n var baseAxis = opt.axis;\n var axisKey = 'axis0';\n\n if (baseAxis.type !== 'category') {\n return;\n }\n\n var bandWidth = baseAxis.getBandWidth();\n\n for (var i = 0; i < opt.count || 0; i++) {\n params.push(zrUtil.defaults({\n bandWidth: bandWidth,\n axisKey: axisKey,\n stackId: STACK_PREFIX + i\n }, opt));\n }\n\n var widthAndOffsets = doCalBarWidthAndOffset(params);\n var result = [];\n\n for (var i = 0; i < opt.count; i++) {\n var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n item.offsetCenter = item.offset + item.width / 2;\n result.push(item);\n }\n\n return result;\n}\nexport function prepareLayoutBarSeries(seriesType, ecModel) {\n var seriesModels = [];\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n seriesModels.push(seriesModel);\n }\n });\n return seriesModels;\n}\n\nfunction getValueAxesMinGaps(barSeries) {\n var axisValues = {};\n zrUtil.each(barSeries, function (seriesModel) {\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n return;\n }\n\n var data = seriesModel.getData();\n var key = baseAxis.dim + '_' + baseAxis.index;\n var dim = data.mapDimension(baseAxis.dim);\n\n for (var i = 0, cnt = data.count(); i < cnt; ++i) {\n var value = data.get(dim, i);\n\n if (!axisValues[key]) {\n axisValues[key] = [value];\n } else {\n axisValues[key].push(value);\n }\n }\n });\n var axisMinGaps = {};\n\n for (var key in axisValues) {\n if (axisValues.hasOwnProperty(key)) {\n var valuesInAxis = axisValues[key];\n\n if (valuesInAxis) {\n valuesInAxis.sort(function (a, b) {\n return a - b;\n });\n var min = null;\n\n for (var j = 1; j < valuesInAxis.length; ++j) {\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n if (delta > 0) {\n min = min === null ? delta : Math.min(min, delta);\n }\n }\n\n axisMinGaps[key] = min;\n }\n }\n }\n\n return axisMinGaps;\n}\n\nexport function makeColumnLayout(barSeries) {\n var axisMinGaps = getValueAxesMinGaps(barSeries);\n var seriesInfoList = [];\n zrUtil.each(barSeries, function (seriesModel) {\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var axisExtent = baseAxis.getExtent();\n var bandWidth;\n\n if (baseAxis.type === 'category') {\n bandWidth = baseAxis.getBandWidth();\n } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n var key = baseAxis.dim + '_' + baseAxis.index;\n var minGap = axisMinGaps[key];\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n var scale = baseAxis.scale.getExtent();\n var scaleSpan = Math.abs(scale[1] - scale[0]);\n bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan;\n } else {\n var data = seriesModel.getData();\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n }\n\n var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n var barMinWidth = parsePercent(seriesModel.get('barMinWidth') || 1, bandWidth);\n var barGap = seriesModel.get('barGap');\n var barCategoryGap = seriesModel.get('barCategoryGap');\n seriesInfoList.push({\n bandWidth: bandWidth,\n barWidth: barWidth,\n barMaxWidth: barMaxWidth,\n barMinWidth: barMinWidth,\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n axisKey: getAxisKey(baseAxis),\n stackId: getSeriesStackId(seriesModel)\n });\n });\n return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n var columnsMap = {};\n zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n var axisKey = seriesInfo.axisKey;\n var bandWidth = seriesInfo.bandWidth;\n var columnsOnAxis = columnsMap[axisKey] || {\n bandWidth: bandWidth,\n remainedWidth: bandWidth,\n autoWidthCount: 0,\n categoryGap: null,\n gap: '20%',\n stacks: {}\n };\n var stacks = columnsOnAxis.stacks;\n columnsMap[axisKey] = columnsOnAxis;\n var stackId = seriesInfo.stackId;\n\n if (!stacks[stackId]) {\n columnsOnAxis.autoWidthCount++;\n }\n\n stacks[stackId] = stacks[stackId] || {\n width: 0,\n maxWidth: 0\n };\n var barWidth = seriesInfo.barWidth;\n\n if (barWidth && !stacks[stackId].width) {\n stacks[stackId].width = barWidth;\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n columnsOnAxis.remainedWidth -= barWidth;\n }\n\n var barMaxWidth = seriesInfo.barMaxWidth;\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n var barMinWidth = seriesInfo.barMinWidth;\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n var barGap = seriesInfo.barGap;\n barGap != null && (columnsOnAxis.gap = barGap);\n var barCategoryGap = seriesInfo.barCategoryGap;\n barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n });\n var result = {};\n zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n result[coordSysName] = {};\n var stacks = columnsOnAxis.stacks;\n var bandWidth = columnsOnAxis.bandWidth;\n var categoryGapPercent = columnsOnAxis.categoryGap;\n\n if (categoryGapPercent == null) {\n var columnCount = zrUtil.keys(stacks).length;\n categoryGapPercent = Math.max(35 - columnCount * 4, 15) + '%';\n }\n\n var categoryGap = parsePercent(categoryGapPercent, bandWidth);\n var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n var remainedWidth = columnsOnAxis.remainedWidth;\n var autoWidthCount = columnsOnAxis.autoWidthCount;\n var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n zrUtil.each(stacks, function (column) {\n var maxWidth = column.maxWidth;\n var minWidth = column.minWidth;\n\n if (!column.width) {\n var finalWidth = autoWidth;\n\n if (maxWidth && maxWidth < finalWidth) {\n finalWidth = Math.min(maxWidth, remainedWidth);\n }\n\n if (minWidth && minWidth > finalWidth) {\n finalWidth = minWidth;\n }\n\n if (finalWidth !== autoWidth) {\n column.width = finalWidth;\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\n autoWidthCount--;\n }\n } else {\n var finalWidth = column.width;\n\n if (maxWidth) {\n finalWidth = Math.min(finalWidth, maxWidth);\n }\n\n if (minWidth) {\n finalWidth = Math.max(finalWidth, minWidth);\n }\n\n column.width = finalWidth;\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\n autoWidthCount--;\n }\n });\n autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n var widthSum = 0;\n var lastColumn;\n zrUtil.each(stacks, function (column, idx) {\n if (!column.width) {\n column.width = autoWidth;\n }\n\n lastColumn = column;\n widthSum += column.width * (1 + barGapPercent);\n });\n\n if (lastColumn) {\n widthSum -= lastColumn.width * barGapPercent;\n }\n\n var offset = -widthSum / 2;\n zrUtil.each(stacks, function (column, stackId) {\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\n bandWidth: bandWidth,\n offset: offset,\n width: column.width\n };\n offset += column.width * (1 + barGapPercent);\n });\n });\n return result;\n}\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n if (barWidthAndOffset && axis) {\n var result = barWidthAndOffset[getAxisKey(axis)];\n\n if (result != null && seriesModel != null) {\n return result[getSeriesStackId(seriesModel)];\n }\n\n return result;\n }\n}\n\nexport { retrieveColumnLayout };\nexport function layout(seriesType, ecModel) {\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n var barWidthAndOffset = makeColumnLayout(seriesModels);\n var lastStackCoords = {};\n zrUtil.each(seriesModels, function (seriesModel) {\n var data = seriesModel.getData();\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var stackId = getSeriesStackId(seriesModel);\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n var columnOffset = columnLayoutInfo.offset;\n var columnWidth = columnLayoutInfo.width;\n var valueAxis = cartesian.getOtherAxis(baseAxis);\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n data.setLayout({\n bandWidth: columnLayoutInfo.bandWidth,\n offset: columnOffset,\n size: columnWidth\n });\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var stacked = isDimensionStacked(data, valueDim);\n var isValueAxisH = valueAxis.isHorizontal();\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n for (var idx = 0, len = data.count(); idx < len; idx++) {\n var value = data.get(valueDim, idx);\n var baseValue = data.get(baseDim, idx);\n var sign = value >= 0 ? 'p' : 'n';\n var baseCoord = valueAxisStart;\n\n if (stacked) {\n if (!lastStackCoords[stackId][baseValue]) {\n lastStackCoords[stackId][baseValue] = {\n p: valueAxisStart,\n n: valueAxisStart\n };\n }\n\n baseCoord = lastStackCoords[stackId][baseValue][sign];\n }\n\n var x = void 0;\n var y = void 0;\n var width = void 0;\n var height = void 0;\n\n if (isValueAxisH) {\n var coord = cartesian.dataToPoint([value, baseValue]);\n x = baseCoord;\n y = coord[1] + columnOffset;\n width = coord[0] - valueAxisStart;\n height = columnWidth;\n\n if (Math.abs(width) < barMinHeight) {\n width = (width < 0 ? -1 : 1) * barMinHeight;\n }\n\n if (!isNaN(width)) {\n stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n }\n } else {\n var coord = cartesian.dataToPoint([baseValue, value]);\n x = coord[0] + columnOffset;\n y = baseCoord;\n width = columnWidth;\n height = coord[1] - valueAxisStart;\n\n if (Math.abs(height) < barMinHeight) {\n height = (height <= 0 ? -1 : 1) * barMinHeight;\n }\n\n if (!isNaN(height)) {\n stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n }\n }\n\n data.setItemLayout(idx, {\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n });\n}\nexport var largeLayout = {\n seriesType: 'bar',\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n var cartesian = seriesModel.coordinateSystem;\n var coordLayout = cartesian.master.getRect();\n var baseAxis = cartesian.getBaseAxis();\n var valueAxis = cartesian.getOtherAxis(baseAxis);\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var valueAxisHorizontal = valueAxis.isHorizontal();\n var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n barWidth = LARGE_BAR_MIN_WIDTH;\n }\n\n return {\n progress: function (params, data) {\n var count = params.count;\n var largePoints = new LargeArr(count * 2);\n var largeBackgroundPoints = new LargeArr(count * 2);\n var largeDataIndices = new LargeArr(count);\n var dataIndex;\n var coord = [];\n var valuePair = [];\n var pointsOffset = 0;\n var idxOffset = 0;\n\n while ((dataIndex = params.next()) != null) {\n valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n coord = cartesian.dataToPoint(valuePair, null, coord);\n largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\n largePoints[pointsOffset++] = coord[0];\n largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\n largePoints[pointsOffset++] = coord[1];\n largeDataIndices[idxOffset++] = dataIndex;\n }\n\n data.setLayout({\n largePoints: largePoints,\n largeDataIndices: largeDataIndices,\n largeBackgroundPoints: largeBackgroundPoints,\n barWidth: barWidth,\n valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\n valueAxisHorizontal: valueAxisHorizontal\n });\n }\n };\n }\n};\n\nfunction isOnCartesian(seriesModel) {\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n}\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport { ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_YEAR, format, leveledFormat, getUnitValue, timeUnits, fullLeveledFormatter, getPrimaryTimeUnit, isPrimaryTimeUnit, getDefaultFormatPrecisionOfInterval, fullYearGetterName, monthSetterName, fullYearSetterName, dateSetterName, hoursGetterName, hoursSetterName, minutesSetterName, secondsSetterName, millisecondsSetterName, monthGetterName, dateGetterName, minutesGetterName, secondsGetterName, millisecondsGetterName } from '../util/time';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nimport Scale from './Scale';\nimport { warn } from '../util/log';\nimport { filter, map } from 'zrender/lib/core/util';\n\nvar bisect = function (a, x, lo, hi) {\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n\n if (a[mid][1] < x) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n\n return lo;\n};\n\nvar TimeScale = function (_super) {\n __extends(TimeScale, _super);\n\n function TimeScale(settings) {\n var _this = _super.call(this, settings) || this;\n\n _this.type = 'time';\n return _this;\n }\n\n TimeScale.prototype.getLabel = function (tick) {\n var useUTC = this.getSetting('useUTC');\n return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\n };\n\n TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\n var isUTC = this.getSetting('useUTC');\n var lang = this.getSetting('locale');\n return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\n };\n\n TimeScale.prototype.getTicks = function (expandToNicedExtent) {\n var interval = this._interval;\n var extent = this._extent;\n var ticks = [];\n\n if (!interval) {\n return ticks;\n }\n\n ticks.push({\n value: extent[0],\n level: 0\n });\n var useUTC = this.getSetting('useUTC');\n var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\n ticks = ticks.concat(innerTicks);\n ticks.push({\n value: extent[1],\n level: 0\n });\n return ticks;\n };\n\n TimeScale.prototype.niceExtent = function (opt) {\n var extent = this._extent;\n\n if (extent[0] === extent[1]) {\n extent[0] -= ONE_DAY;\n extent[1] += ONE_DAY;\n }\n\n if (extent[1] === -Infinity && extent[0] === Infinity) {\n var d = new Date();\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n extent[0] = extent[1] - ONE_DAY;\n }\n\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n };\n\n TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n this._approxInterval = span / approxTickNum;\n\n if (minInterval != null && this._approxInterval < minInterval) {\n this._approxInterval = minInterval;\n }\n\n if (maxInterval != null && this._approxInterval > maxInterval) {\n this._approxInterval = maxInterval;\n }\n\n var scaleIntervalsLen = scaleIntervals.length;\n var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\n this._interval = scaleIntervals[idx][1];\n this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\n };\n\n TimeScale.prototype.parse = function (val) {\n return typeof val === 'number' ? val : +numberUtil.parseDate(val);\n };\n\n TimeScale.prototype.contain = function (val) {\n return scaleHelper.contain(this.parse(val), this._extent);\n };\n\n TimeScale.prototype.normalize = function (val) {\n return scaleHelper.normalize(this.parse(val), this._extent);\n };\n\n TimeScale.prototype.scale = function (val) {\n return scaleHelper.scale(val, this._extent);\n };\n\n TimeScale.type = 'time';\n return TimeScale;\n}(IntervalScale);\n\nvar scaleIntervals = [['second', ONE_SECOND], ['minute', ONE_MINUTE], ['hour', ONE_HOUR], ['quarter-day', ONE_HOUR * 6], ['half-day', ONE_HOUR * 12], ['day', ONE_DAY * 1.2], ['half-week', ONE_DAY * 3.5], ['week', ONE_DAY * 7], ['month', ONE_DAY * 31], ['quarter', ONE_DAY * 95], ['half-year', ONE_YEAR / 2], ['year', ONE_YEAR]];\n\nfunction isUnitValueSame(unit, valueA, valueB, isUTC) {\n var dateA = numberUtil.parseDate(valueA);\n var dateB = numberUtil.parseDate(valueB);\n\n var isSame = function (unit) {\n return getUnitValue(dateA, unit, isUTC) === getUnitValue(dateB, unit, isUTC);\n };\n\n var isSameYear = function () {\n return isSame('year');\n };\n\n var isSameMonth = function () {\n return isSameYear() && isSame('month');\n };\n\n var isSameDay = function () {\n return isSameMonth() && isSame('day');\n };\n\n var isSameHour = function () {\n return isSameDay() && isSame('hour');\n };\n\n var isSameMinute = function () {\n return isSameHour() && isSame('minute');\n };\n\n var isSameSecond = function () {\n return isSameMinute() && isSame('second');\n };\n\n var isSameMilliSecond = function () {\n return isSameSecond() && isSame('millisecond');\n };\n\n switch (unit) {\n case 'year':\n return isSameYear();\n\n case 'month':\n return isSameMonth();\n\n case 'day':\n return isSameDay();\n\n case 'hour':\n return isSameHour();\n\n case 'minute':\n return isSameMinute();\n\n case 'second':\n return isSameSecond();\n\n case 'millisecond':\n return isSameMilliSecond();\n }\n}\n\nfunction getDateInterval(approxInterval, daysInMonth) {\n approxInterval /= ONE_DAY;\n return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1;\n}\n\nfunction getMonthInterval(approxInterval) {\n var APPROX_ONE_MONTH = 30 * ONE_DAY;\n approxInterval /= APPROX_ONE_MONTH;\n return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getHourInterval(approxInterval) {\n approxInterval /= ONE_HOUR;\n return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMinutesAndSecondsInterval(approxInterval, isMinutes) {\n approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\n return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMillisecondsInterval(approxInterval) {\n return numberUtil.nice(approxInterval, true);\n}\n\nfunction getFirstTimestampOfUnit(date, unitName, isUTC) {\n var outDate = new Date(date);\n\n switch (getPrimaryTimeUnit(unitName)) {\n case 'year':\n case 'month':\n outDate[monthSetterName(isUTC)](0);\n\n case 'day':\n outDate[dateSetterName(isUTC)](1);\n\n case 'hour':\n outDate[hoursSetterName(isUTC)](0);\n\n case 'minute':\n outDate[minutesSetterName(isUTC)](0);\n\n case 'second':\n outDate[secondsSetterName(isUTC)](0);\n outDate[millisecondsSetterName(isUTC)](0);\n }\n\n return outDate.getTime();\n}\n\nfunction getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\n var safeLimit = 10000;\n var unitNames = timeUnits;\n var iter = 0;\n\n function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\n var date = new Date(minTimestamp);\n var dateTime = minTimestamp;\n var d = date[getMethodName]();\n\n while (dateTime < maxTimestamp && dateTime <= extent[1]) {\n out.push({\n value: dateTime\n });\n d += interval;\n date[setMethodName](d);\n dateTime = date.getTime();\n }\n\n out.push({\n value: dateTime,\n notAdd: true\n });\n }\n\n function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\n var newAddedTicks = [];\n var isFirstLevel = !lastLevelTicks.length;\n\n if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\n return;\n }\n\n if (isFirstLevel) {\n lastLevelTicks = [{\n value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\n }, {\n value: extent[1]\n }];\n }\n\n for (var i = 0; i < lastLevelTicks.length - 1; i++) {\n var startTick = lastLevelTicks[i].value;\n var endTick = lastLevelTicks[i + 1].value;\n\n if (startTick === endTick) {\n continue;\n }\n\n var interval = void 0;\n var getterName = void 0;\n var setterName = void 0;\n var isDate = false;\n\n switch (unitName) {\n case 'year':\n interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\n getterName = fullYearGetterName(isUTC);\n setterName = fullYearSetterName(isUTC);\n break;\n\n case 'half-year':\n case 'quarter':\n case 'month':\n interval = getMonthInterval(approxInterval);\n getterName = monthGetterName(isUTC);\n setterName = monthSetterName(isUTC);\n break;\n\n case 'week':\n case 'half-week':\n case 'day':\n interval = getDateInterval(approxInterval, 31);\n getterName = dateGetterName(isUTC);\n setterName = dateSetterName(isUTC);\n isDate = true;\n break;\n\n case 'half-day':\n case 'quarter-day':\n case 'hour':\n interval = getHourInterval(approxInterval);\n getterName = hoursGetterName(isUTC);\n setterName = hoursSetterName(isUTC);\n break;\n\n case 'minute':\n interval = getMinutesAndSecondsInterval(approxInterval, true);\n getterName = minutesGetterName(isUTC);\n setterName = minutesSetterName(isUTC);\n break;\n\n case 'second':\n interval = getMinutesAndSecondsInterval(approxInterval, false);\n getterName = secondsGetterName(isUTC);\n setterName = secondsSetterName(isUTC);\n break;\n\n case 'millisecond':\n interval = getMillisecondsInterval(approxInterval);\n getterName = millisecondsGetterName(isUTC);\n setterName = millisecondsSetterName(isUTC);\n break;\n }\n\n addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\n\n if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\n levelTicks.unshift({\n value: levelTicks[0].value - interval\n });\n }\n }\n\n for (var i = 0; i < newAddedTicks.length; i++) {\n levelTicks.push(newAddedTicks[i]);\n }\n\n return newAddedTicks;\n }\n\n var levelsTicks = [];\n var currentLevelTicks = [];\n var tickCount = 0;\n var lastLevelTickCount = 0;\n\n for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\n var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\n\n if (!isPrimaryTimeUnit(unitNames[i])) {\n continue;\n }\n\n addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\n var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\n\n if (primaryTimeUnit !== nextPrimaryTimeUnit) {\n if (currentLevelTicks.length) {\n lastLevelTickCount = tickCount;\n currentLevelTicks.sort(function (a, b) {\n return a.value - b.value;\n });\n var levelTicksRemoveDuplicated = [];\n\n for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\n var tickValue = currentLevelTicks[i_1].value;\n\n if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\n levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\n\n if (tickValue >= extent[0] && tickValue <= extent[1]) {\n tickCount++;\n }\n }\n }\n\n var targetTickNum = (extent[1] - extent[0]) / approxInterval;\n\n if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\n break;\n }\n\n levelsTicks.push(levelTicksRemoveDuplicated);\n\n if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\n break;\n }\n }\n\n currentLevelTicks = [];\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (iter >= safeLimit) {\n warn('Exceed safe limit.');\n }\n }\n\n var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\n return filter(levelTicks, function (tick) {\n return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd;\n });\n }), function (levelTicks) {\n return levelTicks.length > 0;\n });\n var ticks = [];\n var maxLevel = levelsTicksInExtent.length - 1;\n\n for (var i = 0; i < levelsTicksInExtent.length; ++i) {\n var levelTicks = levelsTicksInExtent[i];\n\n for (var k = 0; k < levelTicks.length; ++k) {\n ticks.push({\n value: levelTicks[k].value,\n level: maxLevel - i\n });\n }\n }\n\n ticks.sort(function (a, b) {\n return a.value - b.value;\n });\n var result = [];\n\n for (var i = 0; i < ticks.length; ++i) {\n if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\n result.push(ticks[i]);\n }\n }\n\n return result;\n}\n\nScale.registerClass(TimeScale);\nexport default TimeScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Scale from './Scale';\nimport * as numberUtil from '../util/number';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\n\nvar LogScale = function (_super) {\n __extends(LogScale, _super);\n\n function LogScale() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'log';\n _this.base = 10;\n _this._originalScale = new IntervalScale();\n _this._interval = 0;\n return _this;\n }\n\n LogScale.prototype.getTicks = function (expandToNicedExtent) {\n var originalScale = this._originalScale;\n var extent = this._extent;\n var originalExtent = originalScale.getExtent();\n var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\n return zrUtil.map(ticks, function (tick) {\n var val = tick.value;\n var powVal = numberUtil.round(mathPow(this.base, val));\n powVal = val === extent[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n powVal = val === extent[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n return {\n value: powVal\n };\n }, this);\n };\n\n LogScale.prototype.setExtent = function (start, end) {\n var base = this.base;\n start = mathLog(start) / mathLog(base);\n end = mathLog(end) / mathLog(base);\n intervalScaleProto.setExtent.call(this, start, end);\n };\n\n LogScale.prototype.getExtent = function () {\n var base = this.base;\n var extent = scaleProto.getExtent.call(this);\n extent[0] = mathPow(base, extent[0]);\n extent[1] = mathPow(base, extent[1]);\n var originalScale = this._originalScale;\n var originalExtent = originalScale.getExtent();\n this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n return extent;\n };\n\n LogScale.prototype.unionExtent = function (extent) {\n this._originalScale.unionExtent(extent);\n\n var base = this.base;\n extent[0] = mathLog(extent[0]) / mathLog(base);\n extent[1] = mathLog(extent[1]) / mathLog(base);\n scaleProto.unionExtent.call(this, extent);\n };\n\n LogScale.prototype.unionExtentFromData = function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n };\n\n LogScale.prototype.niceTicks = function (approxTickNum) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n\n if (span === Infinity || span <= 0) {\n return;\n }\n\n var interval = numberUtil.quantity(span);\n var err = approxTickNum / span * interval;\n\n if (err <= 0.5) {\n interval *= 10;\n }\n\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n interval *= 10;\n }\n\n var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n this._interval = interval;\n this._niceExtent = niceExtent;\n };\n\n LogScale.prototype.niceExtent = function (opt) {\n intervalScaleProto.niceExtent.call(this, opt);\n this._fixMin = opt.fixMin;\n this._fixMax = opt.fixMax;\n };\n\n LogScale.prototype.parse = function (val) {\n return val;\n };\n\n LogScale.prototype.contain = function (val) {\n val = mathLog(val) / mathLog(this.base);\n return scaleHelper.contain(val, this._extent);\n };\n\n LogScale.prototype.normalize = function (val) {\n val = mathLog(val) / mathLog(this.base);\n return scaleHelper.normalize(val, this._extent);\n };\n\n LogScale.prototype.scale = function (val) {\n val = scaleHelper.scale(val, this._extent);\n return mathPow(this.base, val);\n };\n\n LogScale.type = 'log';\n return LogScale;\n}(Scale);\n\nvar proto = LogScale.prototype;\nproto.getMinorTicks = intervalScaleProto.getMinorTicks;\nproto.getLabel = intervalScaleProto.getLabel;\n\nfunction fixRoundingError(val, originalVal) {\n return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nScale.registerClass(LogScale);\nexport default LogScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray, eqNaN, isFunction } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\n\nvar ScaleRawExtentInfo = function () {\n function ScaleRawExtentInfo(scale, model, originalExtent) {\n this._prepareParams(scale, model, originalExtent);\n }\n\n ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\n if (dataExtent[1] < dataExtent[0]) {\n dataExtent = [NaN, NaN];\n }\n\n this._dataMin = dataExtent[0];\n this._dataMax = dataExtent[1];\n var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\n this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\n var modelMinRaw = this._modelMinRaw = model.get('min', true);\n\n if (isFunction(modelMinRaw)) {\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\n min: dataExtent[0],\n max: dataExtent[1]\n }));\n } else if (modelMinRaw !== 'dataMin') {\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\n }\n\n var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\n\n if (isFunction(modelMaxRaw)) {\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\n min: dataExtent[0],\n max: dataExtent[1]\n }));\n } else if (modelMaxRaw !== 'dataMax') {\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\n }\n\n if (isOrdinal) {\n this._axisDataLen = model.getCategories().length;\n } else {\n var boundaryGap = model.get('boundaryGap');\n var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\n\n if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Boolean type for boundaryGap is only ' + 'allowed for ordinal axis. Please use string in ' + 'percentage instead, e.g., \"20%\". Currently, ' + 'boundaryGap is set to be 0.');\n }\n\n this._boundaryGapInner = [0, 0];\n } else {\n this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)];\n }\n }\n };\n\n ScaleRawExtentInfo.prototype.calculate = function () {\n var isOrdinal = this._isOrdinal;\n var dataMin = this._dataMin;\n var dataMax = this._dataMax;\n var axisDataLen = this._axisDataLen;\n var boundaryGapInner = this._boundaryGapInner;\n var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null;\n var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\n var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\n var minFixed = min != null;\n var maxFixed = max != null;\n\n if (min == null) {\n min = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span;\n }\n\n if (max == null) {\n max = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span;\n }\n\n (min == null || !isFinite(min)) && (min = NaN);\n (max == null || !isFinite(max)) && (max = NaN);\n\n if (min > max) {\n min = NaN;\n max = NaN;\n }\n\n var isBlank = eqNaN(min) || eqNaN(max) || isOrdinal && !axisDataLen;\n\n if (this._needCrossZero) {\n if (min > 0 && max > 0 && !minFixed) {\n min = 0;\n }\n\n if (min < 0 && max < 0 && !maxFixed) {\n max = 0;\n }\n }\n\n var determinedMin = this._determinedMin;\n var determinedMax = this._determinedMax;\n\n if (determinedMin != null) {\n min = determinedMin;\n minFixed = true;\n }\n\n if (determinedMax != null) {\n max = determinedMax;\n maxFixed = true;\n }\n\n return {\n min: min,\n max: max,\n minFixed: minFixed,\n maxFixed: maxFixed,\n isBlank: isBlank\n };\n };\n\n ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\n if (process.env.NODE_ENV !== 'production') {\n assert(!this.frozen);\n }\n\n this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\n };\n\n ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\n var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\n\n if (process.env.NODE_ENV !== 'production') {\n assert(!this.frozen && this[attr] == null);\n }\n\n this[attr] = val;\n };\n\n ScaleRawExtentInfo.prototype.freeze = function () {\n this.frozen = true;\n };\n\n return ScaleRawExtentInfo;\n}();\n\nexport { ScaleRawExtentInfo };\nvar DETERMINED_MIN_MAX_ATTR = {\n min: '_determinedMin',\n max: '_determinedMax'\n};\nvar DATA_MIN_MAX_ATTR = {\n min: '_dataMin',\n max: '_dataMax'\n};\nexport function ensureScaleRawExtentInfo(scale, model, originalExtent) {\n var rawExtentInfo = scale.rawExtentInfo;\n\n if (rawExtentInfo) {\n return rawExtentInfo;\n }\n\n rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\n scale.rawExtentInfo = rawExtentInfo;\n return rawExtentInfo;\n}\nexport function parseAxisModelMinMax(scale, minMax) {\n return minMax == null ? null : eqNaN(minMax) ? NaN : scale.parse(minMax);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport OrdinalScale from '../scale/Ordinal';\nimport IntervalScale from '../scale/Interval';\nimport Scale from '../scale/Scale';\nimport { prepareLayoutBarSeries, makeColumnLayout, retrieveColumnLayout } from '../layout/barGrid';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport TimeScale from '../scale/Time';\nimport LogScale from '../scale/Log';\nimport { getStackedDimension } from '../data/helper/dataStackHelper';\nimport { ensureScaleRawExtentInfo } from './scaleRawExtentInfo';\nexport function getScaleExtent(scale, model) {\n var scaleType = scale.type;\n var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\n scale.setBlank(rawExtentResult.isBlank);\n var min = rawExtentResult.min;\n var max = rawExtentResult.max;\n var ecModel = model.ecModel;\n\n if (ecModel && scaleType === 'time') {\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n var isBaseAxisAndHasBarSeries_1 = false;\n zrUtil.each(barSeriesModels, function (seriesModel) {\n isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\n });\n\n if (isBaseAxisAndHasBarSeries_1) {\n var barWidthAndOffset = makeColumnLayout(barSeriesModels);\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n min = adjustedScale.min;\n max = adjustedScale.max;\n }\n }\n\n return {\n extent: [min, max],\n fixMin: rawExtentResult.minFixed,\n fixMax: rawExtentResult.maxFixed\n };\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n var axisExtent = model.axis.getExtent();\n var axisLength = axisExtent[1] - axisExtent[0];\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n if (barsOnCurrentAxis === undefined) {\n return {\n min: min,\n max: max\n };\n }\n\n var minOverflow = Infinity;\n zrUtil.each(barsOnCurrentAxis, function (item) {\n minOverflow = Math.min(item.offset, minOverflow);\n });\n var maxOverflow = -Infinity;\n zrUtil.each(barsOnCurrentAxis, function (item) {\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n });\n minOverflow = Math.abs(minOverflow);\n maxOverflow = Math.abs(maxOverflow);\n var totalOverFlow = minOverflow + maxOverflow;\n var oldRange = max - min;\n var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n max += overflowBuffer * (maxOverflow / totalOverFlow);\n min -= overflowBuffer * (minOverflow / totalOverFlow);\n return {\n min: min,\n max: max\n };\n}\n\nexport function niceScaleExtent(scale, model) {\n var extentInfo = getScaleExtent(scale, model);\n var extent = extentInfo.extent;\n var splitNumber = model.get('splitNumber');\n\n if (scale instanceof LogScale) {\n scale.base = model.get('logBase');\n }\n\n var scaleType = scale.type;\n scale.setExtent(extent[0], extent[1]);\n scale.niceExtent({\n splitNumber: splitNumber,\n fixMin: extentInfo.fixMin,\n fixMax: extentInfo.fixMax,\n minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n });\n var interval = model.get('interval');\n\n if (interval != null) {\n scale.setInterval && scale.setInterval(interval);\n }\n}\nexport function createScaleByModel(model, axisType) {\n axisType = axisType || model.get('type');\n\n if (axisType) {\n switch (axisType) {\n case 'category':\n return new OrdinalScale({\n ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(),\n extent: [Infinity, -Infinity]\n });\n\n case 'time':\n return new TimeScale({\n locale: model.ecModel.getLocaleModel(),\n useUTC: model.ecModel.get('useUTC')\n });\n\n default:\n return new (Scale.getClass(axisType) || IntervalScale)();\n }\n }\n}\nexport function ifAxisCrossZero(axis) {\n var dataExtent = axis.scale.getExtent();\n var min = dataExtent[0];\n var max = dataExtent[1];\n return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\nexport function makeLabelFormatter(axis) {\n var labelFormatter = axis.getLabelModel().get('formatter');\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n if (axis.scale.type === 'time') {\n return function (tpl) {\n return function (tick, idx) {\n return axis.scale.getFormattedLabel(tick, idx, tpl);\n };\n }(labelFormatter);\n } else if (typeof labelFormatter === 'string') {\n return function (tpl) {\n return function (tick) {\n var label = axis.scale.getLabel(tick);\n var text = tpl.replace('{value}', label != null ? label : '');\n return text;\n };\n }(labelFormatter);\n } else if (typeof labelFormatter === 'function') {\n return function (cb) {\n return function (tick, idx) {\n if (categoryTickStart != null) {\n idx = tick.value - categoryTickStart;\n }\n\n return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\n level: tick.level\n } : null);\n };\n }(labelFormatter);\n } else {\n return function (tick) {\n return axis.scale.getLabel(tick);\n };\n }\n}\nexport function getAxisRawValue(axis, tick) {\n return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\n}\nexport function estimateLabelUnionRect(axis) {\n var axisModel = axis.model;\n var scale = axis.scale;\n\n if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\n return;\n }\n\n var realNumberScaleTicks;\n var tickCount;\n var categoryScaleExtent = scale.getExtent();\n\n if (scale instanceof OrdinalScale) {\n tickCount = scale.count();\n } else {\n realNumberScaleTicks = scale.getTicks();\n tickCount = realNumberScaleTicks.length;\n }\n\n var axisLabelModel = axis.getLabelModel();\n var labelFormatter = makeLabelFormatter(axis);\n var rect;\n var step = 1;\n\n if (tickCount > 40) {\n step = Math.ceil(tickCount / 40);\n }\n\n for (var i = 0; i < tickCount; i += step) {\n var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : {\n value: categoryScaleExtent[0] + i\n };\n var label = labelFormatter(tick, i);\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n rect ? rect.union(singleRect) : rect = singleRect;\n }\n\n return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n var rotateRadians = rotate * Math.PI / 180;\n var beforeWidth = textRect.width;\n var beforeHeight = textRect.height;\n var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians));\n var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians));\n var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\n return rotatedRect;\n}\n\nexport function getOptionCategoryInterval(model) {\n var interval = model.get('interval');\n return interval == null ? 'auto' : interval;\n}\nexport function shouldShowAllLabels(axis) {\n return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\nexport function getDataDimensionsOnAxis(data, axisDim) {\n var dataDimMap = {};\n zrUtil.each(data.mapDimensionsAll(axisDim), function (dataDim) {\n dataDimMap[getStackedDimension(data, dataDim)] = true;\n });\n return zrUtil.keys(dataDimMap);\n}\nexport function unionAxisExtentFromData(dataExtent, data, axisDim) {\n if (data) {\n zrUtil.each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\n var seriesExtent = data.getApproximateExtent(dim);\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n });\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AxisModelCommonMixin = function () {\n function AxisModelCommonMixin() {}\n\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n var option = this.option;\n return !option.scale;\n };\n\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n return;\n };\n\n return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListFromArray from '../../chart/helper/createListFromArray';\nimport * as axisHelper from '../../coord/axisHelper';\nimport { AxisModelCommonMixin } from '../../coord/axisModelCommonMixin';\nimport Model from '../../model/Model';\nimport { getLayoutRect } from '../../util/layout';\nimport { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle';\nexport function createList(seriesModel) {\n return createListFromArray(seriesModel.getSource(), seriesModel);\n}\nexport { getLayoutRect };\nexport { default as createDimensions } from '../../data/helper/createDimensions';\nexport var dataStack = {\n isDimensionStacked: isDimensionStacked,\n enableDataStack: enableDataStack,\n getStackedDimension: getStackedDimension\n};\nexport { createSymbol } from '../../util/symbol';\nexport function createScale(dataExtent, option) {\n var axisModel = option;\n\n if (!(option instanceof Model)) {\n axisModel = new Model(option);\n }\n\n var scale = axisHelper.createScaleByModel(axisModel);\n scale.setExtent(dataExtent[0], dataExtent[1]);\n axisHelper.niceScaleExtent(scale, axisModel);\n return scale;\n}\nexport function mixinAxisModelCommonMethods(Model) {\n zrUtil.mixin(Model, AxisModelCommonMixin);\n}\nexport { getECData };\nexport { enableHoverEmphasis } from '../../util/states';\nexport function createTextStyle(textStyleModel, opts) {\n opts = opts || {};\n return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal');\n}","import windingLine from './windingLine';\nvar EPSILON = 1e-8;\nfunction isAroundEqual(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\nexport function contain(points, x, y) {\n var w = 0;\n var p = points[0];\n if (!p) {\n return false;\n }\n for (var i = 1; i < points.length; i++) {\n var p2 = points[i];\n w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n p = p2;\n }\n var p0 = points[0];\n if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n }\n return w !== 0;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as polygonContain from 'zrender/lib/contain/polygon';\n\nvar Region = function () {\n function Region(name, geometries, cp) {\n this.name = name;\n this.geometries = geometries;\n\n if (!cp) {\n var rect = this.getBoundingRect();\n cp = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n } else {\n cp = [cp[0], cp[1]];\n }\n\n this.center = cp;\n }\n\n Region.prototype.getBoundingRect = function () {\n var rect = this._rect;\n\n if (rect) {\n return rect;\n }\n\n var MAX_NUMBER = Number.MAX_VALUE;\n var min = [MAX_NUMBER, MAX_NUMBER];\n var max = [-MAX_NUMBER, -MAX_NUMBER];\n var min2 = [];\n var max2 = [];\n var geometries = this.geometries;\n var i = 0;\n\n for (; i < geometries.length; i++) {\n if (geometries[i].type !== 'polygon') {\n continue;\n }\n\n var exterior = geometries[i].exterior;\n bbox.fromPoints(exterior, min2, max2);\n vec2.min(min, min, min2);\n vec2.max(max, max, max2);\n }\n\n if (i === 0) {\n min[0] = min[1] = max[0] = max[1] = 0;\n }\n\n return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n };\n\n Region.prototype.contain = function (coord) {\n var rect = this.getBoundingRect();\n var geometries = this.geometries;\n\n if (!rect.contain(coord[0], coord[1])) {\n return false;\n }\n\n loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n if (geometries[i].type !== 'polygon') {\n continue;\n }\n\n var exterior = geometries[i].exterior;\n var interiors = geometries[i].interiors;\n\n if (polygonContain.contain(exterior, coord[0], coord[1])) {\n for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n if (polygonContain.contain(interiors[k], coord[0], coord[1])) {\n continue loopGeo;\n }\n }\n\n return true;\n }\n }\n\n return false;\n };\n\n Region.prototype.transformTo = function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var aspect = rect.width / rect.height;\n\n if (!width) {\n width = aspect * height;\n } else if (!height) {\n height = width / aspect;\n }\n\n var target = new BoundingRect(x, y, width, height);\n var transform = rect.calculateTransform(target);\n var geometries = this.geometries;\n\n for (var i = 0; i < geometries.length; i++) {\n if (geometries[i].type !== 'polygon') {\n continue;\n }\n\n var exterior = geometries[i].exterior;\n var interiors = geometries[i].interiors;\n\n for (var p = 0; p < exterior.length; p++) {\n vec2.applyTransform(exterior[p], exterior[p], transform);\n }\n\n for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\n for (var p = 0; p < interiors[h].length; p++) {\n vec2.applyTransform(interiors[h][p], interiors[h][p], transform);\n }\n }\n }\n\n rect = this._rect;\n rect.copy(target);\n this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n };\n\n Region.prototype.cloneShallow = function (name) {\n name == null && (name = this.name);\n var newRegion = new Region(name, this.geometries, this.center);\n newRegion._rect = this._rect;\n newRegion.transformTo = null;\n return newRegion;\n };\n\n return Region;\n}();\n\nexport default Region;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from './Region';\n\nfunction decode(json) {\n if (!json.UTF8Encoding) {\n return json;\n }\n\n var jsonCompressed = json;\n var encodeScale = jsonCompressed.UTF8Scale;\n\n if (encodeScale == null) {\n encodeScale = 1024;\n }\n\n var features = jsonCompressed.features;\n\n for (var f = 0; f < features.length; f++) {\n var feature = features[f];\n var geometry = feature.geometry;\n\n if (geometry.type === 'Polygon') {\n var coordinates = geometry.coordinates;\n\n for (var c = 0; c < coordinates.length; c++) {\n coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\n }\n } else if (geometry.type === 'MultiPolygon') {\n var coordinates = geometry.coordinates;\n\n for (var c = 0; c < coordinates.length; c++) {\n var coordinate = coordinates[c];\n\n for (var c2 = 0; c2 < coordinate.length; c2++) {\n coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\n }\n }\n }\n }\n\n jsonCompressed.UTF8Encoding = false;\n return jsonCompressed;\n}\n\nfunction decodePolygon(coordinate, encodeOffsets, encodeScale) {\n var result = [];\n var prevX = encodeOffsets[0];\n var prevY = encodeOffsets[1];\n\n for (var i = 0; i < coordinate.length; i += 2) {\n var x = coordinate.charCodeAt(i) - 64;\n var y = coordinate.charCodeAt(i + 1) - 64;\n x = x >> 1 ^ -(x & 1);\n y = y >> 1 ^ -(y & 1);\n x += prevX;\n y += prevY;\n prevX = x;\n prevY = y;\n result.push([x / encodeScale, y / encodeScale]);\n }\n\n return result;\n}\n\nexport default function parseGeoJSON(geoJson, nameProperty) {\n geoJson = decode(geoJson);\n return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n }), function (featureObj) {\n var properties = featureObj.properties;\n var geo = featureObj.geometry;\n var geometries = [];\n\n if (geo.type === 'Polygon') {\n var coordinates = geo.coordinates;\n geometries.push({\n type: 'polygon',\n exterior: coordinates[0],\n interiors: coordinates.slice(1)\n });\n }\n\n if (geo.type === 'MultiPolygon') {\n var coordinates = geo.coordinates;\n zrUtil.each(coordinates, function (item) {\n if (item[0]) {\n geometries.push({\n type: 'polygon',\n exterior: item[0],\n interiors: item.slice(1)\n });\n }\n });\n }\n\n var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\n region.properties = properties;\n return region;\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport { makeInner } from '../util/model';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\nexport function createAxisTicks(axis, tickModel) {\n return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n return tick.value;\n })\n };\n}\n\nfunction makeCategoryLabels(axis) {\n var labelModel = axis.getLabelModel();\n var result = makeCategoryLabelsActually(axis, labelModel);\n return !labelModel.get('show') || axis.scale.isBlank() ? {\n labels: [],\n labelCategoryInterval: result.labelCategoryInterval\n } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n var labelsCache = getListCache(axis, 'labels');\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\n var result = listCacheGet(labelsCache, optionLabelInterval);\n\n if (result) {\n return result;\n }\n\n var labels;\n var numericLabelInterval;\n\n if (zrUtil.isFunction(optionLabelInterval)) {\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n } else {\n numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n }\n\n return listCacheSet(labelsCache, optionLabelInterval, {\n labels: labels,\n labelCategoryInterval: numericLabelInterval\n });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n var ticksCache = getListCache(axis, 'ticks');\n var optionTickInterval = getOptionCategoryInterval(tickModel);\n var result = listCacheGet(ticksCache, optionTickInterval);\n\n if (result) {\n return result;\n }\n\n var ticks;\n var tickCategoryInterval;\n\n if (!tickModel.get('show') || axis.scale.isBlank()) {\n ticks = [];\n }\n\n if (zrUtil.isFunction(optionTickInterval)) {\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n } else if (optionTickInterval === 'auto') {\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n tickCategoryInterval = labelsResult.labelCategoryInterval;\n ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n return labelItem.tickValue;\n });\n } else {\n tickCategoryInterval = optionTickInterval;\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n }\n\n return listCacheSet(ticksCache, optionTickInterval, {\n ticks: ticks,\n tickCategoryInterval: tickCategoryInterval\n });\n}\n\nfunction makeRealNumberLabels(axis) {\n var ticks = axis.scale.getTicks();\n var labelFormatter = makeLabelFormatter(axis);\n return {\n labels: zrUtil.map(ticks, function (tick, idx) {\n return {\n formattedLabel: labelFormatter(tick, idx),\n rawLabel: axis.scale.getLabel(tick),\n tickValue: tick.value\n };\n })\n };\n}\n\nfunction getListCache(axis, prop) {\n return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n for (var i = 0; i < cache.length; i++) {\n if (cache[i].key === key) {\n return cache[i].value;\n }\n }\n}\n\nfunction listCacheSet(cache, key, value) {\n cache.push({\n key: key,\n value: value\n });\n return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n var result = inner(axis).autoInterval;\n return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n\nexport function calculateCategoryInterval(axis) {\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\n var labelFormatter = makeLabelFormatter(axis);\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent();\n var tickCount = ordinalScale.count();\n\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n return 0;\n }\n\n var step = 1;\n\n if (tickCount > 40) {\n step = Math.max(1, Math.floor(tickCount / 40));\n }\n\n var tickValue = ordinalExtent[0];\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\n var maxW = 0;\n var maxH = 0;\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n var width = 0;\n var height = 0;\n var rect = textContain.getBoundingRect(labelFormatter({\n value: tickValue\n }), params.font, 'center', 'top');\n width = rect.width * 1.3;\n height = rect.height * 1.3;\n maxW = Math.max(maxW, width, 7);\n maxH = Math.max(maxH, height, 7);\n }\n\n var dw = maxW / unitW;\n var dh = maxH / unitH;\n isNaN(dw) && (dw = Infinity);\n isNaN(dh) && (dh = Infinity);\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n var cache = inner(axis.model);\n var axisExtent = axis.getExtent();\n var lastAutoInterval = cache.lastAutoInterval;\n var lastTickCount = cache.lastTickCount;\n\n if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n interval = lastAutoInterval;\n } else {\n cache.lastTickCount = tickCount;\n cache.lastAutoInterval = interval;\n cache.axisExtent0 = axisExtent[0];\n cache.axisExtent1 = axisExtent[1];\n }\n\n return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n var labelModel = axis.getLabelModel();\n return {\n axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n labelRotate: labelModel.get('rotate') || 0,\n font: labelModel.getFont()\n };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n var labelFormatter = makeLabelFormatter(axis);\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent();\n var labelModel = axis.getLabelModel();\n var result = [];\n var step = Math.max((categoryInterval || 0) + 1, 1);\n var startTick = ordinalExtent[0];\n var tickCount = ordinalScale.count();\n\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n startTick = Math.round(Math.ceil(startTick / step) * step);\n }\n\n var showAllLabel = shouldShowAllLabels(axis);\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\n addItem(ordinalExtent[0]);\n }\n\n var tickValue = startTick;\n\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n addItem(tickValue);\n }\n\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n addItem(ordinalExtent[1]);\n }\n\n function addItem(tickValue) {\n var tickObj = {\n value: tickValue\n };\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tickObj),\n rawLabel: ordinalScale.getLabel(tickObj),\n tickValue: tickValue\n });\n }\n\n return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n var ordinalScale = axis.scale;\n var labelFormatter = makeLabelFormatter(axis);\n var result = [];\n zrUtil.each(ordinalScale.getTicks(), function (tick) {\n var rawLabel = ordinalScale.getLabel(tick);\n var tickValue = tick.value;\n\n if (categoryInterval(tick.value, rawLabel)) {\n result.push(onlyTick ? tickValue : {\n formattedLabel: labelFormatter(tick),\n rawLabel: rawLabel,\n tickValue: tickValue\n });\n }\n });\n return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map } from 'zrender/lib/core/util';\nimport { linearMap, getPixelPrecision, round } from '../util/number';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder';\nvar NORMALIZED_EXTENT = [0, 1];\n\nvar Axis = function () {\n function Axis(dim, scale, extent) {\n this.onBand = false;\n this.inverse = false;\n this.dim = dim;\n this.scale = scale;\n this._extent = extent || [0, 0];\n }\n\n Axis.prototype.contain = function (coord) {\n var extent = this._extent;\n var min = Math.min(extent[0], extent[1]);\n var max = Math.max(extent[0], extent[1]);\n return coord >= min && coord <= max;\n };\n\n Axis.prototype.containData = function (data) {\n return this.scale.contain(data);\n };\n\n Axis.prototype.getExtent = function () {\n return this._extent.slice();\n };\n\n Axis.prototype.getPixelPrecision = function (dataExtent) {\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n };\n\n Axis.prototype.setExtent = function (start, end) {\n var extent = this._extent;\n extent[0] = start;\n extent[1] = end;\n };\n\n Axis.prototype.dataToCoord = function (data, clamp) {\n var extent = this._extent;\n var scale = this.scale;\n data = scale.normalize(data);\n\n if (this.onBand && scale.type === 'ordinal') {\n extent = extent.slice();\n fixExtentWithBands(extent, scale.count());\n }\n\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n };\n\n Axis.prototype.coordToData = function (coord, clamp) {\n var extent = this._extent;\n var scale = this.scale;\n\n if (this.onBand && scale.type === 'ordinal') {\n extent = extent.slice();\n fixExtentWithBands(extent, scale.count());\n }\n\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n return this.scale.scale(t);\n };\n\n Axis.prototype.pointToData = function (point, clamp) {\n return;\n };\n\n Axis.prototype.getTicksCoords = function (opt) {\n opt = opt || {};\n var tickModel = opt.tickModel || this.getTickModel();\n var result = createAxisTicks(this, tickModel);\n var ticks = result.ticks;\n var ticksCoords = map(ticks, function (tickVal) {\n return {\n coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n tickValue: tickVal\n };\n }, this);\n var alignWithLabel = tickModel.get('alignWithLabel');\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n return ticksCoords;\n };\n\n Axis.prototype.getMinorTicksCoords = function () {\n if (this.scale.type === 'ordinal') {\n return [];\n }\n\n var minorTickModel = this.model.getModel('minorTick');\n var splitNumber = minorTickModel.get('splitNumber');\n\n if (!(splitNumber > 0 && splitNumber < 100)) {\n splitNumber = 5;\n }\n\n var minorTicks = this.scale.getMinorTicks(splitNumber);\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n return map(minorTicksGroup, function (minorTick) {\n return {\n coord: this.dataToCoord(minorTick),\n tickValue: minorTick\n };\n }, this);\n }, this);\n return minorTicksCoords;\n };\n\n Axis.prototype.getViewLabels = function () {\n return createAxisLabels(this).labels;\n };\n\n Axis.prototype.getLabelModel = function () {\n return this.model.getModel('axisLabel');\n };\n\n Axis.prototype.getTickModel = function () {\n return this.model.getModel('axisTick');\n };\n\n Axis.prototype.getBandWidth = function () {\n var axisExtent = this._extent;\n var dataExtent = this.scale.getExtent();\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\n len === 0 && (len = 1);\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\n return Math.abs(size) / len;\n };\n\n Axis.prototype.calculateCategoryInterval = function () {\n return calculateCategoryInterval(this);\n };\n\n return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n var size = extent[1] - extent[0];\n var len = nTick;\n var margin = size / len / 2;\n extent[0] += margin;\n extent[1] -= margin;\n}\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n var ticksLen = ticksCoords.length;\n\n if (!axis.onBand || alignWithLabel || !ticksLen) {\n return;\n }\n\n var axisExtent = axis.getExtent();\n var last;\n var diffSize;\n\n if (ticksLen === 1) {\n ticksCoords[0].coord = axisExtent[0];\n last = ticksCoords[1] = {\n coord: axisExtent[0]\n };\n } else {\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n each(ticksCoords, function (ticksItem) {\n ticksItem.coord -= shift_1 / 2;\n });\n var dataExtent = axis.scale.getExtent();\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n last = {\n coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n };\n ticksCoords.push(last);\n }\n\n var inverse = axisExtent[0] > axisExtent[1];\n\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n }\n\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n ticksCoords.unshift({\n coord: axisExtent[0]\n });\n }\n\n if (littleThan(axisExtent[1], last.coord)) {\n clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n }\n\n if (clamp && littleThan(last.coord, axisExtent[1])) {\n ticksCoords.push({\n coord: axisExtent[1]\n });\n }\n\n function littleThan(a, b) {\n a = round(a);\n b = round(b);\n return inverse ? a > b : a < b;\n }\n}\n\nexport default Axis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ComponentModel from '../model/Component';\nimport ComponentView from '../view/Component';\nimport SeriesModel from '../model/Series';\nimport ChartView from '../view/Chart';\nimport * as zrender_1 from 'zrender/lib/zrender';\nexport { zrender_1 as zrender };\nimport * as matrix_1 from 'zrender/lib/core/matrix';\nexport { matrix_1 as matrix };\nimport * as vector_1 from 'zrender/lib/core/vector';\nexport { vector_1 as vector };\nimport * as zrUtil_1 from 'zrender/lib/core/util';\nexport { zrUtil_1 as zrUtil };\nimport * as color_1 from 'zrender/lib/tool/color';\nexport { color_1 as color };\nexport { throttle } from '../util/throttle';\nimport * as helper_1 from './api/helper';\nexport { helper_1 as helper };\nexport { use } from '../extension';\nexport { default as parseGeoJSON } from '../coord/geo/parseGeoJson';\nexport { default as parseGeoJson } from '../coord/geo/parseGeoJson';\nimport * as number_1 from './api/number';\nexport { number_1 as number };\nimport * as time_1 from './api/time';\nexport { time_1 as time };\nimport * as graphic_1 from './api/graphic';\nexport { graphic_1 as graphic };\nimport * as format_1 from './api/format';\nexport { format_1 as format };\nimport * as util_1 from './api/util';\nexport { util_1 as util };\nexport { default as env } from 'zrender/lib/core/env';\nexport { default as List } from '../data/List';\nexport { default as Model } from '../model/Model';\nexport { default as Axis } from '../coord/Axis';\nexport { ComponentModel, ComponentView, SeriesModel, ChartView };\nexport { brushSingle as innerDrawElementOnCanvas } from 'zrender/lib/canvas/graphic';\nexport function extendComponentModel(proto) {\n var Model = ComponentModel.extend(proto);\n ComponentModel.registerClass(Model);\n return Model;\n}\nexport function extendComponentView(proto) {\n var View = ComponentView.extend(proto);\n ComponentView.registerClass(View);\n return View;\n}\nexport function extendSeriesModel(proto) {\n var Model = SeriesModel.extend(proto);\n SeriesModel.registerClass(Model);\n return Model;\n}\nexport function extendChartView(proto) {\n var View = ChartView.extend(proto);\n ChartView.registerClass(View);\n return View;\n}","export function createElement(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n","function diff(oldArr, newArr, equals) {\n if (!equals) {\n equals = function (a, b) {\n return a === b;\n };\n }\n oldArr = oldArr.slice();\n newArr = newArr.slice();\n var newLen = newArr.length;\n var oldLen = oldArr.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{ newPos: -1, components: [] }];\n var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n var indices = [];\n for (var i = 0; i < newArr.length; i++) {\n indices.push(i);\n }\n return [{\n indices: indices,\n count: newArr.length,\n added: false,\n removed: false\n }];\n }\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath;\n var addPath = bestPath[diagonalPath - 1];\n var removePath = bestPath[diagonalPath + 1];\n var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n if (addPath) {\n bestPath[diagonalPath - 1] = undefined;\n }\n var canAdd = addPath && addPath.newPos + 1 < newLen;\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n if (!canAdd && !canRemove) {\n bestPath[diagonalPath] = undefined;\n continue;\n }\n if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\n basePath = clonePath(removePath);\n pushComponent(basePath.components, false, true);\n }\n else {\n basePath = addPath;\n basePath.newPos++;\n pushComponent(basePath.components, true, false);\n }\n oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n return buildValues(basePath.components);\n }\n else {\n bestPath[diagonalPath] = basePath;\n }\n }\n editLength++;\n }\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n if (ret) {\n return ret;\n }\n }\n}\nfunction extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\n var newLen = newArr.length;\n var oldLen = oldArr.length;\n var newPos = basePath.newPos;\n var oldPos = newPos - diagonalPath;\n var commonCount = 0;\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n if (commonCount) {\n basePath.components.push({\n count: commonCount,\n added: false,\n removed: false,\n indices: []\n });\n }\n basePath.newPos = newPos;\n return oldPos;\n}\nfunction pushComponent(components, added, removed) {\n var last = components[components.length - 1];\n if (last && last.added === added && last.removed === removed) {\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed,\n indices: []\n };\n }\n else {\n components.push({\n count: 1,\n added: added,\n removed: removed,\n indices: []\n });\n }\n}\nfunction buildValues(components) {\n var componentPos = 0;\n var componentLen = components.length;\n var newPos = 0;\n var oldPos = 0;\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n if (!component.removed) {\n var indices = [];\n for (var i = newPos; i < newPos + component.count; i++) {\n indices.push(i);\n }\n component.indices = indices;\n newPos += component.count;\n if (!component.added) {\n oldPos += component.count;\n }\n }\n else {\n for (var i = oldPos; i < oldPos + component.count; i++) {\n component.indices.push(i);\n }\n oldPos += component.count;\n }\n }\n return components;\n}\nfunction clonePath(path) {\n return { newPos: path.newPos, components: path.components.slice(0) };\n}\nexport default function arrayDiff(oldArr, newArr, equal) {\n return diff(oldArr, newArr, equal);\n}\n","import { createElement } from './core';\nimport ZRImage from '../graphic/Image';\nimport { DEFAULT_FONT, getLineHeight } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nvar NONE = 'none';\nvar mathRound = Math.round;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar EPSILON = 1e-4;\nfunction round3(val) {\n return mathRound(val * 1e3) / 1e3;\n}\nfunction round4(val) {\n return mathRound(val * 1e4) / 1e4;\n}\nfunction isAroundZero(val) {\n return val < EPSILON && val > -EPSILON;\n}\nfunction pathHasFill(style) {\n var fill = style.fill;\n return fill != null && fill !== NONE;\n}\nfunction pathHasStroke(style) {\n var stroke = style.stroke;\n return stroke != null && stroke !== NONE;\n}\nfunction setTransform(svgEl, m) {\n if (m) {\n attr(svgEl, 'transform', 'matrix('\n + round3(m[0]) + ','\n + round3(m[1]) + ','\n + round3(m[2]) + ','\n + round3(m[3]) + ','\n + round4(m[4]) + ','\n + round4(m[5])\n + ')');\n }\n}\nfunction attr(el, key, val) {\n if (!val || val.type !== 'linear' && val.type !== 'radial') {\n el.setAttribute(key, val);\n }\n}\nfunction attrXLink(el, key, val) {\n el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\nfunction attrXML(el, key, val) {\n el.setAttributeNS('http://www.w3.org/XML/1998/namespace', key, val);\n}\nfunction bindStyle(svgEl, style, el) {\n var opacity = style.opacity == null ? 1 : style.opacity;\n if (el instanceof ZRImage) {\n svgEl.style.opacity = opacity + '';\n return;\n }\n if (pathHasFill(style)) {\n var fill = style.fill;\n fill = fill === 'transparent' ? NONE : fill;\n attr(svgEl, 'fill', fill);\n attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\n }\n else {\n attr(svgEl, 'fill', NONE);\n }\n if (pathHasStroke(style)) {\n var stroke = style.stroke;\n stroke = stroke === 'transparent' ? NONE : stroke;\n attr(svgEl, 'stroke', stroke);\n var strokeWidth = style.lineWidth;\n var strokeScale_1 = style.strokeNoScale\n ? el.getLineScale()\n : 1;\n attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\n attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\n attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\n var lineDash = style.lineDash && strokeWidth > 0 && normalizeLineDash(style.lineDash, strokeWidth);\n if (lineDash) {\n var lineDashOffset = style.lineDashOffset;\n if (strokeScale_1 && strokeScale_1 !== 1) {\n lineDash = map(lineDash, function (rawVal) {\n return rawVal / strokeScale_1;\n });\n if (lineDashOffset) {\n lineDashOffset /= strokeScale_1;\n lineDashOffset = mathRound(lineDashOffset);\n }\n }\n attr(svgEl, 'stroke-dasharray', lineDash.join(','));\n attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\n }\n else {\n attr(svgEl, 'stroke-dasharray', '');\n }\n style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\n style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\n style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\n }\n else {\n attr(svgEl, 'stroke', NONE);\n }\n}\nvar SVGPathRebuilder = (function () {\n function SVGPathRebuilder() {\n }\n SVGPathRebuilder.prototype.reset = function () {\n this._d = [];\n this._str = '';\n };\n SVGPathRebuilder.prototype.moveTo = function (x, y) {\n this._add('M', x, y);\n };\n SVGPathRebuilder.prototype.lineTo = function (x, y) {\n this._add('L', x, y);\n };\n SVGPathRebuilder.prototype.bezierCurveTo = function (x, y, x2, y2, x3, y3) {\n this._add('C', x, y, x2, y2, x3, y3);\n };\n SVGPathRebuilder.prototype.quadraticCurveTo = function (x, y, x2, y2) {\n this._add('Q', x, y, x2, y2);\n };\n SVGPathRebuilder.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);\n };\n SVGPathRebuilder.prototype.ellipse = function (cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise) {\n var firstCmd = this._d.length === 0;\n var dTheta = endAngle - startAngle;\n var clockwise = !anticlockwise;\n var dThetaPositive = Math.abs(dTheta);\n var isCircle = isAroundZero(dThetaPositive - PI2)\n || (clockwise ? dTheta >= PI2 : -dTheta >= PI2);\n var unifiedTheta = dTheta > 0 ? dTheta % PI2 : (dTheta % PI2 + PI2);\n var large = false;\n if (isCircle) {\n large = true;\n }\n else if (isAroundZero(dThetaPositive)) {\n large = false;\n }\n else {\n large = (unifiedTheta >= PI) === !!clockwise;\n }\n var x0 = round4(cx + rx * mathCos(startAngle));\n var y0 = round4(cy + ry * mathSin(startAngle));\n if (isCircle) {\n if (clockwise) {\n dTheta = PI2 - 1e-4;\n }\n else {\n dTheta = -PI2 + 1e-4;\n }\n large = true;\n if (firstCmd) {\n this._d.push('M', x0, y0);\n }\n }\n var x = round4(cx + rx * mathCos(startAngle + dTheta));\n var y = round4(cy + ry * mathSin(startAngle + dTheta));\n if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\n return '';\n }\n this._d.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n };\n SVGPathRebuilder.prototype.rect = function (x, y, w, h) {\n this._add('M', x, y);\n this._add('L', x + w, y);\n this._add('L', x + w, y + h);\n this._add('L', x, y + h);\n this._add('L', x, y);\n };\n SVGPathRebuilder.prototype.closePath = function () {\n if (this._d.length > 0) {\n this._add('Z');\n }\n };\n SVGPathRebuilder.prototype._add = function (cmd, a, b, c, d, e, f, g, h) {\n this._d.push(cmd);\n for (var i = 1; i < arguments.length; i++) {\n var val = arguments[i];\n if (isNaN(val)) {\n this._invalid = true;\n return;\n }\n this._d.push(round4(val));\n }\n };\n SVGPathRebuilder.prototype.generateStr = function () {\n this._str = this._invalid ? '' : this._d.join(' ');\n this._d = [];\n };\n SVGPathRebuilder.prototype.getStr = function () {\n return this._str;\n };\n return SVGPathRebuilder;\n}());\nvar svgPath = {\n brush: function (el) {\n var style = el.style;\n var svgEl = el.__svgEl;\n if (!svgEl) {\n svgEl = createElement('path');\n el.__svgEl = svgEl;\n }\n if (!el.path) {\n el.createPathProxy();\n }\n var path = el.path;\n if (el.shapeChanged()) {\n path.beginPath();\n el.buildPath(path, el.shape);\n el.pathUpdated();\n }\n var pathVersion = path.getVersion();\n var elExt = el;\n var svgPathBuilder = elExt.__svgPathBuilder;\n if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder || el.style.strokePercent < 1) {\n if (!svgPathBuilder) {\n svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();\n }\n svgPathBuilder.reset();\n path.rebuildPath(svgPathBuilder, el.style.strokePercent);\n svgPathBuilder.generateStr();\n elExt.__svgPathVersion = pathVersion;\n }\n attr(svgEl, 'd', svgPathBuilder.getStr());\n bindStyle(svgEl, style, el);\n setTransform(svgEl, el.transform);\n }\n};\nexport { svgPath as path };\nvar svgImage = {\n brush: function (el) {\n var style = el.style;\n var image = style.image;\n if (image instanceof HTMLImageElement) {\n image = image.src;\n }\n else if (image instanceof HTMLCanvasElement) {\n image = image.toDataURL();\n }\n if (!image) {\n return;\n }\n var x = style.x || 0;\n var y = style.y || 0;\n var dw = style.width;\n var dh = style.height;\n var svgEl = el.__svgEl;\n if (!svgEl) {\n svgEl = createElement('image');\n el.__svgEl = svgEl;\n }\n if (image !== el.__imageSrc) {\n attrXLink(svgEl, 'href', image);\n el.__imageSrc = image;\n }\n attr(svgEl, 'width', dw + '');\n attr(svgEl, 'height', dh + '');\n attr(svgEl, 'x', x + '');\n attr(svgEl, 'y', y + '');\n bindStyle(svgEl, style, el);\n setTransform(svgEl, el.transform);\n }\n};\nexport { svgImage as image };\nvar TEXT_ALIGN_TO_ANCHOR = {\n left: 'start',\n right: 'end',\n center: 'middle',\n middle: 'middle'\n};\nfunction adjustTextY(y, lineHeight, textBaseline) {\n if (textBaseline === 'top') {\n y += lineHeight / 2;\n }\n else if (textBaseline === 'bottom') {\n y -= lineHeight / 2;\n }\n return y;\n}\nvar svgText = {\n brush: function (el) {\n var style = el.style;\n var text = style.text;\n text != null && (text += '');\n if (!text || isNaN(style.x) || isNaN(style.y)) {\n return;\n }\n var textSvgEl = el.__svgEl;\n if (!textSvgEl) {\n textSvgEl = createElement('text');\n attrXML(textSvgEl, 'xml:space', 'preserve');\n el.__svgEl = textSvgEl;\n }\n var font = style.font || DEFAULT_FONT;\n var textSvgElStyle = textSvgEl.style;\n textSvgElStyle.font = font;\n textSvgEl.textContent = text;\n bindStyle(textSvgEl, style, el);\n setTransform(textSvgEl, el.transform);\n var x = style.x || 0;\n var y = adjustTextY(style.y || 0, getLineHeight(font), style.textBaseline);\n var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\n || style.textAlign;\n attr(textSvgEl, 'dominant-baseline', 'central');\n attr(textSvgEl, 'text-anchor', textAlign);\n attr(textSvgEl, 'x', x + '');\n attr(textSvgEl, 'y', y + '');\n }\n};\nexport { svgText as text };\n","import { createElement } from '../core';\nimport * as zrUtil from '../../core/util';\nimport Path from '../../graphic/Path';\nimport ZRImage from '../../graphic/Image';\nimport TSpan from '../../graphic/TSpan';\nimport { path as svgPath, image as svgImage, text as svgText } from '../graphic';\nvar MARK_UNUSED = '0';\nvar MARK_USED = '1';\nvar Definable = (function () {\n function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\n this.nextId = 0;\n this._domName = '_dom';\n this.createElement = createElement;\n this._zrId = zrId;\n this._svgRoot = svgRoot;\n this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\n this._markLabel = markLabel;\n if (domName) {\n this._domName = domName;\n }\n }\n Definable.prototype.getDefs = function (isForceCreating) {\n var svgRoot = this._svgRoot;\n var defs = this._svgRoot.getElementsByTagName('defs');\n if (defs.length === 0) {\n if (isForceCreating) {\n var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\n if (!defs_1.contains) {\n defs_1.contains = function (el) {\n var children = defs_1.children;\n if (!children) {\n return false;\n }\n for (var i = children.length - 1; i >= 0; --i) {\n if (children[i] === el) {\n return true;\n }\n }\n return false;\n };\n }\n return defs_1;\n }\n else {\n return null;\n }\n }\n else {\n return defs[0];\n }\n };\n Definable.prototype.doUpdate = function (target, onUpdate) {\n if (!target) {\n return;\n }\n var defs = this.getDefs(false);\n if (target[this._domName] && defs.contains(target[this._domName])) {\n if (typeof onUpdate === 'function') {\n onUpdate(target);\n }\n }\n else {\n var dom = this.add(target);\n if (dom) {\n target[this._domName] = dom;\n }\n }\n };\n Definable.prototype.add = function (target) {\n return null;\n };\n Definable.prototype.addDom = function (dom) {\n var defs = this.getDefs(true);\n if (dom.parentNode !== defs) {\n defs.appendChild(dom);\n }\n };\n Definable.prototype.removeDom = function (target) {\n var defs = this.getDefs(false);\n if (defs && target[this._domName]) {\n defs.removeChild(target[this._domName]);\n target[this._domName] = null;\n }\n };\n Definable.prototype.getDoms = function () {\n var defs = this.getDefs(false);\n if (!defs) {\n return [];\n }\n var doms = [];\n zrUtil.each(this._tagNames, function (tagName) {\n var tags = defs.getElementsByTagName(tagName);\n for (var i = 0; i < tags.length; i++) {\n doms.push(tags[i]);\n }\n });\n return doms;\n };\n Definable.prototype.markAllUnused = function () {\n var doms = this.getDoms();\n var that = this;\n zrUtil.each(doms, function (dom) {\n dom[that._markLabel] = MARK_UNUSED;\n });\n };\n Definable.prototype.markDomUsed = function (dom) {\n dom && (dom[this._markLabel] = MARK_USED);\n };\n ;\n Definable.prototype.markDomUnused = function (dom) {\n dom && (dom[this._markLabel] = MARK_UNUSED);\n };\n ;\n Definable.prototype.isDomUnused = function (dom) {\n return dom && dom[this._markLabel] !== MARK_USED;\n };\n Definable.prototype.removeUnused = function () {\n var _this = this;\n var defs = this.getDefs(false);\n if (!defs) {\n return;\n }\n var doms = this.getDoms();\n zrUtil.each(doms, function (dom) {\n if (_this.isDomUnused(dom)) {\n defs.removeChild(dom);\n }\n });\n };\n Definable.prototype.getSvgProxy = function (displayable) {\n if (displayable instanceof Path) {\n return svgPath;\n }\n else if (displayable instanceof ZRImage) {\n return svgImage;\n }\n else if (displayable instanceof TSpan) {\n return svgText;\n }\n else {\n return svgPath;\n }\n };\n Definable.prototype.getSvgElement = function (displayable) {\n return displayable.__svgEl;\n };\n return Definable;\n}());\nexport default Definable;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport * as colorTool from '../../tool/color';\nfunction isLinearGradient(value) {\n return value.type === 'linear';\n}\nfunction isRadialGradient(value) {\n return value.type === 'radial';\n}\nfunction isGradient(value) {\n return value && (value.type === 'linear'\n || value.type === 'radial');\n}\nvar GradientManager = (function (_super) {\n __extends(GradientManager, _super);\n function GradientManager(zrId, svgRoot) {\n return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\n }\n GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n if (displayable && displayable.style) {\n var that_1 = this;\n zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n var value = displayable.style[fillOrStroke];\n if (isGradient(value)) {\n var gradient = value;\n var defs = that_1.getDefs(true);\n var dom = void 0;\n if (gradient.__dom) {\n dom = gradient.__dom;\n if (!defs.contains(gradient.__dom)) {\n that_1.addDom(dom);\n }\n }\n else {\n dom = that_1.add(gradient);\n }\n that_1.markUsed(displayable);\n var id = dom.getAttribute('id');\n svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n }\n });\n }\n };\n GradientManager.prototype.add = function (gradient) {\n var dom;\n if (isLinearGradient(gradient)) {\n dom = this.createElement('linearGradient');\n }\n else if (isRadialGradient(gradient)) {\n dom = this.createElement('radialGradient');\n }\n else {\n zrUtil.logError('Illegal gradient type.');\n return null;\n }\n gradient.id = gradient.id || this.nextId++;\n dom.setAttribute('id', 'zr' + this._zrId\n + '-gradient-' + gradient.id);\n this.updateDom(gradient, dom);\n this.addDom(dom);\n return dom;\n };\n GradientManager.prototype.update = function (gradient) {\n if (!isGradient(gradient)) {\n return;\n }\n var that = this;\n this.doUpdate(gradient, function () {\n var dom = gradient.__dom;\n if (!dom) {\n return;\n }\n var tagName = dom.tagName;\n var type = gradient.type;\n if (type === 'linear' && tagName === 'linearGradient'\n || type === 'radial' && tagName === 'radialGradient') {\n that.updateDom(gradient, gradient.__dom);\n }\n else {\n that.removeDom(gradient);\n that.add(gradient);\n }\n });\n };\n GradientManager.prototype.updateDom = function (gradient, dom) {\n if (isLinearGradient(gradient)) {\n dom.setAttribute('x1', gradient.x + '');\n dom.setAttribute('y1', gradient.y + '');\n dom.setAttribute('x2', gradient.x2 + '');\n dom.setAttribute('y2', gradient.y2 + '');\n }\n else if (isRadialGradient(gradient)) {\n dom.setAttribute('cx', gradient.x + '');\n dom.setAttribute('cy', gradient.y + '');\n dom.setAttribute('r', gradient.r + '');\n }\n else {\n zrUtil.logError('Illegal gradient type.');\n return;\n }\n if (gradient.global) {\n dom.setAttribute('gradientUnits', 'userSpaceOnUse');\n }\n else {\n dom.setAttribute('gradientUnits', 'objectBoundingBox');\n }\n dom.innerHTML = '';\n var colors = gradient.colorStops;\n for (var i = 0, len = colors.length; i < len; ++i) {\n var stop_1 = this.createElement('stop');\n stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\n var color = colors[i].color;\n if (color.indexOf('rgba') > -1) {\n var opacity = colorTool.parse(color)[3];\n var hex = colorTool.toHex(color);\n stop_1.setAttribute('stop-color', '#' + hex);\n stop_1.setAttribute('stop-opacity', opacity + '');\n }\n else {\n stop_1.setAttribute('stop-color', colors[i].color);\n }\n dom.appendChild(stop_1);\n }\n gradient.__dom = dom;\n };\n GradientManager.prototype.markUsed = function (displayable) {\n if (displayable.style) {\n var gradient = displayable.style.fill;\n if (gradient && gradient.__dom) {\n _super.prototype.markDomUsed.call(this, gradient.__dom);\n }\n gradient = displayable.style.stroke;\n if (gradient && gradient.__dom) {\n _super.prototype.markDomUsed.call(this, gradient.__dom);\n }\n }\n };\n return GradientManager;\n}(Definable));\nexport default GradientManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport LRU from '../../core/LRU';\nimport { createOrUpdateImage } from '../../graphic/helper/image';\nimport WeakMap from '../../core/WeakMap';\nfunction isPattern(value) {\n return value && (!!value.image || !!value.svgElement);\n}\nvar patternDomMap = new WeakMap();\nvar PatternManager = (function (_super) {\n __extends(PatternManager, _super);\n function PatternManager(zrId, svgRoot) {\n return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;\n }\n PatternManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n if (displayable && displayable.style) {\n var that_1 = this;\n zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n var pattern = displayable.style[fillOrStroke];\n if (isPattern(pattern)) {\n var defs = that_1.getDefs(true);\n var dom = patternDomMap.get(pattern);\n if (dom) {\n if (!defs.contains(dom)) {\n that_1.addDom(dom);\n }\n }\n else {\n dom = that_1.add(pattern);\n }\n that_1.markUsed(displayable);\n var id = dom.getAttribute('id');\n svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n }\n });\n }\n };\n PatternManager.prototype.add = function (pattern) {\n if (!isPattern(pattern)) {\n return;\n }\n var dom = this.createElement('pattern');\n pattern.id = pattern.id == null ? this.nextId++ : pattern.id;\n dom.setAttribute('id', 'zr' + this._zrId\n + '-pattern-' + pattern.id);\n dom.setAttribute('x', '0');\n dom.setAttribute('y', '0');\n dom.setAttribute('patternUnits', 'userSpaceOnUse');\n this.updateDom(pattern, dom);\n this.addDom(dom);\n return dom;\n };\n PatternManager.prototype.update = function (pattern) {\n if (!isPattern(pattern)) {\n return;\n }\n var that = this;\n this.doUpdate(pattern, function () {\n var dom = patternDomMap.get(pattern);\n that.updateDom(pattern, dom);\n });\n };\n PatternManager.prototype.updateDom = function (pattern, patternDom) {\n var svgElement = pattern.svgElement;\n if (svgElement instanceof SVGElement) {\n if (svgElement.parentNode !== patternDom) {\n patternDom.innerHTML = '';\n patternDom.appendChild(svgElement);\n patternDom.setAttribute('width', pattern.svgWidth + '');\n patternDom.setAttribute('height', pattern.svgHeight + '');\n }\n }\n else {\n var img = void 0;\n var prevImage = patternDom.getElementsByTagName('image');\n if (prevImage.length) {\n if (pattern.image) {\n img = prevImage[0];\n }\n else {\n patternDom.removeChild(prevImage[0]);\n return;\n }\n }\n else if (pattern.image) {\n img = this.createElement('image');\n }\n if (img) {\n var imageSrc = void 0;\n if (typeof pattern.image === 'string') {\n imageSrc = pattern.image;\n }\n else if (pattern.image instanceof HTMLImageElement) {\n imageSrc = pattern.image.src;\n }\n else if (pattern.image instanceof HTMLCanvasElement) {\n imageSrc = pattern.image.toDataURL();\n }\n if (imageSrc) {\n img.setAttribute('href', imageSrc);\n img.setAttribute('x', '0');\n img.setAttribute('y', '0');\n var hostEl = {\n dirty: function () { }\n };\n var createdImage = createOrUpdateImage(imageSrc, img, hostEl, function (img) {\n patternDom.setAttribute('width', img.width + '');\n patternDom.setAttribute('height', img.height + '');\n });\n if (createdImage && createdImage.width && createdImage.height) {\n patternDom.setAttribute('width', createdImage.width + '');\n patternDom.setAttribute('height', createdImage.height + '');\n }\n patternDom.appendChild(img);\n }\n }\n }\n var x = pattern.x || 0;\n var y = pattern.y || 0;\n var rotation = (pattern.rotation || 0) / Math.PI * 180;\n var scaleX = pattern.scaleX || 1;\n var scaleY = pattern.scaleY || 1;\n var transform = \"translate(\" + x + \", \" + y + \") rotate(\" + rotation + \") scale(\" + scaleX + \", \" + scaleY + \")\";\n patternDom.setAttribute('patternTransform', transform);\n patternDomMap.set(pattern, patternDom);\n };\n PatternManager.prototype.markUsed = function (displayable) {\n if (displayable.style) {\n if (isPattern(displayable.style.fill)) {\n _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.fill));\n }\n if (isPattern(displayable.style.stroke)) {\n _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.stroke));\n }\n }\n };\n return PatternManager;\n}(Definable));\nexport default PatternManager;\nvar patternSizeCache = new LRU(50);\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport { isClipPathChanged } from '../../canvas/helper';\nfunction generateClipPathsKey(clipPaths) {\n var key = [];\n if (clipPaths) {\n for (var i = 0; i < clipPaths.length; i++) {\n var clipPath = clipPaths[i];\n key.push(clipPath.id);\n }\n }\n return key.join(',');\n}\nexport function hasClipPath(displayable) {\n var clipPaths = displayable.__clipPaths;\n return clipPaths && clipPaths.length > 0;\n}\nvar ClippathManager = (function (_super) {\n __extends(ClippathManager, _super);\n function ClippathManager(zrId, svgRoot) {\n var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\n _this._refGroups = {};\n _this._keyDuplicateCount = {};\n return _this;\n }\n ClippathManager.prototype.markAllUnused = function () {\n _super.prototype.markAllUnused.call(this);\n for (var key in this._refGroups) {\n this.markDomUnused(this._refGroups[key]);\n }\n this._keyDuplicateCount = {};\n };\n ClippathManager.prototype._getClipPathGroup = function (displayable, prevDisplayable) {\n if (!hasClipPath(displayable)) {\n return;\n }\n var clipPaths = displayable.__clipPaths;\n var keyDuplicateCount = this._keyDuplicateCount;\n var clipPathKey = generateClipPathsKey(clipPaths);\n if (isClipPathChanged(clipPaths, prevDisplayable && prevDisplayable.__clipPaths)) {\n keyDuplicateCount[clipPathKey] = keyDuplicateCount[clipPathKey] || 0;\n keyDuplicateCount[clipPathKey] && (clipPathKey += '-' + keyDuplicateCount[clipPathKey]);\n keyDuplicateCount[clipPathKey]++;\n }\n return this._refGroups[clipPathKey]\n || (this._refGroups[clipPathKey] = this.createElement('g'));\n };\n ClippathManager.prototype.update = function (displayable, prevDisplayable) {\n var clipGroup = this._getClipPathGroup(displayable, prevDisplayable);\n if (clipGroup) {\n this.markDomUsed(clipGroup);\n this.updateDom(clipGroup, displayable.__clipPaths);\n }\n return clipGroup;\n };\n ;\n ClippathManager.prototype.updateDom = function (parentEl, clipPaths) {\n if (clipPaths && clipPaths.length > 0) {\n var defs = this.getDefs(true);\n var clipPath = clipPaths[0];\n var clipPathEl = void 0;\n var id = void 0;\n if (clipPath._dom) {\n id = clipPath._dom.getAttribute('id');\n clipPathEl = clipPath._dom;\n if (!defs.contains(clipPathEl)) {\n defs.appendChild(clipPathEl);\n }\n }\n else {\n id = 'zr' + this._zrId + '-clip-' + this.nextId;\n ++this.nextId;\n clipPathEl = this.createElement('clipPath');\n clipPathEl.setAttribute('id', id);\n defs.appendChild(clipPathEl);\n clipPath._dom = clipPathEl;\n }\n var svgProxy = this.getSvgProxy(clipPath);\n svgProxy.brush(clipPath);\n var pathEl = this.getSvgElement(clipPath);\n clipPathEl.innerHTML = '';\n clipPathEl.appendChild(pathEl);\n parentEl.setAttribute('clip-path', 'url(#' + id + ')');\n if (clipPaths.length > 1) {\n this.updateDom(clipPathEl, clipPaths.slice(1));\n }\n }\n else {\n if (parentEl) {\n parentEl.setAttribute('clip-path', 'none');\n }\n }\n };\n ;\n ClippathManager.prototype.markUsed = function (displayable) {\n var _this = this;\n if (displayable.__clipPaths) {\n zrUtil.each(displayable.__clipPaths, function (clipPath) {\n if (clipPath._dom) {\n _super.prototype.markDomUsed.call(_this, clipPath._dom);\n }\n });\n }\n };\n ;\n ClippathManager.prototype.removeUnused = function () {\n _super.prototype.removeUnused.call(this);\n var newRefGroupsMap = {};\n for (var key in this._refGroups) {\n var group = this._refGroups[key];\n if (!this.isDomUnused(group)) {\n newRefGroupsMap[key] = group;\n }\n else if (group.parentNode) {\n group.parentNode.removeChild(group);\n }\n }\n this._refGroups = newRefGroupsMap;\n };\n return ClippathManager;\n}(Definable));\nexport default ClippathManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nvar ShadowManager = (function (_super) {\n __extends(ShadowManager, _super);\n function ShadowManager(zrId, svgRoot) {\n var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\n _this._shadowDomMap = {};\n _this._shadowDomPool = [];\n return _this;\n }\n ShadowManager.prototype._getFromPool = function () {\n var shadowDom = this._shadowDomPool.pop();\n if (!shadowDom) {\n shadowDom = this.createElement('filter');\n shadowDom.setAttribute('id', 'zr' + this._zrId + '-shadow-' + this.nextId++);\n var domChild = this.createElement('feDropShadow');\n shadowDom.appendChild(domChild);\n this.addDom(shadowDom);\n }\n return shadowDom;\n };\n ShadowManager.prototype.update = function (svgElement, displayable) {\n var style = displayable.style;\n if (hasShadow(style)) {\n var shadowKey = getShadowKey(displayable);\n var shadowDom = displayable._shadowDom = this._shadowDomMap[shadowKey];\n if (!shadowDom) {\n shadowDom = this._getFromPool();\n this._shadowDomMap[shadowKey] = shadowDom;\n }\n this.updateDom(svgElement, displayable, shadowDom);\n }\n else {\n this.remove(svgElement, displayable);\n }\n };\n ShadowManager.prototype.remove = function (svgElement, displayable) {\n if (displayable._shadowDom != null) {\n displayable._shadowDom = null;\n svgElement.style.filter = '';\n }\n };\n ShadowManager.prototype.updateDom = function (svgElement, displayable, shadowDom) {\n var domChild = shadowDom.children[0];\n var style = displayable.style;\n var globalScale = displayable.getGlobalScale();\n var scaleX = globalScale[0];\n var scaleY = globalScale[1];\n if (!scaleX || !scaleY) {\n return;\n }\n var offsetX = style.shadowOffsetX || 0;\n var offsetY = style.shadowOffsetY || 0;\n var blur = style.shadowBlur;\n var color = style.shadowColor;\n domChild.setAttribute('dx', offsetX / scaleX + '');\n domChild.setAttribute('dy', offsetY / scaleY + '');\n domChild.setAttribute('flood-color', color);\n var stdDx = blur / 2 / scaleX;\n var stdDy = blur / 2 / scaleY;\n var stdDeviation = stdDx + ' ' + stdDy;\n domChild.setAttribute('stdDeviation', stdDeviation);\n shadowDom.setAttribute('x', '-100%');\n shadowDom.setAttribute('y', '-100%');\n shadowDom.setAttribute('width', '300%');\n shadowDom.setAttribute('height', '300%');\n displayable._shadowDom = shadowDom;\n var id = shadowDom.getAttribute('id');\n svgElement.style.filter = 'url(#' + id + ')';\n };\n ShadowManager.prototype.removeUnused = function () {\n var defs = this.getDefs(false);\n if (!defs) {\n return;\n }\n var shadowDomsPool = this._shadowDomPool;\n var currentUsedShadow = 0;\n for (var key in this._shadowDomMap) {\n var dom = this._shadowDomMap[key];\n shadowDomsPool.push(dom);\n currentUsedShadow++;\n }\n this._shadowDomMap = {};\n };\n return ShadowManager;\n}(Definable));\nexport default ShadowManager;\nfunction hasShadow(style) {\n return style\n && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\n}\nfunction getShadowKey(displayable) {\n var style = displayable.style;\n var globalScale = displayable.getGlobalScale();\n return [\n style.shadowColor,\n (style.shadowBlur || 0).toFixed(2),\n (style.shadowOffsetX || 0).toFixed(2),\n (style.shadowOffsetY || 0).toFixed(2),\n globalScale[0],\n globalScale[1]\n ].join(',');\n}\n","import { createElement } from './core';\nimport * as util from '../core/util';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport arrayDiff from '../core/arrayDiff';\nimport GradientManager from './helper/GradientManager';\nimport PatternManager from './helper/PatternManager';\nimport ClippathManager, { hasClipPath } from './helper/ClippathManager';\nimport ShadowManager from './helper/ShadowManager';\nimport { path as svgPath, image as svgImage, text as svgText } from './graphic';\nfunction parseInt10(val) {\n return parseInt(val, 10);\n}\nfunction getSvgProxy(el) {\n if (el instanceof Path) {\n return svgPath;\n }\n else if (el instanceof ZRImage) {\n return svgImage;\n }\n else if (el instanceof TSpan) {\n return svgText;\n }\n else {\n return svgPath;\n }\n}\nfunction checkParentAvailable(parent, child) {\n return child && parent && child.parentNode !== parent;\n}\nfunction insertAfter(parent, child, prevSibling) {\n if (checkParentAvailable(parent, child) && prevSibling) {\n var nextSibling = prevSibling.nextSibling;\n nextSibling ? parent.insertBefore(child, nextSibling)\n : parent.appendChild(child);\n }\n}\nfunction prepend(parent, child) {\n if (checkParentAvailable(parent, child)) {\n var firstChild = parent.firstChild;\n firstChild ? parent.insertBefore(child, firstChild)\n : parent.appendChild(child);\n }\n}\nfunction remove(parent, child) {\n if (child && parent && child.parentNode === parent) {\n parent.removeChild(child);\n }\n}\nfunction removeFromMyParent(child) {\n if (child && child.parentNode) {\n child.parentNode.removeChild(child);\n }\n}\nfunction getSvgElement(displayable) {\n return displayable.__svgEl;\n}\nvar SVGPainter = (function () {\n function SVGPainter(root, storage, opts, zrId) {\n this.type = 'svg';\n this.refreshHover = createMethodNotSupport('refreshHover');\n this.pathToImage = createMethodNotSupport('pathToImage');\n this.configLayer = createMethodNotSupport('configLayer');\n this.root = root;\n this.storage = storage;\n this._opts = opts = util.extend({}, opts || {});\n var svgDom = createElement('svg');\n svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns', 'http://www.w3.org/2000/svg');\n svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xlink', 'http://www.w3.org/1999/xlink');\n svgDom.setAttribute('version', '1.1');\n svgDom.setAttribute('baseProfile', 'full');\n svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\n var bgRoot = createElement('g');\n svgDom.appendChild(bgRoot);\n var svgRoot = createElement('g');\n svgDom.appendChild(svgRoot);\n this._gradientManager = new GradientManager(zrId, svgRoot);\n this._patternManager = new PatternManager(zrId, svgRoot);\n this._clipPathManager = new ClippathManager(zrId, svgRoot);\n this._shadowManager = new ShadowManager(zrId, svgRoot);\n var viewport = document.createElement('div');\n viewport.style.cssText = 'overflow:hidden;position:relative';\n this._svgDom = svgDom;\n this._svgRoot = svgRoot;\n this._backgroundRoot = bgRoot;\n this._viewport = viewport;\n root.appendChild(viewport);\n viewport.appendChild(svgDom);\n this.resize(opts.width, opts.height);\n this._visibleList = [];\n }\n SVGPainter.prototype.getType = function () {\n return 'svg';\n };\n SVGPainter.prototype.getViewportRoot = function () {\n return this._viewport;\n };\n SVGPainter.prototype.getSvgDom = function () {\n return this._svgDom;\n };\n SVGPainter.prototype.getSvgRoot = function () {\n return this._svgRoot;\n };\n SVGPainter.prototype.getViewportRootOffset = function () {\n var viewportRoot = this.getViewportRoot();\n if (viewportRoot) {\n return {\n offsetLeft: viewportRoot.offsetLeft || 0,\n offsetTop: viewportRoot.offsetTop || 0\n };\n }\n };\n SVGPainter.prototype.refresh = function () {\n var list = this.storage.getDisplayList(true);\n this._paintList(list);\n };\n SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\n if (this._backgroundRoot && this._backgroundNode) {\n this._backgroundRoot.removeChild(this._backgroundNode);\n }\n var bgNode = createElement('rect');\n bgNode.setAttribute('width', this.getWidth());\n bgNode.setAttribute('height', this.getHeight());\n bgNode.setAttribute('x', 0);\n bgNode.setAttribute('y', 0);\n bgNode.setAttribute('id', 0);\n bgNode.style.fill = backgroundColor;\n this._backgroundRoot.appendChild(bgNode);\n this._backgroundNode = bgNode;\n };\n SVGPainter.prototype.createSVGElement = function (tag) {\n return createElement(tag);\n };\n SVGPainter.prototype.paintOne = function (el) {\n var svgProxy = getSvgProxy(el);\n svgProxy && svgProxy.brush(el);\n return getSvgElement(el);\n };\n SVGPainter.prototype._paintList = function (list) {\n var gradientManager = this._gradientManager;\n var patternManager = this._patternManager;\n var clipPathManager = this._clipPathManager;\n var shadowManager = this._shadowManager;\n gradientManager.markAllUnused();\n patternManager.markAllUnused();\n clipPathManager.markAllUnused();\n shadowManager.markAllUnused();\n var svgRoot = this._svgRoot;\n var visibleList = this._visibleList;\n var listLen = list.length;\n var newVisibleList = [];\n for (var i = 0; i < listLen; i++) {\n var displayable = list[i];\n var svgProxy = getSvgProxy(displayable);\n var svgElement = getSvgElement(displayable);\n if (!displayable.invisible) {\n if (displayable.__dirty || !svgElement) {\n svgProxy && svgProxy.brush(displayable);\n svgElement = getSvgElement(displayable);\n if (svgElement && displayable.style) {\n gradientManager.update(displayable.style.fill);\n gradientManager.update(displayable.style.stroke);\n patternManager.update(displayable.style.fill);\n patternManager.update(displayable.style.stroke);\n shadowManager.update(svgElement, displayable);\n }\n displayable.__dirty = 0;\n }\n if (svgElement) {\n newVisibleList.push(displayable);\n }\n }\n }\n var diff = arrayDiff(visibleList, newVisibleList);\n var prevSvgElement;\n var topPrevSvgElement;\n for (var i = 0; i < diff.length; i++) {\n var item = diff[i];\n if (item.removed) {\n for (var k = 0; k < item.count; k++) {\n var displayable = visibleList[item.indices[k]];\n var svgElement = getSvgElement(displayable);\n hasClipPath(displayable) ? removeFromMyParent(svgElement)\n : remove(svgRoot, svgElement);\n }\n }\n }\n var prevDisplayable;\n var currentClipGroup;\n for (var i = 0; i < diff.length; i++) {\n var item = diff[i];\n var isAdd = item.added;\n if (item.removed) {\n continue;\n }\n for (var k = 0; k < item.count; k++) {\n var displayable = newVisibleList[item.indices[k]];\n var clipGroup = clipPathManager.update(displayable, prevDisplayable);\n if (clipGroup !== currentClipGroup) {\n prevSvgElement = topPrevSvgElement;\n if (clipGroup) {\n prevSvgElement ? insertAfter(svgRoot, clipGroup, prevSvgElement)\n : prepend(svgRoot, clipGroup);\n topPrevSvgElement = clipGroup;\n prevSvgElement = null;\n }\n currentClipGroup = clipGroup;\n }\n var svgElement = getSvgElement(displayable);\n prevSvgElement\n ? insertAfter(currentClipGroup || svgRoot, svgElement, prevSvgElement)\n : prepend(currentClipGroup || svgRoot, svgElement);\n prevSvgElement = svgElement || prevSvgElement;\n if (!currentClipGroup) {\n topPrevSvgElement = prevSvgElement;\n }\n gradientManager.markUsed(displayable);\n gradientManager.addWithoutUpdate(svgElement, displayable);\n patternManager.markUsed(displayable);\n patternManager.addWithoutUpdate(svgElement, displayable);\n clipPathManager.markUsed(displayable);\n prevDisplayable = displayable;\n }\n }\n gradientManager.removeUnused();\n patternManager.removeUnused();\n clipPathManager.removeUnused();\n shadowManager.removeUnused();\n this._visibleList = newVisibleList;\n };\n SVGPainter.prototype._getDefs = function (isForceCreating) {\n var svgRoot = this._svgDom;\n var defs = svgRoot.getElementsByTagName('defs');\n if (defs.length === 0) {\n if (isForceCreating) {\n var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\n if (!defs_1.contains) {\n defs_1.contains = function (el) {\n var children = defs_1.children;\n if (!children) {\n return false;\n }\n for (var i = children.length - 1; i >= 0; --i) {\n if (children[i] === el) {\n return true;\n }\n }\n return false;\n };\n }\n return defs_1;\n }\n else {\n return null;\n }\n }\n else {\n return defs[0];\n }\n };\n SVGPainter.prototype.resize = function (width, height) {\n var viewport = this._viewport;\n viewport.style.display = 'none';\n var opts = this._opts;\n width != null && (opts.width = width);\n height != null && (opts.height = height);\n width = this._getSize(0);\n height = this._getSize(1);\n viewport.style.display = '';\n if (this._width !== width || this._height !== height) {\n this._width = width;\n this._height = height;\n var viewportStyle = viewport.style;\n viewportStyle.width = width + 'px';\n viewportStyle.height = height + 'px';\n var svgRoot = this._svgDom;\n svgRoot.setAttribute('width', width + '');\n svgRoot.setAttribute('height', height + '');\n }\n if (this._backgroundNode) {\n this._backgroundNode.setAttribute('width', width);\n this._backgroundNode.setAttribute('height', height);\n }\n };\n SVGPainter.prototype.getWidth = function () {\n return this._width;\n };\n SVGPainter.prototype.getHeight = function () {\n return this._height;\n };\n SVGPainter.prototype._getSize = function (whIdx) {\n var opts = this._opts;\n var wh = ['width', 'height'][whIdx];\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\n if (opts[wh] != null && opts[wh] !== 'auto') {\n return parseFloat(opts[wh]);\n }\n var root = this.root;\n var stl = document.defaultView.getComputedStyle(root);\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n - (parseInt10(stl[plt]) || 0)\n - (parseInt10(stl[prb]) || 0)) | 0;\n };\n SVGPainter.prototype.dispose = function () {\n this.root.innerHTML = '';\n this._svgRoot\n = this._backgroundRoot\n = this._svgDom\n = this._backgroundNode\n = this._viewport\n = this.storage\n = null;\n };\n SVGPainter.prototype.clear = function () {\n var viewportNode = this._viewport;\n if (viewportNode && viewportNode.parentNode) {\n viewportNode.parentNode.removeChild(viewportNode);\n }\n };\n SVGPainter.prototype.toDataURL = function () {\n this.refresh();\n var svgDom = this._svgDom;\n var outerHTML = svgDom.outerHTML\n || (svgDom.parentNode && svgDom.parentNode).innerHTML;\n var html = encodeURIComponent(outerHTML.replace(/></g, '>\\n\\r<'));\n return 'data:image/svg+xml;charset=UTF-8,' + html;\n };\n return SVGPainter;\n}());\nfunction createMethodNotSupport(method) {\n return function () {\n util.logError('In SVG mode painter not support method \"' + method + '\"');\n };\n}\nexport default SVGPainter;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SVGPainter from 'zrender/lib/svg/Painter';\nexport function install(registers) {\n registers.registerPainter('svg', SVGPainter);\n}","import { __extends } from \"tslib\";\nimport * as util from '../core/util';\nimport { devicePixelRatio } from '../config';\nimport Eventful from '../core/Eventful';\nimport Element from '../Element';\nimport { getCanvasGradient } from './helper';\nimport { createCanvasPattern } from './graphic';\nimport BoundingRect from '../core/BoundingRect';\nfunction returnFalse() {\n return false;\n}\nfunction createDom(id, painter, dpr) {\n var newDom = util.createCanvas();\n var width = painter.getWidth();\n var height = painter.getHeight();\n var newDomStyle = newDom.style;\n if (newDomStyle) {\n newDomStyle.position = 'absolute';\n newDomStyle.left = '0';\n newDomStyle.top = '0';\n newDomStyle.width = width + 'px';\n newDomStyle.height = height + 'px';\n newDom.setAttribute('data-zr-dom-id', id);\n }\n newDom.width = width * dpr;\n newDom.height = height * dpr;\n return newDom;\n}\n;\nvar Layer = (function (_super) {\n __extends(Layer, _super);\n function Layer(id, painter, dpr) {\n var _this = _super.call(this) || this;\n _this.motionBlur = false;\n _this.lastFrameAlpha = 0.7;\n _this.dpr = 1;\n _this.virtual = false;\n _this.config = {};\n _this.incremental = false;\n _this.zlevel = 0;\n _this.maxRepaintRectCount = 5;\n _this.__dirty = true;\n _this.__firstTimePaint = true;\n _this.__used = false;\n _this.__drawIndex = 0;\n _this.__startIndex = 0;\n _this.__endIndex = 0;\n _this.__prevStartIndex = null;\n _this.__prevEndIndex = null;\n var dom;\n dpr = dpr || devicePixelRatio;\n if (typeof id === 'string') {\n dom = createDom(id, painter, dpr);\n }\n else if (util.isObject(id)) {\n dom = id;\n id = dom.id;\n }\n _this.id = id;\n _this.dom = dom;\n var domStyle = dom.style;\n if (domStyle) {\n dom.onselectstart = returnFalse;\n domStyle.webkitUserSelect = 'none';\n domStyle.userSelect = 'none';\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n domStyle['-webkit-touch-callout'] = 'none';\n domStyle.padding = '0';\n domStyle.margin = '0';\n domStyle.borderWidth = '0';\n }\n _this.domBack = null;\n _this.ctxBack = null;\n _this.painter = painter;\n _this.config = null;\n _this.dpr = dpr;\n return _this;\n }\n Layer.prototype.getElementCount = function () {\n return this.__endIndex - this.__startIndex;\n };\n Layer.prototype.afterBrush = function () {\n this.__prevStartIndex = this.__startIndex;\n this.__prevEndIndex = this.__endIndex;\n };\n Layer.prototype.initContext = function () {\n this.ctx = this.dom.getContext('2d');\n this.ctx.dpr = this.dpr;\n };\n Layer.prototype.setUnpainted = function () {\n this.__firstTimePaint = true;\n };\n Layer.prototype.createBackBuffer = function () {\n var dpr = this.dpr;\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\n this.ctxBack = this.domBack.getContext('2d');\n if (dpr !== 1) {\n this.ctxBack.scale(dpr, dpr);\n }\n };\n Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n if (this.__firstTimePaint) {\n this.__firstTimePaint = false;\n return null;\n }\n var mergedRepaintRects = [];\n var maxRepaintRectCount = this.maxRepaintRectCount;\n var full = false;\n var pendingRect = new BoundingRect(0, 0, 0, 0);\n function addRectToMergePool(rect) {\n if (!rect.isFinite() || rect.isZero()) {\n return;\n }\n if (mergedRepaintRects.length === 0) {\n var boundingRect = new BoundingRect(0, 0, 0, 0);\n boundingRect.copy(rect);\n mergedRepaintRects.push(boundingRect);\n }\n else {\n var isMerged = false;\n var minDeltaArea = Infinity;\n var bestRectToMergeIdx = 0;\n for (var i = 0; i < mergedRepaintRects.length; ++i) {\n var mergedRect = mergedRepaintRects[i];\n if (mergedRect.intersect(rect)) {\n var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n pendingRect_1.copy(mergedRect);\n pendingRect_1.union(rect);\n mergedRepaintRects[i] = pendingRect_1;\n isMerged = true;\n break;\n }\n else if (full) {\n pendingRect.copy(rect);\n pendingRect.union(mergedRect);\n var aArea = rect.width * rect.height;\n var bArea = mergedRect.width * mergedRect.height;\n var pendingArea = pendingRect.width * pendingRect.height;\n var deltaArea = pendingArea - aArea - bArea;\n if (deltaArea < minDeltaArea) {\n minDeltaArea = deltaArea;\n bestRectToMergeIdx = i;\n }\n }\n }\n if (full) {\n mergedRepaintRects[bestRectToMergeIdx].union(rect);\n isMerged = true;\n }\n if (!isMerged) {\n var boundingRect = new BoundingRect(0, 0, 0, 0);\n boundingRect.copy(rect);\n mergedRepaintRects.push(boundingRect);\n }\n if (!full) {\n full = mergedRepaintRects.length >= maxRepaintRectCount;\n }\n }\n }\n for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n var el = displayList[i];\n if (el) {\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\n ? el.getPrevPaintRect()\n : null;\n if (prevRect) {\n addRectToMergePool(prevRect);\n }\n var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\n ? el.getPaintRect()\n : null;\n if (curRect) {\n addRectToMergePool(curRect);\n }\n }\n }\n for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n var el = prevList[i];\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n var prevRect = el.getPrevPaintRect();\n if (prevRect) {\n addRectToMergePool(prevRect);\n }\n }\n }\n var hasIntersections;\n do {\n hasIntersections = false;\n for (var i = 0; i < mergedRepaintRects.length;) {\n if (mergedRepaintRects[i].isZero()) {\n mergedRepaintRects.splice(i, 1);\n continue;\n }\n for (var j = i + 1; j < mergedRepaintRects.length;) {\n if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n hasIntersections = true;\n mergedRepaintRects[i].union(mergedRepaintRects[j]);\n mergedRepaintRects.splice(j, 1);\n }\n else {\n j++;\n }\n }\n i++;\n }\n } while (hasIntersections);\n this._paintRects = mergedRepaintRects;\n return mergedRepaintRects;\n };\n Layer.prototype.debugGetPaintRects = function () {\n return (this._paintRects || []).slice();\n };\n Layer.prototype.resize = function (width, height) {\n var dpr = this.dpr;\n var dom = this.dom;\n var domStyle = dom.style;\n var domBack = this.domBack;\n if (domStyle) {\n domStyle.width = width + 'px';\n domStyle.height = height + 'px';\n }\n dom.width = width * dpr;\n dom.height = height * dpr;\n if (domBack) {\n domBack.width = width * dpr;\n domBack.height = height * dpr;\n if (dpr !== 1) {\n this.ctxBack.scale(dpr, dpr);\n }\n }\n };\n Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n var dom = this.dom;\n var ctx = this.ctx;\n var width = dom.width;\n var height = dom.height;\n clearColor = clearColor || this.clearColor;\n var haveMotionBLur = this.motionBlur && !clearAll;\n var lastFrameAlpha = this.lastFrameAlpha;\n var dpr = this.dpr;\n var self = this;\n if (haveMotionBLur) {\n if (!this.domBack) {\n this.createBackBuffer();\n }\n this.ctxBack.globalCompositeOperation = 'copy';\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n }\n var domBack = this.domBack;\n function doClear(x, y, width, height) {\n ctx.clearRect(x, y, width, height);\n if (clearColor && clearColor !== 'transparent') {\n var clearColorGradientOrPattern = void 0;\n if (util.isGradientObject(clearColor)) {\n clearColorGradientOrPattern = clearColor.__canvasGradient\n || getCanvasGradient(ctx, clearColor, {\n x: 0,\n y: 0,\n width: width,\n height: height\n });\n clearColor.__canvasGradient = clearColorGradientOrPattern;\n }\n else if (util.isPatternObject(clearColor)) {\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n dirty: function () {\n self.setUnpainted();\n self.__painter.refresh();\n }\n });\n }\n ctx.save();\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n ctx.fillRect(x, y, width, height);\n ctx.restore();\n }\n if (haveMotionBLur) {\n ctx.save();\n ctx.globalAlpha = lastFrameAlpha;\n ctx.drawImage(domBack, x, y, width, height);\n ctx.restore();\n }\n }\n ;\n if (!repaintRects || haveMotionBLur) {\n doClear(0, 0, width, height);\n }\n else if (repaintRects.length) {\n util.each(repaintRects, function (rect) {\n doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n });\n }\n };\n return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config';\nimport * as util from '../core/util';\nimport Layer from './Layer';\nimport requestAnimationFrame from '../animation/requestAnimationFrame';\nimport ZRImage from '../graphic/Image';\nimport env from '../core/env';\nimport { brush, brushSingle } from './graphic';\nimport Element from '../Element';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction parseInt10(val) {\n return parseInt(val, 10);\n}\nfunction isLayerValid(layer) {\n if (!layer) {\n return false;\n }\n if (layer.__builtin__) {\n return true;\n }\n if (typeof (layer.resize) !== 'function'\n || typeof (layer.refresh) !== 'function') {\n return false;\n }\n return true;\n}\nfunction createRoot(width, height) {\n var domRoot = document.createElement('div');\n domRoot.style.cssText = [\n 'position:relative',\n 'width:' + width + 'px',\n 'height:' + height + 'px',\n 'padding:0',\n 'margin:0',\n 'border-width:0'\n ].join(';') + ';';\n return domRoot;\n}\nvar CanvasPainter = (function () {\n function CanvasPainter(root, storage, opts, id) {\n this.type = 'canvas';\n this._zlevelList = [];\n this._prevDisplayList = [];\n this._layers = {};\n this._layerConfig = {};\n this._needsManuallyCompositing = false;\n this.type = 'canvas';\n var singleCanvas = !root.nodeName\n || root.nodeName.toUpperCase() === 'CANVAS';\n this._opts = opts = util.extend({}, opts || {});\n this.dpr = opts.devicePixelRatio || devicePixelRatio;\n this._singleCanvas = singleCanvas;\n this.root = root;\n var rootStyle = root.style;\n if (rootStyle) {\n rootStyle.webkitTapHighlightColor = 'transparent';\n rootStyle.webkitUserSelect = 'none';\n rootStyle.userSelect = 'none';\n rootStyle['-webkit-touch-callout'] = 'none';\n root.innerHTML = '';\n }\n this.storage = storage;\n var zlevelList = this._zlevelList;\n this._prevDisplayList = [];\n var layers = this._layers;\n if (!singleCanvas) {\n this._width = this._getSize(0);\n this._height = this._getSize(1);\n var domRoot = this._domRoot = createRoot(this._width, this._height);\n root.appendChild(domRoot);\n }\n else {\n var rootCanvas = root;\n var width = rootCanvas.width;\n var height = rootCanvas.height;\n if (opts.width != null) {\n width = opts.width;\n }\n if (opts.height != null) {\n height = opts.height;\n }\n this.dpr = opts.devicePixelRatio || 1;\n rootCanvas.width = width * this.dpr;\n rootCanvas.height = height * this.dpr;\n this._width = width;\n this._height = height;\n var mainLayer = new Layer(rootCanvas, this, this.dpr);\n mainLayer.__builtin__ = true;\n mainLayer.initContext();\n layers[CANVAS_ZLEVEL] = mainLayer;\n mainLayer.zlevel = CANVAS_ZLEVEL;\n zlevelList.push(CANVAS_ZLEVEL);\n this._domRoot = root;\n }\n }\n CanvasPainter.prototype.getType = function () {\n return 'canvas';\n };\n CanvasPainter.prototype.isSingleCanvas = function () {\n return this._singleCanvas;\n };\n CanvasPainter.prototype.getViewportRoot = function () {\n return this._domRoot;\n };\n CanvasPainter.prototype.getViewportRootOffset = function () {\n var viewportRoot = this.getViewportRoot();\n if (viewportRoot) {\n return {\n offsetLeft: viewportRoot.offsetLeft || 0,\n offsetTop: viewportRoot.offsetTop || 0\n };\n }\n };\n CanvasPainter.prototype.refresh = function (paintAll) {\n var list = this.storage.getDisplayList(true);\n var prevList = this._prevDisplayList;\n var zlevelList = this._zlevelList;\n this._redrawId = Math.random();\n this._paintList(list, prevList, paintAll, this._redrawId);\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n var layer = this._layers[z];\n if (!layer.__builtin__ && layer.refresh) {\n var clearColor = i === 0 ? this._backgroundColor : null;\n layer.refresh(clearColor);\n }\n }\n if (this._opts.useDirtyRect) {\n this._prevDisplayList = list.slice();\n }\n return this;\n };\n CanvasPainter.prototype.refreshHover = function () {\n this._paintHoverList(this.storage.getDisplayList(false));\n };\n CanvasPainter.prototype._paintHoverList = function (list) {\n var len = list.length;\n var hoverLayer = this._hoverlayer;\n hoverLayer && hoverLayer.clear();\n if (!len) {\n return;\n }\n var scope = {\n inHover: true,\n viewWidth: this._width,\n viewHeight: this._height\n };\n var ctx;\n for (var i = 0; i < len; i++) {\n var el = list[i];\n if (el.__inHover) {\n if (!hoverLayer) {\n hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n }\n if (!ctx) {\n ctx = hoverLayer.ctx;\n ctx.save();\n }\n brush(ctx, el, scope, i === len - 1);\n }\n }\n if (ctx) {\n ctx.restore();\n }\n };\n CanvasPainter.prototype.getHoverLayer = function () {\n return this.getLayer(HOVER_LAYER_ZLEVEL);\n };\n CanvasPainter.prototype.paintOne = function (ctx, el) {\n brushSingle(ctx, el);\n };\n CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n if (this._redrawId !== redrawId) {\n return;\n }\n paintAll = paintAll || false;\n this._updateLayerStatus(list);\n var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n if (this._needsManuallyCompositing) {\n this._compositeManually();\n }\n if (needsRefreshHover) {\n this._paintHoverList(list);\n }\n if (!finished) {\n var self_1 = this;\n requestAnimationFrame(function () {\n self_1._paintList(list, prevList, paintAll, redrawId);\n });\n }\n else {\n this.eachLayer(function (layer) {\n layer.afterBrush && layer.afterBrush();\n });\n }\n };\n CanvasPainter.prototype._compositeManually = function () {\n var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n var width = this._domRoot.width;\n var height = this._domRoot.height;\n ctx.clearRect(0, 0, width, height);\n this.eachBuiltinLayer(function (layer) {\n if (layer.virtual) {\n ctx.drawImage(layer.dom, 0, 0, width, height);\n }\n });\n };\n CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n var _this = this;\n var layerList = [];\n var useDirtyRect = this._opts.useDirtyRect;\n for (var zi = 0; zi < this._zlevelList.length; zi++) {\n var zlevel = this._zlevelList[zi];\n var layer = this._layers[zlevel];\n if (layer.__builtin__\n && layer !== this._hoverlayer\n && (layer.__dirty || paintAll)) {\n layerList.push(layer);\n }\n }\n var finished = true;\n var needsRefreshHover = false;\n var _loop_1 = function (k) {\n var layer = layerList[k];\n var ctx = layer.ctx;\n var repaintRects = useDirtyRect\n && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n ctx.save();\n var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n var useTimer = !paintAll && layer.incremental && Date.now;\n var startTime = useTimer && Date.now();\n var clearColor = layer.zlevel === this_1._zlevelList[0]\n ? this_1._backgroundColor : null;\n if (layer.__startIndex === layer.__endIndex) {\n layer.clear(false, clearColor, repaintRects);\n }\n else if (start === layer.__startIndex) {\n var firstEl = list[start];\n if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n layer.clear(false, clearColor, repaintRects);\n }\n }\n if (start === -1) {\n console.error('For some unknown reason. drawIndex is -1');\n start = layer.__startIndex;\n }\n var i;\n var repaint = function (repaintRect) {\n var scope = {\n inHover: false,\n allClipped: false,\n prevEl: null,\n viewWidth: _this._width,\n viewHeight: _this._height\n };\n for (i = start; i < layer.__endIndex; i++) {\n var el = list[i];\n if (el.__inHover) {\n needsRefreshHover = true;\n }\n _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n if (useTimer) {\n var dTime = Date.now() - startTime;\n if (dTime > 15) {\n break;\n }\n }\n }\n if (scope.prevElClipPaths) {\n ctx.restore();\n }\n };\n if (repaintRects) {\n if (repaintRects.length === 0) {\n i = layer.__endIndex;\n }\n else {\n var dpr = this_1.dpr;\n for (var r = 0; r < repaintRects.length; ++r) {\n var rect = repaintRects[r];\n ctx.save();\n ctx.beginPath();\n ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n ctx.clip();\n repaint(rect);\n ctx.restore();\n }\n }\n }\n else {\n ctx.save();\n repaint();\n ctx.restore();\n }\n layer.__drawIndex = i;\n if (layer.__drawIndex < layer.__endIndex) {\n finished = false;\n }\n };\n var this_1 = this;\n for (var k = 0; k < layerList.length; k++) {\n _loop_1(k);\n }\n if (env.wxa) {\n util.each(this._layers, function (layer) {\n if (layer && layer.ctx && layer.ctx.draw) {\n layer.ctx.draw();\n }\n });\n }\n return {\n finished: finished,\n needsRefreshHover: needsRefreshHover\n };\n };\n CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n var ctx = currentLayer.ctx;\n if (useDirtyRect) {\n var paintRect = el.getPaintRect();\n if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n brush(ctx, el, scope, isLast);\n el.setPrevPaintRect(paintRect);\n }\n }\n else {\n brush(ctx, el, scope, isLast);\n }\n };\n CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n if (this._singleCanvas && !this._needsManuallyCompositing) {\n zlevel = CANVAS_ZLEVEL;\n }\n var layer = this._layers[zlevel];\n if (!layer) {\n layer = new Layer('zr_' + zlevel, this, this.dpr);\n layer.zlevel = zlevel;\n layer.__builtin__ = true;\n if (this._layerConfig[zlevel]) {\n util.merge(layer, this._layerConfig[zlevel], true);\n }\n else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n }\n if (virtual) {\n layer.virtual = virtual;\n }\n this.insertLayer(zlevel, layer);\n layer.initContext();\n }\n return layer;\n };\n CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n var layersMap = this._layers;\n var zlevelList = this._zlevelList;\n var len = zlevelList.length;\n var domRoot = this._domRoot;\n var prevLayer = null;\n var i = -1;\n if (layersMap[zlevel]) {\n util.logError('ZLevel ' + zlevel + ' has been used already');\n return;\n }\n if (!isLayerValid(layer)) {\n util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n return;\n }\n if (len > 0 && zlevel > zlevelList[0]) {\n for (i = 0; i < len - 1; i++) {\n if (zlevelList[i] < zlevel\n && zlevelList[i + 1] > zlevel) {\n break;\n }\n }\n prevLayer = layersMap[zlevelList[i]];\n }\n zlevelList.splice(i + 1, 0, zlevel);\n layersMap[zlevel] = layer;\n if (!layer.virtual) {\n if (prevLayer) {\n var prevDom = prevLayer.dom;\n if (prevDom.nextSibling) {\n domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n }\n else {\n domRoot.appendChild(layer.dom);\n }\n }\n else {\n if (domRoot.firstChild) {\n domRoot.insertBefore(layer.dom, domRoot.firstChild);\n }\n else {\n domRoot.appendChild(layer.dom);\n }\n }\n }\n layer.__painter = this;\n };\n CanvasPainter.prototype.eachLayer = function (cb, context) {\n var zlevelList = this._zlevelList;\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n cb.call(context, this._layers[z], z);\n }\n };\n CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n var zlevelList = this._zlevelList;\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n var layer = this._layers[z];\n if (layer.__builtin__) {\n cb.call(context, layer, z);\n }\n }\n };\n CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n var zlevelList = this._zlevelList;\n for (var i = 0; i < zlevelList.length; i++) {\n var z = zlevelList[i];\n var layer = this._layers[z];\n if (!layer.__builtin__) {\n cb.call(context, layer, z);\n }\n }\n };\n CanvasPainter.prototype.getLayers = function () {\n return this._layers;\n };\n CanvasPainter.prototype._updateLayerStatus = function (list) {\n this.eachBuiltinLayer(function (layer, z) {\n layer.__dirty = layer.__used = false;\n });\n function updatePrevLayer(idx) {\n if (prevLayer) {\n if (prevLayer.__endIndex !== idx) {\n prevLayer.__dirty = true;\n }\n prevLayer.__endIndex = idx;\n }\n }\n if (this._singleCanvas) {\n for (var i_1 = 1; i_1 < list.length; i_1++) {\n var el = list[i_1];\n if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n this._needsManuallyCompositing = true;\n break;\n }\n }\n }\n var prevLayer = null;\n var incrementalLayerCount = 0;\n var prevZlevel;\n var i;\n for (i = 0; i < list.length; i++) {\n var el = list[i];\n var zlevel = el.zlevel;\n var layer = void 0;\n if (prevZlevel !== zlevel) {\n prevZlevel = zlevel;\n incrementalLayerCount = 0;\n }\n if (el.incremental) {\n layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n layer.incremental = true;\n incrementalLayerCount = 1;\n }\n else {\n layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n }\n if (!layer.__builtin__) {\n util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n }\n if (layer !== prevLayer) {\n layer.__used = true;\n if (layer.__startIndex !== i) {\n layer.__dirty = true;\n }\n layer.__startIndex = i;\n if (!layer.incremental) {\n layer.__drawIndex = i;\n }\n else {\n layer.__drawIndex = -1;\n }\n updatePrevLayer(i);\n prevLayer = layer;\n }\n if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\n layer.__dirty = true;\n if (layer.incremental && layer.__drawIndex < 0) {\n layer.__drawIndex = i;\n }\n }\n }\n updatePrevLayer(i);\n this.eachBuiltinLayer(function (layer, z) {\n if (!layer.__used && layer.getElementCount() > 0) {\n layer.__dirty = true;\n layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n }\n if (layer.__dirty && layer.__drawIndex < 0) {\n layer.__drawIndex = layer.__startIndex;\n }\n });\n };\n CanvasPainter.prototype.clear = function () {\n this.eachBuiltinLayer(this._clearLayer);\n return this;\n };\n CanvasPainter.prototype._clearLayer = function (layer) {\n layer.clear();\n };\n CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n this._backgroundColor = backgroundColor;\n util.each(this._layers, function (layer) {\n layer.setUnpainted();\n });\n };\n CanvasPainter.prototype.configLayer = function (zlevel, config) {\n if (config) {\n var layerConfig = this._layerConfig;\n if (!layerConfig[zlevel]) {\n layerConfig[zlevel] = config;\n }\n else {\n util.merge(layerConfig[zlevel], config, true);\n }\n for (var i = 0; i < this._zlevelList.length; i++) {\n var _zlevel = this._zlevelList[i];\n if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n var layer = this._layers[_zlevel];\n util.merge(layer, layerConfig[zlevel], true);\n }\n }\n }\n };\n CanvasPainter.prototype.delLayer = function (zlevel) {\n var layers = this._layers;\n var zlevelList = this._zlevelList;\n var layer = layers[zlevel];\n if (!layer) {\n return;\n }\n layer.dom.parentNode.removeChild(layer.dom);\n delete layers[zlevel];\n zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n };\n CanvasPainter.prototype.resize = function (width, height) {\n if (!this._domRoot.style) {\n if (width == null || height == null) {\n return;\n }\n this._width = width;\n this._height = height;\n this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n }\n else {\n var domRoot = this._domRoot;\n domRoot.style.display = 'none';\n var opts = this._opts;\n width != null && (opts.width = width);\n height != null && (opts.height = height);\n width = this._getSize(0);\n height = this._getSize(1);\n domRoot.style.display = '';\n if (this._width !== width || height !== this._height) {\n domRoot.style.width = width + 'px';\n domRoot.style.height = height + 'px';\n for (var id in this._layers) {\n if (this._layers.hasOwnProperty(id)) {\n this._layers[id].resize(width, height);\n }\n }\n this.refresh(true);\n }\n this._width = width;\n this._height = height;\n }\n return this;\n };\n CanvasPainter.prototype.clearLayer = function (zlevel) {\n var layer = this._layers[zlevel];\n if (layer) {\n layer.clear();\n }\n };\n CanvasPainter.prototype.dispose = function () {\n this.root.innerHTML = '';\n this.root =\n this.storage =\n this._domRoot =\n this._layers = null;\n };\n CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n opts = opts || {};\n if (this._singleCanvas && !this._compositeManually) {\n return this._layers[CANVAS_ZLEVEL].dom;\n }\n var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n var ctx = imageLayer.ctx;\n imageLayer.initContext();\n imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n if (opts.pixelRatio <= this.dpr) {\n this.refresh();\n var width_1 = imageLayer.dom.width;\n var height_1 = imageLayer.dom.height;\n var ctx_1 = imageLayer.ctx;\n this.eachLayer(function (layer) {\n if (layer.__builtin__) {\n ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\n }\n else if (layer.renderToCanvas) {\n imageLayer.ctx.save();\n layer.renderToCanvas(imageLayer.ctx);\n imageLayer.ctx.restore();\n }\n });\n }\n else {\n var scope = {\n inHover: false,\n viewWidth: this._width,\n viewHeight: this._height\n };\n var displayList = this.storage.getDisplayList(true);\n for (var i = 0, len = displayList.length; i < len; i++) {\n var el = displayList[i];\n brush(ctx, el, scope, i === len - 1);\n }\n }\n return imageLayer.dom;\n };\n CanvasPainter.prototype.getWidth = function () {\n return this._width;\n };\n CanvasPainter.prototype.getHeight = function () {\n return this._height;\n };\n CanvasPainter.prototype._getSize = function (whIdx) {\n var opts = this._opts;\n var wh = ['width', 'height'][whIdx];\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\n if (opts[wh] != null && opts[wh] !== 'auto') {\n return parseFloat(opts[wh]);\n }\n var root = this.root;\n var stl = document.defaultView.getComputedStyle(root);\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n - (parseInt10(stl[plt]) || 0)\n - (parseInt10(stl[prb]) || 0)) | 0;\n };\n CanvasPainter.prototype.pathToImage = function (path, dpr) {\n dpr = dpr || this.dpr;\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n var rect = path.getBoundingRect();\n var style = path.style;\n var shadowBlurSize = style.shadowBlur * dpr;\n var shadowOffsetX = style.shadowOffsetX * dpr;\n var shadowOffsetY = style.shadowOffsetY * dpr;\n var lineWidth = path.hasStroke() ? style.lineWidth : 0;\n var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\n var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\n var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\n var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\n var width = rect.width + leftMargin + rightMargin;\n var height = rect.height + topMargin + bottomMargin;\n canvas.width = width * dpr;\n canvas.height = height * dpr;\n ctx.scale(dpr, dpr);\n ctx.clearRect(0, 0, width, height);\n ctx.dpr = dpr;\n var pathTransform = {\n x: path.x,\n y: path.y,\n scaleX: path.scaleX,\n scaleY: path.scaleY,\n rotation: path.rotation,\n originX: path.originX,\n originY: path.originY\n };\n path.x = leftMargin - rect.x;\n path.y = topMargin - rect.y;\n path.rotation = 0;\n path.scaleX = 1;\n path.scaleY = 1;\n path.updateTransform();\n if (path) {\n brush(ctx, path, {\n inHover: false,\n viewWidth: this._width,\n viewHeight: this._height\n }, true);\n }\n var imgShape = new ZRImage({\n style: {\n x: 0,\n y: 0,\n image: canvas\n }\n });\n util.extend(path, pathTransform);\n return imgShape;\n };\n return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CanvasPainter from 'zrender/lib/canvas/Painter';\nexport function install(registers) {\n registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar LineSeriesModel = function (_super) {\n __extends(LineSeriesModel, _super);\n\n function LineSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = LineSeriesModel.type;\n _this.hasSymbolVisual = true;\n _this.legendSymbol = 'line';\n return _this;\n }\n\n LineSeriesModel.prototype.getInitialData = function (option) {\n if (process.env.NODE_ENV !== 'production') {\n var coordSys = option.coordinateSystem;\n\n if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n throw new Error('Line not support coordinateSystem besides cartesian and polar');\n }\n }\n\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true\n });\n };\n\n LineSeriesModel.type = 'series.line';\n LineSeriesModel.dependencies = ['grid', 'polar'];\n LineSeriesModel.defaultOption = {\n zlevel: 0,\n z: 3,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n clip: true,\n label: {\n position: 'top'\n },\n endLabel: {\n show: false,\n valueAnimation: true,\n distance: 8\n },\n lineStyle: {\n width: 2,\n type: 'solid'\n },\n emphasis: {\n scale: true,\n lineStyle: {\n width: 'bolder'\n }\n },\n step: false,\n smooth: false,\n smoothMonotone: null,\n symbol: 'emptyCircle',\n symbolSize: 4,\n symbolRotate: null,\n showSymbol: true,\n showAllSymbol: 'auto',\n connectNulls: false,\n sampling: 'none',\n animationEasing: 'linear',\n progressive: 0,\n hoverLayerThreshold: Infinity\n };\n return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isArray } from 'zrender/lib/core/util';\nexport function getDefaultLabel(data, dataIndex) {\n var labelDims = data.mapDimensionsAll('defaultedLabel');\n var len = labelDims.length;\n\n if (len === 1) {\n var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n return rawVal != null ? rawVal + '' : null;\n } else if (len) {\n var vals = [];\n\n for (var i = 0; i < labelDims.length; i++) {\n vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n }\n\n return vals.join(' ');\n }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n if (!isArray(interpolatedValue)) {\n return interpolatedValue + '';\n }\n\n var vals = [];\n\n for (var i = 0; i < labelDims.length; i++) {\n var dimInfo = data.getDimensionInfo(labelDims[i]);\n\n if (dimInfo) {\n vals.push(interpolatedValue[dimInfo.index]);\n }\n }\n\n return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport { getDefaultLabel } from './labelHelper';\nimport { extend } from 'zrender/lib/core/util';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nvar Symbol = function (_super) {\n __extends(Symbol, _super);\n\n function Symbol(data, idx, seriesScope, opts) {\n var _this = _super.call(this) || this;\n\n _this.updateData(data, idx, seriesScope, opts);\n\n return _this;\n }\n\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n this.removeAll();\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n symbolPath.attr({\n z2: 100,\n culling: true,\n scaleX: symbolSize[0] / 2,\n scaleY: symbolSize[1] / 2\n });\n symbolPath.drift = driftSymbol;\n this._symbolType = symbolType;\n this.add(symbolPath);\n };\n\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n this.childAt(0).stopAnimation(null, toLastFrame);\n };\n\n Symbol.prototype.getSymbolPath = function () {\n return this.childAt(0);\n };\n\n Symbol.prototype.highlight = function () {\n enterEmphasis(this.childAt(0));\n };\n\n Symbol.prototype.downplay = function () {\n leaveEmphasis(this.childAt(0));\n };\n\n Symbol.prototype.setZ = function (zlevel, z) {\n var symbolPath = this.childAt(0);\n symbolPath.zlevel = zlevel;\n symbolPath.z = z;\n };\n\n Symbol.prototype.setDraggable = function (draggable) {\n var symbolPath = this.childAt(0);\n symbolPath.draggable = draggable;\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n };\n\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n this.silent = false;\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n var seriesModel = data.hostModel;\n var symbolSize = Symbol.getSymbolSize(data, idx);\n var isInit = symbolType !== this._symbolType;\n var disableAnimation = opts && opts.disableAnimation;\n\n if (isInit) {\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n } else {\n var symbolPath = this.childAt(0);\n symbolPath.silent = false;\n var target = {\n scaleX: symbolSize[0] / 2,\n scaleY: symbolSize[1] / 2\n };\n disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n }\n\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n if (isInit) {\n var symbolPath = this.childAt(0);\n\n if (!disableAnimation) {\n var target = {\n scaleX: this._sizeX,\n scaleY: this._sizeY,\n style: {\n opacity: symbolPath.style.opacity\n }\n };\n symbolPath.scaleX = symbolPath.scaleY = 0;\n symbolPath.style.opacity = 0;\n graphic.initProps(symbolPath, target, seriesModel, idx);\n }\n }\n\n if (disableAnimation) {\n this.childAt(0).stopAnimation('remove');\n }\n\n this._seriesModel = seriesModel;\n };\n\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n var symbolPath = this.childAt(0);\n var seriesModel = data.hostModel;\n var emphasisItemStyle;\n var blurItemStyle;\n var selectItemStyle;\n var focus;\n var blurScope;\n var symbolOffset;\n var labelStatesModels;\n var hoverScale;\n var cursorStyle;\n\n if (seriesScope) {\n emphasisItemStyle = seriesScope.emphasisItemStyle;\n blurItemStyle = seriesScope.blurItemStyle;\n selectItemStyle = seriesScope.selectItemStyle;\n focus = seriesScope.focus;\n blurScope = seriesScope.blurScope;\n symbolOffset = seriesScope.symbolOffset;\n labelStatesModels = seriesScope.labelStatesModels;\n hoverScale = seriesScope.hoverScale;\n cursorStyle = seriesScope.cursorStyle;\n }\n\n if (!seriesScope || data.hasItemOption) {\n var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n focus = emphasisModel.get('focus');\n blurScope = emphasisModel.get('blurScope');\n symbolOffset = itemModel.getShallow('symbolOffset');\n labelStatesModels = getLabelStatesModels(itemModel);\n hoverScale = emphasisModel.getShallow('scale');\n cursorStyle = itemModel.getShallow('cursor');\n }\n\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n if (symbolOffset) {\n symbolPath.x = parsePercent(symbolOffset[0], symbolSize[0]);\n symbolPath.y = parsePercent(symbolOffset[1], symbolSize[1]);\n }\n\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\n var symbolStyle = data.getItemVisual(idx, 'style');\n var visualColor = symbolStyle.fill;\n\n if (symbolPath instanceof ZRImage) {\n var pathStyle = symbolPath.style;\n symbolPath.useStyle(extend({\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, symbolStyle));\n } else {\n if (symbolPath.__isEmptyBrush) {\n symbolPath.useStyle(extend({}, symbolStyle));\n } else {\n symbolPath.useStyle(symbolStyle);\n }\n\n symbolPath.style.decal = null;\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n symbolPath.style.strokeNoScale = true;\n }\n\n var liftZ = data.getItemVisual(idx, 'liftZ');\n var z2Origin = this._z2;\n\n if (liftZ != null) {\n if (z2Origin == null) {\n this._z2 = symbolPath.z2;\n symbolPath.z2 += liftZ;\n }\n } else if (z2Origin != null) {\n symbolPath.z2 = z2Origin;\n this._z2 = null;\n }\n\n var useNameLabel = opts && opts.useNameLabel;\n setLabelStyle(symbolPath, labelStatesModels, {\n labelFetcher: seriesModel,\n labelDataIndex: idx,\n defaultText: getLabelDefaultText,\n inheritColor: visualColor,\n defaultOpacity: symbolStyle.opacity\n });\n\n function getLabelDefaultText(idx) {\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n }\n\n this._sizeX = symbolSize[0] / 2;\n this._sizeY = symbolSize[1] / 2;\n var emphasisState = symbolPath.ensureState('emphasis');\n emphasisState.style = emphasisItemStyle;\n symbolPath.ensureState('select').style = selectItemStyle;\n symbolPath.ensureState('blur').style = blurItemStyle;\n\n if (hoverScale) {\n var scaleRatio = Math.max(1.1, 3 / this._sizeY);\n emphasisState.scaleX = this._sizeX * scaleRatio;\n emphasisState.scaleY = this._sizeY * scaleRatio;\n }\n\n this.setSymbolScale(1);\n enableHoverEmphasis(this, focus, blurScope);\n };\n\n Symbol.prototype.setSymbolScale = function (scale) {\n this.scaleX = this.scaleY = scale;\n };\n\n Symbol.prototype.fadeOut = function (cb, opt) {\n var symbolPath = this.childAt(0);\n var seriesModel = this._seriesModel;\n var dataIndex = getECData(this).dataIndex;\n var animationOpt = opt && opt.animation;\n this.silent = symbolPath.silent = true;\n\n if (opt && opt.fadeLabel) {\n var textContent = symbolPath.getTextContent();\n\n if (textContent) {\n graphic.removeElement(textContent, {\n style: {\n opacity: 0\n }\n }, seriesModel, {\n dataIndex: dataIndex,\n removeOpt: animationOpt,\n cb: function () {\n symbolPath.removeTextContent();\n }\n });\n }\n } else {\n symbolPath.removeTextContent();\n }\n\n graphic.removeElement(symbolPath, {\n style: {\n opacity: 0\n },\n scaleX: 0,\n scaleY: 0\n }, seriesModel, {\n dataIndex: dataIndex,\n cb: cb,\n removeOpt: animationOpt\n });\n };\n\n Symbol.getSymbolSize = function (data, idx) {\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\n return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n };\n\n return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport SymbolClz from './Symbol';\nimport { isObject } from 'zrender/lib/core/util';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n if (opt != null && !isObject(opt)) {\n opt = {\n isIgnore: opt\n };\n }\n\n return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n var seriesModel = data.hostModel;\n var emphasisModel = seriesModel.getModel('emphasis');\n return {\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n focus: emphasisModel.get('focus'),\n blurScope: emphasisModel.get('blurScope'),\n symbolRotate: seriesModel.get('symbolRotate'),\n symbolOffset: seriesModel.get('symbolOffset'),\n hoverScale: emphasisModel.get('scale'),\n labelStatesModels: getLabelStatesModels(seriesModel),\n cursorStyle: seriesModel.get('cursor')\n };\n}\n\nvar SymbolDraw = function () {\n function SymbolDraw(SymbolCtor) {\n this.group = new graphic.Group();\n this._SymbolCtor = SymbolCtor || SymbolClz;\n }\n\n SymbolDraw.prototype.updateData = function (data, opt) {\n opt = normalizeUpdateOpt(opt);\n var group = this.group;\n var seriesModel = data.hostModel;\n var oldData = this._data;\n var SymbolCtor = this._SymbolCtor;\n var disableAnimation = opt.disableAnimation;\n var seriesScope = makeSeriesScope(data);\n var symbolUpdateOpt = {\n disableAnimation: disableAnimation\n };\n\n var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n return data.getItemLayout(idx);\n };\n\n if (!oldData) {\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n var point = getSymbolPoint(newIdx);\n\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n symbolEl.setPosition(point);\n data.setItemGraphicEl(newIdx, symbolEl);\n group.add(symbolEl);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\n var point = getSymbolPoint(newIdx);\n\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n group.remove(symbolEl);\n return;\n }\n\n if (!symbolEl) {\n symbolEl = new SymbolCtor(data, newIdx);\n symbolEl.setPosition(point);\n } else {\n symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n var target = {\n x: point[0],\n y: point[1]\n };\n disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n }\n\n group.add(symbolEl);\n data.setItemGraphicEl(newIdx, symbolEl);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && el.fadeOut(function () {\n group.remove(el);\n });\n }).execute();\n this._getSymbolPoint = getSymbolPoint;\n this._data = data;\n };\n\n ;\n\n SymbolDraw.prototype.isPersistent = function () {\n return true;\n };\n\n ;\n\n SymbolDraw.prototype.updateLayout = function () {\n var _this = this;\n\n var data = this._data;\n\n if (data) {\n data.eachItemGraphicEl(function (el, idx) {\n var point = _this._getSymbolPoint(idx);\n\n el.setPosition(point);\n el.markRedraw();\n });\n }\n };\n\n ;\n\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n this._seriesScope = makeSeriesScope(data);\n this._data = null;\n this.group.removeAll();\n };\n\n ;\n\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n opt = normalizeUpdateOpt(opt);\n\n function updateIncrementalAndHover(el) {\n if (!el.isGroup) {\n el.incremental = true;\n el.ensureState('emphasis').hoverLayer = true;\n }\n }\n\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n var point = data.getItemLayout(idx);\n\n if (symbolNeedsDraw(data, point, idx, opt)) {\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\n el.traverse(updateIncrementalAndHover);\n el.setPosition(point);\n this.group.add(el);\n data.setItemGraphicEl(idx, el);\n }\n }\n };\n\n ;\n\n SymbolDraw.prototype.remove = function (enableAnimation) {\n var group = this.group;\n var data = this._data;\n\n if (data && enableAnimation) {\n data.eachItemGraphicEl(function (el) {\n el.fadeOut(function () {\n group.remove(el);\n });\n });\n } else {\n group.removeAll();\n }\n };\n\n ;\n return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { map } from 'zrender/lib/core/util';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var valueStart = getValueStart(valueAxis, valueOrigin);\n var baseAxisDim = baseAxis.dim;\n var valueAxisDim = valueAxis.dim;\n var valueDim = data.mapDimension(valueAxisDim);\n var baseDim = data.mapDimension(baseAxisDim);\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n var dims = map(coordSys.dimensions, function (coordDim) {\n return data.mapDimension(coordDim);\n });\n var stacked = false;\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n if (isDimensionStacked(data, dims[0])) {\n stacked = true;\n dims[0] = stackResultDim;\n }\n\n if (isDimensionStacked(data, dims[1])) {\n stacked = true;\n dims[1] = stackResultDim;\n }\n\n return {\n dataDimsForPoint: dims,\n valueStart: valueStart,\n valueAxisDim: valueAxisDim,\n baseAxisDim: baseAxisDim,\n stacked: !!stacked,\n valueDim: valueDim,\n baseDim: baseDim,\n baseDataOffset: baseDataOffset,\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n var valueStart = 0;\n var extent = valueAxis.scale.getExtent();\n\n if (valueOrigin === 'start') {\n valueStart = extent[0];\n } else if (valueOrigin === 'end') {\n valueStart = extent[1];\n } else {\n if (extent[0] > 0) {\n valueStart = extent[0];\n } else if (extent[1] < 0) {\n valueStart = extent[1];\n }\n }\n\n return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n var value = NaN;\n\n if (dataCoordInfo.stacked) {\n value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n }\n\n if (isNaN(value)) {\n value = dataCoordInfo.valueStart;\n }\n\n var baseDataOffset = dataCoordInfo.baseDataOffset;\n var stackedData = [];\n stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n stackedData[1 - baseDataOffset] = value;\n return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nvar supportFloat32Array = typeof Float32Array !== 'undefined';\nvar Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\nexport function createFloat32Array(arg) {\n if (isArray(arg)) {\n return supportFloat32Array ? new Float32Array(arg) : arg;\n }\n\n return new Float32ArrayCtor(arg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction diffData(oldData, newData) {\n var diffResult = [];\n newData.diff(oldData).add(function (idx) {\n diffResult.push({\n cmd: '+',\n idx: idx\n });\n }).update(function (newIdx, oldIdx) {\n diffResult.push({\n cmd: '=',\n idx: oldIdx,\n idx1: newIdx\n });\n }).remove(function (idx) {\n diffResult.push({\n cmd: '-',\n idx: idx\n });\n }).execute();\n return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n var diff = diffData(oldData, newData);\n var currPoints = [];\n var nextPoints = [];\n var currStackedPoints = [];\n var nextStackedPoints = [];\n var status = [];\n var sortedIndices = [];\n var rawIndices = [];\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n var oldPoints = oldData.getLayout('points') || [];\n var newPoints = newData.getLayout('points') || [];\n\n for (var i = 0; i < diff.length; i++) {\n var diffItem = diff[i];\n var pointAdded = true;\n var oldIdx2 = void 0;\n var newIdx2 = void 0;\n\n switch (diffItem.cmd) {\n case '=':\n oldIdx2 = diffItem.idx * 2;\n newIdx2 = diffItem.idx1 * 2;\n var currentX = oldPoints[oldIdx2];\n var currentY = oldPoints[oldIdx2 + 1];\n var nextX = newPoints[newIdx2];\n var nextY = newPoints[newIdx2 + 1];\n\n if (isNaN(currentX) || isNaN(currentY)) {\n currentX = nextX;\n currentY = nextY;\n }\n\n currPoints.push(currentX, currentY);\n nextPoints.push(nextX, nextY);\n currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\n break;\n\n case '+':\n var newIdx = diffItem.idx;\n var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n newIdx2 = newIdx * 2;\n currPoints.push(oldPt[0], oldPt[1]);\n nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n rawIndices.push(newData.getRawIndex(newIdx));\n break;\n\n case '-':\n var oldIdx = diffItem.idx;\n var rawIndex = oldData.getRawIndex(oldIdx);\n var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\n oldIdx2 = oldIdx * 2;\n\n if (rawIndex !== oldIdx) {\n var newPt = newCoordSys.dataToPoint([oldData.get(oldDataDimsForPoint[0], oldIdx), oldData.get(oldDataDimsForPoint[1], oldIdx)]);\n var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\n currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\n nextPoints.push(newPt[0], newPt[1]);\n currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\n rawIndices.push(rawIndex);\n } else {\n pointAdded = false;\n }\n\n }\n\n if (pointAdded) {\n status.push(diffItem);\n sortedIndices.push(sortedIndices.length);\n }\n }\n\n sortedIndices.sort(function (a, b) {\n return rawIndices[a] - rawIndices[b];\n });\n var len = currPoints.length;\n var sortedCurrPoints = createFloat32Array(len);\n var sortedNextPoints = createFloat32Array(len);\n var sortedCurrStackedPoints = createFloat32Array(len);\n var sortedNextStackedPoints = createFloat32Array(len);\n var sortedStatus = [];\n\n for (var i = 0; i < sortedIndices.length; i++) {\n var idx = sortedIndices[i];\n var i2 = i * 2;\n var idx2 = idx * 2;\n sortedCurrPoints[i2] = currPoints[idx2];\n sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n sortedNextPoints[i2] = nextPoints[idx2];\n sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n sortedStatus[i] = status[idx];\n }\n\n return {\n current: sortedCurrPoints,\n next: sortedNextPoints,\n stackedOnCurrent: sortedCurrStackedPoints,\n stackedOnNext: sortedNextStackedPoints,\n status: sortedStatus\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n return isNaN(x) || isNaN(y);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n var prevX;\n var prevY;\n var cpx0;\n var cpy0;\n var cpx1;\n var cpy1;\n var idx = start;\n var k = 0;\n\n for (; k < segLen; k++) {\n var x = points[idx * 2];\n var y = points[idx * 2 + 1];\n\n if (idx >= allLen || idx < 0) {\n break;\n }\n\n if (isPointNull(x, y)) {\n if (connectNulls) {\n idx += dir;\n continue;\n }\n\n break;\n }\n\n if (idx === start) {\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n cpx0 = x;\n cpy0 = y;\n } else {\n var dx = x - prevX;\n var dy = y - prevY;\n\n if (dx * dx + dy * dy < 0.5) {\n idx += dir;\n continue;\n }\n\n if (smooth > 0) {\n var nextIdx = idx + dir;\n var nextX = points[nextIdx * 2];\n var nextY = points[nextIdx * 2 + 1];\n var tmpK = k + 1;\n\n if (connectNulls) {\n while (isPointNull(nextX, nextY) && tmpK < segLen) {\n tmpK++;\n nextIdx += dir;\n nextX = points[nextIdx * 2];\n nextY = points[nextIdx * 2 + 1];\n }\n }\n\n var ratioNextSeg = 0.5;\n var vx = 0;\n var vy = 0;\n var nextCpx0 = void 0;\n var nextCpy0 = void 0;\n\n if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n cpx1 = x;\n cpy1 = y;\n } else {\n vx = nextX - prevX;\n vy = nextY - prevY;\n var dx0 = x - prevX;\n var dx1 = nextX - x;\n var dy0 = y - prevY;\n var dy1 = nextY - y;\n var lenPrevSeg = void 0;\n var lenNextSeg = void 0;\n\n if (smoothMonotone === 'x') {\n lenPrevSeg = Math.abs(dx0);\n lenNextSeg = Math.abs(dx1);\n cpx1 = x - lenPrevSeg * smooth;\n cpy1 = y;\n nextCpx0 = x + lenPrevSeg * smooth;\n nextCpy0 = y;\n } else if (smoothMonotone === 'y') {\n lenPrevSeg = Math.abs(dy0);\n lenNextSeg = Math.abs(dy1);\n cpx1 = x;\n cpy1 = y - lenPrevSeg * smooth;\n nextCpx0 = x;\n nextCpy0 = y + lenPrevSeg * smooth;\n } else {\n lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n cpy1 = y - vy * smooth * (1 - ratioNextSeg);\n nextCpx0 = x + vx * smooth * ratioNextSeg;\n nextCpy0 = y + vy * smooth * ratioNextSeg;\n nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y));\n vx = nextCpx0 - x;\n vy = nextCpy0 - y;\n cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n cpy1 = y - vy * lenPrevSeg / lenNextSeg;\n cpx1 = mathMin(cpx1, mathMax(prevX, x));\n cpy1 = mathMin(cpy1, mathMax(prevY, y));\n cpx1 = mathMax(cpx1, mathMin(prevX, x));\n cpy1 = mathMax(cpy1, mathMin(prevY, y));\n vx = x - cpx1;\n vy = y - cpy1;\n nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n }\n }\n\n ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n cpx0 = nextCpx0;\n cpy0 = nextCpy0;\n } else {\n ctx.lineTo(x, y);\n }\n }\n\n prevX = x;\n prevY = y;\n idx += dir;\n }\n\n return k;\n}\n\nvar ECPolylineShape = function () {\n function ECPolylineShape() {\n this.smooth = 0;\n this.smoothConstraint = true;\n }\n\n return ECPolylineShape;\n}();\n\nvar ECPolyline = function (_super) {\n __extends(ECPolyline, _super);\n\n function ECPolyline(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'ec-polyline';\n return _this;\n }\n\n ECPolyline.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n\n ECPolyline.prototype.getDefaultShape = function () {\n return new ECPolylineShape();\n };\n\n ECPolyline.prototype.buildPath = function (ctx, shape) {\n var points = shape.points;\n var i = 0;\n var len = points.length / 2;\n\n if (shape.connectNulls) {\n for (; len > 0; len--) {\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n break;\n }\n }\n\n for (; i < len; i++) {\n if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n break;\n }\n }\n }\n\n while (i < len) {\n i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n }\n };\n\n ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n if (!this.path) {\n this.createPathProxy();\n this.buildPath(this.path, this.shape);\n }\n\n var path = this.path;\n var data = path.data;\n var CMD = PathProxy.CMD;\n var x0;\n var y0;\n var isDimX = dim === 'x';\n var roots = [];\n\n for (var i = 0; i < data.length;) {\n var cmd = data[i++];\n var x = void 0;\n var y = void 0;\n var x2 = void 0;\n var y2 = void 0;\n var x3 = void 0;\n var y3 = void 0;\n var t = void 0;\n\n switch (cmd) {\n case CMD.M:\n x0 = data[i++];\n y0 = data[i++];\n break;\n\n case CMD.L:\n x = data[i++];\n y = data[i++];\n t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n if (t <= 1 && t >= 0) {\n var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n return isDimX ? [xOrY, val] : [val, xOrY];\n }\n\n x0 = x;\n y0 = y;\n break;\n\n case CMD.C:\n x = data[i++];\n y = data[i++];\n x2 = data[i++];\n y2 = data[i++];\n x3 = data[i++];\n y3 = data[i++];\n var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n if (nRoot > 0) {\n for (var i_1 = 0; i_1 < nRoot; i_1++) {\n var t_1 = roots[i_1];\n\n if (t_1 <= 1 && t_1 >= 0) {\n var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n return isDimX ? [xOrY, val] : [val, xOrY];\n }\n }\n }\n\n x0 = x3;\n y0 = y3;\n break;\n }\n }\n };\n\n return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape = function (_super) {\n __extends(ECPolygonShape, _super);\n\n function ECPolygonShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon = function (_super) {\n __extends(ECPolygon, _super);\n\n function ECPolygon(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'ec-polygon';\n return _this;\n }\n\n ECPolygon.prototype.getDefaultShape = function () {\n return new ECPolygonShape();\n };\n\n ECPolygon.prototype.buildPath = function (ctx, shape) {\n var points = shape.points;\n var stackedOnPoints = shape.stackedOnPoints;\n var i = 0;\n var len = points.length / 2;\n var smoothMonotone = shape.smoothMonotone;\n\n if (shape.connectNulls) {\n for (; len > 0; len--) {\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n break;\n }\n }\n\n for (; i < len; i++) {\n if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n break;\n }\n }\n }\n\n while (i < len) {\n var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n i += k + 1;\n ctx.closePath();\n }\n };\n\n return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { round } from '../../util/number';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n var rect = cartesian.getArea();\n var x = rect.x;\n var y = rect.y;\n var width = rect.width;\n var height = rect.height;\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\n x -= lineWidth / 2;\n y -= lineWidth / 2;\n width += lineWidth;\n height += lineWidth;\n x = Math.floor(x);\n width = Math.round(width);\n var clipPath = new graphic.Rect({\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n }\n });\n\n if (hasAnimation) {\n var baseAxis = cartesian.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var isAxisInversed = baseAxis.inverse;\n\n if (isHorizontal) {\n if (isAxisInversed) {\n clipPath.shape.x += width;\n }\n\n clipPath.shape.width = 0;\n } else {\n if (!isAxisInversed) {\n clipPath.shape.y += height;\n }\n\n clipPath.shape.height = 0;\n }\n\n var duringCb = typeof during === 'function' ? function (percent) {\n during(percent, clipPath);\n } : null;\n graphic.initProps(clipPath, {\n shape: {\n width: width,\n height: height,\n x: x,\n y: y\n }\n }, seriesModel, null, done, duringCb);\n }\n\n return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n var sectorArea = polar.getArea();\n var r0 = round(sectorArea.r0, 1);\n var r = round(sectorArea.r, 1);\n var clipPath = new graphic.Sector({\n shape: {\n cx: round(polar.cx, 1),\n cy: round(polar.cy, 1),\n r0: r0,\n r: r,\n startAngle: sectorArea.startAngle,\n endAngle: sectorArea.endAngle,\n clockwise: sectorArea.clockwise\n }\n });\n\n if (hasAnimation) {\n var isRadial = polar.getBaseAxis().dim === 'angle';\n\n if (isRadial) {\n clipPath.shape.endAngle = sectorArea.startAngle;\n } else {\n clipPath.shape.r = r0;\n }\n\n graphic.initProps(clipPath, {\n shape: {\n endAngle: sectorArea.endAngle,\n r: r\n }\n }, seriesModel);\n }\n\n return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n if (!coordSys) {\n return null;\n } else if (coordSys.type === 'polar') {\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n } else if (coordSys.type === 'cartesian2d') {\n return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n }\n\n return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function isCoordinateSystemType(coordSys, type) {\n return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport SymbolClz from '../helper/Symbol';\nimport lineAnimationDiff from './lineAnimationDiff';\nimport * as graphic from '../../util/graphic';\nimport * as modelUtil from '../../util/model';\nimport { ECPolyline, ECPolygon } from './poly';\nimport ChartView from '../../view/Chart';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setStatesStylesFromModel, setStatesFlag, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction isPointsSame(points1, points2) {\n if (points1.length !== points2.length) {\n return;\n }\n\n for (var i = 0; i < points1.length; i++) {\n if (points1[i] !== points2[i]) {\n return;\n }\n }\n\n return true;\n}\n\nfunction bboxFromPoints(points) {\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n\n for (var i = 0; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n\n if (!isNaN(x)) {\n minX = Math.min(x, minX);\n maxX = Math.max(x, maxX);\n }\n\n if (!isNaN(y)) {\n minY = Math.min(y, minY);\n maxY = Math.max(y, maxY);\n }\n }\n\n return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n var _a = bboxFromPoints(points1),\n min1 = _a[0],\n max1 = _a[1];\n\n var _b = bboxFromPoints(points2),\n min2 = _b[0],\n max2 = _b[1];\n\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n if (!dataCoordInfo.valueDim) {\n return [];\n }\n\n var len = data.count();\n var points = createFloat32Array(len * 2);\n\n for (var idx = 0; idx < len; idx++) {\n var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n points[idx * 2] = pt[0];\n points[idx * 2 + 1] = pt[1];\n }\n\n return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n var baseAxis = coordSys.getBaseAxis();\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n var stepPoints = [];\n var i = 0;\n var stepPt = [];\n var pt = [];\n var nextPt = [];\n\n for (; i < points.length - 2; i += 2) {\n nextPt[0] = points[i + 2];\n nextPt[1] = points[i + 3];\n pt[0] = points[i];\n pt[1] = points[i + 1];\n stepPoints.push(pt[0], pt[1]);\n\n switch (stepTurnAt) {\n case 'end':\n stepPt[baseIndex] = nextPt[baseIndex];\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\n stepPoints.push(stepPt[0], stepPt[1]);\n break;\n\n case 'middle':\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n var stepPt2 = [];\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n stepPoints.push(stepPt[0], stepPt[1]);\n stepPoints.push(stepPt2[0], stepPt2[1]);\n break;\n\n default:\n stepPt[baseIndex] = pt[baseIndex];\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n stepPoints.push(stepPt[0], stepPt[1]);\n }\n }\n\n stepPoints.push(points[i++], points[i++]);\n return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n var visualMetaList = data.getVisual('visualMeta');\n\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\n return;\n }\n\n if (coordSys.type !== 'cartesian2d') {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Visual map on line style is only supported on cartesian2d.');\n }\n\n return;\n }\n\n var coordDim;\n var visualMeta;\n\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\n var dimIndex = visualMetaList[i].dimension;\n var dimName = data.dimensions[dimIndex];\n var dimInfo = data.getDimensionInfo(dimName);\n coordDim = dimInfo && dimInfo.coordDim;\n\n if (coordDim === 'x' || coordDim === 'y') {\n visualMeta = visualMetaList[i];\n break;\n }\n }\n\n if (!visualMeta) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Visual map on line style only support x or y dimension.');\n }\n\n return;\n }\n\n var axis = coordSys.getAxis(coordDim);\n var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n return {\n offset: 0,\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n color: stop.color\n };\n });\n var stopLen = colorStops.length;\n var outerColors = visualMeta.outerColors.slice();\n\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n colorStops.reverse();\n outerColors.reverse();\n }\n\n var tinyExtent = 10;\n var minCoord = colorStops[0].coord - tinyExtent;\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n var coordSpan = maxCoord - minCoord;\n\n if (coordSpan < 1e-3) {\n return 'transparent';\n }\n\n zrUtil.each(colorStops, function (stop) {\n stop.offset = (stop.coord - minCoord) / coordSpan;\n });\n colorStops.push({\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n color: outerColors[1] || 'transparent'\n });\n colorStops.unshift({\n offset: stopLen ? colorStops[0].offset : 0.5,\n color: outerColors[0] || 'transparent'\n });\n var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n gradient[coordDim] = minCoord;\n gradient[coordDim + '2'] = maxCoord;\n return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n var showAllSymbol = seriesModel.get('showAllSymbol');\n var isAuto = showAllSymbol === 'auto';\n\n if (showAllSymbol && !isAuto) {\n return;\n }\n\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n if (!categoryAxis) {\n return;\n }\n\n if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) {\n return;\n }\n\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\n var labelMap = {};\n zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n labelMap[ordinalNumber] = 1;\n });\n return function (dataIndex) {\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n var axisExtent = categoryAxis.getExtent();\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n isNaN(availSize) && (availSize = 0);\n var dataLen = data.count();\n var step = Math.max(1, Math.round(dataLen / 5));\n\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n if (SymbolClz.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isPointNull(x, y) {\n return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n var len = points.length / 2;\n\n for (; len > 0; len--) {\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n break;\n }\n }\n\n return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n var len = points.length / 2;\n var dimIdx = dim === 'x' ? 0 : 1;\n var a;\n var b;\n var prevIndex = 0;\n var nextIndex = -1;\n\n for (var i = 0; i < len; i++) {\n b = points[i * 2 + dimIdx];\n\n if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n continue;\n }\n\n if (i === 0) {\n a = b;\n continue;\n }\n\n if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n nextIndex = i;\n break;\n }\n\n prevIndex = i;\n a = b;\n }\n\n return {\n range: [prevIndex, nextIndex],\n t: (xOrY - a) / (b - a)\n };\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n var endLabelModel_1 = seriesModel.getModel('endLabel');\n var showEndLabel = endLabelModel_1.get('show');\n var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n var data_1 = seriesModel.getData();\n var labelAnimationRecord_1 = {\n lastFrameIndex: 0\n };\n var during = showEndLabel ? function (percent, clipRect) {\n lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n } : null;\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n var endLabel = lineView._endLabel;\n\n if (endLabel && hasAnimation) {\n if (labelAnimationRecord_1.originalX != null) {\n endLabel.attr({\n x: labelAnimationRecord_1.originalX,\n y: labelAnimationRecord_1.originalY\n });\n }\n }\n }, during);\n\n if (!seriesModel.get('clip', true)) {\n var rectShape = clipPath.shape;\n var expandSize = Math.max(rectShape.width, rectShape.height);\n\n if (isHorizontal) {\n rectShape.y -= expandSize;\n rectShape.height += expandSize * 2;\n } else {\n rectShape.x -= expandSize;\n rectShape.width += expandSize * 2;\n }\n }\n\n if (during) {\n during(1, clipPath);\n }\n\n return clipPath;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n if (seriesModel.get(['endLabel', 'show'])) {\n console.warn('endLabel is not supported for lines in polar systems.');\n }\n }\n\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n var baseAxis = coordSys.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var isBaseInversed = baseAxis.inverse;\n var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n return {\n normal: {\n align: endLabelModel.get('align') || align,\n verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n }\n };\n}\n\nvar LineView = function (_super) {\n __extends(LineView, _super);\n\n function LineView() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LineView.prototype.init = function () {\n var lineGroup = new graphic.Group();\n var symbolDraw = new SymbolDraw();\n this.group.add(symbolDraw.group);\n this._symbolDraw = symbolDraw;\n this._lineGroup = lineGroup;\n };\n\n LineView.prototype.render = function (seriesModel, ecModel, api) {\n var _this = this;\n\n var coordSys = seriesModel.coordinateSystem;\n var group = this.group;\n var data = seriesModel.getData();\n var lineStyleModel = seriesModel.getModel('lineStyle');\n var areaStyleModel = seriesModel.getModel('areaStyle');\n var points = data.getLayout('points') || [];\n var isCoordSysPolar = coordSys.type === 'polar';\n var prevCoordSys = this._coordSys;\n var symbolDraw = this._symbolDraw;\n var polyline = this._polyline;\n var polygon = this._polygon;\n var lineGroup = this._lineGroup;\n var hasAnimation = seriesModel.get('animation');\n var isAreaChart = !areaStyleModel.isEmpty();\n var valueOrigin = areaStyleModel.get('origin');\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n var showSymbol = seriesModel.get('showSymbol');\n var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys);\n var oldData = this._data;\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\n if (el.__temp) {\n group.remove(el);\n oldData.setItemGraphicEl(idx, null);\n }\n });\n\n if (!showSymbol) {\n symbolDraw.remove();\n }\n\n group.add(lineGroup);\n var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n var clipShapeForSymbol;\n\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n clipShapeForSymbol = coordSys.getArea();\n\n if (clipShapeForSymbol.width != null) {\n clipShapeForSymbol.x -= 0.1;\n clipShapeForSymbol.y -= 0.1;\n clipShapeForSymbol.width += 0.2;\n clipShapeForSymbol.height += 0.2;\n } else if (clipShapeForSymbol.r0) {\n clipShapeForSymbol.r0 -= 0.5;\n clipShapeForSymbol.r += 0.5;\n }\n }\n\n this._clipShapeForSymbol = clipShapeForSymbol;\n\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n showSymbol && symbolDraw.updateData(data, {\n isIgnore: isIgnoreFunc,\n clipShape: clipShapeForSymbol,\n disableAnimation: true,\n getSymbolPoint: function (idx) {\n return [points[idx * 2], points[idx * 2 + 1]];\n }\n });\n hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n if (step) {\n points = turnPointsIntoStep(points, coordSys, step);\n\n if (stackedOnPoints) {\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n }\n }\n\n polyline = this._newPolyline(points);\n\n if (isAreaChart) {\n polygon = this._newPolygon(points, stackedOnPoints);\n }\n\n if (!isCoordSysPolar) {\n this._initOrUpdateEndLabel(seriesModel, coordSys);\n }\n\n lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n } else {\n if (isAreaChart && !polygon) {\n polygon = this._newPolygon(points, stackedOnPoints);\n } else if (polygon && !isAreaChart) {\n lineGroup.remove(polygon);\n polygon = this._polygon = null;\n }\n\n if (!isCoordSysPolar) {\n this._initOrUpdateEndLabel(seriesModel, coordSys);\n }\n\n lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\n showSymbol && symbolDraw.updateData(data, {\n isIgnore: isIgnoreFunc,\n clipShape: clipShapeForSymbol,\n disableAnimation: true,\n getSymbolPoint: function (idx) {\n return [points[idx * 2], points[idx * 2 + 1]];\n }\n });\n\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n if (hasAnimation) {\n this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n } else {\n if (step) {\n points = turnPointsIntoStep(points, coordSys, step);\n\n if (stackedOnPoints) {\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n }\n }\n\n polyline.setShape({\n points: points\n });\n polygon && polygon.setShape({\n points: points,\n stackedOnPoints: stackedOnPoints\n });\n }\n }\n }\n\n var visualColor = getVisualGradient(data, coordSys) || data.getVisual('style')[data.getVisual('drawType')];\n var focus = seriesModel.get(['emphasis', 'focus']);\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n polyline.useStyle(zrUtil.defaults(lineStyleModel.getLineStyle(), {\n fill: 'none',\n stroke: visualColor,\n lineJoin: 'bevel'\n }));\n setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n var emphasisLineStyle = polyline.getState('emphasis').style;\n emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\n }\n\n getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n enableHoverEmphasis(polyline, focus, blurScope);\n var smooth = getSmooth(seriesModel.get('smooth'));\n var smoothMonotone = seriesModel.get('smoothMonotone');\n var connectNulls = seriesModel.get('connectNulls');\n polyline.setShape({\n smooth: smooth,\n smoothMonotone: smoothMonotone,\n connectNulls: connectNulls\n });\n\n if (polygon) {\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n var stackedOnSmooth = 0;\n polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n fill: visualColor,\n opacity: 0.7,\n lineJoin: 'bevel',\n decal: data.getVisual('style').decal\n }));\n\n if (stackedOnSeries) {\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n }\n\n polygon.setShape({\n smooth: smooth,\n stackedOnSmooth: stackedOnSmooth,\n smoothMonotone: smoothMonotone,\n connectNulls: connectNulls\n });\n setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\n getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n enableHoverEmphasis(polygon, focus, blurScope);\n }\n\n var changePolyState = function (toState) {\n _this._changePolyState(toState);\n };\n\n data.eachItemGraphicEl(function (el) {\n el && (el.onHoverStateChange = changePolyState);\n });\n this._polyline.onHoverStateChange = changePolyState;\n this._data = data;\n this._coordSys = coordSys;\n this._stackedOnPoints = stackedOnPoints;\n this._points = points;\n this._step = step;\n this._valueOrigin = valueOrigin;\n };\n\n LineView.prototype.dispose = function () {};\n\n LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n this._changePolyState('emphasis');\n\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n var points = data.getLayout('points');\n var symbol = data.getItemGraphicEl(dataIndex);\n\n if (!symbol) {\n var x = points[dataIndex * 2];\n var y = points[dataIndex * 2 + 1];\n\n if (isNaN(x) || isNaN(y)) {\n return;\n }\n\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n return;\n }\n\n symbol = new SymbolClz(data, dataIndex);\n symbol.x = x;\n symbol.y = y;\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n symbol.__temp = true;\n data.setItemGraphicEl(dataIndex, symbol);\n symbol.stopSymbolAnimation(true);\n this.group.add(symbol);\n }\n\n symbol.highlight();\n } else {\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n }\n };\n\n LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n this._changePolyState('normal');\n\n if (dataIndex != null && dataIndex >= 0) {\n var symbol = data.getItemGraphicEl(dataIndex);\n\n if (symbol) {\n if (symbol.__temp) {\n data.setItemGraphicEl(dataIndex, null);\n this.group.remove(symbol);\n } else {\n symbol.downplay();\n }\n }\n } else {\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n }\n };\n\n LineView.prototype._changePolyState = function (toState) {\n var polygon = this._polygon;\n setStatesFlag(this._polyline, toState);\n polygon && setStatesFlag(polygon, toState);\n };\n\n LineView.prototype._newPolyline = function (points) {\n var polyline = this._polyline;\n\n if (polyline) {\n this._lineGroup.remove(polyline);\n }\n\n polyline = new ECPolyline({\n shape: {\n points: points\n },\n segmentIgnoreThreshold: 2,\n z2: 10\n });\n\n this._lineGroup.add(polyline);\n\n this._polyline = polyline;\n return polyline;\n };\n\n LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n var polygon = this._polygon;\n\n if (polygon) {\n this._lineGroup.remove(polygon);\n }\n\n polygon = new ECPolygon({\n shape: {\n points: points,\n stackedOnPoints: stackedOnPoints\n },\n segmentIgnoreThreshold: 2\n });\n\n this._lineGroup.add(polygon);\n\n this._polygon = polygon;\n return polygon;\n };\n\n LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n var isHorizontalOrRadial;\n var isCoordSysPolar;\n var baseAxis = coordSys.getBaseAxis();\n var isAxisInverse = baseAxis.inverse;\n\n if (coordSys.type === 'cartesian2d') {\n isHorizontalOrRadial = baseAxis.isHorizontal();\n isCoordSysPolar = false;\n } else if (coordSys.type === 'polar') {\n isHorizontalOrRadial = baseAxis.dim === 'angle';\n isCoordSysPolar = true;\n }\n\n var seriesModel = data.hostModel;\n var seriesDuration = seriesModel.get('animationDuration');\n\n if (typeof seriesDuration === 'function') {\n seriesDuration = seriesDuration(null);\n }\n\n var seriesDalay = seriesModel.get('animationDelay') || 0;\n var seriesDalayValue = typeof seriesDalay === 'function' ? seriesDalay(null) : seriesDalay;\n data.eachItemGraphicEl(function (symbol, idx) {\n var el = symbol;\n\n if (el) {\n var point = [symbol.x, symbol.y];\n var start = void 0;\n var end = void 0;\n var current = void 0;\n\n if (isCoordSysPolar) {\n var polarClip = clipShape;\n var coord = coordSys.pointToCoord(point);\n\n if (isHorizontalOrRadial) {\n start = polarClip.startAngle;\n end = polarClip.endAngle;\n current = -coord[1] / 180 * Math.PI;\n } else {\n start = polarClip.r0;\n end = polarClip.r;\n current = coord[0];\n }\n } else {\n var gridClip = clipShape;\n\n if (isHorizontalOrRadial) {\n start = gridClip.x;\n end = gridClip.x + gridClip.width;\n current = symbol.x;\n } else {\n start = gridClip.y + gridClip.height;\n end = gridClip.y;\n current = symbol.y;\n }\n }\n\n var ratio = end === start ? 0 : (current - start) / (end - start);\n\n if (isAxisInverse) {\n ratio = 1 - ratio;\n }\n\n var delay = typeof seriesDalay === 'function' ? seriesDalay(idx) : seriesDuration * ratio + seriesDalayValue;\n var symbolPath = el.getSymbolPath();\n var text = symbolPath.getTextContent();\n el.attr({\n scaleX: 0,\n scaleY: 0\n });\n el.animateTo({\n scaleX: 1,\n scaleY: 1\n }, {\n duration: 200,\n delay: delay\n });\n\n if (text) {\n text.animateFrom({\n style: {\n opacity: 0\n }\n }, {\n duration: 300,\n delay: delay\n });\n }\n\n symbolPath.disableLabelAnimation = true;\n }\n });\n };\n\n LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\n var endLabelModel = seriesModel.getModel('endLabel');\n\n if (endLabelModel.get('show')) {\n var data_2 = seriesModel.getData();\n var polyline = this._polyline;\n var endLabel = this._endLabel;\n\n if (!endLabel) {\n endLabel = this._endLabel = new graphic.Text({\n z2: 200\n });\n endLabel.ignoreClip = true;\n polyline.setTextContent(this._endLabel);\n polyline.disableLabelAnimation = true;\n }\n\n var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\n\n if (dataIndex >= 0) {\n setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n labelFetcher: seriesModel,\n labelDataIndex: dataIndex,\n defaultText: function (dataIndex, opt, interpolatedValue) {\n return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n },\n enableTextSetter: true\n }, getEndLabelStateSpecified(endLabelModel, coordSys));\n polyline.textConfig.position = null;\n }\n } else if (this._endLabel) {\n this._polyline.removeTextContent();\n\n this._endLabel = null;\n }\n };\n\n LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n var endLabel = this._endLabel;\n var polyline = this._polyline;\n\n if (endLabel) {\n if (percent < 1 && animationRecord.originalX == null) {\n animationRecord.originalX = endLabel.x;\n animationRecord.originalY = endLabel.y;\n }\n\n var points = data.getLayout('points');\n var seriesModel = data.hostModel;\n var connectNulls = seriesModel.get('connectNulls');\n var precision = endLabelModel.get('precision');\n var distance = endLabelModel.get('distance') || 0;\n var baseAxis = coordSys.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var isBaseInversed = baseAxis.inverse;\n var clipShape = clipRect.shape;\n var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n var dim = isHorizontal ? 'x' : 'y';\n var dataIndexRange = getIndexRange(points, xOrY, dim);\n var indices = dataIndexRange.range;\n var diff = indices[1] - indices[0];\n var value = void 0;\n\n if (diff >= 1) {\n if (diff > 1 && !connectNulls) {\n var pt = getPointAtIndex(points, indices[0]);\n endLabel.attr({\n x: pt[0] + distanceX,\n y: pt[1] + distanceY\n });\n valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n } else {\n var pt = polyline.getPointOn(xOrY, dim);\n pt && endLabel.attr({\n x: pt[0] + distanceX,\n y: pt[1] + distanceY\n });\n var startValue = seriesModel.getRawValue(indices[0]);\n var endValue = seriesModel.getRawValue(indices[1]);\n valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n }\n\n animationRecord.lastFrameIndex = indices[0];\n } else {\n var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n var pt = getPointAtIndex(points, idx);\n valueAnimation && (value = seriesModel.getRawValue(idx));\n endLabel.attr({\n x: pt[0] + distanceX,\n y: pt[1] + distanceY\n });\n }\n\n if (valueAnimation) {\n labelInner(endLabel).setLabelText(value);\n }\n }\n };\n\n LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n var polyline = this._polyline;\n var polygon = this._polygon;\n var seriesModel = data.hostModel;\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n var current = diff.current;\n var stackedOnCurrent = diff.stackedOnCurrent;\n var next = diff.next;\n var stackedOnNext = diff.stackedOnNext;\n\n if (step) {\n current = turnPointsIntoStep(diff.current, coordSys, step);\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n next = turnPointsIntoStep(diff.next, coordSys, step);\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n }\n\n if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n polyline.setShape({\n points: next\n });\n\n if (polygon) {\n polygon.setShape({\n points: next,\n stackedOnPoints: stackedOnNext\n });\n }\n\n return;\n }\n\n polyline.shape.__points = diff.current;\n polyline.shape.points = current;\n var target = {\n shape: {\n points: next\n }\n };\n\n if (diff.current !== current) {\n target.shape.__points = diff.next;\n }\n\n polyline.stopAnimation();\n graphic.updateProps(polyline, target, seriesModel);\n\n if (polygon) {\n polygon.setShape({\n points: current,\n stackedOnPoints: stackedOnCurrent\n });\n polygon.stopAnimation();\n graphic.updateProps(polygon, {\n shape: {\n stackedOnPoints: stackedOnNext\n }\n }, seriesModel);\n\n if (polyline.shape.points !== polygon.shape.points) {\n polygon.shape.points = polyline.shape.points;\n }\n }\n\n var updatedDataInfo = [];\n var diffStatus = diff.status;\n\n for (var i = 0; i < diffStatus.length; i++) {\n var cmd = diffStatus[i].cmd;\n\n if (cmd === '=') {\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n if (el) {\n updatedDataInfo.push({\n el: el,\n ptIdx: i\n });\n }\n }\n }\n\n if (polyline.animators && polyline.animators.length) {\n polyline.animators[0].during(function () {\n polygon && polygon.dirtyShape();\n var points = polyline.shape.__points;\n\n for (var i = 0; i < updatedDataInfo.length; i++) {\n var el = updatedDataInfo[i].el;\n var offset = updatedDataInfo[i].ptIdx * 2;\n el.x = points[offset];\n el.y = points[offset + 1];\n el.markRedraw();\n }\n });\n }\n };\n\n LineView.prototype.remove = function (ecModel) {\n var group = this.group;\n var oldData = this._data;\n\n this._lineGroup.removeAll();\n\n this._symbolDraw.remove(true);\n\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\n if (el.__temp) {\n group.remove(el);\n oldData.setItemGraphicEl(idx, null);\n }\n });\n this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n };\n\n LineView.type = 'line';\n return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map } from 'zrender/lib/core/util';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport { createFloat32Array } from '../util/vendor';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n return {\n seriesType: seriesType,\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var data = seriesModel.getData();\n var coordSys = seriesModel.coordinateSystem;\n var pipelineContext = seriesModel.pipelineContext;\n var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n if (!coordSys) {\n return;\n }\n\n var dims = map(coordSys.dimensions, function (dim) {\n return data.mapDimension(dim);\n }).slice(0, 2);\n var dimLen = dims.length;\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n if (isDimensionStacked(data, dims[0])) {\n dims[0] = stackResultDim;\n }\n\n if (isDimensionStacked(data, dims[1])) {\n dims[1] = stackResultDim;\n }\n\n var dimInfo0 = data.getDimensionInfo(dims[0]);\n var dimInfo1 = data.getDimensionInfo(dims[1]);\n var dimIdx0 = dimInfo0 && dimInfo0.index;\n var dimIdx1 = dimInfo1 && dimInfo1.index;\n return dimLen && {\n progress: function (params, data) {\n var segCount = params.end - params.start;\n var points = useTypedArray && createFloat32Array(segCount * dimLen);\n var tmpIn = [];\n var tmpOut = [];\n\n for (var i = params.start, offset = 0; i < params.end; i++) {\n var point = void 0;\n\n if (dimLen === 1) {\n var x = data.getByDimIdx(dimIdx0, i);\n point = coordSys.dataToPoint(x, null, tmpOut);\n } else {\n tmpIn[0] = data.getByDimIdx(dimIdx0, i);\n tmpIn[1] = data.getByDimIdx(dimIdx1, i);\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n }\n\n if (useTypedArray) {\n points[offset++] = point[0];\n points[offset++] = point[1];\n } else {\n data.setItemLayout(i, point.slice());\n }\n }\n\n useTypedArray && data.setLayout('points', points);\n }\n };\n }\n };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar samplers = {\n average: function (frame) {\n var sum = 0;\n var count = 0;\n\n for (var i = 0; i < frame.length; i++) {\n if (!isNaN(frame[i])) {\n sum += frame[i];\n count++;\n }\n }\n\n return count === 0 ? NaN : sum / count;\n },\n sum: function (frame) {\n var sum = 0;\n\n for (var i = 0; i < frame.length; i++) {\n sum += frame[i] || 0;\n }\n\n return sum;\n },\n max: function (frame) {\n var max = -Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] > max && (max = frame[i]);\n }\n\n return isFinite(max) ? max : NaN;\n },\n min: function (frame) {\n var min = Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] < min && (min = frame[i]);\n }\n\n return isFinite(min) ? min : NaN;\n },\n nearest: function (frame) {\n return frame[0];\n }\n};\n\nvar indexSampler = function (frame) {\n return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var sampling = seriesModel.get('sampling');\n var coordSys = seriesModel.coordinateSystem;\n var count = data.count();\n\n if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var extent = baseAxis.getExtent();\n var dpr = api.getDevicePixelRatio();\n var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n var rate = Math.round(count / size);\n\n if (rate > 1) {\n if (sampling === 'lttb') {\n seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n }\n\n var sampler = void 0;\n\n if (typeof sampling === 'string') {\n sampler = samplers[sampling];\n } else if (typeof sampling === 'function') {\n sampler = sampling;\n }\n\n if (sampler) {\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n }\n }\n }\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LineSeries from './LineSeries';\nimport LineView from './LineView';\nimport layoutPoints from '../../layout/points';\nimport dataSample from '../../processor/dataSample';\nexport function install(registers) {\n registers.registerChartView(LineView);\n registers.registerSeriesModel(LineSeries);\n registers.registerLayout(layoutPoints('line', true));\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar BaseBarSeriesModel = function (_super) {\n __extends(BaseBarSeriesModel, _super);\n\n function BaseBarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BaseBarSeriesModel.type;\n return _this;\n }\n\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true\n });\n };\n\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n var coordSys = this.coordinateSystem;\n\n if (coordSys) {\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\n var data = this.getData();\n var offset = data.getLayout('offset');\n var size = data.getLayout('size');\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n pt[offsetIndex] += offset + size / 2;\n return pt;\n }\n\n return [NaN, NaN];\n };\n\n BaseBarSeriesModel.type = 'series.__base_bar__';\n BaseBarSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n barMinHeight: 0,\n barMinAngle: 0,\n large: false,\n largeThreshold: 400,\n progressive: 3e3,\n progressiveChunkMode: 'mod'\n };\n return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport createListFromArray from '../helper/createListFromArray';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar BarSeriesModel = function (_super) {\n __extends(BarSeriesModel, _super);\n\n function BarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BarSeriesModel.type;\n return _this;\n }\n\n BarSeriesModel.prototype.getInitialData = function () {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true,\n createInvertedIndices: !!this.get('realtimeSort', true) || null\n });\n };\n\n BarSeriesModel.prototype.getProgressive = function () {\n return this.get('large') ? this.get('progressive') : false;\n };\n\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\n var progressiveThreshold = this.get('progressiveThreshold');\n var largeThreshold = this.get('largeThreshold');\n\n if (largeThreshold > progressiveThreshold) {\n progressiveThreshold = largeThreshold;\n }\n\n return progressiveThreshold;\n };\n\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n return selectors.rect(data.getItemLayout(dataIndex));\n };\n\n BarSeriesModel.type = 'series.bar';\n BarSeriesModel.dependencies = ['grid', 'polar'];\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n clip: true,\n roundCap: false,\n showBackground: false,\n backgroundStyle: {\n color: 'rgba(180, 180, 180, 0.2)',\n borderColor: null,\n borderWidth: 0,\n borderType: 'solid',\n borderRadius: 0,\n shadowBlur: 0,\n shadowColor: null,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n opacity: 1\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n },\n realtimeSort: false\n });\n return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic';\n\nvar SausageShape = function () {\n function SausageShape() {\n this.cx = 0;\n this.cy = 0;\n this.r0 = 0;\n this.r = 0;\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.clockwise = true;\n }\n\n return SausageShape;\n}();\n\nvar SausagePath = function (_super) {\n __extends(SausagePath, _super);\n\n function SausagePath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'sausage';\n return _this;\n }\n\n SausagePath.prototype.getDefaultShape = function () {\n return new SausageShape();\n };\n\n SausagePath.prototype.buildPath = function (ctx, shape) {\n var x = shape.cx;\n var y = shape.cy;\n var r0 = Math.max(shape.r0 || 0, 0);\n var r = Math.max(shape.r, 0);\n var dr = (r - r0) * 0.5;\n var rCenter = r0 + dr;\n var startAngle = shape.startAngle;\n var endAngle = shape.endAngle;\n var clockwise = shape.clockwise;\n var unitStartX = Math.cos(startAngle);\n var unitStartY = Math.sin(startAngle);\n var unitEndX = Math.cos(endAngle);\n var unitEndY = Math.sin(endAngle);\n var lessThanCircle = clockwise ? endAngle - startAngle < Math.PI * 2 : startAngle - endAngle < Math.PI * 2;\n\n if (lessThanCircle) {\n ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\n ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\n }\n\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\n ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n if (r0 !== 0) {\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\n ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\n }\n\n ctx.closePath();\n };\n\n return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport Group from 'zrender/lib/graphic/Group';\nimport { extend, defaults, each, map } from 'zrender/lib/core/util';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut } from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation } from '../../label/labelStyle';\nimport { throttle } from '../../util/throttle';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport Sausage from '../../util/shape/sausage';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { warn } from '../../util/log';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\nvar _eventPos = [0, 0];\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n var coordSysClipArea = coord.getArea && coord.getArea();\n\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\n var baseAxis = coord.getBaseAxis();\n\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n var expandWidth = data.getLayout('bandWidth');\n\n if (baseAxis.isHorizontal()) {\n coordSysClipArea.x -= expandWidth;\n coordSysClipArea.width += expandWidth * 2;\n } else {\n coordSysClipArea.y -= expandWidth;\n coordSysClipArea.height += expandWidth * 2;\n }\n }\n }\n\n return coordSysClipArea;\n}\n\nvar BarView = function (_super) {\n __extends(BarView, _super);\n\n function BarView() {\n var _this = _super.call(this) || this;\n\n _this.type = BarView.type;\n _this._isFirstFrame = true;\n return _this;\n }\n\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n this._model = seriesModel;\n\n this._removeOnRenderedListener(api);\n\n this._updateDrawMode(seriesModel);\n\n var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n } else if (process.env.NODE_ENV !== 'production') {\n warn('Only cartesian2d and polar supported for bar.');\n }\n };\n\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n this._clear();\n\n this._updateDrawMode(seriesModel);\n\n this._updateLargeClip(seriesModel);\n };\n\n BarView.prototype.incrementalRender = function (params, seriesModel) {\n this._incrementalRenderLarge(params, seriesModel);\n };\n\n BarView.prototype._updateDrawMode = function (seriesModel) {\n var isLargeDraw = seriesModel.pipelineContext.large;\n\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n this._isLargeDraw = isLargeDraw;\n\n this._clear();\n }\n };\n\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n var coord = seriesModel.coordinateSystem;\n var baseAxis = coord.getBaseAxis();\n var isHorizontalOrRadial;\n\n if (coord.type === 'cartesian2d') {\n isHorizontalOrRadial = baseAxis.isHorizontal();\n } else if (coord.type === 'polar') {\n isHorizontalOrRadial = baseAxis.dim === 'angle';\n }\n\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n if (realtimeSortCfg) {\n this._enableRealtimeSort(realtimeSortCfg, data, api);\n }\n\n var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n var coordSysClipArea = getClipArea(coord, data);\n group.removeClipPath();\n var roundCap = seriesModel.get('roundCap', true);\n var drawBackground = seriesModel.get('showBackground', true);\n var backgroundModel = seriesModel.getModel('backgroundStyle');\n var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n var bgEls = [];\n var oldBgEls = this._backgroundEls;\n var isInitSort = payload && payload.isInitSort;\n var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n function createBackground(dataIndex) {\n var bgLayout = getLayout[coord.type](data, dataIndex);\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n bgEl.useStyle(backgroundModel.getItemStyle());\n\n if (coord.type === 'cartesian2d') {\n bgEl.setShape('r', barBorderRadius);\n }\n\n bgEls[dataIndex] = bgEl;\n return bgEl;\n }\n\n ;\n data.diff(oldData).add(function (dataIndex) {\n var itemModel = data.getItemModel(dataIndex);\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n if (drawBackground) {\n createBackground(dataIndex);\n }\n\n if (!data.hasValue(dataIndex)) {\n return;\n }\n\n var isClipped = false;\n\n if (needsClip) {\n isClipped = clip[coord.type](coordSysClipArea, layout);\n }\n\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n if (isInitSort) {\n el.attr({\n shape: layout\n });\n } else if (realtimeSortCfg) {\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n } else {\n initProps(el, {\n shape: layout\n }, seriesModel, dataIndex);\n }\n\n data.setItemGraphicEl(dataIndex, el);\n group.add(el);\n el.ignore = isClipped;\n }).update(function (newIndex, oldIndex) {\n var itemModel = data.getItemModel(newIndex);\n var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n if (drawBackground) {\n var bgEl = void 0;\n\n if (oldBgEls.length === 0) {\n bgEl = createBackground(oldIndex);\n } else {\n bgEl = oldBgEls[oldIndex];\n bgEl.useStyle(backgroundModel.getItemStyle());\n\n if (coord.type === 'cartesian2d') {\n bgEl.setShape('r', barBorderRadius);\n }\n\n bgEls[newIndex] = bgEl;\n }\n\n var bgLayout = getLayout[coord.type](data, newIndex);\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n updateProps(bgEl, {\n shape: shape\n }, animationModel, newIndex);\n }\n\n var el = oldData.getItemGraphicEl(oldIndex);\n\n if (!data.hasValue(newIndex)) {\n group.remove(el);\n el = null;\n return;\n }\n\n var isClipped = false;\n\n if (needsClip) {\n isClipped = clip[coord.type](coordSysClipArea, layout);\n\n if (isClipped) {\n group.remove(el);\n }\n }\n\n if (!el) {\n el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n }\n\n if (!isChangeOrder) {\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n }\n\n if (isInitSort) {\n el.attr({\n shape: layout\n });\n } else if (realtimeSortCfg) {\n updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n } else {\n updateProps(el, {\n shape: layout\n }, seriesModel, newIndex, null);\n }\n\n data.setItemGraphicEl(newIndex, el);\n el.ignore = isClipped;\n group.add(el);\n }).remove(function (dataIndex) {\n var el = oldData.getItemGraphicEl(dataIndex);\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n }).execute();\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n bgGroup.removeAll();\n\n for (var i = 0; i < bgEls.length; ++i) {\n bgGroup.add(bgEls[i]);\n }\n\n group.add(bgGroup);\n this._backgroundEls = bgEls;\n this._data = data;\n };\n\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n\n this._updateLargeClip(seriesModel);\n };\n\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n this._removeBackground();\n\n createLarge(seriesModel, this.group, true);\n };\n\n BarView.prototype._updateLargeClip = function (seriesModel) {\n var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n if (clipPath) {\n this.group.setClipPath(clipPath);\n } else {\n this.group.removeClipPath();\n }\n };\n\n BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n var _this = this;\n\n if (!data.count()) {\n return;\n }\n\n var baseAxis = realtimeSortCfg.baseAxis;\n\n if (this._isFirstFrame) {\n this._dispatchInitSort(data, realtimeSortCfg, api);\n\n this._isFirstFrame = false;\n } else {\n var orderMapping_1 = function (idx) {\n var el = data.getItemGraphicEl(idx);\n\n if (el) {\n var shape = el.shape;\n return (baseAxis.isHorizontal() ? Math.abs(shape.height) : Math.abs(shape.width)) || 0;\n } else {\n return 0;\n }\n };\n\n this._onRendered = function () {\n _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n };\n\n api.getZr().on('rendered', this._onRendered);\n }\n };\n\n BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n var info = [];\n data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n var mappedValue = orderMapping(dataIdx);\n mappedValue = mappedValue == null ? NaN : mappedValue;\n info.push({\n dataIndex: dataIdx,\n mappedValue: mappedValue,\n ordinalNumber: ordinalNumber\n });\n });\n info.sort(function (a, b) {\n return b.mappedValue - a.mappedValue;\n });\n return {\n ordinalNumbers: map(info, function (item) {\n return item.ordinalNumber;\n })\n };\n };\n\n BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n var scale = baseAxis.scale;\n var ordinalDataDim = data.mapDimension(baseAxis.dim);\n var lastValue = Number.MAX_VALUE;\n\n for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx));\n\n if (value > lastValue) {\n return true;\n }\n\n lastValue = value;\n }\n\n return false;\n };\n\n BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n var scale = baseAxis.scale;\n var extent = scale.getExtent();\n var tickNum = Math.max(0, extent[0]);\n var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n for (; tickNum <= tickMax; ++tickNum) {\n if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n return true;\n }\n }\n };\n\n BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n return;\n }\n\n var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n this._removeOnRenderedListener(api);\n\n api.dispatchAction({\n type: 'changeAxisOrder',\n componentType: baseAxis.dim + 'Axis',\n axisId: baseAxis.index,\n sortInfo: sortInfo\n });\n }\n };\n\n BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n var baseAxis = realtimeSortCfg.baseAxis;\n\n var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n });\n\n api.dispatchAction({\n type: 'changeAxisOrder',\n componentType: baseAxis.dim + 'Axis',\n isInitSort: true,\n axisId: baseAxis.index,\n sortInfo: sortResult,\n animation: {\n duration: 0\n }\n });\n };\n\n BarView.prototype.remove = function (ecModel, api) {\n this._clear(this._model);\n\n this._removeOnRenderedListener(api);\n };\n\n BarView.prototype.dispose = function (ecModel, api) {\n this._removeOnRenderedListener(api);\n };\n\n BarView.prototype._removeOnRenderedListener = function (api) {\n if (this._onRendered) {\n api.getZr().off('rendered', this._onRendered);\n this._onRendered = null;\n }\n };\n\n BarView.prototype._clear = function (model) {\n var group = this.group;\n var data = this._data;\n\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n this._removeBackground();\n\n this._backgroundEls = [];\n data.eachItemGraphicEl(function (el) {\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n });\n } else {\n group.removeAll();\n }\n\n this._data = null;\n this._isFirstFrame = true;\n };\n\n BarView.prototype._removeBackground = function () {\n this.group.remove(this._backgroundGroup);\n this._backgroundGroup = null;\n };\n\n BarView.type = 'bar';\n return BarView;\n}(ChartView);\n\nvar clip = {\n cartesian2d: function (coordSysBoundingRect, layout) {\n var signWidth = layout.width < 0 ? -1 : 1;\n var signHeight = layout.height < 0 ? -1 : 1;\n\n if (signWidth < 0) {\n layout.x += layout.width;\n layout.width = -layout.width;\n }\n\n if (signHeight < 0) {\n layout.y += layout.height;\n layout.height = -layout.height;\n }\n\n var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n var x = mathMax(layout.x, coordSysBoundingRect.x);\n var x2 = mathMin(layout.x + layout.width, coordSysX2);\n var y = mathMax(layout.y, coordSysBoundingRect.y);\n var y2 = mathMin(layout.y + layout.height, coordSysY2);\n var xClipped = x2 < x;\n var yClipped = y2 < y;\n layout.x = xClipped && x > coordSysX2 ? x2 : x;\n layout.y = yClipped && y > coordSysY2 ? y2 : y;\n layout.width = xClipped ? 0 : x2 - x;\n layout.height = yClipped ? 0 : y2 - y;\n\n if (signWidth < 0) {\n layout.x += layout.width;\n layout.width = -layout.width;\n }\n\n if (signHeight < 0) {\n layout.y += layout.height;\n layout.height = -layout.height;\n }\n\n return xClipped || yClipped;\n },\n polar: function (coordSysClipArea, layout) {\n var signR = layout.r0 <= layout.r ? 1 : -1;\n\n if (signR < 0) {\n var tmp = layout.r;\n layout.r = layout.r0;\n layout.r0 = tmp;\n }\n\n var r = mathMin(layout.r, coordSysClipArea.r);\n var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n layout.r = r;\n layout.r0 = r0;\n var clipped = r - r0 < 0;\n\n if (signR < 0) {\n var tmp = layout.r;\n layout.r = layout.r0;\n layout.r0 = tmp;\n }\n\n return clipped;\n }\n};\nvar elementCreator = {\n cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n var rect = new Rect({\n shape: extend({}, layout),\n z2: 1\n });\n rect.__dataIndex = newIndex;\n rect.name = 'item';\n\n if (animationModel) {\n var rectShape = rect.shape;\n var animateProperty = isHorizontal ? 'height' : 'width';\n rectShape[animateProperty] = 0;\n }\n\n return rect;\n },\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n var clockwise = layout.startAngle < layout.endAngle;\n var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n var sector = new ShapeClass({\n shape: defaults({\n clockwise: clockwise\n }, layout),\n z2: 1\n });\n sector.name = 'item';\n\n if (animationModel) {\n var sectorShape = sector.shape;\n var animateProperty = isRadial ? 'r' : 'endAngle';\n var animateTarget = {};\n sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n animateTarget[animateProperty] = layout[animateProperty];\n (isUpdate ? updateProps : initProps)(sector, {\n shape: animateTarget\n }, animationModel);\n }\n\n return sector;\n }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n var realtimeSortOption = seriesModel.get('realtimeSort', true);\n var baseAxis = coordSys.getBaseAxis();\n\n if (process.env.NODE_ENV !== 'production') {\n if (realtimeSortOption) {\n if (baseAxis.type !== 'category') {\n warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n }\n\n if (coordSys.type !== 'cartesian2d') {\n warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n }\n }\n }\n\n if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n return {\n baseAxis: baseAxis,\n otherAxis: coordSys.getOtherAxis(baseAxis)\n };\n }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n var seriesTarget;\n var axisTarget;\n\n if (isHorizontal) {\n axisTarget = {\n x: layout.x,\n width: layout.width\n };\n seriesTarget = {\n y: layout.y,\n height: layout.height\n };\n } else {\n axisTarget = {\n y: layout.y,\n height: layout.height\n };\n seriesTarget = {\n x: layout.x,\n width: layout.width\n };\n }\n\n if (!isChangeOrder) {\n (isUpdate ? updateProps : initProps)(el, {\n shape: seriesTarget\n }, seriesAnimationModel, newIndex, null);\n }\n\n var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n (isUpdate ? updateProps : initProps)(el, {\n shape: axisTarget\n }, axisAnimationModel, newIndex);\n}\n\nvar getLayout = {\n cartesian2d: function (data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\n var signX = layout.width > 0 ? 1 : -1;\n var signY = layout.height > 0 ? 1 : -1;\n return {\n x: layout.x + signX * fixedLineWidth / 2,\n y: layout.y + signY * fixedLineWidth / 2,\n width: layout.width - signX * fixedLineWidth,\n height: layout.height - signY * fixedLineWidth\n };\n },\n polar: function (data, dataIndex, itemModel) {\n var layout = data.getItemLayout(dataIndex);\n return {\n cx: layout.cx,\n cy: layout.cy,\n r0: layout.r0,\n r: layout.r,\n startAngle: layout.startAngle,\n endAngle: layout.endAngle\n };\n }\n};\n\nfunction isZeroOnPolar(layout) {\n return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n var style = data.getItemVisual(dataIndex, 'style');\n\n if (!isPolar) {\n el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\n }\n\n el.useStyle(style);\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && el.attr('cursor', cursorStyle);\n\n if (!isPolar) {\n var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n var labelStatesModels = getLabelStatesModels(itemModel);\n setLabelStyle(el, labelStatesModels, {\n labelFetcher: seriesModel,\n labelDataIndex: dataIndex,\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n inheritColor: style.fill,\n defaultOpacity: style.opacity,\n defaultOutsidePosition: labelPositionOutside\n });\n var label = el.getTextContent();\n setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n return getDefaultInterpolatedLabel(data, value);\n });\n }\n\n var emphasisModel = itemModel.getModel(['emphasis']);\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n setStatesStylesFromModel(el, itemModel);\n\n if (isZeroOnPolar(layout)) {\n el.style.fill = 'none';\n el.style.stroke = 'none';\n each(el.states, function (state) {\n if (state.style) {\n state.style.fill = state.style.stroke = 'none';\n }\n });\n }\n}\n\nfunction getLineWidth(itemModel, rawLayout) {\n var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape = function () {\n function LagePathShape() {}\n\n return LagePathShape;\n}();\n\nvar LargePath = function (_super) {\n __extends(LargePath, _super);\n\n function LargePath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'largeBar';\n return _this;\n }\n\n ;\n\n LargePath.prototype.getDefaultShape = function () {\n return new LagePathShape();\n };\n\n LargePath.prototype.buildPath = function (ctx, shape) {\n var points = shape.points;\n var startPoint = this.__startPoint;\n var baseDimIdx = this.__baseDimIdx;\n\n for (var i = 0; i < points.length; i += 2) {\n startPoint[baseDimIdx] = points[i + baseDimIdx];\n ctx.moveTo(startPoint[0], startPoint[1]);\n ctx.lineTo(points[i], points[i + 1]);\n }\n };\n\n return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n var data = seriesModel.getData();\n var startPoint = [];\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\n var largeDataIndices = data.getLayout('largeDataIndices');\n var barWidth = data.getLayout('barWidth');\n var backgroundModel = seriesModel.getModel('backgroundStyle');\n var drawBackground = seriesModel.get('showBackground', true);\n\n if (drawBackground) {\n var points = data.getLayout('largeBackgroundPoints');\n var backgroundStartPoint = [];\n backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\n var bgEl = new LargePath({\n shape: {\n points: points\n },\n incremental: !!incremental,\n silent: true,\n z2: 0\n });\n bgEl.__startPoint = backgroundStartPoint;\n bgEl.__baseDimIdx = baseDimIdx;\n bgEl.__largeDataIndices = largeDataIndices;\n bgEl.__barWidth = barWidth;\n setLargeBackgroundStyle(bgEl, backgroundModel, data);\n group.add(bgEl);\n }\n\n var el = new LargePath({\n shape: {\n points: data.getLayout('largePoints')\n },\n incremental: !!incremental\n });\n el.__startPoint = startPoint;\n el.__baseDimIdx = baseDimIdx;\n el.__largeDataIndices = largeDataIndices;\n el.__barWidth = barWidth;\n group.add(el);\n setLargeStyle(el, seriesModel, data);\n getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n if (!seriesModel.get('silent')) {\n el.on('mousedown', largePathUpdateDataIndex);\n el.on('mousemove', largePathUpdateDataIndex);\n }\n}\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n var largePath = this;\n var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n var baseDimIdx = largePath.__baseDimIdx;\n var valueDimIdx = 1 - baseDimIdx;\n var points = largePath.shape.points;\n var largeDataIndices = largePath.__largeDataIndices;\n var barWidthHalf = Math.abs(largePath.__barWidth / 2);\n var startValueVal = largePath.__startPoint[valueDimIdx];\n _eventPos[0] = x;\n _eventPos[1] = y;\n var pointerBaseVal = _eventPos[baseDimIdx];\n var pointerValueVal = _eventPos[1 - baseDimIdx];\n var baseLowerBound = pointerBaseVal - barWidthHalf;\n var baseUpperBound = pointerBaseVal + barWidthHalf;\n\n for (var i = 0, len = points.length / 2; i < len; i++) {\n var ii = i * 2;\n var barBaseVal = points[ii + baseDimIdx];\n var barValueVal = points[ii + valueDimIdx];\n\n if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound && (startValueVal <= barValueVal ? pointerValueVal >= startValueVal && pointerValueVal <= barValueVal : pointerValueVal >= barValueVal && pointerValueVal <= startValueVal)) {\n return largeDataIndices[i];\n }\n }\n\n return -1;\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n var globalStyle = data.getVisual('style');\n el.useStyle(extend({}, globalStyle));\n el.style.fill = null;\n el.style.stroke = globalStyle.fill;\n el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction setLargeBackgroundStyle(el, backgroundModel, data) {\n var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\n var itemStyle = backgroundModel.getItemStyle();\n el.useStyle(itemStyle);\n el.style.fill = null;\n el.style.stroke = borderColor;\n el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\n var rectShape = layout;\n var coordLayout = coord.getArea();\n return {\n x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n };\n } else {\n var coordLayout = coord.getArea();\n var sectorShape = layout;\n return {\n cx: coordLayout.cx,\n cy: coordLayout.cy,\n r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n };\n }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n var ElementClz = coord.type === 'polar' ? Sector : Rect;\n return new ElementClz({\n shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n silent: true,\n z2: 0\n });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { layout, largeLayout } from '../../layout/barGrid';\nimport dataSample from '../../processor/dataSample';\nimport BarSeries from './BarSeries';\nimport BarView from './BarView';\nexport function install(registers) {\n registers.registerChartView(BarView);\n registers.registerSeriesModel(BarSeries);\n registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar'));\n registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\n registers.registerVisual({\n seriesType: 'bar',\n reset: function (seriesModel) {\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n }\n });\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n registers.registerAction({\n type: 'changeAxisOrder',\n event: 'changeAxisOrder',\n update: 'update'\n }, function (payload, ecModel) {\n var componentType = payload.componentType || 'series';\n ecModel.eachComponent({\n mainType: componentType,\n query: payload\n }, function (componentModel) {\n if (payload.sortInfo) {\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\n }\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent, linearMap } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nexport default function pieLayout(seriesType, ecModel, api) {\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var viewRect = getViewRect(seriesModel, api);\n var center = seriesModel.get('center');\n var radius = seriesModel.get('radius');\n\n if (!zrUtil.isArray(radius)) {\n radius = [0, radius];\n }\n\n if (!zrUtil.isArray(center)) {\n center = [center, center];\n }\n\n var width = parsePercent(viewRect.width, api.getWidth());\n var height = parsePercent(viewRect.height, api.getHeight());\n var size = Math.min(width, height);\n var cx = parsePercent(center[0], width) + viewRect.x;\n var cy = parsePercent(center[1], height) + viewRect.y;\n var r0 = parsePercent(radius[0], size / 2);\n var r = parsePercent(radius[1], size / 2);\n var startAngle = -seriesModel.get('startAngle') * RADIAN;\n var minAngle = seriesModel.get('minAngle') * RADIAN;\n var validDataCount = 0;\n data.each(valueDim, function (value) {\n !isNaN(value) && validDataCount++;\n });\n var sum = data.getSum(valueDim);\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\n var clockwise = seriesModel.get('clockwise');\n var roseType = seriesModel.get('roseType');\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n var extent = data.getDataExtent(valueDim);\n extent[0] = 0;\n var restAngle = PI2;\n var valueSumLargerThanMinAngle = 0;\n var currentAngle = startAngle;\n var dir = clockwise ? 1 : -1;\n data.setLayout({\n viewRect: viewRect,\n r: r\n });\n data.each(valueDim, function (value, idx) {\n var angle;\n\n if (isNaN(value)) {\n data.setItemLayout(idx, {\n angle: NaN,\n startAngle: NaN,\n endAngle: NaN,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? NaN : r\n });\n return;\n }\n\n if (roseType !== 'area') {\n angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n } else {\n angle = PI2 / validDataCount;\n }\n\n if (angle < minAngle) {\n angle = minAngle;\n restAngle -= minAngle;\n } else {\n valueSumLargerThanMinAngle += value;\n }\n\n var endAngle = currentAngle + dir * angle;\n data.setItemLayout(idx, {\n angle: angle,\n startAngle: currentAngle,\n endAngle: endAngle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: r0,\n r: roseType ? linearMap(value, extent, [r0, r]) : r\n });\n currentAngle = endAngle;\n });\n\n if (restAngle < PI2 && validDataCount) {\n if (restAngle <= 1e-3) {\n var angle_1 = PI2 / validDataCount;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout_1 = data.getItemLayout(idx);\n layout_1.angle = angle_1;\n layout_1.startAngle = startAngle + dir * idx * angle_1;\n layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n }\n });\n } else {\n unitRadian = restAngle / valueSumLargerThanMinAngle;\n currentAngle = startAngle;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout_2 = data.getItemLayout(idx);\n var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n layout_2.startAngle = currentAngle;\n layout_2.endAngle = currentAngle + dir * angle;\n currentAngle += dir * angle;\n }\n });\n }\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function dataFilter(seriesType) {\n return {\n seriesType: seriesType,\n reset: function (seriesModel, ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (!legendModels || !legendModels.length) {\n return;\n }\n\n var data = seriesModel.getData();\n data.filterSelf(function (idx) {\n var name = data.getName(idx);\n\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(name)) {\n return false;\n }\n }\n\n return true;\n });\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport { Point } from '../../util/graphic';\nimport { each } from 'zrender/lib/core/util';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n if (list.length < 2) {\n return;\n }\n\n ;\n\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n var rB = semi.rB;\n var rB2 = rB * rB;\n\n for (var i = 0; i < semi.list.length; i++) {\n var item = semi.list[i];\n var dy = Math.abs(item.label.y - cy);\n var rA = r + item.len;\n var rA2 = rA * rA;\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n item.label.x = cx + (dx + item.len2) * dir;\n }\n }\n\n function recalculateX(items) {\n var topSemi = {\n list: [],\n maxY: 0\n };\n var bottomSemi = {\n list: [],\n maxY: 0\n };\n\n for (var i = 0; i < items.length; i++) {\n if (items[i].labelAlignTo !== 'none') {\n continue;\n }\n\n var item = items[i];\n var semi = item.label.y > cy ? bottomSemi : topSemi;\n var dy = Math.abs(item.label.y - cy);\n\n if (dy > semi.maxY) {\n var dx = item.label.x - cx - item.len2 * dir;\n var rA = r + item.len;\n var rB = dx < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n semi.rB = rB;\n semi.maxY = dy;\n }\n\n semi.list.push(item);\n }\n\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n }\n\n var len = list.length;\n\n for (var i = 0; i < len; i++) {\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n var dx = list[i].label.x - farthestX;\n list[i].linePoints[1][0] += dx;\n list[i].label.x = farthestX;\n }\n }\n\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n recalculateX(list);\n }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n var leftList = [];\n var rightList = [];\n var leftmostX = Number.MAX_VALUE;\n var rightmostX = -Number.MAX_VALUE;\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n var label = labelLayoutList[i].label;\n\n if (isPositionCenter(labelLayoutList[i])) {\n continue;\n }\n\n if (label.x < cx) {\n leftmostX = Math.min(leftmostX, label.x);\n leftList.push(labelLayoutList[i]);\n } else {\n rightmostX = Math.max(rightmostX, label.x);\n rightList.push(labelLayoutList[i]);\n }\n }\n\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n var label = layout.label;\n\n if (isPositionCenter(layout)) {\n continue;\n }\n\n var linePoints = layout.linePoints;\n\n if (linePoints) {\n var isAlignToEdge = layout.labelAlignTo === 'edge';\n var realTextWidth = layout.rect.width;\n var targetTextWidth = void 0;\n\n if (isAlignToEdge) {\n if (label.x < cx) {\n targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n } else {\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n }\n } else {\n if (label.x < cx) {\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n } else {\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n }\n }\n\n if (targetTextWidth < layout.rect.width) {\n layout.label.style.width = targetTextWidth;\n\n if (layout.labelAlignTo === 'edge') {\n realTextWidth = targetTextWidth;\n }\n }\n\n var dist = linePoints[1][0] - linePoints[2][0];\n\n if (isAlignToEdge) {\n if (label.x < cx) {\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n } else {\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n }\n } else {\n if (label.x < cx) {\n linePoints[2][0] = label.x + layout.labelDistance;\n } else {\n linePoints[2][0] = label.x - layout.labelDistance;\n }\n\n linePoints[1][0] = linePoints[2][0] + dist;\n }\n\n linePoints[1][1] = linePoints[2][1] = label.y;\n }\n }\n}\n\nfunction isPositionCenter(sectorShape) {\n return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n var data = seriesModel.getData();\n var labelLayoutList = [];\n var cx;\n var cy;\n var hasLabelRotate = false;\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n var viewRect = data.getLayout('viewRect');\n var r = data.getLayout('r');\n var viewWidth = viewRect.width;\n var viewLeft = viewRect.x;\n var viewTop = viewRect.y;\n var viewHeight = viewRect.height;\n\n function setNotShow(el) {\n el.ignore = true;\n }\n\n function isLabelShown(label) {\n if (!label.ignore) {\n return true;\n }\n\n for (var key in label.states) {\n if (label.states[key].ignore === false) {\n return true;\n }\n }\n\n return false;\n }\n\n data.each(function (idx) {\n var sector = data.getItemGraphicEl(idx);\n var sectorShape = sector.shape;\n var label = sector.getTextContent();\n var labelLine = sector.getTextGuideLine();\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n var labelDistance = labelModel.get('distanceToLabelLine');\n var labelAlignTo = labelModel.get('alignTo');\n var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n var bleedMargin = labelModel.get('bleedMargin');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineLen = labelLineModel.get('length');\n labelLineLen = parsePercent(labelLineLen, viewWidth);\n var labelLineLen2 = labelLineModel.get('length2');\n labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n each(label.states, setNotShow);\n label.ignore = true;\n return;\n }\n\n if (!isLabelShown(label)) {\n return;\n }\n\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n var nx = Math.cos(midAngle);\n var ny = Math.sin(midAngle);\n var textX;\n var textY;\n var linePoints;\n var textAlign;\n cx = sectorShape.cx;\n cy = sectorShape.cy;\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n if (labelPosition === 'center') {\n textX = sectorShape.cx;\n textY = sectorShape.cy;\n textAlign = 'center';\n } else {\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n textX = x1 + nx * 3;\n textY = y1 + ny * 3;\n\n if (!isLabelInside) {\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n var y3 = y2;\n\n if (labelAlignTo === 'edge') {\n textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n } else {\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n }\n\n textY = y3;\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n }\n\n textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n }\n\n var labelRotate;\n var rotate = labelModel.get('rotate');\n\n if (typeof rotate === 'number') {\n labelRotate = rotate * (Math.PI / 180);\n } else {\n labelRotate = rotate ? nx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n }\n\n hasLabelRotate = !!labelRotate;\n label.x = textX;\n label.y = textY;\n label.rotation = labelRotate;\n label.setStyle({\n verticalAlign: 'middle'\n });\n\n if (!isLabelInside) {\n var textRect = label.getBoundingRect().clone();\n textRect.applyTransform(label.getComputedTransform());\n var margin = (label.style.margin || 0) + 2.1;\n textRect.y -= margin / 2;\n textRect.height += margin;\n labelLayoutList.push({\n label: label,\n labelLine: labelLine,\n position: labelPosition,\n len: labelLineLen,\n len2: labelLineLen2,\n minTurnAngle: labelLineModel.get('minTurnAngle'),\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n surfaceNormal: new Point(nx, ny),\n linePoints: linePoints,\n textAlign: textAlign,\n labelDistance: labelDistance,\n labelAlignTo: labelAlignTo,\n edgeDistance: edgeDistance,\n bleedMargin: bleedMargin,\n rect: textRect\n });\n } else {\n label.setStyle({\n align: textAlign\n });\n var selectState = label.states.select;\n\n if (selectState) {\n selectState.x += label.x;\n selectState.y += label.y;\n }\n }\n\n sector.setTextConfig({\n inside: isLabelInside\n });\n });\n\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n }\n\n for (var i = 0; i < labelLayoutList.length; i++) {\n var layout = labelLayoutList[i];\n var label = layout.label;\n var labelLine = layout.labelLine;\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n if (label) {\n label.setStyle({\n align: layout.textAlign\n });\n\n if (notShowLabel) {\n each(label.states, setNotShow);\n label.ignore = true;\n }\n\n var selectState = label.states.select;\n\n if (selectState) {\n selectState.x += label.x;\n selectState.y += label.y;\n }\n }\n\n if (labelLine) {\n var linePoints = layout.linePoints;\n\n if (notShowLabel || !linePoints) {\n each(labelLine.states, setNotShow);\n labelLine.ignore = true;\n } else {\n limitTurnAngle(linePoints, layout.minTurnAngle);\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n labelLine.setShape({\n points: linePoints\n });\n label.__hostTarget.textGuideLineConfig = {\n anchor: new Point(linePoints[0][0], linePoints[0][1])\n };\n }\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\nexport function getSectorCornerRadius(model, shape) {\n var cornerRadius = model.get('borderRadius');\n\n if (cornerRadius == null) {\n return null;\n }\n\n if (!isArray(cornerRadius)) {\n cornerRadius = [cornerRadius, cornerRadius];\n }\n\n return {\n innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\n cornerRadius: parsePercent(cornerRadius[1], shape.r)\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __assign, __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport labelLayout from './labelLayout';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\n\nvar PiePiece = function (_super) {\n __extends(PiePiece, _super);\n\n function PiePiece(data, idx, startAngle) {\n var _this = _super.call(this) || this;\n\n _this.z2 = 2;\n var polyline = new graphic.Polyline();\n var text = new graphic.Text();\n\n _this.setTextGuideLine(polyline);\n\n _this.setTextContent(text);\n\n _this.updateData(data, idx, startAngle, true);\n\n return _this;\n }\n\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n var sector = this;\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n var layout = data.getItemLayout(idx);\n var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\n\n if (firstCreate) {\n sector.setShape(sectorShape);\n var animationType = seriesModel.getShallow('animationType');\n\n if (animationType === 'scale') {\n sector.shape.r = layout.r0;\n graphic.initProps(sector, {\n shape: {\n r: layout.r\n }\n }, seriesModel, idx);\n } else {\n if (startAngle != null) {\n sector.setShape({\n startAngle: startAngle,\n endAngle: startAngle\n });\n graphic.initProps(sector, {\n shape: {\n startAngle: layout.startAngle,\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n } else {\n sector.shape.endAngle = layout.startAngle;\n graphic.updateProps(sector, {\n shape: {\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n }\n }\n } else {\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel, idx);\n }\n\n sector.useStyle(data.getItemVisual(idx, 'style'));\n setStatesStylesFromModel(sector, itemModel);\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var offset = seriesModel.get('selectedOffset');\n var dx = Math.cos(midAngle) * offset;\n var dy = Math.sin(midAngle) * offset;\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle);\n\n this._updateLabel(seriesModel, data, idx);\n\n sector.ensureState('emphasis').shape = __assign({\n r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n extend(sector.ensureState('select'), {\n x: dx,\n y: dy,\n shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n });\n extend(sector.ensureState('blur'), {\n shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n });\n var labelLine = sector.getTextGuideLine();\n var labelText = sector.getTextContent();\n extend(labelLine.ensureState('select'), {\n x: dx,\n y: dy\n });\n extend(labelText.ensureState('select'), {\n x: dx,\n y: dy\n });\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n };\n\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n var sector = this;\n var itemModel = data.getItemModel(idx);\n var labelLineModel = itemModel.getModel('labelLine');\n var style = data.getItemVisual(idx, 'style');\n var visualColor = style && style.fill;\n var visualOpacity = style && style.opacity;\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n inheritColor: visualColor,\n defaultOpacity: visualOpacity,\n defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n });\n var labelText = sector.getTextContent();\n sector.setTextConfig({\n position: null,\n rotation: null\n });\n labelText.attr({\n z2: 10\n });\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n stroke: visualColor,\n opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n });\n };\n\n return PiePiece;\n}(graphic.Sector);\n\nvar PieView = function (_super) {\n __extends(PieView, _super);\n\n function PieView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.ignoreLabelLineUpdate = true;\n return _this;\n }\n\n PieView.prototype.init = function () {\n var sectorGroup = new graphic.Group();\n this._sectorGroup = sectorGroup;\n };\n\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var startAngle;\n\n if (!oldData && data.count() > 0) {\n var shape = data.getItemLayout(0);\n\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n shape = data.getItemLayout(s);\n }\n\n if (shape) {\n startAngle = shape.startAngle;\n }\n }\n\n data.diff(oldData).add(function (idx) {\n var piePiece = new PiePiece(data, idx, startAngle);\n data.setItemGraphicEl(idx, piePiece);\n group.add(piePiece);\n }).update(function (newIdx, oldIdx) {\n var piePiece = oldData.getItemGraphicEl(oldIdx);\n piePiece.updateData(data, newIdx, startAngle);\n piePiece.off('click');\n group.add(piePiece);\n data.setItemGraphicEl(newIdx, piePiece);\n }).remove(function (idx) {\n var piePiece = oldData.getItemGraphicEl(idx);\n graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n }).execute();\n labelLayout(seriesModel);\n\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n this._data = data;\n }\n };\n\n PieView.prototype.dispose = function () {};\n\n PieView.prototype.containPoint = function (point, seriesModel) {\n var data = seriesModel.getData();\n var itemLayout = data.getItemLayout(0);\n\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n };\n\n PieView.type = 'pie';\n return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createDimensions from '../../data/helper/createDimensions';\nimport List from '../../data/List';\nimport { extend, isArray } from 'zrender/lib/core/util';\nexport default function createListSimply(seriesModel, opt, nameList) {\n opt = isArray(opt) && {\n coordDimensions: opt\n } || extend({}, opt);\n var source = seriesModel.getSource();\n var dimensionsInfo = createDimensions(source, opt);\n var list = new List(dimensionsInfo, seriesModel);\n list.initData(source, nameList);\n return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar LegendVisualProvider = function () {\n function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n this._getRawData = getRawData;\n }\n\n LegendVisualProvider.prototype.getAllNames = function () {\n var rawData = this._getRawData();\n\n return rawData.mapArray(rawData.getName);\n };\n\n LegendVisualProvider.prototype.containName = function (name) {\n var rawData = this._getRawData();\n\n return rawData.indexOfName(name) >= 0;\n };\n\n LegendVisualProvider.prototype.indexOfName = function (name) {\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n return dataWithEncodedVisual.indexOfName(name);\n };\n\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n };\n\n return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { getPercentWithPrecision } from '../../util/number';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar PieSeriesModel = function (_super) {\n __extends(PieSeriesModel, _super);\n\n function PieSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.useColorPaletteOnData = true;\n return _this;\n }\n\n PieSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments);\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n this._defaultLabelLine(option);\n };\n\n PieSeriesModel.prototype.mergeOption = function () {\n _super.prototype.mergeOption.apply(this, arguments);\n };\n\n PieSeriesModel.prototype.getInitialData = function () {\n return createListSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n };\n\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n var data = this.getData();\n\n var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n var valueList = [];\n data.each(data.mapDimension('value'), function (value) {\n valueList.push(value);\n });\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n params.$vars.push('percent');\n return params;\n };\n\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\n modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine;\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n };\n\n PieSeriesModel.type = 'series.pie';\n PieSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n center: ['50%', '50%'],\n radius: [0, '75%'],\n clockwise: true,\n startAngle: 90,\n minAngle: 0,\n minShowLabelAngle: 0,\n selectedOffset: 10,\n percentPrecision: 2,\n stillShowZeroSum: true,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n width: null,\n height: null,\n label: {\n rotate: 0,\n show: true,\n overflow: 'truncate',\n position: 'outer',\n alignTo: 'none',\n edgeDistance: '25%',\n bleedMargin: 10,\n distanceToLabelLine: 5\n },\n labelLine: {\n show: true,\n length: 15,\n length2: 15,\n smooth: false,\n minTurnAngle: 90,\n maxSurfaceAngle: 90,\n lineStyle: {\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n borderWidth: 1\n },\n labelLayout: {\n hideOverlap: true\n },\n emphasis: {\n scale: true,\n scaleSize: 5\n },\n avoidLabelOverlap: true,\n animationType: 'expansion',\n animationDuration: 1000,\n animationTypeUpdate: 'transition',\n animationEasingUpdate: 'cubicInOut',\n animationDurationUpdate: 500,\n animationEasing: 'cubicInOut'\n };\n return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nimport pieLayout from '../pie/pieLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport PieView from './PieView';\nimport PieSeriesModel from './PieSeries';\nexport function install(registers) {\n registers.registerChartView(PieView);\n registers.registerSeriesModel(PieSeriesModel);\n createLegacyDataSelectAction('pie', registers.registerAction);\n registers.registerLayout(curry(pieLayout, 'pie'));\n registers.registerProcessor(dataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar ScatterSeriesModel = function (_super) {\n __extends(ScatterSeriesModel, _super);\n\n function ScatterSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ScatterSeriesModel.type;\n _this.hasSymbolVisual = true;\n return _this;\n }\n\n ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true\n });\n };\n\n ScatterSeriesModel.prototype.getProgressive = function () {\n var progressive = this.option.progressive;\n\n if (progressive == null) {\n return this.option.large ? 5e3 : this.get('progressive');\n }\n\n return progressive;\n };\n\n ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\n var progressiveThreshold = this.option.progressiveThreshold;\n\n if (progressiveThreshold == null) {\n return this.option.large ? 1e4 : this.get('progressiveThreshold');\n }\n\n return progressiveThreshold;\n };\n\n ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n return selectors.point(data.getItemLayout(dataIndex));\n };\n\n ScatterSeriesModel.type = 'series.scatter';\n ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n ScatterSeriesModel.defaultOption = {\n coordinateSystem: 'cartesian2d',\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n symbolSize: 10,\n large: false,\n largeThreshold: 2000,\n itemStyle: {\n opacity: 0.8\n },\n emphasis: {\n scale: true\n },\n clip: true,\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n }\n };\n return ScatterSeriesModel;\n}(SeriesModel);\n\nexport default ScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport { getECData } from '../../util/innerStore';\nvar BOOST_SIZE_THRESHOLD = 4;\n\nvar LargeSymbolPathShape = function () {\n function LargeSymbolPathShape() {}\n\n return LargeSymbolPathShape;\n}();\n\nvar LargeSymbolPath = function (_super) {\n __extends(LargeSymbolPath, _super);\n\n function LargeSymbolPath(opts) {\n return _super.call(this, opts) || this;\n }\n\n LargeSymbolPath.prototype.getDefaultShape = function () {\n return new LargeSymbolPathShape();\n };\n\n LargeSymbolPath.prototype.buildPath = function (path, shape) {\n var points = shape.points;\n var size = shape.size;\n var symbolProxy = this.symbolProxy;\n var symbolProxyShape = symbolProxy.shape;\n var ctx = path.getContext ? path.getContext() : path;\n var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\n\n if (canBoost) {\n this._ctx = ctx;\n return;\n }\n\n this._ctx = null;\n\n for (var i = 0; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n\n if (isNaN(x) || isNaN(y)) {\n continue;\n }\n\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n continue;\n }\n\n symbolProxyShape.x = x - size[0] / 2;\n symbolProxyShape.y = y - size[1] / 2;\n symbolProxyShape.width = size[0];\n symbolProxyShape.height = size[1];\n symbolProxy.buildPath(path, symbolProxyShape, true);\n }\n };\n\n LargeSymbolPath.prototype.afterBrush = function () {\n var shape = this.shape;\n var points = shape.points;\n var size = shape.size;\n var ctx = this._ctx;\n\n if (!ctx) {\n return;\n }\n\n for (var i = 0; i < points.length;) {\n var x = points[i++];\n var y = points[i++];\n\n if (isNaN(x) || isNaN(y)) {\n continue;\n }\n\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n continue;\n }\n\n ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\n }\n };\n\n LargeSymbolPath.prototype.findDataIndex = function (x, y) {\n var shape = this.shape;\n var points = shape.points;\n var size = shape.size;\n var w = Math.max(size[0], 4);\n var h = Math.max(size[1], 4);\n\n for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\n var i = idx * 2;\n var x0 = points[i] - w / 2;\n var y0 = points[i + 1] - h / 2;\n\n if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\n return idx;\n }\n }\n\n return -1;\n };\n\n return LargeSymbolPath;\n}(graphic.Path);\n\nvar LargeSymbolDraw = function () {\n function LargeSymbolDraw() {\n this.group = new graphic.Group();\n }\n\n LargeSymbolDraw.prototype.isPersistent = function () {\n return !this._incremental;\n };\n\n ;\n\n LargeSymbolDraw.prototype.updateData = function (data, opt) {\n this.group.removeAll();\n var symbolEl = new LargeSymbolPath({\n rectHover: true,\n cursor: 'default'\n });\n symbolEl.setShape({\n points: data.getLayout('points')\n });\n\n this._setCommon(symbolEl, data, false, opt);\n\n this.group.add(symbolEl);\n this._incremental = null;\n };\n\n LargeSymbolDraw.prototype.updateLayout = function (data) {\n if (this._incremental) {\n return;\n }\n\n var points = data.getLayout('points');\n this.group.eachChild(function (child) {\n if (child.startIndex != null) {\n var len = (child.endIndex - child.startIndex) * 2;\n var byteOffset = child.startIndex * 4 * 2;\n points = new Float32Array(points.buffer, byteOffset, len);\n }\n\n child.setShape('points', points);\n });\n };\n\n LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n this.group.removeAll();\n\n this._clearIncremental();\n\n if (data.count() > 2e6) {\n if (!this._incremental) {\n this._incremental = new IncrementalDisplayable({\n silent: true\n });\n }\n\n this.group.add(this._incremental);\n } else {\n this._incremental = null;\n }\n };\n\n LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n var symbolEl;\n\n if (this._incremental) {\n symbolEl = new LargeSymbolPath();\n\n this._incremental.addDisplayable(symbolEl, true);\n } else {\n symbolEl = new LargeSymbolPath({\n rectHover: true,\n cursor: 'default',\n startIndex: taskParams.start,\n endIndex: taskParams.end\n });\n symbolEl.incremental = true;\n this.group.add(symbolEl);\n }\n\n symbolEl.setShape({\n points: data.getLayout('points')\n });\n\n this._setCommon(symbolEl, data, !!this._incremental, opt);\n };\n\n LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\n var hostModel = data.hostModel;\n opt = opt || {};\n var size = data.getVisual('symbolSize');\n symbolEl.setShape('size', size instanceof Array ? size : [size, size]);\n symbolEl.softClipShape = opt.clipShape || null;\n symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\n symbolEl.setColor = symbolEl.symbolProxy.setColor;\n var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\n symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\n var globalStyle = data.getVisual('style');\n var visualColor = globalStyle && globalStyle.fill;\n\n if (visualColor) {\n symbolEl.setColor(visualColor);\n }\n\n if (!isIncremental) {\n var ecData_1 = getECData(symbolEl);\n ecData_1.seriesIndex = hostModel.seriesIndex;\n symbolEl.on('mousemove', function (e) {\n ecData_1.dataIndex = null;\n var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\n\n if (dataIndex >= 0) {\n ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\n }\n });\n }\n };\n\n LargeSymbolDraw.prototype.remove = function () {\n this._clearIncremental();\n\n this._incremental = null;\n this.group.removeAll();\n };\n\n LargeSymbolDraw.prototype._clearIncremental = function () {\n var incremental = this._incremental;\n\n if (incremental) {\n incremental.clearDisplaybles();\n }\n };\n\n return LargeSymbolDraw;\n}();\n\nexport default LargeSymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LargeSymbolDraw from '../helper/LargeSymbolDraw';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar ScatterView = function (_super) {\n __extends(ScatterView, _super);\n\n function ScatterView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ScatterView.type;\n return _this;\n }\n\n ScatterView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n symbolDraw.updateData(data, {\n clipShape: this._getClipShape(seriesModel)\n });\n this._finished = true;\n };\n\n ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n symbolDraw.incrementalPrepareUpdate(data);\n this._finished = false;\n };\n\n ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\n clipShape: this._getClipShape(seriesModel)\n });\n\n this._finished = taskParams.end === seriesModel.getData().count();\n };\n\n ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n this.group.dirty();\n\n if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\n return {\n update: true\n };\n } else {\n var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n if (res.progress) {\n res.progress({\n start: 0,\n end: data.count(),\n count: data.count()\n }, data);\n }\n\n this._symbolDraw.updateLayout(data);\n }\n };\n\n ScatterView.prototype._getClipShape = function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n return seriesModel.get('clip', true) ? clipArea : null;\n };\n\n ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\n var symbolDraw = this._symbolDraw;\n var pipelineContext = seriesModel.pipelineContext;\n var isLargeDraw = pipelineContext.large;\n\n if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n symbolDraw && symbolDraw.remove();\n symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n this._isLargeDraw = isLargeDraw;\n this.group.removeAll();\n }\n\n this.group.add(symbolDraw.group);\n return symbolDraw;\n };\n\n ScatterView.prototype.remove = function (ecModel, api) {\n this._symbolDraw && this._symbolDraw.remove(true);\n this._symbolDraw = null;\n };\n\n ScatterView.prototype.dispose = function () {};\n\n ScatterView.type = 'scatter';\n return ScatterView;\n}(ChartView);\n\nexport default ScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar GridModel = function (_super) {\n __extends(GridModel, _super);\n\n function GridModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GridModel.type = 'grid';\n GridModel.dependencies = ['xAxis', 'yAxis'];\n GridModel.layoutMode = 'box';\n GridModel.defaultOption = {\n show: false,\n zlevel: 0,\n z: 0,\n left: '10%',\n top: 60,\n right: '10%',\n bottom: 70,\n containLabel: false,\n backgroundColor: 'rgba(0,0,0,0)',\n borderWidth: 1,\n borderColor: '#ccc'\n };\n return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar CartesianAxisModel = function (_super) {\n __extends(CartesianAxisModel, _super);\n\n function CartesianAxisModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CartesianAxisModel.prototype.getCoordSysModel = function () {\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n };\n\n CartesianAxisModel.type = 'cartesian2dAxis';\n return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar defaultOption = {\n show: true,\n zlevel: 0,\n z: 0,\n inverse: false,\n name: '',\n nameLocation: 'end',\n nameRotate: null,\n nameTruncate: {\n maxWidth: null,\n ellipsis: '...',\n placeholder: '.'\n },\n nameTextStyle: {},\n nameGap: 15,\n silent: false,\n triggerEvent: false,\n tooltip: {\n show: false\n },\n axisPointer: {},\n axisLine: {\n show: true,\n onZero: true,\n onZeroAxisIndex: null,\n lineStyle: {\n color: '#6E7079',\n width: 1,\n type: 'solid'\n },\n symbol: ['none', 'none'],\n symbolSize: [10, 15]\n },\n axisTick: {\n show: true,\n inside: false,\n length: 5,\n lineStyle: {\n width: 1\n }\n },\n axisLabel: {\n show: true,\n inside: false,\n rotate: 0,\n showMinLabel: null,\n showMaxLabel: null,\n margin: 8,\n fontSize: 12\n },\n splitLine: {\n show: true,\n lineStyle: {\n color: ['#E0E6F1'],\n width: 1,\n type: 'solid'\n }\n },\n splitArea: {\n show: false,\n areaStyle: {\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n }\n }\n};\nvar categoryAxis = zrUtil.merge({\n boundaryGap: true,\n deduplication: null,\n splitLine: {\n show: false\n },\n axisTick: {\n alignWithLabel: false,\n interval: 'auto'\n },\n axisLabel: {\n interval: 'auto'\n }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n boundaryGap: [0, 0],\n axisLine: {\n show: 'auto'\n },\n axisTick: {\n show: 'auto'\n },\n splitNumber: 5,\n minorTick: {\n show: false,\n splitNumber: 5,\n length: 3,\n lineStyle: {}\n },\n minorSplitLine: {\n show: false,\n lineStyle: {\n color: '#F4F7FD',\n width: 1\n }\n }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n scale: true,\n splitNumber: 6,\n axisLabel: {\n showMinLabel: false,\n showMaxLabel: false,\n rich: {\n primary: {\n fontWeight: 'bold'\n }\n }\n },\n splitLine: {\n show: false\n }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n scale: true,\n logBase: 10\n}, valueAxis);\nexport default {\n category: categoryAxis,\n value: valueAxis,\n time: timeAxis,\n log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var AXIS_TYPES = {\n value: 1,\n category: 1,\n time: 1,\n log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport { AXIS_TYPES } from './axisCommonTypes';\nimport { each, merge } from 'zrender/lib/core/util';\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n each(AXIS_TYPES, function (v, axisType) {\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n var AxisModel = function (_super) {\n __extends(AxisModel, _super);\n\n function AxisModel() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var _this = _super.apply(this, args) || this;\n\n _this.type = axisName + 'Axis.' + axisType;\n return _this;\n }\n\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n var layoutMode = fetchLayoutMode(this);\n var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n var themeModel = ecModel.getTheme();\n merge(option, themeModel.get(axisType + 'Axis'));\n merge(option, this.getDefaultOption());\n option.type = getAxisType(option);\n\n if (layoutMode) {\n mergeLayoutParam(option, inputPositionParams, layoutMode);\n }\n };\n\n AxisModel.prototype.optionUpdated = function () {\n var thisOption = this.option;\n\n if (thisOption.type === 'category') {\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n }\n };\n\n AxisModel.prototype.getCategories = function (rawData) {\n var option = this.option;\n\n if (option.type === 'category') {\n if (rawData) {\n return option.data;\n }\n\n return this.__ordinalMeta.categories;\n }\n };\n\n AxisModel.prototype.getOrdinalMeta = function () {\n return this.__ordinalMeta;\n };\n\n AxisModel.type = axisName + 'Axis.' + axisType;\n AxisModel.defaultOption = defaultOption;\n return AxisModel;\n }(BaseAxisModelClass);\n\n registers.registerComponentModel(AxisModel);\n });\n registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar Cartesian = function () {\n function Cartesian(name) {\n this.type = 'cartesian';\n this._dimList = [];\n this._axes = {};\n this.name = name || '';\n }\n\n Cartesian.prototype.getAxis = function (dim) {\n return this._axes[dim];\n };\n\n Cartesian.prototype.getAxes = function () {\n return zrUtil.map(this._dimList, function (dim) {\n return this._axes[dim];\n }, this);\n };\n\n Cartesian.prototype.getAxesByScale = function (scaleType) {\n scaleType = scaleType.toLowerCase();\n return zrUtil.filter(this.getAxes(), function (axis) {\n return axis.scale.type === scaleType;\n });\n };\n\n Cartesian.prototype.addAxis = function (axis) {\n var dim = axis.dim;\n this._axes[dim] = axis;\n\n this._dimList.push(dim);\n };\n\n return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Cartesian from './Cartesian';\nimport { invert } from 'zrender/lib/core/matrix';\nimport { applyTransform } from 'zrender/lib/core/vector';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D = function (_super) {\n __extends(Cartesian2D, _super);\n\n function Cartesian2D() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'cartesian2d';\n _this.dimensions = cartesian2DDimensions;\n return _this;\n }\n\n Cartesian2D.prototype.calcAffineTransform = function () {\n this._transform = this._invTransform = null;\n var xAxisScale = this.getAxis('x').scale;\n var yAxisScale = this.getAxis('y').scale;\n\n if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n return;\n }\n\n var xScaleExtent = xAxisScale.getExtent();\n var yScaleExtent = yAxisScale.getExtent();\n var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n if (!xScaleSpan || !yScaleSpan) {\n return;\n }\n\n var scaleX = (end[0] - start[0]) / xScaleSpan;\n var scaleY = (end[1] - start[1]) / yScaleSpan;\n var translateX = start[0] - xScaleExtent[0] * scaleX;\n var translateY = start[1] - yScaleExtent[0] * scaleY;\n var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n this._invTransform = invert([], m);\n };\n\n Cartesian2D.prototype.getBaseAxis = function () {\n return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n };\n\n Cartesian2D.prototype.containPoint = function (point) {\n var axisX = this.getAxis('x');\n var axisY = this.getAxis('y');\n return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n };\n\n Cartesian2D.prototype.containData = function (data) {\n return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n };\n\n Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\n out = out || [];\n var xVal = data[0];\n var yVal = data[1];\n\n if (this._transform && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n return applyTransform(out, data, this._transform);\n }\n\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\n return out;\n };\n\n Cartesian2D.prototype.clampData = function (data, out) {\n var xScale = this.getAxis('x').scale;\n var yScale = this.getAxis('y').scale;\n var xAxisExtent = xScale.getExtent();\n var yAxisExtent = yScale.getExtent();\n var x = xScale.parse(data[0]);\n var y = yScale.parse(data[1]);\n out = out || [];\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n return out;\n };\n\n Cartesian2D.prototype.pointToData = function (point, out) {\n out = out || [];\n\n if (this._invTransform) {\n return applyTransform(out, point, this._invTransform);\n }\n\n var xAxis = this.getAxis('x');\n var yAxis = this.getAxis('y');\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n return out;\n };\n\n Cartesian2D.prototype.getOtherAxis = function (axis) {\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n };\n\n Cartesian2D.prototype.getArea = function () {\n var xExtent = this.getAxis('x').getGlobalExtent();\n var yExtent = this.getAxis('y').getGlobalExtent();\n var x = Math.min(xExtent[0], xExtent[1]);\n var y = Math.min(yExtent[0], yExtent[1]);\n var width = Math.max(xExtent[0], xExtent[1]) - x;\n var height = Math.max(yExtent[0], yExtent[1]) - y;\n return new BoundingRect(x, y, width, height);\n };\n\n return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar Axis2D = function (_super) {\n __extends(Axis2D, _super);\n\n function Axis2D(dim, scale, coordExtent, axisType, position) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n _this.index = 0;\n _this.type = axisType || 'value';\n _this.position = position || 'bottom';\n return _this;\n }\n\n Axis2D.prototype.isHorizontal = function () {\n var position = this.position;\n return position === 'top' || position === 'bottom';\n };\n\n Axis2D.prototype.getGlobalExtent = function (asc) {\n var ret = this.getExtent();\n ret[0] = this.toGlobalCoord(ret[0]);\n ret[1] = this.toGlobalCoord(ret[1]);\n asc && ret[0] > ret[1] && ret.reverse();\n return ret;\n };\n\n Axis2D.prototype.pointToData = function (point, clamp) {\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n };\n\n Axis2D.prototype.setCategorySortInfo = function (info) {\n if (this.type !== 'category') {\n return false;\n }\n\n this.model.option.categorySortInfo = info;\n this.scale.setSortInfo(info);\n };\n\n return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../../util/model';\nexport function layout(gridModel, axisModel, opt) {\n opt = opt || {};\n var grid = gridModel.coordinateSystem;\n var axis = axisModel.axis;\n var layout = {};\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n var rawAxisPosition = axis.position;\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n var axisDim = axis.dim;\n var rect = grid.getRect();\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n var idx = {\n left: 0,\n right: 1,\n top: 0,\n bottom: 1,\n onZero: 2\n };\n var axisOffset = axisModel.get('offset') || 0;\n var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n if (otherAxisOnZeroOf) {\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n }\n\n layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]];\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\n var dirMap = {\n top: -1,\n bottom: 1,\n left: -1,\n right: 1\n };\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n if (axisModel.get(['axisTick', 'inside'])) {\n layout.tickDirection = -layout.tickDirection;\n }\n\n if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n layout.labelDirection = -layout.labelDirection;\n }\n\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\n layout.z2 = 1;\n return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n var axisModelMap = {\n xAxisModel: null,\n yAxisModel: null\n };\n zrUtil.each(axisModelMap, function (v, key) {\n var axisType = key.replace(/Model$/, '');\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!axisModel) {\n throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n }\n }\n\n axisModelMap[key] = axisModel;\n });\n return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isObject, each, indexOf, retrieve3 } from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D';\nimport Axis2D from './Axis2D';\nimport { SINGLE_REFERRING } from '../../util/model';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper';\n\nvar Grid = function () {\n function Grid(gridModel, ecModel, api) {\n this.type = 'grid';\n this._coordsMap = {};\n this._coordsList = [];\n this._axesMap = {};\n this._axesList = [];\n this.axisPointerEnabled = true;\n this.dimensions = cartesian2DDimensions;\n\n this._initCartesian(gridModel, ecModel, api);\n\n this.model = gridModel;\n }\n\n Grid.prototype.getRect = function () {\n return this._rect;\n };\n\n Grid.prototype.update = function (ecModel, api) {\n var axesMap = this._axesMap;\n\n this._updateScale(ecModel, this.model);\n\n each(axesMap.x, function (xAxis) {\n niceScaleExtent(xAxis.scale, xAxis.model);\n });\n each(axesMap.y, function (yAxis) {\n niceScaleExtent(yAxis.scale, yAxis.model);\n });\n var onZeroRecords = {};\n each(axesMap.x, function (xAxis) {\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n });\n each(axesMap.y, function (yAxis) {\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n });\n this.resize(this.model, api);\n };\n\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n var boxLayoutParams = gridModel.getBoxLayoutParams();\n var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n var gridRect = getLayoutRect(boxLayoutParams, {\n width: api.getWidth(),\n height: api.getHeight()\n });\n this._rect = gridRect;\n var axesList = this._axesList;\n adjustAxes();\n\n if (isContainLabel) {\n each(axesList, function (axis) {\n if (!axis.model.get(['axisLabel', 'inside'])) {\n var labelUnionRect = estimateLabelUnionRect(axis);\n\n if (labelUnionRect) {\n var dim = axis.isHorizontal() ? 'height' : 'width';\n var margin = axis.model.get(['axisLabel', 'margin']);\n gridRect[dim] -= labelUnionRect[dim] + margin;\n\n if (axis.position === 'top') {\n gridRect.y += labelUnionRect.height + margin;\n } else if (axis.position === 'left') {\n gridRect.x += labelUnionRect.width + margin;\n }\n }\n }\n });\n adjustAxes();\n }\n\n each(this._coordsList, function (coord) {\n coord.calcAffineTransform();\n });\n\n function adjustAxes() {\n each(axesList, function (axis) {\n var isHorizontal = axis.isHorizontal();\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n var idx = axis.inverse ? 1 : 0;\n axis.setExtent(extent[idx], extent[1 - idx]);\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n });\n }\n };\n\n Grid.prototype.getAxis = function (dim, axisIndex) {\n var axesMapOnDim = this._axesMap[dim];\n\n if (axesMapOnDim != null) {\n return axesMapOnDim[axisIndex || 0];\n }\n };\n\n Grid.prototype.getAxes = function () {\n return this._axesList.slice();\n };\n\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n if (xAxisIndex != null && yAxisIndex != null) {\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n return this._coordsMap[key];\n }\n\n if (isObject(xAxisIndex)) {\n yAxisIndex = xAxisIndex.yAxisIndex;\n xAxisIndex = xAxisIndex.xAxisIndex;\n }\n\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n return coordList[i];\n }\n }\n };\n\n Grid.prototype.getCartesians = function () {\n return this._coordsList.slice();\n };\n\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n var target = this._findConvertTarget(finder);\n\n return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n };\n\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n var target = this._findConvertTarget(finder);\n\n return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n };\n\n Grid.prototype._findConvertTarget = function (finder) {\n var seriesModel = finder.seriesModel;\n var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n var gridModel = finder.gridModel;\n var coordsList = this._coordsList;\n var cartesian;\n var axis;\n\n if (seriesModel) {\n cartesian = seriesModel.coordinateSystem;\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n } else if (xAxisModel && yAxisModel) {\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n } else if (xAxisModel) {\n axis = this.getAxis('x', xAxisModel.componentIndex);\n } else if (yAxisModel) {\n axis = this.getAxis('y', yAxisModel.componentIndex);\n } else if (gridModel) {\n var grid = gridModel.coordinateSystem;\n\n if (grid === this) {\n cartesian = this._coordsList[0];\n }\n }\n\n return {\n cartesian: cartesian,\n axis: axis\n };\n };\n\n Grid.prototype.containPoint = function (point) {\n var coord = this._coordsList[0];\n\n if (coord) {\n return coord.containPoint(point);\n }\n };\n\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n var _this = this;\n\n var grid = this;\n var axisPositionUsed = {\n left: false,\n right: false,\n top: false,\n bottom: false\n };\n var axesMap = {\n x: {},\n y: {}\n };\n var axesCount = {\n x: 0,\n y: 0\n };\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n if (!axesCount.x || !axesCount.y) {\n this._axesMap = {};\n this._axesList = [];\n return;\n }\n\n this._axesMap = axesMap;\n each(axesMap.x, function (xAxis, xAxisIndex) {\n each(axesMap.y, function (yAxis, yAxisIndex) {\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n var cartesian = new Cartesian2D(key);\n cartesian.master = _this;\n cartesian.model = gridModel;\n _this._coordsMap[key] = cartesian;\n\n _this._coordsList.push(cartesian);\n\n cartesian.addAxis(xAxis);\n cartesian.addAxis(yAxis);\n });\n });\n\n function createAxisCreator(dimName) {\n return function (axisModel, idx) {\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n return;\n }\n\n var axisPosition = axisModel.get('position');\n\n if (dimName === 'x') {\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n }\n } else {\n if (axisPosition !== 'left' && axisPosition !== 'right') {\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\n }\n }\n\n axisPositionUsed[axisPosition] = true;\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse');\n axisModel.axis = axis;\n axis.model = axisModel;\n axis.grid = grid;\n axis.index = idx;\n\n grid._axesList.push(axis);\n\n axesMap[dimName][idx] = axis;\n axesCount[dimName]++;\n };\n }\n };\n\n Grid.prototype._updateScale = function (ecModel, gridModel) {\n each(this._axesList, function (axis) {\n axis.scale.setExtent(Infinity, -Infinity);\n\n if (axis.type === 'category') {\n var categorySortInfo = axis.model.get('categorySortInfo');\n axis.scale.setSortInfo(categorySortInfo);\n }\n });\n ecModel.eachSeries(function (seriesModel) {\n if (isCartesian2DSeries(seriesModel)) {\n var axesModelMap = findAxisModels(seriesModel);\n var xAxisModel = axesModelMap.xAxisModel;\n var yAxisModel = axesModelMap.yAxisModel;\n\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n return;\n }\n\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n var data = seriesModel.getData();\n var xAxis = cartesian.getAxis('x');\n var yAxis = cartesian.getAxis('y');\n\n if (data.type === 'list') {\n unionExtent(data, xAxis);\n unionExtent(data, yAxis);\n }\n }\n }, this);\n\n function unionExtent(data, axis) {\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n axis.scale.unionExtentFromData(data, dim);\n });\n }\n };\n\n Grid.prototype.getTooltipAxes = function (dim) {\n var baseAxes = [];\n var otherAxes = [];\n each(this.getCartesians(), function (cartesian) {\n var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n var otherAxis = cartesian.getOtherAxis(baseAxis);\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n });\n return {\n baseAxes: baseAxes,\n otherAxes: otherAxes\n };\n };\n\n Grid.create = function (ecModel, api) {\n var grids = [];\n ecModel.eachComponent('grid', function (gridModel, idx) {\n var grid = new Grid(gridModel, ecModel, api);\n grid.name = 'grid_' + idx;\n grid.resize(gridModel, api, true);\n gridModel.coordinateSystem = grid;\n grids.push(grid);\n });\n ecModel.eachSeries(function (seriesModel) {\n if (!isCartesian2DSeries(seriesModel)) {\n return;\n }\n\n var axesModelMap = findAxisModels(seriesModel);\n var xAxisModel = axesModelMap.xAxisModel;\n var yAxisModel = axesModelMap.yAxisModel;\n var gridModel = xAxisModel.getCoordSysModel();\n\n if (process.env.NODE_ENV !== 'production') {\n if (!gridModel) {\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n }\n\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n throw new Error('xAxis and yAxis must use the same grid');\n }\n }\n\n var grid = gridModel.coordinateSystem;\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n });\n return grids;\n };\n\n Grid.dimensions = cartesian2DDimensions;\n return Grid;\n}();\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\n axis.getAxesOnZeroOf = function () {\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n };\n\n var otherAxes = axesMap[otherAxisDim];\n var otherAxisOnZeroOf;\n var axisModel = axis.model;\n var onZero = axisModel.get(['axisLine', 'onZero']);\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n if (!onZero) {\n return;\n }\n\n if (onZeroAxisIndex != null) {\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n }\n } else {\n for (var idx in otherAxes) {\n if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n otherAxisOnZeroOf = otherAxes[idx];\n break;\n }\n }\n }\n\n if (otherAxisOnZeroOf) {\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n }\n\n function getOnZeroRecordKey(axis) {\n return axis.dim + '_' + axis.index;\n }\n}\n\nfunction canOnZeroToAxis(axis) {\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n var axisExtent = axis.getExtent();\n var axisExtentSum = axisExtent[0] + axisExtent[1];\n axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n return coord + coordBase;\n } : function (coord) {\n return axisExtentSum - coord + coordBase;\n };\n axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n return coord - coordBase;\n } : function (coord) {\n return axisExtentSum - coord + coordBase;\n };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieve, defaults, extend, each, isObject } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport { isRadianAroundZero, remRadian } from '../../util/number';\nimport { createSymbol } from '../../util/symbol';\nimport * as matrixUtil from 'zrender/lib/core/matrix';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector';\nimport { shouldShowAllLabels } from '../../coord/axisHelper';\nvar PI = Math.PI;\n\nvar AxisBuilder = function () {\n function AxisBuilder(axisModel, opt) {\n this.group = new graphic.Group();\n this.opt = opt;\n this.axisModel = axisModel;\n defaults(opt, {\n labelOffset: 0,\n nameDirection: 1,\n tickDirection: 1,\n labelDirection: 1,\n silent: true,\n handleAutoShown: function () {\n return true;\n }\n });\n var transformGroup = new graphic.Group({\n x: opt.position[0],\n y: opt.position[1],\n rotation: opt.rotation\n });\n transformGroup.updateTransform();\n this._transformGroup = transformGroup;\n }\n\n AxisBuilder.prototype.hasBuilder = function (name) {\n return !!builders[name];\n };\n\n AxisBuilder.prototype.add = function (name) {\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n };\n\n AxisBuilder.prototype.getGroup = function () {\n return this.group;\n };\n\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n var rotationDiff = remRadian(textRotation - axisRotation);\n var textAlign;\n var textVerticalAlign;\n\n if (isRadianAroundZero(rotationDiff)) {\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n textAlign = 'center';\n } else if (isRadianAroundZero(rotationDiff - PI)) {\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n textAlign = 'center';\n } else {\n textVerticalAlign = 'middle';\n\n if (rotationDiff > 0 && rotationDiff < PI) {\n textAlign = direction > 0 ? 'right' : 'left';\n } else {\n textAlign = direction > 0 ? 'left' : 'right';\n }\n }\n\n return {\n rotation: rotationDiff,\n textAlign: textAlign,\n textVerticalAlign: textVerticalAlign\n };\n };\n\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n var eventData = {\n componentType: axisModel.mainType,\n componentIndex: axisModel.componentIndex\n };\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n return eventData;\n };\n\n AxisBuilder.isLabelSilent = function (axisModel) {\n var tooltipOpt = axisModel.get('tooltip');\n return axisModel.get('silent') || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n };\n\n return AxisBuilder;\n}();\n\n;\nvar builders = {\n axisLine: function (opt, axisModel, group, transformGroup) {\n var shown = axisModel.get(['axisLine', 'show']);\n\n if (shown === 'auto' && opt.handleAutoShown) {\n shown = opt.handleAutoShown('axisLine');\n }\n\n if (!shown) {\n return;\n }\n\n var extent = axisModel.axis.getExtent();\n var matrix = transformGroup.transform;\n var pt1 = [extent[0], 0];\n var pt2 = [extent[1], 0];\n\n if (matrix) {\n v2ApplyTransform(pt1, pt1, matrix);\n v2ApplyTransform(pt2, pt2, matrix);\n }\n\n var lineStyle = extend({\n lineCap: 'round'\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n var line = new graphic.Line({\n subPixelOptimize: true,\n shape: {\n x1: pt1[0],\n y1: pt1[1],\n x2: pt2[0],\n y2: pt2[1]\n },\n style: lineStyle,\n strokeContainThreshold: opt.strokeContainThreshold || 5,\n silent: true,\n z2: 1\n });\n line.anid = 'line';\n group.add(line);\n var arrows = axisModel.get(['axisLine', 'symbol']);\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\n\n if (typeof arrowOffset === 'number') {\n arrowOffset = [arrowOffset, arrowOffset];\n }\n\n if (arrows != null) {\n if (typeof arrows === 'string') {\n arrows = [arrows, arrows];\n }\n\n if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n arrowSize = [arrowSize, arrowSize];\n }\n\n var symbolWidth_1 = arrowSize[0];\n var symbolHeight_1 = arrowSize[1];\n each([{\n rotate: opt.rotation + Math.PI / 2,\n offset: arrowOffset[0],\n r: 0\n }, {\n rotate: opt.rotation - Math.PI / 2,\n offset: arrowOffset[1],\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n }], function (point, index) {\n if (arrows[index] !== 'none' && arrows[index] != null) {\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\n var r = point.r + point.offset;\n symbol.attr({\n rotation: point.rotate,\n x: pt1[0] + r * Math.cos(opt.rotation),\n y: pt1[1] - r * Math.sin(opt.rotation),\n silent: true,\n z2: 11\n });\n group.add(symbol);\n }\n });\n }\n },\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\n },\n axisName: function (opt, axisModel, group, transformGroup) {\n var name = retrieve(opt.axisName, axisModel.get('name'));\n\n if (!name) {\n return;\n }\n\n var nameLocation = axisModel.get('nameLocation');\n var nameDirection = opt.nameDirection;\n var textStyleModel = axisModel.getModel('nameTextStyle');\n var gap = axisModel.get('nameGap') || 0;\n var extent = axisModel.axis.getExtent();\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\n var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n var labelLayout;\n var nameRotation = axisModel.get('nameRotate');\n\n if (nameRotation != null) {\n nameRotation = nameRotation * PI / 180;\n }\n\n var axisNameAvailableWidth;\n\n if (isNameLocationCenter(nameLocation)) {\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\n } else {\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n if (axisNameAvailableWidth != null) {\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n }\n }\n\n var textFont = textStyleModel.getFont();\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\n var ellipsis = truncateOpt.ellipsis;\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n var tooltipOpt = axisModel.get('tooltip', true);\n var mainType = axisModel.mainType;\n var formatterParams = {\n componentType: mainType,\n name: name,\n $vars: ['name']\n };\n formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n var textEl = new graphic.Text({\n x: pos[0],\n y: pos[1],\n rotation: labelLayout.rotation,\n silent: AxisBuilder.isLabelSilent(axisModel),\n style: createTextStyle(textStyleModel, {\n text: name,\n font: textFont,\n overflow: 'truncate',\n width: maxWidth,\n ellipsis: ellipsis,\n fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n align: textStyleModel.get('align') || labelLayout.textAlign,\n verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n }),\n z2: 1\n });\n textEl.tooltip = tooltipOpt && tooltipOpt.show ? extend({\n content: name,\n formatter: function () {\n return name;\n },\n formatterParams: formatterParams\n }, tooltipOpt) : null;\n textEl.__fullText = name;\n textEl.anid = 'name';\n\n if (axisModel.get('triggerEvent')) {\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n eventData.targetType = 'axisName';\n eventData.name = name;\n getECData(textEl).eventData = eventData;\n }\n\n transformGroup.add(textEl);\n textEl.updateTransform();\n group.add(textEl);\n textEl.decomposeTransform();\n }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n var rotationDiff = remRadian(textRotate - rotation);\n var textAlign;\n var textVerticalAlign;\n var inverse = extent[0] > extent[1];\n var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n if (isRadianAroundZero(rotationDiff - PI / 2)) {\n textVerticalAlign = onLeft ? 'bottom' : 'top';\n textAlign = 'center';\n } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n textVerticalAlign = onLeft ? 'top' : 'bottom';\n textAlign = 'center';\n } else {\n textVerticalAlign = 'middle';\n\n if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n textAlign = onLeft ? 'left' : 'right';\n } else {\n textAlign = onLeft ? 'right' : 'left';\n }\n }\n\n return {\n rotation: rotationDiff,\n textAlign: textAlign,\n textVerticalAlign: textVerticalAlign\n };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n if (shouldShowAllLabels(axisModel.axis)) {\n return;\n }\n\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\n labelEls = labelEls || [];\n tickEls = tickEls || [];\n var firstLabel = labelEls[0];\n var nextLabel = labelEls[1];\n var lastLabel = labelEls[labelEls.length - 1];\n var prevLabel = labelEls[labelEls.length - 2];\n var firstTick = tickEls[0];\n var nextTick = tickEls[1];\n var lastTick = tickEls[tickEls.length - 1];\n var prevTick = tickEls[tickEls.length - 2];\n\n if (showMinLabel === false) {\n ignoreEl(firstLabel);\n ignoreEl(firstTick);\n } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n if (showMinLabel) {\n ignoreEl(nextLabel);\n ignoreEl(nextTick);\n } else {\n ignoreEl(firstLabel);\n ignoreEl(firstTick);\n }\n }\n\n if (showMaxLabel === false) {\n ignoreEl(lastLabel);\n ignoreEl(lastTick);\n } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n if (showMaxLabel) {\n ignoreEl(prevLabel);\n ignoreEl(prevTick);\n } else {\n ignoreEl(lastLabel);\n ignoreEl(lastTick);\n }\n }\n}\n\nfunction ignoreEl(el) {\n el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n var firstRect = current && current.getBoundingRect().clone();\n var nextRect = next && next.getBoundingRect().clone();\n\n if (!firstRect || !nextRect) {\n return;\n }\n\n var mRotationBack = matrixUtil.identity([]);\n matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n var tickEls = [];\n var pt1 = [];\n var pt2 = [];\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = ticksCoords[i].coord;\n pt1[0] = tickCoord;\n pt1[1] = 0;\n pt2[0] = tickCoord;\n pt2[1] = tickEndCoord;\n\n if (tickTransform) {\n v2ApplyTransform(pt1, pt1, tickTransform);\n v2ApplyTransform(pt2, pt2, tickTransform);\n }\n\n var tickEl = new graphic.Line({\n subPixelOptimize: true,\n shape: {\n x1: pt1[0],\n y1: pt1[1],\n x2: pt2[0],\n y2: pt2[1]\n },\n style: tickLineStyle,\n z2: 2,\n autoBatch: true,\n silent: true\n });\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n tickEls.push(tickEl);\n }\n\n return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n var axis = axisModel.axis;\n var tickModel = axisModel.getModel('axisTick');\n var shown = tickModel.get('show');\n\n if (shown === 'auto' && opt.handleAutoShown) {\n shown = opt.handleAutoShown('axisTick');\n }\n\n if (!shown || axis.scale.isBlank()) {\n return;\n }\n\n var lineStyleModel = tickModel.getModel('lineStyle');\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\n var ticksCoords = axis.getTicksCoords();\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n }), 'ticks');\n\n for (var i = 0; i < ticksEls.length; i++) {\n group.add(ticksEls[i]);\n }\n\n return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n var axis = axisModel.axis;\n var minorTickModel = axisModel.getModel('minorTick');\n\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n return;\n }\n\n var minorTicksCoords = axis.getMinorTicksCoords();\n\n if (!minorTicksCoords.length) {\n return;\n }\n\n var lineStyleModel = minorTickModel.getModel('lineStyle');\n var tickEndCoord = tickDirection * minorTickModel.get('length');\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n }));\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n for (var k = 0; k < minorTicksEls.length; k++) {\n group.add(minorTicksEls[k]);\n }\n }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n var axis = axisModel.axis;\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n if (!show || axis.scale.isBlank()) {\n return;\n }\n\n var labelModel = axisModel.getModel('axisLabel');\n var labelMargin = labelModel.get('margin');\n var labels = axis.getViewLabels();\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n var labelEls = [];\n var silent = AxisBuilder.isLabelSilent(axisModel);\n var triggerEvent = axisModel.get('triggerEvent');\n each(labels, function (labelItem, index) {\n var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n var formattedLabel = labelItem.formattedLabel;\n var rawLabel = labelItem.rawLabel;\n var itemLabelModel = labelModel;\n\n if (rawCategoryData && rawCategoryData[tickValue]) {\n var rawCategoryItem = rawCategoryData[tickValue];\n\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n }\n }\n\n var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n var tickCoord = axis.dataToCoord(tickValue);\n var textEl = new graphic.Text({\n x: tickCoord,\n y: opt.labelOffset + opt.labelDirection * labelMargin,\n rotation: labelLayout.rotation,\n silent: silent,\n z2: 10,\n style: createTextStyle(itemLabelModel, {\n text: formattedLabel,\n align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n fill: typeof textColor === 'function' ? textColor(axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n })\n });\n textEl.anid = 'label_' + tickValue;\n\n if (triggerEvent) {\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n eventData.targetType = 'axisLabel';\n eventData.value = rawLabel;\n getECData(textEl).eventData = eventData;\n }\n\n transformGroup.add(textEl);\n textEl.updateTransform();\n labelEls.push(textEl);\n group.add(textEl);\n textEl.decomposeTransform();\n });\n return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../../model/Model';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util';\nexport function collect(ecModel, api) {\n var result = {\n axesInfo: {},\n seriesInvolved: false,\n coordSysAxesInfo: {},\n coordSysMap: {}\n };\n collectAxesInfo(result, ecModel, api);\n result.seriesInvolved && collectSeriesInfo(result, ecModel);\n return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n var globalTooltipModel = ecModel.getComponent('tooltip');\n var globalAxisPointerModel = ecModel.getComponent('axisPointer');\n var linksOption = globalAxisPointerModel.get('link', true) || [];\n var linkGroups = [];\n each(api.getCoordinateSystems(), function (coordSys) {\n if (!coordSys.axisPointerEnabled) {\n return;\n }\n\n var coordSysKey = makeKey(coordSys.model);\n var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n result.coordSysMap[coordSysKey] = coordSys;\n var coordSysModel = coordSys.model;\n var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\n\n if (coordSys.getTooltipAxes && globalTooltipModel && baseTooltipModel.get('show')) {\n var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n if (triggerAxis || cross) {\n each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n }\n\n if (cross) {\n each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n }\n }\n\n function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n var axisPointerShow = axisPointerModel.get('show');\n\n if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n return;\n }\n\n if (triggerTooltip == null) {\n triggerTooltip = axisPointerModel.get('triggerTooltip');\n }\n\n axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n var snap = axisPointerModel.get('snap');\n var axisKey = makeKey(axis.model);\n var involveSeries = triggerTooltip || snap || axis.type === 'category';\n var axisInfo = result.axesInfo[axisKey] = {\n key: axisKey,\n axis: axis,\n coordSys: coordSys,\n axisPointerModel: axisPointerModel,\n triggerTooltip: triggerTooltip,\n involveSeries: involveSeries,\n snap: snap,\n useHandle: isHandleTrigger(axisPointerModel),\n seriesModels: [],\n linkGroup: null\n };\n axesInfoInCoordSys[axisKey] = axisInfo;\n result.seriesInvolved = result.seriesInvolved || involveSeries;\n var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n if (groupIndex != null) {\n var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n axesInfo: {}\n });\n linkGroup.axesInfo[axisKey] = axisInfo;\n linkGroup.mapper = linksOption[groupIndex].mapper;\n axisInfo.linkGroup = linkGroup;\n }\n }\n });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n var volatileOption = {};\n each(fields, function (field) {\n volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n });\n volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\n\n if (tooltipAxisPointerModel.get('type') === 'cross') {\n volatileOption.type = 'line';\n }\n\n var labelOption = volatileOption.label || (volatileOption.label = {});\n labelOption.show == null && (labelOption.show = false);\n\n if (fromTooltip === 'cross') {\n var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\n\n if (!triggerTooltip) {\n var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n crossStyle && defaults(labelOption, crossStyle.textStyle);\n }\n }\n\n return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n ecModel.eachSeries(function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n return;\n }\n\n each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n var axis = axisInfo.axis;\n\n if (coordSys.getAxis(axis.dim) === axis) {\n axisInfo.seriesModels.push(seriesModel);\n axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n axisInfo.seriesDataCount += seriesModel.getData().count();\n }\n });\n });\n}\n\nfunction getLinkGroupIndex(linksOption, axis) {\n var axisModel = axis.model;\n var dim = axis.dim;\n\n for (var i = 0; i < linksOption.length; i++) {\n var linkOption = linksOption[i] || {};\n\n if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n return i;\n }\n }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n var axisInfo = getAxisInfo(axisModel);\n\n if (!axisInfo) {\n return;\n }\n\n var axisPointerModel = axisInfo.axisPointerModel;\n var scale = axisInfo.axis.scale;\n var option = axisPointerModel.option;\n var status = axisPointerModel.get('status');\n var value = axisPointerModel.get('value');\n\n if (value != null) {\n value = scale.parse(value);\n }\n\n var useHandle = isHandleTrigger(axisPointerModel);\n\n if (status == null) {\n option.status = useHandle ? 'show' : 'hide';\n }\n\n var extent = scale.getExtent().slice();\n extent[0] > extent[1] && extent.reverse();\n\n if (value == null || value > extent[1]) {\n value = extent[1];\n }\n\n if (value < extent[0]) {\n value = extent[0];\n }\n\n option.value = value;\n\n if (useHandle) {\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n }\n}\nexport function getAxisInfo(axisModel) {\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n var axisInfo = getAxisInfo(axisModel);\n return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n return !!axisPointerModel.get(['handle', 'show']);\n}\n\nexport function makeKey(model) {\n return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper';\nimport ComponentView from '../../view/Component';\nvar axisPointerClazz = {};\n\nvar AxisView = function (_super) {\n __extends(AxisView, _super);\n\n function AxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = AxisView.type;\n return _this;\n }\n\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n _super.prototype.render.apply(this, arguments);\n\n this._doUpdateAxisPointerClass(axisModel, api, true);\n };\n\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n this._doUpdateAxisPointerClass(axisModel, api, false);\n };\n\n AxisView.prototype.remove = function (ecModel, api) {\n var axisPointer = this._axisPointer;\n axisPointer && axisPointer.remove(api);\n };\n\n AxisView.prototype.dispose = function (ecModel, api) {\n this._disposeAxisPointer(api);\n\n _super.prototype.dispose.apply(this, arguments);\n };\n\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n if (!Clazz) {\n return;\n }\n\n var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n };\n\n AxisView.prototype._disposeAxisPointer = function (api) {\n this._axisPointer && this._axisPointer.dispose(api);\n this._axisPointer = null;\n };\n\n AxisView.registerAxisPointerClass = function (type, clazz) {\n if (process.env.NODE_ENV !== 'production') {\n if (axisPointerClazz[type]) {\n throw new Error('axisPointer ' + type + ' exists');\n }\n }\n\n axisPointerClazz[type] = clazz;\n };\n\n ;\n\n AxisView.getAxisPointerClass = function (type) {\n return type && axisPointerClazz[type];\n };\n\n ;\n AxisView.type = 'axis';\n return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitAreaModel = axisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var gridRect = gridModel.coordinateSystem.getRect();\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitAreaModel,\n clamp: true\n });\n\n if (!ticksCoords.length) {\n return;\n }\n\n var areaColorsLen = areaColors.length;\n var lastSplitAreaColors = inner(axisView).splitAreaColors;\n var newSplitAreaColors = zrUtil.createHashMap();\n var colorIndex = 0;\n\n if (lastSplitAreaColors) {\n for (var i = 0; i < ticksCoords.length; i++) {\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n if (cIndex != null) {\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n break;\n }\n }\n }\n\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n var areaStyle = areaStyleModel.getAreaStyle();\n areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n for (var i = 1; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n var x = void 0;\n var y = void 0;\n var width = void 0;\n var height = void 0;\n\n if (axis.isHorizontal()) {\n x = prev;\n y = gridRect.y;\n width = tickCoord - x;\n height = gridRect.height;\n prev = x + width;\n } else {\n x = gridRect.x;\n y = prev;\n width = gridRect.width;\n height = tickCoord - y;\n prev = y + height;\n }\n\n var tickValue = ticksCoords[i - 1].tickValue;\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n axisGroup.add(new graphic.Rect({\n anid: tickValue != null ? 'area_' + tickValue : null,\n shape: {\n x: x,\n y: y,\n width: width,\n height: height\n },\n style: zrUtil.defaults({\n fill: areaColors[colorIndex]\n }, areaStyle),\n autoBatch: true,\n silent: true\n }));\n colorIndex = (colorIndex + 1) % areaColorsLen;\n }\n\n inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView = function (_super) {\n __extends(CartesianAxisView, _super);\n\n function CartesianAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianAxisView.type;\n _this.axisPointerClass = 'CartesianAxisPointer';\n return _this;\n }\n\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n\n if (!axisModel.get('show')) {\n return;\n }\n\n var gridModel = axisModel.getCoordSysModel();\n var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n handleAutoShown: function (elementType) {\n var cartesians = gridModel.coordinateSystem.getCartesians();\n\n for (var i = 0; i < cartesians.length; i++) {\n var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\n\n if (otherAxisType === 'value' || otherAxisType === 'log') {\n return true;\n }\n }\n\n return false;\n }\n }, layout));\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n this._axisGroup.add(axisBuilder.getGroup());\n\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (axisModel.get([name, 'show'])) {\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n }\n }, this);\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n };\n\n CartesianAxisView.prototype.remove = function () {\n rectCoordAxisHandleRemove(this);\n };\n\n CartesianAxisView.type = 'cartesianAxis';\n return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var colorIndex = lineCount++ % lineColors.length;\n var tickValue = ticksCoords[i].tickValue;\n axisGroup.add(new graphic.Line({\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n subPixelOptimize: true,\n autoBatch: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: zrUtil.defaults({\n stroke: lineColors[colorIndex]\n }, lineStyle),\n silent: true\n }));\n }\n },\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n var axis = axisModel.axis;\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var minorTicksCoords = axis.getMinorTicksCoords();\n\n if (!minorTicksCoords.length) {\n return;\n }\n\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n axisGroup.add(new graphic.Line({\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n subPixelOptimize: true,\n autoBatch: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: lineStyle,\n silent: true\n }));\n }\n }\n },\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n }\n};\n\nvar CartesianXAxisView = function (_super) {\n __extends(CartesianXAxisView, _super);\n\n function CartesianXAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianXAxisView.type;\n return _this;\n }\n\n CartesianXAxisView.type = 'xAxis';\n return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView = function (_super) {\n __extends(CartesianYAxisView, _super);\n\n function CartesianYAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CartesianXAxisView.type;\n return _this;\n }\n\n CartesianYAxisView.type = 'yAxis';\n return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport GridModel from '../../coord/cartesian/GridModel';\nimport { Rect } from '../../util/graphic';\nimport { defaults } from 'zrender/lib/core/util';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport Grid from '../../coord/cartesian/Grid';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView';\n\nvar GridView = function (_super) {\n __extends(GridView, _super);\n\n function GridView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'grid';\n return _this;\n }\n\n GridView.prototype.render = function (gridModel, ecModel) {\n this.group.removeAll();\n\n if (gridModel.get('show')) {\n this.group.add(new Rect({\n shape: gridModel.coordinateSystem.getRect(),\n style: defaults({\n fill: gridModel.get('backgroundColor')\n }, gridModel.getItemStyle()),\n silent: true,\n z2: -1\n }));\n }\n };\n\n GridView.type = 'grid';\n return GridView;\n}(ComponentView);\n\nvar extraOption = {\n offset: 0\n};\nexport function install(registers) {\n registers.registerComponentView(GridView);\n registers.registerComponentModel(GridModel);\n registers.registerCoordinateSystem('cartesian2d', Grid);\n axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n registers.registerComponentView(CartesianXAxisView);\n registers.registerComponentView(CartesianYAxisView);\n registers.registerPreprocessor(function (option) {\n if (option.xAxis && option.yAxis && !option.grid) {\n option.grid = {};\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ScatterSeriesModel from './ScatterSeries';\nimport ScatterView from './ScatterView';\nimport { install as installGridSimple } from '../../component/grid/installSimple';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n use(installGridSimple);\n registers.registerSeriesModel(ScatterSeriesModel);\n registers.registerChartView(ScatterView);\n registers.registerLayout(layoutPoints('scatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function radarLayout(ecModel) {\n ecModel.eachSeriesByType('radar', function (seriesModel) {\n var data = seriesModel.getData();\n var points = [];\n var coordSys = seriesModel.coordinateSystem;\n\n if (!coordSys) {\n return;\n }\n\n var axes = coordSys.getIndicatorAxes();\n zrUtil.each(axes, function (axis, axisIndex) {\n data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) {\n points[dataIndex] = points[dataIndex] || [];\n var point = coordSys.dataToPoint(val, axisIndex);\n points[dataIndex][axisIndex] = isValidPoint(point) ? point : getValueMissingPoint(coordSys);\n });\n });\n data.each(function (idx) {\n var firstPoint = zrUtil.find(points[idx], function (point) {\n return isValidPoint(point);\n }) || getValueMissingPoint(coordSys);\n points[idx].push(firstPoint.slice());\n data.setItemLayout(idx, points[idx]);\n });\n });\n}\n\nfunction isValidPoint(point) {\n return !isNaN(point[0]) && !isNaN(point[1]);\n}\n\nfunction getValueMissingPoint(coordSys) {\n return [coordSys.cx, coordSys.cy];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function radarBackwardCompat(option) {\n var polarOptArr = option.polar;\n\n if (polarOptArr) {\n if (!zrUtil.isArray(polarOptArr)) {\n polarOptArr = [polarOptArr];\n }\n\n var polarNotRadar_1 = [];\n zrUtil.each(polarOptArr, function (polarOpt, idx) {\n if (polarOpt.indicator) {\n if (polarOpt.type && !polarOpt.shape) {\n polarOpt.shape = polarOpt.type;\n }\n\n option.radar = option.radar || [];\n\n if (!zrUtil.isArray(option.radar)) {\n option.radar = [option.radar];\n }\n\n option.radar.push(polarOpt);\n } else {\n polarNotRadar_1.push(polarOpt);\n }\n });\n option.polar = polarNotRadar_1;\n }\n\n zrUtil.each(option.series, function (seriesOpt) {\n if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\n seriesOpt.radarIndex = seriesOpt.polarIndex;\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as symbolUtil from '../../util/symbol';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nfunction normalizeSymbolSize(symbolSize) {\n if (!zrUtil.isArray(symbolSize)) {\n symbolSize = [+symbolSize, +symbolSize];\n }\n\n return symbolSize;\n}\n\nvar RadarView = function (_super) {\n __extends(RadarView, _super);\n\n function RadarView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadarView.type;\n return _this;\n }\n\n RadarView.prototype.render = function (seriesModel, ecModel, api) {\n var polar = seriesModel.coordinateSystem;\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n\n function createSymbol(data, idx) {\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n\n if (symbolType === 'none') {\n return;\n }\n\n var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2);\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate') || 0;\n symbolPath.attr({\n style: {\n strokeNoScale: true\n },\n z2: 100,\n scaleX: symbolSize[0] / 2,\n scaleY: symbolSize[1] / 2,\n rotation: symbolRotate * Math.PI / 180 || 0\n });\n return symbolPath;\n }\n\n function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\n symbolGroup.removeAll();\n\n for (var i = 0; i < newPoints.length - 1; i++) {\n var symbolPath = createSymbol(data, idx);\n\n if (symbolPath) {\n symbolPath.__dimIdx = i;\n\n if (oldPoints[i]) {\n symbolPath.setPosition(oldPoints[i]);\n graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n x: newPoints[i][0],\n y: newPoints[i][1]\n }, seriesModel, idx);\n } else {\n symbolPath.setPosition(newPoints[i]);\n }\n\n symbolGroup.add(symbolPath);\n }\n }\n }\n\n function getInitialPoints(points) {\n return zrUtil.map(points, function (pt) {\n return [polar.cx, polar.cy];\n });\n }\n\n data.diff(oldData).add(function (idx) {\n var points = data.getItemLayout(idx);\n\n if (!points) {\n return;\n }\n\n var polygon = new graphic.Polygon();\n var polyline = new graphic.Polyline();\n var target = {\n shape: {\n points: points\n }\n };\n polygon.shape.points = getInitialPoints(points);\n polyline.shape.points = getInitialPoints(points);\n graphic.initProps(polygon, target, seriesModel, idx);\n graphic.initProps(polyline, target, seriesModel, idx);\n var itemGroup = new graphic.Group();\n var symbolGroup = new graphic.Group();\n itemGroup.add(polyline);\n itemGroup.add(polygon);\n itemGroup.add(symbolGroup);\n updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\n data.setItemGraphicEl(idx, itemGroup);\n }).update(function (newIdx, oldIdx) {\n var itemGroup = oldData.getItemGraphicEl(oldIdx);\n var polyline = itemGroup.childAt(0);\n var polygon = itemGroup.childAt(1);\n var symbolGroup = itemGroup.childAt(2);\n var target = {\n shape: {\n points: data.getItemLayout(newIdx)\n }\n };\n\n if (!target.shape.points) {\n return;\n }\n\n updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\n graphic.updateProps(polyline, target, seriesModel);\n graphic.updateProps(polygon, target, seriesModel);\n data.setItemGraphicEl(newIdx, itemGroup);\n }).remove(function (idx) {\n group.remove(oldData.getItemGraphicEl(idx));\n }).execute();\n data.eachItemGraphicEl(function (itemGroup, idx) {\n var itemModel = data.getItemModel(idx);\n var polyline = itemGroup.childAt(0);\n var polygon = itemGroup.childAt(1);\n var symbolGroup = itemGroup.childAt(2);\n var itemStyle = data.getItemVisual(idx, 'style');\n var color = itemStyle.fill;\n group.add(itemGroup);\n polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n fill: 'none',\n stroke: color\n }));\n setStatesStylesFromModel(polyline, itemModel, 'lineStyle');\n setStatesStylesFromModel(polygon, itemModel, 'areaStyle');\n var areaStyleModel = itemModel.getModel('areaStyle');\n var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n polygon.ignore = polygonIgnore;\n zrUtil.each(['emphasis', 'select', 'blur'], function (stateName) {\n var stateModel = itemModel.getModel([stateName, 'areaStyle']);\n var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty();\n polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;\n });\n polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n fill: color,\n opacity: 0.7,\n decal: itemStyle.decal\n }));\n var emphasisModel = itemModel.getModel('emphasis');\n var itemHoverStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n symbolGroup.eachChild(function (symbolPath) {\n if (symbolPath instanceof ZRImage) {\n var pathStyle = symbolPath.style;\n symbolPath.useStyle(zrUtil.extend({\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, itemStyle));\n } else {\n symbolPath.useStyle(itemStyle);\n symbolPath.setColor(color);\n }\n\n var pathEmphasisState = symbolPath.ensureState('emphasis');\n pathEmphasisState.style = zrUtil.clone(itemHoverStyle);\n var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);\n (defaultText == null || isNaN(defaultText)) && (defaultText = '');\n setLabelStyle(symbolPath, getLabelStatesModels(itemModel), {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n labelDimIndex: symbolPath.__dimIdx,\n defaultText: defaultText,\n inheritColor: color,\n defaultOpacity: itemStyle.opacity\n });\n });\n enableHoverEmphasis(itemGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n });\n this._data = data;\n };\n\n RadarView.prototype.remove = function () {\n this.group.removeAll();\n this._data = null;\n };\n\n RadarView.type = 'radar';\n return RadarView;\n}(ChartView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport { createTooltipMarkup, retrieveVisualColorForTooltipMarker } from '../../component/tooltip/tooltipMarkup';\n\nvar RadarSeriesModel = function (_super) {\n __extends(RadarSeriesModel, _super);\n\n function RadarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadarSeriesModel.type;\n _this.useColorPaletteOnData = true;\n _this.hasSymbolVisual = true;\n return _this;\n }\n\n RadarSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments);\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n };\n\n RadarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createListSimply(this, {\n generateCoord: 'indicator_',\n generateCoordCount: Infinity\n });\n };\n\n RadarSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var data = this.getData();\n var coordSys = this.coordinateSystem;\n var indicatorAxes = coordSys.getIndicatorAxes();\n var name = this.getData().getName(dataIndex);\n var nameToDisplay = name === '' ? this.name : name;\n var markerColor = retrieveVisualColorForTooltipMarker(this, dataIndex);\n return createTooltipMarkup('section', {\n header: nameToDisplay,\n sortBlocks: true,\n blocks: zrUtil.map(indicatorAxes, function (axis) {\n var val = data.get(data.mapDimension(axis.dim), dataIndex);\n return createTooltipMarkup('nameValue', {\n markerType: 'subItem',\n markerColor: markerColor,\n name: axis.name,\n value: val,\n sortParam: val\n });\n })\n });\n };\n\n RadarSeriesModel.prototype.getTooltipPosition = function (dataIndex) {\n if (dataIndex != null) {\n var data_1 = this.getData();\n var coordSys = this.coordinateSystem;\n var values = data_1.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n return data_1.mapDimension(dim);\n }), dataIndex);\n\n for (var i = 0, len = values.length; i < len; i++) {\n if (!isNaN(values[i])) {\n var indicatorAxes = coordSys.getIndicatorAxes();\n return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);\n }\n }\n }\n };\n\n RadarSeriesModel.type = 'series.radar';\n RadarSeriesModel.dependencies = ['radar'];\n RadarSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'radar',\n legendHoverLink: true,\n radarIndex: 0,\n lineStyle: {\n width: 2,\n type: 'solid'\n },\n label: {\n position: 'top'\n },\n symbol: 'emptyCircle',\n symbolSize: 4\n };\n return RadarSeriesModel;\n}(SeriesModel);\n\nexport default RadarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport axisDefault from '../axisDefault';\nimport Model from '../../model/Model';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport ComponentModel from '../../model/Component';\nvar valueAxisDefault = axisDefault.value;\n\nfunction defaultsShow(opt, show) {\n return zrUtil.defaults({\n show: show\n }, opt);\n}\n\nvar RadarModel = function (_super) {\n __extends(RadarModel, _super);\n\n function RadarModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadarModel.type;\n return _this;\n }\n\n RadarModel.prototype.optionUpdated = function () {\n var boundaryGap = this.get('boundaryGap');\n var splitNumber = this.get('splitNumber');\n var scale = this.get('scale');\n var axisLine = this.get('axisLine');\n var axisTick = this.get('axisTick');\n var axisLabel = this.get('axisLabel');\n var nameTextStyle = this.get('axisName');\n var showName = this.get(['axisName', 'show']);\n var nameFormatter = this.get(['axisName', 'formatter']);\n var nameGap = this.get('axisNameGap');\n var triggerEvent = this.get('triggerEvent');\n var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\n indicatorOpt.min = 0;\n } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\n indicatorOpt.max = 0;\n }\n\n var iNameTextStyle = nameTextStyle;\n\n if (indicatorOpt.color != null) {\n iNameTextStyle = zrUtil.defaults({\n color: indicatorOpt.color\n }, nameTextStyle);\n }\n\n var innerIndicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n boundaryGap: boundaryGap,\n splitNumber: splitNumber,\n scale: scale,\n axisLine: axisLine,\n axisTick: axisTick,\n axisLabel: axisLabel,\n name: indicatorOpt.text,\n nameLocation: 'end',\n nameGap: nameGap,\n nameTextStyle: iNameTextStyle,\n triggerEvent: triggerEvent\n }, false);\n\n if (!showName) {\n innerIndicatorOpt.name = '';\n }\n\n if (typeof nameFormatter === 'string') {\n var indName = innerIndicatorOpt.name;\n innerIndicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n } else if (typeof nameFormatter === 'function') {\n innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt);\n }\n\n var model = new Model(innerIndicatorOpt, null, this.ecModel);\n zrUtil.mixin(model, AxisModelCommonMixin.prototype);\n model.mainType = 'radar';\n model.componentIndex = this.componentIndex;\n return model;\n }, this);\n this._indicatorModels = indicatorModels;\n };\n\n RadarModel.prototype.getIndicatorModels = function () {\n return this._indicatorModels;\n };\n\n RadarModel.type = 'radar';\n RadarModel.defaultOption = {\n zlevel: 0,\n z: 0,\n center: ['50%', '50%'],\n radius: '75%',\n startAngle: 90,\n axisName: {\n show: true\n },\n boundaryGap: [0, 0],\n splitNumber: 5,\n axisNameGap: 15,\n scale: false,\n shape: 'polygon',\n axisLine: zrUtil.merge({\n lineStyle: {\n color: '#bbb'\n }\n }, valueAxisDefault.axisLine),\n axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\n axisTick: defaultsShow(valueAxisDefault.axisTick, false),\n splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n indicator: []\n };\n return RadarModel;\n}(ComponentModel);\n\nexport default RadarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport * as graphic from '../../util/graphic';\nimport ComponentView from '../../view/Component';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar RadarView = function (_super) {\n __extends(RadarView, _super);\n\n function RadarView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadarView.type;\n return _this;\n }\n\n RadarView.prototype.render = function (radarModel, ecModel, api) {\n var group = this.group;\n group.removeAll();\n\n this._buildAxes(radarModel);\n\n this._buildSplitLineAndArea(radarModel);\n };\n\n RadarView.prototype._buildAxes = function (radarModel) {\n var radar = radarModel.coordinateSystem;\n var indicatorAxes = radar.getIndicatorAxes();\n var axisBuilders = zrUtil.map(indicatorAxes, function (indicatorAxis) {\n var axisBuilder = new AxisBuilder(indicatorAxis.model, {\n position: [radar.cx, radar.cy],\n rotation: indicatorAxis.angle,\n labelDirection: -1,\n tickDirection: -1,\n nameDirection: 1\n });\n return axisBuilder;\n });\n zrUtil.each(axisBuilders, function (axisBuilder) {\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n this.group.add(axisBuilder.getGroup());\n }, this);\n };\n\n RadarView.prototype._buildSplitLineAndArea = function (radarModel) {\n var radar = radarModel.coordinateSystem;\n var indicatorAxes = radar.getIndicatorAxes();\n\n if (!indicatorAxes.length) {\n return;\n }\n\n var shape = radarModel.get('shape');\n var splitLineModel = radarModel.getModel('splitLine');\n var splitAreaModel = radarModel.getModel('splitArea');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var showSplitLine = splitLineModel.get('show');\n var showSplitArea = splitAreaModel.get('show');\n var splitLineColors = lineStyleModel.get('color');\n var splitAreaColors = areaStyleModel.get('color');\n var splitLineColorsArr = zrUtil.isArray(splitLineColors) ? splitLineColors : [splitLineColors];\n var splitAreaColorsArr = zrUtil.isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\n var splitLines = [];\n var splitAreas = [];\n\n function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\n var colorIndex = idx % areaOrLineColorList.length;\n areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\n return colorIndex;\n }\n\n if (shape === 'circle') {\n var ticksRadius = indicatorAxes[0].getTicksCoords();\n var cx = radar.cx;\n var cy = radar.cy;\n\n for (var i = 0; i < ticksRadius.length; i++) {\n if (showSplitLine) {\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n splitLines[colorIndex].push(new graphic.Circle({\n shape: {\n cx: cx,\n cy: cy,\n r: ticksRadius[i].coord\n }\n }));\n }\n\n if (showSplitArea && i < ticksRadius.length - 1) {\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i);\n splitAreas[colorIndex].push(new graphic.Ring({\n shape: {\n cx: cx,\n cy: cy,\n r0: ticksRadius[i].coord,\n r: ticksRadius[i + 1].coord\n }\n }));\n }\n }\n } else {\n var realSplitNumber_1;\n var axesTicksPoints = zrUtil.map(indicatorAxes, function (indicatorAxis, idx) {\n var ticksCoords = indicatorAxis.getTicksCoords();\n realSplitNumber_1 = realSplitNumber_1 == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber_1);\n return zrUtil.map(ticksCoords, function (tickCoord) {\n return radar.coordToPoint(tickCoord.coord, idx);\n });\n });\n var prevPoints = [];\n\n for (var i = 0; i <= realSplitNumber_1; i++) {\n var points = [];\n\n for (var j = 0; j < indicatorAxes.length; j++) {\n points.push(axesTicksPoints[j][i]);\n }\n\n if (points[0]) {\n points.push(points[0].slice());\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Can\\'t draw value axis ' + i);\n }\n }\n\n if (showSplitLine) {\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n splitLines[colorIndex].push(new graphic.Polyline({\n shape: {\n points: points\n }\n }));\n }\n\n if (showSplitArea && prevPoints) {\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1);\n splitAreas[colorIndex].push(new graphic.Polygon({\n shape: {\n points: points.concat(prevPoints)\n }\n }));\n }\n\n prevPoints = points.slice().reverse();\n }\n }\n\n var lineStyle = lineStyleModel.getLineStyle();\n var areaStyle = areaStyleModel.getAreaStyle();\n zrUtil.each(splitAreas, function (splitAreas, idx) {\n this.group.add(graphic.mergePath(splitAreas, {\n style: zrUtil.defaults({\n stroke: 'none',\n fill: splitAreaColorsArr[idx % splitAreaColorsArr.length]\n }, areaStyle),\n silent: true\n }));\n }, this);\n zrUtil.each(splitLines, function (splitLines, idx) {\n this.group.add(graphic.mergePath(splitLines, {\n style: zrUtil.defaults({\n fill: 'none',\n stroke: splitLineColorsArr[idx % splitLineColorsArr.length]\n }, lineStyle),\n silent: true\n }));\n }, this);\n };\n\n RadarView.type = 'radar';\n return RadarView;\n}(ComponentView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar IndicatorAxis = function (_super) {\n __extends(IndicatorAxis, _super);\n\n function IndicatorAxis(dim, scale, radiusExtent) {\n var _this = _super.call(this, dim, scale, radiusExtent) || this;\n\n _this.type = 'value';\n _this.angle = 0;\n _this.name = '';\n return _this;\n }\n\n return IndicatorAxis;\n}(Axis);\n\nexport default IndicatorAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport IndicatorAxis from './IndicatorAxis';\nimport IntervalScale from '../../scale/Interval';\nimport * as numberUtil from '../../util/number';\nimport { getScaleExtent, niceScaleExtent } from '../axisHelper';\nimport { parseAxisModelMinMax } from '../scaleRawExtentInfo';\nimport { map, each } from 'zrender/lib/core/util';\n\nvar Radar = function () {\n function Radar(radarModel, ecModel, api) {\n this.dimensions = [];\n this._model = radarModel;\n this._indicatorAxes = map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n var dim = 'indicator_' + idx;\n var indicatorAxis = new IndicatorAxis(dim, new IntervalScale());\n indicatorAxis.name = indicatorModel.get('name');\n indicatorAxis.model = indicatorModel;\n indicatorModel.axis = indicatorAxis;\n this.dimensions.push(dim);\n return indicatorAxis;\n }, this);\n this.resize(radarModel, api);\n }\n\n Radar.prototype.getIndicatorAxes = function () {\n return this._indicatorAxes;\n };\n\n Radar.prototype.dataToPoint = function (value, indicatorIndex) {\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\n return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n };\n\n Radar.prototype.coordToPoint = function (coord, indicatorIndex) {\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\n var angle = indicatorAxis.angle;\n var x = this.cx + coord * Math.cos(angle);\n var y = this.cy - coord * Math.sin(angle);\n return [x, y];\n };\n\n Radar.prototype.pointToData = function (pt) {\n var dx = pt[0] - this.cx;\n var dy = pt[1] - this.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n var radian = Math.atan2(-dy, dx);\n var minRadianDiff = Infinity;\n var closestAxis;\n var closestAxisIdx = -1;\n\n for (var i = 0; i < this._indicatorAxes.length; i++) {\n var indicatorAxis = this._indicatorAxes[i];\n var diff = Math.abs(radian - indicatorAxis.angle);\n\n if (diff < minRadianDiff) {\n closestAxis = indicatorAxis;\n closestAxisIdx = i;\n minRadianDiff = diff;\n }\n }\n\n return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\n };\n\n Radar.prototype.resize = function (radarModel, api) {\n var center = radarModel.get('center');\n var viewWidth = api.getWidth();\n var viewHeight = api.getHeight();\n var viewSize = Math.min(viewWidth, viewHeight) / 2;\n this.cx = numberUtil.parsePercent(center[0], viewWidth);\n this.cy = numberUtil.parsePercent(center[1], viewHeight);\n this.startAngle = radarModel.get('startAngle') * Math.PI / 180;\n var radius = radarModel.get('radius');\n\n if (typeof radius === 'string' || typeof radius === 'number') {\n radius = [0, radius];\n }\n\n this.r0 = numberUtil.parsePercent(radius[0], viewSize);\n this.r = numberUtil.parsePercent(radius[1], viewSize);\n each(this._indicatorAxes, function (indicatorAxis, idx) {\n indicatorAxis.setExtent(this.r0, this.r);\n var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length;\n angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n indicatorAxis.angle = angle;\n }, this);\n };\n\n Radar.prototype.update = function (ecModel, api) {\n var indicatorAxes = this._indicatorAxes;\n var radarModel = this._model;\n each(indicatorAxes, function (indicatorAxis) {\n indicatorAxis.scale.setExtent(Infinity, -Infinity);\n });\n ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\n if (radarSeries.get('coordinateSystem') !== 'radar' || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\n return;\n }\n\n var data = radarSeries.getData();\n each(indicatorAxes, function (indicatorAxis) {\n indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\n });\n }, this);\n var splitNumber = radarModel.get('splitNumber');\n\n function increaseInterval(interval) {\n var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10));\n var f = interval / exp10;\n\n if (f === 2) {\n f = 5;\n } else {\n f *= 2;\n }\n\n return f * exp10;\n }\n\n each(indicatorAxes, function (indicatorAxis, idx) {\n var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model).extent;\n niceScaleExtent(indicatorAxis.scale, indicatorAxis.model);\n var axisModel = indicatorAxis.model;\n var scale = indicatorAxis.scale;\n var fixedMin = parseAxisModelMinMax(scale, axisModel.get('min', true));\n var fixedMax = parseAxisModelMinMax(scale, axisModel.get('max', true));\n var interval = scale.getInterval();\n\n if (fixedMin != null && fixedMax != null) {\n scale.setExtent(+fixedMin, +fixedMax);\n scale.setInterval((fixedMax - fixedMin) / splitNumber);\n } else if (fixedMin != null) {\n var max = void 0;\n\n do {\n max = fixedMin + interval * splitNumber;\n scale.setExtent(+fixedMin, max);\n scale.setInterval(interval);\n interval = increaseInterval(interval);\n } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1]));\n } else if (fixedMax != null) {\n var min = void 0;\n\n do {\n min = fixedMax - interval * splitNumber;\n scale.setExtent(min, +fixedMax);\n scale.setInterval(interval);\n interval = increaseInterval(interval);\n } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0]));\n } else {\n var nicedSplitNumber = scale.getTicks().length - 1;\n\n if (nicedSplitNumber > splitNumber) {\n interval = increaseInterval(interval);\n }\n\n var max = Math.ceil(rawExtent[1] / interval) * interval;\n var min = numberUtil.round(max - interval * splitNumber);\n scale.setExtent(min, max);\n scale.setInterval(interval);\n }\n });\n };\n\n Radar.prototype.convertToPixel = function (ecModel, finder, value) {\n console.warn('Not implemented.');\n return null;\n };\n\n Radar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n console.warn('Not implemented.');\n return null;\n };\n\n Radar.prototype.containPoint = function (point) {\n console.warn('Not implemented.');\n return false;\n };\n\n Radar.create = function (ecModel, api) {\n var radarList = [];\n ecModel.eachComponent('radar', function (radarModel) {\n var radar = new Radar(radarModel, ecModel, api);\n radarList.push(radar);\n radarModel.coordinateSystem = radar;\n });\n ecModel.eachSeriesByType('radar', function (radarSeries) {\n if (radarSeries.get('coordinateSystem') === 'radar') {\n radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n }\n });\n return radarList;\n };\n\n Radar.dimensions = [];\n return Radar;\n}();\n\nexport default Radar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RadarModel from '../../coord/radar/RadarModel';\nimport RadarView from './RadarView';\nimport Radar from '../../coord/radar/Radar';\nexport function install(registers) {\n registers.registerCoordinateSystem('radar', Radar);\n registers.registerComponentModel(RadarModel);\n registers.registerComponentView(RadarView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport radarLayout from '../radar/radarLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport backwardCompat from '../radar/backwardCompat';\nimport RadarView from './RadarView';\nimport RadarSeriesModel from './RadarSeries';\nimport { install as installRadarComponent } from '../../component/radar/install';\nexport function install(registers) {\n use(installRadarComponent);\n registers.registerChartView(RadarView);\n registers.registerSeriesModel(RadarSeriesModel);\n registers.registerLayout(radarLayout);\n registers.registerProcessor(dataFilter('radar'));\n registers.registerPreprocessor(backwardCompat);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as echarts from '../../core/echarts';\nvar ATTR = '\\0_ec_interaction_mutex';\nexport function take(zr, resourceKey, userKey) {\n var store = getStore(zr);\n store[resourceKey] = userKey;\n}\nexport function release(zr, resourceKey, userKey) {\n var store = getStore(zr);\n var uKey = store[resourceKey];\n\n if (uKey === userKey) {\n store[resourceKey] = null;\n }\n}\nexport function isTaken(zr, resourceKey) {\n return !!getStore(zr)[resourceKey];\n}\n\nfunction getStore(zr) {\n return zr[ATTR] || (zr[ATTR] = {});\n}\n\necharts.registerAction({\n type: 'takeGlobalCursor',\n event: 'globalCursorTaken',\n update: 'update'\n}, function () {});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as interactionMutex from './interactionMutex';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util';\n\nvar RoamController = function (_super) {\n __extends(RoamController, _super);\n\n function RoamController(zr) {\n var _this = _super.call(this) || this;\n\n _this._zr = zr;\n var mousedownHandler = bind(_this._mousedownHandler, _this);\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n var mouseupHandler = bind(_this._mouseupHandler, _this);\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n var pinchHandler = bind(_this._pinchHandler, _this);\n\n _this.enable = function (controlType, opt) {\n this.disable();\n this._opt = defaults(clone(opt) || {}, {\n zoomOnMouseWheel: true,\n moveOnMouseMove: true,\n moveOnMouseWheel: false,\n preventDefaultMouseMove: true\n });\n\n if (controlType == null) {\n controlType = true;\n }\n\n if (controlType === true || controlType === 'move' || controlType === 'pan') {\n zr.on('mousedown', mousedownHandler);\n zr.on('mousemove', mousemoveHandler);\n zr.on('mouseup', mouseupHandler);\n }\n\n if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n zr.on('mousewheel', mousewheelHandler);\n zr.on('pinch', pinchHandler);\n }\n };\n\n _this.disable = function () {\n zr.off('mousedown', mousedownHandler);\n zr.off('mousemove', mousemoveHandler);\n zr.off('mouseup', mouseupHandler);\n zr.off('mousewheel', mousewheelHandler);\n zr.off('pinch', pinchHandler);\n };\n\n return _this;\n }\n\n RoamController.prototype.isDragging = function () {\n return this._dragging;\n };\n\n RoamController.prototype.isPinching = function () {\n return this._pinching;\n };\n\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\n this.pointerChecker = pointerChecker;\n };\n\n RoamController.prototype.dispose = function () {\n this.disable();\n };\n\n RoamController.prototype._mousedownHandler = function (e) {\n if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e) || e.target && e.target.draggable) {\n return;\n }\n\n var x = e.offsetX;\n var y = e.offsetY;\n\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n this._x = x;\n this._y = y;\n this._dragging = true;\n }\n };\n\n RoamController.prototype._mousemoveHandler = function (e) {\n if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n return;\n }\n\n var x = e.offsetX;\n var y = e.offsetY;\n var oldX = this._x;\n var oldY = this._y;\n var dx = x - oldX;\n var dy = y - oldY;\n this._x = x;\n this._y = y;\n this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n trigger(this, 'pan', 'moveOnMouseMove', e, {\n dx: dx,\n dy: dy,\n oldX: oldX,\n oldY: oldY,\n newX: x,\n newY: y,\n isAvailableBehavior: null\n });\n };\n\n RoamController.prototype._mouseupHandler = function (e) {\n if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n this._dragging = false;\n }\n };\n\n RoamController.prototype._mousewheelHandler = function (e) {\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n var wheelDelta = e.wheelDelta;\n var absWheelDeltaDelta = Math.abs(wheelDelta);\n var originX = e.offsetX;\n var originY = e.offsetY;\n\n if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n return;\n }\n\n if (shouldZoom) {\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n var scale = wheelDelta > 0 ? factor : 1 / factor;\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n scale: scale,\n originX: originX,\n originY: originY,\n isAvailableBehavior: null\n });\n }\n\n if (shouldMove) {\n var absDelta = Math.abs(wheelDelta);\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n scrollDelta: scrollDelta,\n originX: originX,\n originY: originY,\n isAvailableBehavior: null\n });\n }\n };\n\n RoamController.prototype._pinchHandler = function (e) {\n if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n return;\n }\n\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n checkPointerAndTrigger(this, 'zoom', null, e, {\n scale: scale,\n originX: e.pinchX,\n originY: e.pinchY,\n isAvailableBehavior: null\n });\n };\n\n return RoamController;\n}(Eventful);\n\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n eventTool.stop(e.event);\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n }\n}\n\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\n controller.trigger(eventName, contollerEvent);\n}\n\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n var setting = settings[behaviorToCheck];\n return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\n\nexport default RoamController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function updateViewOnPan(controllerHost, dx, dy) {\n var target = controllerHost.target;\n target.x += dx;\n target.y += dy;\n target.dirty();\n}\nexport function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\n var target = controllerHost.target;\n var zoomLimit = controllerHost.zoomLimit;\n var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\n newZoom *= zoomDelta;\n\n if (zoomLimit) {\n var zoomMin = zoomLimit.min || 0;\n var zoomMax = zoomLimit.max || Infinity;\n newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\n }\n\n var zoomScale = newZoom / controllerHost.zoom;\n controllerHost.zoom = newZoom;\n target.x -= (zoomX - target.x) * (zoomScale - 1);\n target.y -= (zoomY - target.y) * (zoomScale - 1);\n target.scaleX *= zoomScale;\n target.scaleY *= zoomScale;\n target.dirty();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar IRRELEVANT_EXCLUDES = {\n 'axisPointer': 1,\n 'tooltip': 1,\n 'brush': 1\n};\nexport function onIrrelevantElement(e, api, targetCoordSysModel) {\n var model = api.getComponentByElement(e.topTarget);\n var coordSys = model && model.coordinateSystem;\n return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType) && coordSys && coordSys.model !== targetCoordSysModel;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from '../Region';\nvar geoCoord = [126, 25];\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\n\nfor (var i = 0; i < points.length; i++) {\n for (var k = 0; k < points[i].length; k++) {\n points[i][k][0] /= 10.5;\n points[i][k][1] /= -10.5 / 0.75;\n points[i][k][0] += geoCoord[0];\n points[i][k][1] += geoCoord[1];\n }\n}\n\nexport default function fixNanhai(mapType, regions) {\n if (mapType === 'china') {\n regions.push(new Region('南海诸岛', zrUtil.map(points, function (exterior) {\n return {\n type: 'polygon',\n exterior: exterior\n };\n }), geoCoord));\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar coordsOffsetMap = {\n '南海诸岛': [32, 80],\n '广东': [0, -10],\n '香港': [10, 5],\n '澳门': [-10, 10],\n '天津': [5, 5]\n};\nexport default function fixTextCoords(mapType, region) {\n if (mapType === 'china') {\n var coordFix = coordsOffsetMap[region.name];\n\n if (coordFix) {\n var cp = region.center;\n cp[0] += coordFix[0] / 10.5;\n cp[1] += -coordFix[1] / (10.5 / 0.75);\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar geoCoordMap = {\n 'Russia': [100, 60],\n 'United States': [-99, 38],\n 'United States of America': [-99, 38]\n};\nexport default function fixGeoCoords(mapType, region) {\n if (mapType === 'world') {\n var geoCoord = geoCoordMap[region.name];\n\n if (geoCoord) {\n var cp = region.center;\n cp[0] = geoCoord[0];\n cp[1] = geoCoord[1];\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]];\nexport default function fixDiaoyuIsland(mapType, region) {\n if (mapType === 'china' && region.name === '台湾') {\n region.geometries.push({\n type: 'polygon',\n exterior: points[0]\n });\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport parseGeoJson from './parseGeoJson';\nimport { makeInner } from '../../util/model';\nimport fixNanhai from './fix/nanhai';\nimport fixTextCoord from './fix/textCoord';\nimport fixGeoCoord from './fix/geoCoord';\nimport fixDiaoyuIsland from './fix/diaoyuIsland';\nvar inner = makeInner();\nexport default {\n load: function (mapName, mapRecord, nameProperty) {\n var parsed = inner(mapRecord).parsed;\n\n if (parsed) {\n return parsed;\n }\n\n var specialAreas = mapRecord.specialAreas || {};\n var geoJSON = mapRecord.geoJSON;\n var regions;\n\n try {\n regions = geoJSON ? parseGeoJson(geoJSON, nameProperty) : [];\n } catch (e) {\n throw new Error('Invalid geoJson format\\n' + e.message);\n }\n\n fixNanhai(mapName, regions);\n each(regions, function (region) {\n var regionName = region.name;\n fixTextCoord(mapName, region);\n fixGeoCoord(mapName, region);\n fixDiaoyuIsland(mapName, region);\n var specialArea = specialAreas[regionName];\n\n if (specialArea) {\n region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\n }\n });\n return inner(mapRecord).parsed = {\n regions: regions,\n boundingRect: getBoundingRect(regions)\n };\n }\n};\n\nfunction getBoundingRect(regions) {\n var rect;\n\n for (var i = 0; i < regions.length; i++) {\n var regionRect = regions[i].getBoundingRect();\n rect = rect || regionRect.clone();\n rect.union(regionRect);\n }\n\n return rect;\n}","import Group from '../graphic/Group';\nimport ZRImage from '../graphic/Image';\nimport Circle from '../graphic/shape/Circle';\nimport Rect from '../graphic/shape/Rect';\nimport Ellipse from '../graphic/shape/Ellipse';\nimport Line from '../graphic/shape/Line';\nimport Path from '../graphic/Path';\nimport Polygon from '../graphic/shape/Polygon';\nimport Polyline from '../graphic/shape/Polyline';\nimport * as matrix from '../core/matrix';\nimport { createFromString } from './path';\nimport { extend, defaults, trim, each, map } from '../core/util';\nimport LinearGradient from '../graphic/LinearGradient';\nimport TSpan from '../graphic/TSpan';\nimport { parseXML } from './parseXML';\nvar DILIMITER_REG = /[\\s,]+/;\nvar nodeParsers;\nvar SVGParser = (function () {\n function SVGParser() {\n this._defs = {};\n this._root = null;\n this._isDefine = false;\n this._isText = false;\n }\n SVGParser.prototype.parse = function (xml, opt) {\n opt = opt || {};\n var svg = parseXML(xml);\n if (!svg) {\n throw new Error('Illegal svg');\n }\n var root = new Group();\n this._root = root;\n var viewBox = svg.getAttribute('viewBox') || '';\n var width = parseFloat((svg.getAttribute('width') || opt.width));\n var height = parseFloat((svg.getAttribute('height') || opt.height));\n isNaN(width) && (width = null);\n isNaN(height) && (height = null);\n parseAttributes(svg, root, null, true);\n var child = svg.firstChild;\n while (child) {\n this._parseNode(child, root);\n child = child.nextSibling;\n }\n var viewBoxRect;\n var viewBoxTransform;\n if (viewBox) {\n var viewBoxArr = trim(viewBox).split(DILIMITER_REG);\n if (viewBoxArr.length >= 4) {\n viewBoxRect = {\n x: parseFloat((viewBoxArr[0] || 0)),\n y: parseFloat((viewBoxArr[1] || 0)),\n width: parseFloat(viewBoxArr[2]),\n height: parseFloat(viewBoxArr[3])\n };\n }\n }\n if (viewBoxRect && width != null && height != null) {\n viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height);\n if (!opt.ignoreViewBox) {\n var elRoot = root;\n root = new Group();\n root.add(elRoot);\n elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n elRoot.x = viewBoxTransform.x;\n elRoot.y = viewBoxTransform.y;\n }\n }\n if (!opt.ignoreRootClip && width != null && height != null) {\n root.setClipPath(new Rect({\n shape: { x: 0, y: 0, width: width, height: height }\n }));\n }\n return {\n root: root,\n width: width,\n height: height,\n viewBoxRect: viewBoxRect,\n viewBoxTransform: viewBoxTransform\n };\n };\n SVGParser.prototype._parseNode = function (xmlNode, parentGroup) {\n var nodeName = xmlNode.nodeName.toLowerCase();\n if (nodeName === 'defs') {\n this._isDefine = true;\n }\n else if (nodeName === 'text') {\n this._isText = true;\n }\n var el;\n if (this._isDefine) {\n var parser = defineParsers[nodeName];\n if (parser) {\n var def = parser.call(this, xmlNode);\n var id = xmlNode.getAttribute('id');\n if (id) {\n this._defs[id] = def;\n }\n }\n }\n else {\n var parser = nodeParsers[nodeName];\n if (parser) {\n el = parser.call(this, xmlNode, parentGroup);\n parentGroup.add(el);\n }\n }\n if (el) {\n var child = xmlNode.firstChild;\n while (child) {\n if (child.nodeType === 1) {\n this._parseNode(child, el);\n }\n if (child.nodeType === 3 && this._isText) {\n this._parseText(child, el);\n }\n child = child.nextSibling;\n }\n }\n if (nodeName === 'defs') {\n this._isDefine = false;\n }\n else if (nodeName === 'text') {\n this._isText = false;\n }\n };\n SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n if (xmlNode.nodeType === 1) {\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n this._textX += parseFloat(dx);\n this._textY += parseFloat(dy);\n }\n var text = new TSpan({\n style: {\n text: xmlNode.textContent\n },\n x: this._textX || 0,\n y: this._textY || 0\n });\n inheritStyle(parentGroup, text);\n parseAttributes(xmlNode, text, this._defs);\n var textStyle = text.style;\n var fontSize = textStyle.fontSize;\n if (fontSize && fontSize < 9) {\n textStyle.fontSize = 9;\n text.scaleX *= fontSize / 9;\n text.scaleY *= fontSize / 9;\n }\n var font = (textStyle.fontSize || textStyle.fontFamily) && [\n textStyle.fontStyle,\n textStyle.fontWeight,\n (textStyle.fontSize || 12) + 'px',\n textStyle.fontFamily || 'sans-serif'\n ].join(' ');\n textStyle.font = font;\n var rect = text.getBoundingRect();\n this._textX += rect.width;\n parentGroup.add(text);\n return text;\n };\n SVGParser.internalField = (function () {\n nodeParsers = {\n 'g': function (xmlNode, parentGroup) {\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n return g;\n },\n 'rect': function (xmlNode, parentGroup) {\n var rect = new Rect();\n inheritStyle(parentGroup, rect);\n parseAttributes(xmlNode, rect, this._defs);\n rect.setShape({\n x: parseFloat(xmlNode.getAttribute('x') || '0'),\n y: parseFloat(xmlNode.getAttribute('y') || '0'),\n width: parseFloat(xmlNode.getAttribute('width') || '0'),\n height: parseFloat(xmlNode.getAttribute('height') || '0')\n });\n return rect;\n },\n 'circle': function (xmlNode, parentGroup) {\n var circle = new Circle();\n inheritStyle(parentGroup, circle);\n parseAttributes(xmlNode, circle, this._defs);\n circle.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n r: parseFloat(xmlNode.getAttribute('r') || '0')\n });\n return circle;\n },\n 'line': function (xmlNode, parentGroup) {\n var line = new Line();\n inheritStyle(parentGroup, line);\n parseAttributes(xmlNode, line, this._defs);\n line.setShape({\n x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\n y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\n x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\n y2: parseFloat(xmlNode.getAttribute('y2') || '0')\n });\n return line;\n },\n 'ellipse': function (xmlNode, parentGroup) {\n var ellipse = new Ellipse();\n inheritStyle(parentGroup, ellipse);\n parseAttributes(xmlNode, ellipse, this._defs);\n ellipse.setShape({\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\n ry: parseFloat(xmlNode.getAttribute('ry') || '0')\n });\n return ellipse;\n },\n 'polygon': function (xmlNode, parentGroup) {\n var pointsStr = xmlNode.getAttribute('points');\n var pointsArr;\n if (pointsStr) {\n pointsArr = parsePoints(pointsStr);\n }\n var polygon = new Polygon({\n shape: {\n points: pointsArr || []\n }\n });\n inheritStyle(parentGroup, polygon);\n parseAttributes(xmlNode, polygon, this._defs);\n return polygon;\n },\n 'polyline': function (xmlNode, parentGroup) {\n var path = new Path();\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defs);\n var pointsStr = xmlNode.getAttribute('points');\n var pointsArr;\n if (pointsStr) {\n pointsArr = parsePoints(pointsStr);\n }\n var polyline = new Polyline({\n shape: {\n points: pointsArr || []\n }\n });\n return polyline;\n },\n 'image': function (xmlNode, parentGroup) {\n var img = new ZRImage();\n inheritStyle(parentGroup, img);\n parseAttributes(xmlNode, img, this._defs);\n img.setStyle({\n image: xmlNode.getAttribute('xlink:href'),\n x: +xmlNode.getAttribute('x'),\n y: +xmlNode.getAttribute('y'),\n width: +xmlNode.getAttribute('width'),\n height: +xmlNode.getAttribute('height')\n });\n return img;\n },\n 'text': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x') || '0';\n var y = xmlNode.getAttribute('y') || '0';\n var dx = xmlNode.getAttribute('dx') || '0';\n var dy = xmlNode.getAttribute('dy') || '0';\n this._textX = parseFloat(x) + parseFloat(dx);\n this._textY = parseFloat(y) + parseFloat(dy);\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n return g;\n },\n 'tspan': function (xmlNode, parentGroup) {\n var x = xmlNode.getAttribute('x');\n var y = xmlNode.getAttribute('y');\n if (x != null) {\n this._textX = parseFloat(x);\n }\n if (y != null) {\n this._textY = parseFloat(y);\n }\n var dx = xmlNode.getAttribute('dx') || 0;\n var dy = xmlNode.getAttribute('dy') || 0;\n var g = new Group();\n inheritStyle(parentGroup, g);\n parseAttributes(xmlNode, g, this._defs);\n this._textX += dx;\n this._textY += dy;\n return g;\n },\n 'path': function (xmlNode, parentGroup) {\n var d = xmlNode.getAttribute('d') || '';\n var path = createFromString(d);\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defs);\n return path;\n }\n };\n })();\n return SVGParser;\n}());\nvar defineParsers = {\n 'lineargradient': function (xmlNode) {\n var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\n var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\n var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\n var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\n var gradient = new LinearGradient(x1, y1, x2, y2);\n _parseGradientColorStops(xmlNode, gradient);\n return gradient;\n }\n};\nfunction _parseGradientColorStops(xmlNode, gradient) {\n var stop = xmlNode.firstChild;\n while (stop) {\n if (stop.nodeType === 1) {\n var offsetStr = stop.getAttribute('offset');\n var offset = void 0;\n if (offsetStr.indexOf('%') > 0) {\n offset = parseInt(offsetStr, 10) / 100;\n }\n else if (offsetStr) {\n offset = parseFloat(offsetStr);\n }\n else {\n offset = 0;\n }\n var stopColor = stop.getAttribute('stop-color') || '#000000';\n gradient.colorStops.push({\n offset: offset,\n color: stopColor\n });\n }\n stop = stop.nextSibling;\n }\n}\nfunction inheritStyle(parent, child) {\n if (parent && parent.__inheritedStyle) {\n if (!child.__inheritedStyle) {\n child.__inheritedStyle = {};\n }\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\n }\n}\nfunction parsePoints(pointsString) {\n var list = trim(pointsString).split(DILIMITER_REG);\n var points = [];\n for (var i = 0; i < list.length; i += 2) {\n var x = parseFloat(list[i]);\n var y = parseFloat(list[i + 1]);\n points.push([x, y]);\n }\n return points;\n}\nvar attributesMap = {\n 'fill': 'fill',\n 'stroke': 'stroke',\n 'stroke-width': 'lineWidth',\n 'opacity': 'opacity',\n 'fill-opacity': 'fillOpacity',\n 'stroke-opacity': 'strokeOpacity',\n 'stroke-dasharray': 'lineDash',\n 'stroke-dashoffset': 'lineDashOffset',\n 'stroke-linecap': 'lineCap',\n 'stroke-linejoin': 'lineJoin',\n 'stroke-miterlimit': 'miterLimit',\n 'font-family': 'fontFamily',\n 'font-size': 'fontSize',\n 'font-style': 'fontStyle',\n 'font-weight': 'fontWeight',\n 'text-align': 'textAlign',\n 'alignment-baseline': 'textBaseline'\n};\nfunction parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\n var disp = el;\n var zrStyle = disp.__inheritedStyle || {};\n if (xmlNode.nodeType === 1) {\n parseTransformAttribute(xmlNode, el);\n extend(zrStyle, parseStyleAttribute(xmlNode));\n if (!onlyInlineStyle) {\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName)) {\n var attrValue = xmlNode.getAttribute(svgAttrName);\n if (attrValue != null) {\n zrStyle[attributesMap[svgAttrName]] = attrValue;\n }\n }\n }\n }\n }\n disp.style = disp.style || {};\n zrStyle.fill != null && (disp.style.fill = getPaint(zrStyle.fill, defs));\n zrStyle.stroke != null && (disp.style.stroke = getPaint(zrStyle.stroke, defs));\n each([\n 'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\n ], function (propName) {\n zrStyle[propName] != null && (disp.style[propName] = parseFloat(zrStyle[propName]));\n });\n if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\n zrStyle.textBaseline = 'alphabetic';\n }\n if (zrStyle.textBaseline === 'alphabetic') {\n zrStyle.textBaseline = 'bottom';\n }\n if (zrStyle.textAlign === 'start') {\n zrStyle.textAlign = 'left';\n }\n if (zrStyle.textAlign === 'end') {\n zrStyle.textAlign = 'right';\n }\n each(['lineDashOffset', 'lineCap', 'lineJoin',\n 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'\n ], function (propName) {\n zrStyle[propName] != null && (disp.style[propName] = zrStyle[propName]);\n });\n if (zrStyle.lineDash) {\n disp.style.lineDash = map(trim(zrStyle.lineDash).split(DILIMITER_REG), function (str) {\n return parseFloat(str);\n });\n }\n disp.__inheritedStyle = zrStyle;\n}\nvar urlRegex = /url\\(\\s*#(.*?)\\)/;\nfunction getPaint(str, defs) {\n var urlMatch = defs && str && str.match(urlRegex);\n if (urlMatch) {\n var url = trim(urlMatch[1]);\n var def = defs[url];\n return def;\n }\n return str;\n}\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\nfunction parseTransformAttribute(xmlNode, node) {\n var transform = xmlNode.getAttribute('transform');\n if (transform) {\n transform = transform.replace(/,/g, ' ');\n var transformOps_1 = [];\n var m = null;\n transform.replace(transformRegex, function (str, type, value) {\n transformOps_1.push(type, value);\n return '';\n });\n for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\n var value = transformOps_1[i];\n var type = transformOps_1[i - 1];\n var valueArr = void 0;\n m = m || matrix.create();\n switch (type) {\n case 'translate':\n valueArr = trim(value).split(DILIMITER_REG);\n matrix.translate(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\n break;\n case 'scale':\n valueArr = trim(value).split(DILIMITER_REG);\n matrix.scale(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\n break;\n case 'rotate':\n valueArr = trim(value).split(DILIMITER_REG);\n matrix.rotate(m, m, parseFloat(valueArr[0]));\n break;\n case 'skew':\n valueArr = trim(value).split(DILIMITER_REG);\n console.warn('Skew transform is not supported yet');\n break;\n case 'matrix':\n valueArr = trim(value).split(DILIMITER_REG);\n m[0] = parseFloat(valueArr[0]);\n m[1] = parseFloat(valueArr[1]);\n m[2] = parseFloat(valueArr[2]);\n m[3] = parseFloat(valueArr[3]);\n m[4] = parseFloat(valueArr[4]);\n m[5] = parseFloat(valueArr[5]);\n break;\n }\n }\n node.setLocalTransform(m);\n }\n}\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\nfunction parseStyleAttribute(xmlNode) {\n var style = xmlNode.getAttribute('style');\n var result = {};\n if (!style) {\n return result;\n }\n var styleList = {};\n styleRegex.lastIndex = 0;\n var styleRegResult;\n while ((styleRegResult = styleRegex.exec(style)) != null) {\n styleList[styleRegResult[1]] = styleRegResult[2];\n }\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\n result[attributesMap[svgAttrName]] = styleList[svgAttrName];\n }\n }\n return result;\n}\nexport function makeViewBoxTransform(viewBoxRect, width, height) {\n var scaleX = width / viewBoxRect.width;\n var scaleY = height / viewBoxRect.height;\n var scale = Math.min(scaleX, scaleY);\n return {\n scale: scale,\n x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2,\n y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2\n };\n}\nexport function parseSVG(xml, opt) {\n var parser = new SVGParser();\n return parser.parse(xml, opt);\n}\nexport { parseXML };\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseSVG, makeViewBoxTransform } from 'zrender/lib/tool/parseSVG';\nimport Group from 'zrender/lib/graphic/Group';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport { assert, createHashMap } from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport default {\n load: function (mapName, mapRecord) {\n var originRoot = inner(mapRecord).originRoot;\n\n if (originRoot) {\n return {\n root: originRoot,\n boundingRect: inner(mapRecord).boundingRect\n };\n }\n\n var graphic = buildGraphic(mapRecord);\n inner(mapRecord).originRoot = graphic.root;\n inner(mapRecord).boundingRect = graphic.boundingRect;\n return graphic;\n },\n makeGraphic: function (mapName, mapRecord, hostKey) {\n var field = inner(mapRecord);\n var rootMap = field.rootMap || (field.rootMap = createHashMap());\n var root = rootMap.get(hostKey);\n\n if (root) {\n return root;\n }\n\n var originRoot = field.originRoot;\n var boundingRect = field.boundingRect;\n\n if (!field.originRootHostKey) {\n field.originRootHostKey = hostKey;\n root = originRoot;\n } else {\n root = buildGraphic(mapRecord, boundingRect).root;\n }\n\n return rootMap.set(hostKey, root);\n },\n removeGraphic: function (mapName, mapRecord, hostKey) {\n var field = inner(mapRecord);\n var rootMap = field.rootMap;\n rootMap && rootMap.removeKey(hostKey);\n\n if (hostKey === field.originRootHostKey) {\n field.originRootHostKey = null;\n }\n }\n};\n\nfunction buildGraphic(mapRecord, boundingRect) {\n var svgXML = mapRecord.svgXML;\n var result;\n var root;\n\n try {\n result = svgXML && parseSVG(svgXML, {\n ignoreViewBox: true,\n ignoreRootClip: true\n }) || {};\n root = result.root;\n assert(root != null);\n } catch (e) {\n throw new Error('Invalid svg format\\n' + e.message);\n }\n\n var svgWidth = result.width;\n var svgHeight = result.height;\n var viewBoxRect = result.viewBoxRect;\n\n if (!boundingRect) {\n boundingRect = svgWidth == null || svgHeight == null ? root.getBoundingRect() : new BoundingRect(0, 0, 0, 0);\n\n if (svgWidth != null) {\n boundingRect.width = svgWidth;\n }\n\n if (svgHeight != null) {\n boundingRect.height = svgHeight;\n }\n }\n\n if (viewBoxRect) {\n var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect.width, boundingRect.height);\n var elRoot = root;\n root = new Group();\n root.add(elRoot);\n elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n elRoot.x = viewBoxTransform.x;\n elRoot.y = viewBoxTransform.y;\n }\n\n root.setClipPath(new Rect({\n shape: boundingRect.plain()\n }));\n return {\n root: root,\n boundingRect: boundingRect\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap } from 'zrender/lib/core/util';\nimport mapDataStorage from './mapDataStorage';\nimport geoJSONLoader from './geoJSONLoader';\nimport geoSVGLoader from './geoSVGLoader';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nvar loaders = {\n geoJSON: geoJSONLoader,\n svg: geoSVGLoader\n};\nexport default {\n load: function (mapName, nameMap, nameProperty) {\n var regions = [];\n var regionsMap = createHashMap();\n var nameCoordMap = createHashMap();\n var boundingRect;\n var mapRecords = retrieveMap(mapName);\n each(mapRecords, function (record) {\n var singleSource = loaders[record.type].load(mapName, record, nameProperty);\n each(singleSource.regions, function (region) {\n var regionName = region.name;\n\n if (nameMap && nameMap.hasOwnProperty(regionName)) {\n region = region.cloneShallow(regionName = nameMap[regionName]);\n }\n\n regions.push(region);\n regionsMap.set(regionName, region);\n nameCoordMap.set(regionName, region.center);\n });\n var rect = singleSource.boundingRect;\n\n if (rect) {\n boundingRect ? boundingRect.union(rect) : boundingRect = rect.clone();\n }\n });\n return {\n regions: regions,\n regionsMap: regionsMap,\n nameCoordMap: nameCoordMap,\n boundingRect: boundingRect || new BoundingRect(0, 0, 0, 0)\n };\n },\n makeGraphic: function (mapName, hostKey) {\n var mapRecords = retrieveMap(mapName);\n var results = [];\n each(mapRecords, function (record) {\n var method = loaders[record.type].makeGraphic;\n method && results.push(method(mapName, record, hostKey));\n });\n return results;\n },\n removeGraphic: function (mapName, hostKey) {\n var mapRecords = retrieveMap(mapName);\n each(mapRecords, function (record) {\n var method = loaders[record.type].makeGraphic;\n method && method(mapName, record, hostKey);\n });\n }\n};\n\nfunction mapNotExistsError(mapName) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Map ' + mapName + ' not exists. The GeoJSON of the map must be provided.');\n }\n}\n\nfunction retrieveMap(mapName) {\n var mapRecords = mapDataStorage.retrieveMap(mapName) || [];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!mapRecords.length) {\n mapNotExistsError(mapName);\n }\n }\n\n return mapRecords;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport RoamController from './RoamController';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, DISPLAY_STATES } from '../../util/states';\nimport geoSourceManager from '../../coord/geo/geoSourceManager';\nimport { getUID } from '../../util/component';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\n\nfunction getFixedItemStyle(model) {\n var itemStyle = model.getItemStyle();\n var areaColor = model.get('areaColor');\n\n if (areaColor != null) {\n itemStyle.fill = areaColor;\n }\n\n return itemStyle;\n}\n\nvar MapDraw = function () {\n function MapDraw(api) {\n var group = new graphic.Group();\n this.uid = getUID('ec_map_draw');\n this._controller = new RoamController(api.getZr());\n this._controllerHost = {\n target: group\n };\n this.group = group;\n group.add(this._regionsGroup = new graphic.Group());\n group.add(this._backgroundGroup = new graphic.Group());\n }\n\n MapDraw.prototype.draw = function (mapOrGeoModel, ecModel, api, fromView, payload) {\n var isGeo = mapOrGeoModel.mainType === 'geo';\n var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\n isGeo && ecModel.eachComponent({\n mainType: 'series',\n subType: 'map'\n }, function (mapSeries) {\n if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\n data = mapSeries.getData();\n }\n });\n var geo = mapOrGeoModel.coordinateSystem;\n\n this._updateBackground(geo);\n\n var regionsGroup = this._regionsGroup;\n var group = this.group;\n var transformInfo = geo.getTransformInfo();\n var isFirstDraw = !regionsGroup.childAt(0) || payload;\n var targetScaleX;\n var targetScaleY;\n\n if (isFirstDraw) {\n group.transform = transformInfo.roamTransform;\n group.decomposeTransform();\n group.dirty();\n } else {\n var target = new Transformable();\n target.transform = transformInfo.roamTransform;\n target.decomposeTransform();\n var props = {\n scaleX: target.scaleX,\n scaleY: target.scaleY,\n x: target.x,\n y: target.y\n };\n targetScaleX = target.scaleX;\n targetScaleY = target.scaleY;\n graphic.updateProps(group, props, mapOrGeoModel);\n }\n\n regionsGroup.removeAll();\n var nameMap = zrUtil.createHashMap();\n var isVisualEncodedByVisualMap = data && data.getVisual('visualMeta') && data.getVisual('visualMeta').length > 0;\n zrUtil.each(geo.regions, function (region) {\n var regionGroup = nameMap.get(region.name) || nameMap.set(region.name, new graphic.Group());\n var compoundPath = new graphic.CompoundPath({\n segmentIgnoreThreshold: 1,\n shape: {\n paths: []\n }\n });\n regionGroup.add(compoundPath);\n var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel;\n var itemStyleModel = regionModel.getModel('itemStyle');\n var emphasisModel = regionModel.getModel('emphasis');\n var emphasisItemStyleModel = emphasisModel.getModel('itemStyle');\n var blurItemStyleModel = regionModel.getModel(['blur', 'itemStyle']);\n var selectItemStyleModel = regionModel.getModel(['select', 'itemStyle']);\n var itemStyle = getFixedItemStyle(itemStyleModel);\n var emphasisItemStyle = getFixedItemStyle(emphasisItemStyleModel);\n var blurItemStyle = getFixedItemStyle(blurItemStyleModel);\n var selectItemStyle = getFixedItemStyle(selectItemStyleModel);\n var dataIdx;\n\n if (data) {\n dataIdx = data.indexOfName(region.name);\n var style = data.getItemVisual(dataIdx, 'style');\n var decal = data.getItemVisual(dataIdx, 'decal');\n\n if (isVisualEncodedByVisualMap && style.fill) {\n itemStyle.fill = style.fill;\n }\n\n if (decal) {\n itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n }\n }\n\n var sx = transformInfo.rawScaleX;\n var sy = transformInfo.rawScaleY;\n var offsetX = transformInfo.rawX;\n var offsetY = transformInfo.rawY;\n\n var transformPoint = function (point) {\n return [point[0] * sx + offsetX, point[1] * sy + offsetY];\n };\n\n zrUtil.each(region.geometries, function (geometry) {\n if (geometry.type !== 'polygon') {\n return;\n }\n\n var points = [];\n\n for (var i = 0; i < geometry.exterior.length; ++i) {\n points.push(transformPoint(geometry.exterior[i]));\n }\n\n compoundPath.shape.paths.push(new graphic.Polygon({\n segmentIgnoreThreshold: 1,\n shape: {\n points: points\n }\n }));\n\n for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); ++i) {\n var interior = geometry.interiors[i];\n var points_1 = [];\n\n for (var j = 0; j < interior.length; ++j) {\n points_1.push(transformPoint(interior[j]));\n }\n\n compoundPath.shape.paths.push(new graphic.Polygon({\n segmentIgnoreThreshold: 1,\n shape: {\n points: points_1\n }\n }));\n }\n });\n compoundPath.setStyle(itemStyle);\n compoundPath.style.strokeNoScale = true;\n compoundPath.culling = true;\n compoundPath.ensureState('emphasis').style = emphasisItemStyle;\n compoundPath.ensureState('blur').style = blurItemStyle;\n compoundPath.ensureState('select').style = selectItemStyle;\n var showLabel = false;\n\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\n var stateName = DISPLAY_STATES[i];\n\n if (regionModel.get(stateName === 'normal' ? ['label', 'show'] : [stateName, 'label', 'show'])) {\n showLabel = true;\n break;\n }\n }\n\n var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n var itemLayout = data && data.getItemLayout(dataIdx);\n\n if (isGeo || isDataNaN && showLabel || itemLayout && itemLayout.showLabel) {\n var query = !isGeo ? dataIdx : region.name;\n var labelFetcher = void 0;\n\n if (!data || dataIdx >= 0) {\n labelFetcher = mapOrGeoModel;\n }\n\n var centerPt = transformPoint(region.center);\n var textEl = new graphic.Text({\n x: centerPt[0],\n y: centerPt[1],\n scaleX: 1 / group.scaleX,\n scaleY: 1 / group.scaleY,\n z2: 10,\n silent: true\n });\n setLabelStyle(textEl, getLabelStatesModels(regionModel), {\n labelFetcher: labelFetcher,\n labelDataIndex: query,\n defaultText: region.name\n }, {\n normal: {\n align: 'center',\n verticalAlign: 'middle'\n }\n });\n compoundPath.setTextContent(textEl);\n compoundPath.setTextConfig({\n local: true\n });\n compoundPath.disableLabelAnimation = true;\n\n if (!isFirstDraw) {\n graphic.updateProps(textEl, {\n scaleX: 1 / targetScaleX,\n scaleY: 1 / targetScaleY\n }, mapOrGeoModel);\n }\n }\n\n if (data) {\n data.setItemGraphicEl(dataIdx, regionGroup);\n } else {\n var regionModel_1 = mapOrGeoModel.getRegionModel(region.name);\n getECData(compoundPath).eventData = {\n componentType: 'geo',\n componentIndex: mapOrGeoModel.componentIndex,\n geoIndex: mapOrGeoModel.componentIndex,\n name: region.name,\n region: regionModel_1 && regionModel_1.option || {}\n };\n }\n\n var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\n groupRegions.push(region);\n regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\n enableHoverEmphasis(regionGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n regionsGroup.add(regionGroup);\n });\n\n this._updateController(mapOrGeoModel, ecModel, api);\n\n this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView);\n };\n\n MapDraw.prototype.remove = function () {\n this._regionsGroup.removeAll();\n\n this._backgroundGroup.removeAll();\n\n this._controller.dispose();\n\n this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid);\n this._mapName = null;\n this._controllerHost = null;\n };\n\n MapDraw.prototype._updateBackground = function (geo) {\n var mapName = geo.map;\n\n if (this._mapName !== mapName) {\n zrUtil.each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) {\n this._backgroundGroup.add(root);\n }, this);\n }\n\n this._mapName = mapName;\n };\n\n MapDraw.prototype._updateController = function (mapOrGeoModel, ecModel, api) {\n var geo = mapOrGeoModel.coordinateSystem;\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n controllerHost.zoom = geo.getZoom();\n controller.enable(mapOrGeoModel.get('roam') || false);\n var mainType = mapOrGeoModel.mainType;\n\n function makeActionBase() {\n var action = {\n type: 'geoRoam',\n componentType: mainType\n };\n action[mainType + 'Id'] = mapOrGeoModel.id;\n return action;\n }\n\n controller.off('pan').on('pan', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n dx: e.dx,\n dy: e.dy\n }));\n }, this);\n controller.off('zoom').on('zoom', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY\n }));\n var group = this.group;\n\n this._regionsGroup.traverse(function (el) {\n var textContent = el.getTextContent();\n\n if (textContent) {\n textContent.scaleX = 1 / group.scaleX;\n textContent.scaleY = 1 / group.scaleY;\n textContent.markRedraw();\n }\n });\n }, this);\n controller.setPointerChecker(function (e, x, y) {\n return geo.getViewRectAfterRoam().contain(x, y) && !onIrrelevantElement(e, api, mapOrGeoModel);\n });\n };\n\n MapDraw.prototype._updateMapSelectHandler = function (mapOrGeoModel, regionsGroup, api, fromView) {\n var mapDraw = this;\n regionsGroup.off('mousedown');\n\n if (mapOrGeoModel.get('selectedMode')) {\n regionsGroup.on('mousedown', function () {\n mapDraw._mouseDownFlag = true;\n });\n regionsGroup.on('click', function (e) {\n if (!mapDraw._mouseDownFlag) {\n return;\n }\n\n mapDraw._mouseDownFlag = false;\n });\n }\n };\n\n return MapDraw;\n}();\n\n;\nexport default MapDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport MapDraw from '../../component/helper/MapDraw';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { Z2_EMPHASIS_LIFT } from '../../util/states';\n;\n\nvar MapView = function (_super) {\n __extends(MapView, _super);\n\n function MapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MapView.type;\n return _this;\n }\n\n MapView.prototype.render = function (mapModel, ecModel, api, payload) {\n if (payload && payload.type === 'mapToggleSelect' && payload.from === this.uid) {\n return;\n }\n\n var group = this.group;\n group.removeAll();\n\n if (mapModel.getHostGeoModel()) {\n return;\n }\n\n if (!(payload && payload.type === 'geoRoam' && payload.componentType === 'series' && payload.seriesId === mapModel.id)) {\n if (mapModel.needsDrawMap) {\n var mapDraw = this._mapDraw || new MapDraw(api);\n group.add(mapDraw.group);\n mapDraw.draw(mapModel, ecModel, api, this, payload);\n this._mapDraw = mapDraw;\n } else {\n this._mapDraw && this._mapDraw.remove();\n this._mapDraw = null;\n }\n } else {\n var mapDraw = this._mapDraw;\n mapDraw && group.add(mapDraw.group);\n }\n\n mapModel.get('showLegendSymbol') && ecModel.getComponent('legend') && this._renderSymbols(mapModel, ecModel, api);\n };\n\n MapView.prototype.remove = function () {\n this._mapDraw && this._mapDraw.remove();\n this._mapDraw = null;\n this.group.removeAll();\n };\n\n MapView.prototype.dispose = function () {\n this._mapDraw && this._mapDraw.remove();\n this._mapDraw = null;\n };\n\n MapView.prototype._renderSymbols = function (mapModel, ecModel, api) {\n var originalData = mapModel.originalData;\n var group = this.group;\n originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) {\n if (isNaN(value)) {\n return;\n }\n\n var layout = originalData.getItemLayout(originalDataIndex);\n\n if (!layout || !layout.point) {\n return;\n }\n\n var point = layout.point;\n var offset = layout.offset;\n var circle = new graphic.Circle({\n style: {\n fill: mapModel.getData().getVisual('style').fill\n },\n shape: {\n cx: point[0] + offset * 9,\n cy: point[1],\n r: 3\n },\n silent: true,\n z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)\n });\n\n if (!offset) {\n var fullData = mapModel.mainSeries.getData();\n var name_1 = originalData.getName(originalDataIndex);\n var fullIndex_1 = fullData.indexOfName(name_1);\n var itemModel = originalData.getItemModel(originalDataIndex);\n var labelModel = itemModel.getModel('label');\n var regionGroup = fullData.getItemGraphicEl(fullIndex_1);\n setLabelStyle(circle, getLabelStatesModels(itemModel), {\n labelFetcher: {\n getFormattedLabel: function (idx, state) {\n return mapModel.getFormattedLabel(fullIndex_1, state);\n }\n }\n });\n circle.disableLabelAnimation = true;\n\n if (!labelModel.get('position')) {\n circle.setTextConfig({\n position: 'bottom'\n });\n }\n\n regionGroup.onHoverStateChange = function (toState) {\n circle.useState(toState);\n };\n }\n\n group.add(circle);\n });\n };\n\n MapView.type = 'map';\n return MapView;\n}(ChartView);\n\nexport default MapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListSimply from '../helper/createListSimply';\nimport SeriesModel from '../../model/Series';\nimport geoSourceManager from '../../coord/geo/geoSourceManager';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar MapSeries = function (_super) {\n __extends(MapSeries, _super);\n\n function MapSeries() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MapSeries.type;\n _this.needsDrawMap = false;\n _this.seriesGroup = [];\n\n _this.getTooltipPosition = function (dataIndex) {\n if (dataIndex != null) {\n var name_1 = this.getData().getName(dataIndex);\n var geo = this.coordinateSystem;\n var region = geo.getRegion(name_1);\n return region && geo.dataToPoint(region.center);\n }\n };\n\n return _this;\n }\n\n MapSeries.prototype.getInitialData = function (option) {\n var data = createListSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n var dataNameMap = zrUtil.createHashMap();\n var toAppendNames = [];\n\n for (var i = 0, len = data.count(); i < len; i++) {\n var name_2 = data.getName(i);\n dataNameMap.set(name_2, true);\n }\n\n var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty);\n zrUtil.each(geoSource.regions, function (region) {\n var name = region.name;\n\n if (!dataNameMap.get(name)) {\n toAppendNames.push(name);\n }\n });\n data.appendValues([], toAppendNames);\n return data;\n };\n\n MapSeries.prototype.getHostGeoModel = function () {\n var geoIndex = this.option.geoIndex;\n return geoIndex != null ? this.ecModel.getComponent('geo', geoIndex) : null;\n };\n\n MapSeries.prototype.getMapType = function () {\n return (this.getHostGeoModel() || this).option.map;\n };\n\n MapSeries.prototype.getRawValue = function (dataIndex) {\n var data = this.getData();\n return data.get(data.mapDimension('value'), dataIndex);\n };\n\n MapSeries.prototype.getRegionModel = function (regionName) {\n var data = this.getData();\n return data.getItemModel(data.indexOfName(regionName));\n };\n\n MapSeries.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var data = this.getData();\n var value = this.getRawValue(dataIndex);\n var name = data.getName(dataIndex);\n var seriesGroup = this.seriesGroup;\n var seriesNames = [];\n\n for (var i = 0; i < seriesGroup.length; i++) {\n var otherIndex = seriesGroup[i].originalData.indexOfName(name);\n var valueDim = data.mapDimension('value');\n\n if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\n seriesNames.push(seriesGroup[i].name);\n }\n }\n\n return createTooltipMarkup('section', {\n header: seriesNames.join(', '),\n noHeader: !seriesNames.length,\n blocks: [createTooltipMarkup('nameValue', {\n name: name,\n value: value\n })]\n });\n };\n\n MapSeries.prototype.setZoom = function (zoom) {\n this.option.zoom = zoom;\n };\n\n MapSeries.prototype.setCenter = function (center) {\n this.option.center = center;\n };\n\n MapSeries.type = 'series.map';\n MapSeries.dependencies = ['geo'];\n MapSeries.layoutMode = 'box';\n MapSeries.defaultOption = {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'geo',\n map: '',\n left: 'center',\n top: 'center',\n aspectScale: 0.75,\n showLegendSymbol: true,\n boundingCoords: null,\n center: null,\n zoom: 1,\n scaleLimit: null,\n selectedMode: true,\n label: {\n show: false,\n color: '#000'\n },\n itemStyle: {\n borderWidth: 0.5,\n borderColor: '#444',\n areaColor: '#eee'\n },\n emphasis: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n areaColor: 'rgba(255,215,0,0.8)'\n }\n },\n select: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n color: 'rgba(255,215,0,0.8)'\n }\n },\n nameProperty: 'name'\n };\n return MapSeries;\n}(SeriesModel);\n\nexport default MapSeries;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataStatistics(datas, statisticType) {\n var dataNameMap = {};\n zrUtil.each(datas, function (data) {\n data.each(data.mapDimension('value'), function (value, idx) {\n var mapKey = 'ec-' + data.getName(idx);\n dataNameMap[mapKey] = dataNameMap[mapKey] || [];\n\n if (!isNaN(value)) {\n dataNameMap[mapKey].push(value);\n }\n });\n });\n return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\n var mapKey = 'ec-' + datas[0].getName(idx);\n var sum = 0;\n var min = Infinity;\n var max = -Infinity;\n var len = dataNameMap[mapKey].length;\n\n for (var i = 0; i < len; i++) {\n min = Math.min(min, dataNameMap[mapKey][i]);\n max = Math.max(max, dataNameMap[mapKey][i]);\n sum += dataNameMap[mapKey][i];\n }\n\n var result;\n\n if (statisticType === 'min') {\n result = min;\n } else if (statisticType === 'max') {\n result = max;\n } else if (statisticType === 'average') {\n result = sum / len;\n } else {\n result = sum;\n }\n\n return len === 0 ? NaN : result;\n });\n}\n\nexport default function mapDataStatistic(ecModel) {\n var seriesGroups = {};\n ecModel.eachSeriesByType('map', function (seriesModel) {\n var hostGeoModel = seriesModel.getHostGeoModel();\n var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\n (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\n });\n zrUtil.each(seriesGroups, function (seriesList, key) {\n var data = dataStatistics(zrUtil.map(seriesList, function (seriesModel) {\n return seriesModel.getData();\n }), seriesList[0].get('mapValueCalculation'));\n\n for (var i = 0; i < seriesList.length; i++) {\n seriesList[i].originalData = seriesList[i].getData();\n }\n\n for (var i = 0; i < seriesList.length; i++) {\n seriesList[i].seriesGroup = seriesList;\n seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\n seriesList[i].setData(data.cloneShallow());\n seriesList[i].mainSeries = seriesList[0];\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function mapSymbolLayout(ecModel) {\n var processedMapType = {};\n ecModel.eachSeriesByType('map', function (mapSeries) {\n var mapType = mapSeries.getMapType();\n\n if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\n return;\n }\n\n var mapSymbolOffsets = {};\n zrUtil.each(mapSeries.seriesGroup, function (subMapSeries) {\n var geo = subMapSeries.coordinateSystem;\n var data = subMapSeries.originalData;\n\n if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\n data.each(data.mapDimension('value'), function (value, idx) {\n var name = data.getName(idx);\n var region = geo.getRegion(name);\n\n if (!region || isNaN(value)) {\n return;\n }\n\n var offset = mapSymbolOffsets[name] || 0;\n var point = geo.dataToPoint(region.center);\n mapSymbolOffsets[name] = offset + 1;\n data.setItemLayout(idx, {\n point: point,\n offset: offset\n });\n });\n }\n });\n var data = mapSeries.getData();\n data.each(function (idx) {\n var name = data.getName(idx);\n var layout = data.getItemLayout(idx) || {};\n layout.showLabel = !mapSymbolOffsets[name];\n data.setItemLayout(idx, layout);\n });\n processedMapType[mapType] = true;\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MapView from './MapView';\nimport MapSeries from './MapSeries';\nimport mapDataStatistic from './mapDataStatistic';\nimport mapSymbolLayout from './mapSymbolLayout';\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nexport function install(registers) {\n registers.registerChartView(MapView);\n registers.registerSeriesModel(MapSeries);\n registers.registerLayout(mapSymbolLayout);\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\n createLegacyDataSelectAction('map', registers.registerAction);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nexport function init(inRoot) {\n var root = inRoot;\n root.hierNode = {\n defaultAncestor: null,\n ancestor: root,\n prelim: 0,\n modifier: 0,\n change: 0,\n shift: 0,\n i: 0,\n thread: null\n };\n var nodes = [root];\n var node;\n var children;\n\n while (node = nodes.pop()) {\n children = node.children;\n\n if (node.isExpand && children.length) {\n var n = children.length;\n\n for (var i = n - 1; i >= 0; i--) {\n var child = children[i];\n child.hierNode = {\n defaultAncestor: null,\n ancestor: child,\n prelim: 0,\n modifier: 0,\n change: 0,\n shift: 0,\n i: i,\n thread: null\n };\n nodes.push(child);\n }\n }\n }\n}\nexport function firstWalk(node, separation) {\n var children = node.isExpand ? node.children : [];\n var siblings = node.parentNode.children;\n var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\n\n if (children.length) {\n executeShifts(node);\n var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\n\n if (subtreeW) {\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n node.hierNode.modifier = node.hierNode.prelim - midPoint;\n } else {\n node.hierNode.prelim = midPoint;\n }\n } else if (subtreeW) {\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n }\n\n node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\n}\nexport function secondWalk(node) {\n var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\n node.setLayout({\n x: nodeX\n }, true);\n node.hierNode.modifier += node.parentNode.hierNode.modifier;\n}\nexport function separation(cb) {\n return arguments.length ? cb : defaultSeparation;\n}\nexport function radialCoordinate(rad, r) {\n rad -= Math.PI / 2;\n return {\n x: r * Math.cos(rad),\n y: r * Math.sin(rad)\n };\n}\nexport function getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction executeShifts(node) {\n var children = node.children;\n var n = children.length;\n var shift = 0;\n var change = 0;\n\n while (--n >= 0) {\n var child = children[n];\n child.hierNode.prelim += shift;\n child.hierNode.modifier += shift;\n change += child.hierNode.change;\n shift += child.hierNode.shift + change;\n }\n}\n\nfunction apportion(subtreeV, subtreeW, ancestor, separation) {\n if (subtreeW) {\n var nodeOutRight = subtreeV;\n var nodeInRight = subtreeV;\n var nodeOutLeft = nodeInRight.parentNode.children[0];\n var nodeInLeft = subtreeW;\n var sumOutRight = nodeOutRight.hierNode.modifier;\n var sumInRight = nodeInRight.hierNode.modifier;\n var sumOutLeft = nodeOutLeft.hierNode.modifier;\n var sumInLeft = nodeInLeft.hierNode.modifier;\n\n while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\n nodeOutRight = nextRight(nodeOutRight);\n nodeOutLeft = nextLeft(nodeOutLeft);\n nodeOutRight.hierNode.ancestor = subtreeV;\n var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation(nodeInLeft, nodeInRight);\n\n if (shift > 0) {\n moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\n sumInRight += shift;\n sumOutRight += shift;\n }\n\n sumInLeft += nodeInLeft.hierNode.modifier;\n sumInRight += nodeInRight.hierNode.modifier;\n sumOutRight += nodeOutRight.hierNode.modifier;\n sumOutLeft += nodeOutLeft.hierNode.modifier;\n }\n\n if (nodeInLeft && !nextRight(nodeOutRight)) {\n nodeOutRight.hierNode.thread = nodeInLeft;\n nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\n }\n\n if (nodeInRight && !nextLeft(nodeOutLeft)) {\n nodeOutLeft.hierNode.thread = nodeInRight;\n nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\n ancestor = subtreeV;\n }\n }\n\n return ancestor;\n}\n\nfunction nextRight(node) {\n var children = node.children;\n return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\n}\n\nfunction nextLeft(node) {\n var children = node.children;\n return children.length && node.isExpand ? children[0] : node.hierNode.thread;\n}\n\nfunction nextAncestor(nodeInLeft, node, ancestor) {\n return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor;\n}\n\nfunction moveSubtree(wl, wr, shift) {\n var change = shift / (wr.hierNode.i - wl.hierNode.i);\n wr.hierNode.change -= change;\n wr.hierNode.shift += shift;\n wr.hierNode.modifier += shift;\n wr.hierNode.prelim += shift;\n wl.hierNode.change += change;\n}\n\nfunction defaultSeparation(node1, node2) {\n return node1.parentNode === node2.parentNode ? 1 : 2;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Transformable from 'zrender/lib/core/Transformable';\nvar v2ApplyTransform = vector.applyTransform;\n\nvar View = function (_super) {\n __extends(View, _super);\n\n function View(name) {\n var _this = _super.call(this) || this;\n\n _this.type = 'view';\n _this.dimensions = ['x', 'y'];\n _this._roamTransformable = new Transformable();\n _this._rawTransformable = new Transformable();\n _this.name = name;\n return _this;\n }\n\n View.prototype.setBoundingRect = function (x, y, width, height) {\n this._rect = new BoundingRect(x, y, width, height);\n return this._rect;\n };\n\n View.prototype.getBoundingRect = function () {\n return this._rect;\n };\n\n View.prototype.setViewRect = function (x, y, width, height) {\n this.transformTo(x, y, width, height);\n this._viewRect = new BoundingRect(x, y, width, height);\n };\n\n View.prototype.transformTo = function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var rawTransform = this._rawTransformable;\n rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n rawTransform.decomposeTransform();\n\n this._updateTransform();\n };\n\n View.prototype.setCenter = function (centerCoord) {\n if (!centerCoord) {\n return;\n }\n\n this._center = centerCoord;\n\n this._updateCenterAndZoom();\n };\n\n View.prototype.setZoom = function (zoom) {\n zoom = zoom || 1;\n var zoomLimit = this.zoomLimit;\n\n if (zoomLimit) {\n if (zoomLimit.max != null) {\n zoom = Math.min(zoomLimit.max, zoom);\n }\n\n if (zoomLimit.min != null) {\n zoom = Math.max(zoomLimit.min, zoom);\n }\n }\n\n this._zoom = zoom;\n\n this._updateCenterAndZoom();\n };\n\n View.prototype.getDefaultCenter = function () {\n var rawRect = this.getBoundingRect();\n var cx = rawRect.x + rawRect.width / 2;\n var cy = rawRect.y + rawRect.height / 2;\n return [cx, cy];\n };\n\n View.prototype.getCenter = function () {\n return this._center || this.getDefaultCenter();\n };\n\n View.prototype.getZoom = function () {\n return this._zoom || 1;\n };\n\n View.prototype.getRoamTransform = function () {\n return this._roamTransformable.getLocalTransform();\n };\n\n View.prototype._updateCenterAndZoom = function () {\n var rawTransformMatrix = this._rawTransformable.getLocalTransform();\n\n var roamTransform = this._roamTransformable;\n var defaultCenter = this.getDefaultCenter();\n var center = this.getCenter();\n var zoom = this.getZoom();\n center = vector.applyTransform([], center, rawTransformMatrix);\n defaultCenter = vector.applyTransform([], defaultCenter, rawTransformMatrix);\n roamTransform.originX = center[0];\n roamTransform.originY = center[1];\n roamTransform.x = defaultCenter[0] - center[0];\n roamTransform.y = defaultCenter[1] - center[1];\n roamTransform.scaleX = roamTransform.scaleY = zoom;\n\n this._updateTransform();\n };\n\n View.prototype._updateTransform = function () {\n var roamTransformable = this._roamTransformable;\n var rawTransformable = this._rawTransformable;\n rawTransformable.parent = roamTransformable;\n roamTransformable.updateTransform();\n rawTransformable.updateTransform();\n matrix.copy(this.transform || (this.transform = []), rawTransformable.transform || matrix.create());\n this._rawTransform = rawTransformable.getLocalTransform();\n this.invTransform = this.invTransform || [];\n matrix.invert(this.invTransform, this.transform);\n this.decomposeTransform();\n };\n\n View.prototype.getTransformInfo = function () {\n var roamTransform = this._roamTransformable.transform;\n var rawTransformable = this._rawTransformable;\n return {\n roamTransform: roamTransform ? zrUtil.slice(roamTransform) : matrix.create(),\n rawScaleX: rawTransformable.scaleX,\n rawScaleY: rawTransformable.scaleY,\n rawX: rawTransformable.x,\n rawY: rawTransformable.y\n };\n };\n\n View.prototype.getViewRect = function () {\n return this._viewRect;\n };\n\n View.prototype.getViewRectAfterRoam = function () {\n var rect = this.getBoundingRect().clone();\n rect.applyTransform(this.transform);\n return rect;\n };\n\n View.prototype.dataToPoint = function (data, noRoam, out) {\n var transform = noRoam ? this._rawTransform : this.transform;\n out = out || [];\n return transform ? v2ApplyTransform(out, data, transform) : vector.copy(out, data);\n };\n\n View.prototype.pointToData = function (point) {\n var invTransform = this.invTransform;\n return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]];\n };\n\n View.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.dataToPoint(value) : null;\n };\n\n View.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.pointToData(pixel) : null;\n };\n\n View.prototype.containPoint = function (point) {\n return this.getViewRectAfterRoam().contain(point[0], point[1]);\n };\n\n View.dimensions = ['x', 'y'];\n return View;\n}(Transformable);\n\nfunction getCoordSys(finder) {\n var seriesModel = finder.seriesModel;\n return seriesModel ? seriesModel.coordinateSystem : null;\n}\n\nexport default View;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport SymbolClz from '../helper/Symbol';\nimport { radialCoordinate } from './layoutHelper';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport View from '../../coord/View';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport RoamController from '../../component/helper/RoamController';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport { parsePercent } from '../../util/number';\nimport ChartView from '../../view/Chart';\nimport Path from 'zrender/lib/graphic/Path';\nimport { setStatesStylesFromModel, setStatesFlag, setDefaultStateProxy, HOVER_STATE_BLUR } from '../../util/states';\n\nvar TreeEdgeShape = function () {\n function TreeEdgeShape() {\n this.parentPoint = [];\n this.childPoints = [];\n }\n\n return TreeEdgeShape;\n}();\n\nvar TreePath = function (_super) {\n __extends(TreePath, _super);\n\n function TreePath(opts) {\n return _super.call(this, opts) || this;\n }\n\n TreePath.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n\n TreePath.prototype.getDefaultShape = function () {\n return new TreeEdgeShape();\n };\n\n TreePath.prototype.buildPath = function (ctx, shape) {\n var childPoints = shape.childPoints;\n var childLen = childPoints.length;\n var parentPoint = shape.parentPoint;\n var firstChildPos = childPoints[0];\n var lastChildPos = childPoints[childLen - 1];\n\n if (childLen === 1) {\n ctx.moveTo(parentPoint[0], parentPoint[1]);\n ctx.lineTo(firstChildPos[0], firstChildPos[1]);\n return;\n }\n\n var orient = shape.orient;\n var forkDim = orient === 'TB' || orient === 'BT' ? 0 : 1;\n var otherDim = 1 - forkDim;\n var forkPosition = parsePercent(shape.forkPosition, 1);\n var tmpPoint = [];\n tmpPoint[forkDim] = parentPoint[forkDim];\n tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition;\n ctx.moveTo(parentPoint[0], parentPoint[1]);\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n ctx.moveTo(firstChildPos[0], firstChildPos[1]);\n tmpPoint[forkDim] = firstChildPos[forkDim];\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n tmpPoint[forkDim] = lastChildPos[forkDim];\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n ctx.lineTo(lastChildPos[0], lastChildPos[1]);\n\n for (var i = 1; i < childLen - 1; i++) {\n var point = childPoints[i];\n ctx.moveTo(point[0], point[1]);\n tmpPoint[forkDim] = point[forkDim];\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n }\n };\n\n return TreePath;\n}(Path);\n\nvar TreeView = function (_super) {\n __extends(TreeView, _super);\n\n function TreeView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TreeView.type;\n _this._mainGroup = new graphic.Group();\n return _this;\n }\n\n TreeView.prototype.init = function (ecModel, api) {\n this._controller = new RoamController(api.getZr());\n this._controllerHost = {\n target: this.group\n };\n this.group.add(this._mainGroup);\n };\n\n TreeView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var layoutInfo = seriesModel.layoutInfo;\n var group = this._mainGroup;\n var layout = seriesModel.get('layout');\n\n if (layout === 'radial') {\n group.x = layoutInfo.x + layoutInfo.width / 2;\n group.y = layoutInfo.y + layoutInfo.height / 2;\n } else {\n group.x = layoutInfo.x;\n group.y = layoutInfo.y;\n }\n\n this._updateViewCoordSys(seriesModel);\n\n this._updateController(seriesModel, ecModel, api);\n\n var oldData = this._data;\n data.diff(oldData).add(function (newIdx) {\n if (symbolNeedsDraw(data, newIdx)) {\n updateNode(data, newIdx, null, group, seriesModel);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n if (!symbolNeedsDraw(data, newIdx)) {\n symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n return;\n }\n\n updateNode(data, newIdx, symbolEl, group, seriesModel);\n }).remove(function (oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n if (symbolEl) {\n removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n }\n }).execute();\n this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\n\n this._updateNodeAndLinkScale(seriesModel);\n\n if (seriesModel.get('expandAndCollapse') === true) {\n data.eachItemGraphicEl(function (el, dataIndex) {\n el.off('click').on('click', function () {\n api.dispatchAction({\n type: 'treeExpandAndCollapse',\n seriesId: seriesModel.id,\n dataIndex: dataIndex\n });\n });\n });\n }\n\n this._data = data;\n };\n\n TreeView.prototype._updateViewCoordSys = function (seriesModel) {\n var data = seriesModel.getData();\n var points = [];\n data.each(function (idx) {\n var layout = data.getItemLayout(idx);\n\n if (layout && !isNaN(layout.x) && !isNaN(layout.y)) {\n points.push([+layout.x, +layout.y]);\n }\n });\n var min = [];\n var max = [];\n bbox.fromPoints(points, min, max);\n var oldMin = this._min;\n var oldMax = this._max;\n\n if (max[0] - min[0] === 0) {\n min[0] = oldMin ? oldMin[0] : min[0] - 1;\n max[0] = oldMax ? oldMax[0] : max[0] + 1;\n }\n\n if (max[1] - min[1] === 0) {\n min[1] = oldMin ? oldMin[1] : min[1] - 1;\n max[1] = oldMax ? oldMax[1] : max[1] + 1;\n }\n\n var viewCoordSys = seriesModel.coordinateSystem = new View();\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n viewCoordSys.setCenter(seriesModel.get('center'));\n viewCoordSys.setZoom(seriesModel.get('zoom'));\n this.group.attr({\n x: viewCoordSys.x,\n y: viewCoordSys.y,\n scaleX: viewCoordSys.scaleX,\n scaleY: viewCoordSys.scaleY\n });\n this._min = min;\n this._max = max;\n };\n\n TreeView.prototype._updateController = function (seriesModel, ecModel, api) {\n var _this = this;\n\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n var group = this.group;\n controller.setPointerChecker(function (e, x, y) {\n var rect = group.getBoundingRect();\n rect.applyTransform(group.transform);\n return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n });\n controller.enable(seriesModel.get('roam'));\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n controller.off('pan').off('zoom').on('pan', function (e) {\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'treeRoam',\n dx: e.dx,\n dy: e.dy\n });\n }).on('zoom', function (e) {\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'treeRoam',\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY\n });\n\n _this._updateNodeAndLinkScale(seriesModel);\n\n api.updateLabelLayout();\n });\n };\n\n TreeView.prototype._updateNodeAndLinkScale = function (seriesModel) {\n var data = seriesModel.getData();\n\n var nodeScale = this._getNodeGlobalScale(seriesModel);\n\n data.eachItemGraphicEl(function (el, idx) {\n el.setSymbolScale(nodeScale);\n });\n };\n\n TreeView.prototype._getNodeGlobalScale = function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys.type !== 'view') {\n return 1;\n }\n\n var nodeScaleRatio = this._nodeScaleRatio;\n var groupZoom = coordSys.scaleX || 1;\n var roamZoom = coordSys.getZoom();\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n return nodeScale / groupZoom;\n };\n\n TreeView.prototype.dispose = function () {\n this._controller && this._controller.dispose();\n this._controllerHost = null;\n };\n\n TreeView.prototype.remove = function () {\n this._mainGroup.removeAll();\n\n this._data = null;\n };\n\n TreeView.type = 'tree';\n return TreeView;\n}(ChartView);\n\nfunction symbolNeedsDraw(data, dataIndex) {\n var layout = data.getItemLayout(dataIndex);\n return layout && !isNaN(layout.x) && !isNaN(layout.y);\n}\n\nfunction updateNode(data, dataIndex, symbolEl, group, seriesModel) {\n var isInit = !symbolEl;\n var node = data.tree.getNodeByDataIndex(dataIndex);\n var itemModel = node.getModel();\n var visualColor = node.getVisual('style').fill;\n var symbolInnerColor = node.isExpand === false && node.children.length !== 0 ? visualColor : '#fff';\n var virtualRoot = data.tree.root;\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n var sourceLayout = source.getLayout();\n var sourceOldLayout = sourceSymbolEl ? {\n x: sourceSymbolEl.__oldX,\n y: sourceSymbolEl.__oldY,\n rawX: sourceSymbolEl.__radialOldRawX,\n rawY: sourceSymbolEl.__radialOldRawY\n } : sourceLayout;\n var targetLayout = node.getLayout();\n\n if (isInit) {\n symbolEl = new SymbolClz(data, dataIndex, null, {\n symbolInnerColor: symbolInnerColor,\n useNameLabel: true\n });\n symbolEl.x = sourceOldLayout.x;\n symbolEl.y = sourceOldLayout.y;\n } else {\n symbolEl.updateData(data, dataIndex, null, {\n symbolInnerColor: symbolInnerColor,\n useNameLabel: true\n });\n }\n\n symbolEl.__radialOldRawX = symbolEl.__radialRawX;\n symbolEl.__radialOldRawY = symbolEl.__radialRawY;\n symbolEl.__radialRawX = targetLayout.rawX;\n symbolEl.__radialRawY = targetLayout.rawY;\n group.add(symbolEl);\n data.setItemGraphicEl(dataIndex, symbolEl);\n symbolEl.__oldX = symbolEl.x;\n symbolEl.__oldY = symbolEl.y;\n graphic.updateProps(symbolEl, {\n x: targetLayout.x,\n y: targetLayout.y\n }, seriesModel);\n var symbolPath = symbolEl.getSymbolPath();\n\n if (seriesModel.get('layout') === 'radial') {\n var realRoot = virtualRoot.children[0];\n var rootLayout = realRoot.getLayout();\n var length_1 = realRoot.children.length;\n var rad = void 0;\n var isLeft = void 0;\n\n if (targetLayout.x === rootLayout.x && node.isExpand === true) {\n var center = {\n x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2,\n y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2\n };\n rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n isLeft = center.x < rootLayout.x;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n } else {\n rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n if (node.children.length === 0 || node.children.length !== 0 && node.isExpand === false) {\n isLeft = targetLayout.x < rootLayout.x;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n } else {\n isLeft = targetLayout.x > rootLayout.x;\n\n if (!isLeft) {\n rad = rad - Math.PI;\n }\n }\n }\n\n var textPosition = isLeft ? 'left' : 'right';\n var normalLabelModel = itemModel.getModel('label');\n var rotate = normalLabelModel.get('rotate');\n var labelRotateRadian = rotate * (Math.PI / 180);\n var textContent = symbolPath.getTextContent();\n\n if (textContent) {\n symbolPath.setTextConfig({\n position: normalLabelModel.get('position') || textPosition,\n rotation: rotate == null ? -rad : labelRotateRadian,\n origin: 'center'\n });\n textContent.setStyle('verticalAlign', 'middle');\n }\n }\n\n var focus = itemModel.get(['emphasis', 'focus']);\n var focusDataIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n\n if (focusDataIndices) {\n getECData(symbolEl).focus = focusDataIndices;\n }\n\n drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group);\n\n if (symbolEl.__edge) {\n symbolEl.onHoverStateChange = function (toState) {\n if (toState !== 'blur') {\n var parentEl = node.parentNode && data.getItemGraphicEl(node.parentNode.dataIndex);\n\n if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) {\n setStatesFlag(symbolEl.__edge, toState);\n }\n }\n };\n }\n}\n\nfunction drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) {\n var itemModel = node.getModel();\n var edgeShape = seriesModel.get('edgeShape');\n var layout = seriesModel.get('layout');\n var orient = seriesModel.getOrient();\n var curvature = seriesModel.get(['lineStyle', 'curveness']);\n var edgeForkPosition = seriesModel.get('edgeForkPosition');\n var lineStyle = itemModel.getModel('lineStyle').getLineStyle();\n var edge = symbolEl.__edge;\n\n if (edgeShape === 'curve') {\n if (node.parentNode && node.parentNode !== virtualRoot) {\n if (!edge) {\n edge = symbolEl.__edge = new graphic.BezierCurve({\n shape: getEdgeShape(layout, orient, curvature, sourceOldLayout, sourceOldLayout)\n });\n }\n\n graphic.updateProps(edge, {\n shape: getEdgeShape(layout, orient, curvature, sourceLayout, targetLayout)\n }, seriesModel);\n }\n } else if (edgeShape === 'polyline') {\n if (layout === 'orthogonal') {\n if (node !== virtualRoot && node.children && node.children.length !== 0 && node.isExpand === true) {\n var children = node.children;\n var childPoints = [];\n\n for (var i = 0; i < children.length; i++) {\n var childLayout = children[i].getLayout();\n childPoints.push([childLayout.x, childLayout.y]);\n }\n\n if (!edge) {\n edge = symbolEl.__edge = new TreePath({\n shape: {\n parentPoint: [targetLayout.x, targetLayout.y],\n childPoints: [[targetLayout.x, targetLayout.y]],\n orient: orient,\n forkPosition: edgeForkPosition\n }\n });\n }\n\n graphic.updateProps(edge, {\n shape: {\n parentPoint: [targetLayout.x, targetLayout.y],\n childPoints: childPoints\n }\n }, seriesModel);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('The polyline edgeShape can only be used in orthogonal layout');\n }\n }\n }\n\n if (edge) {\n edge.useStyle(zrUtil.defaults({\n strokeNoScale: true,\n fill: null\n }, lineStyle));\n setStatesStylesFromModel(edge, itemModel, 'lineStyle');\n setDefaultStateProxy(edge);\n group.add(edge);\n }\n}\n\nfunction removeNode(data, dataIndex, symbolEl, group, seriesModel) {\n var node = data.tree.getNodeByDataIndex(dataIndex);\n var virtualRoot = data.tree.root;\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n var sourceLayout;\n\n while (sourceLayout = source.getLayout(), sourceLayout == null) {\n source = source.parentNode === virtualRoot ? source : source.parentNode || source;\n }\n\n var removeAnimationOpt = {\n duration: seriesModel.get('animationDurationUpdate'),\n easing: seriesModel.get('animationEasingUpdate')\n };\n graphic.removeElement(symbolEl, {\n x: sourceLayout.x + 1,\n y: sourceLayout.y + 1\n }, seriesModel, {\n cb: function () {\n group.remove(symbolEl);\n data.setItemGraphicEl(dataIndex, null);\n },\n removeOpt: removeAnimationOpt\n });\n symbolEl.fadeOut(null, {\n fadeLabel: true,\n animation: removeAnimationOpt\n });\n var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n var sourceEdge = sourceSymbolEl.__edge;\n var edge = symbolEl.__edge || (source.isExpand === false || source.children.length === 1 ? sourceEdge : undefined);\n var edgeShape = seriesModel.get('edgeShape');\n var layoutOpt = seriesModel.get('layout');\n var orient = seriesModel.get('orient');\n var curvature = seriesModel.get(['lineStyle', 'curveness']);\n\n if (edge) {\n if (edgeShape === 'curve') {\n graphic.removeElement(edge, {\n shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout),\n style: {\n opacity: 0\n }\n }, seriesModel, {\n cb: function () {\n group.remove(edge);\n },\n removeOpt: removeAnimationOpt\n });\n } else if (edgeShape === 'polyline' && seriesModel.get('layout') === 'orthogonal') {\n graphic.removeElement(edge, {\n shape: {\n parentPoint: [sourceLayout.x, sourceLayout.y],\n childPoints: [[sourceLayout.x, sourceLayout.y]]\n },\n style: {\n opacity: 0\n }\n }, seriesModel, {\n cb: function () {\n group.remove(edge);\n },\n removeOpt: removeAnimationOpt\n });\n }\n }\n}\n\nfunction getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) {\n var cpx1;\n var cpy1;\n var cpx2;\n var cpy2;\n var x1;\n var x2;\n var y1;\n var y2;\n\n if (layoutOpt === 'radial') {\n x1 = sourceLayout.rawX;\n y1 = sourceLayout.rawY;\n x2 = targetLayout.rawX;\n y2 = targetLayout.rawY;\n var radialCoor1 = radialCoordinate(x1, y1);\n var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature);\n var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature);\n var radialCoor4 = radialCoordinate(x2, y2);\n return {\n x1: radialCoor1.x || 0,\n y1: radialCoor1.y || 0,\n x2: radialCoor4.x || 0,\n y2: radialCoor4.y || 0,\n cpx1: radialCoor2.x || 0,\n cpy1: radialCoor2.y || 0,\n cpx2: radialCoor3.x || 0,\n cpy2: radialCoor3.y || 0\n };\n } else {\n x1 = sourceLayout.x;\n y1 = sourceLayout.y;\n x2 = targetLayout.x;\n y2 = targetLayout.y;\n\n if (orient === 'LR' || orient === 'RL') {\n cpx1 = x1 + (x2 - x1) * curvature;\n cpy1 = y1;\n cpx2 = x2 + (x1 - x2) * curvature;\n cpy2 = y2;\n }\n\n if (orient === 'TB' || orient === 'BT') {\n cpx1 = x1;\n cpy1 = y1 + (y2 - y1) * curvature;\n cpx2 = x2;\n cpy2 = y2 + (y1 - y2) * curvature;\n }\n }\n\n return {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n cpx1: cpx1,\n cpy1: cpy1,\n cpx2: cpx2,\n cpy2: cpy2\n };\n}\n\nexport default TreeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each, assert, extend, map, keys } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\n\nfunction linkList(opt) {\n var mainData = opt.mainData;\n var datas = opt.datas;\n\n if (!datas) {\n datas = {\n main: mainData\n };\n opt.datasAttr = {\n main: 'data'\n };\n }\n\n opt.datas = opt.mainData = null;\n linkAll(mainData, datas, opt);\n each(datas, function (data) {\n each(mainData.TRANSFERABLE_METHODS, function (methodName) {\n data.wrapMethod(methodName, curry(transferInjection, opt));\n });\n });\n mainData.wrapMethod('cloneShallow', curry(cloneShallowInjection, opt));\n each(mainData.CHANGABLE_METHODS, function (methodName) {\n mainData.wrapMethod(methodName, curry(changeInjection, opt));\n });\n assert(datas[mainData.dataType] === mainData);\n}\n\nfunction transferInjection(opt, res) {\n if (isMainData(this)) {\n var datas = extend({}, inner(this).datas);\n datas[this.dataType] = res;\n linkAll(res, datas, opt);\n } else {\n linkSingle(res, this.dataType, inner(this).mainData, opt);\n }\n\n return res;\n}\n\nfunction changeInjection(opt, res) {\n opt.struct && opt.struct.update();\n return res;\n}\n\nfunction cloneShallowInjection(opt, res) {\n each(inner(res).datas, function (data, dataType) {\n data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\n });\n return res;\n}\n\nfunction getLinkedData(dataType) {\n var mainData = inner(this).mainData;\n return dataType == null || mainData == null ? mainData : inner(mainData).datas[dataType];\n}\n\nfunction getLinkedDataAll() {\n var mainData = inner(this).mainData;\n return mainData == null ? [{\n data: mainData\n }] : map(keys(inner(mainData).datas), function (type) {\n return {\n type: type,\n data: inner(mainData).datas[type]\n };\n });\n}\n\nfunction isMainData(data) {\n return inner(data).mainData === data;\n}\n\nfunction linkAll(mainData, datas, opt) {\n inner(mainData).datas = {};\n each(datas, function (data, dataType) {\n linkSingle(data, dataType, mainData, opt);\n });\n}\n\nfunction linkSingle(data, dataType, mainData, opt) {\n inner(mainData).datas[dataType] = data;\n inner(data).mainData = mainData;\n data.dataType = dataType;\n\n if (opt.struct) {\n data[opt.structAttr] = opt.struct;\n opt.struct[opt.datasAttr[dataType]] = data;\n }\n\n data.getLinkedData = getLinkedData;\n data.getLinkedDataAll = getLinkedDataAll;\n}\n\nexport default linkList;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport linkList from './helper/linkList';\nimport List from './List';\nimport createDimensions from './helper/createDimensions';\nimport { convertOptionIdName } from '../util/model';\n\nvar TreeNode = function () {\n function TreeNode(name, hostTree) {\n this.depth = 0;\n this.height = 0;\n this.dataIndex = -1;\n this.children = [];\n this.viewChildren = [];\n this.isExpand = false;\n this.name = name || '';\n this.hostTree = hostTree;\n }\n\n TreeNode.prototype.isRemoved = function () {\n return this.dataIndex < 0;\n };\n\n TreeNode.prototype.eachNode = function (options, cb, context) {\n if (typeof options === 'function') {\n context = cb;\n cb = options;\n options = null;\n }\n\n options = options || {};\n\n if (zrUtil.isString(options)) {\n options = {\n order: options\n };\n }\n\n var order = options.order || 'preorder';\n var children = this[options.attr || 'children'];\n var suppressVisitSub;\n order === 'preorder' && (suppressVisitSub = cb.call(context, this));\n\n for (var i = 0; !suppressVisitSub && i < children.length; i++) {\n children[i].eachNode(options, cb, context);\n }\n\n order === 'postorder' && cb.call(context, this);\n };\n\n TreeNode.prototype.updateDepthAndHeight = function (depth) {\n var height = 0;\n this.depth = depth;\n\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n child.updateDepthAndHeight(depth + 1);\n\n if (child.height > height) {\n height = child.height;\n }\n }\n\n this.height = height + 1;\n };\n\n TreeNode.prototype.getNodeById = function (id) {\n if (this.getId() === id) {\n return this;\n }\n\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n var res = children[i].getNodeById(id);\n\n if (res) {\n return res;\n }\n }\n };\n\n TreeNode.prototype.contains = function (node) {\n if (node === this) {\n return true;\n }\n\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n var res = children[i].contains(node);\n\n if (res) {\n return res;\n }\n }\n };\n\n TreeNode.prototype.getAncestors = function (includeSelf) {\n var ancestors = [];\n var node = includeSelf ? this : this.parentNode;\n\n while (node) {\n ancestors.push(node);\n node = node.parentNode;\n }\n\n ancestors.reverse();\n return ancestors;\n };\n\n TreeNode.prototype.getAncestorsIndices = function () {\n var indices = [];\n var currNode = this;\n\n while (currNode) {\n indices.push(currNode.dataIndex);\n currNode = currNode.parentNode;\n }\n\n indices.reverse();\n return indices;\n };\n\n TreeNode.prototype.getDescendantIndices = function () {\n var indices = [];\n this.eachNode(function (childNode) {\n indices.push(childNode.dataIndex);\n });\n return indices;\n };\n\n TreeNode.prototype.getValue = function (dimension) {\n var data = this.hostTree.data;\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n };\n\n TreeNode.prototype.setLayout = function (layout, merge) {\n this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\n };\n\n TreeNode.prototype.getLayout = function () {\n return this.hostTree.data.getItemLayout(this.dataIndex);\n };\n\n TreeNode.prototype.getModel = function (path) {\n if (this.dataIndex < 0) {\n return;\n }\n\n var hostTree = this.hostTree;\n var itemModel = hostTree.data.getItemModel(this.dataIndex);\n return itemModel.getModel(path);\n };\n\n TreeNode.prototype.getLevelModel = function () {\n return (this.hostTree.levelModels || [])[this.depth];\n };\n\n TreeNode.prototype.setVisual = function (key, value) {\n this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\n };\n\n TreeNode.prototype.getVisual = function (key) {\n return this.hostTree.data.getItemVisual(this.dataIndex, key);\n };\n\n TreeNode.prototype.getRawIndex = function () {\n return this.hostTree.data.getRawIndex(this.dataIndex);\n };\n\n TreeNode.prototype.getId = function () {\n return this.hostTree.data.getId(this.dataIndex);\n };\n\n TreeNode.prototype.isAncestorOf = function (node) {\n var parent = node.parentNode;\n\n while (parent) {\n if (parent === this) {\n return true;\n }\n\n parent = parent.parentNode;\n }\n\n return false;\n };\n\n TreeNode.prototype.isDescendantOf = function (node) {\n return node !== this && node.isAncestorOf(this);\n };\n\n return TreeNode;\n}();\n\nexport { TreeNode };\n;\n\nvar Tree = function () {\n function Tree(hostModel) {\n this.type = 'tree';\n this._nodes = [];\n this.hostModel = hostModel;\n }\n\n Tree.prototype.eachNode = function (options, cb, context) {\n this.root.eachNode(options, cb, context);\n };\n\n Tree.prototype.getNodeByDataIndex = function (dataIndex) {\n var rawIndex = this.data.getRawIndex(dataIndex);\n return this._nodes[rawIndex];\n };\n\n Tree.prototype.getNodeById = function (name) {\n return this.root.getNodeById(name);\n };\n\n Tree.prototype.update = function () {\n var data = this.data;\n var nodes = this._nodes;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n nodes[i].dataIndex = -1;\n }\n\n for (var i = 0, len = data.count(); i < len; i++) {\n nodes[data.getRawIndex(i)].dataIndex = i;\n }\n };\n\n Tree.prototype.clearLayouts = function () {\n this.data.clearItemLayouts();\n };\n\n Tree.createTree = function (dataRoot, hostModel, beforeLink) {\n var tree = new Tree(hostModel);\n var listData = [];\n var dimMax = 1;\n buildHierarchy(dataRoot);\n\n function buildHierarchy(dataNode, parentNode) {\n var value = dataNode.value;\n dimMax = Math.max(dimMax, zrUtil.isArray(value) ? value.length : 1);\n listData.push(dataNode);\n var node = new TreeNode(convertOptionIdName(dataNode.name, ''), tree);\n parentNode ? addChild(node, parentNode) : tree.root = node;\n\n tree._nodes.push(node);\n\n var children = dataNode.children;\n\n if (children) {\n for (var i = 0; i < children.length; i++) {\n buildHierarchy(children[i], node);\n }\n }\n }\n\n tree.root.updateDepthAndHeight(0);\n var dimensionsInfo = createDimensions(listData, {\n coordDimensions: ['value'],\n dimensionsCount: dimMax\n });\n var list = new List(dimensionsInfo, hostModel);\n list.initData(listData);\n beforeLink && beforeLink(list);\n linkList({\n mainData: list,\n struct: tree,\n structAttr: 'tree'\n });\n tree.update();\n return tree;\n };\n\n return Tree;\n}();\n\nfunction addChild(child, node) {\n var children = node.children;\n\n if (child.parentNode === node) {\n return;\n }\n\n children.push(child);\n child.parentNode = node;\n}\n\nexport default Tree;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport Model from '../../model/Model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar TreeSeriesModel = function (_super) {\n __extends(TreeSeriesModel, _super);\n\n function TreeSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.hasSymbolVisual = true;\n _this.ignoreStyleOnData = true;\n return _this;\n }\n\n TreeSeriesModel.prototype.getInitialData = function (option) {\n var root = {\n name: option.name,\n children: option.data\n };\n var leaves = option.leaves || {};\n var leavesModel = new Model(leaves, this, this.ecModel);\n var tree = Tree.createTree(root, this, beforeLink);\n\n function beforeLink(nodeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n var node = tree.getNodeByDataIndex(idx);\n\n if (!node.children.length || !node.isExpand) {\n model.parentModel = leavesModel;\n }\n\n return model;\n });\n }\n\n var treeDepth = 0;\n tree.eachNode('preorder', function (node) {\n if (node.depth > treeDepth) {\n treeDepth = node.depth;\n }\n });\n var expandAndCollapse = option.expandAndCollapse;\n var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;\n tree.root.eachNode('preorder', function (node) {\n var item = node.hostTree.data.getRawDataItem(node.dataIndex);\n node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n });\n return tree.data;\n };\n\n TreeSeriesModel.prototype.getOrient = function () {\n var orient = this.get('orient');\n\n if (orient === 'horizontal') {\n orient = 'LR';\n } else if (orient === 'vertical') {\n orient = 'TB';\n }\n\n return orient;\n };\n\n TreeSeriesModel.prototype.setZoom = function (zoom) {\n this.option.zoom = zoom;\n };\n\n TreeSeriesModel.prototype.setCenter = function (center) {\n this.option.center = center;\n };\n\n TreeSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var tree = this.getData().tree;\n var realRoot = tree.root.children[0];\n var node = tree.getNodeByDataIndex(dataIndex);\n var value = node.getValue();\n var name = node.name;\n\n while (node && node !== realRoot) {\n name = node.parentNode.name + '.' + name;\n node = node.parentNode;\n }\n\n return createTooltipMarkup('nameValue', {\n name: name,\n value: value,\n noValue: isNaN(value) || value == null\n });\n };\n\n TreeSeriesModel.type = 'series.tree';\n TreeSeriesModel.layoutMode = 'box';\n TreeSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n left: '12%',\n top: '12%',\n right: '12%',\n bottom: '12%',\n layout: 'orthogonal',\n edgeShape: 'curve',\n edgeForkPosition: '50%',\n roam: false,\n nodeScaleRatio: 0.4,\n center: null,\n zoom: 1,\n orient: 'LR',\n symbol: 'emptyCircle',\n symbolSize: 7,\n expandAndCollapse: true,\n initialTreeDepth: 2,\n lineStyle: {\n color: '#ccc',\n width: 1.5,\n curveness: 0.5\n },\n itemStyle: {\n color: 'lightsteelblue',\n borderColor: '#c23531',\n borderWidth: 1.5\n },\n label: {\n show: true\n },\n animationEasing: 'linear',\n animationDuration: 700,\n animationDurationUpdate: 500\n };\n return TreeSeriesModel;\n}(SeriesModel);\n\nexport default TreeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction eachAfter(root, callback, separation) {\n var nodes = [root];\n var next = [];\n var node;\n\n while (node = nodes.pop()) {\n next.push(node);\n\n if (node.isExpand) {\n var children = node.children;\n\n if (children.length) {\n for (var i = 0; i < children.length; i++) {\n nodes.push(children[i]);\n }\n }\n }\n }\n\n while (node = next.pop()) {\n callback(node, separation);\n }\n}\n\nfunction eachBefore(root, callback) {\n var nodes = [root];\n var node;\n\n while (node = nodes.pop()) {\n callback(node);\n\n if (node.isExpand) {\n var children = node.children;\n\n if (children.length) {\n for (var i = children.length - 1; i >= 0; i--) {\n nodes.push(children[i]);\n }\n }\n }\n }\n}\n\nexport { eachAfter, eachBefore };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { eachAfter, eachBefore } from './traversalHelper';\nimport { init, firstWalk, secondWalk, separation as sep, radialCoordinate, getViewRect } from './layoutHelper';\nexport default function treeLayout(ecModel, api) {\n ecModel.eachSeriesByType('tree', function (seriesModel) {\n commonLayout(seriesModel, api);\n });\n}\n\nfunction commonLayout(seriesModel, api) {\n var layoutInfo = getViewRect(seriesModel, api);\n seriesModel.layoutInfo = layoutInfo;\n var layout = seriesModel.get('layout');\n var width = 0;\n var height = 0;\n var separation = null;\n\n if (layout === 'radial') {\n width = 2 * Math.PI;\n height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\n separation = sep(function (node1, node2) {\n return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\n });\n } else {\n width = layoutInfo.width;\n height = layoutInfo.height;\n separation = sep();\n }\n\n var virtualRoot = seriesModel.getData().tree.root;\n var realRoot = virtualRoot.children[0];\n\n if (realRoot) {\n init(virtualRoot);\n eachAfter(realRoot, firstWalk, separation);\n virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\n eachBefore(realRoot, secondWalk);\n var left_1 = realRoot;\n var right_1 = realRoot;\n var bottom_1 = realRoot;\n eachBefore(realRoot, function (node) {\n var x = node.getLayout().x;\n\n if (x < left_1.getLayout().x) {\n left_1 = node;\n }\n\n if (x > right_1.getLayout().x) {\n right_1 = node;\n }\n\n if (node.depth > bottom_1.depth) {\n bottom_1 = node;\n }\n });\n var delta = left_1 === right_1 ? 1 : separation(left_1, right_1) / 2;\n var tx_1 = delta - left_1.getLayout().x;\n var kx_1 = 0;\n var ky_1 = 0;\n var coorX_1 = 0;\n var coorY_1 = 0;\n\n if (layout === 'radial') {\n kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n ky_1 = height / (bottom_1.depth - 1 || 1);\n eachBefore(realRoot, function (node) {\n coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n coorY_1 = (node.depth - 1) * ky_1;\n var finalCoor = radialCoordinate(coorX_1, coorY_1);\n node.setLayout({\n x: finalCoor.x,\n y: finalCoor.y,\n rawX: coorX_1,\n rawY: coorY_1\n }, true);\n });\n } else {\n var orient_1 = seriesModel.getOrient();\n\n if (orient_1 === 'RL' || orient_1 === 'LR') {\n ky_1 = height / (right_1.getLayout().x + delta + tx_1);\n kx_1 = width / (bottom_1.depth - 1 || 1);\n eachBefore(realRoot, function (node) {\n coorY_1 = (node.getLayout().x + tx_1) * ky_1;\n coorX_1 = orient_1 === 'LR' ? (node.depth - 1) * kx_1 : width - (node.depth - 1) * kx_1;\n node.setLayout({\n x: coorX_1,\n y: coorY_1\n }, true);\n });\n } else if (orient_1 === 'TB' || orient_1 === 'BT') {\n kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n ky_1 = height / (bottom_1.depth - 1 || 1);\n eachBefore(realRoot, function (node) {\n coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n coorY_1 = orient_1 === 'TB' ? (node.depth - 1) * ky_1 : height - (node.depth - 1) * ky_1;\n node.setLayout({\n x: coorX_1,\n y: coorY_1\n }, true);\n });\n }\n }\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nexport default function treeVisual(ecModel) {\n ecModel.eachSeriesByType('tree', function (seriesModel) {\n var data = seriesModel.getData();\n var tree = data.tree;\n tree.eachNode(function (node) {\n var model = node.getModel();\n var style = model.getModel('itemStyle').getItemStyle();\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n extend(existsStyle, style);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function updateCenterAndZoom(view, payload, zoomLimit) {\n var previousZoom = view.getZoom();\n var center = view.getCenter();\n var zoom = payload.zoom;\n var point = view.dataToPoint(center);\n\n if (payload.dx != null && payload.dy != null) {\n point[0] -= payload.dx;\n point[1] -= payload.dy;\n view.setCenter(view.pointToData(point));\n }\n\n if (zoom != null) {\n if (zoomLimit) {\n var zoomMin = zoomLimit.min || 0;\n var zoomMax = zoomLimit.max || Infinity;\n zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\n }\n\n view.scaleX *= zoom;\n view.scaleY *= zoom;\n var fixX = (payload.originX - view.x) * (zoom - 1);\n var fixY = (payload.originY - view.y) * (zoom - 1);\n view.x -= fixX;\n view.y -= fixY;\n view.updateTransform();\n view.setCenter(view.pointToData(point));\n view.setZoom(zoom * previousZoom);\n }\n\n return {\n center: view.getCenter(),\n zoom: view.getZoom()\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nexport function installTreeAction(registers) {\n registers.registerAction({\n type: 'treeExpandAndCollapse',\n event: 'treeExpandAndCollapse',\n update: 'update'\n }, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'tree',\n query: payload\n }, function (seriesModel) {\n var dataIndex = payload.dataIndex;\n var tree = seriesModel.getData().tree;\n var node = tree.getNodeByDataIndex(dataIndex);\n node.isExpand = !node.isExpand;\n });\n });\n registers.registerAction({\n type: 'treeRoam',\n event: 'treeRoam',\n update: 'none'\n }, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'tree',\n query: payload\n }, function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var res = updateCenterAndZoom(coordSys, payload);\n seriesModel.setCenter && seriesModel.setCenter(res.center);\n seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport TreeView from './TreeView';\nimport TreeSeriesModel from './TreeSeries';\nimport treeLayout from './treeLayout';\nimport treeVisual from './treeVisual';\nimport { installTreeAction } from './treeAction';\nexport function install(registers) {\n registers.registerChartView(TreeView);\n registers.registerSeriesModel(TreeSeriesModel);\n registers.registerLayout(treeLayout);\n registers.registerVisual(treeVisual);\n installTreeAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {\n if (payload && zrUtil.indexOf(validPayloadTypes, payload.type) >= 0) {\n var root = seriesModel.getData().tree.root;\n var targetNode = payload.targetNode;\n\n if (typeof targetNode === 'string') {\n targetNode = root.getNodeById(targetNode);\n }\n\n if (targetNode && root.contains(targetNode)) {\n return {\n node: targetNode\n };\n }\n\n var targetNodeId = payload.targetNodeId;\n\n if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {\n return {\n node: targetNode\n };\n }\n }\n}\nexport function getPathToRoot(node) {\n var path = [];\n\n while (node) {\n node = node.parentNode;\n node && path.push(node);\n }\n\n return path.reverse();\n}\nexport function aboveViewRoot(viewRoot, node) {\n var viewPath = getPathToRoot(viewRoot);\n return zrUtil.indexOf(viewPath, node) >= 0;\n}\nexport function wrapTreePathInfo(node, seriesModel) {\n var treePathInfo = [];\n\n while (node) {\n var nodeDataIndex = node.dataIndex;\n treePathInfo.push({\n name: node.name,\n dataIndex: nodeDataIndex,\n value: seriesModel.getRawValue(nodeDataIndex)\n });\n node = node.parentNode;\n }\n\n treePathInfo.reverse();\n return treePathInfo;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as helper from '../helper/treeHelper';\n\nvar noop = function () {};\n\nvar actionTypes = ['treemapZoomToNode', 'treemapRender', 'treemapMove'];\nexport function installTreemapAction(registers) {\n for (var i = 0; i < actionTypes.length; i++) {\n registers.registerAction({\n type: actionTypes[i],\n update: 'updateView'\n }, noop);\n }\n\n registers.registerAction({\n type: 'treemapRootToNode',\n update: 'updateView'\n }, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'treemap',\n query: payload\n }, handleRootToNode);\n\n function handleRootToNode(model, index) {\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\n var targetInfo = helper.retrieveTargetInfo(payload, types, model);\n\n if (targetInfo) {\n var originViewRoot = model.getViewRoot();\n\n if (originViewRoot) {\n payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n }\n\n model.resetViewRoot(targetInfo.node);\n }\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getDecalFromPalette } from '../../model/mixin/palette';\nexport default function enableAriaDecalForTree(seriesModel) {\n var data = seriesModel.getData();\n var tree = data.tree;\n var decalPaletteScope = {};\n tree.eachNode(function (node) {\n var current = node;\n\n while (current && current.depth > 1) {\n current = current.parentNode;\n }\n\n var decal = getDecalFromPalette(seriesModel.ecModel, current.name || current.dataIndex + '', decalPaletteScope);\n node.setVisual('decal', decal);\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport Model from '../../model/Model';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport { normalizeToArray } from '../../util/model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree';\n\nvar TreemapSeriesModel = function (_super) {\n __extends(TreemapSeriesModel, _super);\n\n function TreemapSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TreemapSeriesModel.type;\n _this.preventUsingHoverLayer = true;\n return _this;\n }\n\n TreemapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n var root = {\n name: option.name,\n children: option.data\n };\n completeTreeValue(root);\n var levels = option.levels || [];\n var designatedVisualItemStyle = this.designatedVisualItemStyle = {};\n var designatedVisualModel = new Model({\n itemStyle: designatedVisualItemStyle\n }, this, ecModel);\n levels = option.levels = setDefault(levels, ecModel);\n var levelModels = zrUtil.map(levels || [], function (levelDefine) {\n return new Model(levelDefine, designatedVisualModel, ecModel);\n }, this);\n var tree = Tree.createTree(root, this, beforeLink);\n\n function beforeLink(nodeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n var node = tree.getNodeByDataIndex(idx);\n var levelModel = levelModels[node.depth];\n model.parentModel = levelModel || designatedVisualModel;\n return model;\n });\n }\n\n return tree.data;\n };\n\n TreemapSeriesModel.prototype.optionUpdated = function () {\n this.resetViewRoot();\n };\n\n TreemapSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var data = this.getData();\n var value = this.getRawValue(dataIndex);\n var name = data.getName(dataIndex);\n return createTooltipMarkup('nameValue', {\n name: name,\n value: value\n });\n };\n\n TreemapSeriesModel.prototype.getDataParams = function (dataIndex) {\n var params = _super.prototype.getDataParams.apply(this, arguments);\n\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n params.treePathInfo = wrapTreePathInfo(node, this);\n return params;\n };\n\n TreemapSeriesModel.prototype.setLayoutInfo = function (layoutInfo) {\n this.layoutInfo = this.layoutInfo || {};\n zrUtil.extend(this.layoutInfo, layoutInfo);\n };\n\n TreemapSeriesModel.prototype.mapIdToIndex = function (id) {\n var idIndexMap = this._idIndexMap;\n\n if (!idIndexMap) {\n idIndexMap = this._idIndexMap = zrUtil.createHashMap();\n this._idIndexMapCount = 0;\n }\n\n var index = idIndexMap.get(id);\n\n if (index == null) {\n idIndexMap.set(id, index = this._idIndexMapCount++);\n }\n\n return index;\n };\n\n TreemapSeriesModel.prototype.getViewRoot = function () {\n return this._viewRoot;\n };\n\n TreemapSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n var root = this.getRawData().tree.root;\n\n if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n this._viewRoot = root;\n }\n };\n\n TreemapSeriesModel.prototype.enableAriaDecal = function () {\n enableAriaDecalForTree(this);\n };\n\n TreemapSeriesModel.type = 'series.treemap';\n TreemapSeriesModel.layoutMode = 'box';\n TreemapSeriesModel.defaultOption = {\n progressive: 0,\n left: 'center',\n top: 'middle',\n width: '80%',\n height: '80%',\n sort: true,\n clipWindow: 'origin',\n squareRatio: 0.5 * (1 + Math.sqrt(5)),\n leafDepth: null,\n drillDownIcon: '▶',\n zoomToNodeRatio: 0.32 * 0.32,\n roam: true,\n nodeClick: 'zoomToNode',\n animation: true,\n animationDurationUpdate: 900,\n animationEasing: 'quinticInOut',\n breadcrumb: {\n show: true,\n height: 22,\n left: 'center',\n top: 'bottom',\n emptyItemWidth: 25,\n itemStyle: {\n color: 'rgba(0,0,0,0.7)',\n textStyle: {\n color: '#fff'\n }\n }\n },\n label: {\n show: true,\n distance: 0,\n padding: 5,\n position: 'inside',\n color: '#fff',\n overflow: 'truncate'\n },\n upperLabel: {\n show: false,\n position: [0, '50%'],\n height: 20,\n overflow: 'truncate',\n verticalAlign: 'middle'\n },\n itemStyle: {\n color: null,\n colorAlpha: null,\n colorSaturation: null,\n borderWidth: 0,\n gapWidth: 0,\n borderColor: '#fff',\n borderColorSaturation: null\n },\n emphasis: {\n upperLabel: {\n show: true,\n position: [0, '50%'],\n ellipsis: true,\n verticalAlign: 'middle'\n }\n },\n visualDimension: 0,\n visualMin: null,\n visualMax: null,\n color: [],\n colorAlpha: null,\n colorSaturation: null,\n colorMappingBy: 'index',\n visibleMin: 10,\n childrenVisibleMin: null,\n levels: []\n };\n return TreemapSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n var sum = 0;\n zrUtil.each(dataNode.children, function (child) {\n completeTreeValue(child);\n var childValue = child.value;\n zrUtil.isArray(childValue) && (childValue = childValue[0]);\n sum += childValue;\n });\n var thisValue = dataNode.value;\n\n if (zrUtil.isArray(thisValue)) {\n thisValue = thisValue[0];\n }\n\n if (thisValue == null || isNaN(thisValue)) {\n thisValue = sum;\n }\n\n if (thisValue < 0) {\n thisValue = 0;\n }\n\n zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nfunction setDefault(levels, ecModel) {\n var globalColorList = normalizeToArray(ecModel.get('color'));\n var globalDecalList = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n\n if (!globalColorList) {\n return;\n }\n\n levels = levels || [];\n var hasColorDefine;\n var hasDecalDefine;\n zrUtil.each(levels, function (levelDefine) {\n var model = new Model(levelDefine);\n var modelColor = model.get('color');\n var modelDecal = model.get('decal');\n\n if (model.get(['itemStyle', 'color']) || modelColor && modelColor !== 'none') {\n hasColorDefine = true;\n }\n\n if (model.get(['itemStyle', 'decal']) || modelDecal && modelDecal !== 'none') {\n hasDecalDefine = true;\n }\n });\n var level0 = levels[0] || (levels[0] = {});\n\n if (!hasColorDefine) {\n level0.color = globalColorList.slice();\n }\n\n if (!hasDecalDefine && globalDecalList) {\n level0.decal = globalDecalList.slice();\n }\n\n return levels;\n}\n\nexport default TreemapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport * as layout from '../../util/layout';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport { curry, defaults } from 'zrender/lib/core/util';\nimport { convertOptionIdName } from '../../util/model';\nvar TEXT_PADDING = 8;\nvar ITEM_GAP = 8;\nvar ARRAY_LENGTH = 5;\n\nvar Breadcrumb = function () {\n function Breadcrumb(containerGroup) {\n this.group = new graphic.Group();\n containerGroup.add(this.group);\n }\n\n Breadcrumb.prototype.render = function (seriesModel, api, targetNode, onSelect) {\n var model = seriesModel.getModel('breadcrumb');\n var thisGroup = this.group;\n thisGroup.removeAll();\n\n if (!model.get('show') || !targetNode) {\n return;\n }\n\n var normalStyleModel = model.getModel('itemStyle');\n var textStyleModel = normalStyleModel.getModel('textStyle');\n var layoutParam = {\n pos: {\n left: model.get('left'),\n right: model.get('right'),\n top: model.get('top'),\n bottom: model.get('bottom')\n },\n box: {\n width: api.getWidth(),\n height: api.getHeight()\n },\n emptyItemWidth: model.get('emptyItemWidth'),\n totalWidth: 0,\n renderList: []\n };\n\n this._prepare(targetNode, layoutParam, textStyleModel);\n\n this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\n\n layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box);\n };\n\n Breadcrumb.prototype._prepare = function (targetNode, layoutParam, textStyleModel) {\n for (var node = targetNode; node; node = node.parentNode) {\n var text = convertOptionIdName(node.getModel().get('name'), '');\n var textRect = textStyleModel.getTextRect(text);\n var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\n layoutParam.totalWidth += itemWidth + ITEM_GAP;\n layoutParam.renderList.push({\n node: node,\n text: text,\n width: itemWidth\n });\n }\n };\n\n Breadcrumb.prototype._renderContent = function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\n var lastX = 0;\n var emptyItemWidth = layoutParam.emptyItemWidth;\n var height = seriesModel.get(['breadcrumb', 'height']);\n var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box);\n var totalWidth = layoutParam.totalWidth;\n var renderList = layoutParam.renderList;\n\n for (var i = renderList.length - 1; i >= 0; i--) {\n var item = renderList[i];\n var itemNode = item.node;\n var itemWidth = item.width;\n var text = item.text;\n\n if (totalWidth > availableSize.width) {\n totalWidth -= itemWidth - emptyItemWidth;\n itemWidth = emptyItemWidth;\n text = null;\n }\n\n var el = new graphic.Polygon({\n shape: {\n points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\n },\n style: defaults(normalStyleModel.getItemStyle(), {\n lineJoin: 'bevel'\n }),\n textContent: new graphic.Text({\n style: {\n text: text,\n fill: textStyleModel.getTextColor(),\n font: textStyleModel.getFont()\n }\n }),\n textConfig: {\n position: 'inside'\n },\n z: 10,\n onclick: curry(onSelect, itemNode)\n });\n el.disableLabelAnimation = true;\n this.group.add(el);\n packEventData(el, seriesModel, itemNode);\n lastX += itemWidth + ITEM_GAP;\n }\n };\n\n Breadcrumb.prototype.remove = function () {\n this.group.removeAll();\n };\n\n return Breadcrumb;\n}();\n\nfunction makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\n var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];\n !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\n !head && points.push([x, y + itemHeight / 2]);\n return points;\n}\n\nfunction packEventData(el, seriesModel, itemNode) {\n getECData(el).eventData = {\n componentType: 'series',\n componentSubType: 'treemap',\n componentIndex: seriesModel.componentIndex,\n seriesIndex: seriesModel.componentIndex,\n seriesName: seriesModel.name,\n seriesType: 'treemap',\n selfType: 'breadcrumb',\n nodeData: {\n dataIndex: itemNode && itemNode.dataIndex,\n name: itemNode && itemNode.name\n },\n treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\n };\n}\n\nexport default Breadcrumb;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AnimationWrap = function () {\n function AnimationWrap() {\n this._storage = [];\n this._elExistsMap = {};\n }\n\n AnimationWrap.prototype.add = function (el, target, duration, delay, easing) {\n if (this._elExistsMap[el.id]) {\n return false;\n }\n\n this._elExistsMap[el.id] = true;\n\n this._storage.push({\n el: el,\n target: target,\n duration: duration,\n delay: delay,\n easing: easing\n });\n\n return true;\n };\n\n AnimationWrap.prototype.finished = function (callback) {\n this._finishedCallback = callback;\n return this;\n };\n\n AnimationWrap.prototype.start = function () {\n var _this = this;\n\n var count = this._storage.length;\n\n var checkTerminate = function () {\n count--;\n\n if (count <= 0) {\n _this._storage.length = 0;\n _this._elExistsMap = {};\n _this._finishedCallback && _this._finishedCallback();\n }\n };\n\n for (var i = 0, len = this._storage.length; i < len; i++) {\n var item = this._storage[i];\n item.el.animateTo(item.target, {\n duration: item.duration,\n delay: item.delay,\n easing: item.easing,\n setToFinal: true,\n done: checkTerminate,\n aborted: checkTerminate\n });\n }\n\n return this;\n };\n\n return AnimationWrap;\n}();\n\nexport function createWrap() {\n return new AnimationWrap();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, indexOf, curry, extend, retrieve, normalizeCssArray, isFunction } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { isHighDownDispatcher, setAsHighDownDispatcher, setDefaultStateProxy, enableHoverFocus } from '../../util/states';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as helper from '../helper/treeHelper';\nimport Breadcrumb from './Breadcrumb';\nimport RoamController from '../../component/helper/RoamController';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as animationUtil from '../../util/animation';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper';\nimport ChartView from '../../view/Chart';\nimport Displayable from 'zrender/lib/graphic/Displayable';\nimport { makeInner, convertOptionIdName } from '../../util/model';\nimport { windowOpen } from '../../util/format';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nvar Group = graphic.Group;\nvar Rect = graphic.Rect;\nvar DRAG_THRESHOLD = 3;\nvar PATH_LABEL_NOAMAL = 'label';\nvar PATH_UPPERLABEL_NORMAL = 'upperLabel';\nvar Z_BASE = 10;\nvar Z_BG = 1;\nvar Z_CONTENT = 2;\nvar getStateItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'strokeColor'], ['lineWidth', 'strokeWidth'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\n\nvar getItemStyleNormal = function (model) {\n var itemStyle = getStateItemStyle(model);\n itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\n return itemStyle;\n};\n\nvar inner = makeInner();\n\nvar TreemapView = function (_super) {\n __extends(TreemapView, _super);\n\n function TreemapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TreemapView.type;\n _this._state = 'ready';\n _this._storage = createStorage();\n return _this;\n }\n\n TreemapView.prototype.render = function (seriesModel, ecModel, api, payload) {\n var models = ecModel.findComponents({\n mainType: 'series',\n subType: 'treemap',\n query: payload\n });\n\n if (indexOf(models, seriesModel) < 0) {\n return;\n }\n\n this.seriesModel = seriesModel;\n this.api = api;\n this.ecModel = ecModel;\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\n var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n var payloadType = payload && payload.type;\n var layoutInfo = seriesModel.layoutInfo;\n var isInit = !this._oldTree;\n var thisStorage = this._storage;\n var reRoot = payloadType === 'treemapRootToNode' && targetInfo && thisStorage ? {\n rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\n direction: payload.direction\n } : null;\n\n var containerGroup = this._giveContainerGroup(layoutInfo);\n\n var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\n\n !isInit && (!payloadType || payloadType === 'treemapZoomToNode' || payloadType === 'treemapRootToNode') ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally();\n\n this._resetController(api);\n\n this._renderBreadcrumb(seriesModel, api, targetInfo);\n };\n\n TreemapView.prototype._giveContainerGroup = function (layoutInfo) {\n var containerGroup = this._containerGroup;\n\n if (!containerGroup) {\n containerGroup = this._containerGroup = new Group();\n\n this._initEvents(containerGroup);\n\n this.group.add(containerGroup);\n }\n\n containerGroup.x = layoutInfo.x;\n containerGroup.y = layoutInfo.y;\n return containerGroup;\n };\n\n TreemapView.prototype._doRender = function (containerGroup, seriesModel, reRoot) {\n var thisTree = seriesModel.getData().tree;\n var oldTree = this._oldTree;\n var lastsForAnimation = createStorage();\n var thisStorage = createStorage();\n var oldStorage = this._storage;\n var willInvisibleEls = [];\n\n function doRenderNode(thisNode, oldNode, parentGroup, depth) {\n return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth);\n }\n\n dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0);\n var willDeleteEls = clearStorage(oldStorage);\n this._oldTree = thisTree;\n this._storage = thisStorage;\n return {\n lastsForAnimation: lastsForAnimation,\n willDeleteEls: willDeleteEls,\n renderFinally: renderFinally\n };\n\n function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\n if (sameTree) {\n oldViewChildren = thisViewChildren;\n each(thisViewChildren, function (child, index) {\n !child.isRemoved() && processNode(index, index);\n });\n } else {\n new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey).add(processNode).update(processNode).remove(curry(processNode, null)).execute();\n }\n\n function getKey(node) {\n return node.getId();\n }\n\n function processNode(newIndex, oldIndex) {\n var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\n var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\n var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\n group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\n }\n }\n\n function clearStorage(storage) {\n var willDeleteEls = createStorage();\n storage && each(storage, function (store, storageName) {\n var delEls = willDeleteEls[storageName];\n each(store, function (el) {\n el && (delEls.push(el), inner(el).willDelete = true);\n });\n });\n return willDeleteEls;\n }\n\n function renderFinally() {\n each(willDeleteEls, function (els) {\n each(els, function (el) {\n el.parent && el.parent.remove(el);\n });\n });\n each(willInvisibleEls, function (el) {\n el.invisible = true;\n el.dirty();\n });\n }\n };\n\n TreemapView.prototype._doAnimation = function (containerGroup, renderResult, seriesModel, reRoot) {\n if (!seriesModel.get('animation')) {\n return;\n }\n\n var durationOption = seriesModel.get('animationDurationUpdate');\n var easingOption = seriesModel.get('animationEasing');\n var duration = (isFunction(durationOption) ? 0 : durationOption) || 0;\n var easing = (isFunction(easingOption) ? null : easingOption) || 'cubicOut';\n var animationWrap = animationUtil.createWrap();\n each(renderResult.willDeleteEls, function (store, storageName) {\n each(store, function (el, rawIndex) {\n if (el.invisible) {\n return;\n }\n\n var parent = el.parent;\n var target;\n var innerStore = inner(parent);\n\n if (reRoot && reRoot.direction === 'drillDown') {\n target = parent === reRoot.rootNodeGroup ? {\n shape: {\n x: 0,\n y: 0,\n width: innerStore.nodeWidth,\n height: innerStore.nodeHeight\n },\n style: {\n opacity: 0\n }\n } : {\n style: {\n opacity: 0\n }\n };\n } else {\n var targetX = 0;\n var targetY = 0;\n\n if (!innerStore.willDelete) {\n targetX = innerStore.nodeWidth / 2;\n targetY = innerStore.nodeHeight / 2;\n }\n\n target = storageName === 'nodeGroup' ? {\n x: targetX,\n y: targetY,\n style: {\n opacity: 0\n }\n } : {\n shape: {\n x: targetX,\n y: targetY,\n width: 0,\n height: 0\n },\n style: {\n opacity: 0\n }\n };\n }\n\n target && animationWrap.add(el, target, duration, 0, easing);\n });\n });\n each(this._storage, function (store, storageName) {\n each(store, function (el, rawIndex) {\n var last = renderResult.lastsForAnimation[storageName][rawIndex];\n var target = {};\n\n if (!last) {\n return;\n }\n\n if (el instanceof graphic.Group) {\n if (last.oldX != null) {\n target.x = el.x;\n target.y = el.y;\n el.x = last.oldX;\n el.y = last.oldY;\n }\n } else {\n if (last.oldShape) {\n target.shape = extend({}, el.shape);\n el.setShape(last.oldShape);\n }\n\n if (last.fadein) {\n el.setStyle('opacity', 0);\n target.style = {\n opacity: 1\n };\n } else if (el.style.opacity !== 1) {\n target.style = {\n opacity: 1\n };\n }\n }\n\n animationWrap.add(el, target, duration, 0, easing);\n });\n }, this);\n this._state = 'animating';\n animationWrap.finished(bind(function () {\n this._state = 'ready';\n renderResult.renderFinally();\n }, this)).start();\n };\n\n TreemapView.prototype._resetController = function (api) {\n var controller = this._controller;\n\n if (!controller) {\n controller = this._controller = new RoamController(api.getZr());\n controller.enable(this.seriesModel.get('roam'));\n controller.on('pan', bind(this._onPan, this));\n controller.on('zoom', bind(this._onZoom, this));\n }\n\n var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\n controller.setPointerChecker(function (e, x, y) {\n return rect.contain(x, y);\n });\n };\n\n TreemapView.prototype._clearController = function () {\n var controller = this._controller;\n\n if (controller) {\n controller.dispose();\n controller = null;\n }\n };\n\n TreemapView.prototype._onPan = function (e) {\n if (this._state !== 'animating' && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {\n var root = this.seriesModel.getData().tree.root;\n\n if (!root) {\n return;\n }\n\n var rootLayout = root.getLayout();\n\n if (!rootLayout) {\n return;\n }\n\n this.api.dispatchAction({\n type: 'treemapMove',\n from: this.uid,\n seriesId: this.seriesModel.id,\n rootRect: {\n x: rootLayout.x + e.dx,\n y: rootLayout.y + e.dy,\n width: rootLayout.width,\n height: rootLayout.height\n }\n });\n }\n };\n\n TreemapView.prototype._onZoom = function (e) {\n var mouseX = e.originX;\n var mouseY = e.originY;\n\n if (this._state !== 'animating') {\n var root = this.seriesModel.getData().tree.root;\n\n if (!root) {\n return;\n }\n\n var rootLayout = root.getLayout();\n\n if (!rootLayout) {\n return;\n }\n\n var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\n var layoutInfo = this.seriesModel.layoutInfo;\n mouseX -= layoutInfo.x;\n mouseY -= layoutInfo.y;\n var m = matrix.create();\n matrix.translate(m, m, [-mouseX, -mouseY]);\n matrix.scale(m, m, [e.scale, e.scale]);\n matrix.translate(m, m, [mouseX, mouseY]);\n rect.applyTransform(m);\n this.api.dispatchAction({\n type: 'treemapRender',\n from: this.uid,\n seriesId: this.seriesModel.id,\n rootRect: {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n }\n });\n }\n };\n\n TreemapView.prototype._initEvents = function (containerGroup) {\n var _this = this;\n\n containerGroup.on('click', function (e) {\n if (_this._state !== 'ready') {\n return;\n }\n\n var nodeClick = _this.seriesModel.get('nodeClick', true);\n\n if (!nodeClick) {\n return;\n }\n\n var targetInfo = _this.findTarget(e.offsetX, e.offsetY);\n\n if (!targetInfo) {\n return;\n }\n\n var node = targetInfo.node;\n\n if (node.getLayout().isLeafRoot) {\n _this._rootToNode(targetInfo);\n } else {\n if (nodeClick === 'zoomToNode') {\n _this._zoomToNode(targetInfo);\n } else if (nodeClick === 'link') {\n var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\n var link = itemModel.get('link', true);\n var linkTarget = itemModel.get('target', true) || 'blank';\n link && windowOpen(link, linkTarget);\n }\n }\n }, this);\n };\n\n TreemapView.prototype._renderBreadcrumb = function (seriesModel, api, targetInfo) {\n var _this = this;\n\n if (!targetInfo) {\n targetInfo = seriesModel.get('leafDepth', true) != null ? {\n node: seriesModel.getViewRoot()\n } : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\n\n if (!targetInfo) {\n targetInfo = {\n node: seriesModel.getData().tree.root\n };\n }\n }\n\n (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group))).render(seriesModel, api, targetInfo.node, function (node) {\n if (_this._state !== 'animating') {\n helper.aboveViewRoot(seriesModel.getViewRoot(), node) ? _this._rootToNode({\n node: node\n }) : _this._zoomToNode({\n node: node\n });\n }\n });\n };\n\n TreemapView.prototype.remove = function () {\n this._clearController();\n\n this._containerGroup && this._containerGroup.removeAll();\n this._storage = createStorage();\n this._state = 'ready';\n this._breadcrumb && this._breadcrumb.remove();\n };\n\n TreemapView.prototype.dispose = function () {\n this._clearController();\n };\n\n TreemapView.prototype._zoomToNode = function (targetInfo) {\n this.api.dispatchAction({\n type: 'treemapZoomToNode',\n from: this.uid,\n seriesId: this.seriesModel.id,\n targetNode: targetInfo.node\n });\n };\n\n TreemapView.prototype._rootToNode = function (targetInfo) {\n this.api.dispatchAction({\n type: 'treemapRootToNode',\n from: this.uid,\n seriesId: this.seriesModel.id,\n targetNode: targetInfo.node\n });\n };\n\n TreemapView.prototype.findTarget = function (x, y) {\n var targetInfo;\n var viewRoot = this.seriesModel.getViewRoot();\n viewRoot.eachNode({\n attr: 'viewChildren',\n order: 'preorder'\n }, function (node) {\n var bgEl = this._storage.background[node.getRawIndex()];\n\n if (bgEl) {\n var point = bgEl.transformCoordToLocal(x, y);\n var shape = bgEl.shape;\n\n if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) {\n targetInfo = {\n node: node,\n offsetX: point[0],\n offsetY: point[1]\n };\n } else {\n return false;\n }\n }\n }, this);\n return targetInfo;\n };\n\n TreemapView.type = 'treemap';\n return TreemapView;\n}(ChartView);\n\nfunction createStorage() {\n return {\n nodeGroup: [],\n background: [],\n content: []\n };\n}\n\nfunction renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\n if (!thisNode) {\n return;\n }\n\n var thisLayout = thisNode.getLayout();\n var data = seriesModel.getData();\n var nodeModel = thisNode.getModel();\n data.setItemGraphicEl(thisNode.dataIndex, null);\n\n if (!thisLayout || !thisLayout.isInView) {\n return;\n }\n\n var thisWidth = thisLayout.width;\n var thisHeight = thisLayout.height;\n var borderWidth = thisLayout.borderWidth;\n var thisInvisible = thisLayout.invisible;\n var thisRawIndex = thisNode.getRawIndex();\n var oldRawIndex = oldNode && oldNode.getRawIndex();\n var thisViewChildren = thisNode.viewChildren;\n var upperHeight = thisLayout.upperHeight;\n var isParent = thisViewChildren && thisViewChildren.length;\n var itemStyleNormalModel = nodeModel.getModel('itemStyle');\n var itemStyleEmphasisModel = nodeModel.getModel(['emphasis', 'itemStyle']);\n var itemStyleBlurModel = nodeModel.getModel(['blur', 'itemStyle']);\n var itemStyleSelectModel = nodeModel.getModel(['select', 'itemStyle']);\n var borderRadius = itemStyleNormalModel.get('borderRadius') || 0;\n var group = giveGraphic('nodeGroup', Group);\n\n if (!group) {\n return;\n }\n\n parentGroup.add(group);\n group.x = thisLayout.x || 0;\n group.y = thisLayout.y || 0;\n group.markRedraw();\n inner(group).nodeWidth = thisWidth;\n inner(group).nodeHeight = thisHeight;\n\n if (thisLayout.isAboveViewRoot) {\n return group;\n }\n\n var bg = giveGraphic('background', Rect, depth, Z_BG);\n bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight);\n var focus = nodeModel.get(['emphasis', 'focus']);\n var blurScope = nodeModel.get(['emphasis', 'blurScope']);\n var focusDataIndices = focus === 'ancestor' ? thisNode.getAncestorsIndices() : focus === 'descendant' ? thisNode.getDescendantIndices() : null;\n\n if (isParent) {\n if (isHighDownDispatcher(group)) {\n setAsHighDownDispatcher(group, false);\n }\n\n if (bg) {\n setAsHighDownDispatcher(bg, true);\n data.setItemGraphicEl(thisNode.dataIndex, bg);\n enableHoverFocus(bg, focusDataIndices || focus, blurScope);\n }\n } else {\n var content = giveGraphic('content', Rect, depth, Z_CONTENT);\n content && renderContent(group, content);\n\n if (bg && isHighDownDispatcher(bg)) {\n setAsHighDownDispatcher(bg, false);\n }\n\n setAsHighDownDispatcher(group, true);\n data.setItemGraphicEl(thisNode.dataIndex, group);\n enableHoverFocus(group, focusDataIndices || focus, blurScope);\n }\n\n return group;\n\n function renderBackground(group, bg, useUpperLabel) {\n var ecData = getECData(bg);\n ecData.dataIndex = thisNode.dataIndex;\n ecData.seriesIndex = seriesModel.seriesIndex;\n bg.setShape({\n x: 0,\n y: 0,\n width: thisWidth,\n height: thisHeight,\n r: borderRadius\n });\n\n if (thisInvisible) {\n processInvisible(bg);\n } else {\n bg.invisible = false;\n var style = thisNode.getVisual('style');\n var visualBorderColor = style.stroke;\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n normalStyle.fill = visualBorderColor;\n var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n emphasisStyle.fill = itemStyleEmphasisModel.get('borderColor');\n var blurStyle = getStateItemStyle(itemStyleBlurModel);\n blurStyle.fill = itemStyleBlurModel.get('borderColor');\n var selectStyle = getStateItemStyle(itemStyleSelectModel);\n selectStyle.fill = itemStyleSelectModel.get('borderColor');\n\n if (useUpperLabel) {\n var upperLabelWidth = thisWidth - 2 * borderWidth;\n prepareText(bg, visualBorderColor, upperLabelWidth, upperHeight, style.opacity, {\n x: borderWidth,\n y: 0,\n width: upperLabelWidth,\n height: upperHeight\n });\n } else {\n bg.removeTextContent();\n }\n\n bg.setStyle(normalStyle);\n bg.ensureState('emphasis').style = emphasisStyle;\n bg.ensureState('blur').style = blurStyle;\n bg.ensureState('select').style = selectStyle;\n setDefaultStateProxy(bg);\n }\n\n group.add(bg);\n }\n\n function renderContent(group, content) {\n var ecData = getECData(content);\n ecData.dataIndex = thisNode.dataIndex;\n ecData.seriesIndex = seriesModel.seriesIndex;\n var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\n var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\n content.culling = true;\n content.setShape({\n x: borderWidth,\n y: borderWidth,\n width: contentWidth,\n height: contentHeight,\n r: borderRadius\n });\n\n if (thisInvisible) {\n processInvisible(content);\n } else {\n content.invisible = false;\n var nodeStyle = thisNode.getVisual('style');\n var visualColor = nodeStyle.fill;\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n normalStyle.fill = visualColor;\n normalStyle.decal = nodeStyle.decal;\n var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n var blurStyle = getStateItemStyle(itemStyleBlurModel);\n var selectStyle = getStateItemStyle(itemStyleSelectModel);\n prepareText(content, visualColor, contentWidth, nodeStyle.opacity, contentHeight);\n content.setStyle(normalStyle);\n content.ensureState('emphasis').style = emphasisStyle;\n content.ensureState('blur').style = blurStyle;\n content.ensureState('select').style = selectStyle;\n setDefaultStateProxy(content);\n }\n\n group.add(content);\n }\n\n function processInvisible(element) {\n !element.invisible && willInvisibleEls.push(element);\n }\n\n function prepareText(rectEl, visualColor, visualOpacity, width, height, upperLabelRect) {\n var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\n var text = retrieve(seriesModel.getFormattedLabel(thisNode.dataIndex, 'normal', null, null, normalLabelModel.get('formatter')), convertOptionIdName(nodeModel.get('name'), null));\n\n if (!upperLabelRect && thisLayout.isLeafRoot) {\n var iconChar = seriesModel.get('drillDownIcon', true);\n text = iconChar ? iconChar + ' ' + text : text;\n }\n\n var isShow = normalLabelModel.getShallow('show');\n setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), {\n defaultText: isShow ? text : null,\n inheritColor: visualColor,\n defaultOpacity: visualOpacity,\n labelFetcher: seriesModel,\n labelDataIndex: thisNode.dataIndex\n });\n var textEl = rectEl.getTextContent();\n var textStyle = textEl.style;\n var textPadding = normalizeCssArray(textStyle.padding || 0);\n\n if (upperLabelRect) {\n rectEl.setTextConfig({\n layoutRect: upperLabelRect\n });\n textEl.disableLabelLayout = true;\n }\n\n textEl.beforeUpdate = function () {\n var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0);\n var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0);\n\n if (textStyle.width !== width || textStyle.height !== height) {\n textEl.setStyle({\n width: width,\n height: height\n });\n }\n };\n\n textStyle.truncateMinChar = 2;\n textStyle.lineOverflow = 'truncate';\n addDrillDownIcon(textStyle, upperLabelRect, thisLayout);\n var textEmphasisState = textEl.getState('emphasis');\n addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout);\n }\n\n function addDrillDownIcon(style, upperLabelRect, thisLayout) {\n var text = style ? style.text : null;\n\n if (!upperLabelRect && thisLayout.isLeafRoot && text != null) {\n var iconChar = seriesModel.get('drillDownIcon', true);\n style.text = iconChar ? iconChar + ' ' + text : text;\n }\n }\n\n function giveGraphic(storageName, Ctor, depth, z) {\n var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\n var lasts = lastsForAnimation[storageName];\n\n if (element) {\n oldStorage[storageName][oldRawIndex] = null;\n prepareAnimationWhenHasOld(lasts, element);\n } else if (!thisInvisible) {\n element = new Ctor();\n\n if (element instanceof Displayable) {\n element.z = calculateZ(depth, z);\n }\n\n prepareAnimationWhenNoOld(lasts, element);\n }\n\n return thisStorage[storageName][thisRawIndex] = element;\n }\n\n function prepareAnimationWhenHasOld(lasts, element) {\n var lastCfg = lasts[thisRawIndex] = {};\n\n if (element instanceof Group) {\n lastCfg.oldX = element.x;\n lastCfg.oldY = element.y;\n } else {\n lastCfg.oldShape = extend({}, element.shape);\n }\n }\n\n function prepareAnimationWhenNoOld(lasts, element) {\n var lastCfg = lasts[thisRawIndex] = {};\n var parentNode = thisNode.parentNode;\n var isGroup = element instanceof graphic.Group;\n\n if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\n var parentOldX = 0;\n var parentOldY = 0;\n var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\n\n if (!reRoot && parentOldBg && parentOldBg.oldShape) {\n parentOldX = parentOldBg.oldShape.width;\n parentOldY = parentOldBg.oldShape.height;\n }\n\n if (isGroup) {\n lastCfg.oldX = 0;\n lastCfg.oldY = parentOldY;\n } else {\n lastCfg.oldShape = {\n x: parentOldX,\n y: parentOldY,\n width: 0,\n height: 0\n };\n }\n }\n\n lastCfg.fadein = !isGroup;\n }\n}\n\nfunction calculateZ(depth, zInLevel) {\n var zb = depth * Z_BASE + zInLevel;\n return (zb - 1) / zb;\n}\n\nexport default TreemapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as zrColor from 'zrender/lib/tool/color';\nimport { linearMap } from '../util/number';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar CATEGORY_DEFAULT_VISUAL_INDEX = -1;\n\nvar VisualMapping = function () {\n function VisualMapping(option) {\n var mappingMethod = option.mappingMethod;\n var visualType = option.type;\n var thisOption = this.option = zrUtil.clone(option);\n this.type = visualType;\n this.mappingMethod = mappingMethod;\n this._normalizeData = normalizers[mappingMethod];\n var visualHandler = VisualMapping.visualHandlers[visualType];\n this.applyVisual = visualHandler.applyVisual;\n this.getColorMapper = visualHandler.getColorMapper;\n this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\n\n if (mappingMethod === 'piecewise') {\n normalizeVisualRange(thisOption);\n preprocessForPiecewise(thisOption);\n } else if (mappingMethod === 'category') {\n thisOption.categories ? preprocessForSpecifiedCategory(thisOption) : normalizeVisualRange(thisOption, true);\n } else {\n zrUtil.assert(mappingMethod !== 'linear' || thisOption.dataExtent);\n normalizeVisualRange(thisOption);\n }\n }\n\n VisualMapping.prototype.mapValueToVisual = function (value) {\n var normalized = this._normalizeData(value);\n\n return this._normalizedToVisual(normalized, value);\n };\n\n VisualMapping.prototype.getNormalizer = function () {\n return zrUtil.bind(this._normalizeData, this);\n };\n\n VisualMapping.listVisualTypes = function () {\n return zrUtil.keys(VisualMapping.visualHandlers);\n };\n\n VisualMapping.isValidType = function (visualType) {\n return VisualMapping.visualHandlers.hasOwnProperty(visualType);\n };\n\n VisualMapping.eachVisual = function (visual, callback, context) {\n if (zrUtil.isObject(visual)) {\n zrUtil.each(visual, callback, context);\n } else {\n callback.call(context, visual);\n }\n };\n\n VisualMapping.mapVisual = function (visual, callback, context) {\n var isPrimary;\n var newVisual = zrUtil.isArray(visual) ? [] : zrUtil.isObject(visual) ? {} : (isPrimary = true, null);\n VisualMapping.eachVisual(visual, function (v, key) {\n var newVal = callback.call(context, v, key);\n isPrimary ? newVisual = newVal : newVisual[key] = newVal;\n });\n return newVisual;\n };\n\n VisualMapping.retrieveVisuals = function (obj) {\n var ret = {};\n var hasVisual;\n obj && each(VisualMapping.visualHandlers, function (h, visualType) {\n if (obj.hasOwnProperty(visualType)) {\n ret[visualType] = obj[visualType];\n hasVisual = true;\n }\n });\n return hasVisual ? ret : null;\n };\n\n VisualMapping.prepareVisualTypes = function (visualTypes) {\n if (zrUtil.isArray(visualTypes)) {\n visualTypes = visualTypes.slice();\n } else if (isObject(visualTypes)) {\n var types_1 = [];\n each(visualTypes, function (item, type) {\n types_1.push(type);\n });\n visualTypes = types_1;\n } else {\n return [];\n }\n\n visualTypes.sort(function (type1, type2) {\n return type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0 ? 1 : -1;\n });\n return visualTypes;\n };\n\n VisualMapping.dependsOn = function (visualType1, visualType2) {\n return visualType2 === 'color' ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2;\n };\n\n VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\n var possibleI;\n var abs = Infinity;\n\n for (var i = 0, len = pieceList.length; i < len; i++) {\n var pieceValue = pieceList[i].value;\n\n if (pieceValue != null) {\n if (pieceValue === value || typeof pieceValue === 'string' && pieceValue === value + '') {\n return i;\n }\n\n findClosestWhenOutside && updatePossible(pieceValue, i);\n }\n }\n\n for (var i = 0, len = pieceList.length; i < len; i++) {\n var piece = pieceList[i];\n var interval = piece.interval;\n var close_1 = piece.close;\n\n if (interval) {\n if (interval[0] === -Infinity) {\n if (littleThan(close_1[1], value, interval[1])) {\n return i;\n }\n } else if (interval[1] === Infinity) {\n if (littleThan(close_1[0], interval[0], value)) {\n return i;\n }\n } else if (littleThan(close_1[0], interval[0], value) && littleThan(close_1[1], value, interval[1])) {\n return i;\n }\n\n findClosestWhenOutside && updatePossible(interval[0], i);\n findClosestWhenOutside && updatePossible(interval[1], i);\n }\n }\n\n if (findClosestWhenOutside) {\n return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI;\n }\n\n function updatePossible(val, index) {\n var newAbs = Math.abs(val - value);\n\n if (newAbs < abs) {\n abs = newAbs;\n possibleI = index;\n }\n }\n };\n\n VisualMapping.visualHandlers = {\n color: {\n applyVisual: makeApplyVisual('color'),\n getColorMapper: function () {\n var thisOption = this.option;\n return zrUtil.bind(thisOption.mappingMethod === 'category' ? function (value, isNormalized) {\n !isNormalized && (value = this._normalizeData(value));\n return doMapCategory.call(this, value);\n } : function (value, isNormalized, out) {\n var returnRGBArray = !!out;\n !isNormalized && (value = this._normalizeData(value));\n out = zrColor.fastLerp(value, thisOption.parsedVisual, out);\n return returnRGBArray ? out : zrColor.stringify(out, 'rgba');\n }, this);\n },\n _normalizedToVisual: {\n linear: function (normalized) {\n return zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n },\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n\n if (result == null) {\n result = zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n }\n\n return result;\n },\n fixed: doMapFixed\n }\n },\n colorHue: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, value);\n }),\n colorSaturation: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, null, value);\n }),\n colorLightness: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyHSL(color, null, null, value);\n }),\n colorAlpha: makePartialColorVisualHandler(function (color, value) {\n return zrColor.modifyAlpha(color, value);\n }),\n decal: {\n applyVisual: makeApplyVisual('decal'),\n _normalizedToVisual: {\n linear: null,\n category: doMapCategory,\n piecewise: null,\n fixed: null\n }\n },\n opacity: {\n applyVisual: makeApplyVisual('opacity'),\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n },\n liftZ: {\n applyVisual: makeApplyVisual('liftZ'),\n _normalizedToVisual: {\n linear: doMapFixed,\n category: doMapFixed,\n piecewise: doMapFixed,\n fixed: doMapFixed\n }\n },\n symbol: {\n applyVisual: function (value, getter, setter) {\n var symbolCfg = this.mapValueToVisual(value);\n setter('symbol', symbolCfg);\n },\n _normalizedToVisual: {\n linear: doMapToArray,\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n\n if (result == null) {\n result = doMapToArray.call(this, normalized);\n }\n\n return result;\n },\n fixed: doMapFixed\n }\n },\n symbolSize: {\n applyVisual: makeApplyVisual('symbolSize'),\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n }\n };\n return VisualMapping;\n}();\n\nfunction preprocessForPiecewise(thisOption) {\n var pieceList = thisOption.pieceList;\n thisOption.hasSpecialVisual = false;\n zrUtil.each(pieceList, function (piece, index) {\n piece.originIndex = index;\n\n if (piece.visual != null) {\n thisOption.hasSpecialVisual = true;\n }\n });\n}\n\nfunction preprocessForSpecifiedCategory(thisOption) {\n var categories = thisOption.categories;\n var categoryMap = thisOption.categoryMap = {};\n var visual = thisOption.visual;\n each(categories, function (cate, index) {\n categoryMap[cate] = index;\n });\n\n if (!zrUtil.isArray(visual)) {\n var visualArr_1 = [];\n\n if (zrUtil.isObject(visual)) {\n each(visual, function (v, cate) {\n var index = categoryMap[cate];\n visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\n });\n } else {\n visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\n }\n\n visual = setVisualToOption(thisOption, visualArr_1);\n }\n\n for (var i = categories.length - 1; i >= 0; i--) {\n if (visual[i] == null) {\n delete categoryMap[categories[i]];\n categories.pop();\n }\n }\n}\n\nfunction normalizeVisualRange(thisOption, isCategory) {\n var visual = thisOption.visual;\n var visualArr = [];\n\n if (zrUtil.isObject(visual)) {\n each(visual, function (v) {\n visualArr.push(v);\n });\n } else if (visual != null) {\n visualArr.push(visual);\n }\n\n var doNotNeedPair = {\n color: 1,\n symbol: 1\n };\n\n if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\n visualArr[1] = visualArr[0];\n }\n\n setVisualToOption(thisOption, visualArr);\n}\n\nfunction makePartialColorVisualHandler(applyValue) {\n return {\n applyVisual: function (value, getter, setter) {\n var colorChannel = this.mapValueToVisual(value);\n setter('color', applyValue(getter('color'), colorChannel));\n },\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n };\n}\n\nfunction doMapToArray(normalized) {\n var visual = this.option.visual;\n return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {};\n}\n\nfunction makeApplyVisual(visualType) {\n return function (value, getter, setter) {\n setter(visualType, this.mapValueToVisual(value));\n };\n}\n\nfunction doMapCategory(normalized) {\n var visual = this.option.visual;\n return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized];\n}\n\nfunction doMapFixed() {\n return this.option.visual[0];\n}\n\nfunction createNormalizedToNumericVisual(sourceExtent) {\n return {\n linear: function (normalized) {\n return linearMap(normalized, sourceExtent, this.option.visual, true);\n },\n category: doMapCategory,\n piecewise: function (normalized, value) {\n var result = getSpecifiedVisual.call(this, value);\n\n if (result == null) {\n result = linearMap(normalized, sourceExtent, this.option.visual, true);\n }\n\n return result;\n },\n fixed: doMapFixed\n };\n}\n\nfunction getSpecifiedVisual(value) {\n var thisOption = this.option;\n var pieceList = thisOption.pieceList;\n\n if (thisOption.hasSpecialVisual) {\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\n var piece = pieceList[pieceIndex];\n\n if (piece && piece.visual) {\n return piece.visual[this.type];\n }\n }\n}\n\nfunction setVisualToOption(thisOption, visualArr) {\n thisOption.visual = visualArr;\n\n if (thisOption.type === 'color') {\n thisOption.parsedVisual = zrUtil.map(visualArr, function (item) {\n return zrColor.parse(item);\n });\n }\n\n return visualArr;\n}\n\nvar normalizers = {\n linear: function (value) {\n return linearMap(value, this.option.dataExtent, [0, 1], true);\n },\n piecewise: function (value) {\n var pieceList = this.option.pieceList;\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\n\n if (pieceIndex != null) {\n return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\n }\n },\n category: function (value) {\n var index = this.option.categories ? this.option.categoryMap[value] : value;\n return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\n },\n fixed: zrUtil.noop\n};\n\nfunction littleThan(close, a, b) {\n return close ? a <= b : a < b;\n}\n\nexport default VisualMapping;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport VisualMapping from '../../visual/VisualMapping';\nimport { each, extend, isArray } from 'zrender/lib/core/util';\nimport { modifyHSL, modifyAlpha } from 'zrender/lib/tool/color';\nimport { makeInner } from '../../util/model';\nvar ITEM_STYLE_NORMAL = 'itemStyle';\nvar inner = makeInner();\nexport default {\n seriesType: 'treemap',\n reset: function (seriesModel) {\n var tree = seriesModel.getData().tree;\n var root = tree.root;\n\n if (root.isRemoved()) {\n return;\n }\n\n travelTree(root, {}, seriesModel.getViewRoot().getAncestors(), seriesModel);\n }\n};\n\nfunction travelTree(node, designatedVisual, viewRootAncestors, seriesModel) {\n var nodeModel = node.getModel();\n var nodeLayout = node.getLayout();\n var data = node.hostTree.data;\n\n if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\n return;\n }\n\n var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL);\n var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel);\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n var borderColor = nodeItemStyleModel.get('borderColor');\n var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\n var thisNodeColor;\n\n if (borderColorSaturation != null) {\n thisNodeColor = calculateColor(visuals);\n borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\n }\n\n existsStyle.stroke = borderColor;\n var viewChildren = node.viewChildren;\n\n if (!viewChildren || !viewChildren.length) {\n thisNodeColor = calculateColor(visuals);\n existsStyle.fill = thisNodeColor;\n } else {\n var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren);\n each(viewChildren, function (child, index) {\n if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) {\n var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel);\n travelTree(child, childVisual, viewRootAncestors, seriesModel);\n }\n });\n }\n}\n\nfunction buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel) {\n var visuals = extend({}, designatedVisual);\n var designatedVisualItemStyle = seriesModel.designatedVisualItemStyle;\n each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\n designatedVisualItemStyle[visualName] = designatedVisual[visualName];\n var val = nodeItemStyleModel.get(visualName);\n designatedVisualItemStyle[visualName] = null;\n val != null && (visuals[visualName] = val);\n });\n return visuals;\n}\n\nfunction calculateColor(visuals) {\n var color = getValueVisualDefine(visuals, 'color');\n\n if (color) {\n var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\n var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\n\n if (colorSaturation) {\n color = modifyHSL(color, null, null, colorSaturation);\n }\n\n if (colorAlpha) {\n color = modifyAlpha(color, colorAlpha);\n }\n\n return color;\n }\n}\n\nfunction calculateBorderColor(borderColorSaturation, thisNodeColor) {\n return thisNodeColor != null ? modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null;\n}\n\nfunction getValueVisualDefine(visuals, name) {\n var value = visuals[name];\n\n if (value != null && value !== 'none') {\n return value;\n }\n}\n\nfunction buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\n if (!viewChildren || !viewChildren.length) {\n return;\n }\n\n var rangeVisual = getRangeVisual(nodeModel, 'color') || visuals.color != null && visuals.color !== 'none' && (getRangeVisual(nodeModel, 'colorAlpha') || getRangeVisual(nodeModel, 'colorSaturation'));\n\n if (!rangeVisual) {\n return;\n }\n\n var visualMin = nodeModel.get('visualMin');\n var visualMax = nodeModel.get('visualMax');\n var dataExtent = nodeLayout.dataExtent.slice();\n visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\n visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\n var colorMappingBy = nodeModel.get('colorMappingBy');\n var opt = {\n type: rangeVisual.name,\n dataExtent: dataExtent,\n visual: rangeVisual.range\n };\n\n if (opt.type === 'color' && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\n opt.mappingMethod = 'category';\n opt.loop = true;\n } else {\n opt.mappingMethod = 'linear';\n }\n\n var mapping = new VisualMapping(opt);\n inner(mapping).drColorMappingBy = colorMappingBy;\n return mapping;\n}\n\nfunction getRangeVisual(nodeModel, name) {\n var range = nodeModel.get(name);\n return isArray(range) && range.length ? {\n name: name,\n range: range\n } : null;\n}\n\nfunction mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\n var childVisuals = extend({}, visuals);\n\n if (mapping) {\n var mappingType = mapping.type;\n var colorMappingBy = mappingType === 'color' && inner(mapping).drColorMappingBy;\n var value = colorMappingBy === 'index' ? index : colorMappingBy === 'id' ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get('visualDimension'));\n childVisuals[mappingType] = mapping.mapValueToVisual(value);\n }\n\n return childVisuals;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent, MAX_SAFE_INTEGER } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as helper from '../helper/treeHelper';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar retrieveValue = zrUtil.retrieve;\nvar each = zrUtil.each;\nvar PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\nvar PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\nvar PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\nvar PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\n;\nexport default {\n seriesType: 'treemap',\n reset: function (seriesModel, ecModel, api, payload) {\n var ecWidth = api.getWidth();\n var ecHeight = api.getHeight();\n var seriesOption = seriesModel.option;\n var layoutInfo = layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n var size = seriesOption.size || [];\n var containerWidth = parsePercent(retrieveValue(layoutInfo.width, size[0]), ecWidth);\n var containerHeight = parsePercent(retrieveValue(layoutInfo.height, size[1]), ecHeight);\n var payloadType = payload && payload.type;\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\n var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n var rootRect = payloadType === 'treemapRender' || payloadType === 'treemapMove' ? payload.rootRect : null;\n var viewRoot = seriesModel.getViewRoot();\n var viewAbovePath = helper.getPathToRoot(viewRoot);\n\n if (payloadType !== 'treemapMove') {\n var rootSize = payloadType === 'treemapZoomToNode' ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight];\n var sort_1 = seriesOption.sort;\n\n if (sort_1 && sort_1 !== 'asc' && sort_1 !== 'desc') {\n sort_1 = 'desc';\n }\n\n var options = {\n squareRatio: seriesOption.squareRatio,\n sort: sort_1,\n leafDepth: seriesOption.leafDepth\n };\n viewRoot.hostTree.clearLayouts();\n var viewRootLayout_1 = {\n x: 0,\n y: 0,\n width: rootSize[0],\n height: rootSize[1],\n area: rootSize[0] * rootSize[1]\n };\n viewRoot.setLayout(viewRootLayout_1);\n squarify(viewRoot, options, false, 0);\n viewRootLayout_1 = viewRoot.getLayout();\n each(viewAbovePath, function (node, index) {\n var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\n node.setLayout(zrUtil.extend({\n dataExtent: [childValue, childValue],\n borderWidth: 0,\n upperHeight: 0\n }, viewRootLayout_1));\n });\n }\n\n var treeRoot = seriesModel.getData().tree.root;\n treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\n seriesModel.setLayoutInfo(layoutInfo);\n prunning(treeRoot, new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\n }\n};\n\nfunction squarify(node, options, hideChildren, depth) {\n var width;\n var height;\n\n if (node.isRemoved()) {\n return;\n }\n\n var thisLayout = node.getLayout();\n width = thisLayout.width;\n height = thisLayout.height;\n var nodeModel = node.getModel();\n var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\n var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\n var upperLabelHeight = getUpperLabelHeight(nodeModel);\n var upperHeight = Math.max(borderWidth, upperLabelHeight);\n var layoutOffset = borderWidth - halfGapWidth;\n var layoutOffsetUpper = upperHeight - halfGapWidth;\n node.setLayout({\n borderWidth: borderWidth,\n upperHeight: upperHeight,\n upperLabelHeight: upperLabelHeight\n }, true);\n width = mathMax(width - 2 * layoutOffset, 0);\n height = mathMax(height - layoutOffset - layoutOffsetUpper, 0);\n var totalArea = width * height;\n var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\n\n if (!viewChildren.length) {\n return;\n }\n\n var rect = {\n x: layoutOffset,\n y: layoutOffsetUpper,\n width: width,\n height: height\n };\n var rowFixedLength = mathMin(width, height);\n var best = Infinity;\n var row = [];\n row.area = 0;\n\n for (var i = 0, len = viewChildren.length; i < len;) {\n var child = viewChildren[i];\n row.push(child);\n row.area += child.getLayout().area;\n var score = worst(row, rowFixedLength, options.squareRatio);\n\n if (score <= best) {\n i++;\n best = score;\n } else {\n row.area -= row.pop().getLayout().area;\n position(row, rowFixedLength, rect, halfGapWidth, false);\n rowFixedLength = mathMin(rect.width, rect.height);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n\n if (row.length) {\n position(row, rowFixedLength, rect, halfGapWidth, true);\n }\n\n if (!hideChildren) {\n var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\n\n if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\n hideChildren = true;\n }\n }\n\n for (var i = 0, len = viewChildren.length; i < len; i++) {\n squarify(viewChildren[i], options, hideChildren, depth + 1);\n }\n}\n\nfunction initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\n var viewChildren = node.children || [];\n var orderBy = options.sort;\n orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\n var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth;\n\n if (hideChildren && !overLeafDepth) {\n return node.viewChildren = [];\n }\n\n viewChildren = zrUtil.filter(viewChildren, function (child) {\n return !child.isRemoved();\n });\n sort(viewChildren, orderBy);\n var info = statistic(nodeModel, viewChildren, orderBy);\n\n if (info.sum === 0) {\n return node.viewChildren = [];\n }\n\n info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\n\n if (info.sum === 0) {\n return node.viewChildren = [];\n }\n\n for (var i = 0, len = viewChildren.length; i < len; i++) {\n var area = viewChildren[i].getValue() / info.sum * totalArea;\n viewChildren[i].setLayout({\n area: area\n });\n }\n\n if (overLeafDepth) {\n viewChildren.length && node.setLayout({\n isLeafRoot: true\n }, true);\n viewChildren.length = 0;\n }\n\n node.viewChildren = viewChildren;\n node.setLayout({\n dataExtent: info.dataExtent\n }, true);\n return viewChildren;\n}\n\nfunction filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\n if (!orderBy) {\n return sum;\n }\n\n var visibleMin = nodeModel.get('visibleMin');\n var len = orderedChildren.length;\n var deletePoint = len;\n\n for (var i = len - 1; i >= 0; i--) {\n var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\n\n if (value / sum * totalArea < visibleMin) {\n deletePoint = i;\n sum -= value;\n }\n }\n\n orderBy === 'asc' ? orderedChildren.splice(0, len - deletePoint) : orderedChildren.splice(deletePoint, len - deletePoint);\n return sum;\n}\n\nfunction sort(viewChildren, orderBy) {\n if (orderBy) {\n viewChildren.sort(function (a, b) {\n var diff = orderBy === 'asc' ? a.getValue() - b.getValue() : b.getValue() - a.getValue();\n return diff === 0 ? orderBy === 'asc' ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff;\n });\n }\n\n return viewChildren;\n}\n\nfunction statistic(nodeModel, children, orderBy) {\n var sum = 0;\n\n for (var i = 0, len = children.length; i < len; i++) {\n sum += children[i].getValue();\n }\n\n var dimension = nodeModel.get('visualDimension');\n var dataExtent;\n\n if (!children || !children.length) {\n dataExtent = [NaN, NaN];\n } else if (dimension === 'value' && orderBy) {\n dataExtent = [children[children.length - 1].getValue(), children[0].getValue()];\n orderBy === 'asc' && dataExtent.reverse();\n } else {\n dataExtent = [Infinity, -Infinity];\n each(children, function (child) {\n var value = child.getValue(dimension);\n value < dataExtent[0] && (dataExtent[0] = value);\n value > dataExtent[1] && (dataExtent[1] = value);\n });\n }\n\n return {\n sum: sum,\n dataExtent: dataExtent\n };\n}\n\nfunction worst(row, rowFixedLength, ratio) {\n var areaMax = 0;\n var areaMin = Infinity;\n\n for (var i = 0, area = void 0, len = row.length; i < len; i++) {\n area = row[i].getLayout().area;\n\n if (area) {\n area < areaMin && (areaMin = area);\n area > areaMax && (areaMax = area);\n }\n }\n\n var squareArea = row.area * row.area;\n var f = rowFixedLength * rowFixedLength * ratio;\n return squareArea ? mathMax(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity;\n}\n\nfunction position(row, rowFixedLength, rect, halfGapWidth, flush) {\n var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\n var idx1WhenH = 1 - idx0WhenH;\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n var last = rect[xy[idx0WhenH]];\n var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0;\n\n if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\n rowOtherLength = rect[wh[idx1WhenH]];\n }\n\n for (var i = 0, rowLen = row.length; i < rowLen; i++) {\n var node = row[i];\n var nodeLayout = {};\n var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0;\n var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax(rowOtherLength - 2 * halfGapWidth, 0);\n var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\n var modWH = i === rowLen - 1 || remain < step ? remain : step;\n var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax(modWH - 2 * halfGapWidth, 0);\n nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin(halfGapWidth, wh1 / 2);\n nodeLayout[xy[idx0WhenH]] = last + mathMin(halfGapWidth, wh0 / 2);\n last += modWH;\n node.setLayout(nodeLayout, true);\n }\n\n rect[xy[idx1WhenH]] += rowOtherLength;\n rect[wh[idx1WhenH]] -= rowOtherLength;\n}\n\nfunction estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\n var currNode = (targetInfo || {}).node;\n var defaultSize = [containerWidth, containerHeight];\n\n if (!currNode || currNode === viewRoot) {\n return defaultSize;\n }\n\n var parent;\n var viewArea = containerWidth * containerHeight;\n var area = viewArea * seriesModel.option.zoomToNodeRatio;\n\n while (parent = currNode.parentNode) {\n var sum = 0;\n var siblings = parent.children;\n\n for (var i = 0, len = siblings.length; i < len; i++) {\n sum += siblings[i].getValue();\n }\n\n var currNodeValue = currNode.getValue();\n\n if (currNodeValue === 0) {\n return defaultSize;\n }\n\n area *= sum / currNodeValue;\n var parentModel = parent.getModel();\n var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\n var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel));\n area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\n area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\n currNode = parent;\n }\n\n area < viewArea && (area = viewArea);\n var scale = Math.pow(area / viewArea, 0.5);\n return [containerWidth * scale, containerHeight * scale];\n}\n\nfunction calculateRootPosition(layoutInfo, rootRect, targetInfo) {\n if (rootRect) {\n return {\n x: rootRect.x,\n y: rootRect.y\n };\n }\n\n var defaultPosition = {\n x: 0,\n y: 0\n };\n\n if (!targetInfo) {\n return defaultPosition;\n }\n\n var targetNode = targetInfo.node;\n var layout = targetNode.getLayout();\n\n if (!layout) {\n return defaultPosition;\n }\n\n var targetCenter = [layout.width / 2, layout.height / 2];\n var node = targetNode;\n\n while (node) {\n var nodeLayout = node.getLayout();\n targetCenter[0] += nodeLayout.x;\n targetCenter[1] += nodeLayout.y;\n node = node.parentNode;\n }\n\n return {\n x: layoutInfo.width / 2 - targetCenter[0],\n y: layoutInfo.height / 2 - targetCenter[1]\n };\n}\n\nfunction prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\n var nodeLayout = node.getLayout();\n var nodeInViewAbovePath = viewAbovePath[depth];\n var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\n\n if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) {\n return;\n }\n\n node.setLayout({\n isInView: true,\n invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\n isAboveViewRoot: isAboveViewRoot\n }, true);\n var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\n each(node.viewChildren || [], function (child) {\n prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\n });\n}\n\nfunction getUpperLabelHeight(model) {\n return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { installTreemapAction } from './treemapAction';\nimport TreemapSeriesModel from './TreemapSeries';\nimport TreemapView from './TreemapView';\nimport treemapVisual from './treemapVisual';\nimport treemapLayout from './treemapLayout';\nexport function install(registers) {\n registers.registerSeriesModel(TreemapSeriesModel);\n registers.registerChartView(TreemapView);\n registers.registerVisual(treemapVisual);\n registers.registerLayout(treemapLayout);\n installTreemapAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function categoryFilter(ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (!legendModels || !legendModels.length) {\n return;\n }\n\n ecModel.eachSeriesByType('graph', function (graphSeries) {\n var categoriesData = graphSeries.getCategoriesData();\n var graph = graphSeries.getGraph();\n var data = graph.data;\n var categoryNames = categoriesData.mapArray(categoriesData.getName);\n data.filterSelf(function (idx) {\n var model = data.getItemModel(idx);\n var category = model.getShallow('category');\n\n if (category != null) {\n if (typeof category === 'number') {\n category = categoryNames[category];\n }\n\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(category)) {\n return false;\n }\n }\n }\n\n return true;\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nexport default function categoryVisual(ecModel) {\n var paletteScope = {};\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var categoriesData = seriesModel.getCategoriesData();\n var data = seriesModel.getData();\n var categoryNameIdxMap = {};\n categoriesData.each(function (idx) {\n var name = categoriesData.getName(idx);\n categoryNameIdxMap['ec-' + name] = idx;\n var itemModel = categoriesData.getItemModel(idx);\n var style = itemModel.getModel('itemStyle').getItemStyle();\n\n if (!style.fill) {\n style.fill = seriesModel.getColorFromPalette(name, paletteScope);\n }\n\n categoriesData.setItemVisual(idx, 'style', style);\n var symbolVisualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n for (var i = 0; i < symbolVisualList.length; i++) {\n var symbolVisual = itemModel.getShallow(symbolVisualList[i], true);\n\n if (symbolVisual != null) {\n categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual);\n }\n }\n });\n\n if (categoriesData.count()) {\n data.each(function (idx) {\n var model = data.getItemModel(idx);\n var categoryIdx = model.getShallow('category');\n\n if (categoryIdx != null) {\n if (typeof categoryIdx === 'string') {\n categoryIdx = categoryNameIdxMap['ec-' + categoryIdx];\n }\n\n var categoryStyle = categoriesData.getItemVisual(categoryIdx, 'style');\n var style = data.ensureUniqueItemVisual(idx, 'style');\n extend(style, categoryStyle);\n var visualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n for (var i = 0; i < visualList.length; i++) {\n data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i]));\n }\n }\n });\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\n\nfunction normalize(a) {\n if (!(a instanceof Array)) {\n a = [a, a];\n }\n\n return a;\n}\n\nexport default function graphEdgeVisual(ecModel) {\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var graph = seriesModel.getGraph();\n var edgeData = seriesModel.getEdgeData();\n var symbolType = normalize(seriesModel.get('edgeSymbol'));\n var symbolSize = normalize(seriesModel.get('edgeSymbolSize'));\n edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\n edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\n edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n edgeData.setVisual('style', seriesModel.getModel('lineStyle').getLineStyle());\n edgeData.each(function (idx) {\n var itemModel = edgeData.getItemModel(idx);\n var edge = graph.getEdgeByIndex(idx);\n var symbolType = normalize(itemModel.getShallow('symbol', true));\n var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n var style = itemModel.getModel('lineStyle').getLineStyle();\n var existsStyle = edgeData.ensureUniqueItemVisual(idx, 'style');\n extend(existsStyle, style);\n\n switch (existsStyle.stroke) {\n case 'source':\n {\n var nodeStyle = edge.node1.getVisual('style');\n existsStyle.stroke = nodeStyle && nodeStyle.fill;\n break;\n }\n\n case 'target':\n {\n var nodeStyle = edge.node2.getVisual('style');\n existsStyle.stroke = nodeStyle && nodeStyle.fill;\n break;\n }\n }\n\n symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\n symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\n symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\n symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar KEY_DELIMITER = '-->';\n\nvar getAutoCurvenessParams = function (seriesModel) {\n return seriesModel.get('autoCurveness') || null;\n};\n\nvar createCurveness = function (seriesModel, appendLength) {\n var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);\n var length = 20;\n var curvenessList = [];\n\n if (typeof autoCurvenessParmas === 'number') {\n length = autoCurvenessParmas;\n } else if (zrUtil.isArray(autoCurvenessParmas)) {\n seriesModel.__curvenessList = autoCurvenessParmas;\n return;\n }\n\n if (appendLength > length) {\n length = appendLength;\n }\n\n var len = length % 2 ? length + 2 : length + 3;\n curvenessList = [];\n\n for (var i = 0; i < len; i++) {\n curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));\n }\n\n seriesModel.__curvenessList = curvenessList;\n};\n\nvar getKeyOfEdges = function (n1, n2, seriesModel) {\n var source = [n1.id, n1.dataIndex].join('.');\n var target = [n2.id, n2.dataIndex].join('.');\n return [seriesModel.uid, source, target].join(KEY_DELIMITER);\n};\n\nvar getOppositeKey = function (key) {\n var keys = key.split(KEY_DELIMITER);\n return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);\n};\n\nvar getEdgeFromMap = function (edge, seriesModel) {\n var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n return seriesModel.__edgeMap[key];\n};\n\nvar getTotalLengthBetweenNodes = function (edge, seriesModel) {\n var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);\n var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);\n return len + lenV;\n};\n\nvar getEdgeMapLengthWithKey = function (key, seriesModel) {\n var edgeMap = seriesModel.__edgeMap;\n return edgeMap[key] ? edgeMap[key].length : 0;\n};\n\nexport function initCurvenessList(seriesModel) {\n if (!getAutoCurvenessParams(seriesModel)) {\n return;\n }\n\n seriesModel.__curvenessList = [];\n seriesModel.__edgeMap = {};\n createCurveness(seriesModel);\n}\nexport function createEdgeMapForCurveness(n1, n2, seriesModel, index) {\n if (!getAutoCurvenessParams(seriesModel)) {\n return;\n }\n\n var key = getKeyOfEdges(n1, n2, seriesModel);\n var edgeMap = seriesModel.__edgeMap;\n var oppositeEdges = edgeMap[getOppositeKey(key)];\n\n if (edgeMap[key] && !oppositeEdges) {\n edgeMap[key].isForward = true;\n } else if (oppositeEdges && edgeMap[key]) {\n oppositeEdges.isForward = true;\n edgeMap[key].isForward = false;\n }\n\n edgeMap[key] = edgeMap[key] || [];\n edgeMap[key].push(index);\n}\nexport function getCurvenessForEdge(edge, seriesModel, index, needReverse) {\n var autoCurvenessParams = getAutoCurvenessParams(seriesModel);\n var isArrayParam = zrUtil.isArray(autoCurvenessParams);\n\n if (!autoCurvenessParams) {\n return null;\n }\n\n var edgeArray = getEdgeFromMap(edge, seriesModel);\n\n if (!edgeArray) {\n return null;\n }\n\n var edgeIndex = -1;\n\n for (var i = 0; i < edgeArray.length; i++) {\n if (edgeArray[i] === index) {\n edgeIndex = i;\n break;\n }\n }\n\n var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);\n createCurveness(seriesModel, totalLen);\n edge.lineStyle = edge.lineStyle || {};\n var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n var curvenessList = seriesModel.__curvenessList;\n var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;\n\n if (!edgeArray.isForward) {\n var oppositeKey = getOppositeKey(curKey);\n var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);\n var resValue = curvenessList[edgeIndex + len + parityCorrection];\n\n if (needReverse) {\n if (isArrayParam) {\n if (autoCurvenessParams && autoCurvenessParams[0] === 0) {\n return (len + parityCorrection) % 2 ? resValue : -resValue;\n } else {\n return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;\n }\n } else {\n return (len + parityCorrection) % 2 ? resValue : -resValue;\n }\n } else {\n return curvenessList[edgeIndex + len + parityCorrection];\n }\n } else {\n return curvenessList[parityCorrection + edgeIndex];\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nexport function simpleLayout(seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n return;\n }\n\n var graph = seriesModel.getGraph();\n graph.eachNode(function (node) {\n var model = node.getModel();\n node.setLayout([+model.get('x'), +model.get('y')]);\n });\n simpleLayoutEdge(graph, seriesModel);\n}\nexport function simpleLayoutEdge(graph, seriesModel) {\n graph.eachEdge(function (edge, index) {\n var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, seriesModel, index, true), 0);\n var p1 = vec2.clone(edge.node1.getLayout());\n var p2 = vec2.clone(edge.node2.getLayout());\n var points = [p1, p2];\n\n if (+curveness) {\n points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]);\n }\n\n edge.setLayout(points);\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport { simpleLayout, simpleLayoutEdge } from './simpleLayoutHelper';\nexport default function graphSimpleLayout(ecModel, api) {\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var layout = seriesModel.get('layout');\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n var data_1 = seriesModel.getData();\n var dimensions_1 = [];\n each(coordSys.dimensions, function (coordDim) {\n dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim));\n });\n\n for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) {\n var value = [];\n var hasValue = false;\n\n for (var i = 0; i < dimensions_1.length; i++) {\n var val = data_1.get(dimensions_1[i], dataIndex);\n\n if (!isNaN(val)) {\n hasValue = true;\n }\n\n value.push(val);\n }\n\n if (hasValue) {\n data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value));\n } else {\n data_1.setItemLayout(dataIndex, [NaN, NaN]);\n }\n }\n\n simpleLayoutEdge(data_1.graph, seriesModel);\n } else if (!layout || layout === 'none') {\n simpleLayout(seriesModel);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getNodeGlobalScale(seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys.type !== 'view') {\n return 1;\n }\n\n var nodeScaleRatio = seriesModel.option.nodeScaleRatio;\n var groupZoom = coordSys.scaleX;\n var roamZoom = coordSys.getZoom();\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n return nodeScale / groupZoom;\n}\nexport function getSymbolSize(node) {\n var symbolSize = node.getVisual('symbolSize');\n\n if (symbolSize instanceof Array) {\n symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\n }\n\n return +symbolSize;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nimport { getSymbolSize, getNodeGlobalScale } from './graphHelper';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nvar PI = Math.PI;\nvar _symbolRadiansHalf = [];\nexport function circularLayout(seriesModel, basedOn) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n return;\n }\n\n var rect = coordSys.getBoundingRect();\n var nodeData = seriesModel.getData();\n var graph = nodeData.graph;\n var cx = rect.width / 2 + rect.x;\n var cy = rect.height / 2 + rect.y;\n var r = Math.min(rect.width, rect.height) / 2;\n var count = nodeData.count();\n nodeData.setLayout({\n cx: cx,\n cy: cy\n });\n\n if (!count) {\n return;\n }\n\n _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\n\n graph.eachEdge(function (edge, index) {\n var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), getCurvenessForEdge(edge, seriesModel, index), 0);\n var p1 = vec2.clone(edge.node1.getLayout());\n var p2 = vec2.clone(edge.node2.getLayout());\n var cp1;\n var x12 = (p1[0] + p2[0]) / 2;\n var y12 = (p1[1] + p2[1]) / 2;\n\n if (+curveness) {\n curveness *= 3;\n cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)];\n }\n\n edge.setLayout([p1, p2, cp1]);\n });\n}\nvar _layoutNodesBasedOn = {\n value: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n var angle = 0;\n var sum = nodeData.getSum('value');\n var unitAngle = Math.PI * 2 / (sum || count);\n graph.eachNode(function (node) {\n var value = node.getValue('value');\n var radianHalf = unitAngle * (sum ? value : 1) / 2;\n angle += radianHalf;\n node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n angle += radianHalf;\n });\n },\n symbolSize: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n var sumRadian = 0;\n _symbolRadiansHalf.length = count;\n var nodeScale = getNodeGlobalScale(seriesModel);\n graph.eachNode(function (node) {\n var symbolSize = getSymbolSize(node);\n isNaN(symbolSize) && (symbolSize = 2);\n symbolSize < 0 && (symbolSize = 0);\n symbolSize *= nodeScale;\n var symbolRadianHalf = Math.asin(symbolSize / 2 / r);\n isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2);\n _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\n sumRadian += symbolRadianHalf * 2;\n });\n var halfRemainRadian = (2 * PI - sumRadian) / count / 2;\n var angle = 0;\n graph.eachNode(function (node) {\n var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\n angle += radianHalf;\n node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n angle += radianHalf;\n });\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { circularLayout } from './circularLayoutHelper';\nexport default function graphCircularLayout(ecModel) {\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n if (seriesModel.get('layout') === 'circular') {\n circularLayout(seriesModel, 'symbolSize');\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nvar scaleAndAdd = vec2.scaleAndAdd;\nexport function forceLayout(inNodes, inEdges, opts) {\n var nodes = inNodes;\n var edges = inEdges;\n var rect = opts.rect;\n var width = rect.width;\n var height = rect.height;\n var center = [rect.x + width / 2, rect.y + height / 2];\n var gravity = opts.gravity == null ? 0.1 : opts.gravity;\n\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n\n if (!n.p) {\n n.p = vec2.create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\n }\n\n n.pp = vec2.clone(n.p);\n n.edges = null;\n }\n\n var initialFriction = opts.friction == null ? 0.6 : opts.friction;\n var friction = initialFriction;\n var beforeStepCallback;\n var afterStepCallback;\n return {\n warmUp: function () {\n friction = initialFriction * 0.8;\n },\n setFixed: function (idx) {\n nodes[idx].fixed = true;\n },\n setUnfixed: function (idx) {\n nodes[idx].fixed = false;\n },\n beforeStep: function (cb) {\n beforeStepCallback = cb;\n },\n afterStep: function (cb) {\n afterStepCallback = cb;\n },\n step: function (cb) {\n beforeStepCallback && beforeStepCallback(nodes, edges);\n var v12 = [];\n var nLen = nodes.length;\n\n for (var i = 0; i < edges.length; i++) {\n var e = edges[i];\n\n if (e.ignoreForceLayout) {\n continue;\n }\n\n var n1 = e.n1;\n var n2 = e.n2;\n vec2.sub(v12, n2.p, n1.p);\n var d = vec2.len(v12) - e.d;\n var w = n2.w / (n1.w + n2.w);\n\n if (isNaN(w)) {\n w = 0;\n }\n\n vec2.normalize(v12, v12);\n !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction);\n !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction);\n }\n\n for (var i = 0; i < nLen; i++) {\n var n = nodes[i];\n\n if (!n.fixed) {\n vec2.sub(v12, center, n.p);\n scaleAndAdd(n.p, n.p, v12, gravity * friction);\n }\n }\n\n for (var i = 0; i < nLen; i++) {\n var n1 = nodes[i];\n\n for (var j = i + 1; j < nLen; j++) {\n var n2 = nodes[j];\n vec2.sub(v12, n2.p, n1.p);\n var d = vec2.len(v12);\n\n if (d === 0) {\n vec2.set(v12, Math.random() - 0.5, Math.random() - 0.5);\n d = 1;\n }\n\n var repFact = (n1.rep + n2.rep) / d / d;\n !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact);\n !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact);\n }\n }\n\n var v = [];\n\n for (var i = 0; i < nLen; i++) {\n var n = nodes[i];\n\n if (!n.fixed) {\n vec2.sub(v, n.p, n.pp);\n scaleAndAdd(n.p, n.p, v, friction);\n vec2.copy(n.pp, n.p);\n }\n }\n\n friction = friction * 0.992;\n var finished = friction < 0.01;\n afterStepCallback && afterStepCallback(nodes, edges, finished);\n cb && cb(finished);\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { forceLayout } from './forceHelper';\nimport { simpleLayout } from './simpleLayoutHelper';\nimport { circularLayout } from './circularLayoutHelper';\nimport { linearMap } from '../../util/number';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nexport default function graphForceLayout(ecModel) {\n ecModel.eachSeriesByType('graph', function (graphSeries) {\n var coordSys = graphSeries.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n return;\n }\n\n if (graphSeries.get('layout') === 'force') {\n var preservedPoints_1 = graphSeries.preservedPoints || {};\n var graph_1 = graphSeries.getGraph();\n var nodeData_1 = graph_1.data;\n var edgeData = graph_1.edgeData;\n var forceModel = graphSeries.getModel('force');\n var initLayout = forceModel.get('initLayout');\n\n if (graphSeries.preservedPoints) {\n nodeData_1.each(function (idx) {\n var id = nodeData_1.getId(idx);\n nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]);\n });\n } else if (!initLayout || initLayout === 'none') {\n simpleLayout(graphSeries);\n } else if (initLayout === 'circular') {\n circularLayout(graphSeries, 'value');\n }\n\n var nodeDataExtent_1 = nodeData_1.getDataExtent('value');\n var edgeDataExtent_1 = edgeData.getDataExtent('value');\n var repulsion = forceModel.get('repulsion');\n var edgeLength = forceModel.get('edgeLength');\n var repulsionArr_1 = zrUtil.isArray(repulsion) ? repulsion : [repulsion, repulsion];\n var edgeLengthArr_1 = zrUtil.isArray(edgeLength) ? edgeLength : [edgeLength, edgeLength];\n edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]];\n var nodes_1 = nodeData_1.mapArray('value', function (value, idx) {\n var point = nodeData_1.getItemLayout(idx);\n var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1);\n\n if (isNaN(rep)) {\n rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2;\n }\n\n return {\n w: rep,\n rep: rep,\n fixed: nodeData_1.getItemModel(idx).get('fixed'),\n p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point\n };\n });\n var edges = edgeData.mapArray('value', function (value, idx) {\n var edge = graph_1.getEdgeByIndex(idx);\n var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1);\n\n if (isNaN(d)) {\n d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2;\n }\n\n var edgeModel = edge.getModel();\n var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, graphSeries, idx, true), 0);\n return {\n n1: nodes_1[edge.node1.dataIndex],\n n2: nodes_1[edge.node2.dataIndex],\n d: d,\n curveness: curveness,\n ignoreForceLayout: edgeModel.get('ignoreForceLayout')\n };\n });\n var rect = coordSys.getBoundingRect();\n var forceInstance = forceLayout(nodes_1, edges, {\n rect: rect,\n gravity: forceModel.get('gravity'),\n friction: forceModel.get('friction')\n });\n forceInstance.beforeStep(function (nodes, edges) {\n for (var i = 0, l = nodes.length; i < l; i++) {\n if (nodes[i].fixed) {\n vec2.copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout());\n }\n }\n });\n forceInstance.afterStep(function (nodes, edges, stopped) {\n for (var i = 0, l = nodes.length; i < l; i++) {\n if (!nodes[i].fixed) {\n graph_1.getNodeByIndex(i).setLayout(nodes[i].p);\n }\n\n preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p;\n }\n\n for (var i = 0, l = edges.length; i < l; i++) {\n var e = edges[i];\n var edge = graph_1.getEdgeByIndex(i);\n var p1 = e.n1.p;\n var p2 = e.n2.p;\n var points = edge.getLayout();\n points = points ? points.slice() : [];\n points[0] = points[0] || [];\n points[1] = points[1] || [];\n vec2.copy(points[0], p1);\n vec2.copy(points[1], p2);\n\n if (+e.curveness) {\n points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness];\n }\n\n edge.setLayout(points);\n }\n });\n graphSeries.forceLayout = forceInstance;\n graphSeries.preservedPoints = preservedPoints_1;\n forceInstance.step();\n } else {\n graphSeries.forceLayout = null;\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport View from '../../coord/View';\nimport { getLayoutRect } from '../../util/layout';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport { extend } from 'zrender/lib/core/util';\n\nfunction getViewRect(seriesModel, api, aspect) {\n var option = extend(seriesModel.getBoxLayoutParams(), {\n aspect: aspect\n });\n return getLayoutRect(option, {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nexport default function createViewCoordSys(ecModel, api) {\n var viewList = [];\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var coordSysType = seriesModel.get('coordinateSystem');\n\n if (!coordSysType || coordSysType === 'view') {\n var data_1 = seriesModel.getData();\n var positions = data_1.mapArray(function (idx) {\n var itemModel = data_1.getItemModel(idx);\n return [+itemModel.get('x'), +itemModel.get('y')];\n });\n var min = [];\n var max = [];\n bbox.fromPoints(positions, min, max);\n\n if (max[0] - min[0] === 0) {\n max[0] += 1;\n min[0] -= 1;\n }\n\n if (max[1] - min[1] === 0) {\n max[1] += 1;\n min[1] -= 1;\n }\n\n var aspect = (max[0] - min[0]) / (max[1] - min[1]);\n var viewRect = getViewRect(seriesModel, api, aspect);\n\n if (isNaN(aspect)) {\n min = [viewRect.x, viewRect.y];\n max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\n }\n\n var bbWidth = max[0] - min[0];\n var bbHeight = max[1] - min[1];\n var viewWidth = viewRect.width;\n var viewHeight = viewRect.height;\n var viewCoordSys = seriesModel.coordinateSystem = new View();\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\n viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight);\n viewCoordSys.setCenter(seriesModel.get('center'));\n viewCoordSys.setZoom(seriesModel.get('zoom'));\n viewList.push(viewCoordSys);\n }\n });\n return viewList;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport * as vec2 from 'zrender/lib/core/vector';\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\n\nvar StraightLineShape = function () {\n function StraightLineShape() {\n this.x1 = 0;\n this.y1 = 0;\n this.x2 = 0;\n this.y2 = 0;\n this.percent = 1;\n }\n\n return StraightLineShape;\n}();\n\nvar CurveShape = function (_super) {\n __extends(CurveShape, _super);\n\n function CurveShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return CurveShape;\n}(StraightLineShape);\n\nfunction isStraightLine(shape) {\n return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\n\nvar ECLinePath = function (_super) {\n __extends(ECLinePath, _super);\n\n function ECLinePath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'ec-line';\n return _this;\n }\n\n ECLinePath.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n\n ECLinePath.prototype.getDefaultShape = function () {\n return new StraightLineShape();\n };\n\n ECLinePath.prototype.buildPath = function (ctx, shape) {\n if (isStraightLine(shape)) {\n straightLineProto.buildPath.call(this, ctx, shape);\n } else {\n bezierCurveProto.buildPath.call(this, ctx, shape);\n }\n };\n\n ECLinePath.prototype.pointAt = function (t) {\n if (isStraightLine(this.shape)) {\n return straightLineProto.pointAt.call(this, t);\n } else {\n return bezierCurveProto.pointAt.call(this, t);\n }\n };\n\n ECLinePath.prototype.tangentAt = function (t) {\n var shape = this.shape;\n var p = isStraightLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n return vec2.normalize(p, p);\n };\n\n return ECLinePath;\n}(graphic.Path);\n\nexport default ECLinePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as symbolUtil from '../../util/symbol';\nimport ECLinePath from './LinePath';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle';\nimport { round } from '../../util/number';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n return '_' + symbolCategory + 'Type';\n}\n\nfunction createSymbol(name, lineData, idx) {\n var symbolType = lineData.getItemVisual(idx, name);\n\n if (!symbolType || symbolType === 'none') {\n return;\n }\n\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n var symbolSizeArr = zrUtil.isArray(symbolSize) ? symbolSize : [symbolSize, symbolSize];\n var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\n symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n symbolPath.name = name;\n return symbolPath;\n}\n\nfunction createLine(points) {\n var line = new ECLinePath({\n name: 'line',\n subPixelOptimize: true\n });\n setLinePoints(line.shape, points);\n return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n targetShape.x1 = points[0][0];\n targetShape.y1 = points[0][1];\n targetShape.x2 = points[1][0];\n targetShape.y2 = points[1][1];\n targetShape.percent = 1;\n var cp1 = points[2];\n\n if (cp1) {\n targetShape.cpx1 = cp1[0];\n targetShape.cpy1 = cp1[1];\n } else {\n targetShape.cpx1 = NaN;\n targetShape.cpy1 = NaN;\n }\n}\n\nvar Line = function (_super) {\n __extends(Line, _super);\n\n function Line(lineData, idx, seriesScope) {\n var _this = _super.call(this) || this;\n\n _this._createLine(lineData, idx, seriesScope);\n\n return _this;\n }\n\n Line.prototype._createLine = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var linePoints = lineData.getItemLayout(idx);\n var line = createLine(linePoints);\n line.shape.percent = 0;\n graphic.initProps(line, {\n shape: {\n percent: 1\n }\n }, seriesModel, idx);\n this.add(line);\n zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbol = createSymbol(symbolCategory, lineData, idx);\n this.add(symbol);\n this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n }, this);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n };\n\n Line.prototype.updateData = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childOfName('line');\n var linePoints = lineData.getItemLayout(idx);\n var target = {\n shape: {}\n };\n setLinePoints(target.shape, linePoints);\n graphic.updateProps(line, target, seriesModel, idx);\n zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbolType = lineData.getItemVisual(idx, symbolCategory);\n var key = makeSymbolTypeKey(symbolCategory);\n\n if (this[key] !== symbolType) {\n this.remove(this.childOfName(symbolCategory));\n var symbol = createSymbol(symbolCategory, lineData, idx);\n this.add(symbol);\n }\n\n this[key] = symbolType;\n }, this);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n };\n\n ;\n\n Line.prototype.getLinePath = function () {\n return this.childAt(0);\n };\n\n Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childOfName('line');\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n\n if (!seriesScope || lineData.hasItemOption) {\n var itemModel = lineData.getItemModel(idx);\n emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n labelStatesModels = getLabelStatesModels(itemModel);\n }\n\n var lineStyle = lineData.getItemVisual(idx, 'style');\n var visualColor = lineStyle.stroke;\n line.useStyle(lineStyle);\n line.style.fill = null;\n line.style.strokeNoScale = true;\n line.ensureState('emphasis').style = emphasisLineStyle;\n line.ensureState('blur').style = blurLineStyle;\n line.ensureState('select').style = selectLineStyle;\n zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n var symbol = this.childOfName(symbolCategory);\n\n if (symbol) {\n symbol.setColor(visualColor);\n symbol.style.opacity = lineStyle.opacity;\n\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\n var stateName = SPECIAL_STATES[i];\n var lineState = line.getState(stateName);\n\n if (lineState) {\n var lineStateStyle = lineState.style || {};\n var state = symbol.ensureState(stateName);\n var stateStyle = state.style || (state.style = {});\n\n if (lineStateStyle.stroke != null) {\n stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n }\n\n if (lineStateStyle.opacity != null) {\n stateStyle.opacity = lineStateStyle.opacity;\n }\n }\n }\n\n symbol.markRedraw();\n }\n }, this);\n var rawVal = seriesModel.getRawValue(idx);\n setLabelStyle(this, labelStatesModels, {\n labelDataIndex: idx,\n labelFetcher: {\n getFormattedLabel: function (dataIndex, stateName) {\n return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n }\n },\n inheritColor: visualColor || '#000',\n defaultOpacity: lineStyle.opacity,\n defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n });\n var label = this.getTextContent();\n\n if (label) {\n var labelNormalModel = labelStatesModels.normal;\n label.__align = label.style.align;\n label.__verticalAlign = label.style.verticalAlign;\n label.__position = labelNormalModel.get('position') || 'middle';\n var distance = labelNormalModel.get('distance');\n\n if (!zrUtil.isArray(distance)) {\n distance = [distance, distance];\n }\n\n label.__labelDistance = distance;\n }\n\n this.setTextConfig({\n position: null,\n local: true,\n inside: false\n });\n enableHoverEmphasis(this);\n };\n\n Line.prototype.highlight = function () {\n enterEmphasis(this);\n };\n\n Line.prototype.downplay = function () {\n leaveEmphasis(this);\n };\n\n Line.prototype.updateLayout = function (lineData, idx) {\n this.setLinePoints(lineData.getItemLayout(idx));\n };\n\n Line.prototype.setLinePoints = function (points) {\n var linePath = this.childOfName('line');\n setLinePoints(linePath.shape, points);\n linePath.dirty();\n };\n\n Line.prototype.beforeUpdate = function () {\n var lineGroup = this;\n var symbolFrom = lineGroup.childOfName('fromSymbol');\n var symbolTo = lineGroup.childOfName('toSymbol');\n var label = lineGroup.getTextContent();\n\n if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n return;\n }\n\n var invScale = 1;\n var parentNode = this.parent;\n\n while (parentNode) {\n if (parentNode.scaleX) {\n invScale /= parentNode.scaleX;\n }\n\n parentNode = parentNode.parent;\n }\n\n var line = lineGroup.childOfName('line');\n\n if (!this.__dirty && !line.__dirty) {\n return;\n }\n\n var percent = line.shape.percent;\n var fromPos = line.pointAt(0);\n var toPos = line.pointAt(percent);\n var d = vector.sub([], toPos, fromPos);\n vector.normalize(d, d);\n\n function setSymbolRotation(symbol, percent) {\n var specifiedRotation = symbol.__specifiedRotation;\n\n if (specifiedRotation == null) {\n var tangent = line.tangentAt(percent);\n symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n } else {\n symbol.attr('rotation', specifiedRotation);\n }\n }\n\n if (symbolFrom) {\n symbolFrom.setPosition(fromPos);\n setSymbolRotation(symbolFrom, 0);\n symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n symbolFrom.markRedraw();\n }\n\n if (symbolTo) {\n symbolTo.setPosition(toPos);\n setSymbolRotation(symbolTo, 1);\n symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n symbolTo.markRedraw();\n }\n\n if (label && !label.ignore) {\n label.x = label.y = 0;\n label.originX = label.originY = 0;\n var textAlign = void 0;\n var textVerticalAlign = void 0;\n var distance = label.__labelDistance;\n var distanceX = distance[0] * invScale;\n var distanceY = distance[1] * invScale;\n var halfPercent = percent / 2;\n var tangent = line.tangentAt(halfPercent);\n var n = [tangent[1], -tangent[0]];\n var cp = line.pointAt(halfPercent);\n\n if (n[1] > 0) {\n n[0] = -n[0];\n n[1] = -n[1];\n }\n\n var dir = tangent[0] < 0 ? -1 : 1;\n\n if (label.__position !== 'start' && label.__position !== 'end') {\n var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n if (toPos[0] < fromPos[0]) {\n rotation = Math.PI + rotation;\n }\n\n label.rotation = rotation;\n }\n\n var dy = void 0;\n\n switch (label.__position) {\n case 'insideStartTop':\n case 'insideMiddleTop':\n case 'insideEndTop':\n case 'middle':\n dy = -distanceY;\n textVerticalAlign = 'bottom';\n break;\n\n case 'insideStartBottom':\n case 'insideMiddleBottom':\n case 'insideEndBottom':\n dy = distanceY;\n textVerticalAlign = 'top';\n break;\n\n default:\n dy = 0;\n textVerticalAlign = 'middle';\n }\n\n switch (label.__position) {\n case 'end':\n label.x = d[0] * distanceX + toPos[0];\n label.y = d[1] * distanceY + toPos[1];\n textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n break;\n\n case 'start':\n label.x = -d[0] * distanceX + fromPos[0];\n label.y = -d[1] * distanceY + fromPos[1];\n textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n break;\n\n case 'insideStartTop':\n case 'insideStart':\n case 'insideStartBottom':\n label.x = distanceX * dir + fromPos[0];\n label.y = fromPos[1] + dy;\n textAlign = tangent[0] < 0 ? 'right' : 'left';\n label.originX = -distanceX * dir;\n label.originY = -dy;\n break;\n\n case 'insideMiddleTop':\n case 'insideMiddle':\n case 'insideMiddleBottom':\n case 'middle':\n label.x = cp[0];\n label.y = cp[1] + dy;\n textAlign = 'center';\n label.originY = -dy;\n break;\n\n case 'insideEndTop':\n case 'insideEnd':\n case 'insideEndBottom':\n label.x = -distanceX * dir + toPos[0];\n label.y = toPos[1] + dy;\n textAlign = tangent[0] >= 0 ? 'right' : 'left';\n label.originX = distanceX * dir;\n label.originY = -dy;\n break;\n }\n\n label.scaleX = label.scaleY = invScale;\n label.setStyle({\n verticalAlign: label.__verticalAlign || textVerticalAlign,\n align: label.__align || textAlign\n });\n }\n };\n\n return Line;\n}(graphic.Group);\n\nexport default Line;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport LineGroup from './Line';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nvar LineDraw = function () {\n function LineDraw(LineCtor) {\n this.group = new graphic.Group();\n this._LineCtor = LineCtor || LineGroup;\n }\n\n LineDraw.prototype.isPersistent = function () {\n return true;\n };\n\n ;\n\n LineDraw.prototype.updateData = function (lineData) {\n var _this = this;\n\n var lineDraw = this;\n var group = lineDraw.group;\n var oldLineData = lineDraw._lineData;\n lineDraw._lineData = lineData;\n\n if (!oldLineData) {\n group.removeAll();\n }\n\n var seriesScope = makeSeriesScope(lineData);\n lineData.diff(oldLineData).add(function (idx) {\n _this._doAdd(lineData, idx, seriesScope);\n }).update(function (newIdx, oldIdx) {\n _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\n }).remove(function (idx) {\n group.remove(oldLineData.getItemGraphicEl(idx));\n }).execute();\n };\n\n ;\n\n LineDraw.prototype.updateLayout = function () {\n var lineData = this._lineData;\n\n if (!lineData) {\n return;\n }\n\n lineData.eachItemGraphicEl(function (el, idx) {\n el.updateLayout(lineData, idx);\n }, this);\n };\n\n ;\n\n LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\n this._seriesScope = makeSeriesScope(lineData);\n this._lineData = null;\n this.group.removeAll();\n };\n\n ;\n\n LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\n function updateIncrementalAndHover(el) {\n if (!el.isGroup && !isEffectObject(el)) {\n el.incremental = true;\n el.ensureState('emphasis').hoverLayer = true;\n }\n }\n\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n var itemLayout = lineData.getItemLayout(idx);\n\n if (lineNeedsDraw(itemLayout)) {\n var el = new this._LineCtor(lineData, idx, this._seriesScope);\n el.traverse(updateIncrementalAndHover);\n this.group.add(el);\n lineData.setItemGraphicEl(idx, el);\n }\n }\n };\n\n ;\n\n LineDraw.prototype.remove = function () {\n this.group.removeAll();\n };\n\n ;\n\n LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\n var itemLayout = lineData.getItemLayout(idx);\n\n if (!lineNeedsDraw(itemLayout)) {\n return;\n }\n\n var el = new this._LineCtor(lineData, idx, seriesScope);\n lineData.setItemGraphicEl(idx, el);\n this.group.add(el);\n };\n\n LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\n var itemEl = oldLineData.getItemGraphicEl(oldIdx);\n\n if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\n this.group.remove(itemEl);\n return;\n }\n\n if (!itemEl) {\n itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\n } else {\n itemEl.updateData(newLineData, newIdx, seriesScope);\n }\n\n newLineData.setItemGraphicEl(newIdx, itemEl);\n this.group.add(itemEl);\n };\n\n return LineDraw;\n}();\n\nfunction isEffectObject(el) {\n return el.animators && el.animators.length > 0;\n}\n\nfunction makeSeriesScope(lineData) {\n var hostModel = lineData.hostModel;\n return {\n lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\n emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\n blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\n selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\n labelStatesModels: getLabelStatesModels(hostModel)\n };\n}\n\nfunction isPointNaN(pt) {\n return isNaN(pt[0]) || isNaN(pt[1]);\n}\n\nfunction lineNeedsDraw(pts) {\n return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\n}\n\nexport default LineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as curveTool from 'zrender/lib/core/curve';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport { getSymbolSize } from './graphHelper';\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n var p0 = curvePoints[0];\n var p1 = curvePoints[1];\n var p2 = curvePoints[2];\n var d = Infinity;\n var t;\n var radiusSquare = radius * radius;\n var interval = 0.1;\n\n for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n if (diff < d) {\n d = diff;\n t = _t;\n }\n }\n\n for (var i = 0; i < 32; i++) {\n var next = t + interval;\n v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n var diff = v2DistSquare(v2, center) - radiusSquare;\n\n if (mathAbs(diff) < 1e-2) {\n break;\n }\n\n var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n interval /= 2;\n\n if (diff < 0) {\n if (nextDiff >= 0) {\n t = t + interval;\n } else {\n t = t - interval;\n }\n } else {\n if (nextDiff >= 0) {\n t = t - interval;\n } else {\n t = t + interval;\n }\n }\n }\n\n return t;\n}\n\nexport default function adjustEdge(graph, scale) {\n var tmp0 = [];\n var quadraticSubdivide = curveTool.quadraticSubdivide;\n var pts = [[], [], []];\n var pts2 = [[], []];\n var v = [];\n scale /= 2;\n graph.eachEdge(function (edge, idx) {\n var linePoints = edge.getLayout();\n var fromSymbol = edge.getVisual('fromSymbol');\n var toSymbol = edge.getVisual('toSymbol');\n\n if (!linePoints.__original) {\n linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n if (linePoints[2]) {\n linePoints.__original.push(vec2.clone(linePoints[2]));\n }\n }\n\n var originalPoints = linePoints.__original;\n\n if (linePoints[2] != null) {\n vec2.copy(pts[0], originalPoints[0]);\n vec2.copy(pts[1], originalPoints[2]);\n vec2.copy(pts[2], originalPoints[1]);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale);\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[0][0] = tmp0[3];\n pts[1][0] = tmp0[4];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[0][1] = tmp0[3];\n pts[1][1] = tmp0[4];\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale);\n quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n pts[1][0] = tmp0[1];\n pts[2][0] = tmp0[2];\n quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n pts[1][1] = tmp0[1];\n pts[2][1] = tmp0[2];\n }\n\n vec2.copy(linePoints[0], pts[0]);\n vec2.copy(linePoints[1], pts[2]);\n vec2.copy(linePoints[2], pts[1]);\n } else {\n vec2.copy(pts2[0], originalPoints[0]);\n vec2.copy(pts2[1], originalPoints[1]);\n vec2.sub(v, pts2[1], pts2[0]);\n vec2.normalize(v, v);\n\n if (fromSymbol && fromSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node1);\n vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n }\n\n if (toSymbol && toSymbol !== 'none') {\n var symbolSize = getSymbolSize(edge.node2);\n vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n }\n\n vec2.copy(linePoints[0], pts2[0]);\n vec2.copy(linePoints[1], pts2[1]);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LineDraw from '../helper/LineDraw';\nimport RoamController from '../../component/helper/RoamController';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport * as graphic from '../../util/graphic';\nimport adjustEdge from './adjustEdge';\nimport { getNodeGlobalScale } from './graphHelper';\nimport ChartView from '../../view/Chart';\nimport { getECData } from '../../util/innerStore';\n\nfunction isViewCoordSys(coordSys) {\n return coordSys.type === 'view';\n}\n\nvar GraphView = function (_super) {\n __extends(GraphView, _super);\n\n function GraphView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GraphView.type;\n return _this;\n }\n\n GraphView.prototype.init = function (ecModel, api) {\n var symbolDraw = new SymbolDraw();\n var lineDraw = new LineDraw();\n var group = this.group;\n this._controller = new RoamController(api.getZr());\n this._controllerHost = {\n target: group\n };\n group.add(symbolDraw.group);\n group.add(lineDraw.group);\n this._symbolDraw = symbolDraw;\n this._lineDraw = lineDraw;\n this._firstRender = true;\n };\n\n GraphView.prototype.render = function (seriesModel, ecModel, api) {\n var _this = this;\n\n var coordSys = seriesModel.coordinateSystem;\n this._model = seriesModel;\n var symbolDraw = this._symbolDraw;\n var lineDraw = this._lineDraw;\n var group = this.group;\n\n if (isViewCoordSys(coordSys)) {\n var groupNewProp = {\n x: coordSys.x,\n y: coordSys.y,\n scaleX: coordSys.scaleX,\n scaleY: coordSys.scaleY\n };\n\n if (this._firstRender) {\n group.attr(groupNewProp);\n } else {\n graphic.updateProps(group, groupNewProp, seriesModel);\n }\n }\n\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n var data = seriesModel.getData();\n symbolDraw.updateData(data);\n var edgeData = seriesModel.getEdgeData();\n lineDraw.updateData(edgeData);\n\n this._updateNodeAndLinkScale();\n\n this._updateController(seriesModel, ecModel, api);\n\n clearTimeout(this._layoutTimeout);\n var forceLayout = seriesModel.forceLayout;\n var layoutAnimation = seriesModel.get(['force', 'layoutAnimation']);\n\n if (forceLayout) {\n this._startForceLayoutIteration(forceLayout, layoutAnimation);\n }\n\n data.graph.eachNode(function (node) {\n var idx = node.dataIndex;\n var el = node.getGraphicEl();\n var itemModel = node.getModel();\n el.off('drag').off('dragend');\n var draggable = itemModel.get('draggable');\n\n if (draggable) {\n el.on('drag', function () {\n if (forceLayout) {\n forceLayout.warmUp();\n !_this._layouting && _this._startForceLayoutIteration(forceLayout, layoutAnimation);\n forceLayout.setFixed(idx);\n data.setItemLayout(idx, [el.x, el.y]);\n }\n }).on('dragend', function () {\n if (forceLayout) {\n forceLayout.setUnfixed(idx);\n }\n });\n }\n\n el.setDraggable(draggable && !!forceLayout);\n var focus = itemModel.get(['emphasis', 'focus']);\n\n if (focus === 'adjacency') {\n getECData(el).focus = node.getAdjacentDataIndices();\n }\n });\n data.graph.eachEdge(function (edge) {\n var el = edge.getGraphicEl();\n var focus = edge.getModel().get(['emphasis', 'focus']);\n\n if (focus === 'adjacency') {\n getECData(el).focus = {\n edge: [edge.dataIndex],\n node: [edge.node1.dataIndex, edge.node2.dataIndex]\n };\n }\n });\n var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get(['circular', 'rotateLabel']);\n var cx = data.getLayout('cx');\n var cy = data.getLayout('cy');\n data.eachItemGraphicEl(function (el, idx) {\n var itemModel = data.getItemModel(idx);\n var labelRotate = itemModel.get(['label', 'rotate']) || 0;\n var symbolPath = el.getSymbolPath();\n\n if (circularRotateLabel) {\n var pos = data.getItemLayout(idx);\n var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n if (rad < 0) {\n rad = Math.PI * 2 + rad;\n }\n\n var isLeft = pos[0] < cx;\n\n if (isLeft) {\n rad = rad - Math.PI;\n }\n\n var textPosition = isLeft ? 'left' : 'right';\n symbolPath.setTextConfig({\n rotation: -rad,\n position: textPosition,\n origin: 'center'\n });\n var emphasisState = symbolPath.ensureState('emphasis');\n zrUtil.extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\n position: textPosition\n });\n } else {\n symbolPath.setTextConfig({\n rotation: labelRotate *= Math.PI / 180\n });\n }\n });\n this._firstRender = false;\n };\n\n GraphView.prototype.dispose = function () {\n this._controller && this._controller.dispose();\n this._controllerHost = null;\n };\n\n GraphView.prototype._startForceLayoutIteration = function (forceLayout, layoutAnimation) {\n var self = this;\n\n (function step() {\n forceLayout.step(function (stopped) {\n self.updateLayout(self._model);\n (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step());\n });\n })();\n };\n\n GraphView.prototype._updateController = function (seriesModel, ecModel, api) {\n var _this = this;\n\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n var group = this.group;\n controller.setPointerChecker(function (e, x, y) {\n var rect = group.getBoundingRect();\n rect.applyTransform(group.transform);\n return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n });\n\n if (!isViewCoordSys(seriesModel.coordinateSystem)) {\n controller.disable();\n return;\n }\n\n controller.enable(seriesModel.get('roam'));\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n controller.off('pan').off('zoom').on('pan', function (e) {\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'graphRoam',\n dx: e.dx,\n dy: e.dy\n });\n }).on('zoom', function (e) {\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction({\n seriesId: seriesModel.id,\n type: 'graphRoam',\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY\n });\n\n _this._updateNodeAndLinkScale();\n\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n _this._lineDraw.updateLayout();\n\n api.updateLabelLayout();\n });\n };\n\n GraphView.prototype._updateNodeAndLinkScale = function () {\n var seriesModel = this._model;\n var data = seriesModel.getData();\n var nodeScale = getNodeGlobalScale(seriesModel);\n data.eachItemGraphicEl(function (el, idx) {\n el.setSymbolScale(nodeScale);\n });\n };\n\n GraphView.prototype.updateLayout = function (seriesModel) {\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n this._symbolDraw.updateLayout();\n\n this._lineDraw.updateLayout();\n };\n\n GraphView.prototype.remove = function (ecModel, api) {\n this._symbolDraw && this._symbolDraw.remove();\n this._lineDraw && this._lineDraw.remove();\n };\n\n GraphView.type = 'graph';\n return GraphView;\n}(ChartView);\n\nexport default GraphView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction generateNodeKey(id) {\n return '_EC_' + id;\n}\n\nvar Graph = function () {\n function Graph(directed) {\n this.type = 'graph';\n this.nodes = [];\n this.edges = [];\n this._nodesMap = {};\n this._edgesMap = {};\n this._directed = directed || false;\n }\n\n Graph.prototype.isDirected = function () {\n return this._directed;\n };\n\n ;\n\n Graph.prototype.addNode = function (id, dataIndex) {\n id = id == null ? '' + dataIndex : '' + id;\n var nodesMap = this._nodesMap;\n\n if (nodesMap[generateNodeKey(id)]) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Graph nodes have duplicate name or id');\n }\n\n return;\n }\n\n var node = new GraphNode(id, dataIndex);\n node.hostGraph = this;\n this.nodes.push(node);\n nodesMap[generateNodeKey(id)] = node;\n return node;\n };\n\n ;\n\n Graph.prototype.getNodeByIndex = function (dataIndex) {\n var rawIdx = this.data.getRawIndex(dataIndex);\n return this.nodes[rawIdx];\n };\n\n ;\n\n Graph.prototype.getNodeById = function (id) {\n return this._nodesMap[generateNodeKey(id)];\n };\n\n ;\n\n Graph.prototype.addEdge = function (n1, n2, dataIndex) {\n var nodesMap = this._nodesMap;\n var edgesMap = this._edgesMap;\n\n if (typeof n1 === 'number') {\n n1 = this.nodes[n1];\n }\n\n if (typeof n2 === 'number') {\n n2 = this.nodes[n2];\n }\n\n if (!(n1 instanceof GraphNode)) {\n n1 = nodesMap[generateNodeKey(n1)];\n }\n\n if (!(n2 instanceof GraphNode)) {\n n2 = nodesMap[generateNodeKey(n2)];\n }\n\n if (!n1 || !n2) {\n return;\n }\n\n var key = n1.id + '-' + n2.id;\n var edge = new GraphEdge(n1, n2, dataIndex);\n edge.hostGraph = this;\n\n if (this._directed) {\n n1.outEdges.push(edge);\n n2.inEdges.push(edge);\n }\n\n n1.edges.push(edge);\n\n if (n1 !== n2) {\n n2.edges.push(edge);\n }\n\n this.edges.push(edge);\n edgesMap[key] = edge;\n return edge;\n };\n\n ;\n\n Graph.prototype.getEdgeByIndex = function (dataIndex) {\n var rawIdx = this.edgeData.getRawIndex(dataIndex);\n return this.edges[rawIdx];\n };\n\n ;\n\n Graph.prototype.getEdge = function (n1, n2) {\n if (n1 instanceof GraphNode) {\n n1 = n1.id;\n }\n\n if (n2 instanceof GraphNode) {\n n2 = n2.id;\n }\n\n var edgesMap = this._edgesMap;\n\n if (this._directed) {\n return edgesMap[n1 + '-' + n2];\n } else {\n return edgesMap[n1 + '-' + n2] || edgesMap[n2 + '-' + n1];\n }\n };\n\n ;\n\n Graph.prototype.eachNode = function (cb, context) {\n var nodes = this.nodes;\n var len = nodes.length;\n\n for (var i = 0; i < len; i++) {\n if (nodes[i].dataIndex >= 0) {\n cb.call(context, nodes[i], i);\n }\n }\n };\n\n ;\n\n Graph.prototype.eachEdge = function (cb, context) {\n var edges = this.edges;\n var len = edges.length;\n\n for (var i = 0; i < len; i++) {\n if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) {\n cb.call(context, edges[i], i);\n }\n }\n };\n\n ;\n\n Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) {\n if (!(startNode instanceof GraphNode)) {\n startNode = this._nodesMap[generateNodeKey(startNode)];\n }\n\n if (!startNode) {\n return;\n }\n\n var edgeType = direction === 'out' ? 'outEdges' : direction === 'in' ? 'inEdges' : 'edges';\n\n for (var i = 0; i < this.nodes.length; i++) {\n this.nodes[i].__visited = false;\n }\n\n if (cb.call(context, startNode, null)) {\n return;\n }\n\n var queue = [startNode];\n\n while (queue.length) {\n var currentNode = queue.shift();\n var edges = currentNode[edgeType];\n\n for (var i = 0; i < edges.length; i++) {\n var e = edges[i];\n var otherNode = e.node1 === currentNode ? e.node2 : e.node1;\n\n if (!otherNode.__visited) {\n if (cb.call(context, otherNode, currentNode)) {\n return;\n }\n\n queue.push(otherNode);\n otherNode.__visited = true;\n }\n }\n }\n };\n\n ;\n\n Graph.prototype.update = function () {\n var data = this.data;\n var edgeData = this.edgeData;\n var nodes = this.nodes;\n var edges = this.edges;\n\n for (var i = 0, len = nodes.length; i < len; i++) {\n nodes[i].dataIndex = -1;\n }\n\n for (var i = 0, len = data.count(); i < len; i++) {\n nodes[data.getRawIndex(i)].dataIndex = i;\n }\n\n edgeData.filterSelf(function (idx) {\n var edge = edges[edgeData.getRawIndex(idx)];\n return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\n });\n\n for (var i = 0, len = edges.length; i < len; i++) {\n edges[i].dataIndex = -1;\n }\n\n for (var i = 0, len = edgeData.count(); i < len; i++) {\n edges[edgeData.getRawIndex(i)].dataIndex = i;\n }\n };\n\n ;\n\n Graph.prototype.clone = function () {\n var graph = new Graph(this._directed);\n var nodes = this.nodes;\n var edges = this.edges;\n\n for (var i = 0; i < nodes.length; i++) {\n graph.addNode(nodes[i].id, nodes[i].dataIndex);\n }\n\n for (var i = 0; i < edges.length; i++) {\n var e = edges[i];\n graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\n }\n\n return graph;\n };\n\n ;\n return Graph;\n}();\n\nvar GraphNode = function () {\n function GraphNode(id, dataIndex) {\n this.inEdges = [];\n this.outEdges = [];\n this.edges = [];\n this.dataIndex = -1;\n this.id = id == null ? '' : id;\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\n }\n\n GraphNode.prototype.degree = function () {\n return this.edges.length;\n };\n\n GraphNode.prototype.inDegree = function () {\n return this.inEdges.length;\n };\n\n GraphNode.prototype.outDegree = function () {\n return this.outEdges.length;\n };\n\n GraphNode.prototype.getModel = function (path) {\n if (this.dataIndex < 0) {\n return;\n }\n\n var graph = this.hostGraph;\n var itemModel = graph.data.getItemModel(this.dataIndex);\n return itemModel.getModel(path);\n };\n\n GraphNode.prototype.getAdjacentDataIndices = function () {\n var dataIndices = {\n edge: [],\n node: []\n };\n\n for (var i = 0; i < this.edges.length; i++) {\n var adjacentEdge = this.edges[i];\n\n if (adjacentEdge.dataIndex < 0) {\n continue;\n }\n\n dataIndices.edge.push(adjacentEdge.dataIndex);\n dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex);\n }\n\n return dataIndices;\n };\n\n return GraphNode;\n}();\n\nvar GraphEdge = function () {\n function GraphEdge(n1, n2, dataIndex) {\n this.dataIndex = -1;\n this.node1 = n1;\n this.node2 = n2;\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\n }\n\n GraphEdge.prototype.getModel = function (path) {\n if (this.dataIndex < 0) {\n return;\n }\n\n var graph = this.hostGraph;\n var itemModel = graph.edgeData.getItemModel(this.dataIndex);\n return itemModel.getModel(path);\n };\n\n GraphEdge.prototype.getAdjacentDataIndices = function () {\n return {\n edge: [this.dataIndex],\n node: [this.node1.dataIndex, this.node2.dataIndex]\n };\n };\n\n return GraphEdge;\n}();\n\nfunction createGraphDataProxyMixin(hostName, dataName) {\n return {\n getValue: function (dimension) {\n var data = this[hostName][dataName];\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n },\n setVisual: function (key, value) {\n this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\n },\n getVisual: function (key) {\n return this[hostName][dataName].getItemVisual(this.dataIndex, key);\n },\n setLayout: function (layout, merge) {\n this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\n },\n getLayout: function () {\n return this[hostName][dataName].getItemLayout(this.dataIndex);\n },\n getGraphicEl: function () {\n return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\n },\n getRawIndex: function () {\n return this[hostName][dataName].getRawIndex(this.dataIndex);\n }\n };\n}\n\n;\n;\n;\nzrUtil.mixin(GraphNode, createGraphDataProxyMixin('hostGraph', 'data'));\nzrUtil.mixin(GraphEdge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\nexport default Graph;\nexport { GraphNode, GraphEdge };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport Graph from '../../data/Graph';\nimport linkList from '../../data/helper/linkList';\nimport createDimensions from '../../data/helper/createDimensions';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport createListFromArray from './createListFromArray';\nimport { convertOptionIdName } from '../../util/model';\nexport default function createGraphFromNodeEdge(nodes, edges, seriesModel, directed, beforeLink) {\n var graph = new Graph(directed);\n\n for (var i = 0; i < nodes.length; i++) {\n graph.addNode(zrUtil.retrieve(nodes[i].id, nodes[i].name, i), i);\n }\n\n var linkNameList = [];\n var validEdges = [];\n var linkCount = 0;\n\n for (var i = 0; i < edges.length; i++) {\n var link = edges[i];\n var source = link.source;\n var target = link.target;\n\n if (graph.addEdge(source, target, linkCount)) {\n validEdges.push(link);\n linkNameList.push(zrUtil.retrieve(convertOptionIdName(link.id, null), source + ' > ' + target));\n linkCount++;\n }\n }\n\n var coordSys = seriesModel.get('coordinateSystem');\n var nodeData;\n\n if (coordSys === 'cartesian2d' || coordSys === 'polar') {\n nodeData = createListFromArray(nodes, seriesModel);\n } else {\n var coordSysCtor = CoordinateSystem.get(coordSys);\n var coordDimensions = coordSysCtor ? coordSysCtor.dimensions || [] : [];\n\n if (zrUtil.indexOf(coordDimensions, 'value') < 0) {\n coordDimensions.concat(['value']);\n }\n\n var dimensionNames = createDimensions(nodes, {\n coordDimensions: coordDimensions\n });\n nodeData = new List(dimensionNames, seriesModel);\n nodeData.initData(nodes);\n }\n\n var edgeData = new List(['value'], seriesModel);\n edgeData.initData(validEdges, linkNameList);\n beforeLink && beforeLink(nodeData, edgeData);\n linkList({\n mainData: nodeData,\n struct: graph,\n structAttr: 'graph',\n datas: {\n node: nodeData,\n edge: edgeData\n },\n datasAttr: {\n node: 'data',\n edge: 'edgeData'\n }\n });\n graph.update();\n return graph;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { defaultEmphasis } from '../../util/model';\nimport Model from '../../model/Model';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nimport { defaultSeriesFormatTooltip } from '../../component/tooltip/seriesFormatTooltip';\nimport { initCurvenessList, createEdgeMapForCurveness } from '../helper/multipleGraphEdgeHelper';\n\nvar GraphSeriesModel = function (_super) {\n __extends(GraphSeriesModel, _super);\n\n function GraphSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GraphSeriesModel.type;\n _this.hasSymbolVisual = true;\n return _this;\n }\n\n GraphSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments);\n\n var self = this;\n\n function getCategoriesData() {\n return self._categoriesData;\n }\n\n this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);\n this.fillDataTextStyle(option.edges || option.links);\n\n this._updateCategoriesData();\n };\n\n GraphSeriesModel.prototype.mergeOption = function (option) {\n _super.prototype.mergeOption.apply(this, arguments);\n\n this.fillDataTextStyle(option.edges || option.links);\n\n this._updateCategoriesData();\n };\n\n GraphSeriesModel.prototype.mergeDefaultAndTheme = function (option) {\n _super.prototype.mergeDefaultAndTheme.apply(this, arguments);\n\n defaultEmphasis(option, 'edgeLabel', ['show']);\n };\n\n GraphSeriesModel.prototype.getInitialData = function (option, ecModel) {\n var edges = option.edges || option.links || [];\n var nodes = option.data || option.nodes || [];\n var self = this;\n\n if (nodes && edges) {\n initCurvenessList(this);\n var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink);\n zrUtil.each(graph.edges, function (edge) {\n createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex);\n }, this);\n return graph.data;\n }\n\n function beforeLink(nodeData, edgeData) {\n nodeData.wrapMethod('getItemModel', function (model) {\n var categoriesModels = self._categoriesModels;\n var categoryIdx = model.getShallow('category');\n var categoryModel = categoriesModels[categoryIdx];\n\n if (categoryModel) {\n categoryModel.parentModel = model.parentModel;\n model.parentModel = categoryModel;\n }\n\n return model;\n });\n var oldGetModel = Model.prototype.getModel;\n\n function newGetModel(path, parentModel) {\n var model = oldGetModel.call(this, path, parentModel);\n model.resolveParentPath = resolveParentPath;\n return model;\n }\n\n edgeData.wrapMethod('getItemModel', function (model) {\n model.resolveParentPath = resolveParentPath;\n model.getModel = newGetModel;\n return model;\n });\n\n function resolveParentPath(pathArr) {\n if (pathArr && (pathArr[0] === 'label' || pathArr[1] === 'label')) {\n var newPathArr = pathArr.slice();\n\n if (pathArr[0] === 'label') {\n newPathArr[0] = 'edgeLabel';\n } else if (pathArr[1] === 'label') {\n newPathArr[1] = 'edgeLabel';\n }\n\n return newPathArr;\n }\n\n return pathArr;\n }\n }\n };\n\n GraphSeriesModel.prototype.getGraph = function () {\n return this.getData().graph;\n };\n\n GraphSeriesModel.prototype.getEdgeData = function () {\n return this.getGraph().edgeData;\n };\n\n GraphSeriesModel.prototype.getCategoriesData = function () {\n return this._categoriesData;\n };\n\n GraphSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n if (dataType === 'edge') {\n var nodeData = this.getData();\n var params = this.getDataParams(dataIndex, dataType);\n var edge = nodeData.graph.getEdgeByIndex(dataIndex);\n var sourceName = nodeData.getName(edge.node1.dataIndex);\n var targetName = nodeData.getName(edge.node2.dataIndex);\n var nameArr = [];\n sourceName != null && nameArr.push(sourceName);\n targetName != null && nameArr.push(targetName);\n return createTooltipMarkup('nameValue', {\n name: nameArr.join(' > '),\n value: params.value,\n noValue: params.value == null\n });\n }\n\n var nodeMarkup = defaultSeriesFormatTooltip({\n series: this,\n dataIndex: dataIndex,\n multipleSeries: multipleSeries\n });\n return nodeMarkup;\n };\n\n GraphSeriesModel.prototype._updateCategoriesData = function () {\n var categories = zrUtil.map(this.option.categories || [], function (category) {\n return category.value != null ? category : zrUtil.extend({\n value: 0\n }, category);\n });\n var categoriesData = new List(['value'], this);\n categoriesData.initData(categories);\n this._categoriesData = categoriesData;\n this._categoriesModels = categoriesData.mapArray(function (idx) {\n return categoriesData.getItemModel(idx);\n });\n };\n\n GraphSeriesModel.prototype.setZoom = function (zoom) {\n this.option.zoom = zoom;\n };\n\n GraphSeriesModel.prototype.setCenter = function (center) {\n this.option.center = center;\n };\n\n GraphSeriesModel.prototype.isAnimationEnabled = function () {\n return _super.prototype.isAnimationEnabled.call(this) && !(this.get('layout') === 'force' && this.get(['force', 'layoutAnimation']));\n };\n\n GraphSeriesModel.type = 'series.graph';\n GraphSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n GraphSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n legendHoverLink: true,\n layout: null,\n focusNodeAdjacency: false,\n circular: {\n rotateLabel: false\n },\n force: {\n initLayout: null,\n repulsion: [0, 50],\n gravity: 0.1,\n friction: 0.6,\n edgeLength: 30,\n layoutAnimation: true\n },\n left: 'center',\n top: 'center',\n symbol: 'circle',\n symbolSize: 10,\n edgeSymbol: ['none', 'none'],\n edgeSymbolSize: 10,\n edgeLabel: {\n position: 'middle',\n distance: 5\n },\n draggable: false,\n roam: false,\n center: null,\n zoom: 1,\n nodeScaleRatio: 0.6,\n label: {\n show: false,\n formatter: '{b}'\n },\n itemStyle: {},\n lineStyle: {\n color: '#aaa',\n width: 1,\n opacity: 0.5\n },\n emphasis: {\n scale: true,\n label: {\n show: true\n }\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n }\n };\n return GraphSeriesModel;\n}(SeriesModel);\n\nexport default GraphSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport categoryFilter from './categoryFilter';\nimport categoryVisual from './categoryVisual';\nimport edgeVisual from './edgeVisual';\nimport simpleLayout from './simpleLayout';\nimport circularLayout from './circularLayout';\nimport forceLayout from './forceLayout';\nimport createView from './createView';\nimport View from '../../coord/View';\nimport GraphView from './GraphView';\nimport GraphSeriesModel from './GraphSeries';\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nvar actionInfo = {\n type: 'graphRoam',\n event: 'graphRoam',\n update: 'none'\n};\nexport function install(registers) {\n registers.registerChartView(GraphView);\n registers.registerSeriesModel(GraphSeriesModel);\n registers.registerProcessor(categoryFilter);\n registers.registerVisual(categoryVisual);\n registers.registerVisual(edgeVisual);\n registers.registerLayout(simpleLayout);\n registers.registerLayout(registers.PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout);\n registers.registerLayout(forceLayout);\n registers.registerCoordinateSystem('graphView', {\n dimensions: View.dimensions,\n create: createView\n });\n registers.registerAction({\n type: 'focusNodeAdjacency',\n event: 'focusNodeAdjacency',\n update: 'series:focusNodeAdjacency'\n }, function () {});\n registers.registerAction({\n type: 'unfocusNodeAdjacency',\n event: 'unfocusNodeAdjacency',\n update: 'series:unfocusNodeAdjacency'\n }, function () {});\n registers.registerAction(actionInfo, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n query: payload\n }, function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var res = updateCenterAndZoom(coordSys, payload);\n seriesModel.setCenter && seriesModel.setCenter(res.center);\n seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\n\nvar PointerShape = function () {\n function PointerShape() {\n this.angle = 0;\n this.width = 10;\n this.r = 10;\n this.x = 0;\n this.y = 0;\n }\n\n return PointerShape;\n}();\n\nvar PointerPath = function (_super) {\n __extends(PointerPath, _super);\n\n function PointerPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'pointer';\n return _this;\n }\n\n PointerPath.prototype.getDefaultShape = function () {\n return new PointerShape();\n };\n\n PointerPath.prototype.buildPath = function (ctx, shape) {\n var mathCos = Math.cos;\n var mathSin = Math.sin;\n var r = shape.r;\n var width = shape.width;\n var angle = shape.angle;\n var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n angle = shape.angle - Math.PI / 2;\n ctx.moveTo(x, y);\n ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n ctx.lineTo(x, y);\n };\n\n return PointerPath;\n}(Path);\n\nexport default PointerPath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport PointerPath from './PointerPath';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport { createTextStyle, setLabelValueAnimation, animateLabelValue } from '../../label/labelStyle';\nimport ChartView from '../../view/Chart';\nimport { parsePercent, round, linearMap } from '../../util/number';\nimport Sausage from '../../util/shape/sausage';\nimport { createSymbol } from '../../util/symbol';\n\nfunction parsePosition(seriesModel, api) {\n var center = seriesModel.get('center');\n var width = api.getWidth();\n var height = api.getHeight();\n var size = Math.min(width, height);\n var cx = parsePercent(center[0], api.getWidth());\n var cy = parsePercent(center[1], api.getHeight());\n var r = parsePercent(seriesModel.get('radius'), size / 2);\n return {\n cx: cx,\n cy: cy,\n r: r\n };\n}\n\nfunction formatLabel(value, labelFormatter) {\n var label = value == null ? '' : value + '';\n\n if (labelFormatter) {\n if (typeof labelFormatter === 'string') {\n label = labelFormatter.replace('{value}', label);\n } else if (typeof labelFormatter === 'function') {\n label = labelFormatter(value);\n }\n }\n\n return label;\n}\n\nvar PI2 = Math.PI * 2;\n\nvar GaugeView = function (_super) {\n __extends(GaugeView, _super);\n\n function GaugeView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GaugeView.type;\n return _this;\n }\n\n GaugeView.prototype.render = function (seriesModel, ecModel, api) {\n this.group.removeAll();\n var colorList = seriesModel.get(['axisLine', 'lineStyle', 'color']);\n var posInfo = parsePosition(seriesModel, api);\n\n this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\n\n this._data = seriesModel.getData();\n };\n\n GaugeView.prototype.dispose = function () {};\n\n GaugeView.prototype._renderMain = function (seriesModel, ecModel, api, colorList, posInfo) {\n var group = this.group;\n var clockwise = seriesModel.get('clockwise');\n var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\n var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\n var axisLineModel = seriesModel.getModel('axisLine');\n var roundCap = axisLineModel.get('roundCap');\n var MainPath = roundCap ? Sausage : graphic.Sector;\n var showAxis = axisLineModel.get('show');\n var lineStyleModel = axisLineModel.getModel('lineStyle');\n var axisLineWidth = lineStyleModel.get('width');\n var angleRangeSpan = !((endAngle - startAngle) % PI2) && endAngle !== startAngle ? PI2 : (endAngle - startAngle) % PI2;\n var prevEndAngle = startAngle;\n\n for (var i = 0; showAxis && i < colorList.length; i++) {\n var percent = Math.min(Math.max(colorList[i][0], 0), 1);\n endAngle = startAngle + angleRangeSpan * percent;\n var sector = new MainPath({\n shape: {\n startAngle: prevEndAngle,\n endAngle: endAngle,\n cx: posInfo.cx,\n cy: posInfo.cy,\n clockwise: clockwise,\n r0: posInfo.r - axisLineWidth,\n r: posInfo.r\n },\n silent: true\n });\n sector.setStyle({\n fill: colorList[i][1]\n });\n sector.setStyle(lineStyleModel.getLineStyle(['color', 'width']));\n group.add(sector);\n prevEndAngle = endAngle;\n }\n\n var getColor = function (percent) {\n if (percent <= 0) {\n return colorList[0][1];\n }\n\n var i;\n\n for (i = 0; i < colorList.length; i++) {\n if (colorList[i][0] >= percent && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\n return colorList[i][1];\n }\n }\n\n return colorList[i - 1][1];\n };\n\n if (!clockwise) {\n var tmp = startAngle;\n startAngle = endAngle;\n endAngle = tmp;\n }\n\n this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n\n this._renderTitleAndDetail(seriesModel, ecModel, api, getColor, posInfo);\n\n this._renderAnchor(seriesModel, posInfo);\n\n this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n };\n\n GaugeView.prototype._renderTicks = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n var group = this.group;\n var cx = posInfo.cx;\n var cy = posInfo.cy;\n var r = posInfo.r;\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n var splitLineModel = seriesModel.getModel('splitLine');\n var tickModel = seriesModel.getModel('axisTick');\n var labelModel = seriesModel.getModel('axisLabel');\n var splitNumber = seriesModel.get('splitNumber');\n var subSplitNumber = tickModel.get('splitNumber');\n var splitLineLen = parsePercent(splitLineModel.get('length'), r);\n var tickLen = parsePercent(tickModel.get('length'), r);\n var angle = startAngle;\n var step = (endAngle - startAngle) / splitNumber;\n var subStep = step / subSplitNumber;\n var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\n var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\n var splitLineDistance = splitLineModel.get('distance');\n var unitX;\n var unitY;\n\n for (var i = 0; i <= splitNumber; i++) {\n unitX = Math.cos(angle);\n unitY = Math.sin(angle);\n\n if (splitLineModel.get('show')) {\n var distance = splitLineDistance ? splitLineDistance + axisLineWidth : axisLineWidth;\n var splitLine = new graphic.Line({\n shape: {\n x1: unitX * (r - distance) + cx,\n y1: unitY * (r - distance) + cy,\n x2: unitX * (r - splitLineLen - distance) + cx,\n y2: unitY * (r - splitLineLen - distance) + cy\n },\n style: splitLineStyle,\n silent: true\n });\n\n if (splitLineStyle.stroke === 'auto') {\n splitLine.setStyle({\n stroke: getColor(i / splitNumber)\n });\n }\n\n group.add(splitLine);\n }\n\n if (labelModel.get('show')) {\n var distance = labelModel.get('distance') + splitLineDistance;\n var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\n var autoColor = getColor(i / splitNumber);\n group.add(new graphic.Text({\n style: createTextStyle(labelModel, {\n text: label,\n x: unitX * (r - splitLineLen - distance) + cx,\n y: unitY * (r - splitLineLen - distance) + cy,\n verticalAlign: unitY < -0.8 ? 'top' : unitY > 0.8 ? 'bottom' : 'middle',\n align: unitX < -0.4 ? 'left' : unitX > 0.4 ? 'right' : 'center'\n }, {\n inheritColor: autoColor\n }),\n silent: true\n }));\n }\n\n if (tickModel.get('show') && i !== splitNumber) {\n var distance = tickModel.get('distance');\n distance = distance ? distance + axisLineWidth : axisLineWidth;\n\n for (var j = 0; j <= subSplitNumber; j++) {\n unitX = Math.cos(angle);\n unitY = Math.sin(angle);\n var tickLine = new graphic.Line({\n shape: {\n x1: unitX * (r - distance) + cx,\n y1: unitY * (r - distance) + cy,\n x2: unitX * (r - tickLen - distance) + cx,\n y2: unitY * (r - tickLen - distance) + cy\n },\n silent: true,\n style: tickLineStyle\n });\n\n if (tickLineStyle.stroke === 'auto') {\n tickLine.setStyle({\n stroke: getColor((i + j / subSplitNumber) / splitNumber)\n });\n }\n\n group.add(tickLine);\n angle += subStep;\n }\n\n angle -= subStep;\n } else {\n angle += step;\n }\n }\n };\n\n GaugeView.prototype._renderPointer = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n var group = this.group;\n var oldData = this._data;\n var oldProgressData = this._progressEls;\n var progressList = [];\n var showPointer = seriesModel.get(['pointer', 'show']);\n var progressModel = seriesModel.getModel('progress');\n var showProgress = progressModel.get('show');\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n var valueExtent = [minVal, maxVal];\n var angleExtent = [startAngle, endAngle];\n\n function createPointer(idx, angle) {\n var itemModel = data.getItemModel(idx);\n var pointerModel = itemModel.getModel('pointer');\n var pointerWidth = parsePercent(pointerModel.get('width'), posInfo.r);\n var pointerLength = parsePercent(pointerModel.get('length'), posInfo.r);\n var pointerStr = seriesModel.get(['pointer', 'icon']);\n var pointerOffset = pointerModel.get('offsetCenter');\n var pointerOffsetX = parsePercent(pointerOffset[0], posInfo.r);\n var pointerOffsetY = parsePercent(pointerOffset[1], posInfo.r);\n var pointerKeepAspect = pointerModel.get('keepAspect');\n var pointer;\n\n if (pointerStr) {\n pointer = createSymbol(pointerStr, pointerOffsetX - pointerWidth / 2, pointerOffsetY - pointerLength, pointerWidth, pointerLength, null, pointerKeepAspect);\n } else {\n pointer = new PointerPath({\n shape: {\n angle: -Math.PI / 2,\n width: pointerWidth,\n r: pointerLength,\n x: pointerOffsetX,\n y: pointerOffsetY\n }\n });\n }\n\n pointer.rotation = -(angle + Math.PI / 2);\n pointer.x = posInfo.cx;\n pointer.y = posInfo.cy;\n return pointer;\n }\n\n function createProgress(idx, endAngle) {\n var roundCap = progressModel.get('roundCap');\n var ProgressPath = roundCap ? Sausage : graphic.Sector;\n var isOverlap = progressModel.get('overlap');\n var progressWidth = isOverlap ? progressModel.get('width') : axisLineWidth / data.count();\n var r0 = isOverlap ? posInfo.r - progressWidth : posInfo.r - (idx + 1) * progressWidth;\n var r = isOverlap ? posInfo.r : posInfo.r - idx * progressWidth;\n var progress = new ProgressPath({\n shape: {\n startAngle: startAngle,\n endAngle: endAngle,\n cx: posInfo.cx,\n cy: posInfo.cy,\n clockwise: clockwise,\n r0: r0,\n r: r\n }\n });\n isOverlap && (progress.z2 = maxVal - data.get(valueDim, idx) % maxVal);\n return progress;\n }\n\n if (showProgress || showPointer) {\n data.diff(oldData).add(function (idx) {\n if (showPointer) {\n var pointer = createPointer(idx, startAngle);\n graphic.initProps(pointer, {\n rotation: -(linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true) + Math.PI / 2)\n }, seriesModel);\n group.add(pointer);\n data.setItemGraphicEl(idx, pointer);\n }\n\n if (showProgress) {\n var progress = createProgress(idx, startAngle);\n var isClip = progressModel.get('clip');\n graphic.initProps(progress, {\n shape: {\n endAngle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, isClip)\n }\n }, seriesModel);\n group.add(progress);\n progressList[idx] = progress;\n }\n }).update(function (newIdx, oldIdx) {\n if (showPointer) {\n var previousPointer = oldData.getItemGraphicEl(oldIdx);\n var previousRotate = previousPointer ? previousPointer.rotation : startAngle;\n var pointer = createPointer(newIdx, previousRotate);\n pointer.rotation = previousRotate;\n graphic.updateProps(pointer, {\n rotation: -(linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true) + Math.PI / 2)\n }, seriesModel);\n group.add(pointer);\n data.setItemGraphicEl(newIdx, pointer);\n }\n\n if (showProgress) {\n var previousProgress = oldProgressData[oldIdx];\n var previousEndAngle = previousProgress ? previousProgress.shape.endAngle : startAngle;\n var progress = createProgress(newIdx, previousEndAngle);\n var isClip = progressModel.get('clip');\n graphic.updateProps(progress, {\n shape: {\n endAngle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, isClip)\n }\n }, seriesModel);\n group.add(progress);\n progressList[newIdx] = progress;\n }\n }).execute();\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n\n if (showPointer) {\n var pointer = data.getItemGraphicEl(idx);\n pointer.useStyle(data.getItemVisual(idx, 'style'));\n pointer.setStyle(itemModel.getModel(['pointer', 'itemStyle']).getItemStyle());\n\n if (pointer.style.fill === 'auto') {\n pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\n }\n\n pointer.z2EmphasisLift = 0;\n setStatesStylesFromModel(pointer, itemModel);\n enableHoverEmphasis(pointer, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n }\n\n if (showProgress) {\n var progress = progressList[idx];\n progress.useStyle(data.getItemVisual(idx, 'style'));\n progress.setStyle(itemModel.getModel(['progress', 'itemStyle']).getItemStyle());\n progress.z2EmphasisLift = 0;\n setStatesStylesFromModel(progress, itemModel);\n enableHoverEmphasis(progress, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n }\n });\n this._progressEls = progressList;\n }\n };\n\n GaugeView.prototype._renderAnchor = function (seriesModel, posInfo) {\n var anchorModel = seriesModel.getModel('anchor');\n var showAnchor = anchorModel.get('show');\n\n if (showAnchor) {\n var anchorSize = anchorModel.get('size');\n var anchorType = anchorModel.get('icon');\n var offsetCenter = anchorModel.get('offsetCenter');\n var anchorKeepAspect = anchorModel.get('keepAspect');\n var anchor = createSymbol(anchorType, posInfo.cx - anchorSize / 2 + parsePercent(offsetCenter[0], posInfo.r), posInfo.cy - anchorSize / 2 + parsePercent(offsetCenter[1], posInfo.r), anchorSize, anchorSize, null, anchorKeepAspect);\n anchor.z2 = anchorModel.get('showAbove') ? 1 : 0;\n anchor.setStyle(anchorModel.getModel('itemStyle').getItemStyle());\n this.group.add(anchor);\n }\n };\n\n GaugeView.prototype._renderTitleAndDetail = function (seriesModel, ecModel, api, getColor, posInfo) {\n var _this = this;\n\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var minVal = +seriesModel.get('min');\n var maxVal = +seriesModel.get('max');\n var contentGroup = new graphic.Group();\n var newTitleEls = [];\n var newDetailEls = [];\n var hasAnimation = seriesModel.isAnimationEnabled();\n data.diff(this._data).add(function (idx) {\n newTitleEls[idx] = new graphic.Text({\n silent: true\n });\n newDetailEls[idx] = new graphic.Text({\n silent: true\n });\n }).update(function (idx, oldIdx) {\n newTitleEls[idx] = _this._titleEls[oldIdx];\n newDetailEls[idx] = _this._detailEls[oldIdx];\n }).execute();\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n var value = data.get(valueDim, idx);\n var itemGroup = new graphic.Group();\n var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n var itemTitleModel = itemModel.getModel('title');\n\n if (itemTitleModel.get('show')) {\n var titleOffsetCenter = itemTitleModel.get('offsetCenter');\n var titleX = posInfo.cx + parsePercent(titleOffsetCenter[0], posInfo.r);\n var titleY = posInfo.cy + parsePercent(titleOffsetCenter[1], posInfo.r);\n var labelEl = newTitleEls[idx];\n labelEl.attr({\n style: createTextStyle(itemTitleModel, {\n x: titleX,\n y: titleY,\n text: data.getName(idx),\n align: 'center',\n verticalAlign: 'middle'\n }, {\n inheritColor: autoColor\n })\n });\n itemGroup.add(labelEl);\n }\n\n var itemDetailModel = itemModel.getModel('detail');\n\n if (itemDetailModel.get('show')) {\n var detailOffsetCenter = itemDetailModel.get('offsetCenter');\n var detailX = posInfo.cx + parsePercent(detailOffsetCenter[0], posInfo.r);\n var detailY = posInfo.cy + parsePercent(detailOffsetCenter[1], posInfo.r);\n var width = parsePercent(itemDetailModel.get('width'), posInfo.r);\n var height = parsePercent(itemDetailModel.get('height'), posInfo.r);\n var detailColor = seriesModel.get(['progress', 'show']) ? data.getItemVisual(idx, 'style').fill : autoColor;\n var labelEl = newDetailEls[idx];\n var formatter_1 = itemDetailModel.get('formatter');\n labelEl.attr({\n style: createTextStyle(itemDetailModel, {\n x: detailX,\n y: detailY,\n text: formatLabel(value, formatter_1),\n width: isNaN(width) ? null : width,\n height: isNaN(height) ? null : height,\n align: 'center',\n verticalAlign: 'middle'\n }, {\n inheritColor: detailColor\n })\n });\n setLabelValueAnimation(labelEl, {\n normal: itemDetailModel\n }, value, function (value) {\n return formatLabel(value, formatter_1);\n });\n hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel, {\n getFormattedLabel: function (labelDataIndex, status, dataType, labelDimIndex, fmt, extendParams) {\n return formatLabel(extendParams ? extendParams.interpolatedValue : value, formatter_1);\n }\n });\n itemGroup.add(labelEl);\n }\n\n contentGroup.add(itemGroup);\n });\n this.group.add(contentGroup);\n this._titleEls = newTitleEls;\n this._detailEls = newDetailEls;\n };\n\n GaugeView.type = 'gauge';\n return GaugeView;\n}(ChartView);\n\nexport default GaugeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport SeriesModel from '../../model/Series';\n\nvar GaugeSeriesModel = function (_super) {\n __extends(GaugeSeriesModel, _super);\n\n function GaugeSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GaugeSeriesModel.type;\n _this.visualStyleAccessPath = 'itemStyle';\n _this.useColorPaletteOnData = true;\n return _this;\n }\n\n GaugeSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createListSimply(this, ['value']);\n };\n\n GaugeSeriesModel.type = 'series.gauge';\n GaugeSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n center: ['50%', '50%'],\n legendHoverLink: true,\n radius: '75%',\n startAngle: 225,\n endAngle: -45,\n clockwise: true,\n min: 0,\n max: 100,\n splitNumber: 10,\n axisLine: {\n show: true,\n roundCap: false,\n lineStyle: {\n color: [[1, '#E6EBF8']],\n width: 10\n }\n },\n progress: {\n show: false,\n overlap: true,\n width: 10,\n roundCap: false,\n clip: true\n },\n splitLine: {\n show: true,\n length: 10,\n distance: 10,\n lineStyle: {\n color: '#63677A',\n width: 3,\n type: 'solid'\n }\n },\n axisTick: {\n show: true,\n splitNumber: 5,\n length: 6,\n distance: 10,\n lineStyle: {\n color: '#63677A',\n width: 1,\n type: 'solid'\n }\n },\n axisLabel: {\n show: true,\n distance: 15,\n color: '#464646',\n fontSize: 12\n },\n pointer: {\n icon: null,\n offsetCenter: [0, 0],\n show: true,\n length: '60%',\n width: 6,\n keepAspect: false\n },\n anchor: {\n show: false,\n showAbove: false,\n size: 6,\n icon: 'circle',\n offsetCenter: [0, 0],\n keepAspect: false,\n itemStyle: {\n color: '#fff',\n borderWidth: 0,\n borderColor: '#5470c6'\n }\n },\n title: {\n show: true,\n offsetCenter: [0, '20%'],\n color: '#464646',\n fontSize: 16,\n valueAnimation: false\n },\n detail: {\n show: true,\n backgroundColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n borderColor: '#ccc',\n width: 100,\n height: null,\n padding: [5, 10],\n offsetCenter: [0, '40%'],\n color: '#464646',\n fontSize: 30,\n fontWeight: 'bold',\n lineHeight: 30,\n valueAnimation: false\n }\n };\n return GaugeSeriesModel;\n}(SeriesModel);\n\nexport default GaugeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport GaugeView from './GaugeView';\nimport GaugeSeriesModel from './GaugeSeries';\nexport function install(registers) {\n registers.registerChartView(GaugeView);\n registers.registerSeriesModel(GaugeSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nvar opacityAccessPath = ['itemStyle', 'opacity'];\n\nvar FunnelPiece = function (_super) {\n __extends(FunnelPiece, _super);\n\n function FunnelPiece(data, idx) {\n var _this = _super.call(this) || this;\n\n var polygon = _this;\n var labelLine = new graphic.Polyline();\n var text = new graphic.Text();\n polygon.setTextContent(text);\n\n _this.setTextGuideLine(labelLine);\n\n _this.updateData(data, idx, true);\n\n return _this;\n }\n\n FunnelPiece.prototype.updateData = function (data, idx, firstCreate) {\n var polygon = this;\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var emphasisModel = itemModel.getModel('emphasis');\n var opacity = itemModel.get(opacityAccessPath);\n opacity = opacity == null ? 1 : opacity;\n polygon.useStyle(data.getItemVisual(idx, 'style'));\n polygon.style.lineJoin = 'round';\n\n if (firstCreate) {\n polygon.setShape({\n points: layout.points\n });\n polygon.style.opacity = 0;\n graphic.initProps(polygon, {\n style: {\n opacity: opacity\n }\n }, seriesModel, idx);\n } else {\n graphic.updateProps(polygon, {\n style: {\n opacity: opacity\n },\n shape: {\n points: layout.points\n }\n }, seriesModel, idx);\n }\n\n setStatesStylesFromModel(polygon, itemModel);\n\n this._updateLabel(data, idx);\n\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n };\n\n FunnelPiece.prototype._updateLabel = function (data, idx) {\n var polygon = this;\n var labelLine = this.getTextGuideLine();\n var labelText = polygon.getTextContent();\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var labelLayout = layout.label;\n var style = data.getItemVisual(idx, 'style');\n var visualColor = style.fill;\n setLabelStyle(labelText, getLabelStatesModels(itemModel), {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n defaultOpacity: style.opacity,\n defaultText: data.getName(idx)\n }, {\n normal: {\n align: labelLayout.textAlign,\n verticalAlign: labelLayout.verticalAlign\n }\n });\n polygon.setTextConfig({\n local: true,\n inside: !!labelLayout.inside,\n insideStroke: visualColor,\n outsideFill: visualColor\n });\n var linePoints = labelLayout.linePoints;\n labelLine.setShape({\n points: linePoints\n });\n polygon.textGuideLineConfig = {\n anchor: linePoints ? new graphic.Point(linePoints[0][0], linePoints[0][1]) : null\n };\n graphic.updateProps(labelText, {\n style: {\n x: labelLayout.x,\n y: labelLayout.y\n }\n }, seriesModel, idx);\n labelText.attr({\n rotation: labelLayout.rotation,\n originX: labelLayout.x,\n originY: labelLayout.y,\n z2: 10\n });\n setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), {\n stroke: visualColor\n });\n };\n\n return FunnelPiece;\n}(graphic.Polygon);\n\nvar FunnelView = function (_super) {\n __extends(FunnelView, _super);\n\n function FunnelView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = FunnelView.type;\n _this.ignoreLabelLineUpdate = true;\n return _this;\n }\n\n FunnelView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n data.diff(oldData).add(function (idx) {\n var funnelPiece = new FunnelPiece(data, idx);\n data.setItemGraphicEl(idx, funnelPiece);\n group.add(funnelPiece);\n }).update(function (newIdx, oldIdx) {\n var piece = oldData.getItemGraphicEl(oldIdx);\n piece.updateData(data, newIdx);\n group.add(piece);\n data.setItemGraphicEl(newIdx, piece);\n }).remove(function (idx) {\n var piece = oldData.getItemGraphicEl(idx);\n graphic.removeElementWithFadeOut(piece, seriesModel, idx);\n }).execute();\n this._data = data;\n };\n\n FunnelView.prototype.remove = function () {\n this.group.removeAll();\n this._data = null;\n };\n\n FunnelView.prototype.dispose = function () {};\n\n FunnelView.type = 'funnel';\n return FunnelView;\n}(ChartView);\n\nexport default FunnelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListSimply from '../helper/createListSimply';\nimport { defaultEmphasis } from '../../util/model';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar FunnelSeriesModel = function (_super) {\n __extends(FunnelSeriesModel, _super);\n\n function FunnelSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = FunnelSeriesModel.type;\n _this.useColorPaletteOnData = true;\n return _this;\n }\n\n FunnelSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments);\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n this._defaultLabelLine(option);\n };\n\n FunnelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createListSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n };\n\n FunnelSeriesModel.prototype._defaultLabelLine = function (option) {\n defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine;\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n };\n\n FunnelSeriesModel.prototype.getDataParams = function (dataIndex) {\n var data = this.getData();\n\n var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n var valueDim = data.mapDimension('value');\n var sum = data.getSum(valueDim);\n params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n params.$vars.push('percent');\n return params;\n };\n\n FunnelSeriesModel.type = 'series.funnel';\n FunnelSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n minSize: '0%',\n maxSize: '100%',\n sort: 'descending',\n orient: 'vertical',\n gap: 0,\n funnelAlign: 'center',\n label: {\n show: true,\n position: 'outer'\n },\n labelLine: {\n show: true,\n length: 20,\n lineStyle: {\n width: 1\n }\n },\n itemStyle: {\n borderColor: '#fff',\n borderWidth: 1\n },\n emphasis: {\n label: {\n show: true\n }\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n }\n };\n return FunnelSeriesModel;\n}(SeriesModel);\n\nexport default FunnelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nimport { parsePercent, linearMap } from '../../util/number';\n\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction getSortedIndices(data, sort) {\n var valueDim = data.mapDimension('value');\n var valueArr = data.mapArray(valueDim, function (val) {\n return val;\n });\n var indices = [];\n var isAscending = sort === 'ascending';\n\n for (var i = 0, len = data.count(); i < len; i++) {\n indices[i] = i;\n }\n\n if (typeof sort === 'function') {\n indices.sort(sort);\n } else if (sort !== 'none') {\n indices.sort(function (a, b) {\n return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n });\n }\n\n return indices;\n}\n\nfunction labelLayout(data) {\n var seriesModel = data.hostModel;\n var orient = seriesModel.get('orient');\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n var labelPosition = labelModel.get('position');\n var labelLineModel = itemModel.getModel('labelLine');\n var layout = data.getItemLayout(idx);\n var points = layout.points;\n var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center' || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\n var textAlign;\n var textX;\n var textY;\n var linePoints;\n\n if (isLabelInside) {\n if (labelPosition === 'insideLeft') {\n textX = (points[0][0] + points[3][0]) / 2 + 5;\n textY = (points[0][1] + points[3][1]) / 2;\n textAlign = 'left';\n } else if (labelPosition === 'insideRight') {\n textX = (points[1][0] + points[2][0]) / 2 - 5;\n textY = (points[1][1] + points[2][1]) / 2;\n textAlign = 'right';\n } else {\n textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n textAlign = 'center';\n }\n\n linePoints = [[textX, textY], [textX, textY]];\n } else {\n var x1 = void 0;\n var y1 = void 0;\n var x2 = void 0;\n var y2 = void 0;\n var labelLineLen = labelLineModel.get('length');\n\n if (process.env.NODE_ENV !== 'production') {\n if (orient === 'vertical' && ['top', 'bottom'].indexOf(labelPosition) > -1) {\n labelPosition = 'left';\n console.warn('Position error: Funnel chart on vertical orient dose not support top and bottom.');\n }\n\n if (orient === 'horizontal' && ['left', 'right'].indexOf(labelPosition) > -1) {\n labelPosition = 'bottom';\n console.warn('Position error: Funnel chart on horizontal orient dose not support left and right.');\n }\n }\n\n if (labelPosition === 'left') {\n x1 = (points[3][0] + points[0][0]) / 2;\n y1 = (points[3][1] + points[0][1]) / 2;\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else if (labelPosition === 'right') {\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'left';\n } else if (labelPosition === 'top') {\n x1 = (points[3][0] + points[0][0]) / 2;\n y1 = (points[3][1] + points[0][1]) / 2;\n y2 = y1 - labelLineLen;\n textY = y2 - 5;\n textAlign = 'center';\n } else if (labelPosition === 'bottom') {\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else if (labelPosition === 'rightTop') {\n x1 = orient === 'horizontal' ? points[3][0] : points[1][0];\n y1 = orient === 'horizontal' ? points[3][1] : points[1][1];\n\n if (orient === 'horizontal') {\n y2 = y1 - labelLineLen;\n textY = y2 - 5;\n textAlign = 'center';\n } else {\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'top';\n }\n } else if (labelPosition === 'rightBottom') {\n x1 = points[2][0];\n y1 = points[2][1];\n\n if (orient === 'horizontal') {\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else {\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'bottom';\n }\n } else if (labelPosition === 'leftTop') {\n x1 = points[0][0];\n y1 = orient === 'horizontal' ? points[0][1] : points[1][1];\n\n if (orient === 'horizontal') {\n y2 = y1 - labelLineLen;\n textY = y2 - 5;\n textAlign = 'center';\n } else {\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n }\n } else if (labelPosition === 'leftBottom') {\n x1 = orient === 'horizontal' ? points[1][0] : points[3][0];\n y1 = orient === 'horizontal' ? points[1][1] : points[2][1];\n\n if (orient === 'horizontal') {\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else {\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n }\n } else {\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n\n if (orient === 'horizontal') {\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else {\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'left';\n }\n }\n\n if (orient === 'horizontal') {\n x2 = x1;\n textX = x2;\n } else {\n y2 = y1;\n textY = y2;\n }\n\n linePoints = [[x1, y1], [x2, y2]];\n }\n\n layout.label = {\n linePoints: linePoints,\n x: textX,\n y: textY,\n verticalAlign: 'middle',\n textAlign: textAlign,\n inside: isLabelInside\n };\n });\n}\n\nexport default function funnelLayout(ecModel, api) {\n ecModel.eachSeriesByType('funnel', function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var sort = seriesModel.get('sort');\n var viewRect = getViewRect(seriesModel, api);\n var orient = seriesModel.get('orient');\n var viewWidth = viewRect.width;\n var viewHeight = viewRect.height;\n var indices = getSortedIndices(data, sort);\n var x = viewRect.x;\n var y = viewRect.y;\n var sizeExtent = orient === 'horizontal' ? [parsePercent(seriesModel.get('minSize'), viewHeight), parsePercent(seriesModel.get('maxSize'), viewHeight)] : [parsePercent(seriesModel.get('minSize'), viewWidth), parsePercent(seriesModel.get('maxSize'), viewWidth)];\n var dataExtent = data.getDataExtent(valueDim);\n var min = seriesModel.get('min');\n var max = seriesModel.get('max');\n\n if (min == null) {\n min = Math.min(dataExtent[0], 0);\n }\n\n if (max == null) {\n max = dataExtent[1];\n }\n\n var funnelAlign = seriesModel.get('funnelAlign');\n var gap = seriesModel.get('gap');\n var viewSize = orient === 'horizontal' ? viewWidth : viewHeight;\n var itemSize = (viewSize - gap * (data.count() - 1)) / data.count();\n\n var getLinePoints = function (idx, offset) {\n if (orient === 'horizontal') {\n var val_1 = data.get(valueDim, idx) || 0;\n var itemHeight = linearMap(val_1, [min, max], sizeExtent, true);\n var y0 = void 0;\n\n switch (funnelAlign) {\n case 'top':\n y0 = y;\n break;\n\n case 'center':\n y0 = y + (viewHeight - itemHeight) / 2;\n break;\n\n case 'bottom':\n y0 = y + (viewHeight - itemHeight);\n break;\n }\n\n return [[offset, y0], [offset, y0 + itemHeight]];\n }\n\n var val = data.get(valueDim, idx) || 0;\n var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n var x0;\n\n switch (funnelAlign) {\n case 'left':\n x0 = x;\n break;\n\n case 'center':\n x0 = x + (viewWidth - itemWidth) / 2;\n break;\n\n case 'right':\n x0 = x + viewWidth - itemWidth;\n break;\n }\n\n return [[x0, offset], [x0 + itemWidth, offset]];\n };\n\n if (sort === 'ascending') {\n itemSize = -itemSize;\n gap = -gap;\n\n if (orient === 'horizontal') {\n x += viewWidth;\n } else {\n y += viewHeight;\n }\n\n indices = indices.reverse();\n }\n\n for (var i = 0; i < indices.length; i++) {\n var idx = indices[i];\n var nextIdx = indices[i + 1];\n var itemModel = data.getItemModel(idx);\n\n if (orient === 'horizontal') {\n var width = itemModel.get(['itemStyle', 'width']);\n\n if (width == null) {\n width = itemSize;\n } else {\n width = parsePercent(width, viewWidth);\n\n if (sort === 'ascending') {\n width = -width;\n }\n }\n\n var start = getLinePoints(idx, x);\n var end = getLinePoints(nextIdx, x + width);\n x += width + gap;\n data.setItemLayout(idx, {\n points: start.concat(end.slice().reverse())\n });\n } else {\n var height = itemModel.get(['itemStyle', 'height']);\n\n if (height == null) {\n height = itemSize;\n } else {\n height = parsePercent(height, viewHeight);\n\n if (sort === 'ascending') {\n height = -height;\n }\n }\n\n var start = getLinePoints(idx, y);\n var end = getLinePoints(nextIdx, y + height);\n y += height + gap;\n data.setItemLayout(idx, {\n points: start.concat(end.slice().reverse())\n });\n }\n }\n\n labelLayout(data);\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport FunnelView from './FunnelView';\nimport FunnelSeriesModel from './FunnelSeries';\nimport funnelLayout from './funnelLayout';\nimport dataFilter from '../../processor/dataFilter';\nexport function install(registers) {\n registers.registerChartView(FunnelView);\n registers.registerSeriesModel(FunnelSeriesModel);\n registers.registerLayout(funnelLayout);\n registers.registerProcessor(dataFilter('funnel'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { numericToNumber } from '../../util/number';\nimport { eqNaN } from 'zrender/lib/core/util';\nvar DEFAULT_SMOOTH = 0.3;\n\nvar ParallelView = function (_super) {\n __extends(ParallelView, _super);\n\n function ParallelView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelView.type;\n _this._dataGroup = new graphic.Group();\n _this._initialized = false;\n return _this;\n }\n\n ParallelView.prototype.init = function () {\n this.group.add(this._dataGroup);\n };\n\n ParallelView.prototype.render = function (seriesModel, ecModel, api, payload) {\n var dataGroup = this._dataGroup;\n var data = seriesModel.getData();\n var oldData = this._data;\n var coordSys = seriesModel.coordinateSystem;\n var dimensions = coordSys.dimensions;\n var seriesScope = makeSeriesScope(seriesModel);\n data.diff(oldData).add(add).update(update).remove(remove).execute();\n\n function add(newDataIndex) {\n var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\n updateElCommon(line, data, newDataIndex, seriesScope);\n }\n\n function update(newDataIndex, oldDataIndex) {\n var line = oldData.getItemGraphicEl(oldDataIndex);\n var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\n data.setItemGraphicEl(newDataIndex, line);\n graphic.updateProps(line, {\n shape: {\n points: points\n }\n }, seriesModel, newDataIndex);\n updateElCommon(line, data, newDataIndex, seriesScope);\n }\n\n function remove(oldDataIndex) {\n var line = oldData.getItemGraphicEl(oldDataIndex);\n dataGroup.remove(line);\n }\n\n if (!this._initialized) {\n this._initialized = true;\n var clipPath = createGridClipShape(coordSys, seriesModel, function () {\n setTimeout(function () {\n dataGroup.removeClipPath();\n });\n });\n dataGroup.setClipPath(clipPath);\n }\n\n this._data = data;\n };\n\n ParallelView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n this._initialized = true;\n this._data = null;\n\n this._dataGroup.removeAll();\n };\n\n ParallelView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n var data = seriesModel.getData();\n var coordSys = seriesModel.coordinateSystem;\n var dimensions = coordSys.dimensions;\n var seriesScope = makeSeriesScope(seriesModel);\n\n for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\n var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\n line.incremental = true;\n updateElCommon(line, data, dataIndex, seriesScope);\n }\n };\n\n ParallelView.prototype.remove = function () {\n this._dataGroup && this._dataGroup.removeAll();\n this._data = null;\n };\n\n ParallelView.type = 'parallel';\n return ParallelView;\n}(ChartView);\n\nfunction createGridClipShape(coordSys, seriesModel, cb) {\n var parallelModel = coordSys.model;\n var rect = coordSys.getRect();\n var rectEl = new graphic.Rect({\n shape: {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n }\n });\n var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\n rectEl.setShape(dim, 0);\n graphic.initProps(rectEl, {\n shape: {\n width: rect.width,\n height: rect.height\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nfunction createLinePoints(data, dataIndex, dimensions, coordSys) {\n var points = [];\n\n for (var i = 0; i < dimensions.length; i++) {\n var dimName = dimensions[i];\n var value = data.get(data.mapDimension(dimName), dataIndex);\n\n if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\n points.push(coordSys.dataToPoint(value, dimName));\n }\n }\n\n return points;\n}\n\nfunction addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\n var points = createLinePoints(data, dataIndex, dimensions, coordSys);\n var line = new graphic.Polyline({\n shape: {\n points: points\n },\n z2: 10\n });\n dataGroup.add(line);\n data.setItemGraphicEl(dataIndex, line);\n return line;\n}\n\nfunction makeSeriesScope(seriesModel) {\n var smooth = seriesModel.get('smooth', true);\n smooth === true && (smooth = DEFAULT_SMOOTH);\n smooth = numericToNumber(smooth);\n eqNaN(smooth) && (smooth = 0);\n return {\n smooth: smooth\n };\n}\n\nfunction updateElCommon(el, data, dataIndex, seriesScope) {\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\n el.style.fill = null;\n el.setShape('smooth', seriesScope.smooth);\n var itemModel = data.getItemModel(dataIndex);\n var emphasisModel = itemModel.getModel('emphasis');\n setStatesStylesFromModel(el, itemModel, 'lineStyle');\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n}\n\nfunction isEmptyValue(val, axisType) {\n return axisType === 'category' ? val == null : val == null || isNaN(val);\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, bind } from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar ParallelSeriesModel = function (_super) {\n __extends(ParallelSeriesModel, _super);\n\n function ParallelSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelSeriesModel.type;\n _this.visualStyleAccessPath = 'lineStyle';\n _this.visualDrawType = 'stroke';\n return _this;\n }\n\n ParallelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: bind(makeDefaultEncode, null, this)\n });\n };\n\n ParallelSeriesModel.prototype.getRawIndicesByActiveState = function (activeState) {\n var coordSys = this.coordinateSystem;\n var data = this.getData();\n var indices = [];\n coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\n if (activeState === theActiveState) {\n indices.push(data.getRawIndex(dataIndex));\n }\n });\n return indices;\n };\n\n ParallelSeriesModel.type = 'series.parallel';\n ParallelSeriesModel.dependencies = ['parallel'];\n ParallelSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'parallel',\n parallelIndex: 0,\n label: {\n show: false\n },\n inactiveOpacity: 0.05,\n activeOpacity: 1,\n lineStyle: {\n width: 1,\n opacity: 0.45,\n type: 'solid'\n },\n emphasis: {\n label: {\n show: false\n }\n },\n progressive: 500,\n smooth: false,\n animationEasing: 'linear'\n };\n return ParallelSeriesModel;\n}(SeriesModel);\n\nfunction makeDefaultEncode(seriesModel) {\n var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n\n if (!parallelModel) {\n return;\n }\n\n var encodeDefine = {};\n each(parallelModel.dimensions, function (axisDim) {\n var dataDimIndex = convertDimNameToNumber(axisDim);\n encodeDefine[axisDim] = dataDimIndex;\n });\n return encodeDefine;\n}\n\nfunction convertDimNameToNumber(dimName) {\n return +dimName.replace('dim', '');\n}\n\nexport default ParallelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar opacityAccessPath = ['lineStyle', 'opacity'];\nvar parallelVisual = {\n seriesType: 'parallel',\n reset: function (seriesModel, ecModel) {\n var coordSys = seriesModel.coordinateSystem;\n var opacityMap = {\n normal: seriesModel.get(['lineStyle', 'opacity']),\n active: seriesModel.get('activeOpacity'),\n inactive: seriesModel.get('inactiveOpacity')\n };\n return {\n progress: function (params, data) {\n coordSys.eachActiveState(data, function (activeState, dataIndex) {\n var opacity = opacityMap[activeState];\n\n if (activeState === 'normal' && data.hasItemOption) {\n var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath, true);\n itemOpacity != null && (opacity = itemOpacity);\n }\n\n var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n existsStyle.opacity = opacity;\n }, params.start, params.end);\n }\n };\n }\n};\nexport default parallelVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function parallelPreprocessor(option) {\n createParallelIfNeeded(option);\n mergeAxisOptionFromParallel(option);\n}\n\nfunction createParallelIfNeeded(option) {\n if (option.parallel) {\n return;\n }\n\n var hasParallelSeries = false;\n zrUtil.each(option.series, function (seriesOpt) {\n if (seriesOpt && seriesOpt.type === 'parallel') {\n hasParallelSeries = true;\n }\n });\n\n if (hasParallelSeries) {\n option.parallel = [{}];\n }\n}\n\nfunction mergeAxisOptionFromParallel(option) {\n var axes = modelUtil.normalizeToArray(option.parallelAxis);\n zrUtil.each(axes, function (axisOption) {\n if (!zrUtil.isObject(axisOption)) {\n return;\n }\n\n var parallelIndex = axisOption.parallelIndex || 0;\n var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];\n\n if (parallelOption && parallelOption.parallelAxisDefault) {\n zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { each, bind, extend } from 'zrender/lib/core/util';\nimport { createOrUpdate } from '../../util/throttle';\nvar CLICK_THRESHOLD = 5;\n\nvar ParallelView = function (_super) {\n __extends(ParallelView, _super);\n\n function ParallelView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelView.type;\n return _this;\n }\n\n ParallelView.prototype.render = function (parallelModel, ecModel, api) {\n this._model = parallelModel;\n this._api = api;\n\n if (!this._handlers) {\n this._handlers = {};\n each(handlers, function (handler, eventName) {\n api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));\n }, this);\n }\n\n createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\n };\n\n ParallelView.prototype.dispose = function (ecModel, api) {\n each(this._handlers, function (handler, eventName) {\n api.getZr().off(eventName, handler);\n });\n this._handlers = null;\n };\n\n ParallelView.prototype._throttledDispatchExpand = function (opt) {\n this._dispatchExpand(opt);\n };\n\n ParallelView.prototype._dispatchExpand = function (opt) {\n opt && this._api.dispatchAction(extend({\n type: 'parallelAxisExpand'\n }, opt));\n };\n\n ParallelView.type = 'parallel';\n return ParallelView;\n}(ComponentView);\n\nvar handlers = {\n mousedown: function (e) {\n if (checkTrigger(this, 'click')) {\n this._mouseDownPoint = [e.offsetX, e.offsetY];\n }\n },\n mouseup: function (e) {\n var mouseDownPoint = this._mouseDownPoint;\n\n if (checkTrigger(this, 'click') && mouseDownPoint) {\n var point = [e.offsetX, e.offsetY];\n var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2);\n\n if (dist > CLICK_THRESHOLD) {\n return;\n }\n\n var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n\n result.behavior !== 'none' && this._dispatchExpand({\n axisExpandWindow: result.axisExpandWindow\n });\n }\n\n this._mouseDownPoint = null;\n },\n mousemove: function (e) {\n if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\n return;\n }\n\n var model = this._model;\n var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n var behavior = result.behavior;\n behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\n\n this._throttledDispatchExpand(behavior === 'none' ? null : {\n axisExpandWindow: result.axisExpandWindow,\n animation: behavior === 'jump' ? null : {\n duration: 0\n }\n });\n }\n};\n\nfunction checkTrigger(view, triggerOn) {\n var model = view._model;\n return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\n\nvar ParallelModel = function (_super) {\n __extends(ParallelModel, _super);\n\n function ParallelModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelModel.type;\n return _this;\n }\n\n ParallelModel.prototype.init = function () {\n _super.prototype.init.apply(this, arguments);\n\n this.mergeOption({});\n };\n\n ParallelModel.prototype.mergeOption = function (newOption) {\n var thisOption = this.option;\n newOption && zrUtil.merge(thisOption, newOption, true);\n\n this._initDimensions();\n };\n\n ParallelModel.prototype.contains = function (model, ecModel) {\n var parallelIndex = model.get('parallelIndex');\n return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n };\n\n ParallelModel.prototype.setAxisExpand = function (opt) {\n zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) {\n if (opt.hasOwnProperty(name)) {\n this.option[name] = opt[name];\n }\n }, this);\n };\n\n ParallelModel.prototype._initDimensions = function () {\n var dimensions = this.dimensions = [];\n var parallelAxisIndex = this.parallelAxisIndex = [];\n var axisModels = zrUtil.filter(this.ecModel.queryComponents({\n mainType: 'parallelAxis'\n }), function (axisModel) {\n return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\n }, this);\n zrUtil.each(axisModels, function (axisModel) {\n dimensions.push('dim' + axisModel.get('dim'));\n parallelAxisIndex.push(axisModel.componentIndex);\n });\n };\n\n ParallelModel.type = 'parallel';\n ParallelModel.dependencies = ['parallelAxis'];\n ParallelModel.layoutMode = 'box';\n ParallelModel.defaultOption = {\n zlevel: 0,\n z: 0,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n layout: 'horizontal',\n axisExpandable: false,\n axisExpandCenter: null,\n axisExpandCount: 0,\n axisExpandWidth: 50,\n axisExpandRate: 17,\n axisExpandDebounce: 50,\n axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n axisExpandTriggerOn: 'click',\n parallelAxisDefault: null\n };\n return ParallelModel;\n}(ComponentModel);\n\nexport default ParallelModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar ParallelAxis = function (_super) {\n __extends(ParallelAxis, _super);\n\n function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n _this.type = axisType || 'value';\n _this.axisIndex = axisIndex;\n return _this;\n }\n\n ParallelAxis.prototype.isHorizontal = function () {\n return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n };\n\n return ParallelAxis;\n}(Axis);\n\nexport default ParallelAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n delta = delta || 0;\n var extentSpan = extent[1] - extent[0];\n\n if (minSpan != null) {\n minSpan = restrict(minSpan, [0, extentSpan]);\n }\n\n if (maxSpan != null) {\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n }\n\n if (handleIndex === 'all') {\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n handleSpan = restrict(handleSpan, [0, extentSpan]);\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n handleIndex = 0;\n }\n\n handleEnds[0] = restrict(handleEnds[0], extent);\n handleEnds[1] = restrict(handleEnds[1], extent);\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\n handleEnds[handleIndex] += delta;\n var extentMinSpan = minSpan || 0;\n var realExtent = extent.slice();\n originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\n var currDistSign;\n currDistSign = getSpanSign(handleEnds, handleIndex);\n\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n }\n\n currDistSign = getSpanSign(handleEnds, handleIndex);\n\n if (maxSpan != null && currDistSign.span > maxSpan) {\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n }\n\n return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\n return {\n span: Math.abs(dist),\n sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n };\n}\n\nfunction restrict(value, extend) {\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as layoutUtil from '../../util/layout';\nimport * as axisHelper from '../../coord/axisHelper';\nimport ParallelAxis from './ParallelAxis';\nimport * as graphic from '../../util/graphic';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../../component/helper/sliderMove';\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar round = numberUtil.round;\nvar PI = Math.PI;\n\nvar Parallel = function () {\n function Parallel(parallelModel, ecModel, api) {\n this.type = 'parallel';\n this._axesMap = zrUtil.createHashMap();\n this._axesLayout = {};\n this.dimensions = parallelModel.dimensions;\n this._model = parallelModel;\n\n this._init(parallelModel, ecModel, api);\n }\n\n Parallel.prototype._init = function (parallelModel, ecModel, api) {\n var dimensions = parallelModel.dimensions;\n var parallelAxisIndex = parallelModel.parallelAxisIndex;\n each(dimensions, function (dim, idx) {\n var axisIndex = parallelAxisIndex[idx];\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n\n var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\n\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse');\n axisModel.axis = axis;\n axis.model = axisModel;\n axis.coordinateSystem = axisModel.coordinateSystem = this;\n }, this);\n };\n\n Parallel.prototype.update = function (ecModel, api) {\n this._updateAxesFromSeries(this._model, ecModel);\n };\n\n Parallel.prototype.containPoint = function (point) {\n var layoutInfo = this._makeLayoutInfo();\n\n var axisBase = layoutInfo.axisBase;\n var layoutBase = layoutInfo.layoutBase;\n var pixelDimIndex = layoutInfo.pixelDimIndex;\n var pAxis = point[1 - pixelDimIndex];\n var pLayout = point[pixelDimIndex];\n return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength;\n };\n\n Parallel.prototype.getModel = function () {\n return this._model;\n };\n\n Parallel.prototype._updateAxesFromSeries = function (parallelModel, ecModel) {\n ecModel.eachSeries(function (seriesModel) {\n if (!parallelModel.contains(seriesModel, ecModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n each(this.dimensions, function (dim) {\n var axis = this._axesMap.get(dim);\n\n axis.scale.unionExtentFromData(data, data.mapDimension(dim));\n axisHelper.niceScaleExtent(axis.scale, axis.model);\n }, this);\n }, this);\n };\n\n Parallel.prototype.resize = function (parallelModel, api) {\n this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n\n this._layoutAxes();\n };\n\n Parallel.prototype.getRect = function () {\n return this._rect;\n };\n\n Parallel.prototype._makeLayoutInfo = function () {\n var parallelModel = this._model;\n var rect = this._rect;\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n var layout = parallelModel.get('layout');\n var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\n var layoutLength = rect[wh[pixelDimIndex]];\n var layoutExtent = [0, layoutLength];\n var axisCount = this.dimensions.length;\n var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent);\n var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\n var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0;\n var axisExpandWindow = parallelModel.get('axisExpandWindow');\n var winSize;\n\n if (!axisExpandWindow) {\n winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\n var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2);\n axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n } else {\n winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n }\n\n var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount);\n axisCollapseWidth < 3 && (axisCollapseWidth = 0);\n var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1];\n var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\n return {\n layout: layout,\n pixelDimIndex: pixelDimIndex,\n layoutBase: rect[xy[pixelDimIndex]],\n layoutLength: layoutLength,\n axisBase: rect[xy[1 - pixelDimIndex]],\n axisLength: rect[wh[1 - pixelDimIndex]],\n axisExpandable: axisExpandable,\n axisExpandWidth: axisExpandWidth,\n axisCollapseWidth: axisCollapseWidth,\n axisExpandWindow: axisExpandWindow,\n axisCount: axisCount,\n winInnerIndices: winInnerIndices,\n axisExpandWindow0Pos: axisExpandWindow0Pos\n };\n };\n\n Parallel.prototype._layoutAxes = function () {\n var rect = this._rect;\n var axes = this._axesMap;\n var dimensions = this.dimensions;\n\n var layoutInfo = this._makeLayoutInfo();\n\n var layout = layoutInfo.layout;\n axes.each(function (axis) {\n var axisExtent = [0, layoutInfo.axisLength];\n var idx = axis.inverse ? 1 : 0;\n axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\n });\n each(dimensions, function (dim, idx) {\n var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\n var positionTable = {\n horizontal: {\n x: posInfo.position,\n y: layoutInfo.axisLength\n },\n vertical: {\n x: 0,\n y: posInfo.position\n }\n };\n var rotationTable = {\n horizontal: PI / 2,\n vertical: 0\n };\n var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y];\n var rotation = rotationTable[layout];\n var transform = matrix.create();\n matrix.rotate(transform, transform, rotation);\n matrix.translate(transform, transform, position);\n this._axesLayout[dim] = {\n position: position,\n rotation: rotation,\n transform: transform,\n axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\n axisLabelShow: posInfo.axisLabelShow,\n nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\n tickDirection: 1,\n labelDirection: 1\n };\n }, this);\n };\n\n Parallel.prototype.getAxis = function (dim) {\n return this._axesMap.get(dim);\n };\n\n Parallel.prototype.dataToPoint = function (value, dim) {\n return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\n };\n\n Parallel.prototype.eachActiveState = function (data, callback, start, end) {\n start == null && (start = 0);\n end == null && (end = data.count());\n var axesMap = this._axesMap;\n var dimensions = this.dimensions;\n var dataDimensions = [];\n var axisModels = [];\n zrUtil.each(dimensions, function (axisDim) {\n dataDimensions.push(data.mapDimension(axisDim));\n axisModels.push(axesMap.get(axisDim).model);\n });\n var hasActiveSet = this.hasAxisBrushed();\n\n for (var dataIndex = start; dataIndex < end; dataIndex++) {\n var activeState = void 0;\n\n if (!hasActiveSet) {\n activeState = 'normal';\n } else {\n activeState = 'active';\n var values = data.getValues(dataDimensions, dataIndex);\n\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n var state = axisModels[j].getActiveState(values[j]);\n\n if (state === 'inactive') {\n activeState = 'inactive';\n break;\n }\n }\n }\n\n callback(activeState, dataIndex);\n }\n };\n\n Parallel.prototype.hasAxisBrushed = function () {\n var dimensions = this.dimensions;\n var axesMap = this._axesMap;\n var hasActiveSet = false;\n\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\n hasActiveSet = true;\n }\n }\n\n return hasActiveSet;\n };\n\n Parallel.prototype.axisCoordToPoint = function (coord, dim) {\n var axisLayout = this._axesLayout[dim];\n return graphic.applyTransform([coord, 0], axisLayout.transform);\n };\n\n Parallel.prototype.getAxisLayout = function (dim) {\n return zrUtil.clone(this._axesLayout[dim]);\n };\n\n Parallel.prototype.getSlidedAxisExpandWindow = function (point) {\n var layoutInfo = this._makeLayoutInfo();\n\n var pixelDimIndex = layoutInfo.pixelDimIndex;\n var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\n var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)];\n\n if (!this.containPoint(point)) {\n return {\n behavior: 'none',\n axisExpandWindow: axisExpandWindow\n };\n }\n\n var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos;\n var delta;\n var behavior = 'slide';\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n\n var triggerArea = this._model.get('axisExpandSlideTriggerArea');\n\n var useJump = triggerArea[0] != null;\n\n if (axisCollapseWidth) {\n if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\n behavior = 'jump';\n delta = pointCoord - winSize * triggerArea[2];\n } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\n behavior = 'jump';\n delta = pointCoord - winSize * (1 - triggerArea[2]);\n } else {\n (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0);\n }\n\n delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\n delta ? sliderMove(delta, axisExpandWindow, extent, 'all') : behavior = 'none';\n } else {\n var winSize2 = axisExpandWindow[1] - axisExpandWindow[0];\n var pos = extent[1] * pointCoord / winSize2;\n axisExpandWindow = [mathMax(0, pos - winSize2 / 2)];\n axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize2);\n axisExpandWindow[0] = axisExpandWindow[1] - winSize2;\n }\n\n return {\n axisExpandWindow: axisExpandWindow,\n behavior: behavior\n };\n };\n\n return Parallel;\n}();\n\nfunction restrict(len, extent) {\n return mathMin(mathMax(len, extent[0]), extent[1]);\n}\n\nfunction layoutAxisWithoutExpand(axisIndex, layoutInfo) {\n var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\n return {\n position: step * axisIndex,\n axisNameAvailableWidth: step,\n axisLabelShow: true\n };\n}\n\nfunction layoutAxisWithExpand(axisIndex, layoutInfo) {\n var layoutLength = layoutInfo.layoutLength;\n var axisExpandWidth = layoutInfo.axisExpandWidth;\n var axisCount = layoutInfo.axisCount;\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n var winInnerIndices = layoutInfo.winInnerIndices;\n var position;\n var axisNameAvailableWidth = axisCollapseWidth;\n var axisLabelShow = false;\n var nameTruncateMaxWidth;\n\n if (axisIndex < winInnerIndices[0]) {\n position = axisIndex * axisCollapseWidth;\n nameTruncateMaxWidth = axisCollapseWidth;\n } else if (axisIndex <= winInnerIndices[1]) {\n position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\n axisNameAvailableWidth = axisExpandWidth;\n axisLabelShow = true;\n } else {\n position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\n nameTruncateMaxWidth = axisCollapseWidth;\n }\n\n return {\n position: position,\n axisNameAvailableWidth: axisNameAvailableWidth,\n axisLabelShow: axisLabelShow,\n nameTruncateMaxWidth: nameTruncateMaxWidth\n };\n}\n\nexport default Parallel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Parallel from './Parallel';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction createParallelCoordSys(ecModel, api) {\n var coordSysList = [];\n ecModel.eachComponent('parallel', function (parallelModel, idx) {\n var coordSys = new Parallel(parallelModel, ecModel, api);\n coordSys.name = 'parallel_' + idx;\n coordSys.resize(parallelModel, api);\n parallelModel.coordinateSystem = coordSys;\n coordSys.model = parallelModel;\n coordSysList.push(coordSys);\n });\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'parallel') {\n var parallelModel = seriesModel.getReferringComponents('parallel', SINGLE_REFERRING).models[0];\n seriesModel.coordinateSystem = parallelModel.coordinateSystem;\n }\n });\n return coordSysList;\n}\n\nvar parallelCoordSysCreator = {\n create: createParallelCoordSys\n};\nexport default parallelCoordSysCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper';\nimport * as numberUtil from '../../util/number';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\n\nvar ParallelAxisModel = function (_super) {\n __extends(ParallelAxisModel, _super);\n\n function ParallelAxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelAxisModel.type;\n _this.activeIntervals = [];\n return _this;\n }\n\n ParallelAxisModel.prototype.getAreaSelectStyle = function () {\n return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity']])(this.getModel('areaSelectStyle'));\n };\n\n ParallelAxisModel.prototype.setActiveIntervals = function (intervals) {\n var activeIntervals = this.activeIntervals = zrUtil.clone(intervals);\n\n if (activeIntervals) {\n for (var i = activeIntervals.length - 1; i >= 0; i--) {\n numberUtil.asc(activeIntervals[i]);\n }\n }\n };\n\n ParallelAxisModel.prototype.getActiveState = function (value) {\n var activeIntervals = this.activeIntervals;\n\n if (!activeIntervals.length) {\n return 'normal';\n }\n\n if (value == null || isNaN(+value)) {\n return 'inactive';\n }\n\n if (activeIntervals.length === 1) {\n var interval = activeIntervals[0];\n\n if (interval[0] <= value && value <= interval[1]) {\n return 'active';\n }\n } else {\n for (var i = 0, len = activeIntervals.length; i < len; i++) {\n if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\n return 'active';\n }\n }\n }\n\n return 'inactive';\n };\n\n return ParallelAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(ParallelAxisModel, AxisModelCommonMixin);\nexport default ParallelAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { curry, each, map, bind, merge, clone, defaults, assert } from 'zrender/lib/core/util';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as graphic from '../../util/graphic';\nimport * as interactionMutex from './interactionMutex';\nimport DataDiffer from '../../data/DataDiffer';\nvar BRUSH_PANEL_GLOBAL = true;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n w: [0, 0],\n e: [0, 1],\n n: [1, 0],\n s: [1, 1]\n};\nvar CURSOR_MAP = {\n w: 'ew',\n e: 'ew',\n n: 'ns',\n s: 'ns',\n ne: 'nesw',\n sw: 'nesw',\n nw: 'nwse',\n se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n brushStyle: {\n lineWidth: 2,\n stroke: 'rgba(210,219,238,0.3)',\n fill: '#D2DBEE'\n },\n transformable: true,\n brushMode: 'single',\n removeOnClick: false\n};\nvar baseUID = 0;\n\nvar BrushController = function (_super) {\n __extends(BrushController, _super);\n\n function BrushController(zr) {\n var _this = _super.call(this) || this;\n\n _this._track = [];\n _this._covers = [];\n _this._handlers = {};\n\n if (process.env.NODE_ENV !== 'production') {\n assert(zr);\n }\n\n _this._zr = zr;\n _this.group = new graphic.Group();\n _this._uid = 'brushController_' + baseUID++;\n each(pointerHandlers, function (handler, eventName) {\n this._handlers[eventName] = bind(handler, this);\n }, _this);\n return _this;\n }\n\n BrushController.prototype.enableBrush = function (brushOption) {\n if (process.env.NODE_ENV !== 'production') {\n assert(this._mounted);\n }\n\n this._brushType && this._doDisableBrush();\n brushOption.brushType && this._doEnableBrush(brushOption);\n return this;\n };\n\n BrushController.prototype._doEnableBrush = function (brushOption) {\n var zr = this._zr;\n\n if (!this._enableGlobalPan) {\n interactionMutex.take(zr, MUTEX_RESOURCE_KEY, this._uid);\n }\n\n each(this._handlers, function (handler, eventName) {\n zr.on(eventName, handler);\n });\n this._brushType = brushOption.brushType;\n this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\n };\n\n BrushController.prototype._doDisableBrush = function () {\n var zr = this._zr;\n interactionMutex.release(zr, MUTEX_RESOURCE_KEY, this._uid);\n each(this._handlers, function (handler, eventName) {\n zr.off(eventName, handler);\n });\n this._brushType = this._brushOption = null;\n };\n\n BrushController.prototype.setPanels = function (panelOpts) {\n if (panelOpts && panelOpts.length) {\n var panels_1 = this._panels = {};\n each(panelOpts, function (panelOpts) {\n panels_1[panelOpts.panelId] = clone(panelOpts);\n });\n } else {\n this._panels = null;\n }\n\n return this;\n };\n\n BrushController.prototype.mount = function (opt) {\n opt = opt || {};\n\n if (process.env.NODE_ENV !== 'production') {\n this._mounted = true;\n }\n\n this._enableGlobalPan = opt.enableGlobalPan;\n var thisGroup = this.group;\n\n this._zr.add(thisGroup);\n\n thisGroup.attr({\n x: opt.x || 0,\n y: opt.y || 0,\n rotation: opt.rotation || 0,\n scaleX: opt.scaleX || 1,\n scaleY: opt.scaleY || 1\n });\n this._transform = thisGroup.getLocalTransform();\n return this;\n };\n\n BrushController.prototype.updateCovers = function (coverConfigList) {\n if (process.env.NODE_ENV !== 'production') {\n assert(this._mounted);\n }\n\n coverConfigList = map(coverConfigList, function (coverConfig) {\n return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\n });\n var tmpIdPrefix = '\\0-brush-index-';\n var oldCovers = this._covers;\n var newCovers = this._covers = [];\n var controller = this;\n var creatingCover = this._creatingCover;\n new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n return this;\n\n function getKey(brushOption, index) {\n return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n }\n\n function oldGetKey(cover, index) {\n return getKey(cover.__brushOption, index);\n }\n\n function addOrUpdate(newIndex, oldIndex) {\n var newBrushInternal = coverConfigList[newIndex];\n\n if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n newCovers[newIndex] = oldCovers[oldIndex];\n } else {\n var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushInternal, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushInternal));\n updateCoverAfterCreation(controller, cover);\n }\n }\n\n function remove(oldIndex) {\n if (oldCovers[oldIndex] !== creatingCover) {\n controller.group.remove(oldCovers[oldIndex]);\n }\n }\n };\n\n BrushController.prototype.unmount = function () {\n if (process.env.NODE_ENV !== 'production') {\n if (!this._mounted) {\n return;\n }\n }\n\n this.enableBrush(false);\n clearCovers(this);\n\n this._zr.remove(this.group);\n\n if (process.env.NODE_ENV !== 'production') {\n this._mounted = false;\n }\n\n return this;\n };\n\n BrushController.prototype.dispose = function () {\n this.unmount();\n this.off();\n };\n\n return BrushController;\n}(Eventful);\n\nfunction createCover(controller, brushOption) {\n var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n cover.__brushOption = brushOption;\n updateZ(cover, brushOption);\n controller.group.add(cover);\n return cover;\n}\n\nfunction endCreating(controller, creatingCover) {\n var coverRenderer = getCoverRenderer(creatingCover);\n\n if (coverRenderer.endCreating) {\n coverRenderer.endCreating(controller, creatingCover);\n updateZ(creatingCover, creatingCover.__brushOption);\n }\n\n return creatingCover;\n}\n\nfunction updateCoverShape(controller, cover) {\n var brushOption = cover.__brushOption;\n getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\n\nfunction updateZ(cover, brushOption) {\n var z = brushOption.z;\n z == null && (z = COVER_Z);\n cover.traverse(function (el) {\n el.z = z;\n el.z2 = z;\n });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n getCoverRenderer(cover).updateCommon(controller, cover);\n updateCoverShape(controller, cover);\n}\n\nfunction getCoverRenderer(cover) {\n return coverRenderers[cover.__brushOption.brushType];\n}\n\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n var panels = controller._panels;\n\n if (!panels) {\n return BRUSH_PANEL_GLOBAL;\n }\n\n var panel;\n var transform = controller._transform;\n each(panels, function (pn) {\n pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n });\n return panel;\n}\n\nfunction getPanelByCover(controller, cover) {\n var panels = controller._panels;\n\n if (!panels) {\n return BRUSH_PANEL_GLOBAL;\n }\n\n var panelId = cover.__brushOption.panelId;\n return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\n}\n\nfunction clearCovers(controller) {\n var covers = controller._covers;\n var originalLength = covers.length;\n each(covers, function (cover) {\n controller.group.remove(cover);\n }, controller);\n covers.length = 0;\n return !!originalLength;\n}\n\nfunction trigger(controller, opt) {\n var areas = map(controller._covers, function (cover) {\n var brushOption = cover.__brushOption;\n var range = clone(brushOption.range);\n return {\n brushType: brushOption.brushType,\n panelId: brushOption.panelId,\n range: range\n };\n });\n controller.trigger('brush', {\n areas: areas,\n isEnd: !!opt.isEnd,\n removeOnClick: !!opt.removeOnClick\n });\n}\n\nfunction shouldShowCover(controller) {\n var track = controller._track;\n\n if (!track.length) {\n return false;\n }\n\n var p2 = track[track.length - 1];\n var p1 = track[0];\n var dx = p2[0] - p1[0];\n var dy = p2[1] - p1[1];\n var dist = mathPow(dx * dx + dy * dy, 0.5);\n return dist > UNSELECT_THRESHOLD;\n}\n\nfunction getTrackEnds(track) {\n var tail = track.length - 1;\n tail < 0 && (tail = 0);\n return [track[0], track[tail]];\n}\n\n;\n\nfunction createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\n var cover = new graphic.Group();\n cover.add(new graphic.Rect({\n name: 'main',\n style: makeStyle(brushOption),\n silent: true,\n draggable: true,\n cursor: 'move',\n drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n each(edgeNameSequences, function (nameSequence) {\n cover.add(new graphic.Rect({\n name: nameSequence.join(''),\n style: {\n opacity: 0\n },\n draggable: true,\n silent: true,\n invisible: true,\n drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n });\n return cover;\n}\n\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n var lineWidth = brushOption.brushStyle.lineWidth || 0;\n var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n var x = localRange[0][0];\n var y = localRange[1][0];\n var xa = x - lineWidth / 2;\n var ya = y - lineWidth / 2;\n var x2 = localRange[0][1];\n var y2 = localRange[1][1];\n var x2a = x2 - handleSize + lineWidth / 2;\n var y2a = y2 - handleSize + lineWidth / 2;\n var width = x2 - x;\n var height = y2 - y;\n var widtha = width + lineWidth;\n var heighta = height + lineWidth;\n updateRectShape(controller, cover, 'main', x, y, width, height);\n\n if (brushOption.transformable) {\n updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n }\n}\n\nfunction updateCommon(controller, cover) {\n var brushOption = cover.__brushOption;\n var transformable = brushOption.transformable;\n var mainEl = cover.childAt(0);\n mainEl.useStyle(makeStyle(brushOption));\n mainEl.attr({\n silent: !transformable,\n cursor: transformable ? 'move' : 'default'\n });\n each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\n var el = cover.childOfName(nameSequence.join(''));\n var globalDir = nameSequence.length === 1 ? getGlobalDirection1(controller, nameSequence[0]) : getGlobalDirection2(controller, nameSequence);\n el && el.attr({\n silent: !transformable,\n invisible: !transformable,\n cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n });\n });\n}\n\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n var el = cover.childOfName(name);\n el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\n\nfunction makeStyle(brushOption) {\n return defaults({\n strokeNoScale: true\n }, brushOption.brushStyle);\n}\n\nfunction formatRectRange(x, y, x2, y2) {\n var min = [mathMin(x, x2), mathMin(y, y2)];\n var max = [mathMax(x, x2), mathMax(y, y2)];\n return [[min[0], max[0]], [min[1], max[1]]];\n}\n\nfunction getTransform(controller) {\n return graphic.getTransform(controller.group);\n}\n\nfunction getGlobalDirection1(controller, localDirName) {\n var map = {\n w: 'left',\n e: 'right',\n n: 'top',\n s: 'bottom'\n };\n var inverseMap = {\n left: 'w',\n right: 'e',\n top: 'n',\n bottom: 's'\n };\n var dir = graphic.transformDirection(map[localDirName], getTransform(controller));\n return inverseMap[dir];\n}\n\nfunction getGlobalDirection2(controller, localDirNameSeq) {\n var globalDir = [getGlobalDirection1(controller, localDirNameSeq[0]), getGlobalDirection1(controller, localDirNameSeq[1])];\n (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n return globalDir.join('');\n}\n\nfunction driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\n var brushOption = cover.__brushOption;\n var rectRange = rectRangeConverter.toRectRange(brushOption.range);\n var localDelta = toLocalDelta(controller, dx, dy);\n each(dirNameSequence, function (dirName) {\n var ind = DIRECTION_MAP[dirName];\n rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n });\n brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n updateCoverAfterCreation(controller, cover);\n trigger(controller, {\n isEnd: false\n });\n}\n\nfunction driftPolygon(controller, cover, dx, dy) {\n var range = cover.__brushOption.range;\n var localDelta = toLocalDelta(controller, dx, dy);\n each(range, function (point) {\n point[0] += localDelta[0];\n point[1] += localDelta[1];\n });\n updateCoverAfterCreation(controller, cover);\n trigger(controller, {\n isEnd: false\n });\n}\n\nfunction toLocalDelta(controller, dx, dy) {\n var thisGroup = controller.group;\n var localD = thisGroup.transformCoordToLocal(dx, dy);\n var localZero = thisGroup.transformCoordToLocal(0, 0);\n return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\n\nfunction clipByPanel(controller, cover, data) {\n var panel = getPanelByCover(controller, cover);\n return panel && panel !== BRUSH_PANEL_GLOBAL ? panel.clipPath(data, controller._transform) : clone(data);\n}\n\nfunction pointsToRect(points) {\n var xmin = mathMin(points[0][0], points[1][0]);\n var ymin = mathMin(points[0][1], points[1][1]);\n var xmax = mathMax(points[0][0], points[1][0]);\n var ymax = mathMax(points[0][1], points[1][1]);\n return {\n x: xmin,\n y: ymin,\n width: xmax - xmin,\n height: ymax - ymin\n };\n}\n\nfunction resetCursor(controller, e, localCursorPoint) {\n if (!controller._brushType || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\n return;\n }\n\n var zr = controller._zr;\n var covers = controller._covers;\n var currPanel = getPanelByPoint(controller, e, localCursorPoint);\n\n if (!controller._dragging) {\n for (var i = 0; i < covers.length; i++) {\n var brushOption = covers[i].__brushOption;\n\n if (currPanel && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n return;\n }\n }\n }\n\n currPanel && zr.setCursorStyle('crosshair');\n}\n\nfunction preventDefault(e) {\n var rawE = e.event;\n rawE.preventDefault && rawE.preventDefault();\n}\n\nfunction mainShapeContain(cover, x, y) {\n return cover.childOfName('main').contain(x, y);\n}\n\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n var creatingCover = controller._creatingCover;\n var panel = controller._creatingPanel;\n var thisBrushOption = controller._brushOption;\n var eventParams;\n\n controller._track.push(localCursorPoint.slice());\n\n if (shouldShowCover(controller) || creatingCover) {\n if (panel && !creatingCover) {\n thisBrushOption.brushMode === 'single' && clearCovers(controller);\n var brushOption = clone(thisBrushOption);\n brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\n creatingCover = controller._creatingCover = createCover(controller, brushOption);\n\n controller._covers.push(creatingCover);\n }\n\n if (creatingCover) {\n var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n var coverBrushOption = creatingCover.__brushOption;\n coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n\n if (isEnd) {\n endCreating(controller, creatingCover);\n coverRenderer.updateCommon(controller, creatingCover);\n }\n\n updateCoverShape(controller, creatingCover);\n eventParams = {\n isEnd: isEnd\n };\n }\n } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n eventParams = {\n isEnd: isEnd,\n removeOnClick: true\n };\n }\n }\n\n return eventParams;\n}\n\nfunction determineBrushType(brushType, panel) {\n if (brushType === 'auto') {\n if (process.env.NODE_ENV !== 'production') {\n assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\n }\n\n return panel.defaultBrushType;\n }\n\n return brushType;\n}\n\nvar pointerHandlers = {\n mousedown: function (e) {\n if (this._dragging) {\n handleDragEnd(this, e);\n } else if (!e.target || !e.target.draggable) {\n preventDefault(e);\n var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n this._creatingCover = null;\n var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n\n if (panel) {\n this._dragging = true;\n this._track = [localCursorPoint.slice()];\n }\n }\n },\n mousemove: function (e) {\n var x = e.offsetX;\n var y = e.offsetY;\n var localCursorPoint = this.group.transformCoordToLocal(x, y);\n resetCursor(this, e, localCursorPoint);\n\n if (this._dragging) {\n preventDefault(e);\n var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n eventParams && trigger(this, eventParams);\n }\n },\n mouseup: function (e) {\n handleDragEnd(this, e);\n }\n};\n\nfunction handleDragEnd(controller, e) {\n if (controller._dragging) {\n preventDefault(e);\n var x = e.offsetX;\n var y = e.offsetY;\n var localCursorPoint = controller.group.transformCoordToLocal(x, y);\n var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\n controller._dragging = false;\n controller._track = [];\n controller._creatingCover = null;\n eventParams && trigger(controller, eventParams);\n }\n}\n\nfunction isOutsideZrArea(controller, x, y) {\n var zr = controller._zr;\n return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\n}\n\nvar coverRenderers = {\n lineX: getLineRenderer(0),\n lineY: getLineRenderer(1),\n rect: {\n createCover: function (controller, brushOption) {\n function returnInput(range) {\n return range;\n }\n\n return createBaseRectCover({\n toRectRange: returnInput,\n fromRectRange: returnInput\n }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\n },\n getCreatingRange: function (localTrack) {\n var ends = getTrackEnds(localTrack);\n return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n updateBaseRect(controller, cover, localRange, brushOption);\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n },\n polygon: {\n createCover: function (controller, brushOption) {\n var cover = new graphic.Group();\n cover.add(new graphic.Polyline({\n name: 'main',\n style: makeStyle(brushOption),\n silent: true\n }));\n return cover;\n },\n getCreatingRange: function (localTrack) {\n return localTrack;\n },\n endCreating: function (controller, cover) {\n cover.remove(cover.childAt(0));\n cover.add(new graphic.Polygon({\n name: 'main',\n draggable: true,\n drift: curry(driftPolygon, controller, cover),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n cover.childAt(0).setShape({\n points: clipByPanel(controller, cover, localRange)\n });\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n }\n};\n\nfunction getLineRenderer(xyIndex) {\n return {\n createCover: function (controller, brushOption) {\n return createBaseRectCover({\n toRectRange: function (range) {\n var rectRange = [range, [0, 100]];\n xyIndex && rectRange.reverse();\n return rectRange;\n },\n fromRectRange: function (rectRange) {\n return rectRange[xyIndex];\n }\n }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\n },\n getCreatingRange: function (localTrack) {\n var ends = getTrackEnds(localTrack);\n var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n return [min, max];\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n var otherExtent;\n var panel = getPanelByCover(controller, cover);\n\n if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\n otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\n } else {\n var zr = controller._zr;\n otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n }\n\n var rectRange = [localRange, otherExtent];\n xyIndex && rectRange.reverse();\n updateBaseRect(controller, cover, rectRange, brushOption);\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n };\n}\n\nexport default BrushController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { onIrrelevantElement } from './cursorHelper';\nimport * as graphicUtil from '../../util/graphic';\nexport function makeRectPanelClipPath(rect) {\n rect = normalizeRect(rect);\n return function (localPoints) {\n return graphicUtil.clipPointsByRect(localPoints, rect);\n };\n}\nexport function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n rect = normalizeRect(rect);\n return function (xyIndex) {\n var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n var brushWidth = idx ? rect.width : rect.height;\n var base = idx ? rect.x : rect.y;\n return [base, base + (brushWidth || 0)];\n };\n}\nexport function makeRectIsTargetByCursor(rect, api, targetModel) {\n var boundingRect = normalizeRect(rect);\n return function (e, localCursorPoint) {\n return boundingRect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n };\n}\n\nfunction normalizeRect(rect) {\n return BoundingRect.create(rect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from './AxisBuilder';\nimport BrushController from '../helper/BrushController';\nimport * as brushHelper from '../helper/brushHelper';\nimport * as graphic from '../../util/graphic';\nimport ComponentView from '../../view/Component';\nvar elementList = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar ParallelAxisView = function (_super) {\n __extends(ParallelAxisView, _super);\n\n function ParallelAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ParallelAxisView.type;\n return _this;\n }\n\n ParallelAxisView.prototype.init = function (ecModel, api) {\n _super.prototype.init.apply(this, arguments);\n\n (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this));\n };\n\n ParallelAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\n return;\n }\n\n this.axisModel = axisModel;\n this.api = api;\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n\n if (!axisModel.get('show')) {\n return;\n }\n\n var coordSysModel = getCoordSysModel(axisModel, ecModel);\n var coordSys = coordSysModel.coordinateSystem;\n var areaSelectStyle = axisModel.getAreaSelectStyle();\n var areaWidth = areaSelectStyle.width;\n var dim = axisModel.axis.dim;\n var axisLayout = coordSys.getAxisLayout(dim);\n var builderOpt = zrUtil.extend({\n strokeContainThreshold: areaWidth\n }, axisLayout);\n var axisBuilder = new AxisBuilder(axisModel, builderOpt);\n zrUtil.each(elementList, axisBuilder.add, axisBuilder);\n\n this._axisGroup.add(axisBuilder.getGroup());\n\n this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\n\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n };\n\n ParallelAxisView.prototype._refreshBrushController = function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\n var extent = axisModel.axis.getExtent();\n var extentLen = extent[1] - extent[0];\n var extra = Math.min(30, Math.abs(extentLen) * 0.1);\n var rect = graphic.BoundingRect.create({\n x: extent[0],\n y: -areaWidth / 2,\n width: extentLen,\n height: areaWidth\n });\n rect.x -= extra;\n rect.width += 2 * extra;\n\n this._brushController.mount({\n enableGlobalPan: true,\n rotation: builderOpt.rotation,\n x: builderOpt.position[0],\n y: builderOpt.position[1]\n }).setPanels([{\n panelId: 'pl',\n clipPath: brushHelper.makeRectPanelClipPath(rect),\n isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),\n getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)\n }]).enableBrush({\n brushType: 'lineX',\n brushStyle: areaSelectStyle,\n removeOnClick: true\n }).updateCovers(getCoverInfoList(axisModel));\n };\n\n ParallelAxisView.prototype._onBrush = function (eventParam) {\n var coverInfoList = eventParam.areas;\n var axisModel = this.axisModel;\n var axis = axisModel.axis;\n var intervals = zrUtil.map(coverInfoList, function (coverInfo) {\n return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)];\n });\n\n if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) {\n this.api.dispatchAction({\n type: 'axisAreaSelect',\n parallelAxisId: axisModel.id,\n intervals: intervals\n });\n }\n };\n\n ParallelAxisView.prototype.dispose = function () {\n this._brushController.dispose();\n };\n\n ParallelAxisView.type = 'parallelAxis';\n return ParallelAxisView;\n}(ComponentView);\n\nfunction fromAxisAreaSelect(axisModel, ecModel, payload) {\n return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({\n mainType: 'parallelAxis',\n query: payload\n })[0] === axisModel;\n}\n\nfunction getCoverInfoList(axisModel) {\n var axis = axisModel.axis;\n return zrUtil.map(axisModel.activeIntervals, function (interval) {\n return {\n brushType: 'lineX',\n panelId: 'pl',\n range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)]\n };\n });\n}\n\nfunction getCoordSysModel(axisModel, ecModel) {\n return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\n}\n\nexport default ParallelAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar actionInfo = {\n type: 'axisAreaSelect',\n event: 'axisAreaSelected'\n};\nexport function installParallelActions(registers) {\n registers.registerAction(actionInfo, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'parallelAxis',\n query: payload\n }, function (parallelAxisModel) {\n parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\n });\n });\n registers.registerAction('parallelAxisExpand', function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'parallel',\n query: payload\n }, function (parallelModel) {\n parallelModel.setAxisExpand(payload);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport parallelPreprocessor from '../../coord/parallel/parallelPreprocessor';\nimport ParallelView from './ParallelView';\nimport ParallelModel from '../../coord/parallel/ParallelModel';\nimport parallelCoordSysCreator from '../../coord/parallel/parallelCreator';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport ParallelAxisModel from '../../coord/parallel/AxisModel';\nimport ParallelAxisView from '../axis/ParallelAxisView';\nimport { installParallelActions } from '../axis/parallelAxisAction';\nvar defaultAxisOption = {\n type: 'value',\n areaSelectStyle: {\n width: 20,\n borderWidth: 1,\n borderColor: 'rgba(160,197,232)',\n color: 'rgba(160,197,232)',\n opacity: 0.3\n },\n realtime: true,\n z: 10\n};\nexport function install(registers) {\n registers.registerComponentView(ParallelView);\n registers.registerComponentModel(ParallelModel);\n registers.registerCoordinateSystem('parallel', parallelCoordSysCreator);\n registers.registerPreprocessor(parallelPreprocessor);\n registers.registerComponentModel(ParallelAxisModel);\n registers.registerComponentView(ParallelAxisView);\n axisModelCreator(registers, 'parallel', ParallelAxisModel, defaultAxisOption);\n installParallelActions(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ParallelView from './ParallelView';\nimport ParallelSeriesModel from './ParallelSeries';\nimport parallelVisual from './parallelVisual';\nimport { install as installParallelComponent } from '../../component/parallel/install';\nexport function install(registers) {\n use(installParallelComponent);\n registers.registerChartView(ParallelView);\n registers.registerSeriesModel(ParallelSeriesModel);\n registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, parallelVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\n\nvar SankeyPathShape = function () {\n function SankeyPathShape() {\n this.x1 = 0;\n this.y1 = 0;\n this.x2 = 0;\n this.y2 = 0;\n this.cpx1 = 0;\n this.cpy1 = 0;\n this.cpx2 = 0;\n this.cpy2 = 0;\n this.extent = 0;\n }\n\n return SankeyPathShape;\n}();\n\nvar SankeyPath = function (_super) {\n __extends(SankeyPath, _super);\n\n function SankeyPath(opts) {\n return _super.call(this, opts) || this;\n }\n\n SankeyPath.prototype.getDefaultShape = function () {\n return new SankeyPathShape();\n };\n\n SankeyPath.prototype.buildPath = function (ctx, shape) {\n var extent = shape.extent;\n ctx.moveTo(shape.x1, shape.y1);\n ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\n\n if (shape.orient === 'vertical') {\n ctx.lineTo(shape.x2 + extent, shape.y2);\n ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\n } else {\n ctx.lineTo(shape.x2, shape.y2 + extent);\n ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\n }\n\n ctx.closePath();\n };\n\n SankeyPath.prototype.highlight = function () {\n enterEmphasis(this);\n };\n\n SankeyPath.prototype.downplay = function () {\n leaveEmphasis(this);\n };\n\n return SankeyPath;\n}(graphic.Path);\n\nvar SankeyView = function (_super) {\n __extends(SankeyView, _super);\n\n function SankeyView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SankeyView.type;\n _this._focusAdjacencyDisabled = false;\n return _this;\n }\n\n SankeyView.prototype.render = function (seriesModel, ecModel, api) {\n var sankeyView = this;\n var graph = seriesModel.getGraph();\n var group = this.group;\n var layoutInfo = seriesModel.layoutInfo;\n var width = layoutInfo.width;\n var height = layoutInfo.height;\n var nodeData = seriesModel.getData();\n var edgeData = seriesModel.getData('edge');\n var orient = seriesModel.get('orient');\n this._model = seriesModel;\n group.removeAll();\n group.x = layoutInfo.x;\n group.y = layoutInfo.y;\n graph.eachEdge(function (edge) {\n var curve = new SankeyPath();\n var ecData = getECData(curve);\n ecData.dataIndex = edge.dataIndex;\n ecData.seriesIndex = seriesModel.seriesIndex;\n ecData.dataType = 'edge';\n var edgeModel = edge.getModel();\n var lineStyleModel = edgeModel.getModel('lineStyle');\n var curvature = lineStyleModel.get('curveness');\n var n1Layout = edge.node1.getLayout();\n var node1Model = edge.node1.getModel();\n var dragX1 = node1Model.get('localX');\n var dragY1 = node1Model.get('localY');\n var n2Layout = edge.node2.getLayout();\n var node2Model = edge.node2.getModel();\n var dragX2 = node2Model.get('localX');\n var dragY2 = node2Model.get('localY');\n var edgeLayout = edge.getLayout();\n var x1;\n var y1;\n var x2;\n var y2;\n var cpx1;\n var cpy1;\n var cpx2;\n var cpy2;\n curve.shape.extent = Math.max(1, edgeLayout.dy);\n curve.shape.orient = orient;\n\n if (orient === 'vertical') {\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\n x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\n y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\n cpx1 = x1;\n cpy1 = y1 * (1 - curvature) + y2 * curvature;\n cpx2 = x2;\n cpy2 = y1 * curvature + y2 * (1 - curvature);\n } else {\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\n x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\n y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\n cpx1 = x1 * (1 - curvature) + x2 * curvature;\n cpy1 = y1;\n cpx2 = x1 * curvature + x2 * (1 - curvature);\n cpy2 = y2;\n }\n\n curve.setShape({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n cpx1: cpx1,\n cpy1: cpy1,\n cpx2: cpx2,\n cpy2: cpy2\n });\n curve.useStyle(lineStyleModel.getItemStyle());\n\n switch (curve.style.fill) {\n case 'source':\n curve.style.fill = edge.node1.getVisual('color');\n curve.style.decal = edge.node1.getVisual('style').decal;\n break;\n\n case 'target':\n curve.style.fill = edge.node2.getVisual('color');\n curve.style.decal = edge.node2.getVisual('style').decal;\n break;\n\n case 'gradient':\n var sourceColor = edge.node1.getVisual('color');\n var targetColor = edge.node2.getVisual('color');\n\n if (typeof sourceColor === 'string' && typeof targetColor === 'string') {\n curve.style.fill = new graphic.LinearGradient(0, 0, 1, 0, [{\n color: sourceColor,\n offset: 0\n }, {\n color: targetColor,\n offset: 1\n }]);\n }\n\n }\n\n var emphasisModel = edgeModel.getModel('emphasis');\n setStatesStylesFromModel(curve, edgeModel, 'lineStyle', function (model) {\n return model.getItemStyle();\n });\n group.add(curve);\n edgeData.setItemGraphicEl(edge.dataIndex, curve);\n var focus = emphasisModel.get('focus');\n enableHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\n getECData(curve).dataType = 'edge';\n });\n graph.eachNode(function (node) {\n var layout = node.getLayout();\n var itemModel = node.getModel();\n var dragX = itemModel.get('localX');\n var dragY = itemModel.get('localY');\n var emphasisModel = itemModel.getModel('emphasis');\n var rect = new graphic.Rect({\n shape: {\n x: dragX != null ? dragX * width : layout.x,\n y: dragY != null ? dragY * height : layout.y,\n width: layout.dx,\n height: layout.dy\n },\n style: itemModel.getModel('itemStyle').getItemStyle()\n });\n setLabelStyle(rect, getLabelStatesModels(itemModel), {\n labelFetcher: seriesModel,\n labelDataIndex: node.dataIndex,\n defaultText: node.id\n });\n rect.disableLabelAnimation = true;\n rect.setStyle('fill', node.getVisual('color'));\n rect.setStyle('decal', node.getVisual('style').decal);\n setStatesStylesFromModel(rect, itemModel);\n group.add(rect);\n nodeData.setItemGraphicEl(node.dataIndex, rect);\n getECData(rect).dataType = 'node';\n var focus = emphasisModel.get('focus');\n enableHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\n });\n nodeData.eachItemGraphicEl(function (el, dataIndex) {\n var itemModel = nodeData.getItemModel(dataIndex);\n\n if (itemModel.get('draggable')) {\n el.drift = function (dx, dy) {\n sankeyView._focusAdjacencyDisabled = true;\n this.shape.x += dx;\n this.shape.y += dy;\n this.dirty();\n api.dispatchAction({\n type: 'dragNode',\n seriesId: seriesModel.id,\n dataIndex: nodeData.getRawIndex(dataIndex),\n localX: this.shape.x / width,\n localY: this.shape.y / height\n });\n };\n\n el.ondragend = function () {\n sankeyView._focusAdjacencyDisabled = false;\n };\n\n el.draggable = true;\n el.cursor = 'move';\n }\n });\n\n if (!this._data && seriesModel.isAnimationEnabled()) {\n group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () {\n group.removeClipPath();\n }));\n }\n\n this._data = seriesModel.getData();\n };\n\n SankeyView.prototype.dispose = function () {};\n\n SankeyView.type = 'sankey';\n return SankeyView;\n}(ChartView);\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n var rectEl = new graphic.Rect({\n shape: {\n x: rect.x - 10,\n y: rect.y - 10,\n width: 0,\n height: rect.height + 20\n }\n });\n graphic.initProps(rectEl, {\n shape: {\n width: rect.width + 20\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nexport default SankeyView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';\nimport Model from '../../model/Model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar SankeySeriesModel = function (_super) {\n __extends(SankeySeriesModel, _super);\n\n function SankeySeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SankeySeriesModel.type;\n return _this;\n }\n\n SankeySeriesModel.prototype.getInitialData = function (option, ecModel) {\n var links = option.edges || option.links;\n var nodes = option.data || option.nodes;\n var levels = option.levels;\n this.levelModels = [];\n var levelModels = this.levelModels;\n\n for (var i = 0; i < levels.length; i++) {\n if (levels[i].depth != null && levels[i].depth >= 0) {\n levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('levels[i].depth is mandatory and should be natural number');\n }\n }\n }\n\n if (nodes && links) {\n var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\n return graph.data;\n }\n\n function beforeLink(nodeData, edgeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n var seriesModel = model.parentModel;\n var layout = seriesModel.getData().getItemLayout(idx);\n\n if (layout) {\n var nodeDepth = layout.depth;\n var levelModel = seriesModel.levelModels[nodeDepth];\n\n if (levelModel) {\n model.parentModel = levelModel;\n }\n }\n\n return model;\n });\n edgeData.wrapMethod('getItemModel', function (model, idx) {\n var seriesModel = model.parentModel;\n var edge = seriesModel.getGraph().getEdgeByIndex(idx);\n var layout = edge.node1.getLayout();\n\n if (layout) {\n var depth = layout.depth;\n var levelModel = seriesModel.levelModels[depth];\n\n if (levelModel) {\n model.parentModel = levelModel;\n }\n }\n\n return model;\n });\n }\n };\n\n SankeySeriesModel.prototype.setNodePosition = function (dataIndex, localPosition) {\n var dataItem = this.option.data[dataIndex];\n dataItem.localX = localPosition[0];\n dataItem.localY = localPosition[1];\n };\n\n SankeySeriesModel.prototype.getGraph = function () {\n return this.getData().graph;\n };\n\n SankeySeriesModel.prototype.getEdgeData = function () {\n return this.getGraph().edgeData;\n };\n\n SankeySeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n function noValue(val) {\n return isNaN(val) || val == null;\n }\n\n if (dataType === 'edge') {\n var params = this.getDataParams(dataIndex, dataType);\n var rawDataOpt = params.data;\n var edgeValue = params.value;\n var edgeName = rawDataOpt.source + ' -- ' + rawDataOpt.target;\n return createTooltipMarkup('nameValue', {\n name: edgeName,\n value: edgeValue,\n noValue: noValue(edgeValue)\n });\n } else {\n var node = this.getGraph().getNodeByIndex(dataIndex);\n var value = node.getLayout().value;\n var name_1 = this.getDataParams(dataIndex, dataType).data.name;\n return createTooltipMarkup('nameValue', {\n name: name_1 != null ? name_1 + '' : null,\n value: value,\n noValue: noValue(value)\n });\n }\n };\n\n SankeySeriesModel.prototype.optionUpdated = function () {\n var option = this.option;\n\n if (option.focusNodeAdjacency === true) {\n option.focusNodeAdjacency = 'allEdges';\n }\n };\n\n SankeySeriesModel.prototype.getDataParams = function (dataIndex, dataType) {\n var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n if (params.value == null && dataType === 'node') {\n var node = this.getGraph().getNodeByIndex(dataIndex);\n var nodeValue = node.getLayout().value;\n params.value = nodeValue;\n }\n\n return params;\n };\n\n SankeySeriesModel.type = 'series.sankey';\n SankeySeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n left: '5%',\n top: '5%',\n right: '20%',\n bottom: '5%',\n orient: 'horizontal',\n nodeWidth: 20,\n nodeGap: 8,\n draggable: true,\n focusNodeAdjacency: false,\n layoutIterations: 32,\n label: {\n show: true,\n position: 'right',\n fontSize: 12\n },\n levels: [],\n nodeAlign: 'justify',\n lineStyle: {\n color: '#314656',\n opacity: 0.2,\n curveness: 0.5\n },\n emphasis: {\n label: {\n show: true\n },\n lineStyle: {\n opacity: 0.5\n }\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n },\n animationEasing: 'linear',\n animationDuration: 1000\n };\n return SankeySeriesModel;\n}(SeriesModel);\n\nexport default SankeySeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { groupData } from '../../util/model';\nexport default function sankeyLayout(ecModel, api) {\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\n var nodeWidth = seriesModel.get('nodeWidth');\n var nodeGap = seriesModel.get('nodeGap');\n var layoutInfo = getViewRect(seriesModel, api);\n seriesModel.layoutInfo = layoutInfo;\n var width = layoutInfo.width;\n var height = layoutInfo.height;\n var graph = seriesModel.getGraph();\n var nodes = graph.nodes;\n var edges = graph.edges;\n computeNodeValues(nodes);\n var filteredNodes = zrUtil.filter(nodes, function (node) {\n return node.getLayout().value === 0;\n });\n var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\n var orient = seriesModel.get('orient');\n var nodeAlign = seriesModel.get('nodeAlign');\n layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);\n });\n}\n\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {\n computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);\n computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\n computeEdgeDepths(nodes, orient);\n}\n\nfunction computeNodeValues(nodes) {\n zrUtil.each(nodes, function (node) {\n var value1 = sum(node.outEdges, getEdgeValue);\n var value2 = sum(node.inEdges, getEdgeValue);\n var nodeRawValue = node.getValue() || 0;\n var value = Math.max(value1, value2, nodeRawValue);\n node.setLayout({\n value: value\n }, true);\n });\n}\n\nfunction computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {\n var remainEdges = [];\n var indegreeArr = [];\n var zeroIndegrees = [];\n var nextTargetNode = [];\n var x = 0;\n\n for (var i = 0; i < edges.length; i++) {\n remainEdges[i] = 1;\n }\n\n for (var i = 0; i < nodes.length; i++) {\n indegreeArr[i] = nodes[i].inEdges.length;\n\n if (indegreeArr[i] === 0) {\n zeroIndegrees.push(nodes[i]);\n }\n }\n\n var maxNodeDepth = -1;\n\n while (zeroIndegrees.length) {\n for (var idx = 0; idx < zeroIndegrees.length; idx++) {\n var node = zeroIndegrees[idx];\n var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n var isItemDepth = item.depth != null && item.depth >= 0;\n\n if (isItemDepth && item.depth > maxNodeDepth) {\n maxNodeDepth = item.depth;\n }\n\n node.setLayout({\n depth: isItemDepth ? item.depth : x\n }, true);\n orient === 'vertical' ? node.setLayout({\n dy: nodeWidth\n }, true) : node.setLayout({\n dx: nodeWidth\n }, true);\n\n for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {\n var edge = node.outEdges[edgeIdx];\n var indexEdge = edges.indexOf(edge);\n remainEdges[indexEdge] = 0;\n var targetNode = edge.node2;\n var nodeIndex = nodes.indexOf(targetNode);\n\n if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {\n nextTargetNode.push(targetNode);\n }\n }\n }\n\n ++x;\n zeroIndegrees = nextTargetNode;\n nextTargetNode = [];\n }\n\n for (var i = 0; i < remainEdges.length; i++) {\n if (remainEdges[i] === 1) {\n throw new Error('Sankey is a DAG, the original data has cycle!');\n }\n }\n\n var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;\n\n if (nodeAlign && nodeAlign !== 'left') {\n adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);\n }\n\n var kx = orient === 'vertical' ? (height - nodeWidth) / maxDepth : (width - nodeWidth) / maxDepth;\n scaleNodeBreadths(nodes, kx, orient);\n}\n\nfunction isNodeDepth(node) {\n var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n return item.depth != null && item.depth >= 0;\n}\n\nfunction adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {\n if (nodeAlign === 'right') {\n var nextSourceNode = [];\n var remainNodes = nodes;\n var nodeHeight = 0;\n\n while (remainNodes.length) {\n for (var i = 0; i < remainNodes.length; i++) {\n var node = remainNodes[i];\n node.setLayout({\n skNodeHeight: nodeHeight\n }, true);\n\n for (var j = 0; j < node.inEdges.length; j++) {\n var edge = node.inEdges[j];\n\n if (nextSourceNode.indexOf(edge.node1) < 0) {\n nextSourceNode.push(edge.node1);\n }\n }\n }\n\n remainNodes = nextSourceNode;\n nextSourceNode = [];\n ++nodeHeight;\n }\n\n zrUtil.each(nodes, function (node) {\n if (!isNodeDepth(node)) {\n node.setLayout({\n depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight)\n }, true);\n }\n });\n } else if (nodeAlign === 'justify') {\n moveSinksRight(nodes, maxDepth);\n }\n}\n\nfunction moveSinksRight(nodes, maxDepth) {\n zrUtil.each(nodes, function (node) {\n if (!isNodeDepth(node) && !node.outEdges.length) {\n node.setLayout({\n depth: maxDepth\n }, true);\n }\n });\n}\n\nfunction scaleNodeBreadths(nodes, kx, orient) {\n zrUtil.each(nodes, function (node) {\n var nodeDepth = node.getLayout().depth * kx;\n orient === 'vertical' ? node.setLayout({\n y: nodeDepth\n }, true) : node.setLayout({\n x: nodeDepth\n }, true);\n });\n}\n\nfunction computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\n var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\n initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n\n for (var alpha = 1; iterations > 0; iterations--) {\n alpha *= 0.99;\n relaxRightToLeft(nodesByBreadth, alpha, orient);\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n relaxLeftToRight(nodesByBreadth, alpha, orient);\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n }\n}\n\nfunction prepareNodesByBreadth(nodes, orient) {\n var nodesByBreadth = [];\n var keyAttr = orient === 'vertical' ? 'y' : 'x';\n var groupResult = groupData(nodes, function (node) {\n return node.getLayout()[keyAttr];\n });\n groupResult.keys.sort(function (a, b) {\n return a - b;\n });\n zrUtil.each(groupResult.keys, function (key) {\n nodesByBreadth.push(groupResult.buckets.get(key));\n });\n return nodesByBreadth;\n}\n\nfunction initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {\n var minKy = Infinity;\n zrUtil.each(nodesByBreadth, function (nodes) {\n var n = nodes.length;\n var sum = 0;\n zrUtil.each(nodes, function (node) {\n sum += node.getLayout().value;\n });\n var ky = orient === 'vertical' ? (width - (n - 1) * nodeGap) / sum : (height - (n - 1) * nodeGap) / sum;\n\n if (ky < minKy) {\n minKy = ky;\n }\n });\n zrUtil.each(nodesByBreadth, function (nodes) {\n zrUtil.each(nodes, function (node, i) {\n var nodeDy = node.getLayout().value * minKy;\n\n if (orient === 'vertical') {\n node.setLayout({\n x: i\n }, true);\n node.setLayout({\n dx: nodeDy\n }, true);\n } else {\n node.setLayout({\n y: i\n }, true);\n node.setLayout({\n dy: nodeDy\n }, true);\n }\n });\n });\n zrUtil.each(edges, function (edge) {\n var edgeDy = +edge.getValue() * minKy;\n edge.setLayout({\n dy: edgeDy\n }, true);\n });\n}\n\nfunction resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\n var keyAttr = orient === 'vertical' ? 'x' : 'y';\n zrUtil.each(nodesByBreadth, function (nodes) {\n nodes.sort(function (a, b) {\n return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];\n });\n var nodeX;\n var node;\n var dy;\n var y0 = 0;\n var n = nodes.length;\n var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy';\n\n for (var i = 0; i < n; i++) {\n node = nodes[i];\n dy = y0 - node.getLayout()[keyAttr];\n\n if (dy > 0) {\n nodeX = node.getLayout()[keyAttr] + dy;\n orient === 'vertical' ? node.setLayout({\n x: nodeX\n }, true) : node.setLayout({\n y: nodeX\n }, true);\n }\n\n y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;\n }\n\n var viewWidth = orient === 'vertical' ? width : height;\n dy = y0 - nodeGap - viewWidth;\n\n if (dy > 0) {\n nodeX = node.getLayout()[keyAttr] - dy;\n orient === 'vertical' ? node.setLayout({\n x: nodeX\n }, true) : node.setLayout({\n y: nodeX\n }, true);\n y0 = nodeX;\n\n for (var i = n - 2; i >= 0; --i) {\n node = nodes[i];\n dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;\n\n if (dy > 0) {\n nodeX = node.getLayout()[keyAttr] - dy;\n orient === 'vertical' ? node.setLayout({\n x: nodeX\n }, true) : node.setLayout({\n y: nodeX\n }, true);\n }\n\n y0 = node.getLayout()[keyAttr];\n }\n }\n });\n}\n\nfunction relaxRightToLeft(nodesByBreadth, alpha, orient) {\n zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) {\n zrUtil.each(nodes, function (node) {\n if (node.outEdges.length) {\n var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue);\n\n if (isNaN(y)) {\n var len = node.outEdges.length;\n y = len ? sum(node.outEdges, centerTarget, orient) / len : 0;\n }\n\n if (orient === 'vertical') {\n var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n node.setLayout({\n x: nodeX\n }, true);\n } else {\n var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n node.setLayout({\n y: nodeY\n }, true);\n }\n }\n });\n });\n}\n\nfunction weightedTarget(edge, orient) {\n return center(edge.node2, orient) * edge.getValue();\n}\n\nfunction centerTarget(edge, orient) {\n return center(edge.node2, orient);\n}\n\nfunction weightedSource(edge, orient) {\n return center(edge.node1, orient) * edge.getValue();\n}\n\nfunction centerSource(edge, orient) {\n return center(edge.node1, orient);\n}\n\nfunction center(node, orient) {\n return orient === 'vertical' ? node.getLayout().x + node.getLayout().dx / 2 : node.getLayout().y + node.getLayout().dy / 2;\n}\n\nfunction getEdgeValue(edge) {\n return edge.getValue();\n}\n\nfunction sum(array, cb, orient) {\n var sum = 0;\n var len = array.length;\n var i = -1;\n\n while (++i < len) {\n var value = +cb(array[i], orient);\n\n if (!isNaN(value)) {\n sum += value;\n }\n }\n\n return sum;\n}\n\nfunction relaxLeftToRight(nodesByBreadth, alpha, orient) {\n zrUtil.each(nodesByBreadth, function (nodes) {\n zrUtil.each(nodes, function (node) {\n if (node.inEdges.length) {\n var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue);\n\n if (isNaN(y)) {\n var len = node.inEdges.length;\n y = len ? sum(node.inEdges, centerSource, orient) / len : 0;\n }\n\n if (orient === 'vertical') {\n var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n node.setLayout({\n x: nodeX\n }, true);\n } else {\n var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n node.setLayout({\n y: nodeY\n }, true);\n }\n }\n });\n });\n}\n\nfunction computeEdgeDepths(nodes, orient) {\n var keyAttr = orient === 'vertical' ? 'x' : 'y';\n zrUtil.each(nodes, function (node) {\n node.outEdges.sort(function (a, b) {\n return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];\n });\n node.inEdges.sort(function (a, b) {\n return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];\n });\n });\n zrUtil.each(nodes, function (node) {\n var sy = 0;\n var ty = 0;\n zrUtil.each(node.outEdges, function (edge) {\n edge.setLayout({\n sy: sy\n }, true);\n sy += edge.getLayout().dy;\n });\n zrUtil.each(node.inEdges, function (edge) {\n edge.setLayout({\n ty: ty\n }, true);\n ty += edge.getLayout().dy;\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapping from '../../visual/VisualMapping';\nexport default function sankeyVisual(ecModel) {\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\n var graph = seriesModel.getGraph();\n var nodes = graph.nodes;\n\n if (nodes.length) {\n var minValue_1 = Infinity;\n var maxValue_1 = -Infinity;\n zrUtil.each(nodes, function (node) {\n var nodeValue = node.getLayout().value;\n\n if (nodeValue < minValue_1) {\n minValue_1 = nodeValue;\n }\n\n if (nodeValue > maxValue_1) {\n maxValue_1 = nodeValue;\n }\n });\n zrUtil.each(nodes, function (node) {\n var mapping = new VisualMapping({\n type: 'color',\n mappingMethod: 'linear',\n dataExtent: [minValue_1, maxValue_1],\n visual: seriesModel.get('color')\n });\n var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n var customColor = node.getModel().get(['itemStyle', 'color']);\n\n if (customColor != null) {\n node.setVisual('color', customColor);\n node.setVisual('style', {\n fill: customColor\n });\n } else {\n node.setVisual('color', mapValueToColor);\n node.setVisual('style', {\n fill: mapValueToColor\n });\n }\n });\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SankeyView from './SankeyView';\nimport SankeySeriesModel from './SankeySeries';\nimport sankeyLayout from './sankeyLayout';\nimport sankeyVisual from './sankeyVisual';\nexport function install(registers) {\n registers.registerChartView(SankeyView);\n registers.registerSeriesModel(SankeySeriesModel);\n registers.registerLayout(sankeyLayout);\n registers.registerVisual(sankeyVisual);\n registers.registerAction({\n type: 'dragNode',\n event: 'dragnode',\n update: 'update'\n }, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'sankey',\n query: payload\n }, function (seriesModel) {\n seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\n\nvar WhiskerBoxCommonMixin = function () {\n function WhiskerBoxCommonMixin() {}\n\n WhiskerBoxCommonMixin.prototype.getInitialData = function (option, ecModel) {\n var ordinalMeta;\n var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\n var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\n var xAxisType = xAxisModel.get('type');\n var yAxisType = yAxisModel.get('type');\n var addOrdinal;\n\n if (xAxisType === 'category') {\n option.layout = 'horizontal';\n ordinalMeta = xAxisModel.getOrdinalMeta();\n addOrdinal = true;\n } else if (yAxisType === 'category') {\n option.layout = 'vertical';\n ordinalMeta = yAxisModel.getOrdinalMeta();\n addOrdinal = true;\n } else {\n option.layout = option.layout || 'horizontal';\n }\n\n var coordDims = ['x', 'y'];\n var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\n var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\n var otherAxisDim = coordDims[1 - baseAxisDimIndex];\n var axisModels = [xAxisModel, yAxisModel];\n var baseAxisType = axisModels[baseAxisDimIndex].get('type');\n var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\n var data = option.data;\n\n if (data && addOrdinal) {\n var newOptionData_1 = [];\n zrUtil.each(data, function (item, index) {\n var newItem;\n\n if (zrUtil.isArray(item)) {\n newItem = item.slice();\n item.unshift(index);\n } else if (zrUtil.isArray(item.value)) {\n newItem = item.value.slice();\n item.value.unshift(index);\n } else {\n newItem = item;\n }\n\n newOptionData_1.push(newItem);\n });\n option.data = newOptionData_1;\n }\n\n var defaultValueDimensions = this.defaultValueDimensions;\n var coordDimensions = [{\n name: baseAxisDim,\n type: getDimensionTypeByAxis(baseAxisType),\n ordinalMeta: ordinalMeta,\n otherDims: {\n tooltip: false,\n itemName: 0\n },\n dimsDef: ['base']\n }, {\n name: otherAxisDim,\n type: getDimensionTypeByAxis(otherAxisType),\n dimsDef: defaultValueDimensions.slice()\n }];\n return createListSimply(this, {\n coordDimensions: coordDimensions,\n dimensionsCount: defaultValueDimensions.length + 1,\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)\n });\n };\n\n WhiskerBoxCommonMixin.prototype.getBaseAxis = function () {\n var dim = this._baseAxisDim;\n return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\n };\n\n return WhiskerBoxCommonMixin;\n}();\n\n;\nexport { WhiskerBoxCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar BoxplotSeriesModel = function (_super) {\n __extends(BoxplotSeriesModel, _super);\n\n function BoxplotSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BoxplotSeriesModel.type;\n _this.defaultValueDimensions = [{\n name: 'min',\n defaultTooltip: true\n }, {\n name: 'Q1',\n defaultTooltip: true\n }, {\n name: 'median',\n defaultTooltip: true\n }, {\n name: 'Q3',\n defaultTooltip: true\n }, {\n name: 'max',\n defaultTooltip: true\n }];\n _this.visualDrawType = 'stroke';\n return _this;\n }\n\n BoxplotSeriesModel.type = 'series.boxplot';\n BoxplotSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n BoxplotSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n layout: null,\n boxWidth: [7, 50],\n itemStyle: {\n color: '#fff',\n borderWidth: 1\n },\n emphasis: {\n scale: true,\n itemStyle: {\n borderWidth: 2,\n shadowBlur: 5,\n shadowOffsetX: 1,\n shadowOffsetY: 1,\n shadowColor: 'rgba(0,0,0,0.2)'\n }\n },\n animationDuration: 800\n };\n return BoxplotSeriesModel;\n}(SeriesModel);\n\nmixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true);\nexport default BoxplotSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport Path from 'zrender/lib/graphic/Path';\n\nvar BoxplotView = function (_super) {\n __extends(BoxplotView, _super);\n\n function BoxplotView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BoxplotView.type;\n return _this;\n }\n\n BoxplotView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var group = this.group;\n var oldData = this._data;\n\n if (!this._data) {\n group.removeAll();\n }\n\n var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var itemLayout = data.getItemLayout(newIdx);\n var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\n data.setItemGraphicEl(newIdx, symbolEl);\n group.add(symbolEl);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n if (!data.hasValue(newIdx)) {\n group.remove(symbolEl);\n return;\n }\n\n var itemLayout = data.getItemLayout(newIdx);\n\n if (!symbolEl) {\n symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\n } else {\n updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\n }\n\n group.add(symbolEl);\n data.setItemGraphicEl(newIdx, symbolEl);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n };\n\n BoxplotView.prototype.remove = function (ecModel) {\n var group = this.group;\n var data = this._data;\n this._data = null;\n data && data.eachItemGraphicEl(function (el) {\n el && group.remove(el);\n });\n };\n\n BoxplotView.type = 'boxplot';\n return BoxplotView;\n}(ChartView);\n\nvar BoxPathShape = function () {\n function BoxPathShape() {}\n\n return BoxPathShape;\n}();\n\nvar BoxPath = function (_super) {\n __extends(BoxPath, _super);\n\n function BoxPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'boxplotBoxPath';\n return _this;\n }\n\n BoxPath.prototype.getDefaultShape = function () {\n return new BoxPathShape();\n };\n\n BoxPath.prototype.buildPath = function (ctx, shape) {\n var ends = shape.points;\n var i = 0;\n ctx.moveTo(ends[i][0], ends[i][1]);\n i++;\n\n for (; i < 4; i++) {\n ctx.lineTo(ends[i][0], ends[i][1]);\n }\n\n ctx.closePath();\n\n for (; i < ends.length; i++) {\n ctx.moveTo(ends[i][0], ends[i][1]);\n i++;\n ctx.lineTo(ends[i][0], ends[i][1]);\n }\n };\n\n return BoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\n var ends = itemLayout.ends;\n var el = new BoxPath({\n shape: {\n points: isInit ? transInit(ends, constDim, itemLayout) : ends\n }\n });\n updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\n return el;\n}\n\nfunction updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\n var seriesModel = data.hostModel;\n var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\n updateMethod(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, dataIndex);\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\n el.style.strokeNoScale = true;\n el.z2 = 100;\n var itemModel = data.getItemModel(dataIndex);\n setStatesStylesFromModel(el, itemModel);\n enableHoverEmphasis(el, itemModel.get(['emphasis', 'focus']), itemModel.get(['emphasis', 'blurScope']));\n}\n\nfunction transInit(points, dim, itemLayout) {\n return zrUtil.map(points, function (point) {\n point = point.slice();\n point[dim] = itemLayout.initBaseline;\n return point;\n });\n}\n\nexport default BoxplotView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function boxplotVisual(ecModel, api) {\n ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../../util/number';\nvar each = zrUtil.each;\nexport default function boxplotLayout(ecModel) {\n var groupResult = groupSeriesByAxis(ecModel);\n each(groupResult, function (groupItem) {\n var seriesModels = groupItem.seriesModels;\n\n if (!seriesModels.length) {\n return;\n }\n\n calculateBase(groupItem);\n each(seriesModels, function (seriesModel, idx) {\n layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n });\n });\n}\n\nfunction groupSeriesByAxis(ecModel) {\n var result = [];\n var axisList = [];\n ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n var baseAxis = seriesModel.getBaseAxis();\n var idx = zrUtil.indexOf(axisList, baseAxis);\n\n if (idx < 0) {\n idx = axisList.length;\n axisList[idx] = baseAxis;\n result[idx] = {\n axis: baseAxis,\n seriesModels: []\n };\n }\n\n result[idx].seriesModels.push(seriesModel);\n });\n return result;\n}\n\nfunction calculateBase(groupItem) {\n var extent;\n var baseAxis = groupItem.axis;\n var seriesModels = groupItem.seriesModels;\n var seriesCount = seriesModels.length;\n var boxWidthList = groupItem.boxWidthList = [];\n var boxOffsetList = groupItem.boxOffsetList = [];\n var boundList = [];\n var bandWidth;\n\n if (baseAxis.type === 'category') {\n bandWidth = baseAxis.getBandWidth();\n } else {\n var maxDataCount_1 = 0;\n each(seriesModels, function (seriesModel) {\n maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\n });\n extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / maxDataCount_1;\n }\n\n each(seriesModels, function (seriesModel) {\n var boxWidthBound = seriesModel.get('boxWidth');\n\n if (!zrUtil.isArray(boxWidthBound)) {\n boxWidthBound = [boxWidthBound, boxWidthBound];\n }\n\n boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n });\n var availableWidth = bandWidth * 0.8 - 2;\n var boxGap = availableWidth / seriesCount * 0.3;\n var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n var base = boxWidth / 2 - availableWidth / 2;\n each(seriesModels, function (seriesModel, idx) {\n boxOffsetList.push(base);\n base += boxGap + boxWidth;\n boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n });\n}\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var halfWidth = boxWidth / 2;\n var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n var vDimIdx = 1 - cDimIdx;\n var coordDims = ['x', 'y'];\n var cDim = data.mapDimension(coordDims[cDimIdx]);\n var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n\n if (cDim == null || vDims.length < 5) {\n return;\n }\n\n for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n var axisDimVal = data.get(cDim, dataIndex);\n var median = getPoint(axisDimVal, vDims[2], dataIndex);\n var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n var ends = [];\n addBodyEnd(ends, end2, false);\n addBodyEnd(ends, end4, true);\n ends.push(end1, end2, end5, end4);\n layEndLine(ends, end1);\n layEndLine(ends, end5);\n layEndLine(ends, median);\n data.setItemLayout(dataIndex, {\n initBaseline: median[vDimIdx],\n ends: ends\n });\n }\n\n function getPoint(axisDimVal, dim, dataIndex) {\n var val = data.get(dim, dataIndex);\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n var point;\n\n if (isNaN(axisDimVal) || isNaN(val)) {\n point = [NaN, NaN];\n } else {\n point = coordSys.dataToPoint(p);\n point[cDimIdx] += offset;\n }\n\n return point;\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] += halfWidth;\n point2[cDimIdx] -= halfWidth;\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function layEndLine(ends, endCenter) {\n var from = endCenter.slice();\n var to = endCenter.slice();\n from[cDimIdx] -= halfWidth;\n to[cDimIdx] += halfWidth;\n ends.push(from, to);\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { quantile, asc } from '../../util/number';\nimport { isFunction, isString } from 'zrender/lib/core/util';\nexport default function prepareBoxplotData(rawData, opt) {\n opt = opt || {};\n var boxData = [];\n var outliers = [];\n var boundIQR = opt.boundIQR;\n var useExtreme = boundIQR === 'none' || boundIQR === 0;\n\n for (var i = 0; i < rawData.length; i++) {\n var ascList = asc(rawData[i].slice());\n var Q1 = quantile(ascList, 0.25);\n var Q2 = quantile(ascList, 0.5);\n var Q3 = quantile(ascList, 0.75);\n var min = ascList[0];\n var max = ascList[ascList.length - 1];\n var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\n var low = useExtreme ? min : Math.max(min, Q1 - bound);\n var high = useExtreme ? max : Math.min(max, Q3 + bound);\n var itemNameFormatter = opt.itemNameFormatter;\n var itemName = isFunction(itemNameFormatter) ? itemNameFormatter({\n value: i\n }) : isString(itemNameFormatter) ? itemNameFormatter.replace('{value}', i + '') : i + '';\n boxData.push([itemName, low, Q1, Q2, Q3, high]);\n\n for (var j = 0; j < ascList.length; j++) {\n var dataItem = ascList[j];\n\n if (dataItem < low || dataItem > high) {\n var outlier = [itemName, dataItem];\n outliers.push(outlier);\n }\n }\n }\n\n return {\n boxData: boxData,\n outliers: outliers\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport prepareBoxplotData from './prepareBoxplotData';\nimport { throwError, makePrintable } from '../../util/log';\nimport { SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nexport var boxplotTransform = {\n type: 'echarts:boxplot',\n transform: function transform(params) {\n var upstream = params.upstream;\n\n if (upstream.sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('source data is not applicable for this boxplot transform. Expect number[][].');\n }\n\n throwError(errMsg);\n }\n\n var result = prepareBoxplotData(upstream.getRawData(), params.config);\n return [{\n dimensions: ['ItemName', 'Low', 'Q1', 'Q2', 'Q3', 'High'],\n data: result.boxData\n }, {\n data: result.outliers\n }];\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoxplotSeriesModel from './BoxplotSeries';\nimport BoxplotView from './BoxplotView';\nimport boxplotVisual from './boxplotVisual';\nimport boxplotLayout from './boxplotLayout';\nimport { boxplotTransform } from './boxplotTransform';\nexport function install(registers) {\n registers.registerSeriesModel(BoxplotSeriesModel);\n registers.registerChartView(BoxplotView);\n registers.registerVisual(boxplotVisual);\n registers.registerLayout(boxplotLayout);\n registers.registerTransform(boxplotTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel } from '../../util/states';\nimport Path from 'zrender/lib/graphic/Path';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nvar SKIP_PROPS = ['color', 'borderColor'];\n\nvar CandlestickView = function (_super) {\n __extends(CandlestickView, _super);\n\n function CandlestickView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CandlestickView.type;\n return _this;\n }\n\n CandlestickView.prototype.render = function (seriesModel, ecModel, api) {\n this.group.removeClipPath();\n\n this._updateDrawMode(seriesModel);\n\n this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n };\n\n CandlestickView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n this._clear();\n\n this._updateDrawMode(seriesModel);\n };\n\n CandlestickView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n };\n\n CandlestickView.prototype._updateDrawMode = function (seriesModel) {\n var isLargeDraw = seriesModel.pipelineContext.large;\n\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n this._isLargeDraw = isLargeDraw;\n\n this._clear();\n }\n };\n\n CandlestickView.prototype._renderNormal = function (seriesModel) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var isSimpleBox = data.getLayout('isSimpleBox');\n var needsClip = seriesModel.get('clip', true);\n var coord = seriesModel.coordinateSystem;\n var clipArea = coord.getArea && coord.getArea();\n\n if (!this._data) {\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var itemLayout = data.getItemLayout(newIdx);\n\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n return;\n }\n\n var el = createNormalBox(itemLayout, newIdx, true);\n graphic.initProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }\n }).update(function (newIdx, oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n\n if (!data.hasValue(newIdx)) {\n group.remove(el);\n return;\n }\n\n var itemLayout = data.getItemLayout(newIdx);\n\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n group.remove(el);\n return;\n }\n\n if (!el) {\n el = createNormalBox(itemLayout, newIdx);\n } else {\n graphic.updateProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n }\n\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n };\n\n CandlestickView.prototype._renderLarge = function (seriesModel) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n if (clipPath) {\n this.group.setClipPath(clipPath);\n } else {\n this.group.removeClipPath();\n }\n };\n\n CandlestickView.prototype._incrementalRenderNormal = function (params, seriesModel) {\n var data = seriesModel.getData();\n var isSimpleBox = data.getLayout('isSimpleBox');\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var itemLayout = data.getItemLayout(dataIndex);\n var el = createNormalBox(itemLayout, dataIndex);\n setBoxCommon(el, data, dataIndex, isSimpleBox);\n el.incremental = true;\n this.group.add(el);\n }\n };\n\n CandlestickView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n createLarge(seriesModel, this.group, true);\n };\n\n CandlestickView.prototype.remove = function (ecModel) {\n this._clear();\n };\n\n CandlestickView.prototype._clear = function () {\n this.group.removeAll();\n this._data = null;\n };\n\n CandlestickView.type = 'candlestick';\n return CandlestickView;\n}(ChartView);\n\nvar NormalBoxPathShape = function () {\n function NormalBoxPathShape() {}\n\n return NormalBoxPathShape;\n}();\n\nvar NormalBoxPath = function (_super) {\n __extends(NormalBoxPath, _super);\n\n function NormalBoxPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'normalCandlestickBox';\n return _this;\n }\n\n NormalBoxPath.prototype.getDefaultShape = function () {\n return new NormalBoxPathShape();\n };\n\n NormalBoxPath.prototype.buildPath = function (ctx, shape) {\n var ends = shape.points;\n\n if (this.__simpleBox) {\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[6][0], ends[6][1]);\n } else {\n ctx.moveTo(ends[0][0], ends[0][1]);\n ctx.lineTo(ends[1][0], ends[1][1]);\n ctx.lineTo(ends[2][0], ends[2][1]);\n ctx.lineTo(ends[3][0], ends[3][1]);\n ctx.closePath();\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[5][0], ends[5][1]);\n ctx.moveTo(ends[6][0], ends[6][1]);\n ctx.lineTo(ends[7][0], ends[7][1]);\n }\n };\n\n return NormalBoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n var ends = itemLayout.ends;\n return new NormalBoxPath({\n shape: {\n points: isInit ? transInit(ends, itemLayout) : ends\n },\n z2: 100\n });\n}\n\nfunction isNormalBoxClipped(clipArea, itemLayout) {\n var clipped = true;\n\n for (var i = 0; i < itemLayout.ends.length; i++) {\n if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\n clipped = false;\n break;\n }\n }\n\n return clipped;\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n var itemModel = data.getItemModel(dataIndex);\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\n el.style.strokeNoScale = true;\n el.__simpleBox = isSimpleBox;\n setStatesStylesFromModel(el, itemModel);\n}\n\nfunction transInit(points, itemLayout) {\n return zrUtil.map(points, function (point) {\n point = point.slice();\n point[1] = itemLayout.initBaseline;\n return point;\n });\n}\n\nvar LargeBoxPathShape = function () {\n function LargeBoxPathShape() {}\n\n return LargeBoxPathShape;\n}();\n\nvar LargeBoxPath = function (_super) {\n __extends(LargeBoxPath, _super);\n\n function LargeBoxPath(opts) {\n var _this = _super.call(this, opts) || this;\n\n _this.type = 'largeCandlestickBox';\n return _this;\n }\n\n LargeBoxPath.prototype.getDefaultShape = function () {\n return new LargeBoxPathShape();\n };\n\n LargeBoxPath.prototype.buildPath = function (ctx, shape) {\n var points = shape.points;\n\n for (var i = 0; i < points.length;) {\n if (this.__sign === points[i++]) {\n var x = points[i++];\n ctx.moveTo(x, points[i++]);\n ctx.lineTo(x, points[i++]);\n } else {\n i += 3;\n }\n }\n };\n\n return LargeBoxPath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n var data = seriesModel.getData();\n var largePoints = data.getLayout('largePoints');\n var elP = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: 1\n });\n group.add(elP);\n var elN = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: -1\n });\n group.add(elN);\n setLargeStyle(1, elP, seriesModel, data);\n setLargeStyle(-1, elN, seriesModel, data);\n\n if (incremental) {\n elP.incremental = true;\n elN.incremental = true;\n }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n var borderColor = seriesModel.get(['itemStyle', sign > 0 ? 'borderColor' : 'borderColor0']) || seriesModel.get(['itemStyle', sign > 0 ? 'color' : 'color0']);\n var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.fill = null;\n el.style.stroke = borderColor;\n}\n\nexport default CandlestickView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar CandlestickSeriesModel = function (_super) {\n __extends(CandlestickSeriesModel, _super);\n\n function CandlestickSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CandlestickSeriesModel.type;\n _this.defaultValueDimensions = [{\n name: 'open',\n defaultTooltip: true\n }, {\n name: 'close',\n defaultTooltip: true\n }, {\n name: 'lowest',\n defaultTooltip: true\n }, {\n name: 'highest',\n defaultTooltip: true\n }];\n return _this;\n }\n\n CandlestickSeriesModel.prototype.getShadowDim = function () {\n return 'open';\n };\n\n CandlestickSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n var itemLayout = data.getItemLayout(dataIndex);\n return itemLayout && selectors.rect(itemLayout.brushRect);\n };\n\n CandlestickSeriesModel.type = 'series.candlestick';\n CandlestickSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n CandlestickSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n layout: null,\n clip: true,\n itemStyle: {\n color: '#eb5454',\n color0: '#47b262',\n borderColor: '#eb5454',\n borderColor0: '#47b262',\n borderWidth: 1\n },\n emphasis: {\n scale: true,\n itemStyle: {\n borderWidth: 2\n }\n },\n barMaxWidth: null,\n barMinWidth: null,\n barWidth: null,\n large: true,\n largeThreshold: 600,\n progressive: 3e3,\n progressiveThreshold: 1e4,\n progressiveChunkMode: 'mod',\n animationEasing: 'linear',\n animationDuration: 300\n };\n return CandlestickSeriesModel;\n}(SeriesModel);\n\nmixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);\nexport default CandlestickSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function candlestickPreprocessor(option) {\n if (!option || !zrUtil.isArray(option.series)) {\n return;\n }\n\n zrUtil.each(option.series, function (seriesItem) {\n if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') {\n seriesItem.type = 'candlestick';\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createRenderPlanner from '../helper/createRenderPlanner';\nimport { extend } from 'zrender/lib/core/util';\nvar positiveBorderColorQuery = ['itemStyle', 'borderColor'];\nvar negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\nvar positiveColorQuery = ['itemStyle', 'color'];\nvar negativeColorQuery = ['itemStyle', 'color0'];\nvar candlestickVisual = {\n seriesType: 'candlestick',\n plan: createRenderPlanner(),\n performRawSeries: true,\n reset: function (seriesModel, ecModel) {\n function getColor(sign, model) {\n return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\n }\n\n function getBorderColor(sign, model) {\n return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\n }\n\n var data = seriesModel.getData();\n data.setVisual('legendSymbol', 'roundRect');\n\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n var isLargeRender = seriesModel.pipelineContext.large;\n return !isLargeRender && {\n progress: function (params, data) {\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var itemModel = data.getItemModel(dataIndex);\n var sign = data.getItemLayout(dataIndex).sign;\n var style = itemModel.getItemStyle();\n style.fill = getColor(sign, itemModel);\n style.stroke = getBorderColor(sign, itemModel) || style.fill;\n var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n extend(existsStyle, style);\n }\n }\n };\n }\n};\nexport default candlestickVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { subPixelOptimize } from '../../util/graphic';\nimport createRenderPlanner from '../helper/createRenderPlanner';\nimport { parsePercent } from '../../util/number';\nimport { retrieve2 } from 'zrender/lib/core/util';\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar candlestickLayout = {\n seriesType: 'candlestick',\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var candleWidth = calculateCandleWidth(seriesModel, data);\n var cDimIdx = 0;\n var vDimIdx = 1;\n var coordDims = ['x', 'y'];\n var cDim = data.mapDimension(coordDims[cDimIdx]);\n var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n var openDim = vDims[0];\n var closeDim = vDims[1];\n var lowestDim = vDims[2];\n var highestDim = vDims[3];\n data.setLayout({\n candleWidth: candleWidth,\n isSimpleBox: candleWidth <= 1.3\n });\n\n if (cDim == null || vDims.length < 4) {\n return;\n }\n\n return {\n progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n };\n\n function normalProgress(params, data) {\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = data.get(cDim, dataIndex);\n var openVal = data.get(openDim, dataIndex);\n var closeVal = data.get(closeDim, dataIndex);\n var lowestVal = data.get(lowestDim, dataIndex);\n var highestVal = data.get(highestDim, dataIndex);\n var ocLow = Math.min(openVal, closeVal);\n var ocHigh = Math.max(openVal, closeVal);\n var ocLowPoint = getPoint(ocLow, axisDimVal);\n var ocHighPoint = getPoint(ocHigh, axisDimVal);\n var lowestPoint = getPoint(lowestVal, axisDimVal);\n var highestPoint = getPoint(highestVal, axisDimVal);\n var ends = [];\n addBodyEnd(ends, ocHighPoint, 0);\n addBodyEnd(ends, ocLowPoint, 1);\n ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n data.setItemLayout(dataIndex, {\n sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\n initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n ends: ends,\n brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n });\n }\n\n function getPoint(val, axisDimVal) {\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n var pmin = getPoint(lowestVal, axisDimVal);\n var pmax = getPoint(highestVal, axisDimVal);\n pmin[cDimIdx] -= candleWidth / 2;\n pmax[cDimIdx] -= candleWidth / 2;\n return {\n x: pmin[0],\n y: pmin[1],\n width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n };\n }\n\n function subPixelOptimizePoint(point) {\n point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n return point;\n }\n }\n\n function largeProgress(params, data) {\n var points = new LargeArr(params.count * 4);\n var offset = 0;\n var point;\n var tmpIn = [];\n var tmpOut = [];\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = data.get(cDim, dataIndex);\n var openVal = data.get(openDim, dataIndex);\n var closeVal = data.get(closeDim, dataIndex);\n var lowestVal = data.get(lowestDim, dataIndex);\n var highestVal = data.get(highestDim, dataIndex);\n\n if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n points[offset++] = NaN;\n offset += 3;\n continue;\n }\n\n points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\n tmpIn[cDimIdx] = axisDimVal;\n tmpIn[vDimIdx] = lowestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[0] : NaN;\n points[offset++] = point ? point[1] : NaN;\n tmpIn[vDimIdx] = highestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[1] : NaN;\n }\n\n data.setLayout('largePoints', points);\n }\n }\n};\n\nfunction getSign(data, dataIndex, openVal, closeVal, closeDim) {\n var sign;\n\n if (openVal > closeVal) {\n sign = -1;\n } else if (openVal < closeVal) {\n sign = 1;\n } else {\n sign = dataIndex > 0 ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : 1;\n }\n\n return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n var baseAxis = seriesModel.getBaseAxis();\n var extent;\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n var barWidth = seriesModel.get('barWidth');\n return barWidth != null ? parsePercent(barWidth, bandWidth) : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nexport default candlestickLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CandlestickView from './CandlestickView';\nimport CandlestickSeriesModel from './CandlestickSeries';\nimport preprocessor from './preprocessor';\nimport candlestickVisual from './candlestickVisual';\nimport candlestickLayout from './candlestickLayout';\nexport function install(registers) {\n registers.registerChartView(CandlestickView);\n registers.registerSeriesModel(CandlestickSeriesModel);\n registers.registerPreprocessor(preprocessor);\n registers.registerVisual(candlestickVisual);\n registers.registerLayout(candlestickLayout);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport { Group } from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport SymbolClz from './Symbol';\nvar EFFECT_RIPPLE_NUMBER = 3;\n\nfunction normalizeSymbolSize(symbolSize) {\n if (!zrUtil.isArray(symbolSize)) {\n symbolSize = [+symbolSize, +symbolSize];\n }\n\n return symbolSize;\n}\n\nfunction updateRipplePath(rippleGroup, effectCfg) {\n var color = effectCfg.rippleEffectColor || effectCfg.color;\n rippleGroup.eachChild(function (ripplePath) {\n ripplePath.attr({\n z: effectCfg.z,\n zlevel: effectCfg.zlevel,\n style: {\n stroke: effectCfg.brushType === 'stroke' ? color : null,\n fill: effectCfg.brushType === 'fill' ? color : null\n }\n });\n });\n}\n\nvar EffectSymbol = function (_super) {\n __extends(EffectSymbol, _super);\n\n function EffectSymbol(data, idx) {\n var _this = _super.call(this) || this;\n\n var symbol = new SymbolClz(data, idx);\n var rippleGroup = new Group();\n\n _this.add(symbol);\n\n _this.add(rippleGroup);\n\n _this.updateData(data, idx);\n\n return _this;\n }\n\n EffectSymbol.prototype.stopEffectAnimation = function () {\n this.childAt(1).removeAll();\n };\n\n EffectSymbol.prototype.startEffectAnimation = function (effectCfg) {\n var symbolType = effectCfg.symbolType;\n var color = effectCfg.color;\n var rippleGroup = this.childAt(1);\n\n for (var i = 0; i < EFFECT_RIPPLE_NUMBER; i++) {\n var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\n ripplePath.attr({\n style: {\n strokeNoScale: true\n },\n z2: 99,\n silent: true,\n scaleX: 0.5,\n scaleY: 0.5\n });\n var delay = -i / EFFECT_RIPPLE_NUMBER * effectCfg.period + effectCfg.effectOffset;\n ripplePath.animate('', true).when(effectCfg.period, {\n scale: [effectCfg.rippleScale / 2, effectCfg.rippleScale / 2]\n }).delay(delay).start();\n ripplePath.animateStyle(true).when(effectCfg.period, {\n opacity: 0\n }).delay(delay).start();\n rippleGroup.add(ripplePath);\n }\n\n updateRipplePath(rippleGroup, effectCfg);\n };\n\n EffectSymbol.prototype.updateEffectAnimation = function (effectCfg) {\n var oldEffectCfg = this._effectCfg;\n var rippleGroup = this.childAt(1);\n var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale'];\n\n for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\n var propName = DIFFICULT_PROPS[i];\n\n if (oldEffectCfg[propName] !== effectCfg[propName]) {\n this.stopEffectAnimation();\n this.startEffectAnimation(effectCfg);\n return;\n }\n }\n\n updateRipplePath(rippleGroup, effectCfg);\n };\n\n EffectSymbol.prototype.highlight = function () {\n enterEmphasis(this);\n };\n\n EffectSymbol.prototype.downplay = function () {\n leaveEmphasis(this);\n };\n\n EffectSymbol.prototype.updateData = function (data, idx) {\n var _this = this;\n\n var seriesModel = data.hostModel;\n this.childAt(0).updateData(data, idx);\n var rippleGroup = this.childAt(1);\n var itemModel = data.getItemModel(idx);\n var symbolType = data.getItemVisual(idx, 'symbol');\n var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n var symbolStyle = data.getItemVisual(idx, 'style');\n var color = symbolStyle && symbolStyle.fill;\n rippleGroup.setScale(symbolSize);\n rippleGroup.traverse(function (ripplePath) {\n ripplePath.setStyle('fill', color);\n });\n var symbolOffset = itemModel.getShallow('symbolOffset');\n\n if (symbolOffset) {\n rippleGroup.x = parsePercent(symbolOffset[0], symbolSize[0]);\n rippleGroup.y = parsePercent(symbolOffset[1], symbolSize[1]);\n }\n\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n var effectCfg = {};\n effectCfg.showEffectOn = seriesModel.get('showEffectOn');\n effectCfg.rippleScale = itemModel.get(['rippleEffect', 'scale']);\n effectCfg.brushType = itemModel.get(['rippleEffect', 'brushType']);\n effectCfg.period = itemModel.get(['rippleEffect', 'period']) * 1000;\n effectCfg.effectOffset = idx / data.count();\n effectCfg.z = seriesModel.getShallow('z') || 0;\n effectCfg.zlevel = seriesModel.getShallow('zlevel') || 0;\n effectCfg.symbolType = symbolType;\n effectCfg.color = color;\n effectCfg.rippleEffectColor = itemModel.get(['rippleEffect', 'color']);\n this.off('mouseover').off('mouseout').off('emphasis').off('normal');\n\n if (effectCfg.showEffectOn === 'render') {\n this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg);\n this._effectCfg = effectCfg;\n } else {\n this._effectCfg = null;\n this.stopEffectAnimation();\n\n this.onHoverStateChange = function (toState) {\n if (toState === 'emphasis') {\n if (effectCfg.showEffectOn !== 'render') {\n _this.startEffectAnimation(effectCfg);\n }\n } else if (toState === 'normal') {\n if (effectCfg.showEffectOn !== 'render') {\n _this.stopEffectAnimation();\n }\n }\n };\n }\n\n this._effectCfg = effectCfg;\n enableHoverEmphasis(this);\n };\n\n ;\n\n EffectSymbol.prototype.fadeOut = function (cb) {\n this.off('mouseover').off('mouseout');\n cb && cb();\n };\n\n ;\n return EffectSymbol;\n}(Group);\n\nzrUtil.inherits(EffectSymbol, Group);\nexport default EffectSymbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport EffectSymbol from '../helper/EffectSymbol';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar EffectScatterView = function (_super) {\n __extends(EffectScatterView, _super);\n\n function EffectScatterView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = EffectScatterView.type;\n return _this;\n }\n\n EffectScatterView.prototype.init = function () {\n this._symbolDraw = new SymbolDraw(EffectSymbol);\n };\n\n EffectScatterView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var effectSymbolDraw = this._symbolDraw;\n effectSymbolDraw.updateData(data);\n this.group.add(effectSymbolDraw.group);\n };\n\n EffectScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n this.group.dirty();\n var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n if (res.progress) {\n res.progress({\n start: 0,\n end: data.count(),\n count: data.count()\n }, data);\n }\n\n this._symbolDraw.updateLayout();\n };\n\n EffectScatterView.prototype._updateGroupTransform = function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.getRoamTransform) {\n this.group.transform = matrix.clone(coordSys.getRoamTransform());\n this.group.decomposeTransform();\n }\n };\n\n EffectScatterView.prototype.remove = function (ecModel, api) {\n this._symbolDraw && this._symbolDraw.remove(true);\n };\n\n EffectScatterView.type = 'effectScatter';\n return EffectScatterView;\n}(ChartView);\n\nexport default EffectScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar EffectScatterSeriesModel = function (_super) {\n __extends(EffectScatterSeriesModel, _super);\n\n function EffectScatterSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = EffectScatterSeriesModel.type;\n _this.hasSymbolVisual = true;\n return _this;\n }\n\n EffectScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true\n });\n };\n\n EffectScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n return selectors.point(data.getItemLayout(dataIndex));\n };\n\n EffectScatterSeriesModel.type = 'series.effectScatter';\n EffectScatterSeriesModel.dependencies = ['grid', 'polar'];\n EffectScatterSeriesModel.defaultOption = {\n coordinateSystem: 'cartesian2d',\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n effectType: 'ripple',\n progressive: 0,\n showEffectOn: 'render',\n rippleEffect: {\n period: 4,\n scale: 2.5,\n brushType: 'fill'\n },\n symbolSize: 10\n };\n return EffectScatterSeriesModel;\n}(SeriesModel);\n\nexport default EffectScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport EffectScatterView from './EffectScatterView';\nimport EffectScatterSeriesModel from './EffectScatterSeries';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n registers.registerChartView(EffectScatterView);\n registers.registerSeriesModel(EffectScatterSeriesModel);\n registers.registerLayout(layoutPoints('effectScatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport Line from './Line';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as curveUtil from 'zrender/lib/core/curve';\n\nvar EffectLine = function (_super) {\n __extends(EffectLine, _super);\n\n function EffectLine(lineData, idx, seriesScope) {\n var _this = _super.call(this) || this;\n\n _this.add(_this.createLine(lineData, idx, seriesScope));\n\n _this._updateEffectSymbol(lineData, idx);\n\n return _this;\n }\n\n EffectLine.prototype.createLine = function (lineData, idx, seriesScope) {\n return new Line(lineData, idx, seriesScope);\n };\n\n EffectLine.prototype._updateEffectSymbol = function (lineData, idx) {\n var itemModel = lineData.getItemModel(idx);\n var effectModel = itemModel.getModel('effect');\n var size = effectModel.get('symbolSize');\n var symbolType = effectModel.get('symbol');\n\n if (!zrUtil.isArray(size)) {\n size = [size, size];\n }\n\n var lineStyle = lineData.getItemVisual(idx, 'style');\n var color = effectModel.get('color') || lineStyle && lineStyle.stroke;\n var symbol = this.childAt(1);\n\n if (this._symbolType !== symbolType) {\n this.remove(symbol);\n symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\n symbol.z2 = 100;\n symbol.culling = true;\n this.add(symbol);\n }\n\n if (!symbol) {\n return;\n }\n\n symbol.setStyle('shadowColor', color);\n symbol.setStyle(effectModel.getItemStyle(['color']));\n symbol.scaleX = size[0];\n symbol.scaleY = size[1];\n symbol.setColor(color);\n this._symbolType = symbolType;\n this._symbolScale = size;\n\n this._updateEffectAnimation(lineData, effectModel, idx);\n };\n\n EffectLine.prototype._updateEffectAnimation = function (lineData, effectModel, idx) {\n var symbol = this.childAt(1);\n\n if (!symbol) {\n return;\n }\n\n var self = this;\n var points = lineData.getItemLayout(idx);\n var period = effectModel.get('period') * 1000;\n var loop = effectModel.get('loop');\n var constantSpeed = effectModel.get('constantSpeed');\n var delayExpr = zrUtil.retrieve(effectModel.get('delay'), function (idx) {\n return idx / lineData.count() * period / 3;\n });\n symbol.ignore = true;\n\n this._updateAnimationPoints(symbol, points);\n\n if (constantSpeed > 0) {\n period = this._getLineLength(symbol) / constantSpeed * 1000;\n }\n\n if (period !== this._period || loop !== this._loop) {\n symbol.stopAnimation();\n\n if (period > 0) {\n var delayNum = void 0;\n\n if (typeof delayExpr === 'function') {\n delayNum = delayExpr(idx);\n } else {\n delayNum = delayExpr;\n }\n\n if (symbol.__t > 0) {\n delayNum = -period * symbol.__t;\n }\n\n symbol.__t = 0;\n var animator = symbol.animate('', loop).when(period, {\n __t: 1\n }).delay(delayNum).during(function () {\n self._updateSymbolPosition(symbol);\n });\n\n if (!loop) {\n animator.done(function () {\n self.remove(symbol);\n });\n }\n\n animator.start();\n }\n }\n\n this._period = period;\n this._loop = loop;\n };\n\n EffectLine.prototype._getLineLength = function (symbol) {\n return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2);\n };\n\n EffectLine.prototype._updateAnimationPoints = function (symbol, points) {\n symbol.__p1 = points[0];\n symbol.__p2 = points[1];\n symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];\n };\n\n EffectLine.prototype.updateData = function (lineData, idx, seriesScope) {\n this.childAt(0).updateData(lineData, idx, seriesScope);\n\n this._updateEffectSymbol(lineData, idx);\n };\n\n EffectLine.prototype._updateSymbolPosition = function (symbol) {\n var p1 = symbol.__p1;\n var p2 = symbol.__p2;\n var cp1 = symbol.__cp1;\n var t = symbol.__t;\n var pos = [symbol.x, symbol.y];\n var lastPos = pos.slice();\n var quadraticAt = curveUtil.quadraticAt;\n var quadraticDerivativeAt = curveUtil.quadraticDerivativeAt;\n pos[0] = quadraticAt(p1[0], cp1[0], p2[0], t);\n pos[1] = quadraticAt(p1[1], cp1[1], p2[1], t);\n var tx = quadraticDerivativeAt(p1[0], cp1[0], p2[0], t);\n var ty = quadraticDerivativeAt(p1[1], cp1[1], p2[1], t);\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n\n if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\n if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\n symbol.scaleY = vec2.dist(lastPos, pos) * 1.05;\n\n if (t === 1) {\n pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\n pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\n }\n } else if (symbol.__lastT === 1) {\n symbol.scaleY = 2 * vec2.dist(p1, pos);\n } else {\n symbol.scaleY = this._symbolScale[1];\n }\n }\n\n symbol.__lastT = symbol.__t;\n symbol.ignore = false;\n symbol.x = pos[0];\n symbol.y = pos[1];\n };\n\n EffectLine.prototype.updateLayout = function (lineData, idx) {\n this.childAt(0).updateLayout(lineData, idx);\n var effectModel = lineData.getItemModel(idx).getModel('effect');\n\n this._updateEffectAnimation(lineData, effectModel, idx);\n };\n\n return EffectLine;\n}(graphic.Group);\n\nexport default EffectLine;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\n\nvar Polyline = function (_super) {\n __extends(Polyline, _super);\n\n function Polyline(lineData, idx, seriesScope) {\n var _this = _super.call(this) || this;\n\n _this._createPolyline(lineData, idx, seriesScope);\n\n return _this;\n }\n\n Polyline.prototype._createPolyline = function (lineData, idx, seriesScope) {\n var points = lineData.getItemLayout(idx);\n var line = new graphic.Polyline({\n shape: {\n points: points\n }\n });\n this.add(line);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n };\n\n ;\n\n Polyline.prototype.updateData = function (lineData, idx, seriesScope) {\n var seriesModel = lineData.hostModel;\n var line = this.childAt(0);\n var target = {\n shape: {\n points: lineData.getItemLayout(idx)\n }\n };\n graphic.updateProps(line, target, seriesModel, idx);\n\n this._updateCommonStl(lineData, idx, seriesScope);\n };\n\n ;\n\n Polyline.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n var line = this.childAt(0);\n var itemModel = lineData.getItemModel(idx);\n var hoverLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n\n if (!seriesScope || lineData.hasItemOption) {\n hoverLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n }\n\n line.useStyle(lineData.getItemVisual(idx, 'style'));\n line.style.fill = null;\n line.style.strokeNoScale = true;\n var lineEmphasisState = line.ensureState('emphasis');\n lineEmphasisState.style = hoverLineStyle;\n enableHoverEmphasis(this);\n };\n\n ;\n\n Polyline.prototype.updateLayout = function (lineData, idx) {\n var polyline = this.childAt(0);\n polyline.setShape('points', lineData.getItemLayout(idx));\n };\n\n ;\n return Polyline;\n}(graphic.Group);\n\nexport default Polyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Polyline from './Polyline';\nimport EffectLine from './EffectLine';\nimport * as vec2 from 'zrender/lib/core/vector';\n\nvar EffectPolyline = function (_super) {\n __extends(EffectPolyline, _super);\n\n function EffectPolyline() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this._lastFrame = 0;\n _this._lastFramePercent = 0;\n return _this;\n }\n\n EffectPolyline.prototype.createLine = function (lineData, idx, seriesScope) {\n return new Polyline(lineData, idx, seriesScope);\n };\n\n ;\n\n EffectPolyline.prototype._updateAnimationPoints = function (symbol, points) {\n this._points = points;\n var accLenArr = [0];\n var len = 0;\n\n for (var i = 1; i < points.length; i++) {\n var p1 = points[i - 1];\n var p2 = points[i];\n len += vec2.dist(p1, p2);\n accLenArr.push(len);\n }\n\n if (len === 0) {\n this._length = 0;\n return;\n }\n\n for (var i = 0; i < accLenArr.length; i++) {\n accLenArr[i] /= len;\n }\n\n this._offsets = accLenArr;\n this._length = len;\n };\n\n ;\n\n EffectPolyline.prototype._getLineLength = function () {\n return this._length;\n };\n\n ;\n\n EffectPolyline.prototype._updateSymbolPosition = function (symbol) {\n var t = symbol.__t;\n var points = this._points;\n var offsets = this._offsets;\n var len = points.length;\n\n if (!offsets) {\n return;\n }\n\n var lastFrame = this._lastFrame;\n var frame;\n\n if (t < this._lastFramePercent) {\n var start = Math.min(lastFrame + 1, len - 1);\n\n for (frame = start; frame >= 0; frame--) {\n if (offsets[frame] <= t) {\n break;\n }\n }\n\n frame = Math.min(frame, len - 2);\n } else {\n for (frame = lastFrame; frame < len; frame++) {\n if (offsets[frame] > t) {\n break;\n }\n }\n\n frame = Math.min(frame - 1, len - 2);\n }\n\n var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]);\n var p0 = points[frame];\n var p1 = points[frame + 1];\n symbol.x = p0[0] * (1 - p) + p * p1[0];\n symbol.y = p0[1] * (1 - p) + p * p1[1];\n var tx = p1[0] - p0[0];\n var ty = p1[1] - p0[1];\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n this._lastFrame = frame;\n this._lastFramePercent = t;\n symbol.ignore = false;\n };\n\n ;\n return EffectPolyline;\n}(EffectLine);\n\nexport default EffectPolyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as lineContain from 'zrender/lib/contain/line';\nimport * as quadraticContain from 'zrender/lib/contain/quadratic';\nimport { getECData } from '../../util/innerStore';\n\nvar LargeLinesPathShape = function () {\n function LargeLinesPathShape() {\n this.polyline = false;\n this.curveness = 0;\n this.segs = [];\n }\n\n return LargeLinesPathShape;\n}();\n\nvar LargeLinesPath = function (_super) {\n __extends(LargeLinesPath, _super);\n\n function LargeLinesPath(opts) {\n return _super.call(this, opts) || this;\n }\n\n LargeLinesPath.prototype.getDefaultStyle = function () {\n return {\n stroke: '#000',\n fill: null\n };\n };\n\n LargeLinesPath.prototype.getDefaultShape = function () {\n return new LargeLinesPathShape();\n };\n\n LargeLinesPath.prototype.buildPath = function (ctx, shape) {\n var segs = shape.segs;\n var curveness = shape.curveness;\n\n if (shape.polyline) {\n for (var i = 0; i < segs.length;) {\n var count = segs[i++];\n\n if (count > 0) {\n ctx.moveTo(segs[i++], segs[i++]);\n\n for (var k = 1; k < count; k++) {\n ctx.lineTo(segs[i++], segs[i++]);\n }\n }\n }\n } else {\n for (var i = 0; i < segs.length;) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n var x1 = segs[i++];\n var y1 = segs[i++];\n ctx.moveTo(x0, y0);\n\n if (curveness > 0) {\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n ctx.quadraticCurveTo(x2, y2, x1, y1);\n } else {\n ctx.lineTo(x1, y1);\n }\n }\n }\n };\n\n LargeLinesPath.prototype.findDataIndex = function (x, y) {\n var shape = this.shape;\n var segs = shape.segs;\n var curveness = shape.curveness;\n var lineWidth = this.style.lineWidth;\n\n if (shape.polyline) {\n var dataIndex = 0;\n\n for (var i = 0; i < segs.length;) {\n var count = segs[i++];\n\n if (count > 0) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n\n for (var k = 1; k < count; k++) {\n var x1 = segs[i++];\n var y1 = segs[i++];\n\n if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n }\n }\n\n dataIndex++;\n }\n } else {\n var dataIndex = 0;\n\n for (var i = 0; i < segs.length;) {\n var x0 = segs[i++];\n var y0 = segs[i++];\n var x1 = segs[i++];\n var y1 = segs[i++];\n\n if (curveness > 0) {\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n\n if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n } else {\n if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n return dataIndex;\n }\n }\n\n dataIndex++;\n }\n }\n\n return -1;\n };\n\n return LargeLinesPath;\n}(graphic.Path);\n\nvar LargeLineDraw = function () {\n function LargeLineDraw() {\n this.group = new graphic.Group();\n }\n\n LargeLineDraw.prototype.isPersistent = function () {\n return !this._incremental;\n };\n\n ;\n\n LargeLineDraw.prototype.updateData = function (data) {\n this.group.removeAll();\n var lineEl = new LargeLinesPath({\n rectHover: true,\n cursor: 'default'\n });\n lineEl.setShape({\n segs: data.getLayout('linesPoints')\n });\n\n this._setCommon(lineEl, data);\n\n this.group.add(lineEl);\n this._incremental = null;\n };\n\n ;\n\n LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\n this.group.removeAll();\n\n this._clearIncremental();\n\n if (data.count() > 5e5) {\n if (!this._incremental) {\n this._incremental = new IncrementalDisplayable({\n silent: true\n });\n }\n\n this.group.add(this._incremental);\n } else {\n this._incremental = null;\n }\n };\n\n ;\n\n LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\n var lineEl = new LargeLinesPath();\n lineEl.setShape({\n segs: data.getLayout('linesPoints')\n });\n\n this._setCommon(lineEl, data, !!this._incremental);\n\n if (!this._incremental) {\n lineEl.rectHover = true;\n lineEl.cursor = 'default';\n lineEl.__startIndex = taskParams.start;\n this.group.add(lineEl);\n } else {\n this._incremental.addDisplayable(lineEl, true);\n }\n };\n\n ;\n\n LargeLineDraw.prototype.remove = function () {\n this._clearIncremental();\n\n this._incremental = null;\n this.group.removeAll();\n };\n\n ;\n\n LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\n var hostModel = data.hostModel;\n lineEl.setShape({\n polyline: hostModel.get('polyline'),\n curveness: hostModel.get(['lineStyle', 'curveness'])\n });\n lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\n lineEl.style.strokeNoScale = true;\n var style = data.getVisual('style');\n\n if (style && style.stroke) {\n lineEl.setStyle('stroke', style.stroke);\n }\n\n lineEl.setStyle('fill', null);\n\n if (!isIncremental) {\n var ecData_1 = getECData(lineEl);\n ecData_1.seriesIndex = hostModel.seriesIndex;\n lineEl.on('mousemove', function (e) {\n ecData_1.dataIndex = null;\n var dataIndex = lineEl.findDataIndex(e.offsetX, e.offsetY);\n\n if (dataIndex > 0) {\n ecData_1.dataIndex = dataIndex + lineEl.__startIndex;\n }\n });\n }\n };\n\n ;\n\n LargeLineDraw.prototype._clearIncremental = function () {\n var incremental = this._incremental;\n\n if (incremental) {\n incremental.clearDisplaybles();\n }\n };\n\n ;\n return LargeLineDraw;\n}();\n\nexport default LargeLineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createRenderPlanner from '../helper/createRenderPlanner';\nvar linesLayout = {\n seriesType: 'lines',\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var isPolyline = seriesModel.get('polyline');\n var isLarge = seriesModel.pipelineContext.large;\n return {\n progress: function (params, lineData) {\n var lineCoords = [];\n\n if (isLarge) {\n var points = void 0;\n var segCount = params.end - params.start;\n\n if (isPolyline) {\n var totalCoordsCount = 0;\n\n for (var i = params.start; i < params.end; i++) {\n totalCoordsCount += seriesModel.getLineCoordsCount(i);\n }\n\n points = new Float32Array(segCount + totalCoordsCount * 2);\n } else {\n points = new Float32Array(segCount * 4);\n }\n\n var offset = 0;\n var pt = [];\n\n for (var i = params.start; i < params.end; i++) {\n var len = seriesModel.getLineCoords(i, lineCoords);\n\n if (isPolyline) {\n points[offset++] = len;\n }\n\n for (var k = 0; k < len; k++) {\n pt = coordSys.dataToPoint(lineCoords[k], false, pt);\n points[offset++] = pt[0];\n points[offset++] = pt[1];\n }\n }\n\n lineData.setLayout('linesPoints', points);\n } else {\n for (var i = params.start; i < params.end; i++) {\n var itemModel = lineData.getItemModel(i);\n var len = seriesModel.getLineCoords(i, lineCoords);\n var pts = [];\n\n if (isPolyline) {\n for (var j = 0; j < len; j++) {\n pts.push(coordSys.dataToPoint(lineCoords[j]));\n }\n } else {\n pts[0] = coordSys.dataToPoint(lineCoords[0]);\n pts[1] = coordSys.dataToPoint(lineCoords[1]);\n var curveness = itemModel.get(['lineStyle', 'curveness']);\n\n if (+curveness) {\n pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness];\n }\n }\n\n lineData.setItemLayout(i, pts);\n }\n }\n }\n };\n }\n};\nexport default linesLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LineDraw from '../helper/LineDraw';\nimport EffectLine from '../helper/EffectLine';\nimport Line from '../helper/Line';\nimport Polyline from '../helper/Polyline';\nimport EffectPolyline from '../helper/EffectPolyline';\nimport LargeLineDraw from '../helper/LargeLineDraw';\nimport linesLayout from './linesLayout';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport ChartView from '../../view/Chart';\n\nvar LinesView = function (_super) {\n __extends(LinesView, _super);\n\n function LinesView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = LinesView.type;\n return _this;\n }\n\n LinesView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var lineDraw = this._updateLineDraw(data, seriesModel);\n\n var zlevel = seriesModel.get('zlevel');\n var trailLength = seriesModel.get(['effect', 'trailLength']);\n var zr = api.getZr();\n var isSvg = zr.painter.getType() === 'svg';\n\n if (!isSvg) {\n zr.painter.getLayer(zlevel).clear(true);\n }\n\n if (this._lastZlevel != null && !isSvg) {\n zr.configLayer(this._lastZlevel, {\n motionBlur: false\n });\n }\n\n if (this._showEffect(seriesModel) && trailLength) {\n if (process.env.NODE_ENV !== 'production') {\n var notInIndividual_1 = false;\n ecModel.eachSeries(function (otherSeriesModel) {\n if (otherSeriesModel !== seriesModel && otherSeriesModel.get('zlevel') === zlevel) {\n notInIndividual_1 = true;\n }\n });\n notInIndividual_1 && console.warn('Lines with trail effect should have an individual zlevel');\n }\n\n if (!isSvg) {\n zr.configLayer(zlevel, {\n motionBlur: true,\n lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\n });\n }\n }\n\n lineDraw.updateData(data);\n var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\n\n if (clipPath) {\n this.group.setClipPath(clipPath);\n } else {\n this.group.removeClipPath();\n }\n\n this._lastZlevel = zlevel;\n this._finished = true;\n };\n\n LinesView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n\n var lineDraw = this._updateLineDraw(data, seriesModel);\n\n lineDraw.incrementalPrepareUpdate(data);\n\n this._clearLayer(api);\n\n this._finished = false;\n };\n\n LinesView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\n\n this._finished = taskParams.end === seriesModel.getData().count();\n };\n\n LinesView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var pipelineContext = seriesModel.pipelineContext;\n\n if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\n return {\n update: true\n };\n } else {\n var res = linesLayout.reset(seriesModel, ecModel, api);\n\n if (res.progress) {\n res.progress({\n start: 0,\n end: data.count(),\n count: data.count()\n }, data);\n }\n\n this._lineDraw.updateLayout();\n\n this._clearLayer(api);\n }\n };\n\n LinesView.prototype._updateLineDraw = function (data, seriesModel) {\n var lineDraw = this._lineDraw;\n\n var hasEffect = this._showEffect(seriesModel);\n\n var isPolyline = !!seriesModel.get('polyline');\n var pipelineContext = seriesModel.pipelineContext;\n var isLargeDraw = pipelineContext.large;\n\n if (process.env.NODE_ENV !== 'production') {\n if (hasEffect && isLargeDraw) {\n console.warn('Large lines not support effect');\n }\n }\n\n if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) {\n if (lineDraw) {\n lineDraw.remove();\n }\n\n lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline : Polyline : hasEffect ? EffectLine : Line);\n this._hasEffet = hasEffect;\n this._isPolyline = isPolyline;\n this._isLargeDraw = isLargeDraw;\n this.group.removeAll();\n }\n\n this.group.add(lineDraw.group);\n return lineDraw;\n };\n\n LinesView.prototype._showEffect = function (seriesModel) {\n return !!seriesModel.get(['effect', 'show']);\n };\n\n LinesView.prototype._clearLayer = function (api) {\n var zr = api.getZr();\n var isSvg = zr.painter.getType() === 'svg';\n\n if (!isSvg && this._lastZlevel != null) {\n zr.painter.getLayer(this._lastZlevel).clear(true);\n }\n };\n\n LinesView.prototype.remove = function (ecModel, api) {\n this._lineDraw && this._lineDraw.remove();\n this._lineDraw = null;\n\n this._clearLayer(api);\n };\n\n LinesView.type = 'lines';\n return LinesView;\n}(ChartView);\n\nexport default LinesView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport List from '../../data/List';\nimport { concatArray, mergeAll, map } from 'zrender/lib/core/util';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nvar Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\nvar Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\n\nfunction compatEc2(seriesOpt) {\n var data = seriesOpt.data;\n\n if (data && data[0] && data[0][0] && data[0][0].coord) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Lines data configuration has been changed to' + ' { coords:[[1,2],[2,3]] }');\n }\n\n seriesOpt.data = map(data, function (itemOpt) {\n var coords = [itemOpt[0].coord, itemOpt[1].coord];\n var target = {\n coords: coords\n };\n\n if (itemOpt[0].name) {\n target.fromName = itemOpt[0].name;\n }\n\n if (itemOpt[1].name) {\n target.toName = itemOpt[1].name;\n }\n\n return mergeAll([target, itemOpt[0], itemOpt[1]]);\n });\n }\n}\n\nvar LinesSeriesModel = function (_super) {\n __extends(LinesSeriesModel, _super);\n\n function LinesSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = LinesSeriesModel.type;\n _this.visualStyleAccessPath = 'lineStyle';\n _this.visualDrawType = 'stroke';\n return _this;\n }\n\n LinesSeriesModel.prototype.init = function (option) {\n option.data = option.data || [];\n compatEc2(option);\n\n var result = this._processFlatCoordsArray(option.data);\n\n this._flatCoords = result.flatCoords;\n this._flatCoordsOffset = result.flatCoordsOffset;\n\n if (result.flatCoords) {\n option.data = new Float32Array(result.count);\n }\n\n _super.prototype.init.apply(this, arguments);\n };\n\n LinesSeriesModel.prototype.mergeOption = function (option) {\n compatEc2(option);\n\n if (option.data) {\n var result = this._processFlatCoordsArray(option.data);\n\n this._flatCoords = result.flatCoords;\n this._flatCoordsOffset = result.flatCoordsOffset;\n\n if (result.flatCoords) {\n option.data = new Float32Array(result.count);\n }\n }\n\n _super.prototype.mergeOption.apply(this, arguments);\n };\n\n LinesSeriesModel.prototype.appendData = function (params) {\n var result = this._processFlatCoordsArray(params.data);\n\n if (result.flatCoords) {\n if (!this._flatCoords) {\n this._flatCoords = result.flatCoords;\n this._flatCoordsOffset = result.flatCoordsOffset;\n } else {\n this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\n this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\n }\n\n params.data = new Float32Array(result.count);\n }\n\n this.getRawData().appendData(params.data);\n };\n\n LinesSeriesModel.prototype._getCoordsFromItemModel = function (idx) {\n var itemModel = this.getData().getItemModel(idx);\n var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow('coords');\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(coords instanceof Array && coords.length > 0 && coords[0] instanceof Array)) {\n throw new Error('Invalid coords ' + JSON.stringify(coords) + '. Lines must have 2d coords array in data item.');\n }\n }\n\n return coords;\n };\n\n LinesSeriesModel.prototype.getLineCoordsCount = function (idx) {\n if (this._flatCoordsOffset) {\n return this._flatCoordsOffset[idx * 2 + 1];\n } else {\n return this._getCoordsFromItemModel(idx).length;\n }\n };\n\n LinesSeriesModel.prototype.getLineCoords = function (idx, out) {\n if (this._flatCoordsOffset) {\n var offset = this._flatCoordsOffset[idx * 2];\n var len = this._flatCoordsOffset[idx * 2 + 1];\n\n for (var i = 0; i < len; i++) {\n out[i] = out[i] || [];\n out[i][0] = this._flatCoords[offset + i * 2];\n out[i][1] = this._flatCoords[offset + i * 2 + 1];\n }\n\n return len;\n } else {\n var coords = this._getCoordsFromItemModel(idx);\n\n for (var i = 0; i < coords.length; i++) {\n out[i] = out[i] || [];\n out[i][0] = coords[i][0];\n out[i][1] = coords[i][1];\n }\n\n return coords.length;\n }\n };\n\n LinesSeriesModel.prototype._processFlatCoordsArray = function (data) {\n var startOffset = 0;\n\n if (this._flatCoords) {\n startOffset = this._flatCoords.length;\n }\n\n if (typeof data[0] === 'number') {\n var len = data.length;\n var coordsOffsetAndLenStorage = new Uint32Arr(len);\n var coordsStorage = new Float64Arr(len);\n var coordsCursor = 0;\n var offsetCursor = 0;\n var dataCount = 0;\n\n for (var i = 0; i < len;) {\n dataCount++;\n var count = data[i++];\n coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset;\n coordsOffsetAndLenStorage[offsetCursor++] = count;\n\n for (var k = 0; k < count; k++) {\n var x = data[i++];\n var y = data[i++];\n coordsStorage[coordsCursor++] = x;\n coordsStorage[coordsCursor++] = y;\n\n if (i > len) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error('Invalid data format.');\n }\n }\n }\n }\n\n return {\n flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\n flatCoords: coordsStorage,\n count: dataCount\n };\n }\n\n return {\n flatCoordsOffset: null,\n flatCoords: null,\n count: data.length\n };\n };\n\n LinesSeriesModel.prototype.getInitialData = function (option, ecModel) {\n if (process.env.NODE_ENV !== 'production') {\n var CoordSys = CoordinateSystem.get(option.coordinateSystem);\n\n if (!CoordSys) {\n throw new Error('Unkown coordinate system ' + option.coordinateSystem);\n }\n }\n\n var lineData = new List(['value'], this);\n lineData.hasItemOption = false;\n lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\n if (dataItem instanceof Array) {\n return NaN;\n } else {\n lineData.hasItemOption = true;\n var value = dataItem.value;\n\n if (value != null) {\n return value instanceof Array ? value[dimIndex] : value;\n }\n }\n });\n return lineData;\n };\n\n LinesSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var data = this.getData();\n var itemModel = data.getItemModel(dataIndex);\n var name = itemModel.get('name');\n\n if (name) {\n return name;\n }\n\n var fromName = itemModel.get('fromName');\n var toName = itemModel.get('toName');\n var nameArr = [];\n fromName != null && nameArr.push(fromName);\n toName != null && nameArr.push(toName);\n return createTooltipMarkup('nameValue', {\n name: nameArr.join(' > ')\n });\n };\n\n LinesSeriesModel.prototype.preventIncremental = function () {\n return !!this.get(['effect', 'show']);\n };\n\n LinesSeriesModel.prototype.getProgressive = function () {\n var progressive = this.option.progressive;\n\n if (progressive == null) {\n return this.option.large ? 1e4 : this.get('progressive');\n }\n\n return progressive;\n };\n\n LinesSeriesModel.prototype.getProgressiveThreshold = function () {\n var progressiveThreshold = this.option.progressiveThreshold;\n\n if (progressiveThreshold == null) {\n return this.option.large ? 2e4 : this.get('progressiveThreshold');\n }\n\n return progressiveThreshold;\n };\n\n LinesSeriesModel.type = 'series.lines';\n LinesSeriesModel.dependencies = ['grid', 'polar', 'geo', 'calendar'];\n LinesSeriesModel.defaultOption = {\n coordinateSystem: 'geo',\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n xAxisIndex: 0,\n yAxisIndex: 0,\n symbol: ['none', 'none'],\n symbolSize: [10, 10],\n geoIndex: 0,\n effect: {\n show: false,\n period: 4,\n constantSpeed: 0,\n symbol: 'circle',\n symbolSize: 3,\n loop: true,\n trailLength: 0.2\n },\n large: false,\n largeThreshold: 2000,\n polyline: false,\n clip: true,\n label: {\n show: false,\n position: 'end'\n },\n lineStyle: {\n opacity: 0.5\n }\n };\n return LinesSeriesModel;\n}(SeriesModel);\n\nexport default LinesSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction normalize(a) {\n if (!(a instanceof Array)) {\n a = [a, a];\n }\n\n return a;\n}\n\nvar linesVisual = {\n seriesType: 'lines',\n reset: function (seriesModel) {\n var symbolType = normalize(seriesModel.get('symbol'));\n var symbolSize = normalize(seriesModel.get('symbolSize'));\n var data = seriesModel.getData();\n data.setVisual('fromSymbol', symbolType && symbolType[0]);\n data.setVisual('toSymbol', symbolType && symbolType[1]);\n data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n\n function dataEach(data, idx) {\n var itemModel = data.getItemModel(idx);\n var symbolType = normalize(itemModel.getShallow('symbol', true));\n var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\n symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\n symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\n symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\n }\n\n return {\n dataEach: data.hasItemOption ? dataEach : null\n };\n }\n};\nexport default linesVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LinesView from './LinesView';\nimport LinesSeriesModel from './LinesSeries';\nimport linesLayout from './linesLayout';\nimport linesVisual from './linesVisual';\nexport function install(registers) {\n registers.registerChartView(LinesView);\n registers.registerSeriesModel(LinesSeriesModel);\n registers.registerLayout(linesLayout);\n registers.registerVisual(linesVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar GRADIENT_LEVELS = 256;\n\nvar HeatmapLayer = function () {\n function HeatmapLayer() {\n this.blurSize = 30;\n this.pointSize = 20;\n this.maxOpacity = 1;\n this.minOpacity = 0;\n this._gradientPixels = {\n inRange: null,\n outOfRange: null\n };\n var canvas = zrUtil.createCanvas();\n this.canvas = canvas;\n }\n\n HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\n var brush = this._getBrush();\n\n var gradientInRange = this._getGradient(colorFunc, 'inRange');\n\n var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\n\n var r = this.pointSize + this.blurSize;\n var canvas = this.canvas;\n var ctx = canvas.getContext('2d');\n var len = data.length;\n canvas.width = width;\n canvas.height = height;\n\n for (var i = 0; i < len; ++i) {\n var p = data[i];\n var x = p[0];\n var y = p[1];\n var value = p[2];\n var alpha = normalize(value);\n ctx.globalAlpha = alpha;\n ctx.drawImage(brush, x - r, y - r);\n }\n\n if (!canvas.width || !canvas.height) {\n return canvas;\n }\n\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n var pixels = imageData.data;\n var offset = 0;\n var pixelLen = pixels.length;\n var minOpacity = this.minOpacity;\n var maxOpacity = this.maxOpacity;\n var diffOpacity = maxOpacity - minOpacity;\n\n while (offset < pixelLen) {\n var alpha = pixels[offset + 3] / 256;\n var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4;\n\n if (alpha > 0) {\n var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange;\n alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\n pixels[offset++] = gradient[gradientOffset];\n pixels[offset++] = gradient[gradientOffset + 1];\n pixels[offset++] = gradient[gradientOffset + 2];\n pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\n } else {\n offset += 4;\n }\n }\n\n ctx.putImageData(imageData, 0, 0);\n return canvas;\n };\n\n HeatmapLayer.prototype._getBrush = function () {\n var brushCanvas = this._brushCanvas || (this._brushCanvas = zrUtil.createCanvas());\n var r = this.pointSize + this.blurSize;\n var d = r * 2;\n brushCanvas.width = d;\n brushCanvas.height = d;\n var ctx = brushCanvas.getContext('2d');\n ctx.clearRect(0, 0, d, d);\n ctx.shadowOffsetX = d;\n ctx.shadowBlur = this.blurSize;\n ctx.shadowColor = '#000';\n ctx.beginPath();\n ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fill();\n return brushCanvas;\n };\n\n HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\n var gradientPixels = this._gradientPixels;\n var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\n var color = [0, 0, 0, 0];\n var off = 0;\n\n for (var i = 0; i < 256; i++) {\n colorFunc[state](i / 255, true, color);\n pixelsSingleState[off++] = color[0];\n pixelsSingleState[off++] = color[1];\n pixelsSingleState[off++] = color[2];\n pixelsSingleState[off++] = color[3];\n }\n\n return pixelsSingleState;\n };\n\n return HeatmapLayer;\n}();\n\nexport default HeatmapLayer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport HeatmapLayer from './HeatmapLayer';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\n\nfunction getIsInPiecewiseRange(dataExtent, pieceList, selected) {\n var dataSpan = dataExtent[1] - dataExtent[0];\n pieceList = zrUtil.map(pieceList, function (piece) {\n return {\n interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan]\n };\n });\n var len = pieceList.length;\n var lastIndex = 0;\n return function (val) {\n var i;\n\n for (i = lastIndex; i < len; i++) {\n var interval = pieceList[i].interval;\n\n if (interval[0] <= val && val <= interval[1]) {\n lastIndex = i;\n break;\n }\n }\n\n if (i === len) {\n for (i = lastIndex - 1; i >= 0; i--) {\n var interval = pieceList[i].interval;\n\n if (interval[0] <= val && val <= interval[1]) {\n lastIndex = i;\n break;\n }\n }\n }\n\n return i >= 0 && i < len && selected[i];\n };\n}\n\nfunction getIsInContinuousRange(dataExtent, range) {\n var dataSpan = dataExtent[1] - dataExtent[0];\n range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan];\n return function (val) {\n return val >= range[0] && val <= range[1];\n };\n}\n\nfunction isGeoCoordSys(coordSys) {\n var dimensions = coordSys.dimensions;\n return dimensions[0] === 'lng' && dimensions[1] === 'lat';\n}\n\nvar HeatmapView = function (_super) {\n __extends(HeatmapView, _super);\n\n function HeatmapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = HeatmapView.type;\n return _this;\n }\n\n HeatmapView.prototype.render = function (seriesModel, ecModel, api) {\n var visualMapOfThisSeries;\n ecModel.eachComponent('visualMap', function (visualMap) {\n visualMap.eachTargetSeries(function (targetSeries) {\n if (targetSeries === seriesModel) {\n visualMapOfThisSeries = visualMap;\n }\n });\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (!visualMapOfThisSeries) {\n throw new Error('Heatmap must use with visualMap');\n }\n }\n\n this.group.removeAll();\n this._incrementalDisplayable = null;\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\n this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\n } else if (isGeoCoordSys(coordSys)) {\n this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\n }\n };\n\n HeatmapView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n this.group.removeAll();\n };\n\n HeatmapView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys) {\n if (isGeoCoordSys(coordSys)) {\n this.render(seriesModel, ecModel, api);\n } else {\n this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\n }\n }\n };\n\n HeatmapView.prototype._renderOnCartesianAndCalendar = function (seriesModel, api, start, end, incremental) {\n var coordSys = seriesModel.coordinateSystem;\n var width;\n var height;\n var xAxisExtent;\n var yAxisExtent;\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(xAxis.type === 'category' && yAxis.type === 'category')) {\n throw new Error('Heatmap on cartesian must have two category axes');\n }\n\n if (!(xAxis.onBand && yAxis.onBand)) {\n throw new Error('Heatmap on cartesian must have two axes with boundaryGap true');\n }\n }\n\n width = xAxis.getBandWidth();\n height = yAxis.getBandWidth();\n xAxisExtent = xAxis.scale.getExtent();\n yAxisExtent = yAxis.scale.getExtent();\n }\n\n var group = this.group;\n var data = seriesModel.getData();\n var emphasisStyle = seriesModel.getModel(['emphasis', 'itemStyle']).getItemStyle();\n var blurStyle = seriesModel.getModel(['blur', 'itemStyle']).getItemStyle();\n var selectStyle = seriesModel.getModel(['select', 'itemStyle']).getItemStyle();\n var labelStatesModels = getLabelStatesModels(seriesModel);\n var focus = seriesModel.get(['emphasis', 'focus']);\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n var dataDims = isCoordinateSystemType(coordSys, 'cartesian2d') ? [data.mapDimension('x'), data.mapDimension('y'), data.mapDimension('value')] : [data.mapDimension('time'), data.mapDimension('value')];\n\n for (var idx = start; idx < end; idx++) {\n var rect = void 0;\n var style = data.getItemVisual(idx, 'style');\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n var dataDimX = data.get(dataDims[0], idx);\n var dataDimY = data.get(dataDims[1], idx);\n\n if (isNaN(data.get(dataDims[2], idx)) || dataDimX < xAxisExtent[0] || dataDimX > xAxisExtent[1] || dataDimY < yAxisExtent[0] || dataDimY > yAxisExtent[1]) {\n continue;\n }\n\n var point = coordSys.dataToPoint([dataDimX, dataDimY]);\n rect = new graphic.Rect({\n shape: {\n x: Math.floor(Math.round(point[0]) - width / 2),\n y: Math.floor(Math.round(point[1]) - height / 2),\n width: Math.ceil(width),\n height: Math.ceil(height)\n },\n style: style\n });\n } else {\n if (isNaN(data.get(dataDims[1], idx))) {\n continue;\n }\n\n rect = new graphic.Rect({\n z2: 1,\n shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\n style: style\n });\n }\n\n var itemModel = data.getItemModel(idx);\n\n if (data.hasItemOption) {\n var emphasisModel = itemModel.getModel('emphasis');\n emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n focus = emphasisModel.get('focus');\n blurScope = emphasisModel.get('blurScope');\n labelStatesModels = getLabelStatesModels(itemModel);\n }\n\n var rawValue = seriesModel.getRawValue(idx);\n var defaultText = '-';\n\n if (rawValue && rawValue[2] != null) {\n defaultText = rawValue[2] + '';\n }\n\n setLabelStyle(rect, labelStatesModels, {\n labelFetcher: seriesModel,\n labelDataIndex: idx,\n defaultOpacity: style.opacity,\n defaultText: defaultText\n });\n rect.ensureState('emphasis').style = emphasisStyle;\n rect.ensureState('blur').style = blurStyle;\n rect.ensureState('select').style = selectStyle;\n enableHoverEmphasis(rect, focus, blurScope);\n rect.incremental = incremental;\n\n if (incremental) {\n rect.states.emphasis.hoverLayer = true;\n }\n\n group.add(rect);\n data.setItemGraphicEl(idx, rect);\n }\n };\n\n HeatmapView.prototype._renderOnGeo = function (geo, seriesModel, visualMapModel, api) {\n var inRangeVisuals = visualMapModel.targetVisuals.inRange;\n var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange;\n var data = seriesModel.getData();\n var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer();\n hmLayer.blurSize = seriesModel.get('blurSize');\n hmLayer.pointSize = seriesModel.get('pointSize');\n hmLayer.minOpacity = seriesModel.get('minOpacity');\n hmLayer.maxOpacity = seriesModel.get('maxOpacity');\n var rect = geo.getViewRect().clone();\n var roamTransform = geo.getRoamTransform();\n rect.applyTransform(roamTransform);\n var x = Math.max(rect.x, 0);\n var y = Math.max(rect.y, 0);\n var x2 = Math.min(rect.width + rect.x, api.getWidth());\n var y2 = Math.min(rect.height + rect.y, api.getHeight());\n var width = x2 - x;\n var height = y2 - y;\n var dims = [data.mapDimension('lng'), data.mapDimension('lat'), data.mapDimension('value')];\n var points = data.mapArray(dims, function (lng, lat, value) {\n var pt = geo.dataToPoint([lng, lat]);\n pt[0] -= x;\n pt[1] -= y;\n pt.push(value);\n return pt;\n });\n var dataExtent = visualMapModel.getExtent();\n var isInRange = visualMapModel.type === 'visualMap.continuous' ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\n hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\n inRange: inRangeVisuals.color.getColorMapper(),\n outOfRange: outOfRangeVisuals.color.getColorMapper()\n }, isInRange);\n var img = new graphic.Image({\n style: {\n width: width,\n height: height,\n x: x,\n y: y,\n image: hmLayer.canvas\n },\n silent: true\n });\n this.group.add(img);\n };\n\n HeatmapView.type = 'heatmap';\n return HeatmapView;\n}(ChartView);\n\nexport default HeatmapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\nimport CoordinateSystem from '../../core/CoordinateSystem';\n\nvar HeatmapSeriesModel = function (_super) {\n __extends(HeatmapSeriesModel, _super);\n\n function HeatmapSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = HeatmapSeriesModel.type;\n return _this;\n }\n\n HeatmapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n generateCoord: 'value'\n });\n };\n\n HeatmapSeriesModel.prototype.preventIncremental = function () {\n var coordSysCreator = CoordinateSystem.get(this.get('coordinateSystem'));\n\n if (coordSysCreator && coordSysCreator.dimensions) {\n return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\n }\n };\n\n HeatmapSeriesModel.type = 'series.heatmap';\n HeatmapSeriesModel.dependencies = ['grid', 'geo', 'calendar'];\n HeatmapSeriesModel.defaultOption = {\n coordinateSystem: 'cartesian2d',\n zlevel: 0,\n z: 2,\n geoIndex: 0,\n blurSize: 30,\n pointSize: 20,\n maxOpacity: 1,\n minOpacity: 0,\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n }\n };\n return HeatmapSeriesModel;\n}(SeriesModel);\n\nexport default HeatmapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport HeatmapView from './HeatmapView';\nimport HeatmapSeriesModel from './HeatmapSeries';\nexport function install(registers) {\n registers.registerChartView(HeatmapView);\n registers.registerSeriesModel(HeatmapSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol } from '../../util/symbol';\nimport { parsePercent, isNumeric } from '../../util/number';\nimport ChartView from '../../view/Chart';\nimport { getDefaultLabel } from '../helper/labelHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport { getECData } from '../../util/innerStore';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar LAYOUT_ATTRS = [{\n xy: 'x',\n wh: 'width',\n index: 0,\n posDesc: ['left', 'right']\n}, {\n xy: 'y',\n wh: 'height',\n index: 1,\n posDesc: ['top', 'bottom']\n}];\nvar pathForLineWidth = new graphic.Circle();\n\nvar PictorialBarView = function (_super) {\n __extends(PictorialBarView, _super);\n\n function PictorialBarView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PictorialBarView.type;\n return _this;\n }\n\n PictorialBarView.prototype.render = function (seriesModel, ecModel, api) {\n var group = this.group;\n var data = seriesModel.getData();\n var oldData = this._data;\n var cartesian = seriesModel.coordinateSystem;\n var baseAxis = cartesian.getBaseAxis();\n var isHorizontal = baseAxis.isHorizontal();\n var coordSysRect = cartesian.master.getRect();\n var opt = {\n ecSize: {\n width: api.getWidth(),\n height: api.getHeight()\n },\n seriesModel: seriesModel,\n coordSys: cartesian,\n coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]],\n isHorizontal: isHorizontal,\n valueDim: LAYOUT_ATTRS[+isHorizontal],\n categoryDim: LAYOUT_ATTRS[1 - +isHorizontal]\n };\n data.diff(oldData).add(function (dataIndex) {\n if (!data.hasValue(dataIndex)) {\n return;\n }\n\n var itemModel = getItemModel(data, dataIndex);\n var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\n var bar = createBar(data, opt, symbolMeta);\n data.setItemGraphicEl(dataIndex, bar);\n group.add(bar);\n updateCommon(bar, opt, symbolMeta);\n }).update(function (newIndex, oldIndex) {\n var bar = oldData.getItemGraphicEl(oldIndex);\n\n if (!data.hasValue(newIndex)) {\n group.remove(bar);\n return;\n }\n\n var itemModel = getItemModel(data, newIndex);\n var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\n var pictorialShapeStr = getShapeStr(data, symbolMeta);\n\n if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\n group.remove(bar);\n data.setItemGraphicEl(newIndex, null);\n bar = null;\n }\n\n if (bar) {\n updateBar(bar, opt, symbolMeta);\n } else {\n bar = createBar(data, opt, symbolMeta, true);\n }\n\n data.setItemGraphicEl(newIndex, bar);\n bar.__pictorialSymbolMeta = symbolMeta;\n group.add(bar);\n updateCommon(bar, opt, symbolMeta);\n }).remove(function (dataIndex) {\n var bar = oldData.getItemGraphicEl(dataIndex);\n bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\n }).execute();\n this._data = data;\n return this.group;\n };\n\n PictorialBarView.prototype.remove = function (ecModel, api) {\n var group = this.group;\n var data = this._data;\n\n if (ecModel.get('animation')) {\n if (data) {\n data.eachItemGraphicEl(function (bar) {\n removeBar(data, getECData(bar).dataIndex, ecModel, bar);\n });\n }\n } else {\n group.removeAll();\n }\n };\n\n PictorialBarView.type = 'pictorialBar';\n return PictorialBarView;\n}(ChartView);\n\nfunction getSymbolMeta(data, dataIndex, itemModel, opt) {\n var layout = data.getItemLayout(dataIndex);\n var symbolRepeat = itemModel.get('symbolRepeat');\n var symbolClip = itemModel.get('symbolClip');\n var symbolPosition = itemModel.get('symbolPosition') || 'start';\n var symbolRotate = itemModel.get('symbolRotate');\n var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\n var isAnimationEnabled = itemModel.isAnimationEnabled();\n var symbolMeta = {\n dataIndex: dataIndex,\n layout: layout,\n itemModel: itemModel,\n symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\n style: data.getItemVisual(dataIndex, 'style'),\n symbolClip: symbolClip,\n symbolRepeat: symbolRepeat,\n symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\n symbolPatternSize: symbolPatternSize,\n rotation: rotation,\n animationModel: isAnimationEnabled ? itemModel : null,\n hoverScale: isAnimationEnabled && itemModel.get(['emphasis', 'scale']),\n z2: itemModel.getShallow('z', true) || 0\n };\n prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\n prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\n prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\n var symbolSize = symbolMeta.symbolSize;\n var symbolOffset = itemModel.get('symbolOffset');\n\n if (zrUtil.isArray(symbolOffset)) {\n symbolOffset = [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])];\n }\n\n prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\n return symbolMeta;\n}\n\nfunction prepareBarLength(itemModel, symbolRepeat, layout, opt, outputSymbolMeta) {\n var valueDim = opt.valueDim;\n var symbolBoundingData = itemModel.get('symbolBoundingData');\n var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\n var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\n var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\n var boundingLength;\n\n if (zrUtil.isArray(symbolBoundingData)) {\n var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx];\n symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse();\n boundingLength = symbolBoundingExtent[pxSignIdx];\n } else if (symbolBoundingData != null) {\n boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\n } else if (symbolRepeat) {\n boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\n } else {\n boundingLength = layout[valueDim.wh];\n }\n\n outputSymbolMeta.boundingLength = boundingLength;\n\n if (symbolRepeat) {\n outputSymbolMeta.repeatCutLength = layout[valueDim.wh];\n }\n\n outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0;\n}\n\nfunction convertToCoordOnAxis(axis, value) {\n return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\n}\n\nfunction prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) {\n var valueDim = opt.valueDim;\n var categoryDim = opt.categoryDim;\n var categorySize = Math.abs(layout[categoryDim.wh]);\n var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\n var parsedSymbolSize;\n\n if (zrUtil.isArray(symbolSize)) {\n parsedSymbolSize = symbolSize.slice();\n } else {\n if (symbolSize == null) {\n parsedSymbolSize = ['100%', '100%'];\n } else {\n parsedSymbolSize = [symbolSize, symbolSize];\n }\n }\n\n parsedSymbolSize[categoryDim.index] = parsePercent(parsedSymbolSize[categoryDim.index], categorySize);\n parsedSymbolSize[valueDim.index] = parsePercent(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\n outputSymbolMeta.symbolSize = parsedSymbolSize;\n var symbolScale = outputSymbolMeta.symbolScale = [parsedSymbolSize[0] / symbolPatternSize, parsedSymbolSize[1] / symbolPatternSize];\n symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\n}\n\nfunction prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) {\n var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n\n if (valueLineWidth) {\n pathForLineWidth.attr({\n scaleX: symbolScale[0],\n scaleY: symbolScale[1],\n rotation: rotation\n });\n pathForLineWidth.updateTransform();\n valueLineWidth /= pathForLineWidth.getLineScale();\n valueLineWidth *= symbolScale[opt.valueDim.index];\n }\n\n outputSymbolMeta.valueLineWidth = valueLineWidth;\n}\n\nfunction prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) {\n var categoryDim = opt.categoryDim;\n var valueDim = opt.valueDim;\n var pxSign = outputSymbolMeta.pxSign;\n var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\n var pathLen = unitLength;\n\n if (symbolRepeat) {\n var absBoundingLength = Math.abs(boundingLength);\n var symbolMargin = zrUtil.retrieve(itemModel.get('symbolMargin'), '15%') + '';\n var hasEndGap = false;\n\n if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\n hasEndGap = true;\n symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\n }\n\n var symbolMarginNumeric = parsePercent(symbolMargin, symbolSize[valueDim.index]);\n var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0);\n var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\n var repeatSpecified = isNumeric(symbolRepeat);\n var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin);\n var mDiff = absBoundingLength - repeatTimes * unitLength;\n symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\n uLenWithMargin = unitLength + symbolMarginNumeric * 2;\n endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\n\n if (!repeatSpecified && symbolRepeat !== 'fixed') {\n repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;\n }\n\n pathLen = repeatTimes * uLenWithMargin - endFix;\n outputSymbolMeta.repeatTimes = repeatTimes;\n outputSymbolMeta.symbolMargin = symbolMarginNumeric;\n }\n\n var sizeFix = pxSign * (pathLen / 2);\n var pathPosition = outputSymbolMeta.pathPosition = [];\n pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\n pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2;\n\n if (symbolOffset) {\n pathPosition[0] += symbolOffset[0];\n pathPosition[1] += symbolOffset[1];\n }\n\n var bundlePosition = outputSymbolMeta.bundlePosition = [];\n bundlePosition[categoryDim.index] = layout[categoryDim.xy];\n bundlePosition[valueDim.index] = layout[valueDim.xy];\n var barRectShape = outputSymbolMeta.barRectShape = zrUtil.extend({}, layout);\n barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\n barRectShape[categoryDim.wh] = layout[categoryDim.wh];\n var clipShape = outputSymbolMeta.clipShape = {};\n clipShape[categoryDim.xy] = -layout[categoryDim.xy];\n clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\n clipShape[valueDim.xy] = 0;\n clipShape[valueDim.wh] = layout[valueDim.wh];\n}\n\nfunction createPath(symbolMeta) {\n var symbolPatternSize = symbolMeta.symbolPatternSize;\n var path = createSymbol(symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize);\n path.attr({\n culling: true\n });\n path.type !== 'image' && path.setStyle({\n strokeNoScale: true\n });\n return path;\n}\n\nfunction createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\n var bundle = bar.__pictorialBundle;\n var symbolSize = symbolMeta.symbolSize;\n var valueLineWidth = symbolMeta.valueLineWidth;\n var pathPosition = symbolMeta.pathPosition;\n var valueDim = opt.valueDim;\n var repeatTimes = symbolMeta.repeatTimes || 0;\n var index = 0;\n var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\n eachPath(bar, function (path) {\n path.__pictorialAnimationIndex = index;\n path.__pictorialRepeatTimes = repeatTimes;\n\n if (index < repeatTimes) {\n updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\n } else {\n updateAttr(path, null, {\n scaleX: 0,\n scaleY: 0\n }, symbolMeta, isUpdate, function () {\n bundle.remove(path);\n });\n }\n\n index++;\n });\n\n for (; index < repeatTimes; index++) {\n var path = createPath(symbolMeta);\n path.__pictorialAnimationIndex = index;\n path.__pictorialRepeatTimes = repeatTimes;\n bundle.add(path);\n var target = makeTarget(index);\n updateAttr(path, {\n x: target.x,\n y: target.y,\n scaleX: 0,\n scaleY: 0\n }, {\n scaleX: target.scaleX,\n scaleY: target.scaleY,\n rotation: target.rotation\n }, symbolMeta, isUpdate);\n }\n\n function makeTarget(index) {\n var position = pathPosition.slice();\n var pxSign = symbolMeta.pxSign;\n var i = index;\n\n if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\n i = repeatTimes - 1 - index;\n }\n\n position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\n return {\n x: position[0],\n y: position[1],\n scaleX: symbolMeta.symbolScale[0],\n scaleY: symbolMeta.symbolScale[1],\n rotation: symbolMeta.rotation\n };\n }\n}\n\nfunction createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\n var bundle = bar.__pictorialBundle;\n var mainPath = bar.__pictorialMainPath;\n\n if (!mainPath) {\n mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\n bundle.add(mainPath);\n updateAttr(mainPath, {\n x: symbolMeta.pathPosition[0],\n y: symbolMeta.pathPosition[1],\n scaleX: 0,\n scaleY: 0,\n rotation: symbolMeta.rotation\n }, {\n scaleX: symbolMeta.symbolScale[0],\n scaleY: symbolMeta.symbolScale[1]\n }, symbolMeta, isUpdate);\n } else {\n updateAttr(mainPath, null, {\n x: symbolMeta.pathPosition[0],\n y: symbolMeta.pathPosition[1],\n scaleX: symbolMeta.symbolScale[0],\n scaleY: symbolMeta.symbolScale[1],\n rotation: symbolMeta.rotation\n }, symbolMeta, isUpdate);\n }\n}\n\nfunction createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\n var rectShape = zrUtil.extend({}, symbolMeta.barRectShape);\n var barRect = bar.__pictorialBarRect;\n\n if (!barRect) {\n barRect = bar.__pictorialBarRect = new graphic.Rect({\n z2: 2,\n shape: rectShape,\n silent: true,\n style: {\n stroke: 'transparent',\n fill: 'transparent',\n lineWidth: 0\n }\n });\n bar.add(barRect);\n } else {\n updateAttr(barRect, null, {\n shape: rectShape\n }, symbolMeta, isUpdate);\n }\n}\n\nfunction createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\n if (symbolMeta.symbolClip) {\n var clipPath = bar.__pictorialClipPath;\n var clipShape = zrUtil.extend({}, symbolMeta.clipShape);\n var valueDim = opt.valueDim;\n var animationModel = symbolMeta.animationModel;\n var dataIndex = symbolMeta.dataIndex;\n\n if (clipPath) {\n graphic.updateProps(clipPath, {\n shape: clipShape\n }, animationModel, dataIndex);\n } else {\n clipShape[valueDim.wh] = 0;\n clipPath = new graphic.Rect({\n shape: clipShape\n });\n\n bar.__pictorialBundle.setClipPath(clipPath);\n\n bar.__pictorialClipPath = clipPath;\n var target = {};\n target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\n graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, {\n shape: target\n }, animationModel, dataIndex);\n }\n }\n}\n\nfunction getItemModel(data, dataIndex) {\n var itemModel = data.getItemModel(dataIndex);\n itemModel.getAnimationDelayParams = getAnimationDelayParams;\n itemModel.isAnimationEnabled = isAnimationEnabled;\n return itemModel;\n}\n\nfunction getAnimationDelayParams(path) {\n return {\n index: path.__pictorialAnimationIndex,\n count: path.__pictorialRepeatTimes\n };\n}\n\nfunction isAnimationEnabled() {\n return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\n}\n\nfunction createBar(data, opt, symbolMeta, isUpdate) {\n var bar = new graphic.Group();\n var bundle = new graphic.Group();\n bar.add(bundle);\n bar.__pictorialBundle = bundle;\n bundle.x = symbolMeta.bundlePosition[0];\n bundle.y = symbolMeta.bundlePosition[1];\n\n if (symbolMeta.symbolRepeat) {\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\n } else {\n createOrUpdateSingleSymbol(bar, opt, symbolMeta);\n }\n\n createOrUpdateBarRect(bar, symbolMeta, isUpdate);\n createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\n bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\n bar.__pictorialSymbolMeta = symbolMeta;\n return bar;\n}\n\nfunction updateBar(bar, opt, symbolMeta) {\n var animationModel = symbolMeta.animationModel;\n var dataIndex = symbolMeta.dataIndex;\n var bundle = bar.__pictorialBundle;\n graphic.updateProps(bundle, {\n x: symbolMeta.bundlePosition[0],\n y: symbolMeta.bundlePosition[1]\n }, animationModel, dataIndex);\n\n if (symbolMeta.symbolRepeat) {\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\n } else {\n createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\n }\n\n createOrUpdateBarRect(bar, symbolMeta, true);\n createOrUpdateClip(bar, opt, symbolMeta, true);\n}\n\nfunction removeBar(data, dataIndex, animationModel, bar) {\n var labelRect = bar.__pictorialBarRect;\n labelRect && labelRect.removeTextContent();\n var pathes = [];\n eachPath(bar, function (path) {\n pathes.push(path);\n });\n bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath);\n bar.__pictorialClipPath && (animationModel = null);\n zrUtil.each(pathes, function (path) {\n graphic.removeElement(path, {\n scaleX: 0,\n scaleY: 0\n }, animationModel, dataIndex, function () {\n bar.parent && bar.parent.remove(bar);\n });\n });\n data.setItemGraphicEl(dataIndex, null);\n}\n\nfunction getShapeStr(data, symbolMeta) {\n return [data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none', !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(':');\n}\n\nfunction eachPath(bar, cb, context) {\n zrUtil.each(bar.__pictorialBundle.children(), function (el) {\n el !== bar.__pictorialBarRect && cb.call(context, el);\n });\n}\n\nfunction updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\n immediateAttrs && el.attr(immediateAttrs);\n\n if (symbolMeta.symbolClip && !isUpdate) {\n animationAttrs && el.attr(animationAttrs);\n } else {\n animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\n }\n}\n\nfunction updateCommon(bar, opt, symbolMeta) {\n var dataIndex = symbolMeta.dataIndex;\n var itemModel = symbolMeta.itemModel;\n var emphasisModel = itemModel.getModel('emphasis');\n var emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n var blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n var selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n var cursorStyle = itemModel.getShallow('cursor');\n var focus = emphasisModel.get('focus');\n var blurScope = emphasisModel.get('blurScope');\n var hoverScale = emphasisModel.get('scale');\n eachPath(bar, function (path) {\n if (path instanceof ZRImage) {\n var pathStyle = path.style;\n path.useStyle(zrUtil.extend({\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, symbolMeta.style));\n } else {\n path.useStyle(symbolMeta.style);\n }\n\n var emphasisState = path.ensureState('emphasis');\n emphasisState.style = emphasisStyle;\n\n if (hoverScale) {\n emphasisState.scaleX = path.scaleX * 1.1;\n emphasisState.scaleY = path.scaleY * 1.1;\n }\n\n path.ensureState('blur').style = blurStyle;\n path.ensureState('select').style = selectStyle;\n cursorStyle && (path.cursor = cursorStyle);\n path.z2 = symbolMeta.z2;\n });\n var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\n var barRect = bar.__pictorialBarRect;\n setLabelStyle(barRect, getLabelStatesModels(itemModel), {\n labelFetcher: opt.seriesModel,\n labelDataIndex: dataIndex,\n defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex),\n inheritColor: symbolMeta.style.fill,\n defaultOpacity: symbolMeta.style.opacity,\n defaultOutsidePosition: barPositionOutside\n });\n enableHoverEmphasis(bar, focus, blurScope);\n}\n\nfunction toIntTimes(times) {\n var roundedTimes = Math.round(times);\n return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);\n}\n\nexport default PictorialBarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar PictorialBarSeriesModel = function (_super) {\n __extends(PictorialBarSeriesModel, _super);\n\n function PictorialBarSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PictorialBarSeriesModel.type;\n _this.hasSymbolVisual = true;\n _this.defaultSymbol = 'roundRect';\n return _this;\n }\n\n PictorialBarSeriesModel.prototype.getInitialData = function (option) {\n option.stack = null;\n return _super.prototype.getInitialData.apply(this, arguments);\n };\n\n PictorialBarSeriesModel.type = 'series.pictorialBar';\n PictorialBarSeriesModel.dependencies = ['grid'];\n PictorialBarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n symbol: 'circle',\n symbolSize: null,\n symbolRotate: null,\n symbolPosition: null,\n symbolOffset: null,\n symbolMargin: null,\n symbolRepeat: false,\n symbolRepeatDirection: 'end',\n symbolClip: false,\n symbolBoundingData: null,\n symbolPatternSize: 400,\n barGap: '-100%',\n progressive: 0,\n emphasis: {\n scale: false\n },\n select: {\n itemStyle: {\n borderColor: '#212121'\n }\n }\n });\n return PictorialBarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default PictorialBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport PictorialBarView from './PictorialBarView';\nimport PictorialBarSeriesModel from './PictorialBarSeries';\nimport { layout } from '../../layout/barGrid';\nimport { curry } from 'zrender/lib/core/util';\nexport function install(registers) {\n registers.registerChartView(PictorialBarView);\n registers.registerSeriesModel(PictorialBarSeriesModel);\n registers.registerLayout(curry(layout, 'pictorialBar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { ECPolygon } from '../line/poly';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { bind } from 'zrender/lib/core/util';\nimport DataDiffer from '../../data/DataDiffer';\nimport ChartView from '../../view/Chart';\n\nvar ThemeRiverView = function (_super) {\n __extends(ThemeRiverView, _super);\n\n function ThemeRiverView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ThemeRiverView.type;\n _this._layers = [];\n return _this;\n }\n\n ThemeRiverView.prototype.render = function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var self = this;\n var group = this.group;\n var layersSeries = seriesModel.getLayerSeries();\n var layoutInfo = data.getLayout('layoutInfo');\n var rect = layoutInfo.rect;\n var boundaryGap = layoutInfo.boundaryGap;\n group.x = 0;\n group.y = rect.y + boundaryGap[0];\n\n function keyGetter(item) {\n return item.name;\n }\n\n var dataDiffer = new DataDiffer(this._layersSeries || [], layersSeries, keyGetter, keyGetter);\n var newLayersGroups = [];\n dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute();\n\n function process(status, idx, oldIdx) {\n var oldLayersGroups = self._layers;\n\n if (status === 'remove') {\n group.remove(oldLayersGroups[idx]);\n return;\n }\n\n var points0 = [];\n var points1 = [];\n var style;\n var indices = layersSeries[idx].indices;\n var j = 0;\n\n for (; j < indices.length; j++) {\n var layout = data.getItemLayout(indices[j]);\n var x = layout.x;\n var y0 = layout.y0;\n var y = layout.y;\n points0.push(x, y0);\n points1.push(x, y0 + y);\n style = data.getItemVisual(indices[j], 'style');\n }\n\n var polygon;\n var textLayout = data.getItemLayout(indices[0]);\n var labelModel = seriesModel.getModel('label');\n var margin = labelModel.get('margin');\n var emphasisModel = seriesModel.getModel('emphasis');\n\n if (status === 'add') {\n var layerGroup = newLayersGroups[idx] = new graphic.Group();\n polygon = new ECPolygon({\n shape: {\n points: points0,\n stackedOnPoints: points1,\n smooth: 0.4,\n stackedOnSmooth: 0.4,\n smoothConstraint: false\n },\n z2: 0\n });\n layerGroup.add(polygon);\n group.add(layerGroup);\n\n if (seriesModel.isAnimationEnabled()) {\n polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n polygon.removeClipPath();\n }));\n }\n } else {\n var layerGroup = oldLayersGroups[oldIdx];\n polygon = layerGroup.childAt(0);\n group.add(layerGroup);\n newLayersGroups[idx] = layerGroup;\n graphic.updateProps(polygon, {\n shape: {\n points: points0,\n stackedOnPoints: points1\n }\n }, seriesModel);\n }\n\n setLabelStyle(polygon, getLabelStatesModels(seriesModel), {\n labelDataIndex: indices[j - 1],\n defaultText: data.getName(indices[j - 1]),\n inheritColor: style.fill\n }, {\n normal: {\n verticalAlign: 'middle'\n }\n });\n polygon.setTextConfig({\n position: null,\n local: true\n });\n var labelEl = polygon.getTextContent();\n\n if (labelEl) {\n labelEl.x = textLayout.x - margin;\n labelEl.y = textLayout.y0 + textLayout.y / 2;\n }\n\n polygon.useStyle(style);\n data.setItemGraphicEl(idx, polygon);\n setStatesStylesFromModel(polygon, seriesModel);\n enableHoverEmphasis(polygon, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n }\n\n this._layersSeries = layersSeries;\n this._layers = newLayersGroups;\n };\n\n ThemeRiverView.type = 'themeRiver';\n return ThemeRiverView;\n}(ChartView);\n\n;\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n var rectEl = new graphic.Rect({\n shape: {\n x: rect.x - 10,\n y: rect.y - 10,\n width: 0,\n height: rect.height + 20\n }\n });\n graphic.initProps(rectEl, {\n shape: {\n x: rect.x - 50,\n width: rect.width + 100,\n height: rect.height + 20\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nexport default ThemeRiverView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport List from '../../data/List';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { groupData, SINGLE_REFERRING } from '../../util/model';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nvar DATA_NAME_INDEX = 2;\n\nvar ThemeRiverSeriesModel = function (_super) {\n __extends(ThemeRiverSeriesModel, _super);\n\n function ThemeRiverSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ThemeRiverSeriesModel.type;\n _this.useColorPaletteOnData = true;\n return _this;\n }\n\n ThemeRiverSeriesModel.prototype.init = function (option) {\n _super.prototype.init.apply(this, arguments);\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n };\n\n ThemeRiverSeriesModel.prototype.fixData = function (data) {\n var rawDataLength = data.length;\n var timeValueKeys = {};\n var groupResult = groupData(data, function (item) {\n if (!timeValueKeys.hasOwnProperty(item[0] + '')) {\n timeValueKeys[item[0] + ''] = -1;\n }\n\n return item[2];\n });\n var layerData = [];\n groupResult.buckets.each(function (items, key) {\n layerData.push({\n name: key,\n dataList: items\n });\n });\n var layerNum = layerData.length;\n\n for (var k = 0; k < layerNum; ++k) {\n var name_1 = layerData[k].name;\n\n for (var j = 0; j < layerData[k].dataList.length; ++j) {\n var timeValue = layerData[k].dataList[j][0] + '';\n timeValueKeys[timeValue] = k;\n }\n\n for (var timeValue in timeValueKeys) {\n if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) {\n timeValueKeys[timeValue] = k;\n data[rawDataLength] = [timeValue, 0, name_1];\n rawDataLength++;\n }\n }\n }\n\n return data;\n };\n\n ThemeRiverSeriesModel.prototype.getInitialData = function (option, ecModel) {\n var singleAxisModel = this.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n var axisType = singleAxisModel.get('type');\n var filterData = zrUtil.filter(option.data, function (dataItem) {\n return dataItem[2] !== undefined;\n });\n var data = this.fixData(filterData || []);\n var nameList = [];\n var nameMap = this.nameMap = zrUtil.createHashMap();\n var count = 0;\n\n for (var i = 0; i < data.length; ++i) {\n nameList.push(data[i][DATA_NAME_INDEX]);\n\n if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\n nameMap.set(data[i][DATA_NAME_INDEX], count);\n count++;\n }\n }\n\n var dimensionsInfo = createDimensions(data, {\n coordDimensions: ['single'],\n dimensionsDefine: [{\n name: 'time',\n type: getDimensionTypeByAxis(axisType)\n }, {\n name: 'value',\n type: 'float'\n }, {\n name: 'name',\n type: 'ordinal'\n }],\n encodeDefine: {\n single: 0,\n value: 1,\n itemName: 2\n }\n });\n var list = new List(dimensionsInfo, this);\n list.initData(data);\n return list;\n };\n\n ThemeRiverSeriesModel.prototype.getLayerSeries = function () {\n var data = this.getData();\n var lenCount = data.count();\n var indexArr = [];\n\n for (var i = 0; i < lenCount; ++i) {\n indexArr[i] = i;\n }\n\n var timeDim = data.mapDimension('single');\n var groupResult = groupData(indexArr, function (index) {\n return data.get('name', index);\n });\n var layerSeries = [];\n groupResult.buckets.each(function (items, key) {\n items.sort(function (index1, index2) {\n return data.get(timeDim, index1) - data.get(timeDim, index2);\n });\n layerSeries.push({\n name: key,\n indices: items\n });\n });\n return layerSeries;\n };\n\n ThemeRiverSeriesModel.prototype.getAxisTooltipData = function (dim, value, baseAxis) {\n if (!zrUtil.isArray(dim)) {\n dim = dim ? [dim] : [];\n }\n\n var data = this.getData();\n var layerSeries = this.getLayerSeries();\n var indices = [];\n var layerNum = layerSeries.length;\n var nestestValue;\n\n for (var i = 0; i < layerNum; ++i) {\n var minDist = Number.MAX_VALUE;\n var nearestIdx = -1;\n var pointNum = layerSeries[i].indices.length;\n\n for (var j = 0; j < pointNum; ++j) {\n var theValue = data.get(dim[0], layerSeries[i].indices[j]);\n var dist = Math.abs(theValue - value);\n\n if (dist <= minDist) {\n nestestValue = theValue;\n minDist = dist;\n nearestIdx = layerSeries[i].indices[j];\n }\n }\n\n indices.push(nearestIdx);\n }\n\n return {\n dataIndices: indices,\n nestestValue: nestestValue\n };\n };\n\n ThemeRiverSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var data = this.getData();\n var name = data.getName(dataIndex);\n var value = data.get(data.mapDimension('value'), dataIndex);\n return createTooltipMarkup('nameValue', {\n name: name,\n value: value\n });\n };\n\n ThemeRiverSeriesModel.type = 'series.themeRiver';\n ThemeRiverSeriesModel.dependencies = ['singleAxis'];\n ThemeRiverSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'singleAxis',\n boundaryGap: ['10%', '10%'],\n singleAxisIndex: 0,\n animationEasing: 'linear',\n label: {\n margin: 4,\n show: true,\n position: 'left',\n fontSize: 11\n },\n emphasis: {\n label: {\n show: true\n }\n }\n };\n return ThemeRiverSeriesModel;\n}(SeriesModel);\n\nexport default ThemeRiverSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nexport default function themeRiverLayout(ecModel, api) {\n ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\n var data = seriesModel.getData();\n var single = seriesModel.coordinateSystem;\n var layoutInfo = {};\n var rect = single.getRect();\n layoutInfo.rect = rect;\n var boundaryGap = seriesModel.get('boundaryGap');\n var axis = single.getAxis();\n layoutInfo.boundaryGap = boundaryGap;\n\n if (axis.orient === 'horizontal') {\n boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.height);\n boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.height);\n var height = rect.height - boundaryGap[0] - boundaryGap[1];\n doThemeRiverLayout(data, seriesModel, height);\n } else {\n boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.width);\n boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.width);\n var width = rect.width - boundaryGap[0] - boundaryGap[1];\n doThemeRiverLayout(data, seriesModel, width);\n }\n\n data.setLayout('layoutInfo', layoutInfo);\n });\n}\n\nfunction doThemeRiverLayout(data, seriesModel, height) {\n if (!data.count()) {\n return;\n }\n\n var coordSys = seriesModel.coordinateSystem;\n var layerSeries = seriesModel.getLayerSeries();\n var timeDim = data.mapDimension('single');\n var valueDim = data.mapDimension('value');\n var layerPoints = zrUtil.map(layerSeries, function (singleLayer) {\n return zrUtil.map(singleLayer.indices, function (idx) {\n var pt = coordSys.dataToPoint(data.get(timeDim, idx));\n pt[1] = data.get(valueDim, idx);\n return pt;\n });\n });\n var base = computeBaseline(layerPoints);\n var baseLine = base.y0;\n var ky = height / base.max;\n var n = layerSeries.length;\n var m = layerSeries[0].indices.length;\n var baseY0;\n\n for (var j = 0; j < m; ++j) {\n baseY0 = baseLine[j] * ky;\n data.setItemLayout(layerSeries[0].indices[j], {\n layerIndex: 0,\n x: layerPoints[0][j][0],\n y0: baseY0,\n y: layerPoints[0][j][1] * ky\n });\n\n for (var i = 1; i < n; ++i) {\n baseY0 += layerPoints[i - 1][j][1] * ky;\n data.setItemLayout(layerSeries[i].indices[j], {\n layerIndex: i,\n x: layerPoints[i][j][0],\n y0: baseY0,\n y: layerPoints[i][j][1] * ky\n });\n }\n }\n}\n\nfunction computeBaseline(data) {\n var layerNum = data.length;\n var pointNum = data[0].length;\n var sums = [];\n var y0 = [];\n var max = 0;\n\n for (var i = 0; i < pointNum; ++i) {\n var temp = 0;\n\n for (var j = 0; j < layerNum; ++j) {\n temp += data[j][i][1];\n }\n\n if (temp > max) {\n max = temp;\n }\n\n sums.push(temp);\n }\n\n for (var k = 0; k < pointNum; ++k) {\n y0[k] = (max - sums[k]) / 2;\n }\n\n max = 0;\n\n for (var l = 0; l < pointNum; ++l) {\n var sum = sums[l] + y0[l];\n\n if (sum > max) {\n max = sum;\n }\n }\n\n return {\n y0: y0,\n max: max\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ThemeRiverView from './ThemeRiverView';\nimport ThemeRiverSeriesModel from './ThemeRiverSeries';\nimport themeRiverLayout from './themeRiverLayout';\nimport dataFilter from '../../processor/dataFilter';\nexport function install(registers) {\n registers.registerChartView(ThemeRiverView);\n registers.registerSeriesModel(ThemeRiverSeriesModel);\n registers.registerLayout(themeRiverLayout);\n registers.registerProcessor(dataFilter('themeRiver'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, SPECIAL_STATES, DISPLAY_STATES } from '../../util/states';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\nvar DEFAULT_SECTOR_Z = 2;\nvar DEFAULT_TEXT_Z = 4;\n\nvar SunburstPiece = function (_super) {\n __extends(SunburstPiece, _super);\n\n function SunburstPiece(node, seriesModel, ecModel, api) {\n var _this = _super.call(this) || this;\n\n _this.z2 = DEFAULT_SECTOR_Z;\n _this.textConfig = {\n inside: true\n };\n getECData(_this).seriesIndex = seriesModel.seriesIndex;\n var text = new graphic.Text({\n z2: DEFAULT_TEXT_Z,\n silent: node.getModel().get(['label', 'silent'])\n });\n\n _this.setTextContent(text);\n\n _this.updateData(true, node, seriesModel, ecModel, api);\n\n return _this;\n }\n\n SunburstPiece.prototype.updateData = function (firstCreate, node, seriesModel, ecModel, api) {\n this.node = node;\n node.piece = this;\n seriesModel = seriesModel || this._seriesModel;\n ecModel = ecModel || this._ecModel;\n var sector = this;\n getECData(sector).dataIndex = node.dataIndex;\n var itemModel = node.getModel();\n var emphasisModel = itemModel.getModel('emphasis');\n var layout = node.getLayout();\n var sectorShape = zrUtil.extend({}, layout);\n sectorShape.label = null;\n var normalStyle = node.getVisual('style');\n normalStyle.lineJoin = 'bevel';\n var decal = node.getVisual('decal');\n\n if (decal) {\n normalStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n }\n\n var cornerRadius = getSectorCornerRadius(itemModel.getModel('itemStyle'), sectorShape);\n zrUtil.extend(sectorShape, cornerRadius);\n zrUtil.each(SPECIAL_STATES, function (stateName) {\n var state = sector.ensureState(stateName);\n var itemStyleModel = itemModel.getModel([stateName, 'itemStyle']);\n state.style = itemStyleModel.getItemStyle();\n var cornerRadius = getSectorCornerRadius(itemStyleModel, sectorShape);\n\n if (cornerRadius) {\n state.shape = cornerRadius;\n }\n });\n\n if (firstCreate) {\n sector.setShape(sectorShape);\n sector.shape.r = layout.r0;\n graphic.updateProps(sector, {\n shape: {\n r: layout.r\n }\n }, seriesModel, node.dataIndex);\n } else {\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel);\n }\n\n sector.useStyle(normalStyle);\n\n this._updateLabel(seriesModel);\n\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle);\n this._seriesModel = seriesModel || this._seriesModel;\n this._ecModel = ecModel || this._ecModel;\n var focus = emphasisModel.get('focus');\n var focusDataIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n enableHoverEmphasis(this, focusDataIndices || focus, emphasisModel.get('blurScope'));\n };\n\n SunburstPiece.prototype._updateLabel = function (seriesModel) {\n var _this = this;\n\n var itemModel = this.node.getModel();\n var normalLabelModel = itemModel.getModel('label');\n var layout = this.node.getLayout();\n var angle = layout.endAngle - layout.startAngle;\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var dx = Math.cos(midAngle);\n var dy = Math.sin(midAngle);\n var sector = this;\n var label = sector.getTextContent();\n var dataIndex = this.node.dataIndex;\n var labelMinAngle = normalLabelModel.get('minAngle') / 180 * Math.PI;\n var isNormalShown = normalLabelModel.get('show') && !(labelMinAngle != null && Math.abs(angle) < labelMinAngle);\n label.ignore = !isNormalShown;\n zrUtil.each(DISPLAY_STATES, function (stateName) {\n var labelStateModel = stateName === 'normal' ? itemModel.getModel('label') : itemModel.getModel([stateName, 'label']);\n var isNormal = stateName === 'normal';\n var state = isNormal ? label : label.ensureState(stateName);\n var text = seriesModel.getFormattedLabel(dataIndex, stateName);\n\n if (isNormal) {\n text = text || _this.node.name;\n }\n\n state.style = createTextStyle(labelStateModel, {}, null, stateName !== 'normal', true);\n\n if (text) {\n state.style.text = text;\n }\n\n var isShown = labelStateModel.get('show');\n\n if (isShown != null && !isNormal) {\n state.ignore = !isShown;\n }\n\n var labelPosition = getLabelAttr(labelStateModel, 'position');\n var sectorState = isNormal ? sector : sector.states[stateName];\n var labelColor = sectorState.style.fill;\n sectorState.textConfig = {\n outsideFill: labelStateModel.get('color') === 'inherit' ? labelColor : null,\n inside: labelPosition !== 'outside'\n };\n var r;\n var labelPadding = getLabelAttr(labelStateModel, 'distance') || 0;\n var textAlign = getLabelAttr(labelStateModel, 'align');\n\n if (labelPosition === 'outside') {\n r = layout.r + labelPadding;\n textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\n } else {\n if (!textAlign || textAlign === 'center') {\n r = (layout.r + layout.r0) / 2;\n textAlign = 'center';\n } else if (textAlign === 'left') {\n r = layout.r0 + labelPadding;\n\n if (midAngle > Math.PI / 2) {\n textAlign = 'right';\n }\n } else if (textAlign === 'right') {\n r = layout.r - labelPadding;\n\n if (midAngle > Math.PI / 2) {\n textAlign = 'left';\n }\n }\n }\n\n state.style.align = textAlign;\n state.style.verticalAlign = getLabelAttr(labelStateModel, 'verticalAlign') || 'middle';\n state.x = r * dx + layout.cx;\n state.y = r * dy + layout.cy;\n var rotateType = getLabelAttr(labelStateModel, 'rotate');\n var rotate = 0;\n\n if (rotateType === 'radial') {\n rotate = -midAngle;\n\n if (rotate < -Math.PI / 2) {\n rotate += Math.PI;\n }\n } else if (rotateType === 'tangential') {\n rotate = Math.PI / 2 - midAngle;\n\n if (rotate > Math.PI / 2) {\n rotate -= Math.PI;\n } else if (rotate < -Math.PI / 2) {\n rotate += Math.PI;\n }\n } else if (typeof rotateType === 'number') {\n rotate = rotateType * Math.PI / 180;\n }\n\n state.rotation = rotate;\n });\n\n function getLabelAttr(model, name) {\n var stateAttr = model.get(name);\n\n if (stateAttr == null) {\n return normalLabelModel.get(name);\n }\n\n return stateAttr;\n }\n\n label.dirtyStyle();\n };\n\n return SunburstPiece;\n}(graphic.Sector);\n\nexport default SunburstPiece;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog } from '../../util/log';\nimport { retrieveTargetInfo, aboveViewRoot } from '../helper/treeHelper';\nexport var ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\nvar HIGHLIGHT_ACTION = 'sunburstHighlight';\nvar UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\nexport function installSunburstAction(registers) {\n registers.registerAction({\n type: ROOT_TO_NODE_ACTION,\n update: 'updateView'\n }, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'sunburst',\n query: payload\n }, handleRootToNode);\n\n function handleRootToNode(model, index) {\n var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\n\n if (targetInfo) {\n var originViewRoot = model.getViewRoot();\n\n if (originViewRoot) {\n payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n }\n\n model.resetViewRoot(targetInfo.node);\n }\n }\n });\n registers.registerAction({\n type: HIGHLIGHT_ACTION,\n update: 'none'\n }, function (payload, ecModel, api) {\n payload = extend({}, payload);\n ecModel.eachComponent({\n mainType: 'series',\n subType: 'sunburst',\n query: payload\n }, handleHighlight);\n\n function handleHighlight(model) {\n var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\n\n if (targetInfo) {\n payload.dataIndex = targetInfo.node.dataIndex;\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('highlight', 'sunburstHighlight');\n }\n\n api.dispatchAction(extend(payload, {\n type: 'highlight'\n }));\n });\n registers.registerAction({\n type: UNHIGHLIGHT_ACTION,\n update: 'updateView'\n }, function (payload, ecModel, api) {\n payload = extend({}, payload);\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateReplaceLog('downplay', 'sunburstUnhighlight');\n }\n\n api.dispatchAction(extend(payload, {\n type: 'downplay'\n }));\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport SunburstPiece from './SunburstPiece';\nimport DataDiffer from '../../data/DataDiffer';\nimport { ROOT_TO_NODE_ACTION } from './sunburstAction';\nimport { windowOpen } from '../../util/format';\n\nvar SunburstView = function (_super) {\n __extends(SunburstView, _super);\n\n function SunburstView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SunburstView.type;\n return _this;\n }\n\n SunburstView.prototype.render = function (seriesModel, ecModel, api, payload) {\n var self = this;\n this.seriesModel = seriesModel;\n this.api = api;\n this.ecModel = ecModel;\n var data = seriesModel.getData();\n var virtualRoot = data.tree.root;\n var newRoot = seriesModel.getViewRoot();\n var group = this.group;\n var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\n var newChildren = [];\n newRoot.eachNode(function (node) {\n newChildren.push(node);\n });\n var oldChildren = this._oldChildren || [];\n dualTravel(newChildren, oldChildren);\n renderRollUp(virtualRoot, newRoot);\n\n this._initEvents();\n\n this._oldChildren = newChildren;\n\n function dualTravel(newChildren, oldChildren) {\n if (newChildren.length === 0 && oldChildren.length === 0) {\n return;\n }\n\n new DataDiffer(oldChildren, newChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n\n function getKey(node) {\n return node.getId();\n }\n\n function processNode(newIdx, oldIdx) {\n var newNode = newIdx == null ? null : newChildren[newIdx];\n var oldNode = oldIdx == null ? null : oldChildren[oldIdx];\n doRenderNode(newNode, oldNode);\n }\n }\n\n function doRenderNode(newNode, oldNode) {\n if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\n newNode = null;\n }\n\n if (newNode !== virtualRoot && oldNode !== virtualRoot) {\n if (oldNode && oldNode.piece) {\n if (newNode) {\n oldNode.piece.updateData(false, newNode, seriesModel, ecModel, api);\n data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\n } else {\n removeNode(oldNode);\n }\n } else if (newNode) {\n var piece = new SunburstPiece(newNode, seriesModel, ecModel, api);\n group.add(piece);\n data.setItemGraphicEl(newNode.dataIndex, piece);\n }\n }\n }\n\n function removeNode(node) {\n if (!node) {\n return;\n }\n\n if (node.piece) {\n group.remove(node.piece);\n node.piece = null;\n }\n }\n\n function renderRollUp(virtualRoot, viewRoot) {\n if (viewRoot.depth > 0) {\n if (self.virtualPiece) {\n self.virtualPiece.updateData(false, virtualRoot, seriesModel, ecModel, api);\n } else {\n self.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel, api);\n group.add(self.virtualPiece);\n }\n\n viewRoot.piece.off('click');\n self.virtualPiece.on('click', function (e) {\n self._rootToNode(viewRoot.parentNode);\n });\n } else if (self.virtualPiece) {\n group.remove(self.virtualPiece);\n self.virtualPiece = null;\n }\n }\n };\n\n SunburstView.prototype._initEvents = function () {\n var _this = this;\n\n this.group.off('click');\n this.group.on('click', function (e) {\n var targetFound = false;\n\n var viewRoot = _this.seriesModel.getViewRoot();\n\n viewRoot.eachNode(function (node) {\n if (!targetFound && node.piece && node.piece === e.target) {\n var nodeClick = node.getModel().get('nodeClick');\n\n if (nodeClick === 'rootToNode') {\n _this._rootToNode(node);\n } else if (nodeClick === 'link') {\n var itemModel = node.getModel();\n var link = itemModel.get('link');\n\n if (link) {\n var linkTarget = itemModel.get('target', true) || '_blank';\n windowOpen(link, linkTarget);\n }\n }\n\n targetFound = true;\n }\n });\n });\n };\n\n SunburstView.prototype._rootToNode = function (node) {\n if (node !== this.seriesModel.getViewRoot()) {\n this.api.dispatchAction({\n type: ROOT_TO_NODE_ACTION,\n from: this.uid,\n seriesId: this.seriesModel.id,\n targetNode: node\n });\n }\n };\n\n SunburstView.prototype.containPoint = function (point, seriesModel) {\n var treeRoot = seriesModel.getData();\n var itemLayout = treeRoot.getItemLayout(0);\n\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n };\n\n SunburstView.type = 'sunburst';\n return SunburstView;\n}(ChartView);\n\nexport default SunburstView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport Model from '../../model/Model';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree';\n\nvar SunburstSeriesModel = function (_super) {\n __extends(SunburstSeriesModel, _super);\n\n function SunburstSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SunburstSeriesModel.type;\n _this.ignoreStyleOnData = true;\n return _this;\n }\n\n SunburstSeriesModel.prototype.getInitialData = function (option, ecModel) {\n var root = {\n name: option.name,\n children: option.data\n };\n completeTreeValue(root);\n var levelModels = zrUtil.map(option.levels || [], function (levelDefine) {\n return new Model(levelDefine, this, ecModel);\n }, this);\n var tree = Tree.createTree(root, this, beforeLink);\n\n function beforeLink(nodeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n var node = tree.getNodeByDataIndex(idx);\n var levelModel = levelModels[node.depth];\n levelModel && (model.parentModel = levelModel);\n return model;\n });\n }\n\n return tree.data;\n };\n\n SunburstSeriesModel.prototype.optionUpdated = function () {\n this.resetViewRoot();\n };\n\n SunburstSeriesModel.prototype.getDataParams = function (dataIndex) {\n var params = _super.prototype.getDataParams.apply(this, arguments);\n\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n params.treePathInfo = wrapTreePathInfo(node, this);\n return params;\n };\n\n SunburstSeriesModel.prototype.getViewRoot = function () {\n return this._viewRoot;\n };\n\n SunburstSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n var root = this.getRawData().tree.root;\n\n if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n this._viewRoot = root;\n }\n };\n\n SunburstSeriesModel.prototype.enableAriaDecal = function () {\n enableAriaDecalForTree(this);\n };\n\n SunburstSeriesModel.type = 'series.sunburst';\n SunburstSeriesModel.defaultOption = {\n zlevel: 0,\n z: 2,\n center: ['50%', '50%'],\n radius: [0, '75%'],\n clockwise: true,\n startAngle: 90,\n minAngle: 0,\n stillShowZeroSum: true,\n nodeClick: 'rootToNode',\n renderLabelForZeroData: false,\n label: {\n rotate: 'radial',\n show: true,\n opacity: 1,\n align: 'center',\n position: 'inside',\n distance: 5,\n silent: true\n },\n itemStyle: {\n borderWidth: 1,\n borderColor: 'white',\n borderType: 'solid',\n shadowBlur: 0,\n shadowColor: 'rgba(0, 0, 0, 0.2)',\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n opacity: 1\n },\n emphasis: {\n focus: 'descendant'\n },\n blur: {\n itemStyle: {\n opacity: 0.2\n },\n label: {\n opacity: 0.1\n }\n },\n animationType: 'expansion',\n animationDuration: 1000,\n animationDurationUpdate: 500,\n data: [],\n levels: [],\n sort: 'desc'\n };\n return SunburstSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n var sum = 0;\n zrUtil.each(dataNode.children, function (child) {\n completeTreeValue(child);\n var childValue = child.value;\n zrUtil.isArray(childValue) && (childValue = childValue[0]);\n sum += childValue;\n });\n var thisValue = dataNode.value;\n\n if (zrUtil.isArray(thisValue)) {\n thisValue = thisValue[0];\n }\n\n if (thisValue == null || isNaN(thisValue)) {\n thisValue = sum;\n }\n\n if (thisValue < 0) {\n thisValue = 0;\n }\n\n zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nexport default SunburstSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN = Math.PI / 180;\nexport default function sunburstLayout(seriesType, ecModel, api) {\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n var center = seriesModel.get('center');\n var radius = seriesModel.get('radius');\n\n if (!zrUtil.isArray(radius)) {\n radius = [0, radius];\n }\n\n if (!zrUtil.isArray(center)) {\n center = [center, center];\n }\n\n var width = api.getWidth();\n var height = api.getHeight();\n var size = Math.min(width, height);\n var cx = parsePercent(center[0], width);\n var cy = parsePercent(center[1], height);\n var r0 = parsePercent(radius[0], size / 2);\n var r = parsePercent(radius[1], size / 2);\n var startAngle = -seriesModel.get('startAngle') * RADIAN;\n var minAngle = seriesModel.get('minAngle') * RADIAN;\n var virtualRoot = seriesModel.getData().tree.root;\n var treeRoot = seriesModel.getViewRoot();\n var rootDepth = treeRoot.depth;\n var sort = seriesModel.get('sort');\n\n if (sort != null) {\n initChildren(treeRoot, sort);\n }\n\n var validDataCount = 0;\n zrUtil.each(treeRoot.children, function (child) {\n !isNaN(child.getValue()) && validDataCount++;\n });\n var sum = treeRoot.getValue();\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\n var renderRollupNode = treeRoot.depth > 0;\n var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\n var rPerLevel = (r - r0) / (levels || 1);\n var clockwise = seriesModel.get('clockwise');\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n var dir = clockwise ? 1 : -1;\n\n var renderNode = function (node, startAngle) {\n if (!node) {\n return;\n }\n\n var endAngle = startAngle;\n\n if (node !== virtualRoot) {\n var value = node.getValue();\n var angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n\n if (angle < minAngle) {\n angle = minAngle;\n }\n\n endAngle = startAngle + dir * angle;\n var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1);\n var rStart = r0 + rPerLevel * depth;\n var rEnd = r0 + rPerLevel * (depth + 1);\n var itemModel = node.getModel();\n\n if (itemModel.get('r0') != null) {\n rStart = parsePercent(itemModel.get('r0'), size / 2);\n }\n\n if (itemModel.get('r') != null) {\n rEnd = parsePercent(itemModel.get('r'), size / 2);\n }\n\n node.setLayout({\n angle: angle,\n startAngle: startAngle,\n endAngle: endAngle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: rStart,\n r: rEnd\n });\n }\n\n if (node.children && node.children.length) {\n var siblingAngle_1 = 0;\n zrUtil.each(node.children, function (node) {\n siblingAngle_1 += renderNode(node, startAngle + siblingAngle_1);\n });\n }\n\n return endAngle - startAngle;\n };\n\n if (renderRollupNode) {\n var rStart = r0;\n var rEnd = r0 + rPerLevel;\n var angle = Math.PI * 2;\n virtualRoot.setLayout({\n angle: angle,\n startAngle: startAngle,\n endAngle: startAngle + angle,\n clockwise: clockwise,\n cx: cx,\n cy: cy,\n r0: rStart,\n r: rEnd\n });\n }\n\n renderNode(treeRoot, startAngle);\n });\n}\n\nfunction initChildren(node, sortOrder) {\n var children = node.children || [];\n node.children = sort(children, sortOrder);\n\n if (children.length) {\n zrUtil.each(node.children, function (child) {\n initChildren(child, sortOrder);\n });\n }\n}\n\nfunction sort(children, sortOrder) {\n if (typeof sortOrder === 'function') {\n var sortTargets = zrUtil.map(children, function (child, idx) {\n var value = child.getValue();\n return {\n params: {\n depth: child.depth,\n height: child.height,\n dataIndex: child.dataIndex,\n getValue: function () {\n return value;\n }\n },\n index: idx\n };\n });\n sortTargets.sort(function (a, b) {\n return sortOrder(a.params, b.params);\n });\n return zrUtil.map(sortTargets, function (target) {\n return children[target.index];\n });\n } else {\n var isAsc_1 = sortOrder === 'asc';\n return children.sort(function (a, b) {\n var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1);\n return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1) : diff;\n });\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nimport { lift } from 'zrender/lib/tool/color';\nexport default function sunburstVisual(ecModel) {\n var paletteScope = {};\n\n function pickColor(node, seriesModel, treeHeight) {\n var current = node;\n\n while (current && current.depth > 1) {\n current = current.parentNode;\n }\n\n var color = seriesModel.getColorFromPalette(current.name || current.dataIndex + '', paletteScope);\n\n if (node.depth > 1 && typeof color === 'string') {\n color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5);\n }\n\n return color;\n }\n\n ecModel.eachSeriesByType('sunburst', function (seriesModel) {\n var data = seriesModel.getData();\n var tree = data.tree;\n tree.eachNode(function (node) {\n var model = node.getModel();\n var style = model.getModel('itemStyle').getItemStyle();\n\n if (!style.fill) {\n style.fill = pickColor(node, seriesModel, tree.root.height);\n }\n\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n extend(existsStyle, style);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SunburstView from './SunburstView';\nimport SunburstSeriesModel from './SunburstSeries';\nimport sunburstLayout from './sunburstLayout';\nimport sunburstVisual from './sunburstVisual';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport { installSunburstAction } from './sunburstAction';\nexport function install(registers) {\n registers.registerChartView(SunburstView);\n registers.registerSeriesModel(SunburstSeriesModel);\n registers.registerLayout(curry(sunburstLayout, 'sunburst'));\n registers.registerProcessor(curry(dataFilter, 'sunburst'));\n registers.registerVisual(sunburstVisual);\n installSunburstAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n dataItem = dataItem || [0, 0];\n return zrUtil.map(['x', 'y'], function (dim, dimIdx) {\n var axis = this.getAxis(dim);\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n }, this);\n}\n\nexport default function cartesianPrepareCustom(coordSys) {\n var rect = coordSys.master.getRect();\n return {\n coordSys: {\n type: 'cartesian2d',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n api: {\n coord: function (data) {\n return coordSys.dataToPoint(data);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n dataItem = dataItem || [0, 0];\n return zrUtil.map([0, 1], function (dimIdx) {\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n var p1 = [];\n var p2 = [];\n p1[dimIdx] = val - halfSize;\n p2[dimIdx] = val + halfSize;\n p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n }, this);\n}\n\nexport default function geoPrepareCustom(coordSys) {\n var rect = coordSys.getBoundingRect();\n return {\n coordSys: {\n type: 'geo',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n zoom: coordSys.getZoom()\n },\n api: {\n coord: function (data) {\n return coordSys.dataToPoint(data);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { bind } from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n var axis = this.getAxis();\n var val = dataItem instanceof Array ? dataItem[0] : dataItem;\n var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\n return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n}\n\nexport default function singlePrepareCustom(coordSys) {\n var rect = coordSys.getRect();\n return {\n coordSys: {\n type: 'singleAxis',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height\n },\n api: {\n coord: function (val) {\n return coordSys.dataToPoint(val);\n },\n size: bind(dataToCoordSize, coordSys)\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n dataItem = dataItem || [0, 0];\n return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) {\n var getterName = 'get' + dim + 'Axis';\n var axis = this[getterName]();\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n var result = axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n\n if (dim === 'Angle') {\n result = result * Math.PI / 180;\n }\n\n return result;\n }, this);\n}\n\nexport default function polarPrepareCustom(coordSys) {\n var radiusAxis = coordSys.getRadiusAxis();\n var angleAxis = coordSys.getAngleAxis();\n var radius = radiusAxis.getExtent();\n radius[0] > radius[1] && radius.reverse();\n return {\n coordSys: {\n type: 'polar',\n cx: coordSys.cx,\n cy: coordSys.cy,\n r: radius[1],\n r0: radius[0]\n },\n api: {\n coord: function (data) {\n var radius = radiusAxis.dataToRadius(data[0]);\n var angle = angleAxis.dataToAngle(data[1]);\n var coord = coordSys.coordToPoint([radius, angle]);\n coord.push(radius, angle * Math.PI / 180);\n return coord;\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function calendarPrepareCustom(coordSys) {\n var rect = coordSys.getRect();\n var rangeInfo = coordSys.getRangeInfo();\n return {\n coordSys: {\n type: 'calendar',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n cellWidth: coordSys.getCellWidth(),\n cellHeight: coordSys.getCellHeight(),\n rangeInfo: {\n start: rangeInfo.start,\n end: rangeInfo.end,\n weeks: rangeInfo.weeks,\n dayCount: rangeInfo.allDay\n }\n },\n api: {\n coord: function (data, clamp) {\n return coordSys.dataToPoint(data, clamp);\n }\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, hasOwn } from 'zrender/lib/core/util';\nvar deprecatedLogs = {};\nexport function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\n return style && (style.legacy || style.legacy !== false && !hasOwnTextContentOption && !hasOwnTextConfig && elType !== 'tspan' && (elType === 'text' || hasOwn(style, 'text')));\n}\nexport function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\n var srcStyle = hostStyle;\n var textConfig;\n var textContent;\n var textContentStyle;\n\n if (elType === 'text') {\n textContentStyle = srcStyle;\n } else {\n textContentStyle = {};\n hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\n hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\n hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\n hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\n textContent = {\n type: 'text',\n style: textContentStyle,\n silent: true\n };\n textConfig = {};\n var hasOwnPos = hasOwn(srcStyle, 'textPosition');\n\n if (isNormal) {\n textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\n } else {\n hasOwnPos && (textConfig.position = srcStyle.textPosition);\n }\n\n hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\n hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\n hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\n hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\n }\n\n convertEC4CompatibleRichItem(textContentStyle, hostStyle);\n each(textContentStyle.rich, function (richItem) {\n convertEC4CompatibleRichItem(richItem, richItem);\n });\n return {\n textConfig: textConfig,\n textContent: textContent\n };\n}\n\nfunction convertEC4CompatibleRichItem(out, richItem) {\n if (!richItem) {\n return;\n }\n\n richItem.font = richItem.textFont || richItem.font;\n hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\n hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\n hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\n hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\n hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\n hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\n hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\n hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\n hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\n hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\n hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\n hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\n hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\n hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\n hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\n}\n\nexport function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\n var out = itemStl;\n out.textPosition = out.textPosition || txCfg.position || 'inside';\n txCfg.offset != null && (out.textOffset = txCfg.offset);\n txCfg.rotation != null && (out.textRotation = txCfg.rotation);\n txCfg.distance != null && (out.textDistance = txCfg.distance);\n var isInside = out.textPosition.indexOf('inside') >= 0;\n var hostFill = itemStl.fill || '#000';\n convertToEC4RichItem(out, txStl);\n var textFillNotSet = out.textFill == null;\n\n if (isInside) {\n if (textFillNotSet) {\n out.textFill = txCfg.insideFill || '#fff';\n !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\n !out.textStroke && (out.textStroke = hostFill);\n out.textStrokeWidth == null && (out.textStrokeWidth = 2);\n }\n } else {\n if (textFillNotSet) {\n out.textFill = txCfg.outsideFill || hostFill;\n }\n\n !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\n }\n\n out.text = txStl.text;\n out.rich = txStl.rich;\n each(txStl.rich, function (richItem) {\n convertToEC4RichItem(richItem, richItem);\n });\n return out;\n}\n\nfunction convertToEC4RichItem(out, richItem) {\n if (!richItem) {\n return;\n }\n\n hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\n hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\n hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\n hasOwn(richItem, 'font') && (out.font = richItem.font);\n hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\n hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\n hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\n hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\n hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\n hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\n hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\n hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\n hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\n hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\n hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\n hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\n hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\n hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\n hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\n hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\n hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\n hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\n hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\n hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\n hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\n hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\n}\n\nexport function warnDeprecated(deprecated, insteadApproach) {\n if (process.env.NODE_ENV !== 'production') {\n var key = deprecated + '^_^' + insteadApproach;\n\n if (!deprecatedLogs[key]) {\n console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\n deprecatedLogs[key] = true;\n }\n }\n}","import PathProxy from '../core/PathProxy';\nimport { cubicSubdivide } from '../core/curve';\nimport { defaults, assert, noop, clone } from '../core/util';\nimport { lerp } from '../core/vector';\nimport Rect from '../graphic/shape/Rect';\nimport Sector from '../graphic/shape/Sector';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar PROP_XY = ['x', 'y'];\nvar PROP_WH = ['width', 'height'];\nvar tmpArr = [];\nfunction aroundEqual(a, b) {\n return Math.abs(a - b) < 1e-5;\n}\nexport function pathToBezierCurves(path) {\n var data = path.data;\n var len = path.len();\n var bezierArray = [];\n var currentSubpath;\n var xi = 0;\n var yi = 0;\n var x0 = 0;\n var y0 = 0;\n function createNewSubpath(x, y) {\n if (currentSubpath && currentSubpath.length > 2) {\n bezierArray.push(currentSubpath);\n }\n currentSubpath = [x, y];\n }\n function addLine(x0, y0, x1, y1) {\n if (!(aroundEqual(x0, x1) && aroundEqual(y0, y1))) {\n currentSubpath.push(x0, y0, x1, y1, x1, y1);\n }\n }\n function addArc(startAngle, endAngle, cx, cy, rx, ry) {\n var delta = Math.abs(endAngle - startAngle);\n var len = Math.tan(delta / 4) * 4 / 3;\n var dir = endAngle < startAngle ? -1 : 1;\n var c1 = Math.cos(startAngle);\n var s1 = Math.sin(startAngle);\n var c2 = Math.cos(endAngle);\n var s2 = Math.sin(endAngle);\n var x1 = c1 * rx + cx;\n var y1 = s1 * ry + cy;\n var x4 = c2 * rx + cx;\n var y4 = s2 * ry + cy;\n var hx = rx * len * dir;\n var hy = ry * len * dir;\n currentSubpath.push(x1 - hx * s1, y1 + hy * c1, x4 + hx * s2, y4 - hy * c2, x4, y4);\n }\n var x1;\n var y1;\n var x2;\n var y2;\n for (var i = 0; i < len;) {\n var cmd = data[i++];\n var isFirst = i === 1;\n if (isFirst) {\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n if (cmd === CMD.L || cmd === CMD.C || cmd === CMD.Q) {\n currentSubpath = [x0, y0];\n }\n }\n switch (cmd) {\n case CMD.M:\n xi = x0 = data[i++];\n yi = y0 = data[i++];\n createNewSubpath(x0, y0);\n break;\n case CMD.L:\n x1 = data[i++];\n y1 = data[i++];\n addLine(xi, yi, x1, y1);\n xi = x1;\n yi = y1;\n break;\n case CMD.C:\n currentSubpath.push(data[i++], data[i++], data[i++], data[i++], xi = data[i++], yi = data[i++]);\n break;\n case CMD.Q:\n x1 = data[i++];\n y1 = data[i++];\n x2 = data[i++];\n y2 = data[i++];\n currentSubpath.push(xi + 2 / 3 * (x1 - xi), yi + 2 / 3 * (y1 - yi), x2 + 2 / 3 * (x1 - x2), y2 + 2 / 3 * (y1 - y2), x2, y2);\n xi = x2;\n yi = y2;\n break;\n case CMD.A:\n var cx = data[i++];\n var cy = data[i++];\n var rx = data[i++];\n var ry = data[i++];\n var startAngle = data[i++];\n var endAngle = data[i++] + startAngle;\n i += 1;\n var anticlockwise = !data[i++];\n x1 = Math.cos(startAngle) * rx + cx;\n y1 = Math.sin(startAngle) * ry + cy;\n if (isFirst) {\n x0 = x1;\n y0 = y1;\n createNewSubpath(x0, y0);\n }\n else {\n addLine(xi, yi, x1, y1);\n }\n xi = Math.cos(endAngle) * rx + cx;\n yi = Math.sin(endAngle) * ry + cy;\n var step = (anticlockwise ? -1 : 1) * Math.PI / 2;\n for (var angle = startAngle; anticlockwise ? angle > endAngle : angle < endAngle; angle += step) {\n var nextAngle = anticlockwise ? Math.max(angle + step, endAngle)\n : Math.min(angle + step, endAngle);\n addArc(angle, nextAngle, cx, cy, rx, ry);\n }\n break;\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n x1 = x0 + data[i++];\n y1 = y0 + data[i++];\n createNewSubpath(x1, y0);\n addLine(x1, y0, x1, y1);\n addLine(x1, y1, x0, y1);\n addLine(x0, y1, x0, y0);\n addLine(x0, y0, x1, y0);\n break;\n case CMD.Z:\n currentSubpath && addLine(xi, yi, x0, y0);\n xi = x0;\n yi = y0;\n break;\n }\n }\n if (currentSubpath && currentSubpath.length > 2) {\n bezierArray.push(currentSubpath);\n }\n return bezierArray;\n}\nfunction alignSubpath(subpath1, subpath2) {\n var len1 = subpath1.length;\n var len2 = subpath2.length;\n if (len1 === len2) {\n return [subpath1, subpath2];\n }\n var shorterPath = len1 < len2 ? subpath1 : subpath2;\n var shorterLen = Math.min(len1, len2);\n var diff = Math.abs(len2 - len1) / 6;\n var shorterBezierCount = (shorterLen - 2) / 6;\n var eachCurveSubDivCount = Math.ceil(diff / shorterBezierCount) + 1;\n var newSubpath = [shorterPath[0], shorterPath[1]];\n var remained = diff;\n var tmpSegX = [];\n var tmpSegY = [];\n for (var i = 2; i < shorterLen;) {\n var x0 = shorterPath[i - 2];\n var y0 = shorterPath[i - 1];\n var x1 = shorterPath[i++];\n var y1 = shorterPath[i++];\n var x2 = shorterPath[i++];\n var y2 = shorterPath[i++];\n var x3 = shorterPath[i++];\n var y3 = shorterPath[i++];\n if (remained <= 0) {\n newSubpath.push(x1, y1, x2, y2, x3, y3);\n continue;\n }\n var actualSubDivCount = Math.min(remained, eachCurveSubDivCount - 1) + 1;\n for (var k = 1; k <= actualSubDivCount; k++) {\n var p = k / actualSubDivCount;\n cubicSubdivide(x0, x1, x2, x3, p, tmpSegX);\n cubicSubdivide(y0, y1, y2, y3, p, tmpSegY);\n x0 = tmpSegX[3];\n y0 = tmpSegY[3];\n newSubpath.push(tmpSegX[1], tmpSegY[1], tmpSegX[2], tmpSegY[2], x0, y0);\n x1 = tmpSegX[5];\n y1 = tmpSegY[5];\n x2 = tmpSegX[6];\n y2 = tmpSegY[6];\n }\n remained -= actualSubDivCount - 1;\n }\n return shorterPath === subpath1 ? [newSubpath, subpath2] : [subpath1, newSubpath];\n}\nfunction createSubpath(lastSubpathSubpath, otherSubpath) {\n var len = lastSubpathSubpath.length;\n var lastX = lastSubpathSubpath[len - 2];\n var lastY = lastSubpathSubpath[len - 1];\n var newSubpath = [];\n for (var i = 0; i < otherSubpath.length;) {\n newSubpath[i++] = lastX;\n newSubpath[i++] = lastY;\n }\n return newSubpath;\n}\nexport function alignBezierCurves(array1, array2) {\n var _a;\n var lastSubpath1;\n var lastSubpath2;\n var newArray1 = [];\n var newArray2 = [];\n for (var i = 0; i < Math.max(array1.length, array2.length); i++) {\n var subpath1 = array1[i];\n var subpath2 = array2[i];\n var newSubpath1 = void 0;\n var newSubpath2 = void 0;\n if (!subpath1) {\n newSubpath1 = createSubpath(lastSubpath1 || subpath2, subpath2);\n newSubpath2 = subpath2;\n }\n else if (!subpath2) {\n newSubpath2 = createSubpath(lastSubpath2 || subpath1, subpath1);\n newSubpath1 = subpath1;\n }\n else {\n _a = alignSubpath(subpath1, subpath2), newSubpath1 = _a[0], newSubpath2 = _a[1];\n lastSubpath1 = newSubpath1;\n lastSubpath2 = newSubpath2;\n }\n newArray1.push(newSubpath1);\n newArray2.push(newSubpath2);\n }\n return [newArray1, newArray2];\n}\nexport function centroid(array) {\n var signedArea = 0;\n var cx = 0;\n var cy = 0;\n var len = array.length;\n for (var i = 0, j = len - 2; i < len; j = i, i += 2) {\n var x0 = array[j];\n var y0 = array[j + 1];\n var x1 = array[i];\n var y1 = array[i + 1];\n var a = x0 * y1 - x1 * y0;\n signedArea += a;\n cx += (x0 + x1) * a;\n cy += (y0 + y1) * a;\n }\n if (signedArea === 0) {\n return [array[0] || 0, array[1] || 0];\n }\n return [cx / signedArea / 3, cy / signedArea / 3, signedArea];\n}\nfunction findBestRingOffset(fromSubBeziers, toSubBeziers, fromCp, toCp) {\n var bezierCount = (fromSubBeziers.length - 2) / 6;\n var bestScore = Infinity;\n var bestOffset = 0;\n var len = fromSubBeziers.length;\n var len2 = len - 2;\n for (var offset = 0; offset < bezierCount; offset++) {\n var cursorOffset = offset * 6;\n var score = 0;\n for (var k = 0; k < len; k += 2) {\n var idx = k === 0 ? cursorOffset : ((cursorOffset + k - 2) % len2 + 2);\n var x0 = fromSubBeziers[idx] - fromCp[0];\n var y0 = fromSubBeziers[idx + 1] - fromCp[1];\n var x1 = toSubBeziers[k] - toCp[0];\n var y1 = toSubBeziers[k + 1] - toCp[1];\n var dx = x1 - x0;\n var dy = y1 - y0;\n score += dx * dx + dy * dy;\n }\n if (score < bestScore) {\n bestScore = score;\n bestOffset = offset;\n }\n }\n return bestOffset;\n}\nfunction reverse(array) {\n var newArr = [];\n var len = array.length;\n for (var i = 0; i < len; i += 2) {\n newArr[i] = array[len - i - 2];\n newArr[i + 1] = array[len - i - 1];\n }\n return newArr;\n}\nfunction findBestMorphingRotation(fromArr, toArr, searchAngleIteration, searchAngleRange) {\n var result = [];\n var fromNeedsReverse;\n for (var i = 0; i < fromArr.length; i++) {\n var fromSubpathBezier = fromArr[i];\n var toSubpathBezier = toArr[i];\n var fromCp = centroid(fromSubpathBezier);\n var toCp = centroid(toSubpathBezier);\n if (fromNeedsReverse == null) {\n fromNeedsReverse = fromCp[2] < 0 !== toCp[2] < 0;\n }\n var newFromSubpathBezier = [];\n var newToSubpathBezier = [];\n var bestAngle = 0;\n var bestScore = Infinity;\n var tmpArr_1 = [];\n var len = fromSubpathBezier.length;\n if (fromNeedsReverse) {\n fromSubpathBezier = reverse(fromSubpathBezier);\n }\n var offset = findBestRingOffset(fromSubpathBezier, toSubpathBezier, fromCp, toCp) * 6;\n var len2 = len - 2;\n for (var k = 0; k < len2; k += 2) {\n var idx = (offset + k) % len2 + 2;\n newFromSubpathBezier[k + 2] = fromSubpathBezier[idx] - fromCp[0];\n newFromSubpathBezier[k + 3] = fromSubpathBezier[idx + 1] - fromCp[1];\n }\n newFromSubpathBezier[0] = fromSubpathBezier[offset] - fromCp[0];\n newFromSubpathBezier[1] = fromSubpathBezier[offset + 1] - fromCp[1];\n if (searchAngleIteration > 0) {\n var step = searchAngleRange / searchAngleIteration;\n for (var angle = -searchAngleRange / 2; angle <= searchAngleRange / 2; angle += step) {\n var sa = Math.sin(angle);\n var ca = Math.cos(angle);\n var score = 0;\n for (var k = 0; k < fromSubpathBezier.length; k += 2) {\n var x0 = newFromSubpathBezier[k];\n var y0 = newFromSubpathBezier[k + 1];\n var x1 = toSubpathBezier[k] - toCp[0];\n var y1 = toSubpathBezier[k + 1] - toCp[1];\n var newX1 = x1 * ca - y1 * sa;\n var newY1 = x1 * sa + y1 * ca;\n tmpArr_1[k] = newX1;\n tmpArr_1[k + 1] = newY1;\n var dx = newX1 - x0;\n var dy = newY1 - y0;\n score += dx * dx + dy * dy;\n }\n if (score < bestScore) {\n bestScore = score;\n bestAngle = angle;\n for (var m = 0; m < tmpArr_1.length; m++) {\n newToSubpathBezier[m] = tmpArr_1[m];\n }\n }\n }\n }\n else {\n for (var i_1 = 0; i_1 < len; i_1 += 2) {\n newToSubpathBezier[i_1] = toSubpathBezier[i_1] - toCp[0];\n newToSubpathBezier[i_1 + 1] = toSubpathBezier[i_1 + 1] - toCp[1];\n }\n }\n result.push({\n from: newFromSubpathBezier,\n to: newToSubpathBezier,\n fromCp: fromCp,\n toCp: toCp,\n rotation: -bestAngle\n });\n }\n return result;\n}\nexport function morphPath(fromPath, toPath, animationOpts) {\n var fromPathProxy;\n var toPathProxy;\n if (!fromPath || !toPath) {\n return toPath;\n }\n !fromPath.path && fromPath.createPathProxy();\n fromPathProxy = fromPath.path;\n fromPathProxy.beginPath();\n fromPath.buildPath(fromPathProxy, fromPath.shape);\n !toPath.path && toPath.createPathProxy();\n toPathProxy = toPath.path;\n toPathProxy === fromPathProxy && (toPathProxy = new PathProxy(false));\n toPathProxy.beginPath();\n if (isIndividualMorphingPath(toPath)) {\n toPath.__oldBuildPath(toPathProxy, toPath.shape);\n }\n else {\n toPath.buildPath(toPathProxy, toPath.shape);\n }\n var _a = alignBezierCurves(pathToBezierCurves(fromPathProxy), pathToBezierCurves(toPathProxy)), fromBezierCurves = _a[0], toBezierCurves = _a[1];\n var morphingData = findBestMorphingRotation(fromBezierCurves, toBezierCurves, 10, Math.PI);\n becomeIndividualMorphingPath(toPath, morphingData, 0);\n var oldDone = animationOpts && animationOpts.done;\n var oldAborted = animationOpts && animationOpts.aborted;\n var oldDuring = animationOpts && animationOpts.during;\n toPath.animateTo({\n __morphT: 1\n }, defaults({\n during: function (p) {\n toPath.dirtyShape();\n oldDuring && oldDuring(p);\n },\n done: function () {\n restoreIndividualMorphingPath(toPath);\n toPath.createPathProxy();\n toPath.dirtyShape();\n oldDone && oldDone();\n },\n aborted: function () {\n oldAborted && oldAborted();\n }\n }, animationOpts));\n return toPath;\n}\nfunction morphingPathBuildPath(path) {\n var morphingData = this.__morphingData;\n var t = this.__morphT;\n var onet = 1 - t;\n var newCp = [];\n for (var i = 0; i < morphingData.length; i++) {\n var item = morphingData[i];\n var from = item.from;\n var to = item.to;\n var angle = item.rotation * t;\n var fromCp = item.fromCp;\n var toCp = item.toCp;\n var sa = Math.sin(angle);\n var ca = Math.cos(angle);\n lerp(newCp, fromCp, toCp, t);\n for (var m = 0; m < from.length; m += 2) {\n var x0 = from[m];\n var y0 = from[m + 1];\n var x1 = to[m];\n var y1 = to[m + 1];\n var x = x0 * onet + x1 * t;\n var y = y0 * onet + y1 * t;\n tmpArr[m] = (x * ca - y * sa) + newCp[0];\n tmpArr[m + 1] = (x * sa + y * ca) + newCp[1];\n }\n for (var m = 0; m < from.length;) {\n if (m === 0) {\n path.moveTo(tmpArr[m++], tmpArr[m++]);\n }\n path.bezierCurveTo(tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++]);\n }\n }\n}\n;\nfunction becomeIndividualMorphingPath(path, morphingData, morphT) {\n if (isIndividualMorphingPath(path)) {\n updateIndividualMorphingPath(path, morphingData, morphT);\n return;\n }\n var morphingPath = path;\n morphingPath.__oldBuildPath = morphingPath.buildPath;\n morphingPath.buildPath = morphingPathBuildPath;\n updateIndividualMorphingPath(morphingPath, morphingData, morphT);\n}\nfunction updateIndividualMorphingPath(morphingPath, morphingData, morphT) {\n morphingPath.__morphingData = morphingData;\n morphingPath.__morphT = morphT;\n}\nfunction restoreIndividualMorphingPath(path) {\n if (isIndividualMorphingPath(path)) {\n path.buildPath = path.__oldBuildPath;\n path.__oldBuildPath = path.__morphingData = null;\n }\n}\nfunction isIndividualMorphingPath(path) {\n return path.__oldBuildPath != null;\n}\nexport function isCombiningPath(path) {\n return !!path.__combiningSubList;\n}\nexport function isInAnyMorphing(path) {\n return isIndividualMorphingPath(path) || isCombiningPath(path);\n}\nexport function combine(fromPathList, toPath, animationOpts, copyPropsIfDivided) {\n var fromIndividuals = [];\n var separateCount = 0;\n for (var i = 0; i < fromPathList.length; i++) {\n var fromPath = fromPathList[i];\n if (isCombiningPath(fromPath)) {\n var fromCombiningSubList = fromPath.__combiningSubList;\n for (var j = 0; j < fromCombiningSubList.length; j++) {\n fromIndividuals.push(fromCombiningSubList[j]);\n }\n separateCount += fromCombiningSubList.length;\n }\n else {\n fromIndividuals.push(fromPath);\n separateCount++;\n }\n }\n if (!separateCount) {\n return;\n }\n var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\n var toPathSplittedList = divideShape(toPath, separateCount, dividingMethod);\n assert(toPathSplittedList.length === separateCount);\n var oldDone = animationOpts && animationOpts.done;\n var oldAborted = animationOpts && animationOpts.aborted;\n var oldDuring = animationOpts && animationOpts.during;\n var doneCount = 0;\n var abortedCalled = false;\n var morphAnimationOpts = defaults({\n during: function (p) {\n oldDuring && oldDuring(p);\n },\n done: function () {\n doneCount++;\n if (doneCount === toPathSplittedList.length) {\n restoreCombiningPath(toPath);\n oldDone && oldDone();\n }\n },\n aborted: function () {\n if (!abortedCalled) {\n abortedCalled = true;\n oldAborted && oldAborted();\n }\n }\n }, animationOpts);\n for (var i = 0; i < separateCount; i++) {\n var from = fromIndividuals[i];\n var to = toPathSplittedList[i];\n copyPropsIfDivided && copyPropsIfDivided(toPath, to, true);\n morphPath(from, to, morphAnimationOpts);\n }\n becomeCombiningPath(toPath, toPathSplittedList);\n return {\n fromIndividuals: fromIndividuals,\n toIndividuals: toPathSplittedList,\n count: separateCount\n };\n}\nfunction becomeCombiningPath(path, combiningSubList) {\n if (isCombiningPath(path)) {\n updateCombiningPathSubList(path, combiningSubList);\n return;\n }\n var combiningPath = path;\n updateCombiningPathSubList(combiningPath, combiningSubList);\n combiningPath.__oldAddSelfToZr = path.addSelfToZr;\n combiningPath.__oldRemoveSelfFromZr = path.removeSelfFromZr;\n combiningPath.addSelfToZr = combiningAddSelfToZr;\n combiningPath.removeSelfFromZr = combiningRemoveSelfFromZr;\n combiningPath.__oldBuildPath = combiningPath.buildPath;\n combiningPath.buildPath = noop;\n combiningPath.childrenRef = combiningChildrenRef;\n}\nfunction restoreCombiningPath(path) {\n if (!isCombiningPath(path)) {\n return;\n }\n var combiningPath = path;\n updateCombiningPathSubList(combiningPath, null);\n combiningPath.addSelfToZr = combiningPath.__oldAddSelfToZr;\n combiningPath.removeSelfFromZr = combiningPath.__oldRemoveSelfFromZr;\n combiningPath.buildPath = combiningPath.__oldBuildPath;\n combiningPath.childrenRef =\n combiningPath.__combiningSubList =\n combiningPath.__oldAddSelfToZr =\n combiningPath.__oldRemoveSelfFromZr =\n combiningPath.__oldBuildPath = null;\n}\nfunction updateCombiningPathSubList(combiningPath, combiningSubList) {\n if (combiningPath.__combiningSubList !== combiningSubList) {\n combiningPathSubListAddRemoveWithZr(combiningPath, 'removeSelfFromZr');\n combiningPath.__combiningSubList = combiningSubList;\n if (combiningSubList) {\n for (var i = 0; i < combiningSubList.length; i++) {\n combiningSubList[i].parent = combiningPath;\n }\n }\n combiningPathSubListAddRemoveWithZr(combiningPath, 'addSelfToZr');\n }\n}\nfunction combiningAddSelfToZr(zr) {\n this.__oldAddSelfToZr(zr);\n combiningPathSubListAddRemoveWithZr(this, 'addSelfToZr');\n}\nfunction combiningPathSubListAddRemoveWithZr(path, method) {\n var combiningSubList = path.__combiningSubList;\n var zr = path.__zr;\n if (combiningSubList && zr) {\n for (var i = 0; i < combiningSubList.length; i++) {\n var child = combiningSubList[i];\n child[method](zr);\n }\n }\n}\nfunction combiningRemoveSelfFromZr(zr) {\n this.__oldRemoveSelfFromZr(zr);\n var combiningSubList = this.__combiningSubList;\n for (var i = 0; i < combiningSubList.length; i++) {\n var child = combiningSubList[i];\n child.removeSelfFromZr(zr);\n }\n}\nfunction combiningChildrenRef() {\n return this.__combiningSubList;\n}\nexport function separate(fromPath, toPathList, animationOpts, copyPropsIfDivided) {\n var toPathListLen = toPathList.length;\n var fromPathList;\n var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\n var copyProps = false;\n if (isCombiningPath(fromPath)) {\n var fromCombiningSubList = fromPath.__combiningSubList;\n if (fromCombiningSubList.length === toPathListLen) {\n fromPathList = fromCombiningSubList;\n }\n else {\n fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\n copyProps = true;\n }\n }\n else {\n fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\n copyProps = true;\n }\n assert(fromPathList.length === toPathListLen);\n for (var i = 0; i < toPathListLen; i++) {\n if (copyProps && copyPropsIfDivided) {\n copyPropsIfDivided(fromPath, fromPathList[i], false);\n }\n morphPath(fromPathList[i], toPathList[i], animationOpts);\n }\n return {\n fromIndividuals: fromPathList,\n toIndividuals: toPathList,\n count: toPathListLen\n };\n}\nfunction divideShape(path, separateCount, dividingMethod) {\n return dividingMethod === 'duplicate'\n ? duplicateShape(path, separateCount)\n : splitShape(path, separateCount);\n}\nfunction splitShape(path, separateCount) {\n var resultPaths = [];\n if (separateCount <= 0) {\n return resultPaths;\n }\n if (separateCount === 1) {\n return duplicateShape(path, separateCount);\n }\n if (path instanceof Rect) {\n var toPathShape = path.shape;\n var splitPropIdx = toPathShape.height > toPathShape.width ? 1 : 0;\n var propWH = PROP_WH[splitPropIdx];\n var propXY = PROP_XY[splitPropIdx];\n var subWH = toPathShape[propWH] / separateCount;\n var xyCurr = toPathShape[propXY];\n for (var i = 0; i < separateCount; i++, xyCurr += subWH) {\n var subShape = {\n x: toPathShape.x,\n y: toPathShape.y,\n width: toPathShape.width,\n height: toPathShape.height\n };\n subShape[propXY] = xyCurr;\n subShape[propWH] = i < separateCount - 1\n ? subWH\n : toPathShape[propXY] + toPathShape[propWH] - xyCurr;\n var splitted = new Rect({ shape: subShape });\n resultPaths.push(splitted);\n }\n }\n else if (path instanceof Sector) {\n var toPathShape = path.shape;\n var clockwise = toPathShape.clockwise;\n var startAngle = toPathShape.startAngle;\n var endAngle = toPathShape.endAngle;\n var endAngleNormalized = normalizeRadian(startAngle, toPathShape.endAngle, clockwise);\n var step = (endAngleNormalized - startAngle) / separateCount;\n var angleCurr = startAngle;\n for (var i = 0; i < separateCount; i++, angleCurr += step) {\n var splitted = new Sector({\n shape: {\n cx: toPathShape.cx,\n cy: toPathShape.cy,\n r: toPathShape.r,\n r0: toPathShape.r0,\n clockwise: clockwise,\n startAngle: angleCurr,\n endAngle: i === separateCount - 1 ? endAngle : angleCurr + step\n }\n });\n resultPaths.push(splitted);\n }\n }\n else {\n return duplicateShape(path, separateCount);\n }\n return resultPaths;\n}\nfunction duplicateShape(path, separateCount) {\n var resultPaths = [];\n if (separateCount <= 0) {\n return resultPaths;\n }\n var ctor = path.constructor;\n for (var i = 0; i < separateCount; i++) {\n var sub = new ctor({\n shape: clone(path.shape)\n });\n resultPaths.push(sub);\n }\n return resultPaths;\n}\nfunction normalizeRadian(start, end, clockwise) {\n return end + PI2 * (Math[clockwise ? 'ceil' : 'floor']((start - end) / PI2));\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { hasOwn, assert, isString, retrieve2, retrieve3, defaults, each, keys, isArrayLike, bind, isFunction, eqNaN, indexOf, clone } from 'zrender/lib/core/util';\nimport * as graphicUtil from '../../util/graphic';\nimport { setDefaultStateProxy, enableHoverEmphasis } from '../../util/states';\nimport * as labelStyleHelper from '../../label/labelStyle';\nimport { getDefaultLabel } from '../helper/labelHelper';\nimport createListFromArray from '../helper/createListFromArray';\nimport { getLayoutOnAxis } from '../../layout/barGrid';\nimport DataDiffer from '../../data/DataDiffer';\nimport SeriesModel from '../../model/Series';\nimport ChartView from '../../view/Chart';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport prepareCartesian2d from '../../coord/cartesian/prepareCustom';\nimport prepareGeo from '../../coord/geo/prepareCustom';\nimport prepareSingleAxis from '../../coord/single/prepareCustom';\nimport preparePolar from '../../coord/polar/prepareCustom';\nimport prepareCalendar from '../../coord/calendar/prepareCustom';\nimport { makeInner, normalizeToArray } from '../../util/model';\nimport { convertToEC4StyleForCustomSerise, isEC4CompatibleStyle, convertFromEC4CompatibleStyle, warnDeprecated } from '../../util/styleCompat';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { cloneValue } from 'zrender/lib/animation/Animator';\nimport { warn, throwError } from '../../util/log';\nimport { combine, isInAnyMorphing, morphPath, isCombiningPath, separate } from 'zrender/lib/tool/morphPath';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\nvar inner = makeInner();\nvar TRANSFORM_PROPS = {\n x: 1,\n y: 1,\n scaleX: 1,\n scaleY: 1,\n originX: 1,\n originY: 1,\n rotation: 1\n};\nvar transformPropNamesStr = keys(TRANSFORM_PROPS).join(', ');\n;\nvar STYLE_VISUAL_TYPE = {\n color: 'fill',\n borderColor: 'stroke'\n};\nvar NON_STYLE_VISUAL_PROPS = {\n symbol: 1,\n symbolSize: 1,\n symbolKeepAspect: 1,\n legendSymbol: 1,\n visualMeta: 1,\n liftZ: 1,\n decal: 1\n};\nvar EMPHASIS = 'emphasis';\nvar NORMAL = 'normal';\nvar BLUR = 'blur';\nvar SELECT = 'select';\nvar STATES = [NORMAL, EMPHASIS, BLUR, SELECT];\nvar PATH_ITEM_STYLE = {\n normal: ['itemStyle'],\n emphasis: [EMPHASIS, 'itemStyle'],\n blur: [BLUR, 'itemStyle'],\n select: [SELECT, 'itemStyle']\n};\nvar PATH_LABEL = {\n normal: ['label'],\n emphasis: [EMPHASIS, 'label'],\n blur: [BLUR, 'label'],\n select: [SELECT, 'label']\n};\nvar GROUP_DIFF_PREFIX = 'e\\0\\0';\nvar attachedTxInfoTmp = {\n normal: {},\n emphasis: {},\n blur: {},\n select: {}\n};\nvar LEGACY_TRANSFORM_PROPS = {\n position: ['x', 'y'],\n scale: ['scaleX', 'scaleY'],\n origin: ['originX', 'originY']\n};\nvar tmpTransformable = new Transformable();\nvar prepareCustoms = {\n cartesian2d: prepareCartesian2d,\n geo: prepareGeo,\n singleAxis: prepareSingleAxis,\n polar: preparePolar,\n calendar: prepareCalendar\n};\n\nvar CustomSeriesModel = function (_super) {\n __extends(CustomSeriesModel, _super);\n\n function CustomSeriesModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CustomSeriesModel.type;\n return _this;\n }\n\n CustomSeriesModel.prototype.optionUpdated = function () {\n this.currentZLevel = this.get('zlevel', true);\n this.currentZ = this.get('z', true);\n };\n\n CustomSeriesModel.prototype.getInitialData = function (option, ecModel) {\n return createListFromArray(this.getSource(), this);\n };\n\n CustomSeriesModel.prototype.getDataParams = function (dataIndex, dataType, el) {\n var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n el && (params.info = inner(el).info);\n return params;\n };\n\n CustomSeriesModel.type = 'series.custom';\n CustomSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n CustomSeriesModel.defaultOption = {\n coordinateSystem: 'cartesian2d',\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n clip: false\n };\n return CustomSeriesModel;\n}(SeriesModel);\n\nvar CustomSeriesView = function (_super) {\n __extends(CustomSeriesView, _super);\n\n function CustomSeriesView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CustomSeriesView.type;\n return _this;\n }\n\n CustomSeriesView.prototype.render = function (customSeries, ecModel, api, payload) {\n var oldData = this._data;\n var data = customSeries.getData();\n var group = this.group;\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n var transOpt = customSeries.__transientTransitionOpt;\n\n if (transOpt && (transOpt.from == null || transOpt.to == null)) {\n oldData && oldData.each(function (oldIdx) {\n doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\n });\n data.each(function (newIdx) {\n createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\n });\n } else {\n var morphPreparation_1 = new MorphPreparation(customSeries, transOpt);\n var diffMode = transOpt ? 'multiple' : 'oneToOne';\n new DataDiffer(oldData ? oldData.getIndices() : [], data.getIndices(), createGetKey(oldData, diffMode, transOpt && transOpt.from), createGetKey(data, diffMode, transOpt && transOpt.to), null, diffMode).add(function (newIdx) {\n createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\n }).remove(function (oldIdx) {\n doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\n }).update(function (newIdx, oldIdx) {\n morphPreparation_1.reset('oneToOne');\n var oldEl = oldData.getItemGraphicEl(oldIdx);\n morphPreparation_1.findAndAddFrom(oldEl);\n\n if (morphPreparation_1.hasFrom()) {\n removeElementDirectly(oldEl, group);\n oldEl = null;\n }\n\n createOrUpdateItem(api, oldEl, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\n morphPreparation_1.applyMorphing();\n }).updateManyToOne(function (newIdx, oldIndices) {\n morphPreparation_1.reset('manyToOne');\n\n for (var i = 0; i < oldIndices.length; i++) {\n var oldEl = oldData.getItemGraphicEl(oldIndices[i]);\n morphPreparation_1.findAndAddFrom(oldEl);\n removeElementDirectly(oldEl, group);\n }\n\n createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\n morphPreparation_1.applyMorphing();\n }).updateOneToMany(function (newIndices, oldIdx) {\n morphPreparation_1.reset('oneToMany');\n var newLen = newIndices.length;\n var oldEl = oldData.getItemGraphicEl(oldIdx);\n morphPreparation_1.findAndAddFrom(oldEl);\n removeElementDirectly(oldEl, group);\n\n for (var i = 0; i < newLen; i++) {\n createOrUpdateItem(api, null, newIndices[i], renderItem(newIndices[i], payload), customSeries, group, data, morphPreparation_1);\n }\n\n morphPreparation_1.applyMorphing();\n }).execute();\n }\n\n var clipPath = customSeries.get('clip', true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null;\n\n if (clipPath) {\n group.setClipPath(clipPath);\n } else {\n group.removeClipPath();\n }\n\n this._data = data;\n };\n\n CustomSeriesView.prototype.incrementalPrepareRender = function (customSeries, ecModel, api) {\n this.group.removeAll();\n this._data = null;\n };\n\n CustomSeriesView.prototype.incrementalRender = function (params, customSeries, ecModel, api, payload) {\n var data = customSeries.getData();\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n\n function setIncrementalAndHoverLayer(el) {\n if (!el.isGroup) {\n el.incremental = true;\n el.ensureState('emphasis').hoverLayer = true;\n }\n }\n\n for (var idx = params.start; idx < params.end; idx++) {\n var el = createOrUpdateItem(null, null, idx, renderItem(idx, payload), customSeries, this.group, data, null);\n el.traverse(setIncrementalAndHoverLayer);\n }\n };\n\n CustomSeriesView.prototype.filterForExposedEvent = function (eventType, query, targetEl, packedEvent) {\n var elementName = query.element;\n\n if (elementName == null || targetEl.name === elementName) {\n return true;\n }\n\n while ((targetEl = targetEl.__hostTarget || targetEl.parent) && targetEl !== this.group) {\n if (targetEl.name === elementName) {\n return true;\n }\n }\n\n return false;\n };\n\n CustomSeriesView.type = 'custom';\n return CustomSeriesView;\n}(ChartView);\n\nfunction createGetKey(data, diffMode, dimension) {\n if (!data) {\n return;\n }\n\n if (diffMode === 'oneToOne') {\n return function (rawIdx, dataIndex) {\n return data.getId(dataIndex);\n };\n }\n\n var diffByDimName = data.getDimension(dimension);\n var dimInfo = data.getDimensionInfo(diffByDimName);\n\n if (!dimInfo) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = dimension + \" is not a valid dimension.\";\n }\n\n throwError(errMsg);\n }\n\n var ordinalMeta = dimInfo.ordinalMeta;\n return function (rawIdx, dataIndex) {\n var key = data.get(diffByDimName, dataIndex);\n\n if (ordinalMeta) {\n key = ordinalMeta.categories[key];\n }\n\n return key == null || eqNaN(key) ? rawIdx + '' : '_ec_' + key;\n };\n}\n\nfunction createEl(elOption) {\n var graphicType = elOption.type;\n var el;\n\n if (graphicType === 'path') {\n var shape = elOption.shape;\n var pathRect = shape.width != null && shape.height != null ? {\n x: shape.x || 0,\n y: shape.y || 0,\n width: shape.width,\n height: shape.height\n } : null;\n var pathData = getPathData(shape);\n el = graphicUtil.makePath(pathData, null, pathRect, shape.layout || 'center');\n inner(el).customPathData = pathData;\n } else if (graphicType === 'image') {\n el = new graphicUtil.Image({});\n inner(el).customImagePath = elOption.style.image;\n } else if (graphicType === 'text') {\n el = new graphicUtil.Text({});\n } else if (graphicType === 'group') {\n el = new graphicUtil.Group();\n } else if (graphicType === 'compoundPath') {\n throw new Error('\"compoundPath\" is not supported yet.');\n } else {\n var Clz = graphicUtil.getShapeClass(graphicType);\n\n if (!Clz) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'graphic type \"' + graphicType + '\" can not be found.';\n }\n\n throwError(errMsg);\n }\n\n el = new Clz();\n }\n\n inner(el).customGraphicType = graphicType;\n el.name = elOption.name;\n el.z2EmphasisLift = 1;\n el.z2SelectLift = 1;\n return el;\n}\n\nfunction updateElNormal(api, el, isMorphTo, dataIndex, elOption, styleOpt, attachedTxInfo, seriesModel, isInit, isTextContent) {\n var transFromProps = {};\n var allPropsFinal = {};\n var elDisplayable = el.isGroup ? null : el;\n !isMorphTo && prepareShapeOrExtraTransitionFrom('shape', el, null, elOption, transFromProps, isInit);\n prepareShapeOrExtraAllPropsFinal('shape', elOption, allPropsFinal);\n !isMorphTo && prepareShapeOrExtraTransitionFrom('extra', el, null, elOption, transFromProps, isInit);\n prepareShapeOrExtraAllPropsFinal('extra', elOption, allPropsFinal);\n !isMorphTo && prepareTransformTransitionFrom(el, null, elOption, transFromProps, isInit);\n prepareTransformAllPropsFinal(elOption, allPropsFinal);\n var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg;\n\n if (txCfgOpt) {\n el.setTextConfig(txCfgOpt);\n }\n\n if (el.type === 'text' && styleOpt) {\n var textOptionStyle = styleOpt;\n hasOwn(textOptionStyle, 'textFill') && (textOptionStyle.fill = textOptionStyle.textFill);\n hasOwn(textOptionStyle, 'textStroke') && (textOptionStyle.stroke = textOptionStyle.textStroke);\n }\n\n if (styleOpt) {\n var decalPattern = void 0;\n var decalObj = isPath(el) ? styleOpt.decal : null;\n\n if (api && decalObj) {\n decalObj.dirty = true;\n decalPattern = createOrUpdatePatternFromDecal(decalObj, api);\n }\n\n styleOpt.__decalPattern = decalPattern;\n }\n\n !isMorphTo && prepareStyleTransitionFrom(el, null, elOption, styleOpt, transFromProps, isInit);\n\n if (elDisplayable) {\n hasOwn(elOption, 'invisible') && (elDisplayable.invisible = elOption.invisible);\n }\n\n if (!isMorphTo) {\n applyPropsFinal(el, allPropsFinal, styleOpt);\n applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit);\n }\n\n hasOwn(elOption, 'silent') && (el.silent = elOption.silent);\n hasOwn(elOption, 'ignore') && (el.ignore = elOption.ignore);\n\n if (!isTextContent) {\n hasOwn(elOption, 'info') && (inner(el).info = elOption.info);\n }\n\n styleOpt ? el.dirty() : el.markRedraw();\n return isMorphTo ? allPropsFinal : null;\n}\n\nfunction applyPropsFinal(el, allPropsFinal, styleOpt) {\n var elDisplayable = el.isGroup ? null : el;\n\n if (elDisplayable && styleOpt) {\n var decalPattern = styleOpt.__decalPattern;\n var originalDecalObj = void 0;\n\n if (decalPattern) {\n originalDecalObj = styleOpt.decal;\n styleOpt.decal = decalPattern;\n }\n\n elDisplayable.useStyle(styleOpt);\n\n if (decalPattern) {\n styleOpt.decal = originalDecalObj;\n }\n\n var animators = elDisplayable.animators;\n\n for (var i = 0; i < animators.length; i++) {\n var animator = animators[i];\n\n if (animator.targetName === 'style') {\n animator.changeTarget(elDisplayable.style);\n }\n }\n }\n\n allPropsFinal && el.attr(allPropsFinal);\n}\n\nfunction applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit) {\n if (transFromProps) {\n var userDuring = elOption.during;\n inner(el).userDuring = userDuring;\n var cfgDuringCall = userDuring ? bind(duringCall, {\n el: el,\n userDuring: userDuring\n }) : null;\n var cfg = {\n dataIndex: dataIndex,\n isFrom: true,\n during: cfgDuringCall\n };\n isInit ? graphicUtil.initProps(el, transFromProps, seriesModel, cfg) : graphicUtil.updateProps(el, transFromProps, seriesModel, cfg);\n }\n}\n\nfunction prepareShapeOrExtraTransitionFrom(mainAttr, el, morphFromEl, elOption, transFromProps, isInit) {\n var attrOpt = elOption[mainAttr];\n\n if (!attrOpt) {\n return;\n }\n\n var elPropsInAttr = el[mainAttr];\n var transFromPropsInAttr;\n var enterFrom = attrOpt.enterFrom;\n\n if (isInit && enterFrom) {\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n var enterFromKeys = keys(enterFrom);\n\n for (var i = 0; i < enterFromKeys.length; i++) {\n var key = enterFromKeys[i];\n transFromPropsInAttr[key] = enterFrom[key];\n }\n }\n\n if (!isInit && elPropsInAttr && !(morphFromEl != null && mainAttr === 'shape')) {\n if (attrOpt.transition) {\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n var transitionKeys = normalizeToArray(attrOpt.transition);\n\n for (var i = 0; i < transitionKeys.length; i++) {\n var key = transitionKeys[i];\n var elVal = elPropsInAttr[key];\n\n if (process.env.NODE_ENV !== 'production') {\n checkNonStyleTansitionRefer(key, attrOpt[key], elVal);\n }\n\n transFromPropsInAttr[key] = elVal;\n }\n } else if (indexOf(elOption.transition, mainAttr) >= 0) {\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n var elPropsInAttrKeys = keys(elPropsInAttr);\n\n for (var i = 0; i < elPropsInAttrKeys.length; i++) {\n var key = elPropsInAttrKeys[i];\n var elVal = elPropsInAttr[key];\n\n if (isNonStyleTransitionEnabled(attrOpt[key], elVal)) {\n transFromPropsInAttr[key] = elVal;\n }\n }\n }\n }\n\n var leaveTo = attrOpt.leaveTo;\n\n if (leaveTo) {\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n var leaveToPropsInAttr = leaveToProps[mainAttr] || (leaveToProps[mainAttr] = {});\n var leaveToKeys = keys(leaveTo);\n\n for (var i = 0; i < leaveToKeys.length; i++) {\n var key = leaveToKeys[i];\n leaveToPropsInAttr[key] = leaveTo[key];\n }\n }\n}\n\nfunction prepareShapeOrExtraAllPropsFinal(mainAttr, elOption, allProps) {\n var attrOpt = elOption[mainAttr];\n\n if (!attrOpt) {\n return;\n }\n\n var allPropsInAttr = allProps[mainAttr] = {};\n var keysInAttr = keys(attrOpt);\n\n for (var i = 0; i < keysInAttr.length; i++) {\n var key = keysInAttr[i];\n allPropsInAttr[key] = cloneValue(attrOpt[key]);\n }\n}\n\nfunction prepareTransformTransitionFrom(el, morphFromEl, elOption, transFromProps, isInit) {\n var enterFrom = elOption.enterFrom;\n\n if (isInit && enterFrom) {\n var enterFromKeys = keys(enterFrom);\n\n for (var i = 0; i < enterFromKeys.length; i++) {\n var key = enterFromKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n checkTransformPropRefer(key, 'el.enterFrom');\n }\n\n transFromProps[key] = enterFrom[key];\n }\n }\n\n if (!isInit) {\n if (morphFromEl) {\n var fromTransformable = calcOldElLocalTransformBasedOnNewElParent(morphFromEl, el);\n setTransformPropToTransitionFrom(transFromProps, 'x', fromTransformable);\n setTransformPropToTransitionFrom(transFromProps, 'y', fromTransformable);\n setTransformPropToTransitionFrom(transFromProps, 'scaleX', fromTransformable);\n setTransformPropToTransitionFrom(transFromProps, 'scaleY', fromTransformable);\n setTransformPropToTransitionFrom(transFromProps, 'originX', fromTransformable);\n setTransformPropToTransitionFrom(transFromProps, 'originY', fromTransformable);\n setTransformPropToTransitionFrom(transFromProps, 'rotation', fromTransformable);\n } else if (elOption.transition) {\n var transitionKeys = normalizeToArray(elOption.transition);\n\n for (var i = 0; i < transitionKeys.length; i++) {\n var key = transitionKeys[i];\n\n if (key === 'style' || key === 'shape' || key === 'extra') {\n continue;\n }\n\n var elVal = el[key];\n\n if (process.env.NODE_ENV !== 'production') {\n checkTransformPropRefer(key, 'el.transition');\n checkNonStyleTansitionRefer(key, elOption[key], elVal);\n }\n\n transFromProps[key] = elVal;\n }\n } else {\n setTransformPropToTransitionFrom(transFromProps, 'x', el);\n setTransformPropToTransitionFrom(transFromProps, 'y', el);\n }\n }\n\n var leaveTo = elOption.leaveTo;\n\n if (leaveTo) {\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n var leaveToKeys = keys(leaveTo);\n\n for (var i = 0; i < leaveToKeys.length; i++) {\n var key = leaveToKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n checkTransformPropRefer(key, 'el.leaveTo');\n }\n\n leaveToProps[key] = leaveTo[key];\n }\n }\n}\n\nfunction prepareTransformAllPropsFinal(elOption, allProps) {\n setLagecyTransformProp(elOption, allProps, 'position');\n setLagecyTransformProp(elOption, allProps, 'scale');\n setLagecyTransformProp(elOption, allProps, 'origin');\n setTransformProp(elOption, allProps, 'x');\n setTransformProp(elOption, allProps, 'y');\n setTransformProp(elOption, allProps, 'scaleX');\n setTransformProp(elOption, allProps, 'scaleY');\n setTransformProp(elOption, allProps, 'originX');\n setTransformProp(elOption, allProps, 'originY');\n setTransformProp(elOption, allProps, 'rotation');\n}\n\nfunction prepareStyleTransitionFrom(el, morphFromEl, elOption, styleOpt, transFromProps, isInit) {\n if (!styleOpt) {\n return;\n }\n\n var fromEl = morphFromEl || el;\n var fromElStyle = fromEl.style;\n var transFromStyleProps;\n var enterFrom = styleOpt.enterFrom;\n\n if (isInit && enterFrom) {\n var enterFromKeys = keys(enterFrom);\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n for (var i = 0; i < enterFromKeys.length; i++) {\n var key = enterFromKeys[i];\n transFromStyleProps[key] = enterFrom[key];\n }\n }\n\n if (!isInit && fromElStyle) {\n if (styleOpt.transition) {\n var transitionKeys = normalizeToArray(styleOpt.transition);\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n for (var i = 0; i < transitionKeys.length; i++) {\n var key = transitionKeys[i];\n var elVal = fromElStyle[key];\n transFromStyleProps[key] = elVal;\n }\n } else if (el.getAnimationStyleProps && indexOf(elOption.transition, 'style') >= 0) {\n var animationProps = el.getAnimationStyleProps();\n var animationStyleProps = animationProps ? animationProps.style : null;\n\n if (animationStyleProps) {\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n var styleKeys = keys(styleOpt);\n\n for (var i = 0; i < styleKeys.length; i++) {\n var key = styleKeys[i];\n\n if (animationStyleProps[key]) {\n var elVal = fromElStyle[key];\n transFromStyleProps[key] = elVal;\n }\n }\n }\n }\n }\n\n var leaveTo = styleOpt.leaveTo;\n\n if (leaveTo) {\n var leaveToKeys = keys(leaveTo);\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n var leaveToStyleProps = leaveToProps.style || (leaveToProps.style = {});\n\n for (var i = 0; i < leaveToKeys.length; i++) {\n var key = leaveToKeys[i];\n leaveToStyleProps[key] = leaveTo[key];\n }\n }\n}\n\nfunction calcOldElLocalTransformBasedOnNewElParent(oldEl, newEl) {\n if (!oldEl || oldEl === newEl || oldEl.parent === newEl.parent) {\n return oldEl;\n }\n\n var tmpM = tmpTransformable.transform || (tmpTransformable.transform = matrix.identity([]));\n var oldGlobalTransform = oldEl.getComputedTransform();\n oldGlobalTransform ? matrix.copy(tmpM, oldGlobalTransform) : matrix.identity(tmpM);\n var newParent = newEl.parent;\n\n if (newParent) {\n newParent.getComputedTransform();\n }\n\n tmpTransformable.originX = oldEl.originX;\n tmpTransformable.originY = oldEl.originY;\n tmpTransformable.parent = newParent;\n tmpTransformable.decomposeTransform();\n return tmpTransformable;\n}\n\nvar checkNonStyleTansitionRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n checkNonStyleTansitionRefer = function (propName, optVal, elVal) {\n if (!isArrayLike(optVal)) {\n assert(optVal != null && isFinite(optVal), 'Prop `' + propName + '` must refer to a finite number or ArrayLike for transition.');\n } else {\n assert(optVal !== elVal, 'Prop `' + propName + '` must use different Array object each time for transition.');\n }\n };\n}\n\nfunction isNonStyleTransitionEnabled(optVal, elVal) {\n return !isArrayLike(optVal) ? optVal != null && isFinite(optVal) : optVal !== elVal;\n}\n\nvar checkTransformPropRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n checkTransformPropRefer = function (key, usedIn) {\n assert(hasOwn(TRANSFORM_PROPS, key), 'Prop `' + key + '` is not a permitted in `' + usedIn + '`. ' + 'Only `' + keys(TRANSFORM_PROPS).join('`, `') + '` are permitted.');\n };\n}\n\nfunction getOrCreateLeaveToPropsFromEl(el) {\n var innerEl = inner(el);\n return innerEl.leaveToProps || (innerEl.leaveToProps = {});\n}\n\nvar tmpDuringScope = {};\nvar customDuringAPI = {\n setTransform: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `setTransform`.');\n }\n\n tmpDuringScope.el[key] = val;\n return this;\n },\n getTransform: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `getTransform`.');\n }\n\n return tmpDuringScope.el[key];\n },\n setShape: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var shape = tmpDuringScope.el.shape || (tmpDuringScope.el.shape = {});\n shape[key] = val;\n tmpDuringScope.isShapeDirty = true;\n return this;\n },\n getShape: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var shape = tmpDuringScope.el.shape;\n\n if (shape) {\n return shape[key];\n }\n },\n setStyle: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var style = tmpDuringScope.el.style;\n\n if (style) {\n if (process.env.NODE_ENV !== 'production') {\n if (eqNaN(val)) {\n warn('style.' + key + ' must not be assigned with NaN.');\n }\n }\n\n style[key] = val;\n tmpDuringScope.isStyleDirty = true;\n }\n\n return this;\n },\n getStyle: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var style = tmpDuringScope.el.style;\n\n if (style) {\n return style[key];\n }\n },\n setExtra: function (key, val) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var extra = tmpDuringScope.el.extra || (tmpDuringScope.el.extra = {});\n extra[key] = val;\n return this;\n },\n getExtra: function (key) {\n if (process.env.NODE_ENV !== 'production') {\n assertNotReserved(key);\n }\n\n var extra = tmpDuringScope.el.extra;\n\n if (extra) {\n return extra[key];\n }\n }\n};\n\nfunction assertNotReserved(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (key === 'transition' || key === 'enterFrom' || key === 'leaveTo') {\n throw new Error('key must not be \"' + key + '\"');\n }\n }\n}\n\nfunction duringCall() {\n var scope = this;\n var el = scope.el;\n\n if (!el) {\n return;\n }\n\n var newstUserDuring = inner(el).userDuring;\n var scopeUserDuring = scope.userDuring;\n\n if (newstUserDuring !== scopeUserDuring) {\n scope.el = scope.userDuring = null;\n return;\n }\n\n tmpDuringScope.el = el;\n tmpDuringScope.isShapeDirty = false;\n tmpDuringScope.isStyleDirty = false;\n scopeUserDuring(customDuringAPI);\n\n if (tmpDuringScope.isShapeDirty && el.dirtyShape) {\n el.dirtyShape();\n }\n\n if (tmpDuringScope.isStyleDirty && el.dirtyStyle) {\n el.dirtyStyle();\n }\n}\n\nfunction updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo, isRoot, isTextContent) {\n var elDisplayable = el.isGroup ? null : el;\n var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg;\n\n if (elDisplayable) {\n var stateObj = elDisplayable.ensureState(state);\n\n if (styleOpt === false) {\n var existingEmphasisState = elDisplayable.getState(state);\n\n if (existingEmphasisState) {\n existingEmphasisState.style = null;\n }\n } else {\n stateObj.style = styleOpt || null;\n }\n\n if (txCfgOpt) {\n stateObj.textConfig = txCfgOpt;\n }\n\n setDefaultStateProxy(elDisplayable);\n }\n}\n\nfunction updateZ(el, elOption, seriesModel, attachedTxInfo) {\n if (el.isGroup) {\n return;\n }\n\n var elDisplayable = el;\n var currentZ = seriesModel.currentZ;\n var currentZLevel = seriesModel.currentZLevel;\n elDisplayable.z = currentZ;\n elDisplayable.zlevel = currentZLevel;\n var optZ2 = elOption.z2;\n optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\n\n for (var i = 0; i < STATES.length; i++) {\n updateZForEachState(elDisplayable, elOption, STATES[i]);\n }\n}\n\nfunction updateZForEachState(elDisplayable, elOption, state) {\n var isNormal = state === NORMAL;\n var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state);\n var optZ2 = elStateOpt ? elStateOpt.z2 : null;\n var stateObj;\n\n if (optZ2 != null) {\n stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state);\n stateObj.z2 = optZ2 || 0;\n }\n}\n\nfunction setLagecyTransformProp(elOption, targetProps, legacyName, fromTransformable) {\n var legacyArr = elOption[legacyName];\n var xyName = LEGACY_TRANSFORM_PROPS[legacyName];\n\n if (legacyArr) {\n if (fromTransformable) {\n targetProps[xyName[0]] = fromTransformable[xyName[0]];\n targetProps[xyName[1]] = fromTransformable[xyName[1]];\n } else {\n targetProps[xyName[0]] = legacyArr[0];\n targetProps[xyName[1]] = legacyArr[1];\n }\n }\n}\n\nfunction setTransformProp(elOption, allProps, name, fromTransformable) {\n if (elOption[name] != null) {\n allProps[name] = fromTransformable ? fromTransformable[name] : elOption[name];\n }\n}\n\nfunction setTransformPropToTransitionFrom(transitionFrom, name, fromTransformable) {\n if (fromTransformable) {\n transitionFrom[name] = fromTransformable[name];\n }\n}\n\nfunction makeRenderItem(customSeries, data, ecModel, api) {\n var renderItem = customSeries.get('renderItem');\n var coordSys = customSeries.coordinateSystem;\n var prepareResult = {};\n\n if (coordSys) {\n if (process.env.NODE_ENV !== 'production') {\n assert(renderItem, 'series.render is required.');\n assert(coordSys.prepareCustoms || prepareCustoms[coordSys.type], 'This coordSys does not support custom series.');\n }\n\n prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms(coordSys) : prepareCustoms[coordSys.type](coordSys);\n }\n\n var userAPI = defaults({\n getWidth: api.getWidth,\n getHeight: api.getHeight,\n getZr: api.getZr,\n getDevicePixelRatio: api.getDevicePixelRatio,\n value: value,\n style: style,\n ordinalRawValue: ordinalRawValue,\n styleEmphasis: styleEmphasis,\n visual: visual,\n barLayout: barLayout,\n currentSeriesIndices: currentSeriesIndices,\n font: font\n }, prepareResult.api || {});\n var userParams = {\n context: {},\n seriesId: customSeries.id,\n seriesName: customSeries.name,\n seriesIndex: customSeries.seriesIndex,\n coordSys: prepareResult.coordSys,\n dataInsideLength: data.count(),\n encode: wrapEncodeDef(customSeries.getData())\n };\n var currDataIndexInside;\n var currItemModel;\n var currItemStyleModels = {};\n var currLabelModels = {};\n var seriesItemStyleModels = {};\n var seriesLabelModels = {};\n\n for (var i = 0; i < STATES.length; i++) {\n var stateName = STATES[i];\n seriesItemStyleModels[stateName] = customSeries.getModel(PATH_ITEM_STYLE[stateName]);\n seriesLabelModels[stateName] = customSeries.getModel(PATH_LABEL[stateName]);\n }\n\n function getItemModel(dataIndexInside) {\n return dataIndexInside === currDataIndexInside ? currItemModel || (currItemModel = data.getItemModel(dataIndexInside)) : data.getItemModel(dataIndexInside);\n }\n\n function getItemStyleModel(dataIndexInside, state) {\n return !data.hasItemOption ? seriesItemStyleModels[state] : dataIndexInside === currDataIndexInside ? currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state])) : getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state]);\n }\n\n function getLabelModel(dataIndexInside, state) {\n return !data.hasItemOption ? seriesLabelModels[state] : dataIndexInside === currDataIndexInside ? currLabelModels[state] || (currLabelModels[state] = getItemModel(dataIndexInside).getModel(PATH_LABEL[state])) : getItemModel(dataIndexInside).getModel(PATH_LABEL[state]);\n }\n\n return function (dataIndexInside, payload) {\n currDataIndexInside = dataIndexInside;\n currItemModel = null;\n currItemStyleModels = {};\n currLabelModels = {};\n return renderItem && renderItem(defaults({\n dataIndexInside: dataIndexInside,\n dataIndex: data.getRawIndex(dataIndexInside),\n actionType: payload ? payload.type : null\n }, userParams), userAPI);\n };\n\n function value(dim, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n return data.get(data.getDimension(dim || 0), dataIndexInside);\n }\n\n function ordinalRawValue(dim, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n var dimInfo = data.getDimensionInfo(dim || 0);\n\n if (!dimInfo) {\n return;\n }\n\n var val = data.get(dimInfo.name, dataIndexInside);\n var ordinalMeta = dimInfo && dimInfo.ordinalMeta;\n return ordinalMeta ? ordinalMeta.categories[val] : val;\n }\n\n function style(userProps, dataIndexInside) {\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecated('api.style', 'Please write literal style directly instead.');\n }\n\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n var style = data.getItemVisual(dataIndexInside, 'style');\n var visualColor = style && style.fill;\n var opacity = style && style.opacity;\n var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle();\n visualColor != null && (itemStyle.fill = visualColor);\n opacity != null && (itemStyle.opacity = opacity);\n var opt = {\n inheritColor: isString(visualColor) ? visualColor : '#000'\n };\n var labelModel = getLabelModel(dataIndexInside, NORMAL);\n var textStyle = labelStyleHelper.createTextStyle(labelModel, null, opt, false, true);\n textStyle.text = labelModel.getShallow('show') ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n var textConfig = labelStyleHelper.createTextConfig(labelModel, opt, false);\n preFetchFromExtra(userProps, itemStyle);\n itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n userProps && applyUserPropsAfter(itemStyle, userProps);\n itemStyle.legacy = true;\n return itemStyle;\n }\n\n function styleEmphasis(userProps, dataIndexInside) {\n if (process.env.NODE_ENV !== 'production') {\n warnDeprecated('api.styleEmphasis', 'Please write literal style directly instead.');\n }\n\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle();\n var labelModel = getLabelModel(dataIndexInside, EMPHASIS);\n var textStyle = labelStyleHelper.createTextStyle(labelModel, null, null, true, true);\n textStyle.text = labelModel.getShallow('show') ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n var textConfig = labelStyleHelper.createTextConfig(labelModel, null, true);\n preFetchFromExtra(userProps, itemStyle);\n itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n userProps && applyUserPropsAfter(itemStyle, userProps);\n itemStyle.legacy = true;\n return itemStyle;\n }\n\n function applyUserPropsAfter(itemStyle, extra) {\n for (var key in extra) {\n if (hasOwn(extra, key)) {\n itemStyle[key] = extra[key];\n }\n }\n }\n\n function preFetchFromExtra(extra, itemStyle) {\n if (extra) {\n extra.textFill && (itemStyle.textFill = extra.textFill);\n extra.textPosition && (itemStyle.textPosition = extra.textPosition);\n }\n }\n\n function visual(visualType, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n\n if (hasOwn(STYLE_VISUAL_TYPE, visualType)) {\n var style_1 = data.getItemVisual(dataIndexInside, 'style');\n return style_1 ? style_1[STYLE_VISUAL_TYPE[visualType]] : null;\n }\n\n if (hasOwn(NON_STYLE_VISUAL_PROPS, visualType)) {\n return data.getItemVisual(dataIndexInside, visualType);\n }\n }\n\n function barLayout(opt) {\n if (coordSys.type === 'cartesian2d') {\n var baseAxis = coordSys.getBaseAxis();\n return getLayoutOnAxis(defaults({\n axis: baseAxis\n }, opt));\n }\n }\n\n function currentSeriesIndices() {\n return ecModel.getCurrentSeriesIndices();\n }\n\n function font(opt) {\n return labelStyleHelper.getFont(opt, ecModel);\n }\n}\n\nfunction wrapEncodeDef(data) {\n var encodeDef = {};\n each(data.dimensions, function (dimName, dataDimIndex) {\n var dimInfo = data.getDimensionInfo(dimName);\n\n if (!dimInfo.isExtraCoord) {\n var coordDim = dimInfo.coordDim;\n var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\n dataDims[dimInfo.coordDimIndex] = dataDimIndex;\n }\n });\n return encodeDef;\n}\n\nfunction createOrUpdateItem(api, el, dataIndex, elOption, seriesModel, group, data, morphPreparation) {\n if (!elOption) {\n removeElementDirectly(el, group);\n return;\n }\n\n el = doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, true, morphPreparation);\n el && data.setItemGraphicEl(dataIndex, el);\n enableHoverEmphasis(el, elOption.focus, elOption.blurScope);\n return el;\n}\n\nfunction doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, isRoot, morphPreparation) {\n if (process.env.NODE_ENV !== 'production') {\n assert(elOption, 'should not have an null/undefined element setting');\n }\n\n var toBeReplacedIdx = -1;\n\n if (el && doesElNeedRecreate(el, elOption)) {\n toBeReplacedIdx = group.childrenRef().indexOf(el);\n el = null;\n }\n\n var elIsNewCreated = !el;\n\n if (!el) {\n el = createEl(elOption);\n } else {\n el.clearStates();\n }\n\n var canMorph = inner(el).canMorph = elOption.morph && isPath(el);\n var thisElIsMorphTo = canMorph && morphPreparation && morphPreparation.hasFrom();\n var isInit = elIsNewCreated && !thisElIsMorphTo;\n attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt = attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt = attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt = attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null;\n attachedTxInfoTmp.isLegacy = false;\n doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp);\n doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit);\n var pendingAllPropsFinal = updateElNormal(api, el, thisElIsMorphTo, dataIndex, elOption, elOption.style, attachedTxInfoTmp, seriesModel, isInit, false);\n\n if (thisElIsMorphTo) {\n morphPreparation.addTo(el, elOption, dataIndex, pendingAllPropsFinal);\n }\n\n for (var i = 0; i < STATES.length; i++) {\n var stateName = STATES[i];\n\n if (stateName !== NORMAL) {\n var otherStateOpt = retrieveStateOption(elOption, stateName);\n var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName);\n updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp, isRoot, false);\n }\n }\n\n updateZ(el, elOption, seriesModel, attachedTxInfoTmp);\n\n if (elOption.type === 'group') {\n mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation);\n }\n\n if (toBeReplacedIdx >= 0) {\n group.replaceAt(el, toBeReplacedIdx);\n } else {\n group.add(el);\n }\n\n return el;\n}\n\nfunction doesElNeedRecreate(el, elOption) {\n var elInner = inner(el);\n var elOptionType = elOption.type;\n var elOptionShape = elOption.shape;\n var elOptionStyle = elOption.style;\n return elOptionType != null && elOptionType !== elInner.customGraphicType || elOptionType === 'path' && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== elInner.customPathData || elOptionType === 'image' && hasOwn(elOptionStyle, 'image') && elOptionStyle.image !== elInner.customImagePath;\n}\n\nfunction doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) {\n var clipPathOpt = elOption.clipPath;\n\n if (clipPathOpt === false) {\n if (el && el.getClipPath()) {\n el.removeClipPath();\n }\n } else if (clipPathOpt) {\n var clipPath = el.getClipPath();\n\n if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt)) {\n clipPath = null;\n }\n\n if (!clipPath) {\n clipPath = createEl(clipPathOpt);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(clipPath instanceof graphicUtil.Path, 'Only any type of `path` can be used in `clipPath`, rather than ' + clipPath.type + '.');\n }\n\n el.setClipPath(clipPath);\n }\n\n updateElNormal(null, clipPath, null, dataIndex, clipPathOpt, null, null, seriesModel, isInit, false);\n }\n}\n\nfunction doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) {\n if (el.isGroup) {\n return;\n }\n\n processTxInfo(elOption, null, attachedTxInfo);\n processTxInfo(elOption, EMPHASIS, attachedTxInfo);\n var txConOptNormal = attachedTxInfo.normal.conOpt;\n var txConOptEmphasis = attachedTxInfo.emphasis.conOpt;\n var txConOptBlur = attachedTxInfo.blur.conOpt;\n var txConOptSelect = attachedTxInfo.select.conOpt;\n\n if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) {\n var textContent = el.getTextContent();\n\n if (txConOptNormal === false) {\n textContent && el.removeTextContent();\n } else {\n txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || {\n type: 'text'\n };\n\n if (!textContent) {\n textContent = createEl(txConOptNormal);\n el.setTextContent(textContent);\n } else {\n textContent.clearStates();\n }\n\n var txConStlOptNormal = txConOptNormal && txConOptNormal.style;\n updateElNormal(null, textContent, null, dataIndex, txConOptNormal, txConStlOptNormal, null, seriesModel, isInit, true);\n\n for (var i = 0; i < STATES.length; i++) {\n var stateName = STATES[i];\n\n if (stateName !== NORMAL) {\n var txConOptOtherState = attachedTxInfo[stateName].conOpt;\n updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null, false, true);\n }\n }\n\n txConStlOptNormal ? textContent.dirty() : textContent.markRedraw();\n }\n }\n}\n\nfunction processTxInfo(elOption, state, attachedTxInfo) {\n var stateOpt = !state ? elOption : retrieveStateOption(elOption, state);\n var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS);\n var elType = elOption.type;\n var txCfg = stateOpt ? stateOpt.textConfig : null;\n var txConOptNormal = elOption.textContent;\n var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state);\n\n if (styleOpt && (attachedTxInfo.isLegacy || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) {\n attachedTxInfo.isLegacy = true;\n var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state);\n\n if (!txCfg && convertResult.textConfig) {\n txCfg = convertResult.textConfig;\n }\n\n if (!txConOpt && convertResult.textContent) {\n txConOpt = convertResult.textContent;\n }\n }\n\n if (!state && txConOpt) {\n var txConOptNormal_1 = txConOpt;\n !txConOptNormal_1.type && (txConOptNormal_1.type = 'text');\n\n if (process.env.NODE_ENV !== 'production') {\n txConOptNormal_1.type !== 'text' && assert(txConOptNormal_1.type === 'text', 'textContent.type must be \"text\"');\n }\n }\n\n var info = !state ? attachedTxInfo.normal : attachedTxInfo[state];\n info.cfg = txCfg;\n info.conOpt = txConOpt;\n}\n\nfunction retrieveStateOption(elOption, state) {\n return !state ? elOption : elOption ? elOption[state] : null;\n}\n\nfunction retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) {\n var style = stateOption && stateOption.style;\n\n if (style == null && state === EMPHASIS && stateOptionNormal) {\n style = stateOptionNormal.styleEmphasis;\n }\n\n return style;\n}\n\nfunction mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation) {\n var newChildren = elOption.children;\n var newLen = newChildren ? newChildren.length : 0;\n var mergeChildren = elOption.$mergeChildren;\n var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\n var notMerge = mergeChildren === false;\n\n if (!newLen && !byName && !notMerge) {\n return;\n }\n\n if (byName) {\n diffGroupChildren({\n api: api,\n oldChildren: el.children() || [],\n newChildren: newChildren || [],\n dataIndex: dataIndex,\n seriesModel: seriesModel,\n group: el,\n morphPreparation: morphPreparation\n });\n return;\n }\n\n notMerge && el.removeAll();\n var index = 0;\n\n for (; index < newLen; index++) {\n newChildren[index] && doCreateOrUpdateEl(api, el.childAt(index), dataIndex, newChildren[index], seriesModel, el, false, morphPreparation);\n }\n\n for (var i = el.childCount() - 1; i >= index; i--) {\n doRemoveEl(el.childAt(i), seriesModel, el);\n }\n}\n\nfunction diffGroupChildren(context) {\n new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();\n}\n\nfunction getKey(item, idx) {\n var name = item && item.name;\n return name != null ? name : GROUP_DIFF_PREFIX + idx;\n}\n\nfunction processAddUpdate(newIndex, oldIndex) {\n var context = this.context;\n var childOption = newIndex != null ? context.newChildren[newIndex] : null;\n var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\n doCreateOrUpdateEl(context.api, child, context.dataIndex, childOption, context.seriesModel, context.group, false, context.morphPreparation);\n}\n\nfunction processRemove(oldIndex) {\n var context = this.context;\n var child = context.oldChildren[oldIndex];\n doRemoveEl(child, context.seriesModel, context.group);\n}\n\nfunction doRemoveEl(el, seriesModel, group) {\n if (el) {\n var leaveToProps = inner(el).leaveToProps;\n leaveToProps ? graphicUtil.updateProps(el, leaveToProps, seriesModel, {\n cb: function () {\n group.remove(el);\n }\n }) : group.remove(el);\n }\n}\n\nfunction getPathData(shape) {\n return shape && (shape.pathData || shape.d);\n}\n\nfunction hasOwnPathData(shape) {\n return shape && (hasOwn(shape, 'pathData') || hasOwn(shape, 'd'));\n}\n\nfunction isPath(el) {\n return el && el instanceof graphicUtil.Path;\n}\n\nfunction removeElementDirectly(el, group) {\n el && group.remove(el);\n}\n\nvar MorphPreparation = function () {\n function MorphPreparation(seriesModel, transOpt) {\n this._fromList = [];\n this._toList = [];\n this._toElOptionList = [];\n this._allPropsFinalList = [];\n this._toDataIndices = [];\n this._morphConfigList = [];\n this._seriesModel = seriesModel;\n this._transOpt = transOpt;\n }\n\n MorphPreparation.prototype.hasFrom = function () {\n return !!this._fromList.length;\n };\n\n MorphPreparation.prototype.findAndAddFrom = function (el) {\n if (!el) {\n return;\n }\n\n if (inner(el).canMorph) {\n this._fromList.push(el);\n }\n\n if (el.isGroup) {\n var children = el.childrenRef();\n\n for (var i = 0; i < children.length; i++) {\n this.findAndAddFrom(children[i]);\n }\n }\n };\n\n MorphPreparation.prototype.addTo = function (path, elOption, dataIndex, allPropsFinal) {\n if (path) {\n this._toList.push(path);\n\n this._toElOptionList.push(elOption);\n\n this._toDataIndices.push(dataIndex);\n\n this._allPropsFinalList.push(allPropsFinal);\n }\n };\n\n MorphPreparation.prototype.applyMorphing = function () {\n var type = this._type;\n var fromList = this._fromList;\n var toList = this._toList;\n var toListLen = toList.length;\n var fromListLen = fromList.length;\n\n if (!fromListLen || !toListLen) {\n return;\n }\n\n if (type === 'oneToOne') {\n for (var toIdx = 0; toIdx < toListLen; toIdx++) {\n this._oneToOneForSingleTo(toIdx, toIdx);\n }\n } else if (type === 'manyToOne') {\n var fromSingleSegLen = Math.max(1, Math.floor(fromListLen / toListLen));\n\n for (var toIdx = 0, fromIdxStart = 0; toIdx < toListLen; toIdx++, fromIdxStart += fromSingleSegLen) {\n var fromCount = toIdx + 1 >= toListLen ? fromListLen - fromIdxStart : fromSingleSegLen;\n\n this._manyToOneForSingleTo(toIdx, fromIdxStart >= fromListLen ? null : fromIdxStart, fromCount);\n }\n } else if (type === 'oneToMany') {\n var toSingleSegLen = Math.max(1, Math.floor(toListLen / fromListLen));\n\n for (var toIdxStart = 0, fromIdx = 0; toIdxStart < toListLen; toIdxStart += toSingleSegLen, fromIdx++) {\n var toCount = toIdxStart + toSingleSegLen >= toListLen ? toListLen - toIdxStart : toSingleSegLen;\n\n this._oneToManyForSingleFrom(toIdxStart, toCount, fromIdx >= fromListLen ? null : fromIdx);\n }\n }\n };\n\n MorphPreparation.prototype._oneToOneForSingleTo = function (toIdx, fromIdx) {\n var to = this._toList[toIdx];\n var toElOption = this._toElOptionList[toIdx];\n var toDataIndex = this._toDataIndices[toIdx];\n var allPropsFinal = this._allPropsFinalList[toIdx];\n var from = this._fromList[fromIdx];\n\n var elAnimationConfig = this._getOrCreateMorphConfig(toDataIndex);\n\n var morphDuration = elAnimationConfig.duration;\n\n if (from && isCombiningPath(from)) {\n applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n if (morphDuration) {\n var combineResult = combine([from], to, elAnimationConfig, copyPropsWhenDivided);\n\n this._processResultIndividuals(combineResult, toIdx, null);\n }\n } else {\n var morphFrom = morphDuration && from && (from !== to || isInAnyMorphing(from)) ? from : null;\n var transFromProps = {};\n prepareShapeOrExtraTransitionFrom('shape', to, morphFrom, toElOption, transFromProps, false);\n prepareShapeOrExtraTransitionFrom('extra', to, morphFrom, toElOption, transFromProps, false);\n prepareTransformTransitionFrom(to, morphFrom, toElOption, transFromProps, false);\n prepareStyleTransitionFrom(to, morphFrom, toElOption, toElOption.style, transFromProps, false);\n applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n if (morphFrom) {\n morphPath(morphFrom, to, elAnimationConfig);\n }\n\n applyTransitionFrom(to, toDataIndex, toElOption, this._seriesModel, transFromProps, false);\n }\n };\n\n MorphPreparation.prototype._manyToOneForSingleTo = function (toIdx, fromIdxStart, fromCount) {\n var to = this._toList[toIdx];\n var toElOption = this._toElOptionList[toIdx];\n var allPropsFinal = this._allPropsFinalList[toIdx];\n applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdx]);\n\n if (elAnimationConfig.duration && fromIdxStart != null) {\n var combineFromList = [];\n\n for (var fromIdx = fromIdxStart; fromIdx < fromCount; fromIdx++) {\n combineFromList.push(this._fromList[fromIdx]);\n }\n\n var combineResult = combine(combineFromList, to, elAnimationConfig, copyPropsWhenDivided);\n\n this._processResultIndividuals(combineResult, toIdx, null);\n }\n };\n\n MorphPreparation.prototype._oneToManyForSingleFrom = function (toIdxStart, toCount, fromIdx) {\n var from = fromIdx == null ? null : this._fromList[fromIdx];\n var toList = this._toList;\n var separateToList = [];\n\n for (var toIdx = toIdxStart; toIdx < toCount; toIdx++) {\n var to = toList[toIdx];\n applyPropsFinal(to, this._allPropsFinalList[toIdx], this._toElOptionList[toIdx].style);\n separateToList.push(to);\n }\n\n var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdxStart]);\n\n if (elAnimationConfig.duration && from) {\n var separateResult = separate(from, separateToList, elAnimationConfig, copyPropsWhenDivided);\n\n this._processResultIndividuals(separateResult, toIdxStart, toCount);\n }\n };\n\n MorphPreparation.prototype._processResultIndividuals = function (combineSeparateResult, toIdxStart, toCount) {\n var isSeparate = toCount != null;\n\n for (var i = 0; i < combineSeparateResult.count; i++) {\n var fromIndividual = combineSeparateResult.fromIndividuals[i];\n var toIndividual = combineSeparateResult.toIndividuals[i];\n var toIdx = toIdxStart + (isSeparate ? i : 0);\n var toElOption = this._toElOptionList[toIdx];\n var dataIndex = this._toDataIndices[toIdx];\n var transFromProps = {};\n prepareTransformTransitionFrom(toIndividual, fromIndividual, toElOption, transFromProps, false);\n prepareStyleTransitionFrom(toIndividual, fromIndividual, toElOption, toElOption.style, transFromProps, false);\n applyTransitionFrom(toIndividual, dataIndex, toElOption, this._seriesModel, transFromProps, false);\n }\n };\n\n MorphPreparation.prototype._getOrCreateMorphConfig = function (dataIndex) {\n var morphConfigList = this._morphConfigList;\n var config = morphConfigList[dataIndex];\n\n if (config) {\n return config;\n }\n\n var duration;\n var easing;\n var delay;\n var seriesModel = this._seriesModel;\n var transOpt = this._transOpt;\n\n if (seriesModel.isAnimationEnabled()) {\n var animationPayload = void 0;\n\n if (seriesModel && seriesModel.ecModel) {\n var updatePayload = seriesModel.ecModel.getUpdatePayload();\n animationPayload = updatePayload && updatePayload.animation;\n }\n\n if (animationPayload) {\n duration = animationPayload.duration || 0;\n easing = animationPayload.easing || 'cubicOut';\n delay = animationPayload.delay || 0;\n } else {\n easing = seriesModel.get('animationEasingUpdate');\n var delayOption = seriesModel.get('animationDelayUpdate');\n delay = isFunction(delayOption) ? delayOption(dataIndex) : delayOption;\n var durationOption = seriesModel.get('animationDurationUpdate');\n duration = isFunction(durationOption) ? durationOption(dataIndex) : durationOption;\n }\n }\n\n config = {\n duration: duration || 0,\n delay: delay,\n easing: easing,\n dividingMethod: transOpt ? transOpt.dividingMethod : null\n };\n morphConfigList[dataIndex] = config;\n return config;\n };\n\n MorphPreparation.prototype.reset = function (type) {\n this._type = type;\n this._fromList.length = this._toList.length = this._toElOptionList.length = this._allPropsFinalList.length = this._toDataIndices.length = 0;\n };\n\n return MorphPreparation;\n}();\n\nfunction copyPropsWhenDivided(srcPath, tarPath, willClone) {\n tarPath.style = willClone ? clone(srcPath.style) : srcPath.style;\n tarPath.zlevel = srcPath.zlevel;\n tarPath.z = srcPath.z;\n tarPath.z2 = srcPath.z2;\n}\n\nexport function install(registers) {\n registers.registerChartView(CustomSeriesView);\n registers.registerSeriesModel(CustomSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as axisPointerModelHelper from './modelHelper';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar clone = zrUtil.clone;\nvar bind = zrUtil.bind;\n\nvar BaseAxisPointer = function () {\n function BaseAxisPointer() {\n this._dragging = false;\n this.animationThreshold = 15;\n }\n\n BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\n var value = axisPointerModel.get('value');\n var status = axisPointerModel.get('status');\n this._axisModel = axisModel;\n this._axisPointerModel = axisPointerModel;\n this._api = api;\n\n if (!forceRender && this._lastValue === value && this._lastStatus === status) {\n return;\n }\n\n this._lastValue = value;\n this._lastStatus = status;\n var group = this._group;\n var handle = this._handle;\n\n if (!status || status === 'hide') {\n group && group.hide();\n handle && handle.hide();\n return;\n }\n\n group && group.show();\n handle && handle.show();\n var elOption = {};\n this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\n var graphicKey = elOption.graphicKey;\n\n if (graphicKey !== this._lastGraphicKey) {\n this.clear(api);\n }\n\n this._lastGraphicKey = graphicKey;\n var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel);\n\n if (!group) {\n group = this._group = new graphic.Group();\n this.createPointerEl(group, elOption, axisModel, axisPointerModel);\n this.createLabelEl(group, elOption, axisModel, axisPointerModel);\n api.getZr().add(group);\n } else {\n var doUpdateProps = zrUtil.curry(updateProps, axisPointerModel, moveAnimation);\n this.updatePointerEl(group, elOption, doUpdateProps);\n this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\n }\n\n updateMandatoryProps(group, axisPointerModel, true);\n\n this._renderHandle(value);\n };\n\n BaseAxisPointer.prototype.remove = function (api) {\n this.clear(api);\n };\n\n BaseAxisPointer.prototype.dispose = function (api) {\n this.clear(api);\n };\n\n BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\n var animation = axisPointerModel.get('animation');\n var axis = axisModel.axis;\n var isCategoryAxis = axis.type === 'category';\n var useSnap = axisPointerModel.get('snap');\n\n if (!useSnap && !isCategoryAxis) {\n return false;\n }\n\n if (animation === 'auto' || animation == null) {\n var animationThreshold = this.animationThreshold;\n\n if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\n return true;\n }\n\n if (useSnap) {\n var seriesDataCount = axisPointerModelHelper.getAxisInfo(axisModel).seriesDataCount;\n var axisExtent = axis.getExtent();\n return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\n }\n\n return false;\n }\n\n return animation === true;\n };\n\n BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {};\n\n BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\n var pointerOption = elOption.pointer;\n\n if (pointerOption) {\n var pointerEl = inner(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer));\n group.add(pointerEl);\n }\n };\n\n BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\n if (elOption.label) {\n var labelEl = inner(group).labelEl = new graphic.Text(clone(elOption.label));\n group.add(labelEl);\n updateLabelShowHide(labelEl, axisPointerModel);\n }\n };\n\n BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\n var pointerEl = inner(group).pointerEl;\n\n if (pointerEl && elOption.pointer) {\n pointerEl.setStyle(elOption.pointer.style);\n updateProps(pointerEl, {\n shape: elOption.pointer.shape\n });\n }\n };\n\n BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\n var labelEl = inner(group).labelEl;\n\n if (labelEl) {\n labelEl.setStyle(elOption.label.style);\n updateProps(labelEl, {\n x: elOption.label.x,\n y: elOption.label.y\n });\n updateLabelShowHide(labelEl, axisPointerModel);\n }\n };\n\n BaseAxisPointer.prototype._renderHandle = function (value) {\n if (this._dragging || !this.updateHandleTransform) {\n return;\n }\n\n var axisPointerModel = this._axisPointerModel;\n\n var zr = this._api.getZr();\n\n var handle = this._handle;\n var handleModel = axisPointerModel.getModel('handle');\n var status = axisPointerModel.get('status');\n\n if (!handleModel.get('show') || !status || status === 'hide') {\n handle && zr.remove(handle);\n this._handle = null;\n return;\n }\n\n var isInit;\n\n if (!this._handle) {\n isInit = true;\n handle = this._handle = graphic.createIcon(handleModel.get('icon'), {\n cursor: 'move',\n draggable: true,\n onmousemove: function (e) {\n eventTool.stop(e.event);\n },\n onmousedown: bind(this._onHandleDragMove, this, 0, 0),\n drift: bind(this._onHandleDragMove, this),\n ondragend: bind(this._onHandleDragEnd, this)\n });\n zr.add(handle);\n }\n\n updateMandatoryProps(handle, axisPointerModel, false);\n handle.setStyle(handleModel.getItemStyle(null, ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY']));\n var handleSize = handleModel.get('size');\n\n if (!zrUtil.isArray(handleSize)) {\n handleSize = [handleSize, handleSize];\n }\n\n handle.scaleX = handleSize[0] / 2;\n handle.scaleY = handleSize[1] / 2;\n throttleUtil.createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\n\n this._moveHandleToValue(value, isInit);\n };\n\n BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\n updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\n };\n\n BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\n var handle = this._handle;\n\n if (!handle) {\n return;\n }\n\n this._dragging = true;\n var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\n this._payloadInfo = trans;\n handle.stopAnimation();\n handle.attr(getHandleTransProps(trans));\n inner(handle).lastProp = null;\n\n this._doDispatchAxisPointer();\n };\n\n BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\n var handle = this._handle;\n\n if (!handle) {\n return;\n }\n\n var payloadInfo = this._payloadInfo;\n var axisModel = this._axisModel;\n\n this._api.dispatchAction({\n type: 'updateAxisPointer',\n x: payloadInfo.cursorPoint[0],\n y: payloadInfo.cursorPoint[1],\n tooltipOption: payloadInfo.tooltipOption,\n axesInfo: [{\n axisDim: axisModel.axis.dim,\n axisIndex: axisModel.componentIndex\n }]\n });\n };\n\n BaseAxisPointer.prototype._onHandleDragEnd = function () {\n this._dragging = false;\n var handle = this._handle;\n\n if (!handle) {\n return;\n }\n\n var value = this._axisPointerModel.get('value');\n\n this._moveHandleToValue(value);\n\n this._api.dispatchAction({\n type: 'hideTip'\n });\n };\n\n BaseAxisPointer.prototype.clear = function (api) {\n this._lastValue = null;\n this._lastStatus = null;\n var zr = api.getZr();\n var group = this._group;\n var handle = this._handle;\n\n if (zr && group) {\n this._lastGraphicKey = null;\n group && zr.remove(group);\n handle && zr.remove(handle);\n this._group = null;\n this._handle = null;\n this._payloadInfo = null;\n }\n };\n\n BaseAxisPointer.prototype.doClear = function () {};\n\n BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\n xDimIndex = xDimIndex || 0;\n return {\n x: xy[xDimIndex],\n y: xy[1 - xDimIndex],\n width: wh[xDimIndex],\n height: wh[1 - xDimIndex]\n };\n };\n\n return BaseAxisPointer;\n}();\n\nfunction updateProps(animationModel, moveAnimation, el, props) {\n if (!propsEqual(inner(el).lastProp, props)) {\n inner(el).lastProp = props;\n moveAnimation ? graphic.updateProps(el, props, animationModel) : (el.stopAnimation(), el.attr(props));\n }\n}\n\nfunction propsEqual(lastProps, newProps) {\n if (zrUtil.isObject(lastProps) && zrUtil.isObject(newProps)) {\n var equals_1 = true;\n zrUtil.each(newProps, function (item, key) {\n equals_1 = equals_1 && propsEqual(lastProps[key], item);\n });\n return !!equals_1;\n } else {\n return lastProps === newProps;\n }\n}\n\nfunction updateLabelShowHide(labelEl, axisPointerModel) {\n labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\n}\n\nfunction getHandleTransProps(trans) {\n return {\n x: trans.x || 0,\n y: trans.y || 0,\n rotation: trans.rotation || 0\n };\n}\n\nfunction updateMandatoryProps(group, axisPointerModel, silent) {\n var z = axisPointerModel.get('z');\n var zlevel = axisPointerModel.get('zlevel');\n group && group.traverse(function (el) {\n if (el.type !== 'group') {\n z != null && (el.z = z);\n zlevel != null && (el.zlevel = zlevel);\n el.silent = silent;\n }\n });\n}\n\nexport default BaseAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as formatUtil from '../../util/format';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as axisHelper from '../../coord/axisHelper';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport { createTextStyle } from '../../label/labelStyle';\nexport function buildElStyle(axisPointerModel) {\n var axisPointerType = axisPointerModel.get('type');\n var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\n var style;\n\n if (axisPointerType === 'line') {\n style = styleModel.getLineStyle();\n style.fill = null;\n } else if (axisPointerType === 'shadow') {\n style = styleModel.getAreaStyle();\n style.stroke = null;\n }\n\n return style;\n}\nexport function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\n var value = axisPointerModel.get('value');\n var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\n precision: axisPointerModel.get(['label', 'precision']),\n formatter: axisPointerModel.get(['label', 'formatter'])\n });\n var labelModel = axisPointerModel.getModel('label');\n var paddings = formatUtil.normalizeCssArray(labelModel.get('padding') || 0);\n var font = labelModel.getFont();\n var textRect = textContain.getBoundingRect(text, font);\n var position = labelPos.position;\n var width = textRect.width + paddings[1] + paddings[3];\n var height = textRect.height + paddings[0] + paddings[2];\n var align = labelPos.align;\n align === 'right' && (position[0] -= width);\n align === 'center' && (position[0] -= width / 2);\n var verticalAlign = labelPos.verticalAlign;\n verticalAlign === 'bottom' && (position[1] -= height);\n verticalAlign === 'middle' && (position[1] -= height / 2);\n confineInContainer(position, width, height, api);\n var bgColor = labelModel.get('backgroundColor');\n\n if (!bgColor || bgColor === 'auto') {\n bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\n }\n\n elOption.label = {\n x: position[0],\n y: position[1],\n style: createTextStyle(labelModel, {\n text: text,\n font: font,\n fill: labelModel.getTextColor(),\n padding: paddings,\n backgroundColor: bgColor\n }),\n z2: 10\n };\n}\n\nfunction confineInContainer(position, width, height, api) {\n var viewWidth = api.getWidth();\n var viewHeight = api.getHeight();\n position[0] = Math.min(position[0] + width, viewWidth) - width;\n position[1] = Math.min(position[1] + height, viewHeight) - height;\n position[0] = Math.max(position[0], 0);\n position[1] = Math.max(position[1], 0);\n}\n\nexport function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\n value = axis.scale.parse(value);\n var text = axis.scale.getLabel({\n value: value\n }, {\n precision: opt.precision\n });\n var formatter = opt.formatter;\n\n if (formatter) {\n var params_1 = {\n value: axisHelper.getAxisRawValue(axis, {\n value: value\n }),\n axisDimension: axis.dim,\n axisIndex: axis.index,\n seriesData: []\n };\n zrUtil.each(seriesDataIndices, function (idxItem) {\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n var dataIndex = idxItem.dataIndexInside;\n var dataParams = series && series.getDataParams(dataIndex);\n dataParams && params_1.seriesData.push(dataParams);\n });\n\n if (zrUtil.isString(formatter)) {\n text = formatter.replace('{value}', text);\n } else if (zrUtil.isFunction(formatter)) {\n text = formatter(params_1);\n }\n }\n\n return text;\n}\nexport function getTransformedPosition(axis, value, layoutInfo) {\n var transform = matrix.create();\n matrix.rotate(transform, transform, layoutInfo.rotation);\n matrix.translate(transform, transform, layoutInfo.position);\n return graphic.applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform);\n}\nexport function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\n var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\n layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\n buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\n position: getTransformedPosition(axisModel.axis, value, layoutInfo),\n align: textLayout.textAlign,\n verticalAlign: textLayout.textVerticalAlign\n });\n}\nexport function makeLineShape(p1, p2, xDimIndex) {\n xDimIndex = xDimIndex || 0;\n return {\n x1: p1[xDimIndex],\n y1: p1[1 - xDimIndex],\n x2: p2[xDimIndex],\n y2: p2[1 - xDimIndex]\n };\n}\nexport function makeRectShape(xy, wh, xDimIndex) {\n xDimIndex = xDimIndex || 0;\n return {\n x: xy[xDimIndex],\n y: xy[1 - xDimIndex],\n width: wh[xDimIndex],\n height: wh[1 - xDimIndex]\n };\n}\nexport function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\n return {\n cx: cx,\n cy: cy,\n r0: r0,\n r: r,\n startAngle: startAngle,\n endAngle: endAngle,\n clockwise: true\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\n\nvar CartesianAxisPointer = function (_super) {\n __extends(CartesianAxisPointer, _super);\n\n function CartesianAxisPointer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n var axis = axisModel.axis;\n var grid = axis.grid;\n var axisPointerType = axisPointerModel.get('type');\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\n\n if (axisPointerType && axisPointerType !== 'none') {\n var elStyle = viewHelper.buildElStyle(axisPointerModel);\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n pointerOption.style = elStyle;\n elOption.graphicKey = pointerOption.type;\n elOption.pointer = pointerOption;\n }\n\n var layoutInfo = cartesianAxisHelper.layout(grid.model, axisModel);\n viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n };\n\n CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n var layoutInfo = cartesianAxisHelper.layout(axisModel.axis.grid.model, axisModel, {\n labelInside: false\n });\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n var pos = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n return {\n x: pos[0],\n y: pos[1],\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n };\n };\n\n CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n var axis = axisModel.axis;\n var grid = axis.grid;\n var axisExtent = axis.getGlobalExtent(true);\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n var dimIndex = axis.dim === 'x' ? 0 : 1;\n var currPosition = [transform.x, transform.y];\n currPosition[dimIndex] += delta[dimIndex];\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\n cursorPoint[dimIndex] = currPosition[dimIndex];\n var tooltipOptions = [{\n verticalAlign: 'middle'\n }, {\n align: 'center'\n }];\n return {\n x: currPosition[0],\n y: currPosition[1],\n rotation: transform.rotation,\n cursorPoint: cursorPoint,\n tooltipOption: tooltipOptions[dimIndex]\n };\n };\n\n return CartesianAxisPointer;\n}(BaseAxisPointer);\n\nfunction getCartesian(grid, axis) {\n var opt = {};\n opt[axis.dim + 'AxisIndex'] = axis.index;\n return grid.getCartesian(opt);\n}\n\nvar pointerShapeBuilder = {\n line: function (axis, pixelValue, otherExtent) {\n var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\n return {\n type: 'Line',\n subPixelOptimize: true,\n shape: targetShape\n };\n },\n shadow: function (axis, pixelValue, otherExtent) {\n var bandWidth = Math.max(1, axis.getBandWidth());\n var span = otherExtent[1] - otherExtent[0];\n return {\n type: 'Rect',\n shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\n };\n }\n};\n\nfunction getAxisDimIndex(axis) {\n return axis.dim === 'x' ? 0 : 1;\n}\n\nexport default CartesianAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar AxisPointerModel = function (_super) {\n __extends(AxisPointerModel, _super);\n\n function AxisPointerModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = AxisPointerModel.type;\n return _this;\n }\n\n AxisPointerModel.type = 'axisPointer';\n AxisPointerModel.defaultOption = {\n show: 'auto',\n zlevel: 0,\n z: 50,\n type: 'line',\n snap: false,\n triggerTooltip: true,\n value: null,\n status: null,\n link: [],\n animation: null,\n animationDurationUpdate: 200,\n lineStyle: {\n color: '#B9BEC9',\n width: 1,\n type: 'dashed'\n },\n shadowStyle: {\n color: 'rgba(210,219,238,0.2)'\n },\n label: {\n show: true,\n formatter: null,\n precision: 'auto',\n margin: 3,\n color: '#fff',\n padding: [5, 7, 5, 7],\n backgroundColor: 'auto',\n borderColor: null,\n borderWidth: 0,\n borderRadius: 3\n },\n handle: {\n show: false,\n icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\n size: 45,\n margin: 50,\n color: '#333',\n shadowBlur: 3,\n shadowColor: '#aaa',\n shadowOffsetX: 0,\n shadowOffsetY: 2,\n throttle: 40\n }\n };\n return AxisPointerModel;\n}(ComponentModel);\n\nexport default AxisPointerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar each = zrUtil.each;\nexport function register(key, api, handler) {\n if (env.node) {\n return;\n }\n\n var zr = api.getZr();\n inner(zr).records || (inner(zr).records = {});\n initGlobalListeners(zr, api);\n var record = inner(zr).records[key] || (inner(zr).records[key] = {});\n record.handler = handler;\n}\n\nfunction initGlobalListeners(zr, api) {\n if (inner(zr).initialized) {\n return;\n }\n\n inner(zr).initialized = true;\n useHandler('click', zrUtil.curry(doEnter, 'click'));\n useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove'));\n useHandler('globalout', onLeave);\n\n function useHandler(eventType, cb) {\n zr.on(eventType, function (e) {\n var dis = makeDispatchAction(api);\n each(inner(zr).records, function (record) {\n record && cb(record, e, dis.dispatchAction);\n });\n dispatchTooltipFinally(dis.pendings, api);\n });\n }\n}\n\nfunction dispatchTooltipFinally(pendings, api) {\n var showLen = pendings.showTip.length;\n var hideLen = pendings.hideTip.length;\n var actuallyPayload;\n\n if (showLen) {\n actuallyPayload = pendings.showTip[showLen - 1];\n } else if (hideLen) {\n actuallyPayload = pendings.hideTip[hideLen - 1];\n }\n\n if (actuallyPayload) {\n actuallyPayload.dispatchAction = null;\n api.dispatchAction(actuallyPayload);\n }\n}\n\nfunction onLeave(record, e, dispatchAction) {\n record.handler('leave', null, dispatchAction);\n}\n\nfunction doEnter(currTrigger, record, e, dispatchAction) {\n record.handler(currTrigger, e, dispatchAction);\n}\n\nfunction makeDispatchAction(api) {\n var pendings = {\n showTip: [],\n hideTip: []\n };\n\n var dispatchAction = function (payload) {\n var pendingList = pendings[payload.type];\n\n if (pendingList) {\n pendingList.push(payload);\n } else {\n payload.dispatchAction = dispatchAction;\n api.dispatchAction(payload);\n }\n };\n\n return {\n dispatchAction: dispatchAction,\n pendings: pendings\n };\n}\n\nexport function unregister(key, api) {\n if (env.node) {\n return;\n }\n\n var zr = api.getZr();\n var record = (inner(zr).records || {})[key];\n\n if (record) {\n inner(zr).records[key] = null;\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as globalListener from './globalListener';\nimport ComponentView from '../../view/Component';\n\nvar AxisPointerView = function (_super) {\n __extends(AxisPointerView, _super);\n\n function AxisPointerView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = AxisPointerView.type;\n return _this;\n }\n\n AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\n var globalTooltipModel = ecModel.getComponent('tooltip');\n var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click';\n globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {\n if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\n dispatchAction({\n type: 'updateAxisPointer',\n currTrigger: currTrigger,\n x: e && e.offsetX,\n y: e && e.offsetY\n });\n }\n });\n };\n\n AxisPointerView.prototype.remove = function (ecModel, api) {\n globalListener.unregister('axisPointer', api);\n };\n\n AxisPointerView.prototype.dispose = function (ecModel, api) {\n globalListener.unregister('axisPointer', api);\n };\n\n AxisPointerView.type = 'axisPointer';\n return AxisPointerView;\n}(ComponentView);\n\nexport default AxisPointerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function findPointFromSeries(finder, ecModel) {\n var point = [];\n var seriesIndex = finder.seriesIndex;\n var seriesModel;\n\n if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\n return {\n point: []\n };\n }\n\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, finder);\n\n if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {\n return {\n point: []\n };\n }\n\n var el = data.getItemGraphicEl(dataIndex);\n var coordSys = seriesModel.coordinateSystem;\n\n if (seriesModel.getTooltipPosition) {\n point = seriesModel.getTooltipPosition(dataIndex) || [];\n } else if (coordSys && coordSys.dataToPoint) {\n if (finder.isStacked) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var valueAxisDim = valueAxis.dim;\n var baseAxisDim = baseAxis.dim;\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n var baseDim = data.mapDimension(baseAxisDim);\n var stackedData = [];\n stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\n stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\n point = coordSys.dataToPoint(stackedData) || [];\n } else {\n point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n return data.mapDimension(dim);\n }), dataIndex)) || [];\n }\n } else if (el) {\n var rect = el.getBoundingRect().clone();\n rect.applyTransform(el.transform);\n point = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n }\n\n return {\n point: point,\n el: el\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nimport * as modelHelper from './modelHelper';\nimport findPointFromSeries from './findPointFromSeries';\nimport { each, curry, bind, extend } from 'zrender/lib/core/util';\nvar inner = makeInner();\nexport default function axisTrigger(payload, ecModel, api) {\n var currTrigger = payload.currTrigger;\n var point = [payload.x, payload.y];\n var finder = payload;\n var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n if (!coordSysAxesInfo) {\n return;\n }\n\n if (illegalPoint(point)) {\n point = findPointFromSeries({\n seriesIndex: finder.seriesIndex,\n dataIndex: finder.dataIndex\n }, ecModel).point;\n }\n\n var isIllegalPoint = illegalPoint(point);\n var inputAxesInfo = finder.axesInfo;\n var axesInfo = coordSysAxesInfo.axesInfo;\n var shouldHide = currTrigger === 'leave' || illegalPoint(point);\n var outputPayload = {};\n var showValueMap = {};\n var dataByCoordSys = {\n list: [],\n map: {}\n };\n var updaters = {\n showPointer: curry(showPointer, showValueMap),\n showTooltip: curry(showTooltip, dataByCoordSys)\n };\n each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\n var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\n each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\n var axis = axisInfo.axis;\n var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\n\n if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\n var val = inputAxisInfo && inputAxisInfo.value;\n\n if (val == null && !isIllegalPoint) {\n val = axis.pointToData(point);\n }\n\n val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\n }\n });\n });\n var linkTriggers = {};\n each(axesInfo, function (tarAxisInfo, tarKey) {\n var linkGroup = tarAxisInfo.linkGroup;\n\n if (linkGroup && !showValueMap[tarKey]) {\n each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\n var srcValItem = showValueMap[srcKey];\n\n if (srcAxisInfo !== tarAxisInfo && srcValItem) {\n var val = srcValItem.value;\n linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\n linkTriggers[tarAxisInfo.key] = val;\n }\n });\n }\n });\n each(linkTriggers, function (val, tarKey) {\n processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\n });\n updateModelActually(showValueMap, axesInfo, outputPayload);\n dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\n dispatchHighDownActually(axesInfo, dispatchAction, api);\n return outputPayload;\n}\n\nfunction processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\n var axis = axisInfo.axis;\n\n if (axis.scale.isBlank() || !axis.containData(newValue)) {\n return;\n }\n\n if (!axisInfo.involveSeries) {\n updaters.showPointer(axisInfo, newValue);\n return;\n }\n\n var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\n var payloadBatch = payloadInfo.payloadBatch;\n var snapToValue = payloadInfo.snapToValue;\n\n if (payloadBatch[0] && outputFinder.seriesIndex == null) {\n extend(outputFinder, payloadBatch[0]);\n }\n\n if (!noSnap && axisInfo.snap) {\n if (axis.containData(snapToValue) && snapToValue != null) {\n newValue = snapToValue;\n }\n }\n\n updaters.showPointer(axisInfo, newValue, payloadBatch);\n updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\n}\n\nfunction buildPayloadsBySeries(value, axisInfo) {\n var axis = axisInfo.axis;\n var dim = axis.dim;\n var snapToValue = value;\n var payloadBatch = [];\n var minDist = Number.MAX_VALUE;\n var minDiff = -1;\n each(axisInfo.seriesModels, function (series, idx) {\n var dataDim = series.getData().mapDimensionsAll(dim);\n var seriesNestestValue;\n var dataIndices;\n\n if (series.getAxisTooltipData) {\n var result = series.getAxisTooltipData(dataDim, value, axis);\n dataIndices = result.dataIndices;\n seriesNestestValue = result.nestestValue;\n } else {\n dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\n\n if (!dataIndices.length) {\n return;\n }\n\n seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\n }\n\n if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\n return;\n }\n\n var diff = value - seriesNestestValue;\n var dist = Math.abs(diff);\n\n if (dist <= minDist) {\n if (dist < minDist || diff >= 0 && minDiff < 0) {\n minDist = dist;\n minDiff = diff;\n snapToValue = seriesNestestValue;\n payloadBatch.length = 0;\n }\n\n each(dataIndices, function (dataIndex) {\n payloadBatch.push({\n seriesIndex: series.seriesIndex,\n dataIndexInside: dataIndex,\n dataIndex: series.getData().getRawIndex(dataIndex)\n });\n });\n }\n });\n return {\n payloadBatch: payloadBatch,\n snapToValue: snapToValue\n };\n}\n\nfunction showPointer(showValueMap, axisInfo, value, payloadBatch) {\n showValueMap[axisInfo.key] = {\n value: value,\n payloadBatch: payloadBatch\n };\n}\n\nfunction showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\n var payloadBatch = payloadInfo.payloadBatch;\n var axis = axisInfo.axis;\n var axisModel = axis.model;\n var axisPointerModel = axisInfo.axisPointerModel;\n\n if (!axisInfo.triggerTooltip || !payloadBatch.length) {\n return;\n }\n\n var coordSysModel = axisInfo.coordSys.model;\n var coordSysKey = modelHelper.makeKey(coordSysModel);\n var coordSysItem = dataByCoordSys.map[coordSysKey];\n\n if (!coordSysItem) {\n coordSysItem = dataByCoordSys.map[coordSysKey] = {\n coordSysId: coordSysModel.id,\n coordSysIndex: coordSysModel.componentIndex,\n coordSysType: coordSysModel.type,\n coordSysMainType: coordSysModel.mainType,\n dataByAxis: []\n };\n dataByCoordSys.list.push(coordSysItem);\n }\n\n coordSysItem.dataByAxis.push({\n axisDim: axis.dim,\n axisIndex: axisModel.componentIndex,\n axisType: axisModel.type,\n axisId: axisModel.id,\n value: value,\n valueLabelOpt: {\n precision: axisPointerModel.get(['label', 'precision']),\n formatter: axisPointerModel.get(['label', 'formatter'])\n },\n seriesDataIndices: payloadBatch.slice()\n });\n}\n\nfunction updateModelActually(showValueMap, axesInfo, outputPayload) {\n var outputAxesInfo = outputPayload.axesInfo = [];\n each(axesInfo, function (axisInfo, key) {\n var option = axisInfo.axisPointerModel.option;\n var valItem = showValueMap[key];\n\n if (valItem) {\n !axisInfo.useHandle && (option.status = 'show');\n option.value = valItem.value;\n option.seriesDataIndices = (valItem.payloadBatch || []).slice();\n } else {\n !axisInfo.useHandle && (option.status = 'hide');\n }\n\n option.status === 'show' && outputAxesInfo.push({\n axisDim: axisInfo.axis.dim,\n axisIndex: axisInfo.axis.model.componentIndex,\n value: option.value\n });\n });\n}\n\nfunction dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\n if (illegalPoint(point) || !dataByCoordSys.list.length) {\n dispatchAction({\n type: 'hideTip'\n });\n return;\n }\n\n var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\n dispatchAction({\n type: 'showTip',\n escapeConnect: true,\n x: point[0],\n y: point[1],\n tooltipOption: payload.tooltipOption,\n position: payload.position,\n dataIndexInside: sampleItem.dataIndexInside,\n dataIndex: sampleItem.dataIndex,\n seriesIndex: sampleItem.seriesIndex,\n dataByCoordSys: dataByCoordSys.list\n });\n}\n\nfunction dispatchHighDownActually(axesInfo, dispatchAction, api) {\n var zr = api.getZr();\n var highDownKey = 'axisPointerLastHighlights';\n var lastHighlights = inner(zr)[highDownKey] || {};\n var newHighlights = inner(zr)[highDownKey] = {};\n each(axesInfo, function (axisInfo, key) {\n var option = axisInfo.axisPointerModel.option;\n option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\n var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\n newHighlights[key] = batchItem;\n });\n });\n var toHighlight = [];\n var toDownplay = [];\n each(lastHighlights, function (batchItem, key) {\n !newHighlights[key] && toDownplay.push(batchItem);\n });\n each(newHighlights, function (batchItem, key) {\n !lastHighlights[key] && toHighlight.push(batchItem);\n });\n toDownplay.length && api.dispatchAction({\n type: 'downplay',\n escapeConnect: true,\n notBlur: true,\n batch: toDownplay\n });\n toHighlight.length && api.dispatchAction({\n type: 'highlight',\n escapeConnect: true,\n notBlur: true,\n batch: toHighlight\n });\n}\n\nfunction findInputAxisInfo(inputAxesInfo, axisInfo) {\n for (var i = 0; i < (inputAxesInfo || []).length; i++) {\n var inputAxisInfo = inputAxesInfo[i];\n\n if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\n return inputAxisInfo;\n }\n }\n}\n\nfunction makeMapperParam(axisInfo) {\n var axisModel = axisInfo.axis.model;\n var item = {};\n var dim = item.axisDim = axisInfo.axis.dim;\n item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\n item.axisName = item[dim + 'AxisName'] = axisModel.name;\n item.axisId = item[dim + 'AxisId'] = axisModel.id;\n return item;\n}\n\nfunction illegalPoint(point) {\n return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport AxisView from '../axis/AxisView';\nimport CartesianAxisPointer from './CartesianAxisPointer';\nimport AxisPointerModel from './AxisPointerModel';\nimport AxisPointerView from './AxisPointerView';\nimport { isArray } from 'zrender/lib/core/util';\nimport { collect } from './modelHelper';\nimport axisTrigger from './axisTrigger';\nexport function install(registers) {\n AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n registers.registerComponentModel(AxisPointerModel);\n registers.registerComponentView(AxisPointerView);\n registers.registerPreprocessor(function (option) {\n if (option) {\n (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {});\n var link = option.axisPointer.link;\n\n if (link && !isArray(link)) {\n option.axisPointer.link = [link];\n }\n }\n });\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\n ecModel.getComponent('axisPointer').coordSysAxesInfo = collect(ecModel, api);\n });\n registers.registerAction({\n type: 'updateAxisPointer',\n event: 'updateAxisPointer',\n update: ':updateAxisPointer'\n }, axisTrigger);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installSimple } from './installSimple';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nexport function install(registers) {\n use(installSimple);\n use(installAxisPointer);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as graphic from '../../util/graphic';\nimport * as viewHelper from './viewHelper';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport AxisBuilder from '../axis/AxisBuilder';\n\nvar PolarAxisPointer = function (_super) {\n __extends(PolarAxisPointer, _super);\n\n function PolarAxisPointer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n PolarAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n var axis = axisModel.axis;\n\n if (axis.dim === 'angle') {\n this.animationThreshold = Math.PI / 18;\n }\n\n var polar = axis.polar;\n var otherAxis = polar.getOtherAxis(axis);\n var otherExtent = otherAxis.getExtent();\n var coordValue = axis.dataToCoord(value);\n var axisPointerType = axisPointerModel.get('type');\n\n if (axisPointerType && axisPointerType !== 'none') {\n var elStyle = viewHelper.buildElStyle(axisPointerModel);\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, polar, coordValue, otherExtent);\n pointerOption.style = elStyle;\n elOption.graphicKey = pointerOption.type;\n elOption.pointer = pointerOption;\n }\n\n var labelMargin = axisPointerModel.get(['label', 'margin']);\n var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\n viewHelper.buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\n };\n\n return PolarAxisPointer;\n}(BaseAxisPointer);\n\n;\n\nfunction getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\n var axis = axisModel.axis;\n var coord = axis.dataToCoord(value);\n var axisAngle = polar.getAngleAxis().getExtent()[0];\n axisAngle = axisAngle / 180 * Math.PI;\n var radiusExtent = polar.getRadiusAxis().getExtent();\n var position;\n var align;\n var verticalAlign;\n\n if (axis.dim === 'radius') {\n var transform = matrix.create();\n matrix.rotate(transform, transform, axisAngle);\n matrix.translate(transform, transform, [polar.cx, polar.cy]);\n position = graphic.applyTransform([coord, -labelMargin], transform);\n var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0;\n var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\n align = labelLayout.textAlign;\n verticalAlign = labelLayout.textVerticalAlign;\n } else {\n var r = radiusExtent[1];\n position = polar.coordToPoint([r + labelMargin, coord]);\n var cx = polar.cx;\n var cy = polar.cy;\n align = Math.abs(position[0] - cx) / r < 0.3 ? 'center' : position[0] > cx ? 'left' : 'right';\n verticalAlign = Math.abs(position[1] - cy) / r < 0.3 ? 'middle' : position[1] > cy ? 'top' : 'bottom';\n }\n\n return {\n position: position,\n align: align,\n verticalAlign: verticalAlign\n };\n}\n\nvar pointerShapeBuilder = {\n line: function (axis, polar, coordValue, otherExtent) {\n return axis.dim === 'angle' ? {\n type: 'Line',\n shape: viewHelper.makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\n } : {\n type: 'Circle',\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: coordValue\n }\n };\n },\n shadow: function (axis, polar, coordValue, otherExtent) {\n var bandWidth = Math.max(1, axis.getBandWidth());\n var radian = Math.PI / 180;\n return axis.dim === 'angle' ? {\n type: 'Sector',\n shape: viewHelper.makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\n } : {\n type: 'Sector',\n shape: viewHelper.makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\n };\n }\n};\nexport default PolarAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar PolarModel = function (_super) {\n __extends(PolarModel, _super);\n\n function PolarModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PolarModel.type;\n return _this;\n }\n\n PolarModel.prototype.findAxisModel = function (axisType) {\n var foundAxisModel;\n var ecModel = this.ecModel;\n ecModel.eachComponent(axisType, function (axisModel) {\n if (axisModel.getCoordSysModel() === this) {\n foundAxisModel = axisModel;\n }\n }, this);\n return foundAxisModel;\n };\n\n PolarModel.type = 'polar';\n PolarModel.dependencies = ['radiusAxis', 'angleAxis'];\n PolarModel.defaultOption = {\n zlevel: 0,\n z: 0,\n center: ['50%', '50%'],\n radius: '80%'\n };\n return PolarModel;\n}(ComponentModel);\n\nexport default PolarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar PolarAxisModel = function (_super) {\n __extends(PolarAxisModel, _super);\n\n function PolarAxisModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n PolarAxisModel.prototype.getCoordSysModel = function () {\n return this.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n };\n\n PolarAxisModel.type = 'polarAxis';\n return PolarAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(PolarAxisModel, AxisModelCommonMixin);\nexport { PolarAxisModel };\n\nvar AngleAxisModel = function (_super) {\n __extends(AngleAxisModel, _super);\n\n function AngleAxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = AngleAxisModel.type;\n return _this;\n }\n\n AngleAxisModel.type = 'angleAxis';\n return AngleAxisModel;\n}(PolarAxisModel);\n\nexport { AngleAxisModel };\n\nvar RadiusAxisModel = function (_super) {\n __extends(RadiusAxisModel, _super);\n\n function RadiusAxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadiusAxisModel.type;\n return _this;\n }\n\n RadiusAxisModel.type = 'radiusAxis';\n return RadiusAxisModel;\n}(PolarAxisModel);\n\nexport { RadiusAxisModel };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar RadiusAxis = function (_super) {\n __extends(RadiusAxis, _super);\n\n function RadiusAxis(scale, radiusExtent) {\n return _super.call(this, 'radius', scale, radiusExtent) || this;\n }\n\n RadiusAxis.prototype.pointToData = function (point, clamp) {\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n };\n\n return RadiusAxis;\n}(Axis);\n\nRadiusAxis.prototype.dataToRadius = Axis.prototype.dataToCoord;\nRadiusAxis.prototype.radiusToData = Axis.prototype.coordToData;\nexport default RadiusAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as textContain from 'zrender/lib/contain/text';\nimport Axis from '../Axis';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\n\nvar AngleAxis = function (_super) {\n __extends(AngleAxis, _super);\n\n function AngleAxis(scale, angleExtent) {\n return _super.call(this, 'angle', scale, angleExtent || [0, 360]) || this;\n }\n\n AngleAxis.prototype.pointToData = function (point, clamp) {\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n };\n\n AngleAxis.prototype.calculateCategoryInterval = function () {\n var axis = this;\n var labelModel = axis.getLabelModel();\n var ordinalScale = axis.scale;\n var ordinalExtent = ordinalScale.getExtent();\n var tickCount = ordinalScale.count();\n\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n return 0;\n }\n\n var tickValue = ordinalExtent[0];\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n var unitH = Math.abs(unitSpan);\n var rect = textContain.getBoundingRect(tickValue == null ? '' : tickValue + '', labelModel.getFont(), 'center', 'top');\n var maxH = Math.max(rect.height, 7);\n var dh = maxH / unitH;\n isNaN(dh) && (dh = Infinity);\n var interval = Math.max(0, Math.floor(dh));\n var cache = inner(axis.model);\n var lastAutoInterval = cache.lastAutoInterval;\n var lastTickCount = cache.lastTickCount;\n\n if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval) {\n interval = lastAutoInterval;\n } else {\n cache.lastTickCount = tickCount;\n cache.lastAutoInterval = interval;\n }\n\n return interval;\n };\n\n return AngleAxis;\n}(Axis);\n\nAngleAxis.prototype.dataToAngle = Axis.prototype.dataToCoord;\nAngleAxis.prototype.angleToData = Axis.prototype.coordToData;\nexport default AngleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RadiusAxis from './RadiusAxis';\nimport AngleAxis from './AngleAxis';\n\nvar Polar = function () {\n function Polar(name) {\n this.dimensions = ['radius', 'angle'];\n this.type = 'polar';\n this.cx = 0;\n this.cy = 0;\n this._radiusAxis = new RadiusAxis();\n this._angleAxis = new AngleAxis();\n this.axisPointerEnabled = true;\n this.name = name || '';\n this._radiusAxis.polar = this._angleAxis.polar = this;\n }\n\n Polar.prototype.containPoint = function (point) {\n var coord = this.pointToCoord(point);\n return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]);\n };\n\n Polar.prototype.containData = function (data) {\n return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]);\n };\n\n Polar.prototype.getAxis = function (dim) {\n var key = '_' + dim + 'Axis';\n return this[key];\n };\n\n Polar.prototype.getAxes = function () {\n return [this._radiusAxis, this._angleAxis];\n };\n\n Polar.prototype.getAxesByScale = function (scaleType) {\n var axes = [];\n var angleAxis = this._angleAxis;\n var radiusAxis = this._radiusAxis;\n angleAxis.scale.type === scaleType && axes.push(angleAxis);\n radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\n return axes;\n };\n\n Polar.prototype.getAngleAxis = function () {\n return this._angleAxis;\n };\n\n Polar.prototype.getRadiusAxis = function () {\n return this._radiusAxis;\n };\n\n Polar.prototype.getOtherAxis = function (axis) {\n var angleAxis = this._angleAxis;\n return axis === angleAxis ? this._radiusAxis : angleAxis;\n };\n\n Polar.prototype.getBaseAxis = function () {\n return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis();\n };\n\n Polar.prototype.getTooltipAxes = function (dim) {\n var baseAxis = dim != null && dim !== 'auto' ? this.getAxis(dim) : this.getBaseAxis();\n return {\n baseAxes: [baseAxis],\n otherAxes: [this.getOtherAxis(baseAxis)]\n };\n };\n\n Polar.prototype.dataToPoint = function (data, clamp) {\n return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]);\n };\n\n Polar.prototype.pointToData = function (point, clamp) {\n var coord = this.pointToCoord(point);\n return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)];\n };\n\n Polar.prototype.pointToCoord = function (point) {\n var dx = point[0] - this.cx;\n var dy = point[1] - this.cy;\n var angleAxis = this.getAngleAxis();\n var extent = angleAxis.getExtent();\n var minAngle = Math.min(extent[0], extent[1]);\n var maxAngle = Math.max(extent[0], extent[1]);\n angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360;\n var radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n var radian = Math.atan2(-dy, dx) / Math.PI * 180;\n var dir = radian < minAngle ? 1 : -1;\n\n while (radian < minAngle || radian > maxAngle) {\n radian += dir * 360;\n }\n\n return [radius, radian];\n };\n\n Polar.prototype.coordToPoint = function (coord) {\n var radius = coord[0];\n var radian = coord[1] / 180 * Math.PI;\n var x = Math.cos(radian) * radius + this.cx;\n var y = -Math.sin(radian) * radius + this.cy;\n return [x, y];\n };\n\n Polar.prototype.getArea = function () {\n var angleAxis = this.getAngleAxis();\n var radiusAxis = this.getRadiusAxis();\n var radiusExtent = radiusAxis.getExtent().slice();\n radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\n var angleExtent = angleAxis.getExtent();\n var RADIAN = Math.PI / 180;\n return {\n cx: this.cx,\n cy: this.cy,\n r0: radiusExtent[0],\n r: radiusExtent[1],\n startAngle: -angleExtent[0] * RADIAN,\n endAngle: -angleExtent[1] * RADIAN,\n clockwise: angleAxis.inverse,\n contain: function (x, y) {\n var dx = x - this.cx;\n var dy = y - this.cy;\n var d2 = dx * dx + dy * dy;\n var r = this.r;\n var r0 = this.r0;\n return d2 <= r * r && d2 >= r0 * r0;\n }\n };\n };\n\n Polar.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? this.dataToPoint(value) : null;\n };\n\n Polar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? this.pointToData(pixel) : null;\n };\n\n return Polar;\n}();\n\nfunction getCoordSys(finder) {\n var seriesModel = finder.seriesModel;\n var polarModel = finder.polarModel;\n return polarModel && polarModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Polar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Polar from './Polar';\nimport { parsePercent } from '../../util/number';\nimport { createScaleByModel, niceScaleExtent, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction resizePolar(polar, polarModel, api) {\n var center = polarModel.get('center');\n var width = api.getWidth();\n var height = api.getHeight();\n polar.cx = parsePercent(center[0], width);\n polar.cy = parsePercent(center[1], height);\n var radiusAxis = polar.getRadiusAxis();\n var size = Math.min(width, height) / 2;\n var radius = polarModel.get('radius');\n\n if (radius == null) {\n radius = [0, '100%'];\n } else if (!zrUtil.isArray(radius)) {\n radius = [0, radius];\n }\n\n var parsedRadius = [parsePercent(radius[0], size), parsePercent(radius[1], size)];\n radiusAxis.inverse ? radiusAxis.setExtent(parsedRadius[1], parsedRadius[0]) : radiusAxis.setExtent(parsedRadius[0], parsedRadius[1]);\n}\n\nfunction updatePolarScale(ecModel, api) {\n var polar = this;\n var angleAxis = polar.getAngleAxis();\n var radiusAxis = polar.getRadiusAxis();\n angleAxis.scale.setExtent(Infinity, -Infinity);\n radiusAxis.scale.setExtent(Infinity, -Infinity);\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.coordinateSystem === polar) {\n var data_1 = seriesModel.getData();\n zrUtil.each(getDataDimensionsOnAxis(data_1, 'radius'), function (dim) {\n radiusAxis.scale.unionExtentFromData(data_1, dim);\n });\n zrUtil.each(getDataDimensionsOnAxis(data_1, 'angle'), function (dim) {\n angleAxis.scale.unionExtentFromData(data_1, dim);\n });\n }\n });\n niceScaleExtent(angleAxis.scale, angleAxis.model);\n niceScaleExtent(radiusAxis.scale, radiusAxis.model);\n\n if (angleAxis.type === 'category' && !angleAxis.onBand) {\n var extent = angleAxis.getExtent();\n var diff = 360 / angleAxis.scale.count();\n angleAxis.inverse ? extent[1] += diff : extent[1] -= diff;\n angleAxis.setExtent(extent[0], extent[1]);\n }\n}\n\nfunction isAngleAxisModel(axisModel) {\n return axisModel.mainType === 'angleAxis';\n}\n\nfunction setAxis(axis, axisModel) {\n axis.type = axisModel.get('type');\n axis.scale = createScaleByModel(axisModel);\n axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\n axis.inverse = axisModel.get('inverse');\n\n if (isAngleAxisModel(axisModel)) {\n axis.inverse = axis.inverse !== axisModel.get('clockwise');\n var startAngle = axisModel.get('startAngle');\n axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\n }\n\n axisModel.axis = axis;\n axis.model = axisModel;\n}\n\nvar polarCreator = {\n dimensions: Polar.prototype.dimensions,\n create: function (ecModel, api) {\n var polarList = [];\n ecModel.eachComponent('polar', function (polarModel, idx) {\n var polar = new Polar(idx + '');\n polar.update = updatePolarScale;\n var radiusAxis = polar.getRadiusAxis();\n var angleAxis = polar.getAngleAxis();\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\n setAxis(radiusAxis, radiusAxisModel);\n setAxis(angleAxis, angleAxisModel);\n resizePolar(polar, polarModel, api);\n polarList.push(polar);\n polarModel.coordinateSystem = polar;\n polar.model = polarModel;\n });\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'polar') {\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n\n if (process.env.NODE_ENV !== 'production') {\n if (!polarModel) {\n throw new Error('Polar \"' + zrUtil.retrieve(seriesModel.get('polarIndex'), seriesModel.get('polarId'), 0) + '\" not found');\n }\n }\n\n seriesModel.coordinateSystem = polarModel.coordinateSystem;\n }\n });\n return polarList;\n }\n};\nexport default polarCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport AxisView from './AxisView';\nimport AxisBuilder from './AxisBuilder';\nimport { getECData } from '../../util/innerStore';\nvar elementList = ['axisLine', 'axisLabel', 'axisTick', 'minorTick', 'splitLine', 'minorSplitLine', 'splitArea'];\n\nfunction getAxisLineShape(polar, rExtent, angle) {\n rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\n var start = polar.coordToPoint([rExtent[0], angle]);\n var end = polar.coordToPoint([rExtent[1], angle]);\n return {\n x1: start[0],\n y1: start[1],\n x2: end[0],\n y2: end[1]\n };\n}\n\nfunction getRadiusIdx(polar) {\n var radiusAxis = polar.getRadiusAxis();\n return radiusAxis.inverse ? 0 : 1;\n}\n\nfunction fixAngleOverlap(list) {\n var firstItem = list[0];\n var lastItem = list[list.length - 1];\n\n if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\n list.pop();\n }\n}\n\nvar AngleAxisView = function (_super) {\n __extends(AngleAxisView, _super);\n\n function AngleAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = AngleAxisView.type;\n _this.axisPointerClass = 'PolarAxisPointer';\n return _this;\n }\n\n AngleAxisView.prototype.render = function (angleAxisModel, ecModel) {\n this.group.removeAll();\n\n if (!angleAxisModel.get('show')) {\n return;\n }\n\n var angleAxis = angleAxisModel.axis;\n var polar = angleAxis.polar;\n var radiusExtent = polar.getRadiusAxis().getExtent();\n var ticksAngles = angleAxis.getTicksCoords();\n var minorTickAngles = angleAxis.getMinorTicksCoords();\n var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) {\n labelItem = zrUtil.clone(labelItem);\n var scale = angleAxis.scale;\n var tickValue = scale.type === 'ordinal' ? scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n labelItem.coord = angleAxis.dataToCoord(tickValue);\n return labelItem;\n });\n fixAngleOverlap(labels);\n fixAngleOverlap(ticksAngles);\n zrUtil.each(elementList, function (name) {\n if (angleAxisModel.get([name, 'show']) && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\n angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);\n }\n }, this);\n };\n\n AngleAxisView.type = 'angleAxis';\n return AngleAxisView;\n}(AxisView);\n\nvar angelAxisElementsBuilders = {\n axisLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n var lineStyleModel = angleAxisModel.getModel(['axisLine', 'lineStyle']);\n var rId = getRadiusIdx(polar);\n var r0Id = rId ? 0 : 1;\n var shape;\n\n if (radiusExtent[r0Id] === 0) {\n shape = new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: radiusExtent[rId]\n },\n style: lineStyleModel.getLineStyle(),\n z2: 1,\n silent: true\n });\n } else {\n shape = new graphic.Ring({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: radiusExtent[rId],\n r0: radiusExtent[r0Id]\n },\n style: lineStyleModel.getLineStyle(),\n z2: 1,\n silent: true\n });\n }\n\n shape.style.fill = null;\n group.add(shape);\n },\n axisTick: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n var tickModel = angleAxisModel.getModel('axisTick');\n var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\n var radius = radiusExtent[getRadiusIdx(polar)];\n var lines = zrUtil.map(ticksAngles, function (tickAngleItem) {\n return new graphic.Line({\n shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\n });\n });\n group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), {\n stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n })\n }));\n },\n minorTick: function (group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {\n if (!minorTickAngles.length) {\n return;\n }\n\n var tickModel = angleAxisModel.getModel('axisTick');\n var minorTickModel = angleAxisModel.getModel('minorTick');\n var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');\n var radius = radiusExtent[getRadiusIdx(polar)];\n var lines = [];\n\n for (var i = 0; i < minorTickAngles.length; i++) {\n for (var k = 0; k < minorTickAngles[i].length; k++) {\n lines.push(new graphic.Line({\n shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)\n }));\n }\n }\n\n group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults(minorTickModel.getModel('lineStyle').getLineStyle(), zrUtil.defaults(tickModel.getLineStyle(), {\n stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n }))\n }));\n },\n axisLabel: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {\n var rawCategoryData = angleAxisModel.getCategories(true);\n var commonLabelModel = angleAxisModel.getModel('axisLabel');\n var labelMargin = commonLabelModel.get('margin');\n var triggerEvent = angleAxisModel.get('triggerEvent');\n zrUtil.each(labels, function (labelItem, idx) {\n var labelModel = commonLabelModel;\n var tickValue = labelItem.tickValue;\n var r = radiusExtent[getRadiusIdx(polar)];\n var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\n var cx = polar.cx;\n var cy = polar.cy;\n var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right';\n var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom';\n\n if (rawCategoryData && rawCategoryData[tickValue]) {\n var rawCategoryItem = rawCategoryData[tickValue];\n\n if (zrUtil.isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel);\n }\n }\n\n var textEl = new graphic.Text({\n silent: AxisBuilder.isLabelSilent(angleAxisModel),\n style: createTextStyle(labelModel, {\n x: p[0],\n y: p[1],\n fill: labelModel.getTextColor() || angleAxisModel.get(['axisLine', 'lineStyle', 'color']),\n text: labelItem.formattedLabel,\n align: labelTextAlign,\n verticalAlign: labelTextVerticalAlign\n })\n });\n group.add(textEl);\n\n if (triggerEvent) {\n var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);\n eventData.targetType = 'axisLabel';\n eventData.value = labelItem.rawLabel;\n getECData(textEl).eventData = eventData;\n }\n }, this);\n },\n splitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n var splitLineModel = angleAxisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n var lineCount = 0;\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var splitLines = [];\n\n for (var i = 0; i < ticksAngles.length; i++) {\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Line({\n shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\n }));\n }\n\n for (var i = 0; i < splitLines.length; i++) {\n group.add(graphic.mergePath(splitLines[i], {\n style: zrUtil.defaults({\n stroke: lineColors[i % lineColors.length]\n }, lineStyleModel.getLineStyle()),\n silent: true,\n z: angleAxisModel.get('z')\n }));\n }\n },\n minorSplitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n if (!minorTickAngles.length) {\n return;\n }\n\n var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var lines = [];\n\n for (var i = 0; i < minorTickAngles.length; i++) {\n for (var k = 0; k < minorTickAngles[i].length; k++) {\n lines.push(new graphic.Line({\n shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)\n }));\n }\n }\n\n group.add(graphic.mergePath(lines, {\n style: lineStyleModel.getLineStyle(),\n silent: true,\n z: angleAxisModel.get('z')\n }));\n },\n splitArea: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n if (!ticksAngles.length) {\n return;\n }\n\n var splitAreaModel = angleAxisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var lineCount = 0;\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n var splitAreas = [];\n var RADIAN = Math.PI / 180;\n var prevAngle = -ticksAngles[0].coord * RADIAN;\n var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\n var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\n var clockwise = angleAxisModel.get('clockwise');\n\n for (var i = 1, len = ticksAngles.length; i <= len; i++) {\n var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord;\n var colorIndex = lineCount++ % areaColors.length;\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n splitAreas[colorIndex].push(new graphic.Sector({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r0: r0,\n r: r1,\n startAngle: prevAngle,\n endAngle: -coord * RADIAN,\n clockwise: clockwise\n },\n silent: true\n }));\n prevAngle = -coord * RADIAN;\n }\n\n for (var i = 0; i < splitAreas.length; i++) {\n group.add(graphic.mergePath(splitAreas[i], {\n style: zrUtil.defaults({\n fill: areaColors[i % areaColors.length]\n }, areaStyleModel.getAreaStyle()),\n silent: true\n }));\n }\n }\n};\nexport default AngleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea', 'minorSplitLine'];\n\nvar RadiusAxisView = function (_super) {\n __extends(RadiusAxisView, _super);\n\n function RadiusAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = RadiusAxisView.type;\n _this.axisPointerClass = 'PolarAxisPointer';\n return _this;\n }\n\n RadiusAxisView.prototype.render = function (radiusAxisModel, ecModel) {\n this.group.removeAll();\n\n if (!radiusAxisModel.get('show')) {\n return;\n }\n\n var oldAxisGroup = this._axisGroup;\n var newAxisGroup = this._axisGroup = new graphic.Group();\n this.group.add(newAxisGroup);\n var radiusAxis = radiusAxisModel.axis;\n var polar = radiusAxis.polar;\n var angleAxis = polar.getAngleAxis();\n var ticksCoords = radiusAxis.getTicksCoords();\n var minorTicksCoords = radiusAxis.getMinorTicksCoords();\n var axisAngle = angleAxis.getExtent()[0];\n var radiusExtent = radiusAxis.getExtent();\n var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\n var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n newAxisGroup.add(axisBuilder.getGroup());\n graphic.groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel);\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (radiusAxisModel.get([name, 'show']) && !radiusAxis.scale.isBlank()) {\n axisElementBuilders[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\n }\n }, this);\n };\n\n RadiusAxisView.type = 'radiusAxis';\n return RadiusAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n splitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n var splitLineModel = radiusAxisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n var lineCount = 0;\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var splitLines = [];\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: ticksCoords[i].coord\n }\n }));\n }\n\n for (var i = 0; i < splitLines.length; i++) {\n group.add(graphic.mergePath(splitLines[i], {\n style: zrUtil.defaults({\n stroke: lineColors[i % lineColors.length],\n fill: null\n }, lineStyleModel.getLineStyle()),\n silent: true\n }));\n }\n },\n minorSplitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\n if (!minorTicksCoords.length) {\n return;\n }\n\n var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var lines = [];\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\n lines.push(new graphic.Circle({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r: minorTicksCoords[i][k].coord\n }\n }));\n }\n }\n\n group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults({\n fill: null\n }, lineStyleModel.getLineStyle()),\n silent: true\n }));\n },\n splitArea: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n if (!ticksCoords.length) {\n return;\n }\n\n var splitAreaModel = radiusAxisModel.getModel('splitArea');\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\n var areaColors = areaStyleModel.get('color');\n var lineCount = 0;\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n var splitAreas = [];\n var prevRadius = ticksCoords[0].coord;\n\n for (var i = 1; i < ticksCoords.length; i++) {\n var colorIndex = lineCount++ % areaColors.length;\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n splitAreas[colorIndex].push(new graphic.Sector({\n shape: {\n cx: polar.cx,\n cy: polar.cy,\n r0: prevRadius,\n r: ticksCoords[i].coord,\n startAngle: 0,\n endAngle: Math.PI * 2\n },\n silent: true\n }));\n prevRadius = ticksCoords[i].coord;\n }\n\n for (var i = 0; i < splitAreas.length; i++) {\n group.add(graphic.mergePath(splitAreas[i], {\n style: zrUtil.defaults({\n fill: areaColors[i % areaColors.length]\n }, areaStyleModel.getAreaStyle()),\n silent: true\n }));\n }\n }\n};\n\nfunction layoutAxis(polar, radiusAxisModel, axisAngle) {\n return {\n position: [polar.cx, polar.cy],\n rotation: axisAngle / 180 * Math.PI,\n labelDirection: -1,\n tickDirection: -1,\n nameDirection: 1,\n labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\n z2: 1\n };\n}\n\nexport default RadiusAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\n\nfunction getSeriesStackId(seriesModel) {\n return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(polar, axis) {\n return axis.dim + polar.model.componentIndex;\n}\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n var lastStackCoords = {};\n var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n }));\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n if (seriesModel.coordinateSystem.type !== 'polar') {\n return;\n }\n\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var axisKey = getAxisKey(polar, baseAxis);\n var stackId = getSeriesStackId(seriesModel);\n var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\n var columnOffset = columnLayoutInfo.offset;\n var columnWidth = columnLayoutInfo.width;\n var valueAxis = polar.getOtherAxis(baseAxis);\n var cx = seriesModel.coordinateSystem.cx;\n var cy = seriesModel.coordinateSystem.cy;\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\n var barMinAngle = seriesModel.get('barMinAngle') || 0;\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var stacked = isDimensionStacked(data, valueDim);\n var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true);\n var valueAxisStart = valueAxis.dataToCoord(0);\n\n for (var idx = 0, len = data.count(); idx < len; idx++) {\n var value = data.get(valueDim, idx);\n var baseValue = data.get(baseDim, idx);\n var sign = value >= 0 ? 'p' : 'n';\n var baseCoord = valueAxisStart;\n\n if (stacked) {\n if (!lastStackCoords[stackId][baseValue]) {\n lastStackCoords[stackId][baseValue] = {\n p: valueAxisStart,\n n: valueAxisStart\n };\n }\n\n baseCoord = lastStackCoords[stackId][baseValue][sign];\n }\n\n var r0 = void 0;\n var r = void 0;\n var startAngle = void 0;\n var endAngle = void 0;\n\n if (valueAxis.dim === 'radius') {\n var radiusSpan = valueAxis.dataToCoord(value) - valueAxisStart;\n var angle = baseAxis.dataToCoord(baseValue);\n\n if (Math.abs(radiusSpan) < barMinHeight) {\n radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n }\n\n r0 = baseCoord;\n r = baseCoord + radiusSpan;\n startAngle = angle - columnOffset;\n endAngle = startAngle - columnWidth;\n stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n } else {\n var angleSpan = valueAxis.dataToCoord(value, clampLayout) - valueAxisStart;\n var radius = baseAxis.dataToCoord(baseValue);\n\n if (Math.abs(angleSpan) < barMinAngle) {\n angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n }\n\n r0 = radius + columnOffset;\n r = r0 + columnWidth;\n startAngle = baseCoord;\n endAngle = baseCoord + angleSpan;\n stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n }\n\n data.setItemLayout(idx, {\n cx: cx,\n cy: cy,\n r0: r0,\n r: r,\n startAngle: -startAngle * Math.PI / 180,\n endAngle: -endAngle * Math.PI / 180\n });\n }\n });\n}\n\nfunction calRadialBar(barSeries) {\n var columnsMap = {};\n zrUtil.each(barSeries, function (seriesModel, idx) {\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var axisKey = getAxisKey(polar, baseAxis);\n var axisExtent = baseAxis.getExtent();\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n var columnsOnAxis = columnsMap[axisKey] || {\n bandWidth: bandWidth,\n remainedWidth: bandWidth,\n autoWidthCount: 0,\n categoryGap: '20%',\n gap: '30%',\n stacks: {}\n };\n var stacks = columnsOnAxis.stacks;\n columnsMap[axisKey] = columnsOnAxis;\n var stackId = getSeriesStackId(seriesModel);\n\n if (!stacks[stackId]) {\n columnsOnAxis.autoWidthCount++;\n }\n\n stacks[stackId] = stacks[stackId] || {\n width: 0,\n maxWidth: 0\n };\n var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n var barGap = seriesModel.get('barGap');\n var barCategoryGap = seriesModel.get('barCategoryGap');\n\n if (barWidth && !stacks[stackId].width) {\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n stacks[stackId].width = barWidth;\n columnsOnAxis.remainedWidth -= barWidth;\n }\n\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n barGap != null && (columnsOnAxis.gap = barGap);\n barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n });\n var result = {};\n zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n result[coordSysName] = {};\n var stacks = columnsOnAxis.stacks;\n var bandWidth = columnsOnAxis.bandWidth;\n var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n var remainedWidth = columnsOnAxis.remainedWidth;\n var autoWidthCount = columnsOnAxis.autoWidthCount;\n var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n zrUtil.each(stacks, function (column, stack) {\n var maxWidth = column.maxWidth;\n\n if (maxWidth && maxWidth < autoWidth) {\n maxWidth = Math.min(maxWidth, remainedWidth);\n\n if (column.width) {\n maxWidth = Math.min(maxWidth, column.width);\n }\n\n remainedWidth -= maxWidth;\n column.width = maxWidth;\n autoWidthCount--;\n }\n });\n autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n var widthSum = 0;\n var lastColumn;\n zrUtil.each(stacks, function (column, idx) {\n if (!column.width) {\n column.width = autoWidth;\n }\n\n lastColumn = column;\n widthSum += column.width * (1 + barGapPercent);\n });\n\n if (lastColumn) {\n widthSum -= lastColumn.width * barGapPercent;\n }\n\n var offset = -widthSum / 2;\n zrUtil.each(stacks, function (column, stackId) {\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\n offset: offset,\n width: column.width\n };\n offset += column.width * (1 + barGapPercent);\n });\n });\n return result;\n}\n\nexport default barLayoutPolar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension';\nimport AxisView from '../axis/AxisView';\nimport PolarAxisPointer from '../axisPointer/PolarAxisPointer';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport PolarModel from '../../coord/polar/PolarModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport { AngleAxisModel, RadiusAxisModel } from '../../coord/polar/AxisModel';\nimport polarCreator from '../../coord/polar/polarCreator';\nimport AngleAxisView from '../axis/AngleAxisView';\nimport RadiusAxisView from '../axis/RadiusAxisView';\nimport ComponentView from '../../view/Component';\nimport { curry } from 'zrender/lib/core/util';\nimport barLayoutPolar from '../../layout/barPolar';\nvar angleAxisExtraOption = {\n startAngle: 90,\n clockwise: true,\n splitNumber: 12,\n axisLabel: {\n rotate: 0\n }\n};\nvar radiusAxisExtraOption = {\n splitNumber: 5\n};\n\nvar PolarView = function (_super) {\n __extends(PolarView, _super);\n\n function PolarView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PolarView.type;\n return _this;\n }\n\n PolarView.type = 'polar';\n return PolarView;\n}(ComponentView);\n\nexport function install(registers) {\n use(installAxisPointer);\n AxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\n registers.registerCoordinateSystem('polar', polarCreator);\n registers.registerComponentModel(PolarModel);\n registers.registerComponentView(PolarView);\n axisModelCreator(registers, 'angle', AngleAxisModel, angleAxisExtraOption);\n axisModelCreator(registers, 'radius', RadiusAxisModel, radiusAxisExtraOption);\n registers.registerComponentView(AngleAxisView);\n registers.registerComponentView(RadiusAxisView);\n registers.registerLayout(curry(barLayoutPolar, 'bar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport View from '../View';\nimport geoSourceManager from './geoSourceManager';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar Geo = function (_super) {\n __extends(Geo, _super);\n\n function Geo(name, map, nameMap, invertLongitute) {\n var _this = _super.call(this, name) || this;\n\n _this.dimensions = ['lng', 'lat'];\n _this.type = 'geo';\n _this.map = map;\n var source = geoSourceManager.load(map, nameMap);\n _this._nameCoordMap = source.nameCoordMap;\n _this._regionsMap = source.regionsMap;\n _this._invertLongitute = invertLongitute == null ? true : invertLongitute;\n _this.regions = source.regions;\n _this._rect = source.boundingRect;\n return _this;\n }\n\n Geo.prototype.containCoord = function (coord) {\n var regions = this.regions;\n\n for (var i = 0; i < regions.length; i++) {\n if (regions[i].contain(coord)) {\n return true;\n }\n }\n\n return false;\n };\n\n Geo.prototype.transformTo = function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var invertLongitute = this._invertLongitute;\n rect = rect.clone();\n\n if (invertLongitute) {\n rect.y = -rect.y - rect.height;\n }\n\n var rawTransformable = this._rawTransformable;\n rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n rawTransformable.decomposeTransform();\n\n if (invertLongitute) {\n rawTransformable.scaleY = -rawTransformable.scaleY;\n }\n\n rawTransformable.updateTransform();\n\n this._updateTransform();\n };\n\n Geo.prototype.getRegion = function (name) {\n return this._regionsMap.get(name);\n };\n\n Geo.prototype.getRegionByCoord = function (coord) {\n var regions = this.regions;\n\n for (var i = 0; i < regions.length; i++) {\n if (regions[i].contain(coord)) {\n return regions[i];\n }\n }\n };\n\n Geo.prototype.addGeoCoord = function (name, geoCoord) {\n this._nameCoordMap.set(name, geoCoord);\n };\n\n Geo.prototype.getGeoCoord = function (name) {\n return this._nameCoordMap.get(name);\n };\n\n Geo.prototype.getBoundingRect = function () {\n return this._rect;\n };\n\n Geo.prototype.dataToPoint = function (data, noRoam, out) {\n if (typeof data === 'string') {\n data = this.getGeoCoord(data);\n }\n\n if (data) {\n return View.prototype.dataToPoint.call(this, data, noRoam, out);\n }\n };\n\n Geo.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.dataToPoint(value) : null;\n };\n\n Geo.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.pointToData(pixel) : null;\n };\n\n return Geo;\n}(View);\n\n;\nzrUtil.mixin(Geo, View);\n\nfunction getCoordSys(finder) {\n var geoModel = finder.geoModel;\n var seriesModel = finder.seriesModel;\n return geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem || (seriesModel.getReferringComponents('geo', SINGLE_REFERRING).models[0] || {}).coordinateSystem : null;\n}\n\nexport default Geo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Geo from './Geo';\nimport * as layout from '../../util/layout';\nimport * as numberUtil from '../../util/number';\nimport geoSourceManager from './geoSourceManager';\nimport mapDataStorage from './mapDataStorage';\n\nfunction resizeGeo(geoModel, api) {\n var boundingCoords = geoModel.get('boundingCoords');\n\n if (boundingCoords != null) {\n var leftTop = boundingCoords[0];\n var rightBottom = boundingCoords[1];\n\n if (isNaN(leftTop[0]) || isNaN(leftTop[1]) || isNaN(rightBottom[0]) || isNaN(rightBottom[1])) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('Invalid boundingCoords');\n }\n } else {\n this.setBoundingRect(leftTop[0], leftTop[1], rightBottom[0] - leftTop[0], rightBottom[1] - leftTop[1]);\n }\n }\n\n var rect = this.getBoundingRect();\n var centerOption = geoModel.get('layoutCenter');\n var sizeOption = geoModel.get('layoutSize');\n var viewWidth = api.getWidth();\n var viewHeight = api.getHeight();\n var aspect = rect.width / rect.height * this.aspectScale;\n var useCenterAndSize = false;\n var center;\n var size;\n\n if (centerOption && sizeOption) {\n center = [numberUtil.parsePercent(centerOption[0], viewWidth), numberUtil.parsePercent(centerOption[1], viewHeight)];\n size = numberUtil.parsePercent(sizeOption, Math.min(viewWidth, viewHeight));\n\n if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\n useCenterAndSize = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead.');\n }\n }\n }\n\n var viewRect;\n\n if (useCenterAndSize) {\n viewRect = {};\n\n if (aspect > 1) {\n viewRect.width = size;\n viewRect.height = size / aspect;\n } else {\n viewRect.height = size;\n viewRect.width = size * aspect;\n }\n\n viewRect.y = center[1] - viewRect.height / 2;\n viewRect.x = center[0] - viewRect.width / 2;\n } else {\n var boxLayoutOption = geoModel.getBoxLayoutParams();\n boxLayoutOption.aspect = aspect;\n viewRect = layout.getLayoutRect(boxLayoutOption, {\n width: viewWidth,\n height: viewHeight\n });\n }\n\n this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\n this.setCenter(geoModel.get('center'));\n this.setZoom(geoModel.get('zoom'));\n}\n\nfunction setGeoCoords(geo, model) {\n zrUtil.each(model.get('geoCoord'), function (geoCoord, name) {\n geo.addGeoCoord(name, geoCoord);\n });\n}\n\nvar GeoCreator = function () {\n function GeoCreator() {\n this.dimensions = Geo.prototype.dimensions;\n }\n\n GeoCreator.prototype.create = function (ecModel, api) {\n var geoList = [];\n ecModel.eachComponent('geo', function (geoModel, idx) {\n var name = geoModel.get('map');\n var aspectScale = geoModel.get('aspectScale');\n var invertLongitute = true;\n var mapRecords = mapDataStorage.retrieveMap(name);\n\n if (mapRecords && mapRecords[0] && mapRecords[0].type === 'svg') {\n aspectScale == null && (aspectScale = 1);\n invertLongitute = false;\n } else {\n aspectScale == null && (aspectScale = 0.75);\n }\n\n var geo = new Geo(name + idx, name, geoModel.get('nameMap'), invertLongitute);\n geo.aspectScale = aspectScale;\n geo.zoomLimit = geoModel.get('scaleLimit');\n geoList.push(geo);\n geoModel.coordinateSystem = geo;\n geo.model = geoModel;\n geo.resize = resizeGeo;\n geo.resize(geoModel, api);\n });\n ecModel.eachSeries(function (seriesModel) {\n var coordSys = seriesModel.get('coordinateSystem');\n\n if (coordSys === 'geo') {\n var geoIndex = seriesModel.get('geoIndex') || 0;\n seriesModel.coordinateSystem = geoList[geoIndex];\n }\n });\n var mapModelGroupBySeries = {};\n ecModel.eachSeriesByType('map', function (seriesModel) {\n if (!seriesModel.getHostGeoModel()) {\n var mapType = seriesModel.getMapType();\n mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\n mapModelGroupBySeries[mapType].push(seriesModel);\n }\n });\n zrUtil.each(mapModelGroupBySeries, function (mapSeries, mapType) {\n var nameMapList = zrUtil.map(mapSeries, function (singleMapSeries) {\n return singleMapSeries.get('nameMap');\n });\n var geo = new Geo(mapType, mapType, zrUtil.mergeAll(nameMapList));\n geo.zoomLimit = zrUtil.retrieve.apply(null, zrUtil.map(mapSeries, function (singleMapSeries) {\n return singleMapSeries.get('scaleLimit');\n }));\n geoList.push(geo);\n geo.resize = resizeGeo;\n geo.aspectScale = mapSeries[0].get('aspectScale');\n geo.resize(mapSeries[0], api);\n zrUtil.each(mapSeries, function (singleMapSeries) {\n singleMapSeries.coordinateSystem = geo;\n setGeoCoords(geo, singleMapSeries);\n });\n });\n return geoList;\n };\n\n GeoCreator.prototype.getFilledRegions = function (originRegionArr, mapName, nameMap) {\n var regionsArr = (originRegionArr || []).slice();\n var dataNameMap = zrUtil.createHashMap();\n\n for (var i = 0; i < regionsArr.length; i++) {\n dataNameMap.set(regionsArr[i].name, regionsArr[i]);\n }\n\n var source = geoSourceManager.load(mapName, nameMap);\n zrUtil.each(source.regions, function (region) {\n var name = region.name;\n !dataNameMap.get(name) && regionsArr.push({\n name: name\n });\n });\n return regionsArr;\n };\n\n return GeoCreator;\n}();\n\nvar geoCreator = new GeoCreator();\nexport default geoCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport ComponentModel from '../../model/Component';\nimport Model from '../../model/Model';\nimport geoCreator from './geoCreator';\n;\n;\n\nvar GeoModel = function (_super) {\n __extends(GeoModel, _super);\n\n function GeoModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GeoModel.type;\n return _this;\n }\n\n GeoModel.prototype.init = function (option, parentModel, ecModel) {\n _super.prototype.init.call(this, option, parentModel, ecModel);\n\n modelUtil.defaultEmphasis(option, 'label', ['show']);\n };\n\n GeoModel.prototype.optionUpdated = function () {\n var option = this.option;\n var self = this;\n option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\n var selectedMap = {};\n this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n var regionName = regionOpt.name;\n\n if (regionName) {\n optionModelMap.set(regionName, new Model(regionOpt, self));\n\n if (regionOpt.selected) {\n selectedMap[regionName] = true;\n }\n }\n\n return optionModelMap;\n }, zrUtil.createHashMap());\n\n if (!option.selectedMap) {\n option.selectedMap = selectedMap;\n }\n };\n\n GeoModel.prototype.getRegionModel = function (name) {\n return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n };\n\n GeoModel.prototype.getFormattedLabel = function (name, status) {\n var regionModel = this.getRegionModel(name);\n var formatter = status === 'normal' ? regionModel.get(['label', 'formatter']) : regionModel.get(['emphasis', 'label', 'formatter']);\n var params = {\n name: name\n };\n\n if (typeof formatter === 'function') {\n params.status = status;\n return formatter(params);\n } else if (typeof formatter === 'string') {\n return formatter.replace('{a}', name != null ? name : '');\n }\n };\n\n GeoModel.prototype.setZoom = function (zoom) {\n this.option.zoom = zoom;\n };\n\n GeoModel.prototype.setCenter = function (center) {\n this.option.center = center;\n };\n\n GeoModel.prototype.select = function (name) {\n var option = this.option;\n var selectedMode = option.selectedMode;\n\n if (!selectedMode) {\n return;\n }\n\n if (selectedMode !== 'multiple') {\n option.selectedMap = null;\n }\n\n var selectedMap = option.selectedMap || (option.selectedMap = {});\n selectedMap[name] = true;\n };\n\n GeoModel.prototype.unSelect = function (name) {\n var selectedMap = this.option.selectedMap;\n\n if (selectedMap) {\n selectedMap[name] = false;\n }\n };\n\n GeoModel.prototype.toggleSelected = function (name) {\n this[this.isSelected(name) ? 'unSelect' : 'select'](name);\n };\n\n GeoModel.prototype.isSelected = function (name) {\n var selectedMap = this.option.selectedMap;\n return !!(selectedMap && selectedMap[name]);\n };\n\n GeoModel.prototype._initSelectedMapFromData = function () {};\n\n GeoModel.type = 'geo';\n GeoModel.layoutMode = 'box';\n GeoModel.defaultOption = {\n zlevel: 0,\n z: 0,\n show: true,\n left: 'center',\n top: 'center',\n aspectScale: null,\n silent: false,\n map: '',\n boundingCoords: null,\n center: null,\n zoom: 1,\n scaleLimit: null,\n label: {\n show: false,\n color: '#000'\n },\n itemStyle: {\n borderWidth: 0.5,\n borderColor: '#444',\n color: '#eee'\n },\n emphasis: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n color: 'rgba(255,215,0,0.8)'\n }\n },\n select: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n color: 'rgba(255,215,0,0.8)'\n }\n },\n regions: []\n };\n return GeoModel;\n}(ComponentModel);\n\nexport default GeoModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MapDraw from '../helper/MapDraw';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\n\nvar GeoView = function (_super) {\n __extends(GeoView, _super);\n\n function GeoView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GeoView.type;\n return _this;\n }\n\n GeoView.prototype.init = function (ecModel, api) {\n var mapDraw = new MapDraw(api);\n this._mapDraw = mapDraw;\n this.group.add(mapDraw.group);\n this._api = api;\n };\n\n GeoView.prototype.render = function (geoModel, ecModel, api, payload) {\n var mapDraw = this._mapDraw;\n\n if (geoModel.get('show')) {\n mapDraw.draw(geoModel, ecModel, api, this, payload);\n } else {\n this._mapDraw.group.removeAll();\n }\n\n mapDraw.group.on('click', this._handleRegionClick, this);\n mapDraw.group.silent = geoModel.get('silent');\n this._model = geoModel;\n this.updateSelectStatus(geoModel, ecModel, api);\n };\n\n GeoView.prototype._handleRegionClick = function (e) {\n var current = e.target;\n var eventData;\n\n while (current && (eventData = getECData(current).eventData) == null) {\n current = current.__hostTarget || current.parent;\n }\n\n if (eventData) {\n this._api.dispatchAction({\n type: 'geoToggleSelect',\n geoId: this._model.id,\n name: eventData.name\n });\n }\n };\n\n GeoView.prototype.updateSelectStatus = function (model, ecModel, api) {\n var _this = this;\n\n this._mapDraw.group.traverse(function (node) {\n var eventData = getECData(node).eventData;\n\n if (eventData) {\n _this._model.isSelected(eventData.name) ? api.enterSelect(node) : api.leaveSelect(node);\n return true;\n }\n });\n };\n\n GeoView.prototype.dispose = function () {\n this._mapDraw && this._mapDraw.remove();\n };\n\n GeoView.type = 'geo';\n return GeoView;\n}(ComponentView);\n\nexport default GeoView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport GeoModel from '../../coord/geo/GeoModel';\nimport geoCreator from '../../coord/geo/geoCreator';\nimport { each } from 'zrender/lib/core/util';\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nimport GeoView from './GeoView';\nexport function install(registers) {\n registers.registerCoordinateSystem('geo', geoCreator);\n registers.registerComponentModel(GeoModel);\n registers.registerComponentView(GeoView);\n\n function makeAction(method, actionInfo) {\n actionInfo.update = 'geo:updateSelectStatus';\n registers.registerAction(actionInfo, function (payload, ecModel) {\n var selected = {};\n ecModel.eachComponent({\n mainType: 'geo',\n query: payload\n }, function (geoModel) {\n geoModel[method](payload.name);\n var geo = geoModel.coordinateSystem;\n each(geo.regions, function (region) {\n selected[region.name] = geoModel.isSelected(region.name) || false;\n });\n });\n return {\n selected: selected,\n name: payload.name\n };\n });\n }\n\n makeAction('toggleSelected', {\n type: 'geoToggleSelect',\n event: 'geoselectchanged'\n });\n makeAction('select', {\n type: 'geoSelect',\n event: 'geoselected'\n });\n makeAction('unSelect', {\n type: 'geoUnSelect',\n event: 'geounselected'\n });\n registers.registerAction({\n type: 'geoRoam',\n event: 'geoRoam',\n update: 'updateTransform'\n }, function (payload, ecModel) {\n var componentType = payload.componentType || 'series';\n ecModel.eachComponent({\n mainType: componentType,\n query: payload\n }, function (componentModel) {\n var geo = componentModel.coordinateSystem;\n\n if (geo.type !== 'geo') {\n return;\n }\n\n var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'));\n componentModel.setCenter && componentModel.setCenter(res.center);\n componentModel.setZoom && componentModel.setZoom(res.zoom);\n\n if (componentType === 'series') {\n each(componentModel.seriesGroup, function (seriesModel) {\n seriesModel.setCenter(res.center);\n seriesModel.setZoom(res.zoom);\n });\n }\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport function layout(axisModel, opt) {\n opt = opt || {};\n var single = axisModel.coordinateSystem;\n var axis = axisModel.axis;\n var layout = {};\n var axisPosition = axis.position;\n var orient = axis.orient;\n var rect = single.getRect();\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n var positionMap = {\n horizontal: {\n top: rectBound[2],\n bottom: rectBound[3]\n },\n vertical: {\n left: rectBound[0],\n right: rectBound[1]\n }\n };\n layout.position = [orient === 'vertical' ? positionMap.vertical[axisPosition] : rectBound[0], orient === 'horizontal' ? positionMap.horizontal[axisPosition] : rectBound[3]];\n var r = {\n horizontal: 0,\n vertical: 1\n };\n layout.rotation = Math.PI / 2 * r[orient];\n var directionMap = {\n top: -1,\n bottom: 1,\n right: 1,\n left: -1\n };\n layout.labelDirection = layout.tickDirection = layout.nameDirection = directionMap[axisPosition];\n\n if (axisModel.get(['axisTick', 'inside'])) {\n layout.tickDirection = -layout.tickDirection;\n }\n\n if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n layout.labelDirection = -layout.labelDirection;\n }\n\n var labelRotation = opt.rotate;\n labelRotation == null && (labelRotation = axisModel.get(['axisLabel', 'rotate']));\n layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\n layout.z2 = 1;\n return layout;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from './AxisBuilder';\nimport * as graphic from '../../util/graphic';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper';\nimport AxisView from './AxisView';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine'];\n\nvar SingleAxisView = function (_super) {\n __extends(SingleAxisView, _super);\n\n function SingleAxisView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SingleAxisView.type;\n _this.axisPointerClass = 'SingleAxisPointer';\n return _this;\n }\n\n SingleAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n var group = this.group;\n group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n var layout = singleAxisHelper.layout(axisModel);\n var axisBuilder = new AxisBuilder(axisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n group.add(this._axisGroup);\n group.add(axisBuilder.getGroup());\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (axisModel.get([name, 'show'])) {\n axisElementBuilders[name](this, this.group, this._axisGroup, axisModel);\n }\n }, this);\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n };\n\n SingleAxisView.prototype.remove = function () {\n rectCoordAxisHandleRemove(this);\n };\n\n SingleAxisView.type = 'singleAxis';\n return SingleAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n splitLine: function (axisView, group, axisGroup, axisModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n var gridRect = axisModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var splitLines = [];\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = [];\n\n for (var i = 0; i < ticksCoords.length; ++i) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var colorIndex = lineCount++ % lineColors.length;\n splitLines[colorIndex] = splitLines[colorIndex] || [];\n splitLines[colorIndex].push(new graphic.Line({\n subPixelOptimize: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n silent: true\n }));\n }\n\n var lineStyle = lineStyleModel.getLineStyle(['color']);\n\n for (var i = 0; i < splitLines.length; ++i) {\n group.add(graphic.mergePath(splitLines[i], {\n style: zrUtil.defaults({\n stroke: lineColors[i % lineColors.length]\n }, lineStyle),\n silent: true\n }));\n }\n },\n splitArea: function (axisView, group, axisGroup, axisModel) {\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel);\n }\n};\nexport default SingleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar SingleAxisModel = function (_super) {\n __extends(SingleAxisModel, _super);\n\n function SingleAxisModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SingleAxisModel.type;\n return _this;\n }\n\n SingleAxisModel.prototype.getCoordSysModel = function () {\n return this;\n };\n\n SingleAxisModel.type = 'singleAxis';\n SingleAxisModel.layoutMode = 'box';\n SingleAxisModel.defaultOption = {\n left: '5%',\n top: '5%',\n right: '5%',\n bottom: '5%',\n type: 'value',\n position: 'bottom',\n orient: 'horizontal',\n axisLine: {\n show: true,\n lineStyle: {\n width: 1,\n type: 'solid'\n }\n },\n tooltip: {\n show: true\n },\n axisTick: {\n show: true,\n length: 6,\n lineStyle: {\n width: 1\n }\n },\n axisLabel: {\n show: true,\n interval: 'auto'\n },\n splitLine: {\n show: true,\n lineStyle: {\n type: 'dashed',\n opacity: 0.2\n }\n }\n };\n return SingleAxisModel;\n}(ComponentModel);\n\nmixin(SingleAxisModel, AxisModelCommonMixin.prototype);\nexport default SingleAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar SingleAxis = function (_super) {\n __extends(SingleAxis, _super);\n\n function SingleAxis(dim, scale, coordExtent, axisType, position) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n _this.type = axisType || 'value';\n _this.position = position || 'bottom';\n return _this;\n }\n\n SingleAxis.prototype.isHorizontal = function () {\n var position = this.position;\n return position === 'top' || position === 'bottom';\n };\n\n SingleAxis.prototype.pointToData = function (point, clamp) {\n return this.coordinateSystem.pointToData(point)[0];\n };\n\n return SingleAxis;\n}(Axis);\n\nexport default SingleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SingleAxis from './SingleAxis';\nimport * as axisHelper from '../axisHelper';\nimport { getLayoutRect } from '../../util/layout';\nimport { each } from 'zrender/lib/core/util';\n\nvar Single = function () {\n function Single(axisModel, ecModel, api) {\n this.type = 'single';\n this.dimension = 'single';\n this.dimensions = ['single'];\n this.axisPointerEnabled = true;\n this.model = axisModel;\n\n this._init(axisModel, ecModel, api);\n }\n\n Single.prototype._init = function (axisModel, ecModel, api) {\n var dim = this.dimension;\n var axis = new SingleAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse');\n axis.orient = axisModel.get('orient');\n axisModel.axis = axis;\n axis.model = axisModel;\n axis.coordinateSystem = this;\n this._axis = axis;\n };\n\n Single.prototype.update = function (ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.coordinateSystem === this) {\n var data_1 = seriesModel.getData();\n each(data_1.mapDimensionsAll(this.dimension), function (dim) {\n this._axis.scale.unionExtentFromData(data_1, dim);\n }, this);\n axisHelper.niceScaleExtent(this._axis.scale, this._axis.model);\n }\n }, this);\n };\n\n Single.prototype.resize = function (axisModel, api) {\n this._rect = getLayoutRect({\n left: axisModel.get('left'),\n top: axisModel.get('top'),\n right: axisModel.get('right'),\n bottom: axisModel.get('bottom'),\n width: axisModel.get('width'),\n height: axisModel.get('height')\n }, {\n width: api.getWidth(),\n height: api.getHeight()\n });\n\n this._adjustAxis();\n };\n\n Single.prototype.getRect = function () {\n return this._rect;\n };\n\n Single.prototype._adjustAxis = function () {\n var rect = this._rect;\n var axis = this._axis;\n var isHorizontal = axis.isHorizontal();\n var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\n var idx = axis.reverse ? 1 : 0;\n axis.setExtent(extent[idx], extent[1 - idx]);\n\n this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\n };\n\n Single.prototype._updateAxisTransform = function (axis, coordBase) {\n var axisExtent = axis.getExtent();\n var extentSum = axisExtent[0] + axisExtent[1];\n var isHorizontal = axis.isHorizontal();\n axis.toGlobalCoord = isHorizontal ? function (coord) {\n return coord + coordBase;\n } : function (coord) {\n return extentSum - coord + coordBase;\n };\n axis.toLocalCoord = isHorizontal ? function (coord) {\n return coord - coordBase;\n } : function (coord) {\n return extentSum - coord + coordBase;\n };\n };\n\n Single.prototype.getAxis = function () {\n return this._axis;\n };\n\n Single.prototype.getBaseAxis = function () {\n return this._axis;\n };\n\n Single.prototype.getAxes = function () {\n return [this._axis];\n };\n\n Single.prototype.getTooltipAxes = function () {\n return {\n baseAxes: [this.getAxis()],\n otherAxes: []\n };\n };\n\n Single.prototype.containPoint = function (point) {\n var rect = this.getRect();\n var axis = this.getAxis();\n var orient = axis.orient;\n\n if (orient === 'horizontal') {\n return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n } else {\n return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height;\n }\n };\n\n Single.prototype.pointToData = function (point) {\n var axis = this.getAxis();\n return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\n };\n\n Single.prototype.dataToPoint = function (val) {\n var axis = this.getAxis();\n var rect = this.getRect();\n var pt = [];\n var idx = axis.orient === 'horizontal' ? 0 : 1;\n\n if (val instanceof Array) {\n val = val[0];\n }\n\n pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\n pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2;\n return pt;\n };\n\n Single.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? this.dataToPoint(value) : null;\n };\n\n Single.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? this.pointToData(pixel) : null;\n };\n\n return Single;\n}();\n\nfunction getCoordSys(finder) {\n var seriesModel = finder.seriesModel;\n var singleModel = finder.singleAxisModel;\n return singleModel && singleModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Single;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Single from './Single';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction create(ecModel, api) {\n var singles = [];\n ecModel.eachComponent('singleAxis', function (axisModel, idx) {\n var single = new Single(axisModel, ecModel, api);\n single.name = 'single_' + idx;\n single.resize(axisModel, api);\n axisModel.coordinateSystem = single;\n singles.push(single);\n });\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'singleAxis') {\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\n }\n });\n return singles;\n}\n\nvar singleCreator = {\n create: create,\n dimensions: Single.prototype.dimensions\n};\nexport default singleCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper';\nvar XY = ['x', 'y'];\nvar WH = ['width', 'height'];\n\nvar SingleAxisPointer = function (_super) {\n __extends(SingleAxisPointer, _super);\n\n function SingleAxisPointer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n SingleAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n var axis = axisModel.axis;\n var coordSys = axis.coordinateSystem;\n var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\n var pixelValue = coordSys.dataToPoint(value)[0];\n var axisPointerType = axisPointerModel.get('type');\n\n if (axisPointerType && axisPointerType !== 'none') {\n var elStyle = viewHelper.buildElStyle(axisPointerModel);\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n pointerOption.style = elStyle;\n elOption.graphicKey = pointerOption.type;\n elOption.pointer = pointerOption;\n }\n\n var layoutInfo = singleAxisHelper.layout(axisModel);\n viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n };\n\n SingleAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n var layoutInfo = singleAxisHelper.layout(axisModel, {\n labelInside: false\n });\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n var position = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n return {\n x: position[0],\n y: position[1],\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n };\n };\n\n SingleAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n var axis = axisModel.axis;\n var coordSys = axis.coordinateSystem;\n var dimIndex = getPointDimIndex(axis);\n var axisExtent = getGlobalExtent(coordSys, dimIndex);\n var currPosition = [transform.x, transform.y];\n currPosition[dimIndex] += delta[dimIndex];\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\n cursorPoint[dimIndex] = currPosition[dimIndex];\n return {\n x: currPosition[0],\n y: currPosition[1],\n rotation: transform.rotation,\n cursorPoint: cursorPoint,\n tooltipOption: {\n verticalAlign: 'middle'\n }\n };\n };\n\n return SingleAxisPointer;\n}(BaseAxisPointer);\n\nvar pointerShapeBuilder = {\n line: function (axis, pixelValue, otherExtent) {\n var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\n return {\n type: 'Line',\n subPixelOptimize: true,\n shape: targetShape\n };\n },\n shadow: function (axis, pixelValue, otherExtent) {\n var bandWidth = axis.getBandWidth();\n var span = otherExtent[1] - otherExtent[0];\n return {\n type: 'Rect',\n shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\n };\n }\n};\n\nfunction getPointDimIndex(axis) {\n return axis.isHorizontal() ? 0 : 1;\n}\n\nfunction getGlobalExtent(coordSys, dimIndex) {\n var rect = coordSys.getRect();\n return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\n}\n\nexport default SingleAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension';\nimport ComponentView from '../../view/Component';\nimport SingleAxisView from '../axis/SingleAxisView';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport SingleAxisModel from '../../coord/single/AxisModel';\nimport singleCreator from '../../coord/single/singleCreator';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport AxisView from '../axis/AxisView';\nimport SingleAxisPointer from '../axisPointer/SingleAxisPointer';\n\nvar SingleView = function (_super) {\n __extends(SingleView, _super);\n\n function SingleView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SingleView.type;\n return _this;\n }\n\n SingleView.type = 'single';\n return SingleView;\n}(ComponentView);\n\nexport function install(registers) {\n use(installAxisPointer);\n AxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\n registers.registerComponentView(SingleView);\n registers.registerComponentView(SingleAxisView);\n registers.registerComponentModel(SingleAxisModel);\n axisModelCreator(registers, 'single', SingleAxisModel, SingleAxisModel.defaultOption);\n registers.registerCoordinateSystem('single', singleCreator);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getLayoutParams, sizeCalculable, mergeLayoutParam } from '../../util/layout';\n\nvar CalendarModel = function (_super) {\n __extends(CalendarModel, _super);\n\n function CalendarModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CalendarModel.type;\n return _this;\n }\n\n CalendarModel.prototype.init = function (option, parentModel, ecModel) {\n var inputPositionParams = getLayoutParams(option);\n\n _super.prototype.init.apply(this, arguments);\n\n mergeAndNormalizeLayoutParams(option, inputPositionParams);\n };\n\n CalendarModel.prototype.mergeOption = function (option) {\n _super.prototype.mergeOption.apply(this, arguments);\n\n mergeAndNormalizeLayoutParams(this.option, option);\n };\n\n CalendarModel.prototype.getCellSize = function () {\n return this.option.cellSize;\n };\n\n CalendarModel.type = 'calendar';\n CalendarModel.defaultOption = {\n zlevel: 0,\n z: 2,\n left: 80,\n top: 60,\n cellSize: 20,\n orient: 'horizontal',\n splitLine: {\n show: true,\n lineStyle: {\n color: '#000',\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n color: '#fff',\n borderWidth: 1,\n borderColor: '#ccc'\n },\n dayLabel: {\n show: true,\n firstDay: 0,\n position: 'start',\n margin: '50%',\n nameMap: 'en',\n color: '#000'\n },\n monthLabel: {\n show: true,\n position: 'start',\n margin: 5,\n align: 'center',\n nameMap: 'en',\n formatter: null,\n color: '#000'\n },\n yearLabel: {\n show: true,\n position: null,\n margin: 30,\n formatter: null,\n color: '#ccc',\n fontFamily: 'sans-serif',\n fontWeight: 'bolder',\n fontSize: 20\n }\n };\n return CalendarModel;\n}(ComponentModel);\n\nfunction mergeAndNormalizeLayoutParams(target, raw) {\n var cellSize = target.cellSize;\n var cellSizeArr;\n\n if (!zrUtil.isArray(cellSize)) {\n cellSizeArr = target.cellSize = [cellSize, cellSize];\n } else {\n cellSizeArr = cellSize;\n }\n\n if (cellSizeArr.length === 1) {\n cellSizeArr[1] = cellSizeArr[0];\n }\n\n var ignoreSize = zrUtil.map([0, 1], function (hvIdx) {\n if (sizeCalculable(raw, hvIdx)) {\n cellSizeArr[hvIdx] = 'auto';\n }\n\n return cellSizeArr[hvIdx] != null && cellSizeArr[hvIdx] !== 'auto';\n });\n mergeLayoutParam(target, raw, {\n type: 'box',\n ignoreSize: ignoreSize\n });\n}\n\nexport default CalendarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport ComponentView from '../../view/Component';\nvar MONTH_TEXT = {\n EN: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n CN: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']\n};\nvar WEEK_TEXT = {\n EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n CN: ['日', '一', '二', '三', '四', '五', '六']\n};\n\nvar CalendarView = function (_super) {\n __extends(CalendarView, _super);\n\n function CalendarView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = CalendarView.type;\n return _this;\n }\n\n CalendarView.prototype.render = function (calendarModel, ecModel, api) {\n var group = this.group;\n group.removeAll();\n var coordSys = calendarModel.coordinateSystem;\n var rangeData = coordSys.getRangeInfo();\n var orient = coordSys.getOrient();\n\n this._renderDayRect(calendarModel, rangeData, group);\n\n this._renderLines(calendarModel, rangeData, orient, group);\n\n this._renderYearText(calendarModel, rangeData, orient, group);\n\n this._renderMonthText(calendarModel, orient, group);\n\n this._renderWeekText(calendarModel, rangeData, orient, group);\n };\n\n CalendarView.prototype._renderDayRect = function (calendarModel, rangeData, group) {\n var coordSys = calendarModel.coordinateSystem;\n var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\n var sw = coordSys.getCellWidth();\n var sh = coordSys.getCellHeight();\n\n for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\n var point = coordSys.dataToRect([i], false).tl;\n var rect = new graphic.Rect({\n shape: {\n x: point[0],\n y: point[1],\n width: sw,\n height: sh\n },\n cursor: 'default',\n style: itemRectStyleModel\n });\n group.add(rect);\n }\n };\n\n CalendarView.prototype._renderLines = function (calendarModel, rangeData, orient, group) {\n var self = this;\n var coordSys = calendarModel.coordinateSystem;\n var lineStyleModel = calendarModel.getModel(['splitLine', 'lineStyle']).getLineStyle();\n var show = calendarModel.get(['splitLine', 'show']);\n var lineWidth = lineStyleModel.lineWidth;\n this._tlpoints = [];\n this._blpoints = [];\n this._firstDayOfMonth = [];\n this._firstDayPoints = [];\n var firstDay = rangeData.start;\n\n for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\n addPoints(firstDay.formatedDate);\n\n if (i === 0) {\n firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\n }\n\n var date = firstDay.date;\n date.setMonth(date.getMonth() + 1);\n firstDay = coordSys.getDateInfo(date);\n }\n\n addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\n\n function addPoints(date) {\n self._firstDayOfMonth.push(coordSys.getDateInfo(date));\n\n self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\n\n var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\n\n self._tlpoints.push(points[0]);\n\n self._blpoints.push(points[points.length - 1]);\n\n show && self._drawSplitline(points, lineStyleModel, group);\n }\n\n show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group);\n show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\n };\n\n CalendarView.prototype._getEdgesPoints = function (points, lineWidth, orient) {\n var rs = [points[0].slice(), points[points.length - 1].slice()];\n var idx = orient === 'horizontal' ? 0 : 1;\n rs[0][idx] = rs[0][idx] - lineWidth / 2;\n rs[1][idx] = rs[1][idx] + lineWidth / 2;\n return rs;\n };\n\n CalendarView.prototype._drawSplitline = function (points, lineStyle, group) {\n var poyline = new graphic.Polyline({\n z2: 20,\n shape: {\n points: points\n },\n style: lineStyle\n });\n group.add(poyline);\n };\n\n CalendarView.prototype._getLinePointsOfOneWeek = function (calendarModel, date, orient) {\n var coordSys = calendarModel.coordinateSystem;\n var parsedDate = coordSys.getDateInfo(date);\n var points = [];\n\n for (var i = 0; i < 7; i++) {\n var tmpD = coordSys.getNextNDay(parsedDate.time, i);\n var point = coordSys.dataToRect([tmpD.time], false);\n points[2 * tmpD.day] = point.tl;\n points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\n }\n\n return points;\n };\n\n CalendarView.prototype._formatterLabel = function (formatter, params) {\n if (typeof formatter === 'string' && formatter) {\n return formatUtil.formatTplSimple(formatter, params);\n }\n\n if (typeof formatter === 'function') {\n return formatter(params);\n }\n\n return params.nameMap;\n };\n\n CalendarView.prototype._yearTextPositionControl = function (textEl, point, orient, position, margin) {\n var x = point[0];\n var y = point[1];\n var aligns = ['center', 'bottom'];\n\n if (position === 'bottom') {\n y += margin;\n aligns = ['center', 'top'];\n } else if (position === 'left') {\n x -= margin;\n } else if (position === 'right') {\n x += margin;\n aligns = ['center', 'top'];\n } else {\n y -= margin;\n }\n\n var rotate = 0;\n\n if (position === 'left' || position === 'right') {\n rotate = Math.PI / 2;\n }\n\n return {\n rotation: rotate,\n x: x,\n y: y,\n style: {\n align: aligns[0],\n verticalAlign: aligns[1]\n }\n };\n };\n\n CalendarView.prototype._renderYearText = function (calendarModel, rangeData, orient, group) {\n var yearLabel = calendarModel.getModel('yearLabel');\n\n if (!yearLabel.get('show')) {\n return;\n }\n\n var margin = yearLabel.get('margin');\n var pos = yearLabel.get('position');\n\n if (!pos) {\n pos = orient !== 'horizontal' ? 'top' : 'left';\n }\n\n var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\n var xc = (points[0][0] + points[1][0]) / 2;\n var yc = (points[0][1] + points[1][1]) / 2;\n var idx = orient === 'horizontal' ? 0 : 1;\n var posPoints = {\n top: [xc, points[idx][1]],\n bottom: [xc, points[1 - idx][1]],\n left: [points[1 - idx][0], yc],\n right: [points[idx][0], yc]\n };\n var name = rangeData.start.y;\n\n if (+rangeData.end.y > +rangeData.start.y) {\n name = name + '-' + rangeData.end.y;\n }\n\n var formatter = yearLabel.get('formatter');\n var params = {\n start: rangeData.start.y,\n end: rangeData.end.y,\n nameMap: name\n };\n\n var content = this._formatterLabel(formatter, params);\n\n var yearText = new graphic.Text({\n z2: 30,\n style: createTextStyle(yearLabel, {\n text: content\n })\n });\n yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\n group.add(yearText);\n };\n\n CalendarView.prototype._monthTextPositionControl = function (point, isCenter, orient, position, margin) {\n var align = 'left';\n var vAlign = 'top';\n var x = point[0];\n var y = point[1];\n\n if (orient === 'horizontal') {\n y = y + margin;\n\n if (isCenter) {\n align = 'center';\n }\n\n if (position === 'start') {\n vAlign = 'bottom';\n }\n } else {\n x = x + margin;\n\n if (isCenter) {\n vAlign = 'middle';\n }\n\n if (position === 'start') {\n align = 'right';\n }\n }\n\n return {\n x: x,\n y: y,\n align: align,\n verticalAlign: vAlign\n };\n };\n\n CalendarView.prototype._renderMonthText = function (calendarModel, orient, group) {\n var monthLabel = calendarModel.getModel('monthLabel');\n\n if (!monthLabel.get('show')) {\n return;\n }\n\n var nameMap = monthLabel.get('nameMap');\n var margin = monthLabel.get('margin');\n var pos = monthLabel.get('position');\n var align = monthLabel.get('align');\n var termPoints = [this._tlpoints, this._blpoints];\n\n if (zrUtil.isString(nameMap)) {\n nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\n }\n\n var idx = pos === 'start' ? 0 : 1;\n var axis = orient === 'horizontal' ? 0 : 1;\n margin = pos === 'start' ? -margin : margin;\n var isCenter = align === 'center';\n\n for (var i = 0; i < termPoints[idx].length - 1; i++) {\n var tmp = termPoints[idx][i].slice();\n var firstDay = this._firstDayOfMonth[i];\n\n if (isCenter) {\n var firstDayPoints = this._firstDayPoints[i];\n tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\n }\n\n var formatter = monthLabel.get('formatter');\n var name_1 = nameMap[+firstDay.m - 1];\n var params = {\n yyyy: firstDay.y,\n yy: (firstDay.y + '').slice(2),\n MM: firstDay.m,\n M: +firstDay.m,\n nameMap: name_1\n };\n\n var content = this._formatterLabel(formatter, params);\n\n var monthText = new graphic.Text({\n z2: 30,\n style: zrUtil.extend(createTextStyle(monthLabel, {\n text: content\n }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin))\n });\n group.add(monthText);\n }\n };\n\n CalendarView.prototype._weekTextPositionControl = function (point, orient, position, margin, cellSize) {\n var align = 'center';\n var vAlign = 'middle';\n var x = point[0];\n var y = point[1];\n var isStart = position === 'start';\n\n if (orient === 'horizontal') {\n x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\n align = isStart ? 'right' : 'left';\n } else {\n y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\n vAlign = isStart ? 'bottom' : 'top';\n }\n\n return {\n x: x,\n y: y,\n align: align,\n verticalAlign: vAlign\n };\n };\n\n CalendarView.prototype._renderWeekText = function (calendarModel, rangeData, orient, group) {\n var dayLabel = calendarModel.getModel('dayLabel');\n\n if (!dayLabel.get('show')) {\n return;\n }\n\n var coordSys = calendarModel.coordinateSystem;\n var pos = dayLabel.get('position');\n var nameMap = dayLabel.get('nameMap');\n var margin = dayLabel.get('margin');\n var firstDayOfWeek = coordSys.getFirstDayOfWeek();\n\n if (zrUtil.isString(nameMap)) {\n nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\n }\n\n var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time;\n var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\n margin = numberUtil.parsePercent(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\n\n if (pos === 'start') {\n start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\n margin = -margin;\n }\n\n for (var i = 0; i < 7; i++) {\n var tmpD = coordSys.getNextNDay(start, i);\n var point = coordSys.dataToRect([tmpD.time], false).center;\n var day = i;\n day = Math.abs((i + firstDayOfWeek) % 7);\n var weekText = new graphic.Text({\n z2: 30,\n style: zrUtil.extend(createTextStyle(dayLabel, {\n text: nameMap[day]\n }), this._weekTextPositionControl(point, orient, pos, margin, cellSize))\n });\n group.add(weekText);\n }\n };\n\n CalendarView.type = 'calendar';\n return CalendarView;\n}(ComponentView);\n\nexport default CalendarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as layout from '../../util/layout';\nimport * as numberUtil from '../../util/number';\nvar PROXIMATE_ONE_DAY = 86400000;\n\nvar Calendar = function () {\n function Calendar(calendarModel, ecModel, api) {\n this.type = 'calendar';\n this.dimensions = Calendar.dimensions;\n this.getDimensionsInfo = Calendar.getDimensionsInfo;\n this._model = calendarModel;\n }\n\n Calendar.getDimensionsInfo = function () {\n return [{\n name: 'time',\n type: 'time'\n }, 'value'];\n };\n\n Calendar.prototype.getRangeInfo = function () {\n return this._rangeInfo;\n };\n\n Calendar.prototype.getModel = function () {\n return this._model;\n };\n\n Calendar.prototype.getRect = function () {\n return this._rect;\n };\n\n Calendar.prototype.getCellWidth = function () {\n return this._sw;\n };\n\n Calendar.prototype.getCellHeight = function () {\n return this._sh;\n };\n\n Calendar.prototype.getOrient = function () {\n return this._orient;\n };\n\n Calendar.prototype.getFirstDayOfWeek = function () {\n return this._firstDayOfWeek;\n };\n\n Calendar.prototype.getDateInfo = function (date) {\n date = numberUtil.parseDate(date);\n var y = date.getFullYear();\n var m = date.getMonth() + 1;\n var mStr = m < 10 ? '0' + m : '' + m;\n var d = date.getDate();\n var dStr = d < 10 ? '0' + d : '' + d;\n var day = date.getDay();\n day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\n return {\n y: y + '',\n m: mStr,\n d: dStr,\n day: day,\n time: date.getTime(),\n formatedDate: y + '-' + mStr + '-' + dStr,\n date: date\n };\n };\n\n Calendar.prototype.getNextNDay = function (date, n) {\n n = n || 0;\n\n if (n === 0) {\n return this.getDateInfo(date);\n }\n\n date = new Date(this.getDateInfo(date).time);\n date.setDate(date.getDate() + n);\n return this.getDateInfo(date);\n };\n\n Calendar.prototype.update = function (ecModel, api) {\n this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\n this._orient = this._model.get('orient');\n this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\n this._rangeInfo = this._getRangeInfo(this._initRangeOption());\n var weeks = this._rangeInfo.weeks || 1;\n var whNames = ['width', 'height'];\n\n var cellSize = this._model.getCellSize().slice();\n\n var layoutParams = this._model.getBoxLayoutParams();\n\n var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\n zrUtil.each([0, 1], function (idx) {\n if (cellSizeSpecified(cellSize, idx)) {\n layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\n }\n });\n var whGlobal = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal);\n zrUtil.each([0, 1], function (idx) {\n if (!cellSizeSpecified(cellSize, idx)) {\n cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\n }\n });\n\n function cellSizeSpecified(cellSize, idx) {\n return cellSize[idx] != null && cellSize[idx] !== 'auto';\n }\n\n this._sw = cellSize[0];\n this._sh = cellSize[1];\n };\n\n Calendar.prototype.dataToPoint = function (data, clamp) {\n zrUtil.isArray(data) && (data = data[0]);\n clamp == null && (clamp = true);\n var dayInfo = this.getDateInfo(data);\n var range = this._rangeInfo;\n var date = dayInfo.formatedDate;\n\n if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\n return [NaN, NaN];\n }\n\n var week = dayInfo.day;\n\n var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\n\n if (this._orient === 'vertical') {\n return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2];\n }\n\n return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2];\n };\n\n Calendar.prototype.pointToData = function (point) {\n var date = this.pointToDate(point);\n return date && date.time;\n };\n\n Calendar.prototype.dataToRect = function (data, clamp) {\n var point = this.dataToPoint(data, clamp);\n return {\n contentShape: {\n x: point[0] - (this._sw - this._lineWidth) / 2,\n y: point[1] - (this._sh - this._lineWidth) / 2,\n width: this._sw - this._lineWidth,\n height: this._sh - this._lineWidth\n },\n center: point,\n tl: [point[0] - this._sw / 2, point[1] - this._sh / 2],\n tr: [point[0] + this._sw / 2, point[1] - this._sh / 2],\n br: [point[0] + this._sw / 2, point[1] + this._sh / 2],\n bl: [point[0] - this._sw / 2, point[1] + this._sh / 2]\n };\n };\n\n Calendar.prototype.pointToDate = function (point) {\n var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\n var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\n var range = this._rangeInfo.range;\n\n if (this._orient === 'vertical') {\n return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\n }\n\n return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\n };\n\n Calendar.prototype.convertToPixel = function (ecModel, finder, value) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.dataToPoint(value) : null;\n };\n\n Calendar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n var coordSys = getCoordSys(finder);\n return coordSys === this ? coordSys.pointToData(pixel) : null;\n };\n\n Calendar.prototype.containPoint = function (point) {\n console.warn('Not implemented.');\n return false;\n };\n\n Calendar.prototype._initRangeOption = function () {\n var range = this._model.get('range');\n\n var normalizedRange;\n\n if (zrUtil.isArray(range) && range.length === 1) {\n range = range[0];\n }\n\n if (!zrUtil.isArray(range)) {\n var rangeStr = range.toString();\n\n if (/^\\d{4}$/.test(rangeStr)) {\n normalizedRange = [rangeStr + '-01-01', rangeStr + '-12-31'];\n }\n\n if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n var start = this.getDateInfo(rangeStr);\n var firstDay = start.date;\n firstDay.setMonth(firstDay.getMonth() + 1);\n var end = this.getNextNDay(firstDay, -1);\n normalizedRange = [start.formatedDate, end.formatedDate];\n }\n\n if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n normalizedRange = [rangeStr, rangeStr];\n }\n } else {\n normalizedRange = range;\n }\n\n if (!normalizedRange) {\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.logError('Invalid date range.');\n }\n\n return range;\n }\n\n var tmp = this._getRangeInfo(normalizedRange);\n\n if (tmp.start.time > tmp.end.time) {\n normalizedRange.reverse();\n }\n\n return normalizedRange;\n };\n\n Calendar.prototype._getRangeInfo = function (range) {\n var parsedRange = [this.getDateInfo(range[0]), this.getDateInfo(range[1])];\n var reversed;\n\n if (parsedRange[0].time > parsedRange[1].time) {\n reversed = true;\n parsedRange.reverse();\n }\n\n var allDay = Math.floor(parsedRange[1].time / PROXIMATE_ONE_DAY) - Math.floor(parsedRange[0].time / PROXIMATE_ONE_DAY) + 1;\n var date = new Date(parsedRange[0].time);\n var startDateNum = date.getDate();\n var endDateNum = parsedRange[1].date.getDate();\n date.setDate(startDateNum + allDay - 1);\n var dateNum = date.getDate();\n\n if (dateNum !== endDateNum) {\n var sign = date.getTime() - parsedRange[1].time > 0 ? 1 : -1;\n\n while ((dateNum = date.getDate()) !== endDateNum && (date.getTime() - parsedRange[1].time) * sign > 0) {\n allDay -= sign;\n date.setDate(dateNum - sign);\n }\n }\n\n var weeks = Math.floor((allDay + parsedRange[0].day + 6) / 7);\n var nthWeek = reversed ? -weeks + 1 : weeks - 1;\n reversed && parsedRange.reverse();\n return {\n range: [parsedRange[0].formatedDate, parsedRange[1].formatedDate],\n start: parsedRange[0],\n end: parsedRange[1],\n allDay: allDay,\n weeks: weeks,\n nthWeek: nthWeek,\n fweek: parsedRange[0].day,\n lweek: parsedRange[1].day\n };\n };\n\n Calendar.prototype._getDateByWeeksAndDay = function (nthWeek, day, range) {\n var rangeInfo = this._getRangeInfo(range);\n\n if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) {\n return null;\n }\n\n var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\n var date = new Date(rangeInfo.start.time);\n date.setDate(+rangeInfo.start.d + nthDay);\n return this.getDateInfo(date);\n };\n\n Calendar.create = function (ecModel, api) {\n var calendarList = [];\n ecModel.eachComponent('calendar', function (calendarModel) {\n var calendar = new Calendar(calendarModel, ecModel, api);\n calendarList.push(calendar);\n calendarModel.coordinateSystem = calendar;\n });\n ecModel.eachSeries(function (calendarSeries) {\n if (calendarSeries.get('coordinateSystem') === 'calendar') {\n calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\n }\n });\n return calendarList;\n };\n\n Calendar.dimensions = ['time', 'value'];\n return Calendar;\n}();\n\nfunction getCoordSys(finder) {\n var calendarModel = finder.calendarModel;\n var seriesModel = finder.seriesModel;\n var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null;\n return coordSys;\n}\n\nexport default Calendar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CalendarModel from '../../coord/calendar/CalendarModel';\nimport CalendarView from './CalendarView';\nimport Calendar from '../../coord/calendar/Calendar';\nexport function install(registers) {\n registers.registerComponentModel(CalendarModel);\n registers.registerComponentView(CalendarView);\n registers.registerCoordinateSystem('calendar', Calendar);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport * as graphicUtil from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport { parsePercent } from '../../util/number';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\nimport { isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from '../../util/styleCompat';\nvar TRANSFORM_PROPS = {\n x: 1,\n y: 1,\n scaleX: 1,\n scaleY: 1,\n originX: 1,\n originY: 1,\n rotation: 1\n};\n;\nvar inner = modelUtil.makeInner();\nvar _nonShapeGraphicElements = {\n path: null,\n compoundPath: null,\n group: graphicUtil.Group,\n image: graphicUtil.Image,\n text: graphicUtil.Text\n};\n\nvar preprocessor = function (option) {\n var graphicOption = option.graphic;\n\n if (zrUtil.isArray(graphicOption)) {\n if (!graphicOption[0] || !graphicOption[0].elements) {\n option.graphic = [{\n elements: graphicOption\n }];\n } else {\n option.graphic = [option.graphic[0]];\n }\n } else if (graphicOption && !graphicOption.elements) {\n option.graphic = [{\n elements: [graphicOption]\n }];\n }\n};\n\n;\n\nvar GraphicComponentModel = function (_super) {\n __extends(GraphicComponentModel, _super);\n\n function GraphicComponentModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GraphicComponentModel.type;\n return _this;\n }\n\n GraphicComponentModel.prototype.mergeOption = function (option, ecModel) {\n var elements = this.option.elements;\n this.option.elements = null;\n\n _super.prototype.mergeOption.call(this, option, ecModel);\n\n this.option.elements = elements;\n };\n\n GraphicComponentModel.prototype.optionUpdated = function (newOption, isInit) {\n var thisOption = this.option;\n var newList = (isInit ? thisOption : newOption).elements;\n var existList = thisOption.elements = isInit ? [] : thisOption.elements;\n var flattenedList = [];\n\n this._flatten(newList, flattenedList, null);\n\n var mappingResult = modelUtil.mappingToExists(existList, flattenedList, 'normalMerge');\n var elOptionsToUpdate = this._elOptionsToUpdate = [];\n zrUtil.each(mappingResult, function (resultItem, index) {\n var newElOption = resultItem.newOption;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(zrUtil.isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\n }\n\n if (!newElOption) {\n return;\n }\n\n elOptionsToUpdate.push(newElOption);\n setKeyInfoToNewElOption(resultItem, newElOption);\n mergeNewElOptionToExist(existList, index, newElOption);\n setLayoutInfoToExist(existList[index], newElOption);\n }, this);\n\n for (var i = existList.length - 1; i >= 0; i--) {\n if (existList[i] == null) {\n existList.splice(i, 1);\n } else {\n delete existList[i].$action;\n }\n }\n };\n\n GraphicComponentModel.prototype._flatten = function (optionList, result, parentOption) {\n zrUtil.each(optionList, function (option) {\n if (!option) {\n return;\n }\n\n if (parentOption) {\n option.parentOption = parentOption;\n }\n\n result.push(option);\n var children = option.children;\n\n if (option.type === 'group' && children) {\n this._flatten(children, result, option);\n }\n\n delete option.children;\n }, this);\n };\n\n GraphicComponentModel.prototype.useElOptionsToUpdate = function () {\n var els = this._elOptionsToUpdate;\n this._elOptionsToUpdate = null;\n return els;\n };\n\n GraphicComponentModel.type = 'graphic';\n GraphicComponentModel.defaultOption = {\n elements: []\n };\n return GraphicComponentModel;\n}(ComponentModel);\n\nvar GraphicComponentView = function (_super) {\n __extends(GraphicComponentView, _super);\n\n function GraphicComponentView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = GraphicComponentView.type;\n return _this;\n }\n\n GraphicComponentView.prototype.init = function () {\n this._elMap = zrUtil.createHashMap();\n };\n\n GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\n if (graphicModel !== this._lastGraphicModel) {\n this._clear();\n }\n\n this._lastGraphicModel = graphicModel;\n\n this._updateElements(graphicModel);\n\n this._relocate(graphicModel, api);\n };\n\n GraphicComponentView.prototype._updateElements = function (graphicModel) {\n var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n if (!elOptionsToUpdate) {\n return;\n }\n\n var elMap = this._elMap;\n var rootGroup = this.group;\n zrUtil.each(elOptionsToUpdate, function (elOption) {\n var id = modelUtil.convertOptionIdName(elOption.id, null);\n var elExisting = id != null ? elMap.get(id) : null;\n var parentId = modelUtil.convertOptionIdName(elOption.parentId, null);\n var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n var elType = elOption.type;\n var elOptionStyle = elOption.style;\n\n if (elType === 'text' && elOptionStyle) {\n if (elOption.hv && elOption.hv[1]) {\n elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null;\n }\n }\n\n var textContentOption = elOption.textContent;\n var textConfig = elOption.textConfig;\n\n if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\n var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\n\n if (!textConfig && convertResult.textConfig) {\n textConfig = elOption.textConfig = convertResult.textConfig;\n }\n\n if (!textContentOption && convertResult.textContent) {\n textContentOption = convertResult.textContent;\n }\n }\n\n var elOptionCleaned = getCleanedElOption(elOption);\n\n if (process.env.NODE_ENV !== 'production') {\n elExisting && zrUtil.assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\n }\n\n var $action = elOption.$action || 'merge';\n\n if ($action === 'merge') {\n elExisting ? elExisting.attr(elOptionCleaned) : createEl(id, targetElParent, elOptionCleaned, elMap);\n } else if ($action === 'replace') {\n removeEl(elExisting, elMap);\n createEl(id, targetElParent, elOptionCleaned, elMap);\n } else if ($action === 'remove') {\n removeEl(elExisting, elMap);\n }\n\n var el = elMap.get(id);\n\n if (el && textContentOption) {\n if ($action === 'merge') {\n var textContentExisting = el.getTextContent();\n textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new graphicUtil.Text(textContentOption));\n } else if ($action === 'replace') {\n el.setTextContent(new graphicUtil.Text(textContentOption));\n }\n }\n\n if (el) {\n var elInner = inner(el);\n elInner.__ecGraphicWidthOption = elOption.width;\n elInner.__ecGraphicHeightOption = elOption.height;\n setEventData(el, graphicModel, elOption);\n }\n });\n };\n\n GraphicComponentView.prototype._relocate = function (graphicModel, api) {\n var elOptions = graphicModel.option.elements;\n var rootGroup = this.group;\n var elMap = this._elMap;\n var apiWidth = api.getWidth();\n var apiHeight = api.getHeight();\n\n for (var i = 0; i < elOptions.length; i++) {\n var elOption = elOptions[i];\n var id = modelUtil.convertOptionIdName(elOption.id, null);\n var el = id != null ? elMap.get(id) : null;\n\n if (!el || !el.isGroup) {\n continue;\n }\n\n var parentEl = el.parent;\n var isParentRoot = parentEl === rootGroup;\n var elInner = inner(el);\n var parentElInner = inner(parentEl);\n elInner.__ecGraphicWidth = parsePercent(elInner.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentElInner.__ecGraphicWidth) || 0;\n elInner.__ecGraphicHeight = parsePercent(elInner.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentElInner.__ecGraphicHeight) || 0;\n }\n\n for (var i = elOptions.length - 1; i >= 0; i--) {\n var elOption = elOptions[i];\n var id = modelUtil.convertOptionIdName(elOption.id, null);\n var el = id != null ? elMap.get(id) : null;\n\n if (!el) {\n continue;\n }\n\n var parentEl = el.parent;\n var parentElInner = inner(parentEl);\n var containerInfo = parentEl === rootGroup ? {\n width: apiWidth,\n height: apiHeight\n } : {\n width: parentElInner.__ecGraphicWidth,\n height: parentElInner.__ecGraphicHeight\n };\n layoutUtil.positionElement(el, elOption, containerInfo, null, {\n hv: elOption.hv,\n boundingMode: elOption.bounding\n });\n }\n };\n\n GraphicComponentView.prototype._clear = function () {\n var elMap = this._elMap;\n elMap.each(function (el) {\n removeEl(el, elMap);\n });\n this._elMap = zrUtil.createHashMap();\n };\n\n GraphicComponentView.prototype.dispose = function () {\n this._clear();\n };\n\n GraphicComponentView.type = 'graphic';\n return GraphicComponentView;\n}(ComponentView);\n\nfunction createEl(id, targetElParent, elOption, elMap) {\n var graphicType = elOption.type;\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(graphicType, 'graphic type MUST be set');\n }\n\n var Clz = zrUtil.hasOwn(_nonShapeGraphicElements, graphicType) ? _nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType);\n\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(Clz, 'graphic type can not be found');\n }\n\n var el = new Clz(elOption);\n targetElParent.add(el);\n elMap.set(id, el);\n inner(el).__ecGraphicId = id;\n}\n\nfunction removeEl(elExisting, elMap) {\n var existElParent = elExisting && elExisting.parent;\n\n if (existElParent) {\n elExisting.type === 'group' && elExisting.traverse(function (el) {\n removeEl(el, elMap);\n });\n elMap.removeKey(inner(elExisting).__ecGraphicId);\n existElParent.remove(elExisting);\n }\n}\n\nfunction getCleanedElOption(elOption) {\n elOption = zrUtil.extend({}, elOption);\n zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n delete elOption[name];\n });\n return elOption;\n}\n\nfunction isSetLoc(obj, props) {\n var isSet;\n zrUtil.each(props, function (prop) {\n obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\n });\n return isSet;\n}\n\nfunction setKeyInfoToNewElOption(resultItem, newElOption) {\n var existElOption = resultItem.existing;\n newElOption.id = resultItem.keyInfo.id;\n !newElOption.type && existElOption && (newElOption.type = existElOption.type);\n\n if (newElOption.parentId == null) {\n var newElParentOption = newElOption.parentOption;\n\n if (newElParentOption) {\n newElOption.parentId = newElParentOption.id;\n } else if (existElOption) {\n newElOption.parentId = existElOption.parentId;\n }\n }\n\n newElOption.parentOption = null;\n}\n\nfunction mergeNewElOptionToExist(existList, index, newElOption) {\n var newElOptCopy = zrUtil.extend({}, newElOption);\n var existElOption = existList[index];\n var $action = newElOption.$action || 'merge';\n\n if ($action === 'merge') {\n if (existElOption) {\n if (process.env.NODE_ENV !== 'production') {\n var newType = newElOption.type;\n zrUtil.assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\n }\n\n zrUtil.merge(existElOption, newElOptCopy, true);\n layoutUtil.mergeLayoutParam(existElOption, newElOptCopy, {\n ignoreSize: true\n });\n layoutUtil.copyLayoutParams(newElOption, existElOption);\n } else {\n existList[index] = newElOptCopy;\n }\n } else if ($action === 'replace') {\n existList[index] = newElOptCopy;\n } else if ($action === 'remove') {\n existElOption && (existList[index] = null);\n }\n}\n\nfunction setLayoutInfoToExist(existItem, newElOption) {\n if (!existItem) {\n return;\n }\n\n existItem.hv = newElOption.hv = [isSetLoc(newElOption, ['left', 'right']), isSetLoc(newElOption, ['top', 'bottom'])];\n\n if (existItem.type === 'group') {\n var existingGroupOpt = existItem;\n var newGroupOpt = newElOption;\n existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0);\n existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0);\n }\n}\n\nfunction setEventData(el, graphicModel, elOption) {\n var eventData = getECData(el).eventData;\n\n if (!el.silent && !el.ignore && !eventData) {\n eventData = getECData(el).eventData = {\n componentType: 'graphic',\n componentIndex: graphicModel.componentIndex,\n name: el.name\n };\n }\n\n if (eventData) {\n eventData.info = elOption.info;\n }\n}\n\nexport function install(registers) {\n registers.registerComponentModel(GraphicComponentModel);\n registers.registerComponentView(GraphicComponentView);\n registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { indexOf, createHashMap, assert } from 'zrender/lib/core/util';\nexport var DATA_ZOOM_AXIS_DIMENSIONS = ['x', 'y', 'radius', 'angle', 'single'];\nvar SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\nexport function isCoordSupported(seriesModel) {\n var coordType = seriesModel.get('coordinateSystem');\n return indexOf(SERIES_COORDS, coordType) >= 0;\n}\nexport function getAxisMainType(axisDim) {\n if (process.env.NODE_ENV !== 'production') {\n assert(axisDim);\n }\n\n return axisDim + 'Axis';\n}\nexport function getAxisIndexPropName(axisDim) {\n if (process.env.NODE_ENV !== 'production') {\n assert(axisDim);\n }\n\n return axisDim + 'AxisIndex';\n}\nexport function getAxisIdPropName(axisDim) {\n if (process.env.NODE_ENV !== 'production') {\n assert(axisDim);\n }\n\n return axisDim + 'AxisId';\n}\nexport function findEffectedDataZooms(ecModel, payload) {\n var axisRecords = createHashMap();\n var effectedModels = [];\n var effectedModelMap = createHashMap();\n ecModel.eachComponent({\n mainType: 'dataZoom',\n query: payload\n }, function (dataZoomModel) {\n if (!effectedModelMap.get(dataZoomModel.uid)) {\n addToEffected(dataZoomModel);\n }\n });\n var foundNewLink;\n\n do {\n foundNewLink = false;\n ecModel.eachComponent('dataZoom', processSingle);\n } while (foundNewLink);\n\n function processSingle(dataZoomModel) {\n if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\n addToEffected(dataZoomModel);\n foundNewLink = true;\n }\n }\n\n function addToEffected(dataZoom) {\n effectedModelMap.set(dataZoom.uid, true);\n effectedModels.push(dataZoom);\n markAxisControlled(dataZoom);\n }\n\n function isLinked(dataZoomModel) {\n var isLink = false;\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n var axisIdxArr = axisRecords.get(axisDim);\n\n if (axisIdxArr && axisIdxArr[axisIndex]) {\n isLink = true;\n }\n });\n return isLink;\n }\n\n function markAxisControlled(dataZoomModel) {\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\n });\n }\n\n return effectedModels;\n}\nexport function collectReferCoordSysModelInfo(dataZoomModel) {\n var ecModel = dataZoomModel.ecModel;\n var coordSysInfoWrap = {\n infoList: [],\n infoMap: createHashMap()\n };\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n\n if (!axisModel) {\n return;\n }\n\n var coordSysModel = axisModel.getCoordSysModel();\n\n if (!coordSysModel) {\n return;\n }\n\n var coordSysUid = coordSysModel.uid;\n var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\n\n if (!coordSysInfo) {\n coordSysInfo = {\n model: coordSysModel,\n axisModels: []\n };\n coordSysInfoWrap.infoList.push(coordSysInfo);\n coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\n }\n\n coordSysInfo.axisModels.push(axisModel);\n });\n return coordSysInfoWrap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, createHashMap, merge, assert } from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getAxisMainType, DATA_ZOOM_AXIS_DIMENSIONS } from './helper';\nimport { MULTIPLE_REFERRING, SINGLE_REFERRING } from '../../util/model';\n\nvar DataZoomAxisInfo = function () {\n function DataZoomAxisInfo() {\n this.indexList = [];\n this.indexMap = [];\n }\n\n DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\n if (!this.indexMap[axisCmptIdx]) {\n this.indexList.push(axisCmptIdx);\n this.indexMap[axisCmptIdx] = true;\n }\n };\n\n return DataZoomAxisInfo;\n}();\n\nvar DataZoomModel = function (_super) {\n __extends(DataZoomModel, _super);\n\n function DataZoomModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = DataZoomModel.type;\n _this._autoThrottle = true;\n _this._noTarget = true;\n _this._rangePropMode = ['percent', 'percent'];\n return _this;\n }\n\n DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\n var inputRawOption = retrieveRawOption(option);\n this.settledOption = inputRawOption;\n this.mergeDefaultAndTheme(option, ecModel);\n\n this._doInit(inputRawOption);\n };\n\n DataZoomModel.prototype.mergeOption = function (newOption) {\n var inputRawOption = retrieveRawOption(newOption);\n merge(this.option, newOption, true);\n merge(this.settledOption, inputRawOption, true);\n\n this._doInit(inputRawOption);\n };\n\n DataZoomModel.prototype._doInit = function (inputRawOption) {\n var thisOption = this.option;\n\n this._setDefaultThrottle(inputRawOption);\n\n this._updateRangeUse(inputRawOption);\n\n var settledOption = this.settledOption;\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n if (this._rangePropMode[index] === 'value') {\n thisOption[names[0]] = settledOption[names[0]] = null;\n }\n }, this);\n\n this._resetTarget();\n };\n\n DataZoomModel.prototype._resetTarget = function () {\n var optionOrient = this.get('orient', true);\n var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\n\n var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\n\n if (hasAxisSpecified) {\n this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\n } else {\n this._orient = optionOrient || 'horizontal';\n\n this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\n }\n\n this._noTarget = true;\n targetAxisIndexMap.each(function (axisInfo) {\n if (axisInfo.indexList.length) {\n this._noTarget = false;\n }\n }, this);\n };\n\n DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\n var hasAxisSpecified = false;\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\n\n if (!refering.specified) {\n return;\n }\n\n hasAxisSpecified = true;\n var axisInfo = new DataZoomAxisInfo();\n each(refering.models, function (axisModel) {\n axisInfo.add(axisModel.componentIndex);\n });\n targetAxisIndexMap.set(axisDim, axisInfo);\n }, this);\n return hasAxisSpecified;\n };\n\n DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\n var ecModel = this.ecModel;\n var needAuto = true;\n\n if (needAuto) {\n var axisDim = orient === 'vertical' ? 'y' : 'x';\n var axisModels = ecModel.findComponents({\n mainType: axisDim + 'Axis'\n });\n setParallelAxis(axisModels, axisDim);\n }\n\n if (needAuto) {\n var axisModels = ecModel.findComponents({\n mainType: 'singleAxis',\n filter: function (axisModel) {\n return axisModel.get('orient', true) === orient;\n }\n });\n setParallelAxis(axisModels, 'single');\n }\n\n function setParallelAxis(axisModels, axisDim) {\n var axisModel = axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var axisInfo = new DataZoomAxisInfo();\n axisInfo.add(axisModel.componentIndex);\n targetAxisIndexMap.set(axisDim, axisInfo);\n needAuto = false;\n\n if (axisDim === 'x' || axisDim === 'y') {\n var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n gridModel_1 && each(axisModels, function (axModel) {\n if (axisModel.componentIndex !== axModel.componentIndex && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\n axisInfo.add(axModel.componentIndex);\n }\n });\n }\n }\n\n if (needAuto) {\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n if (!needAuto) {\n return;\n }\n\n var axisModels = ecModel.findComponents({\n mainType: getAxisMainType(axisDim),\n filter: function (axisModel) {\n return axisModel.get('type', true) === 'category';\n }\n });\n\n if (axisModels[0]) {\n var axisInfo = new DataZoomAxisInfo();\n axisInfo.add(axisModels[0].componentIndex);\n targetAxisIndexMap.set(axisDim, axisInfo);\n needAuto = false;\n }\n }, this);\n }\n };\n\n DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\n var dim;\n this.eachTargetAxis(function (axisDim) {\n !dim && (dim = axisDim);\n }, this);\n return dim === 'y' ? 'vertical' : 'horizontal';\n };\n\n DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\n if (inputRawOption.hasOwnProperty('throttle')) {\n this._autoThrottle = false;\n }\n\n if (this._autoThrottle) {\n var globalOption = this.ecModel.option;\n this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20;\n }\n };\n\n DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\n var rangePropMode = this._rangePropMode;\n var rangeModeInOption = this.get('rangeMode');\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n var percentSpecified = inputRawOption[names[0]] != null;\n var valueSpecified = inputRawOption[names[1]] != null;\n\n if (percentSpecified && !valueSpecified) {\n rangePropMode[index] = 'percent';\n } else if (!percentSpecified && valueSpecified) {\n rangePropMode[index] = 'value';\n } else if (rangeModeInOption) {\n rangePropMode[index] = rangeModeInOption[index];\n } else if (percentSpecified) {\n rangePropMode[index] = 'percent';\n }\n });\n };\n\n DataZoomModel.prototype.noTarget = function () {\n return this._noTarget;\n };\n\n DataZoomModel.prototype.getFirstTargetAxisModel = function () {\n var firstAxisModel;\n this.eachTargetAxis(function (axisDim, axisIndex) {\n if (firstAxisModel == null) {\n firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n }\n }, this);\n return firstAxisModel;\n };\n\n DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\n this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\n each(axisInfo.indexList, function (axisIndex) {\n callback.call(context, axisDim, axisIndex);\n });\n });\n };\n\n DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\n var axisModel = this.getAxisModel(axisDim, axisIndex);\n\n if (axisModel) {\n return axisModel.__dzAxisProxy;\n }\n };\n\n DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\n if (process.env.NODE_ENV !== 'production') {\n assert(axisDim && axisIndex != null);\n }\n\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n if (axisInfo && axisInfo.indexMap[axisIndex]) {\n return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n }\n };\n\n DataZoomModel.prototype.setRawRange = function (opt) {\n var thisOption = this.option;\n var settledOption = this.settledOption;\n each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n if (opt[names[0]] != null || opt[names[1]] != null) {\n thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\n thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\n }\n }, this);\n\n this._updateRangeUse(opt);\n };\n\n DataZoomModel.prototype.setCalculatedRange = function (opt) {\n var option = this.option;\n each(['start', 'startValue', 'end', 'endValue'], function (name) {\n option[name] = opt[name];\n });\n };\n\n DataZoomModel.prototype.getPercentRange = function () {\n var axisProxy = this.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n return axisProxy.getDataPercentWindow();\n }\n };\n\n DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\n if (axisDim == null && axisIndex == null) {\n var axisProxy = this.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n return axisProxy.getDataValueWindow();\n }\n } else {\n return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\n }\n };\n\n DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\n if (axisModel) {\n return axisModel.__dzAxisProxy;\n }\n\n var firstProxy;\n\n var axisDimList = this._targetAxisInfoMap.keys();\n\n for (var i = 0; i < axisDimList.length; i++) {\n var axisDim = axisDimList[i];\n\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n for (var j = 0; j < axisInfo.indexList.length; j++) {\n var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\n\n if (proxy.hostedBy(this)) {\n return proxy;\n }\n\n if (!firstProxy) {\n firstProxy = proxy;\n }\n }\n }\n\n return firstProxy;\n };\n\n DataZoomModel.prototype.getRangePropMode = function () {\n return this._rangePropMode.slice();\n };\n\n DataZoomModel.prototype.getOrient = function () {\n if (process.env.NODE_ENV !== 'production') {\n assert(this._orient);\n }\n\n return this._orient;\n };\n\n DataZoomModel.type = 'dataZoom';\n DataZoomModel.dependencies = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'];\n DataZoomModel.defaultOption = {\n zlevel: 0,\n z: 4,\n filterMode: 'filter',\n start: 0,\n end: 100\n };\n return DataZoomModel;\n}(ComponentModel);\n\nfunction retrieveRawOption(option) {\n var ret = {};\n each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\n option.hasOwnProperty(name) && (ret[name] = option[name]);\n });\n return ret;\n}\n\nexport default DataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\n\nvar SelectDataZoomModel = function (_super) {\n __extends(SelectDataZoomModel, _super);\n\n function SelectDataZoomModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SelectDataZoomModel.type;\n return _this;\n }\n\n SelectDataZoomModel.type = 'dataZoom.select';\n return SelectDataZoomModel;\n}(DataZoomModel);\n\nexport default SelectDataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar DataZoomView = function (_super) {\n __extends(DataZoomView, _super);\n\n function DataZoomView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = DataZoomView.type;\n return _this;\n }\n\n DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n this.dataZoomModel = dataZoomModel;\n this.ecModel = ecModel;\n this.api = api;\n };\n\n DataZoomView.type = 'dataZoom';\n return DataZoomView;\n}(ComponentView);\n\nexport default DataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\n\nvar SelectDataZoomView = function (_super) {\n __extends(SelectDataZoomView, _super);\n\n function SelectDataZoomView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SelectDataZoomView.type;\n return _this;\n }\n\n SelectDataZoomView.type = 'dataZoom.select';\n return SelectDataZoomView;\n}(DataZoomView);\n\nexport default SelectDataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport { unionAxisExtentFromData } from '../../coord/axisHelper';\nimport { ensureScaleRawExtentInfo } from '../../coord/scaleRawExtentInfo';\nimport { getAxisMainType, isCoordSupported } from './helper';\nimport { SINGLE_REFERRING } from '../../util/model';\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\n\nvar AxisProxy = function () {\n function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\n this._dimName = dimName;\n this._axisIndex = axisIndex;\n this.ecModel = ecModel;\n this._dataZoomModel = dataZoomModel;\n }\n\n AxisProxy.prototype.hostedBy = function (dataZoomModel) {\n return this._dataZoomModel === dataZoomModel;\n };\n\n AxisProxy.prototype.getDataValueWindow = function () {\n return this._valueWindow.slice();\n };\n\n AxisProxy.prototype.getDataPercentWindow = function () {\n return this._percentWindow.slice();\n };\n\n AxisProxy.prototype.getTargetSeriesModels = function () {\n var seriesModels = [];\n this.ecModel.eachSeries(function (seriesModel) {\n if (isCoordSupported(seriesModel)) {\n var axisMainType = getAxisMainType(this._dimName);\n var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\n\n if (axisModel && this._axisIndex === axisModel.componentIndex) {\n seriesModels.push(seriesModel);\n }\n }\n }, this);\n return seriesModels;\n };\n\n AxisProxy.prototype.getAxisModel = function () {\n return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n };\n\n AxisProxy.prototype.getMinMaxSpan = function () {\n return zrUtil.clone(this._minMaxSpan);\n };\n\n AxisProxy.prototype.calculateDataWindow = function (opt) {\n var dataExtent = this._dataExtent;\n var axisModel = this.getAxisModel();\n var scale = axisModel.axis.scale;\n\n var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n var percentExtent = [0, 100];\n var percentWindow = [];\n var valueWindow = [];\n var hasPropModeValue;\n each(['start', 'end'], function (prop, idx) {\n var boundPercent = opt[prop];\n var boundValue = opt[prop + 'Value'];\n\n if (rangePropMode[idx] === 'percent') {\n boundPercent == null && (boundPercent = percentExtent[idx]);\n boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent));\n } else {\n hasPropModeValue = true;\n boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\n boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent);\n }\n\n valueWindow[idx] = boundValue;\n percentWindow[idx] = boundPercent;\n });\n asc(valueWindow);\n asc(percentWindow);\n var spans = this._minMaxSpan;\n hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\n\n function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\n var suffix = toValue ? 'Span' : 'ValueSpan';\n sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\n\n for (var i = 0; i < 2; i++) {\n toWindow[i] = numberUtil.linearMap(fromWindow[i], fromExtent, toExtent, true);\n toValue && (toWindow[i] = scale.parse(toWindow[i]));\n }\n }\n\n return {\n valueWindow: valueWindow,\n percentWindow: percentWindow\n };\n };\n\n AxisProxy.prototype.reset = function (dataZoomModel) {\n if (dataZoomModel !== this._dataZoomModel) {\n return;\n }\n\n var targetSeries = this.getTargetSeriesModels();\n this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\n\n this._updateMinMaxSpan();\n\n var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\n this._valueWindow = dataWindow.valueWindow;\n this._percentWindow = dataWindow.percentWindow;\n\n this._setAxisModel();\n };\n\n AxisProxy.prototype.filterData = function (dataZoomModel, api) {\n if (dataZoomModel !== this._dataZoomModel) {\n return;\n }\n\n var axisDim = this._dimName;\n var seriesModels = this.getTargetSeriesModels();\n var filterMode = dataZoomModel.get('filterMode');\n var valueWindow = this._valueWindow;\n\n if (filterMode === 'none') {\n return;\n }\n\n each(seriesModels, function (seriesModel) {\n var seriesData = seriesModel.getData();\n var dataDims = seriesData.mapDimensionsAll(axisDim);\n\n if (!dataDims.length) {\n return;\n }\n\n if (filterMode === 'weakFilter') {\n seriesData.filterSelf(function (dataIndex) {\n var leftOut;\n var rightOut;\n var hasValue;\n\n for (var i = 0; i < dataDims.length; i++) {\n var value = seriesData.get(dataDims[i], dataIndex);\n var thisHasValue = !isNaN(value);\n var thisLeftOut = value < valueWindow[0];\n var thisRightOut = value > valueWindow[1];\n\n if (thisHasValue && !thisLeftOut && !thisRightOut) {\n return true;\n }\n\n thisHasValue && (hasValue = true);\n thisLeftOut && (leftOut = true);\n thisRightOut && (rightOut = true);\n }\n\n return hasValue && leftOut && rightOut;\n });\n } else {\n each(dataDims, function (dim) {\n if (filterMode === 'empty') {\n seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\n return !isInWindow(value) ? NaN : value;\n }));\n } else {\n var range = {};\n range[dim] = valueWindow;\n seriesData.selectRange(range);\n }\n });\n }\n\n each(dataDims, function (dim) {\n seriesData.setApproximateExtent(valueWindow, dim);\n });\n });\n\n function isInWindow(value) {\n return value >= valueWindow[0] && value <= valueWindow[1];\n }\n };\n\n AxisProxy.prototype._updateMinMaxSpan = function () {\n var minMaxSpan = this._minMaxSpan = {};\n var dataZoomModel = this._dataZoomModel;\n var dataExtent = this._dataExtent;\n each(['min', 'max'], function (minMax) {\n var percentSpan = dataZoomModel.get(minMax + 'Span');\n var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\n\n if (valueSpan != null) {\n percentSpan = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n } else if (percentSpan != null) {\n valueSpan = numberUtil.linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\n }\n\n minMaxSpan[minMax + 'Span'] = percentSpan;\n minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n }, this);\n };\n\n AxisProxy.prototype._setAxisModel = function () {\n var axisModel = this.getAxisModel();\n var percentWindow = this._percentWindow;\n var valueWindow = this._valueWindow;\n\n if (!percentWindow) {\n return;\n }\n\n var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n precision = Math.min(precision, 20);\n var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\n\n if (percentWindow[0] !== 0) {\n rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\n }\n\n if (percentWindow[1] !== 100) {\n rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\n }\n\n rawExtentInfo.freeze();\n };\n\n return AxisProxy;\n}();\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n var dataExtent = [Infinity, -Infinity];\n each(seriesModels, function (seriesModel) {\n unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\n });\n var axisModel = axisProxy.getAxisModel();\n var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\n return [rawExtentResult.min, rawExtentResult.max];\n}\n\nexport default AxisProxy;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport { getAxisMainType } from './helper';\nimport AxisProxy from './AxisProxy';\nvar dataZoomProcessor = {\n getTargetSeries: function (ecModel) {\n function eachAxisModel(cb) {\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n cb(axisDim, axisIndex, axisModel, dataZoomModel);\n });\n });\n }\n\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n axisModel.__dzAxisProxy = null;\n });\n var proxyList = [];\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n if (!axisModel.__dzAxisProxy) {\n axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\n proxyList.push(axisModel.__dzAxisProxy);\n }\n });\n var seriesModelMap = createHashMap();\n each(proxyList, function (axisProxy) {\n each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n seriesModelMap.set(seriesModel.uid, seriesModel);\n });\n });\n return seriesModelMap;\n },\n overallReset: function (ecModel, api) {\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\n });\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\n });\n });\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n var percentRange = axisProxy.getDataPercentWindow();\n var valueRange = axisProxy.getDataValueWindow();\n dataZoomModel.setCalculatedRange({\n start: percentRange[0],\n end: percentRange[1],\n startValue: valueRange[0],\n endValue: valueRange[1]\n });\n }\n });\n }\n};\nexport default dataZoomProcessor;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { findEffectedDataZooms } from './helper';\nimport { each } from 'zrender/lib/core/util';\nexport default function installDataZoomAction(registers) {\n registers.registerAction('dataZoom', function (payload, ecModel) {\n var effectedModels = findEffectedDataZooms(ecModel, payload);\n each(effectedModels, function (dataZoomModel) {\n dataZoomModel.setRawRange({\n start: payload.start,\n end: payload.end,\n startValue: payload.startValue,\n endValue: payload.endValue\n });\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport dataZoomProcessor from './dataZoomProcessor';\nimport installDataZoomAction from './dataZoomAction';\nvar installed = false;\nexport default function installCommon(registers) {\n if (installed) {\n return;\n }\n\n installed = true;\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, dataZoomProcessor);\n installDataZoomAction(registers);\n registers.registerSubTypeDefaulter('dataZoom', function () {\n return 'slider';\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SelectZoomModel from './SelectZoomModel';\nimport SelectZoomView from './SelectZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n registers.registerComponentModel(SelectZoomModel);\n registers.registerComponentView(SelectZoomView);\n installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ToolboxFeature = function () {\n function ToolboxFeature() {}\n\n return ToolboxFeature;\n}();\n\nexport { ToolboxFeature };\nvar features = {};\nexport function registerFeature(name, ctor) {\n features[name] = ctor;\n}\nexport function getFeature(name) {\n return features[name];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as featureManager from './featureManager';\nimport ComponentModel from '../../model/Component';\n\nvar ToolboxModel = function (_super) {\n __extends(ToolboxModel, _super);\n\n function ToolboxModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ToolboxModel.type;\n return _this;\n }\n\n ToolboxModel.prototype.optionUpdated = function () {\n _super.prototype.optionUpdated.apply(this, arguments);\n\n var ecModel = this.ecModel;\n zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n var Feature = featureManager.getFeature(featureName);\n\n if (Feature) {\n if (Feature.getDefaultOption) {\n Feature.defaultOption = Feature.getDefaultOption(ecModel);\n }\n\n zrUtil.merge(featureOpt, Feature.defaultOption);\n }\n });\n };\n\n ToolboxModel.type = 'toolbox';\n ToolboxModel.layoutMode = {\n type: 'box',\n ignoreSize: true\n };\n ToolboxModel.defaultOption = {\n show: true,\n z: 6,\n zlevel: 0,\n orient: 'horizontal',\n left: 'right',\n top: 'top',\n backgroundColor: 'transparent',\n borderColor: '#ccc',\n borderRadius: 0,\n borderWidth: 0,\n padding: 5,\n itemSize: 15,\n itemGap: 8,\n showTitle: true,\n iconStyle: {\n borderColor: '#666',\n color: 'none'\n },\n emphasis: {\n iconStyle: {\n borderColor: '#3E98C5'\n }\n },\n tooltip: {\n show: false\n }\n };\n return ToolboxModel;\n}(ComponentModel);\n\nexport default ToolboxModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getLayoutRect, box as layoutBox, positionElement } from '../../util/layout';\nimport * as formatUtil from '../../util/format';\nimport * as graphic from '../../util/graphic';\nexport function layout(group, componentModel, api) {\n var boxLayoutParams = componentModel.getBoxLayoutParams();\n var padding = componentModel.get('padding');\n var viewportSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n positionElement(group, boxLayoutParams, viewportSize, padding);\n}\nexport function makeBackground(rect, componentModel) {\n var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n var style = componentModel.getItemStyle(['color', 'opacity']);\n style.fill = componentModel.get('backgroundColor');\n rect = new graphic.Rect({\n shape: {\n x: rect.x - padding[3],\n y: rect.y - padding[0],\n width: rect.width + padding[1] + padding[3],\n height: rect.height + padding[0] + padding[2],\n r: componentModel.get('borderRadius')\n },\n style: style,\n silent: true,\n z2: -1\n });\n return rect;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis } from '../../util/states';\nimport Model from '../../model/Model';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as listComponentHelper from '../helper/listComponent';\nimport ComponentView from '../../view/Component';\nimport { ToolboxFeature, getFeature } from './featureManager';\nimport { getUID } from '../../util/component';\nimport ZRText from 'zrender/lib/graphic/Text';\n\nvar ToolboxView = function (_super) {\n __extends(ToolboxView, _super);\n\n function ToolboxView() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\n var group = this.group;\n group.removeAll();\n\n if (!toolboxModel.get('show')) {\n return;\n }\n\n var itemSize = +toolboxModel.get('itemSize');\n var featureOpts = toolboxModel.get('feature') || {};\n var features = this._features || (this._features = {});\n var featureNames = [];\n zrUtil.each(featureOpts, function (opt, name) {\n featureNames.push(name);\n });\n new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute();\n this._featureNames = featureNames;\n\n function processFeature(newIndex, oldIndex) {\n var featureName = featureNames[newIndex];\n var oldName = featureNames[oldIndex];\n var featureOpt = featureOpts[featureName];\n var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n var feature;\n\n if (payload && payload.newTitle != null && payload.featureName === featureName) {\n featureOpt.title = payload.newTitle;\n }\n\n if (featureName && !oldName) {\n if (isUserFeatureName(featureName)) {\n feature = {\n onclick: featureModel.option.onclick,\n featureName: featureName\n };\n } else {\n var Feature = getFeature(featureName);\n\n if (!Feature) {\n return;\n }\n\n feature = new Feature();\n }\n\n features[featureName] = feature;\n } else {\n feature = features[oldName];\n\n if (!feature) {\n return;\n }\n }\n\n feature.uid = getUID('toolbox-feature');\n feature.model = featureModel;\n feature.ecModel = ecModel;\n feature.api = api;\n\n if (feature instanceof ToolboxFeature) {\n if (!featureName && oldName) {\n feature.dispose && feature.dispose(ecModel, api);\n return;\n }\n\n if (!featureModel.get('show') || feature.unusable) {\n feature.remove && feature.remove(ecModel, api);\n return;\n }\n }\n\n createIconPaths(featureModel, feature, featureName);\n\n featureModel.setIconStatus = function (iconName, status) {\n var option = this.option;\n var iconPaths = this.iconPaths;\n option.iconStatus = option.iconStatus || {};\n option.iconStatus[iconName] = status;\n\n if (iconPaths[iconName]) {\n (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\n }\n };\n\n if (feature instanceof ToolboxFeature) {\n if (feature.render) {\n feature.render(featureModel, ecModel, api, payload);\n }\n }\n }\n\n function createIconPaths(featureModel, feature, featureName) {\n var iconStyleModel = featureModel.getModel('iconStyle');\n var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\n var icons = feature instanceof ToolboxFeature && feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n var titles = featureModel.get('title') || {};\n var iconsMap;\n var titlesMap;\n\n if (typeof icons === 'string') {\n iconsMap = {};\n iconsMap[featureName] = icons;\n } else {\n iconsMap = icons;\n }\n\n if (typeof titles === 'string') {\n titlesMap = {};\n titlesMap[featureName] = titles;\n } else {\n titlesMap = titles;\n }\n\n var iconPaths = featureModel.iconPaths = {};\n zrUtil.each(iconsMap, function (iconStr, iconName) {\n var path = graphic.createIcon(iconStr, {}, {\n x: -itemSize / 2,\n y: -itemSize / 2,\n width: itemSize,\n height: itemSize\n });\n path.setStyle(iconStyleModel.getItemStyle());\n var pathEmphasisState = path.ensureState('emphasis');\n pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\n var textContent = new ZRText({\n style: {\n text: titlesMap[iconName],\n align: iconStyleEmphasisModel.get('textAlign'),\n borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\n padding: iconStyleEmphasisModel.get('textPadding'),\n fill: null\n },\n ignore: true\n });\n path.setTextContent(textContent);\n var tooltipModel = toolboxModel.getModel('tooltip');\n\n if (tooltipModel && tooltipModel.get('show')) {\n path.tooltip = zrUtil.extend({\n content: titlesMap[iconName],\n formatter: tooltipModel.get('formatter', true) || function () {\n return titlesMap[iconName];\n },\n formatterParams: {\n componentType: 'toolbox',\n name: iconName,\n title: titlesMap[iconName],\n $vars: ['name', 'title']\n },\n position: tooltipModel.get('position', true) || 'bottom'\n }, tooltipModel.option);\n }\n\n path.__title = titlesMap[iconName];\n path.on('mouseover', function () {\n var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n var defaultTextPosition = toolboxModel.get('orient') === 'vertical' ? toolboxModel.get('right') == null ? 'right' : 'left' : toolboxModel.get('bottom') == null ? 'bottom' : 'top';\n textContent.setStyle({\n fill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000',\n backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\n });\n path.setTextConfig({\n position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\n });\n textContent.ignore = !toolboxModel.get('showTitle');\n enterEmphasis(this);\n }).on('mouseout', function () {\n if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\n leaveEmphasis(this);\n }\n\n textContent.hide();\n });\n (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\n group.add(path);\n path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n iconPaths[iconName] = path;\n });\n }\n\n listComponentHelper.layout(group, toolboxModel, api);\n group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel));\n group.eachChild(function (icon) {\n var titleText = icon.__title;\n var emphasisState = icon.ensureState('emphasis');\n var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\n var textContent = icon.getTextContent();\n var emphasisTextState = textContent && textContent.states.emphasis;\n\n if (emphasisTextState && !zrUtil.isFunction(emphasisTextState) && titleText) {\n var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\n var rect = textContain.getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\n var offsetX = icon.x + group.x;\n var offsetY = icon.y + group.y + itemSize;\n var needPutOnTop = false;\n\n if (offsetY + rect.height > api.getHeight()) {\n emphasisTextConfig.position = 'top';\n needPutOnTop = true;\n }\n\n var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8;\n\n if (offsetX + rect.width / 2 > api.getWidth()) {\n emphasisTextConfig.position = ['100%', topOffset];\n emphasisTextStyle.align = 'right';\n } else if (offsetX - rect.width / 2 < 0) {\n emphasisTextConfig.position = [0, topOffset];\n emphasisTextStyle.align = 'left';\n }\n }\n });\n };\n\n ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\n zrUtil.each(this._features, function (feature) {\n feature instanceof ToolboxFeature && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n });\n };\n\n ToolboxView.prototype.remove = function (ecModel, api) {\n zrUtil.each(this._features, function (feature) {\n feature instanceof ToolboxFeature && feature.remove && feature.remove(ecModel, api);\n });\n this.group.removeAll();\n };\n\n ToolboxView.prototype.dispose = function (ecModel, api) {\n zrUtil.each(this._features, function (feature) {\n feature instanceof ToolboxFeature && feature.dispose && feature.dispose(ecModel, api);\n });\n };\n\n ToolboxView.type = 'toolbox';\n return ToolboxView;\n}(ComponentView);\n\nfunction isUserFeatureName(featureName) {\n return featureName.indexOf('my') === 0;\n}\n\nexport default ToolboxView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport env from 'zrender/lib/core/env';\nimport { ToolboxFeature } from '../featureManager';\n\nvar SaveAsImage = function (_super) {\n __extends(SaveAsImage, _super);\n\n function SaveAsImage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n SaveAsImage.prototype.onclick = function (ecModel, api) {\n var model = this.model;\n var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n var isSvg = api.getZr().painter.getType() === 'svg';\n var type = isSvg ? 'svg' : model.get('type', true) || 'png';\n var url = api.getConnectedDataURL({\n type: type,\n backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n connectedBackgroundColor: model.get('connectedBackgroundColor'),\n excludeComponents: model.get('excludeComponents'),\n pixelRatio: model.get('pixelRatio')\n });\n\n if (typeof MouseEvent === 'function' && (env.browser.newEdge || !env.browser.ie && !env.browser.edge)) {\n var $a = document.createElement('a');\n $a.download = title + '.' + type;\n $a.target = '_blank';\n $a.href = url;\n var evt = new MouseEvent('click', {\n view: document.defaultView,\n bubbles: true,\n cancelable: false\n });\n $a.dispatchEvent(evt);\n } else {\n if (window.navigator.msSaveOrOpenBlob || isSvg) {\n var parts = url.split(',');\n var base64Encoded = parts[0].indexOf('base64') > -1;\n var bstr = isSvg ? decodeURIComponent(parts[1]) : parts[1];\n base64Encoded && (bstr = atob(bstr));\n var filename = title + '.' + type;\n\n if (window.navigator.msSaveOrOpenBlob) {\n var n = bstr.length;\n var u8arr = new Uint8Array(n);\n\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n var blob = new Blob([u8arr]);\n window.navigator.msSaveOrOpenBlob(blob, filename);\n } else {\n var frame = document.createElement('iframe');\n document.body.appendChild(frame);\n var cw = frame.contentWindow;\n var doc = cw.document;\n doc.open('image/svg+xml', 'replace');\n doc.write(bstr);\n doc.close();\n cw.focus();\n doc.execCommand('SaveAs', true, filename);\n document.body.removeChild(frame);\n }\n } else {\n var lang = model.get('lang');\n var html = '' + '<body style=\"margin:0;\">' + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + (lang && lang[0] || '') + '\" />' + '</body>';\n var tab = window.open();\n tab.document.write(html);\n tab.document.title = title;\n }\n }\n };\n\n SaveAsImage.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\n type: 'png',\n connectedBackgroundColor: '#fff',\n name: '',\n excludeComponents: ['toolbox'],\n pixelRatio: 1,\n lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\n };\n return defaultOption;\n };\n\n return SaveAsImage;\n}(ToolboxFeature);\n\nSaveAsImage.prototype.unusable = !env.canvasSupported;\nexport default SaveAsImage;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { SINGLE_REFERRING } from '../../../util/model';\nvar INNER_STACK_KEYWORD = '__ec_magicType_stack__';\nvar ICON_TYPES = ['line', 'bar', 'stack'];\nvar TITLE_TYPES = ['line', 'bar', 'stack', 'tiled'];\nvar radioTypes = [['line', 'bar'], ['stack']];\n\nvar MagicType = function (_super) {\n __extends(MagicType, _super);\n\n function MagicType() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n MagicType.prototype.getIcons = function () {\n var model = this.model;\n var availableIcons = model.get('icon');\n var icons = {};\n zrUtil.each(model.get('type'), function (type) {\n if (availableIcons[type]) {\n icons[type] = availableIcons[type];\n }\n });\n return icons;\n };\n\n MagicType.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n type: [],\n icon: {\n line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\n },\n title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\n option: {},\n seriesIndex: {}\n };\n return defaultOption;\n };\n\n MagicType.prototype.onclick = function (ecModel, api, type) {\n var model = this.model;\n var seriesIndex = model.get(['seriesIndex', type]);\n\n if (!seriesOptGenreator[type]) {\n return;\n }\n\n var newOption = {\n series: []\n };\n\n var generateNewSeriesTypes = function (seriesModel) {\n var seriesType = seriesModel.subType;\n var seriesId = seriesModel.id;\n var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n if (newSeriesOpt) {\n zrUtil.defaults(newSeriesOpt, seriesModel.option);\n newOption.series.push(newSeriesOpt);\n }\n\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n if (categoryAxis) {\n var axisDim = categoryAxis.dim;\n var axisType = axisDim + 'Axis';\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n var axisIndex = axisModel.componentIndex;\n newOption[axisType] = newOption[axisType] || [];\n\n for (var i = 0; i <= axisIndex; i++) {\n newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n }\n\n newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n }\n }\n };\n\n zrUtil.each(radioTypes, function (radio) {\n if (zrUtil.indexOf(radio, type) >= 0) {\n zrUtil.each(radio, function (item) {\n model.setIconStatus(item, 'normal');\n });\n }\n });\n model.setIconStatus(type, 'emphasis');\n ecModel.eachComponent({\n mainType: 'series',\n query: seriesIndex == null ? null : {\n seriesIndex: seriesIndex\n }\n }, generateNewSeriesTypes);\n var newTitle;\n\n if (type === 'stack') {\n newTitle = zrUtil.merge({\n stack: model.option.title.tiled,\n tiled: model.option.title.stack\n }, model.option.title);\n }\n\n api.dispatchAction({\n type: 'changeMagicType',\n currentType: type,\n newOption: newOption,\n newTitle: newTitle,\n featureName: 'magicType'\n });\n };\n\n return MagicType;\n}(ToolboxFeature);\n\nvar seriesOptGenreator = {\n 'line': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'bar') {\n return zrUtil.merge({\n id: seriesId,\n type: 'line',\n data: seriesModel.get('data'),\n stack: seriesModel.get('stack'),\n markPoint: seriesModel.get('markPoint'),\n markLine: seriesModel.get('markLine')\n }, model.get(['option', 'line']) || {}, true);\n }\n },\n 'bar': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'line') {\n return zrUtil.merge({\n id: seriesId,\n type: 'bar',\n data: seriesModel.get('data'),\n stack: seriesModel.get('stack'),\n markPoint: seriesModel.get('markPoint'),\n markLine: seriesModel.get('markLine')\n }, model.get(['option', 'bar']) || {}, true);\n }\n },\n 'stack': function (seriesType, seriesId, seriesModel, model) {\n var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\n\n if (seriesType === 'line' || seriesType === 'bar') {\n model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\n return zrUtil.merge({\n id: seriesId,\n stack: isStack ? '' : INNER_STACK_KEYWORD\n }, model.get(['option', 'stack']) || {}, true);\n }\n }\n};\necharts.registerAction({\n type: 'changeMagicType',\n event: 'magicTypeChanged',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n ecModel.mergeOption(payload.newOption);\n});\nexport default MagicType;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { addEventListener } from 'zrender/lib/core/event';\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n\nfunction groupSeries(ecModel) {\n var seriesGroupByCategoryAxis = {};\n var otherSeries = [];\n var meta = [];\n ecModel.eachRawSeries(function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n var baseAxis = coordSys.getBaseAxis();\n\n if (baseAxis.type === 'category') {\n var key = baseAxis.dim + '_' + baseAxis.index;\n\n if (!seriesGroupByCategoryAxis[key]) {\n seriesGroupByCategoryAxis[key] = {\n categoryAxis: baseAxis,\n valueAxis: coordSys.getOtherAxis(baseAxis),\n series: []\n };\n meta.push({\n axisDim: baseAxis.dim,\n axisIndex: baseAxis.index\n });\n }\n\n seriesGroupByCategoryAxis[key].series.push(seriesModel);\n } else {\n otherSeries.push(seriesModel);\n }\n } else {\n otherSeries.push(seriesModel);\n }\n });\n return {\n seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n other: otherSeries,\n meta: meta\n };\n}\n\nfunction assembleSeriesWithCategoryAxis(groups) {\n var tables = [];\n zrUtil.each(groups, function (group, key) {\n var categoryAxis = group.categoryAxis;\n var valueAxis = group.valueAxis;\n var valueAxisDim = valueAxis.dim;\n var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n return series.name;\n }));\n var columns = [categoryAxis.model.getCategories()];\n zrUtil.each(group.series, function (series) {\n var rawData = series.getRawData();\n columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\n return val;\n }));\n });\n var lines = [headers.join(ITEM_SPLITER)];\n\n for (var i = 0; i < columns[0].length; i++) {\n var items = [];\n\n for (var j = 0; j < columns.length; j++) {\n items.push(columns[j][i]);\n }\n\n lines.push(items.join(ITEM_SPLITER));\n }\n\n tables.push(lines.join('\\n'));\n });\n return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction assembleOtherSeries(series) {\n return zrUtil.map(series, function (series) {\n var data = series.getRawData();\n var lines = [series.name];\n var vals = [];\n data.each(data.dimensions, function () {\n var argLen = arguments.length;\n var dataIndex = arguments[argLen - 1];\n var name = data.getName(dataIndex);\n\n for (var i = 0; i < argLen - 1; i++) {\n vals[i] = arguments[i];\n }\n\n lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n });\n return lines.join('\\n');\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction getContentFromModel(ecModel) {\n var result = groupSeries(ecModel);\n return {\n value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n return !!str.replace(/[\\n\\t\\s]/g, '');\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n meta: result.meta\n };\n}\n\nfunction trim(str) {\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n\nfunction isTSVFormat(block) {\n var firstLine = block.slice(0, block.indexOf('\\n'));\n\n if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n return true;\n }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n\nfunction parseTSVContents(tsv) {\n var tsvLines = tsv.split(/\\n+/g);\n var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n var categories = [];\n var series = zrUtil.map(headers, function (header) {\n return {\n name: header,\n data: []\n };\n });\n\n for (var i = 0; i < tsvLines.length; i++) {\n var items = trim(tsvLines[i]).split(itemSplitRegex);\n categories.push(items.shift());\n\n for (var j = 0; j < items.length; j++) {\n series[j] && (series[j].data[i] = items[j]);\n }\n }\n\n return {\n series: series,\n categories: categories\n };\n}\n\nfunction parseListContents(str) {\n var lines = str.split(/\\n+/g);\n var seriesName = trim(lines.shift());\n var data = [];\n\n for (var i = 0; i < lines.length; i++) {\n var line = trim(lines[i]);\n\n if (!line) {\n continue;\n }\n\n var items = line.split(itemSplitRegex);\n var name_1 = '';\n var value = void 0;\n var hasName = false;\n\n if (isNaN(items[0])) {\n hasName = true;\n name_1 = items[0];\n items = items.slice(1);\n data[i] = {\n name: name_1,\n value: []\n };\n value = data[i].value;\n } else {\n value = data[i] = [];\n }\n\n for (var j = 0; j < items.length; j++) {\n value.push(+items[j]);\n }\n\n if (value.length === 1) {\n hasName ? data[i].value = value[0] : data[i] = value[0];\n }\n }\n\n return {\n name: seriesName,\n data: data\n };\n}\n\nfunction parseContents(str, blockMetaList) {\n var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n var newOption = {\n series: []\n };\n zrUtil.each(blocks, function (block, idx) {\n if (isTSVFormat(block)) {\n var result = parseTSVContents(block);\n var blockMeta = blockMetaList[idx];\n var axisKey = blockMeta.axisDim + 'Axis';\n\n if (blockMeta) {\n newOption[axisKey] = newOption[axisKey] || [];\n newOption[axisKey][blockMeta.axisIndex] = {\n data: result.categories\n };\n newOption.series = newOption.series.concat(result.series);\n }\n } else {\n var result = parseListContents(block);\n newOption.series.push(result);\n }\n });\n return newOption;\n}\n\nvar DataView = function (_super) {\n __extends(DataView, _super);\n\n function DataView() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n DataView.prototype.onclick = function (ecModel, api) {\n var container = api.getDom();\n var model = this.model;\n\n if (this._dom) {\n container.removeChild(this._dom);\n }\n\n var root = document.createElement('div');\n root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\n root.style.backgroundColor = model.get('backgroundColor') || '#fff';\n var header = document.createElement('h4');\n var lang = model.get('lang') || [];\n header.innerHTML = lang[0] || model.get('title');\n header.style.cssText = 'margin: 10px 20px;';\n header.style.color = model.get('textColor');\n var viewMain = document.createElement('div');\n var textarea = document.createElement('textarea');\n viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\n var optionToContent = model.get('optionToContent');\n var contentToOption = model.get('contentToOption');\n var result = getContentFromModel(ecModel);\n\n if (typeof optionToContent === 'function') {\n var htmlOrDom = optionToContent(api.getOption());\n\n if (typeof htmlOrDom === 'string') {\n viewMain.innerHTML = htmlOrDom;\n } else if (zrUtil.isDom(htmlOrDom)) {\n viewMain.appendChild(htmlOrDom);\n }\n } else {\n viewMain.appendChild(textarea);\n textarea.readOnly = model.get('readOnly');\n textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\n textarea.style.color = model.get('textColor');\n textarea.style.borderColor = model.get('textareaBorderColor');\n textarea.style.backgroundColor = model.get('textareaColor');\n textarea.value = result.value;\n }\n\n var blockMetaList = result.meta;\n var buttonContainer = document.createElement('div');\n buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\n var buttonStyle = 'float:right;margin-right:20px;border:none;' + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n var closeButton = document.createElement('div');\n var refreshButton = document.createElement('div');\n buttonStyle += ';background-color:' + model.get('buttonColor');\n buttonStyle += ';color:' + model.get('buttonTextColor');\n var self = this;\n\n function close() {\n container.removeChild(root);\n self._dom = null;\n }\n\n addEventListener(closeButton, 'click', close);\n addEventListener(refreshButton, 'click', function () {\n if (contentToOption == null && optionToContent != null || contentToOption != null && optionToContent == null) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.');\n }\n\n close();\n return;\n }\n\n var newOption;\n\n try {\n if (typeof contentToOption === 'function') {\n newOption = contentToOption(viewMain, api.getOption());\n } else {\n newOption = parseContents(textarea.value, blockMetaList);\n }\n } catch (e) {\n close();\n throw new Error('Data view format error ' + e);\n }\n\n if (newOption) {\n api.dispatchAction({\n type: 'changeDataView',\n newOption: newOption\n });\n }\n\n close();\n });\n closeButton.innerHTML = lang[1];\n refreshButton.innerHTML = lang[2];\n refreshButton.style.cssText = buttonStyle;\n closeButton.style.cssText = buttonStyle;\n !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n buttonContainer.appendChild(closeButton);\n root.appendChild(header);\n root.appendChild(viewMain);\n root.appendChild(buttonContainer);\n viewMain.style.height = container.clientHeight - 80 + 'px';\n container.appendChild(root);\n this._dom = root;\n };\n\n DataView.prototype.remove = function (ecModel, api) {\n this._dom && api.getDom().removeChild(this._dom);\n };\n\n DataView.prototype.dispose = function (ecModel, api) {\n this.remove(ecModel, api);\n };\n\n DataView.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n readOnly: false,\n optionToContent: null,\n contentToOption: null,\n icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\n lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\n backgroundColor: '#fff',\n textColor: '#000',\n textareaColor: '#fff',\n textareaBorderColor: '#333',\n buttonColor: '#c23531',\n buttonTextColor: '#fff'\n };\n return defaultOption;\n };\n\n return DataView;\n}(ToolboxFeature);\n\nfunction tryMergeDataOption(newData, originalData) {\n return zrUtil.map(newData, function (newVal, idx) {\n var original = originalData && originalData[idx];\n\n if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n var newValIsObject = zrUtil.isObject(newVal) && !zrUtil.isArray(newVal);\n\n if (!newValIsObject) {\n newVal = {\n value: newVal\n };\n }\n\n var shouldDeleteName = original.name != null && newVal.name == null;\n newVal = zrUtil.defaults(newVal, original);\n shouldDeleteName && delete newVal.name;\n return newVal;\n } else {\n return newVal;\n }\n });\n}\n\necharts.registerAction({\n type: 'changeDataView',\n event: 'dataViewChanged',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n var newSeriesOptList = [];\n zrUtil.each(payload.newOption.series, function (seriesOpt) {\n var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n if (!seriesModel) {\n newSeriesOptList.push(zrUtil.extend({\n type: 'scatter'\n }, seriesOpt));\n } else {\n var originalData = seriesModel.get('data');\n newSeriesOptList.push({\n name: seriesOpt.name,\n data: tryMergeDataOption(seriesOpt.data, originalData)\n });\n }\n });\n ecModel.mergeOption(zrUtil.defaults({\n series: newSeriesOptList\n }, payload.newOption));\n});\nexport default DataView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar each = zrUtil.each;\nvar inner = makeInner();\nexport function push(ecModel, newSnapshot) {\n var storedSnapshots = getStoreSnapshots(ecModel);\n each(newSnapshot, function (batchItem, dataZoomId) {\n var i = storedSnapshots.length - 1;\n\n for (; i >= 0; i--) {\n var snapshot = storedSnapshots[i];\n\n if (snapshot[dataZoomId]) {\n break;\n }\n }\n\n if (i < 0) {\n var dataZoomModel = ecModel.queryComponents({\n mainType: 'dataZoom',\n subType: 'select',\n id: dataZoomId\n })[0];\n\n if (dataZoomModel) {\n var percentRange = dataZoomModel.getPercentRange();\n storedSnapshots[0][dataZoomId] = {\n dataZoomId: dataZoomId,\n start: percentRange[0],\n end: percentRange[1]\n };\n }\n }\n });\n storedSnapshots.push(newSnapshot);\n}\nexport function pop(ecModel) {\n var storedSnapshots = getStoreSnapshots(ecModel);\n var head = storedSnapshots[storedSnapshots.length - 1];\n storedSnapshots.length > 1 && storedSnapshots.pop();\n var snapshot = {};\n each(head, function (batchItem, dataZoomId) {\n for (var i = storedSnapshots.length - 1; i >= 0; i--) {\n batchItem = storedSnapshots[i][dataZoomId];\n\n if (batchItem) {\n snapshot[dataZoomId] = batchItem;\n break;\n }\n }\n });\n return snapshot;\n}\nexport function clear(ecModel) {\n inner(ecModel).snapshots = null;\n}\nexport function count(ecModel) {\n return getStoreSnapshots(ecModel).length;\n}\n\nfunction getStoreSnapshots(ecModel) {\n var store = inner(ecModel);\n\n if (!store.snapshots) {\n store.snapshots = [{}];\n }\n\n return store.snapshots;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as history from '../../dataZoom/history';\nimport { ToolboxFeature } from '../featureManager';\n\nvar RestoreOption = function (_super) {\n __extends(RestoreOption, _super);\n\n function RestoreOption() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n RestoreOption.prototype.onclick = function (ecModel, api) {\n history.clear(ecModel);\n api.dispatchAction({\n type: 'restore',\n from: this.uid\n });\n };\n\n RestoreOption.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n title: ecModel.getLocale(['toolbox', 'restore', 'title'])\n };\n return defaultOption;\n };\n\n return RestoreOption;\n}(ToolboxFeature);\n\necharts.registerAction({\n type: 'restore',\n event: 'restore',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n ecModel.resetOption('recreate');\n});\nexport default RestoreOption;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, indexOf, curry, assert, map, createHashMap } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as brushHelper from './brushHelper';\nimport { parseFinder as modelUtilParseFinder } from '../../util/model';\nvar COORD_CONVERTS = ['dataToPoint', 'pointToData'];\nvar INCLUDE_FINDER_MAIN_TYPES = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap'];\n\nvar BrushTargetManager = function () {\n function BrushTargetManager(finder, ecModel, opt) {\n var _this = this;\n\n this._targetInfoList = [];\n var foundCpts = parseFinder(ecModel, finder);\n each(targetInfoBuilders, function (builder, type) {\n if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\n builder(foundCpts, _this._targetInfoList);\n }\n });\n }\n\n BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\n this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n (area.coordRanges || (area.coordRanges = [])).push(coordRange);\n\n if (!area.coordRange) {\n area.coordRange = coordRange;\n var result = coordConvert[area.brushType](0, coordSys, coordRange);\n area.__rangeOffset = {\n offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\n xyMinMax: result.xyMinMax\n };\n }\n });\n return areas;\n };\n\n BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\n each(areas, function (area) {\n var targetInfo = this.findTargetInfo(area, ecModel);\n\n if (targetInfo && targetInfo !== true) {\n each(targetInfo.coordSyses, function (coordSys) {\n var result = coordConvert[area.brushType](1, coordSys, area.range);\n cb(area, result.values, coordSys, ecModel);\n });\n }\n }, this);\n };\n\n BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\n each(areas, function (area) {\n var targetInfo = this.findTargetInfo(area, ecModel);\n\n if (process.env.NODE_ENV !== 'production') {\n assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\n assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\n }\n\n area.range = area.range || [];\n\n if (targetInfo && targetInfo !== true) {\n area.panelId = targetInfo.panelId;\n var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\n var rangeOffset = area.__rangeOffset;\n area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values;\n }\n }, this);\n };\n\n BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\n return map(this._targetInfoList, function (targetInfo) {\n var rect = targetInfo.getPanelRect();\n return {\n panelId: targetInfo.panelId,\n defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\n clipPath: brushHelper.makeRectPanelClipPath(rect),\n isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\n getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect)\n };\n });\n };\n\n BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\n var targetInfo = this.findTargetInfo(area, ecModel);\n return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0;\n };\n\n BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\n var targetInfoList = this._targetInfoList;\n var foundCpts = parseFinder(ecModel, area);\n\n for (var i = 0; i < targetInfoList.length; i++) {\n var targetInfo = targetInfoList[i];\n var areaPanelId = area.panelId;\n\n if (areaPanelId) {\n if (targetInfo.panelId === areaPanelId) {\n return targetInfo;\n }\n } else {\n for (var j = 0; j < targetInfoMatchers.length; j++) {\n if (targetInfoMatchers[j](foundCpts, targetInfo)) {\n return targetInfo;\n }\n }\n }\n }\n\n return true;\n };\n\n return BrushTargetManager;\n}();\n\nfunction formatMinMax(minMax) {\n minMax[0] > minMax[1] && minMax.reverse();\n return minMax;\n}\n\nfunction parseFinder(ecModel, finder) {\n return modelUtilParseFinder(ecModel, finder, {\n includeMainTypes: INCLUDE_FINDER_MAIN_TYPES\n });\n}\n\nvar targetInfoBuilders = {\n grid: function (foundCpts, targetInfoList) {\n var xAxisModels = foundCpts.xAxisModels;\n var yAxisModels = foundCpts.yAxisModels;\n var gridModels = foundCpts.gridModels;\n var gridModelMap = createHashMap();\n var xAxesHas = {};\n var yAxesHas = {};\n\n if (!xAxisModels && !yAxisModels && !gridModels) {\n return;\n }\n\n each(xAxisModels, function (axisModel) {\n var gridModel = axisModel.axis.grid.model;\n gridModelMap.set(gridModel.id, gridModel);\n xAxesHas[gridModel.id] = true;\n });\n each(yAxisModels, function (axisModel) {\n var gridModel = axisModel.axis.grid.model;\n gridModelMap.set(gridModel.id, gridModel);\n yAxesHas[gridModel.id] = true;\n });\n each(gridModels, function (gridModel) {\n gridModelMap.set(gridModel.id, gridModel);\n xAxesHas[gridModel.id] = true;\n yAxesHas[gridModel.id] = true;\n });\n gridModelMap.each(function (gridModel) {\n var grid = gridModel.coordinateSystem;\n var cartesians = [];\n each(grid.getCartesians(), function (cartesian, index) {\n if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0 || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\n cartesians.push(cartesian);\n }\n });\n targetInfoList.push({\n panelId: 'grid--' + gridModel.id,\n gridModel: gridModel,\n coordSysModel: gridModel,\n coordSys: cartesians[0],\n coordSyses: cartesians,\n getPanelRect: panelRectBuilders.grid,\n xAxisDeclared: xAxesHas[gridModel.id],\n yAxisDeclared: yAxesHas[gridModel.id]\n });\n });\n },\n geo: function (foundCpts, targetInfoList) {\n each(foundCpts.geoModels, function (geoModel) {\n var coordSys = geoModel.coordinateSystem;\n targetInfoList.push({\n panelId: 'geo--' + geoModel.id,\n geoModel: geoModel,\n coordSysModel: geoModel,\n coordSys: coordSys,\n coordSyses: [coordSys],\n getPanelRect: panelRectBuilders.geo\n });\n });\n }\n};\nvar targetInfoMatchers = [function (foundCpts, targetInfo) {\n var xAxisModel = foundCpts.xAxisModel;\n var yAxisModel = foundCpts.yAxisModel;\n var gridModel = foundCpts.gridModel;\n !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\n !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\n return gridModel && gridModel === targetInfo.gridModel;\n}, function (foundCpts, targetInfo) {\n var geoModel = foundCpts.geoModel;\n return geoModel && geoModel === targetInfo.geoModel;\n}];\nvar panelRectBuilders = {\n grid: function () {\n return this.coordSys.master.getRect().clone();\n },\n geo: function () {\n var coordSys = this.coordSys;\n var rect = coordSys.getBoundingRect().clone();\n rect.applyTransform(graphic.getTransform(coordSys));\n return rect;\n }\n};\nvar coordConvert = {\n lineX: curry(axisConvert, 0),\n lineY: curry(axisConvert, 1),\n rect: function (to, coordSys, rangeOrCoordRange) {\n var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\n var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\n var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])];\n return {\n values: values,\n xyMinMax: values\n };\n },\n polygon: function (to, coordSys, rangeOrCoordRange) {\n var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\n var values = map(rangeOrCoordRange, function (item) {\n var p = coordSys[COORD_CONVERTS[to]](item);\n xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\n xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\n xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\n xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\n return p;\n });\n return {\n values: values,\n xyMinMax: xyMinMax\n };\n }\n};\n\nfunction axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\n if (process.env.NODE_ENV !== 'production') {\n assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\n }\n\n var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\n var values = formatMinMax(map([0, 1], function (i) {\n return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i])) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\n }));\n var xyMinMax = [];\n xyMinMax[axisNameIndex] = values;\n xyMinMax[1 - axisNameIndex] = [NaN, NaN];\n return {\n values: values,\n xyMinMax: xyMinMax\n };\n}\n\nvar diffProcessor = {\n lineX: curry(axisDiffProcessor, 0),\n lineY: curry(axisDiffProcessor, 1),\n rect: function (values, refer, scales) {\n return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]];\n },\n polygon: function (values, refer, scales) {\n return map(values, function (item, idx) {\n return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\n });\n }\n};\n\nfunction axisDiffProcessor(axisNameIndex, values, refer, scales) {\n return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]];\n}\n\nfunction getScales(xyMinMaxCurr, xyMinMaxOrigin) {\n var sizeCurr = getSize(xyMinMaxCurr);\n var sizeOrigin = getSize(xyMinMaxOrigin);\n var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\n isNaN(scales[0]) && (scales[0] = 1);\n isNaN(scales[1]) && (scales[1] = 1);\n return scales;\n}\n\nfunction getSize(xyMinMax) {\n return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN];\n}\n\nexport default BrushTargetManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../../helper/BrushController';\nimport BrushTargetManager from '../../helper/BrushTargetManager';\nimport * as history from '../../dataZoom/history';\nimport sliderMove from '../../helper/sliderMove';\nimport { ToolboxFeature } from '../featureManager';\nimport { makeInternalComponentId, parseFinder } from '../../../util/model';\nimport { registerInternalOptionCreator } from '../../../model/internalComponentCreator';\nvar each = zrUtil.each;\nvar DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\nvar ICON_TYPES = ['zoom', 'back'];\n\nvar DataZoomFeature = function (_super) {\n __extends(DataZoomFeature, _super);\n\n function DataZoomFeature() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\n if (!this.brushController) {\n this.brushController = new BrushController(api.getZr());\n this.brushController.on('brush', zrUtil.bind(this._onBrush, this)).mount();\n }\n\n updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n updateBackBtnStatus(featureModel, ecModel);\n };\n\n DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\n handlers[type].call(this);\n };\n\n DataZoomFeature.prototype.remove = function (ecModel, api) {\n this.brushController.unmount();\n };\n\n DataZoomFeature.prototype.dispose = function (ecModel, api) {\n this.brushController.dispose();\n };\n\n DataZoomFeature.prototype._onBrush = function (eventParam) {\n var areas = eventParam.areas;\n\n if (!eventParam.isEnd || !areas.length) {\n return;\n }\n\n var snapshot = {};\n var ecModel = this.ecModel;\n this.brushController.updateCovers([]);\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, {\n include: ['grid']\n });\n brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n if (coordSys.type !== 'cartesian2d') {\n return;\n }\n\n var brushType = area.brushType;\n\n if (brushType === 'rect') {\n setBatch('x', coordSys, coordRange[0]);\n setBatch('y', coordSys, coordRange[1]);\n } else {\n setBatch({\n lineX: 'x',\n lineY: 'y'\n }[brushType], coordSys, coordRange);\n }\n });\n history.push(ecModel, snapshot);\n\n this._dispatchZoomAction(snapshot);\n\n function setBatch(dimName, coordSys, minMax) {\n var axis = coordSys.getAxis(dimName);\n var axisModel = axis.model;\n var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n }\n\n dataZoomModel && (snapshot[dataZoomModel.id] = {\n dataZoomId: dataZoomModel.id,\n startValue: minMax[0],\n endValue: minMax[1]\n });\n }\n\n function findDataZoom(dimName, axisModel, ecModel) {\n var found;\n ecModel.eachComponent({\n mainType: 'dataZoom',\n subType: 'select'\n }, function (dzModel) {\n var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n has && (found = dzModel);\n });\n return found;\n }\n };\n\n ;\n\n DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\n var batch = [];\n each(snapshot, function (batchItem, dataZoomId) {\n batch.push(zrUtil.clone(batchItem));\n });\n batch.length && this.api.dispatchAction({\n type: 'dataZoom',\n from: this.uid,\n batch: batch\n });\n };\n\n DataZoomFeature.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n filterMode: 'filter',\n icon: {\n zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n },\n title: ecModel.getLocale(['toolbox', 'dataZoom', 'title']),\n brushStyle: {\n borderWidth: 0,\n color: 'rgba(210,219,238,0.2)'\n }\n };\n return defaultOption;\n };\n\n return DataZoomFeature;\n}(ToolboxFeature);\n\nvar handlers = {\n zoom: function () {\n var nextActive = !this.isZoomActive;\n this.api.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'dataZoomSelect',\n dataZoomSelectActive: nextActive\n });\n },\n back: function () {\n this._dispatchZoomAction(history.pop(this.ecModel));\n }\n};\n\nfunction makeAxisFinder(dzFeatureModel) {\n var setting = {\n xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\n yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\n xAxisId: dzFeatureModel.get('xAxisId', true),\n yAxisId: dzFeatureModel.get('yAxisId', true)\n };\n\n if (setting.xAxisIndex == null && setting.xAxisId == null) {\n setting.xAxisIndex = 'all';\n }\n\n if (setting.yAxisIndex == null && setting.yAxisId == null) {\n setting.yAxisIndex = 'all';\n }\n\n return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n var zoomActive = view.isZoomActive;\n\n if (payload && payload.type === 'takeGlobalCursor') {\n zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n }\n\n view.isZoomActive = zoomActive;\n featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, {\n include: ['grid']\n });\n var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\n return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n });\n view.brushController.setPanels(panels).enableBrush(zoomActive && panels.length ? {\n brushType: 'auto',\n brushStyle: featureModel.getModel('brushStyle').getItemStyle()\n } : false);\n}\n\nregisterInternalOptionCreator('dataZoom', function (ecModel) {\n var toolboxModel = ecModel.getComponent('toolbox', 0);\n\n if (!toolboxModel) {\n return;\n }\n\n var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\n var dzOptions = [];\n var finder = makeAxisFinder(dzFeatureModel);\n var finderResult = parseFinder(ecModel, finder);\n each(finderResult.xAxisModels, function (axisModel) {\n return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex');\n });\n each(finderResult.yAxisModels, function (axisModel) {\n return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex');\n });\n\n function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\n var axisIndex = axisModel.componentIndex;\n var newOpt = {\n type: 'select',\n $fromToolbox: true,\n filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\n id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\n };\n newOpt[axisIndexPropName] = axisIndex;\n dzOptions.push(newOpt);\n }\n\n return dzOptions;\n});\nexport default DataZoomFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomSelect } from '../../component/dataZoom/installDataZoomSelect';\nimport ToolboxModel from './ToolboxModel';\nimport ToolboxView from './ToolboxView';\nimport { registerFeature } from './featureManager';\nimport SaveAsImage from './feature/SaveAsImage';\nimport MagicType from './feature/MagicType';\nimport DataView from './feature/DataView';\nimport Restore from './feature/Restore';\nimport DataZoom from './feature/DataZoom';\nexport function install(registers) {\n registers.registerComponentModel(ToolboxModel);\n registers.registerComponentView(ToolboxView);\n registerFeature('saveAsImage', SaveAsImage);\n registerFeature('magicType', MagicType);\n registerFeature('dataView', DataView);\n registerFeature('dataZoom', DataZoom);\n registerFeature('restore', Restore);\n use(installDataZoomSelect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar TooltipModel = function (_super) {\n __extends(TooltipModel, _super);\n\n function TooltipModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TooltipModel.type;\n return _this;\n }\n\n TooltipModel.type = 'tooltip';\n TooltipModel.dependencies = ['axisPointer'];\n TooltipModel.defaultOption = {\n zlevel: 0,\n z: 60,\n show: true,\n showContent: true,\n trigger: 'item',\n triggerOn: 'mousemove|click',\n alwaysShowContent: false,\n displayMode: 'single',\n renderMode: 'auto',\n confine: null,\n showDelay: 0,\n hideDelay: 100,\n transitionDuration: 0.4,\n enterable: false,\n backgroundColor: '#fff',\n shadowBlur: 10,\n shadowColor: 'rgba(0, 0, 0, .2)',\n shadowOffsetX: 1,\n shadowOffsetY: 2,\n borderRadius: 4,\n borderWidth: 1,\n padding: null,\n extraCssText: '',\n axisPointer: {\n type: 'line',\n axis: 'auto',\n animation: 'auto',\n animationDurationUpdate: 200,\n animationEasingUpdate: 'exponentialOut',\n crossStyle: {\n color: '#999',\n width: 1,\n type: 'dashed',\n textStyle: {}\n }\n },\n textStyle: {\n color: '#666',\n fontSize: 14\n }\n };\n return TooltipModel;\n}(ComponentModel);\n\nexport default TooltipModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function shouldTooltipConfine(tooltipModel) {\n var confineOption = tooltipModel.get('confine');\n return confineOption != null ? !!confineOption : tooltipModel.get('renderMode') === 'richText';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isString, indexOf, map, each, bind, isArray, isDom } from 'zrender/lib/core/util';\nimport { toHex } from 'zrender/lib/tool/color';\nimport { normalizeEvent } from 'zrender/lib/core/event';\nimport { transformLocalCoord } from 'zrender/lib/core/dom';\nimport env from 'zrender/lib/core/env';\nimport { convertToColorString, toCamelCase, normalizeCssArray } from '../../util/format';\nimport { shouldTooltipConfine } from './helper';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nvar vendors = ['-ms-', '-moz-', '-o-', '-webkit-', ''];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n\nfunction mirrorPos(pos) {\n pos = pos === 'left' ? 'right' : pos === 'right' ? 'left' : pos === 'top' ? 'bottom' : 'top';\n return pos;\n}\n\nfunction assembleArrow(backgroundColor, borderColor, arrowPosition) {\n if (!isString(arrowPosition) || arrowPosition === 'inside') {\n return '';\n }\n\n borderColor = convertToColorString(borderColor);\n var arrowPos = mirrorPos(arrowPosition);\n var positionStyle = '';\n var transformStyle = '';\n\n if (indexOf(['left', 'right'], arrowPos) > -1) {\n positionStyle = arrowPos + \":-6px;top:50%;\";\n transformStyle = \"translateY(-50%) rotate(\" + (arrowPos === 'left' ? -225 : -45) + \"deg)\";\n } else {\n positionStyle = arrowPos + \":-6px;left:50%;\";\n transformStyle = \"translateX(-50%) rotate(\" + (arrowPos === 'top' ? 225 : 45) + \"deg)\";\n }\n\n transformStyle = map(vendors, function (vendorPrefix) {\n return vendorPrefix + 'transform:' + transformStyle;\n }).join(';');\n var styleCss = ['position:absolute;width:10px;height:10px;', \"\" + positionStyle + transformStyle + \";\", \"border-bottom: \" + borderColor + \" solid 1px;\", \"border-right: \" + borderColor + \" solid 1px;\", \"background-color: \" + backgroundColor + \";\", 'box-shadow: 8px 8px 16px -3px #000;'];\n return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\n}\n\nfunction assembleTransition(duration, onlyFade) {\n var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n var transitionText = 'opacity ' + duration / 2 + 's ' + transitionCurve + ',' + 'visibility ' + duration / 2 + 's ' + transitionCurve;\n\n if (!onlyFade) {\n transitionText += ',left ' + duration + 's ' + transitionCurve + ',top ' + duration + 's ' + transitionCurve;\n }\n\n return map(vendors, function (vendorPrefix) {\n return vendorPrefix + 'transition:' + transitionText;\n }).join(';');\n}\n\nfunction assembleFont(textStyleModel) {\n var cssText = [];\n var fontSize = textStyleModel.get('fontSize');\n var color = textStyleModel.getTextColor();\n color && cssText.push('color:' + color);\n cssText.push('font:' + textStyleModel.getFont());\n fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n var shadowColor = textStyleModel.get('textShadowColor');\n var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n shadowColor && shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n each(['decoration', 'align'], function (name) {\n var val = textStyleModel.get(name);\n val && cssText.push('text-' + name + ':' + val);\n });\n return cssText.join(';');\n}\n\nfunction assembleCssText(tooltipModel, enableTransition, onlyFade) {\n var cssText = [];\n var transitionDuration = tooltipModel.get('transitionDuration');\n var backgroundColor = tooltipModel.get('backgroundColor');\n var shadowBlur = tooltipModel.get('shadowBlur');\n var shadowColor = tooltipModel.get('shadowColor');\n var shadowOffsetX = tooltipModel.get('shadowOffsetX');\n var shadowOffsetY = tooltipModel.get('shadowOffsetY');\n var textStyleModel = tooltipModel.getModel('textStyle');\n var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\n var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\n cssText.push('box-shadow:' + boxShadow);\n enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\n\n if (backgroundColor) {\n if (env.canvasSupported) {\n cssText.push('background-Color:' + backgroundColor);\n } else {\n cssText.push('background-Color:#' + toHex(backgroundColor));\n cssText.push('filter:alpha(opacity=70)');\n }\n }\n\n each(['width', 'color', 'radius'], function (name) {\n var borderName = 'border-' + name;\n var camelCase = toCamelCase(borderName);\n var val = tooltipModel.get(camelCase);\n val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n });\n cssText.push(assembleFont(textStyleModel));\n\n if (padding != null) {\n cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px');\n }\n\n return cssText.join(';') + ';';\n}\n\nfunction makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\n var zrPainter = zr && zr.painter;\n\n if (appendToBody) {\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n\n if (zrViewportRoot) {\n transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n }\n } else {\n out[0] = zrX;\n out[1] = zrY;\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n\n if (viewportRootOffset) {\n out[0] += viewportRootOffset.offsetLeft;\n out[1] += viewportRootOffset.offsetTop;\n }\n }\n\n out[2] = out[0] / zr.getWidth();\n out[3] = out[1] / zr.getHeight();\n}\n\nvar TooltipHTMLContent = function () {\n function TooltipHTMLContent(container, api, opt) {\n this._show = false;\n this._styleCoord = [0, 0, 0, 0];\n this._enterable = true;\n this._firstShow = true;\n this._longHide = true;\n\n if (env.wxa) {\n return null;\n }\n\n var el = document.createElement('div');\n el.domBelongToZr = true;\n this.el = el;\n var zr = this._zr = api.getZr();\n var appendToBody = this._appendToBody = opt && opt.appendToBody;\n makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\n\n if (appendToBody) {\n document.body.appendChild(el);\n } else {\n container.appendChild(el);\n }\n\n this._container = container;\n var self = this;\n\n el.onmouseenter = function () {\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n\n self._inContent = true;\n };\n\n el.onmousemove = function (e) {\n e = e || window.event;\n\n if (!self._enterable) {\n var handler = zr.handler;\n var zrViewportRoot = zr.painter.getViewportRoot();\n normalizeEvent(zrViewportRoot, e, true);\n handler.dispatch('mousemove', e);\n }\n };\n\n el.onmouseleave = function () {\n self._inContent = false;\n\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n };\n }\n\n TooltipHTMLContent.prototype.update = function (tooltipModel) {\n var container = this._container;\n var stl = container.currentStyle || document.defaultView.getComputedStyle(container);\n var domStyle = container.style;\n\n if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\n domStyle.position = 'relative';\n }\n\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n alwaysShowContent && this._moveIfResized();\n this.el.className = tooltipModel.get('className') || '';\n };\n\n TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\n clearTimeout(this._hideTimeout);\n clearTimeout(this._longHideTimeout);\n var el = this.el;\n var styleCoord = this._styleCoord;\n var offset = el.offsetHeight / 2;\n nearPointColor = convertToColorString(nearPointColor);\n el.style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide) + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;' + (\"border-color: \" + nearPointColor + \";\") + (tooltipModel.get('extraCssText') || '');\n el.style.display = el.innerHTML ? 'block' : 'none';\n el.style.pointerEvents = this._enterable ? 'auto' : 'none';\n this._show = true;\n this._firstShow = false;\n this._longHide = false;\n };\n\n TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\n if (content == null) {\n return;\n }\n\n var el = this.el;\n\n if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item' && !shouldTooltipConfine(tooltipModel)) {\n content += assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition);\n }\n\n if (isString(content)) {\n el.innerHTML = content;\n } else if (content) {\n el.innerHTML = '';\n\n if (!isArray(content)) {\n content = [content];\n }\n\n for (var i = 0; i < content.length; i++) {\n if (isDom(content[i]) && content[i].parentNode !== el) {\n el.appendChild(content[i]);\n }\n }\n }\n };\n\n TooltipHTMLContent.prototype.setEnterable = function (enterable) {\n this._enterable = enterable;\n };\n\n TooltipHTMLContent.prototype.getSize = function () {\n var el = this.el;\n return [el.clientWidth, el.clientHeight];\n };\n\n TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n\n if (styleCoord[0] != null && styleCoord[1] != null) {\n var style = this.el.style;\n style.left = styleCoord[0].toFixed(0) + 'px';\n style.top = styleCoord[1].toFixed(0) + 'px';\n }\n };\n\n TooltipHTMLContent.prototype._moveIfResized = function () {\n var ratioX = this._styleCoord[2];\n var ratioY = this._styleCoord[3];\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n };\n\n TooltipHTMLContent.prototype.hide = function () {\n var _this = this;\n\n this.el.style.visibility = 'hidden';\n this.el.style.opacity = '0';\n this._show = false;\n this._longHideTimeout = setTimeout(function () {\n return _this._longHide = true;\n }, 500);\n };\n\n TooltipHTMLContent.prototype.hideLater = function (time) {\n if (this._show && !(this._inContent && this._enterable)) {\n if (time) {\n this._hideDelay = time;\n this._show = false;\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n };\n\n TooltipHTMLContent.prototype.isShow = function () {\n return this._show;\n };\n\n TooltipHTMLContent.prototype.dispose = function () {\n this.el.parentNode.removeChild(this.el);\n };\n\n TooltipHTMLContent.prototype.getOuterSize = function () {\n var width = this.el.clientWidth;\n var height = this.el.clientHeight;\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n var stl = document.defaultView.getComputedStyle(this.el);\n\n if (stl) {\n width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n }\n }\n\n return {\n width: width,\n height: height\n };\n };\n\n return TooltipHTMLContent;\n}();\n\nexport default TooltipHTMLContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nimport { throwError } from '../../util/log';\n\nvar TooltipRichContent = function () {\n function TooltipRichContent(api) {\n this._show = false;\n this._styleCoord = [0, 0, 0, 0];\n this._enterable = true;\n this._zr = api.getZr();\n makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\n }\n\n TooltipRichContent.prototype.update = function (tooltipModel) {\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n alwaysShowContent && this._moveIfResized();\n };\n\n TooltipRichContent.prototype.show = function () {\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n }\n\n this.el.show();\n this._show = true;\n };\n\n TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\n if (zrUtil.isObject(content)) {\n throwError(process.env.NODE_ENV !== 'production' ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\n }\n\n if (this.el) {\n this._zr.remove(this.el);\n }\n\n var textStyleModel = tooltipModel.getModel('textStyle');\n this.el = new ZRText({\n style: {\n rich: markupStyleCreator.richTextStyles,\n text: content,\n lineHeight: 22,\n backgroundColor: tooltipModel.get('backgroundColor'),\n borderRadius: tooltipModel.get('borderRadius'),\n borderWidth: 1,\n borderColor: borderColor,\n shadowColor: tooltipModel.get('shadowColor'),\n shadowBlur: tooltipModel.get('shadowBlur'),\n shadowOffsetX: tooltipModel.get('shadowOffsetX'),\n shadowOffsetY: tooltipModel.get('shadowOffsetY'),\n textShadowColor: textStyleModel.get('textShadowColor'),\n textShadowBlur: textStyleModel.get('textShadowBlur') || 0,\n textShadowOffsetX: textStyleModel.get('textShadowOffsetX') || 0,\n textShadowOffsetY: textStyleModel.get('textShadowOffsetY') || 0,\n fill: tooltipModel.get(['textStyle', 'color']),\n padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\n verticalAlign: 'top',\n align: 'left'\n },\n z: tooltipModel.get('z')\n });\n\n this._zr.add(this.el);\n\n var self = this;\n this.el.on('mouseover', function () {\n if (self._enterable) {\n clearTimeout(self._hideTimeout);\n self._show = true;\n }\n\n self._inContent = true;\n });\n this.el.on('mouseout', function () {\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n\n self._inContent = false;\n });\n };\n\n TooltipRichContent.prototype.setEnterable = function (enterable) {\n this._enterable = enterable;\n };\n\n TooltipRichContent.prototype.getSize = function () {\n var el = this.el;\n var bounding = this.el.getBoundingRect();\n var shadowOuterSize = calcShadowOuterSize(el.style);\n return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom];\n };\n\n TooltipRichContent.prototype.moveTo = function (x, y) {\n var el = this.el;\n\n if (el) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, x, y);\n x = styleCoord[0];\n y = styleCoord[1];\n var style = el.style;\n var borderWidth = mathMaxWith0(style.borderWidth || 0);\n var shadowOuterSize = calcShadowOuterSize(style);\n el.x = x + borderWidth + shadowOuterSize.left;\n el.y = y + borderWidth + shadowOuterSize.top;\n el.markRedraw();\n }\n };\n\n TooltipRichContent.prototype._moveIfResized = function () {\n var ratioX = this._styleCoord[2];\n var ratioY = this._styleCoord[3];\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n };\n\n TooltipRichContent.prototype.hide = function () {\n if (this.el) {\n this.el.hide();\n }\n\n this._show = false;\n };\n\n TooltipRichContent.prototype.hideLater = function (time) {\n if (this._show && !(this._inContent && this._enterable)) {\n if (time) {\n this._hideDelay = time;\n this._show = false;\n this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n };\n\n TooltipRichContent.prototype.isShow = function () {\n return this._show;\n };\n\n TooltipRichContent.prototype.getOuterSize = function () {\n var size = this.getSize();\n return {\n width: size[0],\n height: size[1]\n };\n };\n\n TooltipRichContent.prototype.dispose = function () {\n this._zr.remove(this.el);\n };\n\n return TooltipRichContent;\n}();\n\nfunction mathMaxWith0(val) {\n return Math.max(0, val);\n}\n\nfunction calcShadowOuterSize(style) {\n var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\n var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\n var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\n return {\n left: mathMaxWith0(shadowBlur - shadowOffsetX),\n right: mathMaxWith0(shadowBlur + shadowOffsetX),\n top: mathMaxWith0(shadowBlur - shadowOffsetY),\n bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\n };\n}\n\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n out[0] = zrX;\n out[1] = zrY;\n out[2] = out[0] / zr.getWidth();\n out[3] = out[1] / zr.getHeight();\n}\n\nexport default TooltipRichContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport TooltipHTMLContent from './TooltipHTMLContent';\nimport TooltipRichContent from './TooltipRichContent';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport findPointFromSeries from '../axisPointer/findPointFromSeries';\nimport * as layoutUtil from '../../util/layout';\nimport Model from '../../model/Model';\nimport * as globalListener from '../axisPointer/globalListener';\nimport * as axisHelper from '../../coord/axisHelper';\nimport * as axisPointerViewHelper from '../axisPointer/viewHelper';\nimport { getTooltipRenderMode } from '../../util/model';\nimport ComponentView from '../../view/Component';\nimport { format as timeFormat } from '../../util/time';\nimport { getECData } from '../../util/innerStore';\nimport { shouldTooltipConfine } from './helper';\nimport { normalizeTooltipFormatResult } from '../../model/mixin/dataFormat';\nimport { createTooltipMarkup, buildTooltipMarkup, TooltipMarkupStyleCreator } from './tooltipMarkup';\nimport { findEventDispatcher } from '../../util/event';\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar parsePercent = numberUtil.parsePercent;\nvar proxyRect = new graphic.Rect({\n shape: {\n x: -1,\n y: -1,\n width: 2,\n height: 2\n }\n});\n\nvar TooltipView = function (_super) {\n __extends(TooltipView, _super);\n\n function TooltipView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TooltipView.type;\n return _this;\n }\n\n TooltipView.prototype.init = function (ecModel, api) {\n if (env.node) {\n return;\n }\n\n var tooltipModel = ecModel.getComponent('tooltip');\n var renderMode = tooltipModel.get('renderMode');\n this._renderMode = getTooltipRenderMode(renderMode);\n this._tooltipContent = this._renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api.getDom(), api, {\n appendToBody: tooltipModel.get('appendToBody', true)\n });\n };\n\n TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\n if (env.node) {\n return;\n }\n\n this.group.removeAll();\n this._tooltipModel = tooltipModel;\n this._ecModel = ecModel;\n this._api = api;\n this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\n var tooltipContent = this._tooltipContent;\n tooltipContent.update(tooltipModel);\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n this._initGlobalListener();\n\n this._keepShow();\n };\n\n TooltipView.prototype._initGlobalListener = function () {\n var tooltipModel = this._tooltipModel;\n var triggerOn = tooltipModel.get('triggerOn');\n globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n if (triggerOn !== 'none') {\n if (triggerOn.indexOf(currTrigger) >= 0) {\n this._tryShow(e, dispatchAction);\n } else if (currTrigger === 'leave') {\n this._hide(dispatchAction);\n }\n }\n }, this));\n };\n\n TooltipView.prototype._keepShow = function () {\n var tooltipModel = this._tooltipModel;\n var ecModel = this._ecModel;\n var api = this._api;\n\n if (this._lastX != null && this._lastY != null && tooltipModel.get('triggerOn') !== 'none') {\n var self_1 = this;\n clearTimeout(this._refreshUpdateTimeout);\n this._refreshUpdateTimeout = setTimeout(function () {\n !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\n x: self_1._lastX,\n y: self_1._lastY,\n dataByCoordSys: self_1._lastDataByCoordSys\n });\n });\n }\n };\n\n TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\n if (payload.from === this.uid || env.node) {\n return;\n }\n\n var dispatchAction = makeDispatchAction(payload, api);\n this._ticket = '';\n var dataByCoordSys = payload.dataByCoordSys;\n\n if (payload.tooltip && payload.x != null && payload.y != null) {\n var el = proxyRect;\n el.x = payload.x;\n el.y = payload.y;\n el.update();\n el.tooltip = payload.tooltip;\n\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n target: el\n }, dispatchAction);\n } else if (dataByCoordSys) {\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n dataByCoordSys: dataByCoordSys,\n tooltipOption: payload.tooltipOption\n }, dispatchAction);\n } else if (payload.seriesIndex != null) {\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n return;\n }\n\n var pointInfo = findPointFromSeries(payload, ecModel);\n var cx = pointInfo.point[0];\n var cy = pointInfo.point[1];\n\n if (cx != null && cy != null) {\n this._tryShow({\n offsetX: cx,\n offsetY: cy,\n position: payload.position,\n target: pointInfo.el\n }, dispatchAction);\n }\n } else if (payload.x != null && payload.y != null) {\n api.dispatchAction({\n type: 'updateAxisPointer',\n x: payload.x,\n y: payload.y\n });\n\n this._tryShow({\n offsetX: payload.x,\n offsetY: payload.y,\n position: payload.position,\n target: api.getZr().findHover(payload.x, payload.y).target\n }, dispatchAction);\n }\n };\n\n TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\n var tooltipContent = this._tooltipContent;\n\n if (!this._alwaysShowContent && this._tooltipModel) {\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n }\n\n this._lastX = this._lastY = this._lastDataByCoordSys = null;\n\n if (payload.from !== this.uid) {\n this._hide(makeDispatchAction(payload, api));\n }\n };\n\n TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\n var seriesIndex = payload.seriesIndex;\n var dataIndex = payload.dataIndex;\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n return;\n }\n\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n if (!seriesModel) {\n return;\n }\n\n var data = seriesModel.getData();\n var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model, tooltipModel]);\n\n if (tooltipCascadedModel.get('trigger') !== 'axis') {\n return;\n }\n\n api.dispatchAction({\n type: 'updateAxisPointer',\n seriesIndex: seriesIndex,\n dataIndex: dataIndex,\n position: payload.position\n });\n return true;\n };\n\n TooltipView.prototype._tryShow = function (e, dispatchAction) {\n var el = e.target;\n var tooltipModel = this._tooltipModel;\n\n if (!tooltipModel) {\n return;\n }\n\n this._lastX = e.offsetX;\n this._lastY = e.offsetY;\n var dataByCoordSys = e.dataByCoordSys;\n\n if (dataByCoordSys && dataByCoordSys.length) {\n this._showAxisTooltip(dataByCoordSys, e);\n } else if (el && findEventDispatcher(el, function (target) {\n return getECData(target).dataIndex != null;\n }, true)) {\n this._lastDataByCoordSys = null;\n\n this._showSeriesItemTooltip(e, el, dispatchAction);\n } else if (el && el.tooltip) {\n this._lastDataByCoordSys = null;\n\n this._showComponentItemTooltip(e, el, dispatchAction);\n } else {\n this._lastDataByCoordSys = null;\n\n this._hide(dispatchAction);\n }\n };\n\n TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\n var delay = tooltipModel.get('showDelay');\n cb = zrUtil.bind(cb, this);\n clearTimeout(this._showTimout);\n delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n };\n\n TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\n var ecModel = this._ecModel;\n var globalTooltipModel = this._tooltipModel;\n var point = [e.offsetX, e.offsetY];\n var singleTooltipModel = buildTooltipModel([e.tooltipOption, globalTooltipModel]);\n var renderMode = this._renderMode;\n var cbParamsList = [];\n var articleMarkup = createTooltipMarkup('section', {\n blocks: [],\n noHeader: true\n });\n var markupTextArrLegacy = [];\n var markupStyleCreator = new TooltipMarkupStyleCreator();\n each(dataByCoordSys, function (itemCoordSys) {\n each(itemCoordSys.dataByAxis, function (axisItem) {\n var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\n var axisValue = axisItem.value;\n\n if (!axisModel || axisValue == null) {\n return;\n }\n\n var axisValueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\n var axisSectionMarkup = createTooltipMarkup('section', {\n header: axisValueLabel,\n noHeader: !zrUtil.trim(axisValueLabel),\n sortBlocks: true,\n blocks: []\n });\n articleMarkup.blocks.push(axisSectionMarkup);\n zrUtil.each(axisItem.seriesDataIndices, function (idxItem) {\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n var dataIndex = idxItem.dataIndexInside;\n var cbParams = series.getDataParams(dataIndex);\n cbParams.axisDim = axisItem.axisDim;\n cbParams.axisIndex = axisItem.axisIndex;\n cbParams.axisType = axisItem.axisType;\n cbParams.axisId = axisItem.axisId;\n cbParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, {\n value: axisValue\n });\n cbParams.axisValueLabel = axisValueLabel;\n cbParams.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(cbParams.color), renderMode);\n var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\n\n if (seriesTooltipResult.markupFragment) {\n axisSectionMarkup.blocks.push(seriesTooltipResult.markupFragment);\n }\n\n if (seriesTooltipResult.markupText) {\n markupTextArrLegacy.push(seriesTooltipResult.markupText);\n }\n\n cbParamsList.push(cbParams);\n });\n });\n });\n articleMarkup.blocks.reverse();\n markupTextArrLegacy.reverse();\n var positionExpr = e.position;\n var orderMode = singleTooltipModel.get('order');\n var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle'));\n builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\n var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\n var allMarkupText = markupTextArrLegacy.join(blockBreak);\n\n this._showOrMove(singleTooltipModel, function () {\n if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\n } else {\n this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\n }\n });\n };\n\n TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\n var dispatcher = findEventDispatcher(el, function (target) {\n return getECData(target).dataIndex != null;\n }, true);\n var ecModel = this._ecModel;\n var ecData = getECData(dispatcher);\n var seriesIndex = ecData.seriesIndex;\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n var dataModel = ecData.dataModel || seriesModel;\n var dataIndex = ecData.dataIndex;\n var dataType = ecData.dataType;\n var data = dataModel.getData(dataType);\n var renderMode = this._renderMode;\n var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model, this._tooltipModel]);\n var tooltipTrigger = tooltipModel.get('trigger');\n\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n return;\n }\n\n var params = dataModel.getDataParams(dataIndex, dataType);\n var markupStyleCreator = new TooltipMarkupStyleCreator();\n params.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(params.color), renderMode);\n var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\n var orderMode = tooltipModel.get('order');\n var markupText = seriesTooltipResult.markupFragment ? buildTooltipMarkup(seriesTooltipResult.markupFragment, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), tooltipModel.get('textStyle')) : seriesTooltipResult.markupText;\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n this._showOrMove(tooltipModel, function () {\n this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\n });\n\n dispatchAction({\n type: 'showTip',\n dataIndexInside: dataIndex,\n dataIndex: data.getRawIndex(dataIndex),\n seriesIndex: seriesIndex,\n from: this.uid\n });\n };\n\n TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\n var tooltipOpt = el.tooltip;\n\n if (zrUtil.isString(tooltipOpt)) {\n var content = tooltipOpt;\n tooltipOpt = {\n content: content,\n formatter: content\n };\n }\n\n var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\n var defaultHtml = subTooltipModel.get('content');\n var asyncTicket = Math.random() + '';\n var markupStyleCreator = new TooltipMarkupStyleCreator();\n\n this._showOrMove(subTooltipModel, function () {\n this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\n });\n\n dispatchAction({\n type: 'showTip',\n from: this.uid\n });\n };\n\n TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\n this._ticket = '';\n\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n return;\n }\n\n var tooltipContent = this._tooltipContent;\n var formatter = tooltipModel.get('formatter');\n positionExpr = positionExpr || tooltipModel.get('position');\n var html = defaultHtml;\n\n var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'), tooltipModel.get('borderColor'));\n\n if (formatter && zrUtil.isString(formatter)) {\n var useUTC = tooltipModel.ecModel.get('useUTC');\n var params0 = zrUtil.isArray(params) ? params[0] : params;\n var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\n html = formatter;\n\n if (isTimeAxis) {\n html = timeFormat(params0.axisValue, html, useUTC);\n }\n\n html = formatUtil.formatTpl(html, params, true);\n } else if (zrUtil.isFunction(formatter)) {\n var callback = bind(function (cbTicket, html) {\n if (cbTicket === this._ticket) {\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n }\n }, this);\n this._ticket = asyncTicket;\n html = formatter(params, asyncTicket, callback);\n }\n\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n tooltipContent.show(tooltipModel, nearPoint.color);\n\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n };\n\n TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger, borderColor) {\n if (trigger === 'axis' || zrUtil.isArray(tooltipDataParams)) {\n return {\n color: borderColor || (this._renderMode === 'html' ? '#fff' : 'none')\n };\n }\n\n if (!zrUtil.isArray(tooltipDataParams)) {\n return {\n color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor\n };\n }\n };\n\n TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\n var viewWidth = this._api.getWidth();\n\n var viewHeight = this._api.getHeight();\n\n positionExpr = positionExpr || tooltipModel.get('position');\n var contentSize = content.getSize();\n var align = tooltipModel.get('align');\n var vAlign = tooltipModel.get('verticalAlign');\n var rect = el && el.getBoundingRect().clone();\n el && rect.applyTransform(el.transform);\n\n if (zrUtil.isFunction(positionExpr)) {\n positionExpr = positionExpr([x, y], params, content.el, rect, {\n viewSize: [viewWidth, viewHeight],\n contentSize: contentSize.slice()\n });\n }\n\n if (zrUtil.isArray(positionExpr)) {\n x = parsePercent(positionExpr[0], viewWidth);\n y = parsePercent(positionExpr[1], viewHeight);\n } else if (zrUtil.isObject(positionExpr)) {\n var boxLayoutPosition = positionExpr;\n boxLayoutPosition.width = contentSize[0];\n boxLayoutPosition.height = contentSize[1];\n var layoutRect = layoutUtil.getLayoutRect(boxLayoutPosition, {\n width: viewWidth,\n height: viewHeight\n });\n x = layoutRect.x;\n y = layoutRect.y;\n align = null;\n vAlign = null;\n } else if (zrUtil.isString(positionExpr) && el) {\n var pos = calcTooltipPosition(positionExpr, rect, contentSize);\n x = pos[0];\n y = pos[1];\n } else {\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n x = pos[0];\n y = pos[1];\n }\n\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n if (shouldTooltipConfine(tooltipModel)) {\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n x = pos[0];\n y = pos[1];\n }\n\n content.moveTo(x, y);\n };\n\n TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\n var lastCoordSys = this._lastDataByCoordSys;\n var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\n contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n var thisItem = thisDataByAxis[indexAxis] || {};\n var lastIndices = lastItem.seriesDataIndices || [];\n var newIndices = thisItem.seriesDataIndices || [];\n contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n var newIdxItem = newIndices[j];\n contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n });\n });\n });\n this._lastDataByCoordSys = dataByCoordSys;\n return !!contentNotChanged;\n };\n\n TooltipView.prototype._hide = function (dispatchAction) {\n this._lastDataByCoordSys = null;\n dispatchAction({\n type: 'hideTip',\n from: this.uid\n });\n };\n\n TooltipView.prototype.dispose = function (ecModel, api) {\n if (env.node) {\n return;\n }\n\n this._tooltipContent.dispose();\n\n globalListener.unregister('itemTooltip', api);\n };\n\n TooltipView.type = 'tooltip';\n return TooltipView;\n}(ComponentView);\n\nfunction buildTooltipModel(modelCascade) {\n var resultModel = modelCascade.pop();\n\n while (modelCascade.length) {\n var tooltipOpt = modelCascade.pop();\n\n if (tooltipOpt) {\n if (tooltipOpt instanceof Model) {\n tooltipOpt = tooltipOpt.get('tooltip', true);\n }\n\n if (zrUtil.isString(tooltipOpt)) {\n tooltipOpt = {\n formatter: tooltipOpt\n };\n }\n\n resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\n }\n }\n\n return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n return payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n var size = content.getOuterSize();\n var width = size.width;\n var height = size.height;\n\n if (gapH != null) {\n if (x + width + gapH + 2 > viewWidth) {\n x -= width + gapH;\n } else {\n x += gapH;\n }\n }\n\n if (gapV != null) {\n if (y + height + gapV > viewHeight) {\n y -= height + gapV;\n } else {\n y += gapV;\n }\n }\n\n return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n var size = content.getOuterSize();\n var width = size.width;\n var height = size.height;\n x = Math.min(x + width, viewWidth) - width;\n y = Math.min(y + height, viewHeight) - height;\n x = Math.max(x, 0);\n y = Math.max(y, 0);\n return [x, y];\n}\n\nfunction calcTooltipPosition(position, rect, contentSize) {\n var domWidth = contentSize[0];\n var domHeight = contentSize[1];\n var gap = 10;\n var offset = 5;\n var x = 0;\n var y = 0;\n var rectWidth = rect.width;\n var rectHeight = rect.height;\n\n switch (position) {\n case 'inside':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n\n case 'top':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y - domHeight - gap;\n break;\n\n case 'bottom':\n x = rect.x + rectWidth / 2 - domWidth / 2;\n y = rect.y + rectHeight + gap;\n break;\n\n case 'left':\n x = rect.x - domWidth - gap - offset;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n break;\n\n case 'right':\n x = rect.x + rectWidth + gap + offset;\n y = rect.y + rectHeight / 2 - domHeight / 2;\n }\n\n return [x, y];\n}\n\nfunction isCenterAlign(align) {\n return align === 'center' || align === 'middle';\n}\n\nexport default TooltipView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nimport TooltipModel from './TooltipModel';\nimport TooltipView from './TooltipView';\nexport function install(registers) {\n use(installAxisPointer);\n registers.registerComponentModel(TooltipModel);\n registers.registerComponentView(TooltipView);\n registers.registerAction({\n type: 'showTip',\n event: 'showTip',\n update: 'tooltip:manuallyShowTip'\n }, function () {});\n registers.registerAction({\n type: 'hideTip',\n event: 'hideTip',\n update: 'tooltip:manuallyHideTip'\n }, function () {});\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nvar DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\nexport default function brushPreprocessor(option, isNew) {\n var brushComponents = normalizeToArray(option ? option.brush : []);\n\n if (!brushComponents.length) {\n return;\n }\n\n var brushComponentSpecifiedBtns = [];\n zrUtil.each(brushComponents, function (brushOpt) {\n var tbs = brushOpt.hasOwnProperty('toolbox') ? brushOpt.toolbox : [];\n\n if (tbs instanceof Array) {\n brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\n }\n });\n var toolbox = option && option.toolbox;\n\n if (zrUtil.isArray(toolbox)) {\n toolbox = toolbox[0];\n }\n\n if (!toolbox) {\n toolbox = {\n feature: {}\n };\n option.toolbox = [toolbox];\n }\n\n var toolboxFeature = toolbox.feature || (toolbox.feature = {});\n var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {});\n var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\n brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\n removeDuplicate(brushTypes);\n\n if (isNew && !brushTypes.length) {\n brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\n }\n}\n\nfunction removeDuplicate(arr) {\n var map = {};\n zrUtil.each(arr, function (val) {\n map[val] = 1;\n });\n arr.length = 0;\n zrUtil.each(map, function (flag, val) {\n arr.push(val);\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapping from './VisualMapping';\nimport { getItemVisualFromData, setItemVisualFromData } from './helper';\nvar each = zrUtil.each;\n\nfunction hasKeys(obj) {\n if (obj) {\n for (var name_1 in obj) {\n if (obj.hasOwnProperty(name_1)) {\n return true;\n }\n }\n }\n}\n\nexport function createVisualMappings(option, stateList, supplementVisualOption) {\n var visualMappings = {};\n each(stateList, function (state) {\n var mappings = visualMappings[state] = createMappings();\n each(option[state], function (visualData, visualType) {\n if (!VisualMapping.isValidType(visualType)) {\n return;\n }\n\n var mappingOption = {\n type: visualType,\n visual: visualData\n };\n supplementVisualOption && supplementVisualOption(mappingOption, state);\n mappings[visualType] = new VisualMapping(mappingOption);\n\n if (visualType === 'opacity') {\n mappingOption = zrUtil.clone(mappingOption);\n mappingOption.type = 'colorAlpha';\n mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\n }\n });\n });\n return visualMappings;\n\n function createMappings() {\n var Creater = function () {};\n\n Creater.prototype.__hidden = Creater.prototype;\n var obj = new Creater();\n return obj;\n }\n}\nexport function replaceVisualOption(thisOption, newOption, keys) {\n var has;\n zrUtil.each(keys, function (key) {\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n has = true;\n }\n });\n has && zrUtil.each(keys, function (key) {\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n thisOption[key] = zrUtil.clone(newOption[key]);\n } else {\n delete thisOption[key];\n }\n });\n}\nexport function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\n var visualTypesMap = {};\n zrUtil.each(stateList, function (state) {\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n visualTypesMap[state] = visualTypes;\n });\n var dataIndex;\n\n function getVisual(key) {\n return getItemVisualFromData(data, dataIndex, key);\n }\n\n function setVisual(key, value) {\n setItemVisualFromData(data, dataIndex, key, value);\n }\n\n if (dimension == null) {\n data.each(eachItem);\n } else {\n data.each([dimension], eachItem);\n }\n\n function eachItem(valueOrIndex, index) {\n dataIndex = dimension == null ? valueOrIndex : index;\n var rawDataItem = data.getRawDataItem(dataIndex);\n\n if (rawDataItem && rawDataItem.visualMap === false) {\n return;\n }\n\n var valueState = getValueState.call(scope, valueOrIndex);\n var mappings = visualMappings[valueState];\n var visualTypes = visualTypesMap[valueState];\n\n for (var i = 0, len = visualTypes.length; i < len; i++) {\n var type = visualTypes[i];\n mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\n }\n }\n}\nexport function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\n var visualTypesMap = {};\n zrUtil.each(stateList, function (state) {\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n visualTypesMap[state] = visualTypes;\n });\n return {\n progress: function progress(params, data) {\n var dimName;\n\n if (dim != null) {\n dimName = data.getDimension(dim);\n }\n\n function getVisual(key) {\n return getItemVisualFromData(data, dataIndex, key);\n }\n\n function setVisual(key, value) {\n setItemVisualFromData(data, dataIndex, key, value);\n }\n\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var rawDataItem = data.getRawDataItem(dataIndex);\n\n if (rawDataItem && rawDataItem.visualMap === false) {\n continue;\n }\n\n var value = dim != null ? data.get(dimName, dataIndex) : dataIndex;\n var valueState = getValueState(value);\n var mappings = visualMappings[valueState];\n var visualTypes = visualTypesMap[valueState];\n\n for (var i = 0, len = visualTypes.length; i < len; i++) {\n var type = visualTypes[i];\n mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\n }\n }\n }\n };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as polygonContain from 'zrender/lib/contain/polygon';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { linePolygonIntersect } from '../../util/graphic';\nexport function makeBrushCommonSelectorForSeries(area) {\n var brushType = area.brushType;\n var selectors = {\n point: function (itemLayout) {\n return selector[brushType].point(itemLayout, selectors, area);\n },\n rect: function (itemLayout) {\n return selector[brushType].rect(itemLayout, selectors, area);\n }\n };\n return selectors;\n}\nvar selector = {\n lineX: getLineSelectors(0),\n lineY: getLineSelectors(1),\n rect: {\n point: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\n },\n rect: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.intersect(itemLayout);\n }\n },\n polygon: {\n point: function (itemLayout, selectors, area) {\n return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && polygonContain.contain(area.range, itemLayout[0], itemLayout[1]);\n },\n rect: function (itemLayout, selectors, area) {\n var points = area.range;\n\n if (!itemLayout || points.length <= 1) {\n return false;\n }\n\n var x = itemLayout.x;\n var y = itemLayout.y;\n var width = itemLayout.width;\n var height = itemLayout.height;\n var p = points[0];\n\n if (polygonContain.contain(points, x, y) || polygonContain.contain(points, x + width, y) || polygonContain.contain(points, x, y + height) || polygonContain.contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || linePolygonIntersect(x, y, x + width, y, points) || linePolygonIntersect(x, y, x, y + height, points) || linePolygonIntersect(x + width, y, x + width, y + height, points) || linePolygonIntersect(x, y + height, x + width, y + height, points)) {\n return true;\n }\n }\n }\n};\n\nfunction getLineSelectors(xyIndex) {\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n return {\n point: function (itemLayout, selectors, area) {\n if (itemLayout) {\n var range = area.range;\n var p = itemLayout[xyIndex];\n return inLineRange(p, range);\n }\n },\n rect: function (itemLayout, selectors, area) {\n if (itemLayout) {\n var range = area.range;\n var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]];\n layoutRange[1] < layoutRange[0] && layoutRange.reverse();\n return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange);\n }\n }\n };\n}\n\nfunction inLineRange(p, range) {\n return range[0] <= p && p <= range[1];\n}\n\nexport default selector;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as visualSolution from '../../visual/visualSolution';\nimport { makeBrushCommonSelectorForSeries } from './selector';\nimport * as throttleUtil from '../../util/throttle';\nimport BrushTargetManager from '../helper/BrushTargetManager';\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\n;\nexport function layoutCovers(ecModel) {\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n });\n}\nexport default function brushVisual(ecModel, api, payload) {\n var brushSelected = [];\n var throttleType;\n var throttleDelay;\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n brushType: false\n });\n });\n layoutCovers(ecModel);\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel, brushIndex) {\n var thisBrushSelected = {\n brushId: brushModel.id,\n brushIndex: brushIndex,\n brushName: brushModel.name,\n areas: zrUtil.clone(brushModel.areas),\n selected: []\n };\n brushSelected.push(thisBrushSelected);\n var brushOption = brushModel.option;\n var brushLink = brushOption.brushLink;\n var linkedSeriesMap = [];\n var selectedDataIndexForLink = [];\n var rangeInfoBySeries = [];\n var hasBrushExists = false;\n\n if (!brushIndex) {\n throttleType = brushOption.throttleType;\n throttleDelay = brushOption.throttleDelay;\n }\n\n var areas = zrUtil.map(brushModel.areas, function (area) {\n var builder = boundingRectBuilders[area.brushType];\n var selectableArea = zrUtil.defaults({\n boundingRect: builder ? builder(area) : void 0\n }, area);\n selectableArea.selectors = makeBrushCommonSelectorForSeries(selectableArea);\n return selectableArea;\n });\n var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n mappingOption.mappingMethod = 'fixed';\n });\n zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n linkedSeriesMap[seriesIndex] = 1;\n });\n\n function linkOthers(seriesIndex) {\n return brushLink === 'all' || !!linkedSeriesMap[seriesIndex];\n }\n\n function brushed(rangeInfoList) {\n return !!rangeInfoList.length;\n }\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n });\n\n function stepAParallel(seriesModel, seriesIndex) {\n var coordSys = seriesModel.coordinateSystem;\n hasBrushExists = hasBrushExists || coordSys.hasAxisBrushed();\n linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n });\n }\n\n function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n if (!seriesModel.brushSelector || brushModelNotControll(brushModel, seriesIndex)) {\n return;\n }\n\n zrUtil.each(areas, function (area) {\n if (brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel)) {\n rangeInfoList.push(area);\n }\n\n hasBrushExists = hasBrushExists || brushed(rangeInfoList);\n });\n\n if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n var data_1 = seriesModel.getData();\n data_1.each(function (dataIndex) {\n if (checkInRange(seriesModel, rangeInfoList, data_1, dataIndex)) {\n selectedDataIndexForLink[dataIndex] = 1;\n }\n });\n }\n }\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var seriesBrushSelected = {\n seriesId: seriesModel.id,\n seriesIndex: seriesIndex,\n seriesName: seriesModel.name,\n dataIndex: []\n };\n thisBrushSelected.selected.push(seriesBrushSelected);\n var rangeInfoList = rangeInfoBySeries[seriesIndex];\n var data = seriesModel.getData();\n var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n } : function (dataIndex) {\n return checkInRange(seriesModel, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n };\n (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n });\n });\n dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n}\n;\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n if (!payload) {\n return;\n }\n\n var zr = api.getZr();\n\n if (zr[DISPATCH_FLAG]) {\n return;\n }\n\n if (!zr[DISPATCH_METHOD]) {\n zr[DISPATCH_METHOD] = doDispatch;\n }\n\n var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n if (!api.isDisposed()) {\n var zr = api.getZr();\n zr[DISPATCH_FLAG] = true;\n api.dispatchAction({\n type: 'brushSelect',\n batch: brushSelected\n });\n zr[DISPATCH_FLAG] = false;\n }\n}\n\nfunction checkInRange(seriesModel, rangeInfoList, data, dataIndex) {\n for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n var area = rangeInfoList[i];\n\n if (seriesModel.brushSelector(dataIndex, data, area.selectors, area)) {\n return true;\n }\n }\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n var seriesIndices = brushModel.option.seriesIndex;\n return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nvar boundingRectBuilders = {\n rect: function (area) {\n return getBoundingRectFromMinMax(area.range);\n },\n polygon: function (area) {\n var minMax;\n var range = area.range;\n\n for (var i = 0, len = range.length; i < len; i++) {\n minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n var rg = range[i];\n rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n }\n\n return minMax && getBoundingRectFromMinMax(minMax);\n }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../helper/BrushController';\nimport { layoutCovers } from './visualEncoding';\nimport ComponentView from '../../view/Component';\n\nvar BrushView = function (_super) {\n __extends(BrushView, _super);\n\n function BrushView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BrushView.type;\n return _this;\n }\n\n BrushView.prototype.init = function (ecModel, api) {\n this.ecModel = ecModel;\n this.api = api;\n this.model;\n (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n };\n\n BrushView.prototype.render = function (brushModel, ecModel, api, payload) {\n this.model = brushModel;\n\n this._updateController(brushModel, ecModel, api, payload);\n };\n\n BrushView.prototype.updateTransform = function (brushModel, ecModel, api, payload) {\n layoutCovers(ecModel);\n\n this._updateController(brushModel, ecModel, api, payload);\n };\n\n BrushView.prototype.updateVisual = function (brushModel, ecModel, api, payload) {\n this.updateTransform(brushModel, ecModel, api, payload);\n };\n\n BrushView.prototype.updateView = function (brushModel, ecModel, api, payload) {\n this._updateController(brushModel, ecModel, api, payload);\n };\n\n BrushView.prototype._updateController = function (brushModel, ecModel, api, payload) {\n (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice());\n };\n\n BrushView.prototype.dispose = function () {\n this._brushController.dispose();\n };\n\n BrushView.prototype._onBrush = function (eventParam) {\n var modelId = this.model.id;\n var areas = this.model.brushTargetManager.setOutputRanges(eventParam.areas, this.ecModel);\n (!eventParam.isEnd || eventParam.removeOnClick) && this.api.dispatchAction({\n type: 'brush',\n brushId: modelId,\n areas: zrUtil.clone(areas),\n $from: modelId\n });\n eventParam.isEnd && this.api.dispatchAction({\n type: 'brushEnd',\n brushId: modelId,\n areas: zrUtil.clone(areas),\n $from: modelId\n });\n };\n\n BrushView.type = 'brush';\n return BrushView;\n}(ComponentView);\n\nexport default BrushView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as visualSolution from '../../visual/visualSolution';\nimport Model from '../../model/Model';\nimport ComponentModel from '../../model/Component';\nvar DEFAULT_OUT_OF_BRUSH_COLOR = '#ddd';\n\nvar BrushModel = function (_super) {\n __extends(BrushModel, _super);\n\n function BrushModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = BrushModel.type;\n _this.areas = [];\n _this.brushOption = {};\n return _this;\n }\n\n BrushModel.prototype.optionUpdated = function (newOption, isInit) {\n var thisOption = this.option;\n !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\n var inBrush = thisOption.inBrush = thisOption.inBrush || {};\n thisOption.outOfBrush = thisOption.outOfBrush || {\n color: DEFAULT_OUT_OF_BRUSH_COLOR\n };\n\n if (!inBrush.hasOwnProperty('liftZ')) {\n inBrush.liftZ = 5;\n }\n };\n\n BrushModel.prototype.setAreas = function (areas) {\n if (process.env.NODE_ENV !== 'production') {\n zrUtil.assert(zrUtil.isArray(areas));\n zrUtil.each(areas, function (area) {\n zrUtil.assert(area.brushType, 'Illegal areas');\n });\n }\n\n if (!areas) {\n return;\n }\n\n this.areas = zrUtil.map(areas, function (area) {\n return generateBrushOption(this.option, area);\n }, this);\n };\n\n BrushModel.prototype.setBrushOption = function (brushOption) {\n this.brushOption = generateBrushOption(this.option, brushOption);\n this.brushType = this.brushOption.brushType;\n };\n\n BrushModel.type = 'brush';\n BrushModel.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'];\n BrushModel.defaultOption = {\n seriesIndex: 'all',\n brushType: 'rect',\n brushMode: 'single',\n transformable: true,\n brushStyle: {\n borderWidth: 1,\n color: 'rgba(210,219,238,0.3)',\n borderColor: '#D2DBEE'\n },\n throttleType: 'fixRate',\n throttleDelay: 0,\n removeOnClick: true,\n z: 10000\n };\n return BrushModel;\n}(ComponentModel);\n\nfunction generateBrushOption(option, brushOption) {\n return zrUtil.merge({\n brushType: option.brushType,\n brushMode: option.brushMode,\n transformable: option.transformable,\n brushStyle: new Model(option.brushStyle).getItemStyle(),\n removeOnClick: option.removeOnClick,\n z: option.z\n }, brushOption, true);\n}\n\nexport default BrushModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nvar ICON_TYPES = ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'];\n\nvar BrushFeature = function (_super) {\n __extends(BrushFeature, _super);\n\n function BrushFeature() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n BrushFeature.prototype.render = function (featureModel, ecModel, api) {\n var brushType;\n var brushMode;\n var isBrushed;\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n brushType = brushModel.brushType;\n brushMode = brushModel.brushOption.brushMode || 'single';\n isBrushed = isBrushed || !!brushModel.areas.length;\n });\n this._brushType = brushType;\n this._brushMode = brushMode;\n zrUtil.each(featureModel.get('type', true), function (type) {\n featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal');\n });\n };\n\n BrushFeature.prototype.updateView = function (featureModel, ecModel, api) {\n this.render(featureModel, ecModel, api);\n };\n\n BrushFeature.prototype.getIcons = function () {\n var model = this.model;\n var availableIcons = model.get('icon', true);\n var icons = {};\n zrUtil.each(model.get('type', true), function (type) {\n if (availableIcons[type]) {\n icons[type] = availableIcons[type];\n }\n });\n return icons;\n };\n\n ;\n\n BrushFeature.prototype.onclick = function (ecModel, api, type) {\n var brushType = this._brushType;\n var brushMode = this._brushMode;\n\n if (type === 'clear') {\n api.dispatchAction({\n type: 'axisAreaSelect',\n intervals: []\n });\n api.dispatchAction({\n type: 'brush',\n command: 'clear',\n areas: []\n });\n } else {\n api.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'brush',\n brushOption: {\n brushType: type === 'keep' ? brushType : brushType === type ? false : type,\n brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode\n }\n });\n }\n };\n\n ;\n\n BrushFeature.getDefaultOption = function (ecModel) {\n var defaultOption = {\n show: true,\n type: ICON_TYPES.slice(),\n icon: {\n rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',\n polygon: 'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',\n lineX: 'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',\n lineY: 'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',\n keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',\n clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2'\n },\n title: ecModel.getLocale(['toolbox', 'brush', 'title'])\n };\n return defaultOption;\n };\n\n return BrushFeature;\n}(ToolboxFeature);\n\nexport default BrushFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport brushPreprocessor from './preprocessor';\nimport BrushView from './BrushView';\nimport BrushModel from './BrushModel';\nimport brushVisual from './visualEncoding';\nimport BrushFeature from '../toolbox/feature/Brush';\nimport { registerFeature } from '../toolbox/featureManager';\nexport function install(registers) {\n registers.registerComponentView(BrushView);\n registers.registerComponentModel(BrushModel);\n registers.registerPreprocessor(brushPreprocessor);\n registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, brushVisual);\n registers.registerAction({\n type: 'brush',\n event: 'brush',\n update: 'updateVisual'\n }, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'brush',\n query: payload\n }, function (brushModel) {\n brushModel.setAreas(payload.areas);\n });\n });\n registers.registerAction({\n type: 'brushSelect',\n event: 'brushSelected',\n update: 'none'\n }, function () {});\n registers.registerAction({\n type: 'brushEnd',\n event: 'brushEnd',\n update: 'none'\n }, function () {});\n registerFeature('brush', BrushFeature);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getLayoutRect } from '../../util/layout';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { windowOpen } from '../../util/format';\n\nvar TitleModel = function (_super) {\n __extends(TitleModel, _super);\n\n function TitleModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TitleModel.type;\n _this.layoutMode = {\n type: 'box',\n ignoreSize: true\n };\n return _this;\n }\n\n TitleModel.type = 'title';\n TitleModel.defaultOption = {\n zlevel: 0,\n z: 6,\n show: true,\n text: '',\n target: 'blank',\n subtext: '',\n subtarget: 'blank',\n left: 0,\n top: 0,\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n borderWidth: 0,\n padding: 5,\n itemGap: 10,\n textStyle: {\n fontSize: 18,\n fontWeight: 'bold',\n color: '#464646'\n },\n subtextStyle: {\n fontSize: 12,\n color: '#6E7079'\n }\n };\n return TitleModel;\n}(ComponentModel);\n\nvar TitleView = function (_super) {\n __extends(TitleView, _super);\n\n function TitleView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TitleView.type;\n return _this;\n }\n\n TitleView.prototype.render = function (titleModel, ecModel, api) {\n this.group.removeAll();\n\n if (!titleModel.get('show')) {\n return;\n }\n\n var group = this.group;\n var textStyleModel = titleModel.getModel('textStyle');\n var subtextStyleModel = titleModel.getModel('subtextStyle');\n var textAlign = titleModel.get('textAlign');\n var textVerticalAlign = zrUtil.retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\n var textEl = new graphic.Text({\n style: createTextStyle(textStyleModel, {\n text: titleModel.get('text'),\n fill: textStyleModel.getTextColor()\n }, {\n disableBox: true\n }),\n z2: 10\n });\n var textRect = textEl.getBoundingRect();\n var subText = titleModel.get('subtext');\n var subTextEl = new graphic.Text({\n style: createTextStyle(subtextStyleModel, {\n text: subText,\n fill: subtextStyleModel.getTextColor(),\n y: textRect.height + titleModel.get('itemGap'),\n verticalAlign: 'top'\n }, {\n disableBox: true\n }),\n z2: 10\n });\n var link = titleModel.get('link');\n var sublink = titleModel.get('sublink');\n var triggerEvent = titleModel.get('triggerEvent', true);\n textEl.silent = !link && !triggerEvent;\n subTextEl.silent = !sublink && !triggerEvent;\n\n if (link) {\n textEl.on('click', function () {\n windowOpen(link, '_' + titleModel.get('target'));\n });\n }\n\n if (sublink) {\n subTextEl.on('click', function () {\n windowOpen(sublink, '_' + titleModel.get('subtarget'));\n });\n }\n\n getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent ? {\n componentType: 'title',\n componentIndex: titleModel.componentIndex\n } : null;\n group.add(textEl);\n subText && group.add(subTextEl);\n var groupRect = group.getBoundingRect();\n var layoutOption = titleModel.getBoxLayoutParams();\n layoutOption.width = groupRect.width;\n layoutOption.height = groupRect.height;\n var layoutRect = getLayoutRect(layoutOption, {\n width: api.getWidth(),\n height: api.getHeight()\n }, titleModel.get('padding'));\n\n if (!textAlign) {\n textAlign = titleModel.get('left') || titleModel.get('right');\n\n if (textAlign === 'middle') {\n textAlign = 'center';\n }\n\n if (textAlign === 'right') {\n layoutRect.x += layoutRect.width;\n } else if (textAlign === 'center') {\n layoutRect.x += layoutRect.width / 2;\n }\n }\n\n if (!textVerticalAlign) {\n textVerticalAlign = titleModel.get('top') || titleModel.get('bottom');\n\n if (textVerticalAlign === 'center') {\n textVerticalAlign = 'middle';\n }\n\n if (textVerticalAlign === 'bottom') {\n layoutRect.y += layoutRect.height;\n } else if (textVerticalAlign === 'middle') {\n layoutRect.y += layoutRect.height / 2;\n }\n\n textVerticalAlign = textVerticalAlign || 'top';\n }\n\n group.x = layoutRect.x;\n group.y = layoutRect.y;\n group.markRedraw();\n var alignStyle = {\n align: textAlign,\n verticalAlign: textVerticalAlign\n };\n textEl.setStyle(alignStyle);\n subTextEl.setStyle(alignStyle);\n groupRect = group.getBoundingRect();\n var padding = layoutRect.margin;\n var style = titleModel.getItemStyle(['color', 'opacity']);\n style.fill = titleModel.get('backgroundColor');\n var rect = new graphic.Rect({\n shape: {\n x: groupRect.x - padding[3],\n y: groupRect.y - padding[0],\n width: groupRect.width + padding[1] + padding[3],\n height: groupRect.height + padding[0] + padding[2],\n r: titleModel.get('borderRadius')\n },\n style: style,\n subPixelOptimize: true,\n silent: true\n });\n group.add(rect);\n };\n\n TitleView.type = 'title';\n return TitleView;\n}(ComponentView);\n\nexport function install(registers) {\n registers.registerComponentModel(TitleModel);\n registers.registerComponentView(TitleView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport List from '../../data/List';\nimport { each, isObject, clone } from 'zrender/lib/core/util';\nimport { convertOptionIdName, getDataItemValue } from '../../util/model';\n\nvar TimelineModel = function (_super) {\n __extends(TimelineModel, _super);\n\n function TimelineModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TimelineModel.type;\n _this.layoutMode = 'box';\n return _this;\n }\n\n TimelineModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n\n this._initData();\n };\n\n TimelineModel.prototype.mergeOption = function (option) {\n _super.prototype.mergeOption.apply(this, arguments);\n\n this._initData();\n };\n\n TimelineModel.prototype.setCurrentIndex = function (currentIndex) {\n if (currentIndex == null) {\n currentIndex = this.option.currentIndex;\n }\n\n var count = this._data.count();\n\n if (this.option.loop) {\n currentIndex = (currentIndex % count + count) % count;\n } else {\n currentIndex >= count && (currentIndex = count - 1);\n currentIndex < 0 && (currentIndex = 0);\n }\n\n this.option.currentIndex = currentIndex;\n };\n\n TimelineModel.prototype.getCurrentIndex = function () {\n return this.option.currentIndex;\n };\n\n TimelineModel.prototype.isIndexMax = function () {\n return this.getCurrentIndex() >= this._data.count() - 1;\n };\n\n TimelineModel.prototype.setPlayState = function (state) {\n this.option.autoPlay = !!state;\n };\n\n TimelineModel.prototype.getPlayState = function () {\n return !!this.option.autoPlay;\n };\n\n TimelineModel.prototype._initData = function () {\n var thisOption = this.option;\n var dataArr = thisOption.data || [];\n var axisType = thisOption.axisType;\n var names = this._names = [];\n var processedDataArr;\n\n if (axisType === 'category') {\n processedDataArr = [];\n each(dataArr, function (item, index) {\n var value = convertOptionIdName(getDataItemValue(item), '');\n var newItem;\n\n if (isObject(item)) {\n newItem = clone(item);\n newItem.value = index;\n } else {\n newItem = index;\n }\n\n processedDataArr.push(newItem);\n names.push(value);\n });\n } else {\n processedDataArr = dataArr;\n }\n\n var dimType = {\n category: 'ordinal',\n time: 'time',\n value: 'number'\n }[axisType] || 'number';\n var data = this._data = new List([{\n name: 'value',\n type: dimType\n }], this);\n data.initData(processedDataArr, names);\n };\n\n TimelineModel.prototype.getData = function () {\n return this._data;\n };\n\n TimelineModel.prototype.getCategories = function () {\n if (this.get('axisType') === 'category') {\n return this._names.slice();\n }\n };\n\n TimelineModel.type = 'timeline';\n TimelineModel.defaultOption = {\n zlevel: 0,\n z: 4,\n show: true,\n axisType: 'time',\n realtime: true,\n left: '20%',\n top: null,\n right: '20%',\n bottom: 0,\n width: null,\n height: 40,\n padding: 5,\n controlPosition: 'left',\n autoPlay: false,\n rewind: false,\n loop: true,\n playInterval: 2000,\n currentIndex: 0,\n itemStyle: {},\n label: {\n color: '#000'\n },\n data: []\n };\n return TimelineModel;\n}(ComponentModel);\n\nexport default TimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport TimelineModel from './TimelineModel';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport { mixin } from 'zrender/lib/core/util';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderTimelineModel = function (_super) {\n __extends(SliderTimelineModel, _super);\n\n function SliderTimelineModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SliderTimelineModel.type;\n return _this;\n }\n\n SliderTimelineModel.type = 'timeline.slider';\n SliderTimelineModel.defaultOption = inheritDefaultOption(TimelineModel.defaultOption, {\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n borderWidth: 0,\n orient: 'horizontal',\n inverse: false,\n tooltip: {\n trigger: 'item'\n },\n symbol: 'circle',\n symbolSize: 12,\n lineStyle: {\n show: true,\n width: 2,\n color: '#DAE1F5'\n },\n label: {\n position: 'auto',\n show: true,\n interval: 'auto',\n rotate: 0,\n color: '#A4B1D7'\n },\n itemStyle: {\n color: '#A4B1D7',\n borderWidth: 1\n },\n checkpointStyle: {\n symbol: 'circle',\n symbolSize: 15,\n color: '#316bf3',\n borderColor: '#fff',\n borderWidth: 2,\n shadowBlur: 2,\n shadowOffsetX: 1,\n shadowOffsetY: 1,\n shadowColor: 'rgba(0, 0, 0, 0.3)',\n animation: true,\n animationDuration: 300,\n animationEasing: 'quinticInOut'\n },\n controlStyle: {\n show: true,\n showPlayBtn: true,\n showPrevBtn: true,\n showNextBtn: true,\n itemSize: 24,\n itemGap: 12,\n position: 'left',\n playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z',\n stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z',\n nextIcon: 'M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z',\n prevIcon: 'M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z',\n prevBtnSize: 18,\n nextBtnSize: 18,\n color: '#A4B1D7',\n borderColor: '#A4B1D7',\n borderWidth: 1\n },\n emphasis: {\n label: {\n show: true,\n color: '#6f778d'\n },\n itemStyle: {\n color: '#316BF3'\n },\n controlStyle: {\n color: '#316BF3',\n borderColor: '#316BF3',\n borderWidth: 2\n }\n },\n progress: {\n lineStyle: {\n color: '#316BF3'\n },\n itemStyle: {\n color: '#316BF3'\n },\n label: {\n color: '#6f778d'\n }\n },\n data: []\n });\n return SliderTimelineModel;\n}(TimelineModel);\n\nmixin(SliderTimelineModel, DataFormatMixin.prototype);\nexport default SliderTimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar TimelineView = function (_super) {\n __extends(TimelineView, _super);\n\n function TimelineView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = TimelineView.type;\n return _this;\n }\n\n TimelineView.type = 'timeline';\n return TimelineView;\n}(ComponentView);\n\nexport default TimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../../coord/Axis';\n\nvar TimelineAxis = function (_super) {\n __extends(TimelineAxis, _super);\n\n function TimelineAxis(dim, scale, coordExtent, axisType) {\n var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n _this.type = axisType || 'value';\n return _this;\n }\n\n TimelineAxis.prototype.getLabelModel = function () {\n return this.model.getModel('label');\n };\n\n TimelineAxis.prototype.isHorizontal = function () {\n return this.model.get('orient') === 'horizontal';\n };\n\n return TimelineAxis;\n}(Axis);\n\nexport default TimelineAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport * as layout from '../../util/layout';\nimport TimelineView from './TimelineView';\nimport TimelineAxis from './TimelineAxis';\nimport { createSymbol } from '../../util/symbol';\nimport * as numberUtil from '../../util/number';\nimport { merge, each, extend, isString, bind, defaults, retrieve2 } from 'zrender/lib/core/util';\nimport OrdinalScale from '../../scale/Ordinal';\nimport TimeScale from '../../scale/Time';\nimport IntervalScale from '../../scale/Interval';\nimport { parsePercent } from 'zrender/lib/contain/text';\nimport { makeInner } from '../../util/model';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\nvar PI = Math.PI;\nvar labelDataIndexStore = makeInner();\n\nvar SliderTimelineView = function (_super) {\n __extends(SliderTimelineView, _super);\n\n function SliderTimelineView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SliderTimelineView.type;\n return _this;\n }\n\n SliderTimelineView.prototype.init = function (ecModel, api) {\n this.api = api;\n };\n\n SliderTimelineView.prototype.render = function (timelineModel, ecModel, api) {\n this.model = timelineModel;\n this.api = api;\n this.ecModel = ecModel;\n this.group.removeAll();\n\n if (timelineModel.get('show', true)) {\n var layoutInfo_1 = this._layout(timelineModel, api);\n\n var mainGroup_1 = this._createGroup('_mainGroup');\n\n var labelGroup = this._createGroup('_labelGroup');\n\n var axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel);\n\n timelineModel.formatTooltip = function (dataIndex) {\n var name = axis_1.scale.getLabel({\n value: dataIndex\n });\n return createTooltipMarkup('nameValue', {\n noName: true,\n value: name\n });\n };\n\n each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\n this['_render' + name](layoutInfo_1, mainGroup_1, axis_1, timelineModel);\n }, this);\n\n this._renderAxisLabel(layoutInfo_1, labelGroup, axis_1, timelineModel);\n\n this._position(layoutInfo_1, timelineModel);\n }\n\n this._doPlayStop();\n\n this._updateTicksStatus();\n };\n\n SliderTimelineView.prototype.remove = function () {\n this._clearTimer();\n\n this.group.removeAll();\n };\n\n SliderTimelineView.prototype.dispose = function () {\n this._clearTimer();\n };\n\n SliderTimelineView.prototype._layout = function (timelineModel, api) {\n var labelPosOpt = timelineModel.get(['label', 'position']);\n var orient = timelineModel.get('orient');\n var viewRect = getViewRect(timelineModel, api);\n var parsedLabelPos;\n\n if (labelPosOpt == null || labelPosOpt === 'auto') {\n parsedLabelPos = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-';\n } else if (isString(labelPosOpt)) {\n parsedLabelPos = {\n horizontal: {\n top: '-',\n bottom: '+'\n },\n vertical: {\n left: '-',\n right: '+'\n }\n }[orient][labelPosOpt];\n } else {\n parsedLabelPos = labelPosOpt;\n }\n\n var labelAlignMap = {\n horizontal: 'center',\n vertical: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'left' : 'right'\n };\n var labelBaselineMap = {\n horizontal: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'top' : 'bottom',\n vertical: 'middle'\n };\n var rotationMap = {\n horizontal: 0,\n vertical: PI / 2\n };\n var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\n var controlModel = timelineModel.getModel('controlStyle');\n var showControl = controlModel.get('show', true);\n var controlSize = showControl ? controlModel.get('itemSize') : 0;\n var controlGap = showControl ? controlModel.get('itemGap') : 0;\n var sizePlusGap = controlSize + controlGap;\n var labelRotation = timelineModel.get(['label', 'rotate']) || 0;\n labelRotation = labelRotation * PI / 180;\n var playPosition;\n var prevBtnPosition;\n var nextBtnPosition;\n var controlPosition = controlModel.get('position', true);\n var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\n var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\n var showNextBtn = showControl && controlModel.get('showNextBtn', true);\n var xLeft = 0;\n var xRight = mainLength;\n\n if (controlPosition === 'left' || controlPosition === 'bottom') {\n showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\n showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n } else {\n showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n }\n\n var axisExtent = [xLeft, xRight];\n\n if (timelineModel.get('inverse')) {\n axisExtent.reverse();\n }\n\n return {\n viewRect: viewRect,\n mainLength: mainLength,\n orient: orient,\n rotation: rotationMap[orient],\n labelRotation: labelRotation,\n labelPosOpt: parsedLabelPos,\n labelAlign: timelineModel.get(['label', 'align']) || labelAlignMap[orient],\n labelBaseline: timelineModel.get(['label', 'verticalAlign']) || timelineModel.get(['label', 'baseline']) || labelBaselineMap[orient],\n playPosition: playPosition,\n prevBtnPosition: prevBtnPosition,\n nextBtnPosition: nextBtnPosition,\n axisExtent: axisExtent,\n controlSize: controlSize,\n controlGap: controlGap\n };\n };\n\n SliderTimelineView.prototype._position = function (layoutInfo, timelineModel) {\n var mainGroup = this._mainGroup;\n var labelGroup = this._labelGroup;\n var viewRect = layoutInfo.viewRect;\n\n if (layoutInfo.orient === 'vertical') {\n var m = matrix.create();\n var rotateOriginX = viewRect.x;\n var rotateOriginY = viewRect.y + viewRect.height;\n matrix.translate(m, m, [-rotateOriginX, -rotateOriginY]);\n matrix.rotate(m, m, -PI / 2);\n matrix.translate(m, m, [rotateOriginX, rotateOriginY]);\n viewRect = viewRect.clone();\n viewRect.applyTransform(m);\n }\n\n var viewBound = getBound(viewRect);\n var mainBound = getBound(mainGroup.getBoundingRect());\n var labelBound = getBound(labelGroup.getBoundingRect());\n var mainPosition = [mainGroup.x, mainGroup.y];\n var labelsPosition = [labelGroup.x, labelGroup.y];\n labelsPosition[0] = mainPosition[0] = viewBound[0][0];\n var labelPosOpt = layoutInfo.labelPosOpt;\n\n if (labelPosOpt == null || isString(labelPosOpt)) {\n var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\n } else {\n var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n labelsPosition[1] = mainPosition[1] + labelPosOpt;\n }\n\n mainGroup.setPosition(mainPosition);\n labelGroup.setPosition(labelsPosition);\n mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\n setOrigin(mainGroup);\n setOrigin(labelGroup);\n\n function setOrigin(targetGroup) {\n targetGroup.originX = viewBound[0][0] - targetGroup.x;\n targetGroup.originY = viewBound[1][0] - targetGroup.y;\n }\n\n function getBound(rect) {\n return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]];\n }\n\n function toBound(fromPos, from, to, dimIdx, boundIdx) {\n fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\n }\n };\n\n SliderTimelineView.prototype._createAxis = function (layoutInfo, timelineModel) {\n var data = timelineModel.getData();\n var axisType = timelineModel.get('axisType');\n var scale = createScaleByModel(timelineModel, axisType);\n\n scale.getTicks = function () {\n return data.mapArray(['value'], function (value) {\n return {\n value: value\n };\n });\n };\n\n var dataExtent = data.getDataExtent('value');\n scale.setExtent(dataExtent[0], dataExtent[1]);\n scale.niceTicks();\n var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\n axis.model = timelineModel;\n return axis;\n };\n\n SliderTimelineView.prototype._createGroup = function (key) {\n var newGroup = this[key] = new graphic.Group();\n this.group.add(newGroup);\n return newGroup;\n };\n\n SliderTimelineView.prototype._renderAxisLine = function (layoutInfo, group, axis, timelineModel) {\n var axisExtent = axis.getExtent();\n\n if (!timelineModel.get(['lineStyle', 'show'])) {\n return;\n }\n\n var line = new graphic.Line({\n shape: {\n x1: axisExtent[0],\n y1: 0,\n x2: axisExtent[1],\n y2: 0\n },\n style: extend({\n lineCap: 'round'\n }, timelineModel.getModel('lineStyle').getLineStyle()),\n silent: true,\n z2: 1\n });\n group.add(line);\n var progressLine = this._progressLine = new graphic.Line({\n shape: {\n x1: axisExtent[0],\n x2: this._currentPointer ? this._currentPointer.x : axisExtent[0],\n y1: 0,\n y2: 0\n },\n style: defaults({\n lineCap: 'round',\n lineWidth: line.style.lineWidth\n }, timelineModel.getModel(['progress', 'lineStyle']).getLineStyle()),\n silent: true,\n z2: 1\n });\n group.add(progressLine);\n };\n\n SliderTimelineView.prototype._renderAxisTick = function (layoutInfo, group, axis, timelineModel) {\n var _this = this;\n\n var data = timelineModel.getData();\n var ticks = axis.scale.getTicks();\n this._tickSymbols = [];\n each(ticks, function (tick) {\n var tickCoord = axis.dataToCoord(tick.value);\n var itemModel = data.getItemModel(tick.value);\n var itemStyleModel = itemModel.getModel('itemStyle');\n var hoverStyleModel = itemModel.getModel(['emphasis', 'itemStyle']);\n var progressStyleModel = itemModel.getModel(['progress', 'itemStyle']);\n var symbolOpt = {\n x: tickCoord,\n y: 0,\n onclick: bind(_this._changeTimeline, _this, tick.value)\n };\n var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\n el.ensureState('emphasis').style = hoverStyleModel.getItemStyle();\n el.ensureState('progress').style = progressStyleModel.getItemStyle();\n enableHoverEmphasis(el);\n var ecData = getECData(el);\n\n if (itemModel.get('tooltip')) {\n ecData.dataIndex = tick.value;\n ecData.dataModel = timelineModel;\n } else {\n ecData.dataIndex = ecData.dataModel = null;\n }\n\n _this._tickSymbols.push(el);\n });\n };\n\n SliderTimelineView.prototype._renderAxisLabel = function (layoutInfo, group, axis, timelineModel) {\n var _this = this;\n\n var labelModel = axis.getLabelModel();\n\n if (!labelModel.get('show')) {\n return;\n }\n\n var data = timelineModel.getData();\n var labels = axis.getViewLabels();\n this._tickLabels = [];\n each(labels, function (labelItem) {\n var dataIndex = labelItem.tickValue;\n var itemModel = data.getItemModel(dataIndex);\n var normalLabelModel = itemModel.getModel('label');\n var hoverLabelModel = itemModel.getModel(['emphasis', 'label']);\n var progressLabelModel = itemModel.getModel(['progress', 'label']);\n var tickCoord = axis.dataToCoord(labelItem.tickValue);\n var textEl = new graphic.Text({\n x: tickCoord,\n y: 0,\n rotation: layoutInfo.labelRotation - layoutInfo.rotation,\n onclick: bind(_this._changeTimeline, _this, dataIndex),\n silent: false,\n style: createTextStyle(normalLabelModel, {\n text: labelItem.formattedLabel,\n align: layoutInfo.labelAlign,\n verticalAlign: layoutInfo.labelBaseline\n })\n });\n textEl.ensureState('emphasis').style = createTextStyle(hoverLabelModel);\n textEl.ensureState('progress').style = createTextStyle(progressLabelModel);\n group.add(textEl);\n enableHoverEmphasis(textEl);\n labelDataIndexStore(textEl).dataIndex = dataIndex;\n\n _this._tickLabels.push(textEl);\n });\n };\n\n SliderTimelineView.prototype._renderControl = function (layoutInfo, group, axis, timelineModel) {\n var controlSize = layoutInfo.controlSize;\n var rotation = layoutInfo.rotation;\n var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\n var hoverStyle = timelineModel.getModel(['emphasis', 'controlStyle']).getItemStyle();\n var playState = timelineModel.getPlayState();\n var inverse = timelineModel.get('inverse', true);\n makeBtn(layoutInfo.nextBtnPosition, 'next', bind(this._changeTimeline, this, inverse ? '-' : '+'));\n makeBtn(layoutInfo.prevBtnPosition, 'prev', bind(this._changeTimeline, this, inverse ? '+' : '-'));\n makeBtn(layoutInfo.playPosition, playState ? 'stop' : 'play', bind(this._handlePlayClick, this, !playState), true);\n\n function makeBtn(position, iconName, onclick, willRotate) {\n if (!position) {\n return;\n }\n\n var iconSize = parsePercent(retrieve2(timelineModel.get(['controlStyle', iconName + 'BtnSize']), controlSize), controlSize);\n var rect = [0, -iconSize / 2, iconSize, iconSize];\n var opt = {\n position: position,\n origin: [controlSize / 2, 0],\n rotation: willRotate ? -rotation : 0,\n rectHover: true,\n style: itemStyle,\n onclick: onclick\n };\n var btn = makeControlIcon(timelineModel, iconName + 'Icon', rect, opt);\n btn.ensureState('emphasis').style = hoverStyle;\n group.add(btn);\n enableHoverEmphasis(btn);\n }\n };\n\n SliderTimelineView.prototype._renderCurrentPointer = function (layoutInfo, group, axis, timelineModel) {\n var data = timelineModel.getData();\n var currentIndex = timelineModel.getCurrentIndex();\n var pointerModel = data.getItemModel(currentIndex).getModel('checkpointStyle');\n var me = this;\n var callback = {\n onCreate: function (pointer) {\n pointer.draggable = true;\n pointer.drift = bind(me._handlePointerDrag, me);\n pointer.ondragend = bind(me._handlePointerDragend, me);\n pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel, true);\n },\n onUpdate: function (pointer) {\n pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel);\n }\n };\n this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\n };\n\n SliderTimelineView.prototype._handlePlayClick = function (nextState) {\n this._clearTimer();\n\n this.api.dispatchAction({\n type: 'timelinePlayChange',\n playState: nextState,\n from: this.uid\n });\n };\n\n SliderTimelineView.prototype._handlePointerDrag = function (dx, dy, e) {\n this._clearTimer();\n\n this._pointerChangeTimeline([e.offsetX, e.offsetY]);\n };\n\n SliderTimelineView.prototype._handlePointerDragend = function (e) {\n this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\n };\n\n SliderTimelineView.prototype._pointerChangeTimeline = function (mousePos, trigger) {\n var toCoord = this._toAxisCoord(mousePos)[0];\n\n var axis = this._axis;\n var axisExtent = numberUtil.asc(axis.getExtent().slice());\n toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\n toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\n this._currentPointer.x = toCoord;\n\n this._currentPointer.markRedraw();\n\n this._progressLine.shape.x2 = toCoord;\n\n this._progressLine.dirty();\n\n var targetDataIndex = this._findNearestTick(toCoord);\n\n var timelineModel = this.model;\n\n if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get('realtime')) {\n this._changeTimeline(targetDataIndex);\n }\n };\n\n SliderTimelineView.prototype._doPlayStop = function () {\n var _this = this;\n\n this._clearTimer();\n\n if (this.model.getPlayState()) {\n this._timer = setTimeout(function () {\n var timelineModel = _this.model;\n\n _this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1));\n }, this.model.get('playInterval'));\n }\n };\n\n SliderTimelineView.prototype._toAxisCoord = function (vertex) {\n var trans = this._mainGroup.getLocalTransform();\n\n return graphic.applyTransform(vertex, trans, true);\n };\n\n SliderTimelineView.prototype._findNearestTick = function (axisCoord) {\n var data = this.model.getData();\n var dist = Infinity;\n var targetDataIndex;\n var axis = this._axis;\n data.each(['value'], function (value, dataIndex) {\n var coord = axis.dataToCoord(value);\n var d = Math.abs(coord - axisCoord);\n\n if (d < dist) {\n dist = d;\n targetDataIndex = dataIndex;\n }\n });\n return targetDataIndex;\n };\n\n SliderTimelineView.prototype._clearTimer = function () {\n if (this._timer) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n };\n\n SliderTimelineView.prototype._changeTimeline = function (nextIndex) {\n var currentIndex = this.model.getCurrentIndex();\n\n if (nextIndex === '+') {\n nextIndex = currentIndex + 1;\n } else if (nextIndex === '-') {\n nextIndex = currentIndex - 1;\n }\n\n this.api.dispatchAction({\n type: 'timelineChange',\n currentIndex: nextIndex,\n from: this.uid\n });\n };\n\n SliderTimelineView.prototype._updateTicksStatus = function () {\n var currentIndex = this.model.getCurrentIndex();\n var tickSymbols = this._tickSymbols;\n var tickLabels = this._tickLabels;\n\n if (tickSymbols) {\n for (var i = 0; i < tickSymbols.length; i++) {\n tickSymbols && tickSymbols[i] && tickSymbols[i].toggleState('progress', i < currentIndex);\n }\n }\n\n if (tickLabels) {\n for (var i = 0; i < tickLabels.length; i++) {\n tickLabels && tickLabels[i] && tickLabels[i].toggleState('progress', labelDataIndexStore(tickLabels[i]).dataIndex <= currentIndex);\n }\n }\n };\n\n SliderTimelineView.type = 'timeline.slider';\n return SliderTimelineView;\n}(TimelineView);\n\nfunction createScaleByModel(model, axisType) {\n axisType = axisType || model.get('type');\n\n if (axisType) {\n switch (axisType) {\n case 'category':\n return new OrdinalScale({\n ordinalMeta: model.getCategories(),\n extent: [Infinity, -Infinity]\n });\n\n case 'time':\n return new TimeScale({\n locale: model.ecModel.getLocaleModel(),\n useUTC: model.ecModel.get('useUTC')\n });\n\n default:\n return new IntervalScale();\n }\n }\n}\n\nfunction getViewRect(model, api) {\n return layout.getLayoutRect(model.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n }, model.get('padding'));\n}\n\nfunction makeControlIcon(timelineModel, objPath, rect, opts) {\n var style = opts.style;\n var icon = graphic.createIcon(timelineModel.get(['controlStyle', objPath]), opts || {}, new BoundingRect(rect[0], rect[1], rect[2], rect[3]));\n\n if (style) {\n icon.setStyle(style);\n }\n\n return icon;\n}\n\nfunction giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\n var color = itemStyleModel.get('color');\n\n if (!symbol) {\n var symbolType = hostModel.get('symbol');\n symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\n symbol.setStyle('strokeNoScale', true);\n group.add(symbol);\n callback && callback.onCreate(symbol);\n } else {\n symbol.setColor(color);\n group.add(symbol);\n callback && callback.onUpdate(symbol);\n }\n\n var itemStyle = itemStyleModel.getItemStyle(['color']);\n symbol.setStyle(itemStyle);\n opt = merge({\n rectHover: true,\n z2: 100\n }, opt, true);\n var symbolSize = hostModel.get('symbolSize');\n symbolSize = symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n opt.scaleX = symbolSize[0] / 2;\n opt.scaleY = symbolSize[1] / 2;\n var symbolOffset = hostModel.get('symbolOffset');\n\n if (symbolOffset) {\n opt.x = opt.x || 0;\n opt.y = opt.y || 0;\n opt.x += numberUtil.parsePercent(symbolOffset[0], symbolSize[0]);\n opt.y += numberUtil.parsePercent(symbolOffset[1], symbolSize[1]);\n }\n\n var symbolRotate = hostModel.get('symbolRotate');\n opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n symbol.attr(opt);\n symbol.updateTransform();\n return symbol;\n}\n\nfunction pointerMoveTo(pointer, progressLine, dataIndex, axis, timelineModel, noAnimation) {\n if (pointer.dragging) {\n return;\n }\n\n var pointerModel = timelineModel.getModel('checkpointStyle');\n var toCoord = axis.dataToCoord(timelineModel.getData().get('value', dataIndex));\n\n if (noAnimation || !pointerModel.get('animation', true)) {\n pointer.attr({\n x: toCoord,\n y: 0\n });\n progressLine && progressLine.attr({\n shape: {\n x2: toCoord\n }\n });\n } else {\n var animationCfg = {\n duration: pointerModel.get('animationDuration', true),\n easing: pointerModel.get('animationEasing', true)\n };\n pointer.stopAnimation(null, true);\n pointer.animateTo({\n x: toCoord,\n y: 0\n }, animationCfg);\n progressLine && progressLine.animateTo({\n shape: {\n x2: toCoord\n }\n }, animationCfg);\n }\n}\n\nexport default SliderTimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { defaults } from 'zrender/lib/core/util';\nexport function installTimelineAction(registers) {\n registers.registerAction({\n type: 'timelineChange',\n event: 'timelineChanged',\n update: 'prepareAndUpdate'\n }, function (payload, ecModel) {\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel && payload.currentIndex != null) {\n timelineModel.setCurrentIndex(payload.currentIndex);\n\n if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) {\n timelineModel.setPlayState(false);\n }\n }\n\n ecModel.resetOption('timeline', {\n replaceMerge: timelineModel.get('replaceMerge', true)\n });\n return defaults({\n currentIndex: timelineModel.option.currentIndex\n }, payload);\n });\n registers.registerAction({\n type: 'timelinePlayChange',\n event: 'timelinePlayChanged',\n update: 'update'\n }, function (payload, ecModel) {\n var timelineModel = ecModel.getComponent('timeline');\n\n if (timelineModel && payload.playState != null) {\n timelineModel.setPlayState(payload.playState);\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function timelinePreprocessor(option) {\n var timelineOpt = option && option.timeline;\n\n if (!zrUtil.isArray(timelineOpt)) {\n timelineOpt = timelineOpt ? [timelineOpt] : [];\n }\n\n zrUtil.each(timelineOpt, function (opt) {\n if (!opt) {\n return;\n }\n\n compatibleEC2(opt);\n });\n}\n\nfunction compatibleEC2(opt) {\n var type = opt.type;\n var ec2Types = {\n 'number': 'value',\n 'time': 'time'\n };\n\n if (ec2Types[type]) {\n opt.axisType = ec2Types[type];\n delete opt.type;\n }\n\n transferItem(opt);\n\n if (has(opt, 'controlPosition')) {\n var controlStyle = opt.controlStyle || (opt.controlStyle = {});\n\n if (!has(controlStyle, 'position')) {\n controlStyle.position = opt.controlPosition;\n }\n\n if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\n controlStyle.show = false;\n delete controlStyle.position;\n }\n\n delete opt.controlPosition;\n }\n\n zrUtil.each(opt.data || [], function (dataItem) {\n if (zrUtil.isObject(dataItem) && !zrUtil.isArray(dataItem)) {\n if (!has(dataItem, 'value') && has(dataItem, 'name')) {\n dataItem.value = dataItem.name;\n }\n\n transferItem(dataItem);\n }\n });\n}\n\nfunction transferItem(opt) {\n var itemStyle = opt.itemStyle || (opt.itemStyle = {});\n var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {});\n var label = opt.label || opt.label || {};\n var labelNormal = label.normal || (label.normal = {});\n var excludeLabelAttr = {\n normal: 1,\n emphasis: 1\n };\n zrUtil.each(label, function (value, name) {\n if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\n labelNormal[name] = value;\n }\n });\n\n if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\n label.emphasis = itemStyleEmphasis.label;\n delete itemStyleEmphasis.label;\n }\n}\n\nfunction has(obj, attr) {\n return obj.hasOwnProperty(attr);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderTimelineModel from './SliderTimelineModel';\nimport SliderTimelineView from './SliderTimelineView';\nimport { installTimelineAction } from './timelineAction';\nimport preprocessor from './preprocessor';\nexport function install(registers) {\n registers.registerComponentModel(SliderTimelineModel);\n registers.registerComponentView(SliderTimelineView);\n registers.registerSubTypeDefaulter('timeline', function () {\n return 'slider';\n });\n installTimelineAction(registers);\n registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport ComponentModel from '../../model/Component';\nimport { makeInner, defaultEmphasis } from '../../util/model';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\n\nfunction fillLabel(opt) {\n defaultEmphasis(opt, 'label', ['show']);\n}\n\nvar inner = makeInner();\n\nvar MarkerModel = function (_super) {\n __extends(MarkerModel, _super);\n\n function MarkerModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkerModel.type;\n _this.createdBySelf = false;\n return _this;\n }\n\n MarkerModel.prototype.init = function (option, parentModel, ecModel) {\n if (process.env.NODE_ENV !== 'production') {\n if (this.type === 'marker') {\n throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\n }\n }\n\n this.mergeDefaultAndTheme(option, ecModel);\n\n this._mergeOption(option, ecModel, false, true);\n };\n\n MarkerModel.prototype.isAnimationEnabled = function () {\n if (env.node) {\n return false;\n }\n\n var hostSeries = this.__hostSeries;\n return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n };\n\n MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\n this._mergeOption(newOpt, ecModel, false, false);\n };\n\n MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\n var componentType = this.mainType;\n\n if (!createdBySelf) {\n ecModel.eachSeries(function (seriesModel) {\n var markerOpt = seriesModel.get(this.mainType, true);\n var markerModel = inner(seriesModel)[componentType];\n\n if (!markerOpt || !markerOpt.data) {\n inner(seriesModel)[componentType] = null;\n return;\n }\n\n if (!markerModel) {\n if (isInit) {\n fillLabel(markerOpt);\n }\n\n zrUtil.each(markerOpt.data, function (item) {\n if (item instanceof Array) {\n fillLabel(item[0]);\n fillLabel(item[1]);\n } else {\n fillLabel(item);\n }\n });\n markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\n zrUtil.extend(markerModel, {\n mainType: this.mainType,\n seriesIndex: seriesModel.seriesIndex,\n name: seriesModel.name,\n createdBySelf: true\n });\n markerModel.__hostSeries = seriesModel;\n } else {\n markerModel._mergeOption(markerOpt, ecModel, true);\n }\n\n inner(seriesModel)[componentType] = markerModel;\n }, this);\n }\n };\n\n MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n var data = this.getData();\n var value = this.getRawValue(dataIndex);\n var itemName = data.getName(dataIndex);\n return createTooltipMarkup('section', {\n header: this.name,\n blocks: [createTooltipMarkup('nameValue', {\n name: itemName,\n value: value,\n noName: !itemName,\n noValue: value == null\n })]\n });\n };\n\n MarkerModel.prototype.getData = function () {\n return this._data;\n };\n\n MarkerModel.prototype.setData = function (data) {\n this._data = data;\n };\n\n MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\n return inner(seriesModel)[componentType];\n };\n\n MarkerModel.type = 'marker';\n MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\n return MarkerModel;\n}(ComponentModel);\n\nzrUtil.mixin(MarkerModel, DataFormatMixin.prototype);\nexport default MarkerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkPointModel = function (_super) {\n __extends(MarkPointModel, _super);\n\n function MarkPointModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkPointModel.type;\n return _this;\n }\n\n MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\n };\n\n MarkPointModel.type = 'markPoint';\n MarkPointModel.defaultOption = {\n zlevel: 0,\n z: 5,\n symbol: 'pin',\n symbolSize: 50,\n tooltip: {\n trigger: 'item'\n },\n label: {\n show: true,\n position: 'inside'\n },\n itemStyle: {\n borderWidth: 2\n },\n emphasis: {\n label: {\n show: true\n }\n }\n };\n return MarkPointModel;\n}(MarkerModel);\n\nexport default MarkPointModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../../util/number';\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { indexOf, curry, clone, isArray } from 'zrender/lib/core/util';\n\nfunction hasXOrY(item) {\n return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\n}\n\nfunction hasXAndY(item) {\n return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\n}\n\nfunction markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\n var coordArr = [];\n var stacked = isDimensionStacked(data, targetDataDim);\n var calcDataDim = stacked ? data.getCalculationInfo('stackResultDimension') : targetDataDim;\n var value = numCalculate(data, calcDataDim, markerType);\n var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\n coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\n coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\n var coordArrValue = data.get(targetDataDim, dataIndex);\n var precision = numberUtil.getPrecision(data.get(targetDataDim, dataIndex));\n precision = Math.min(precision, 20);\n\n if (precision >= 0) {\n coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\n }\n\n return [coordArr, coordArrValue];\n}\n\nvar markerTypeCalculator = {\n min: curry(markerTypeCalculatorWithExtent, 'min'),\n max: curry(markerTypeCalculatorWithExtent, 'max'),\n average: curry(markerTypeCalculatorWithExtent, 'average'),\n median: curry(markerTypeCalculatorWithExtent, 'median')\n};\nexport function dataTransform(seriesModel, item) {\n var data = seriesModel.getData();\n var coordSys = seriesModel.coordinateSystem;\n\n if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\n var dims = coordSys.dimensions;\n var axisInfo = getAxisInfo(item, data, coordSys, seriesModel);\n item = clone(item);\n\n if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) {\n var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\n var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\n var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\n item.coord = coordInfo[0];\n item.value = coordInfo[1];\n } else {\n var coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis];\n\n for (var i = 0; i < 2; i++) {\n if (markerTypeCalculator[coord[i]]) {\n coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\n }\n }\n\n item.coord = coord;\n }\n }\n\n return item;\n}\nexport function getAxisInfo(item, data, coordSys, seriesModel) {\n var ret = {};\n\n if (item.valueIndex != null || item.valueDim != null) {\n ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim;\n ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\n ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n } else {\n ret.baseAxis = seriesModel.getBaseAxis();\n ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\n }\n\n return ret;\n}\n\nfunction dataDimToCoordDim(seriesModel, dataDim) {\n var data = seriesModel.getData();\n var dimensions = data.dimensions;\n dataDim = data.getDimension(dataDim);\n\n for (var i = 0; i < dimensions.length; i++) {\n var dimItem = data.getDimensionInfo(dimensions[i]);\n\n if (dimItem.name === dataDim) {\n return dimItem.coordDim;\n }\n }\n}\n\nexport function dataFilter(coordSys, item) {\n return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true;\n}\nexport function dimValueGetter(item, dimName, dataIndex, dimIndex) {\n if (dimIndex < 2) {\n return item.coord && item.coord[dimIndex];\n }\n\n return item.value;\n}\nexport function numCalculate(data, valueDataDim, type) {\n if (type === 'average') {\n var sum_1 = 0;\n var count_1 = 0;\n data.each(valueDataDim, function (val, idx) {\n if (!isNaN(val)) {\n sum_1 += val;\n count_1++;\n }\n });\n return sum_1 / count_1;\n } else if (type === 'median') {\n return data.getMedian(valueDataDim);\n } else {\n return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { enterBlur } from '../../util/states';\nvar inner = makeInner();\n\nvar MarkerView = function (_super) {\n __extends(MarkerView, _super);\n\n function MarkerView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkerView.type;\n return _this;\n }\n\n MarkerView.prototype.init = function () {\n this.markerGroupMap = createHashMap();\n };\n\n MarkerView.prototype.render = function (markerModel, ecModel, api) {\n var _this = this;\n\n var markerGroupMap = this.markerGroupMap;\n markerGroupMap.each(function (item) {\n inner(item).keep = false;\n });\n ecModel.eachSeries(function (seriesModel) {\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\n });\n markerGroupMap.each(function (item) {\n !inner(item).keep && _this.group.remove(item.group);\n });\n };\n\n MarkerView.prototype.markKeep = function (drawGroup) {\n inner(drawGroup).keep = true;\n };\n\n MarkerView.prototype.blurSeries = function (seriesModelList) {\n var _this = this;\n\n each(seriesModelList, function (seriesModel) {\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n\n if (markerModel) {\n var data = markerModel.getData();\n data.eachItemGraphicEl(function (el) {\n if (el) {\n enterBlur(el);\n }\n });\n }\n });\n };\n\n MarkerView.type = 'marker';\n return MarkerView;\n}(ComponentView);\n\nexport default MarkerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../../chart/helper/SymbolDraw';\nimport * as numberUtil from '../../util/number';\nimport List from '../../data/List';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport MarkerModel from './MarkerModel';\nimport { isFunction, map, defaults, filter, curry } from 'zrender/lib/core/util';\nimport { getECData } from '../../util/innerStore';\nimport { getVisualFromData } from '../../visual/helper';\n\nfunction updateMarkerLayout(mpData, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n mpData.each(function (idx) {\n var itemModel = mpData.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } else if (seriesModel.getMarkerPosition) {\n point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\n } else if (coordSys) {\n var x = mpData.get(coordSys.dimensions[0], idx);\n var y = mpData.get(coordSys.dimensions[1], idx);\n point = coordSys.dataToPoint([x, y]);\n }\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n\n mpData.setItemLayout(idx, point);\n });\n}\n\nvar MarkPointView = function (_super) {\n __extends(MarkPointView, _super);\n\n function MarkPointView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkPointView.type;\n return _this;\n }\n\n MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\n\n if (mpModel) {\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\n this.markerGroupMap.get(seriesModel.id).updateLayout();\n }\n }, this);\n };\n\n MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var symbolDrawMap = this.markerGroupMap;\n var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw());\n var mpData = createList(coordSys, seriesModel, mpModel);\n mpModel.setData(mpData);\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\n mpData.each(function (idx) {\n var itemModel = mpData.getItemModel(idx);\n var symbol = itemModel.getShallow('symbol');\n var symbolSize = itemModel.getShallow('symbolSize');\n var symbolRotate = itemModel.getShallow('symbolRotate');\n\n if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate)) {\n var rawIdx = mpModel.getRawValue(idx);\n var dataParams = mpModel.getDataParams(idx);\n\n if (isFunction(symbol)) {\n symbol = symbol(rawIdx, dataParams);\n }\n\n if (isFunction(symbolSize)) {\n symbolSize = symbolSize(rawIdx, dataParams);\n }\n\n if (isFunction(symbolRotate)) {\n symbolRotate = symbolRotate(rawIdx, dataParams);\n }\n }\n\n var style = itemModel.getModel('itemStyle').getItemStyle();\n var color = getVisualFromData(seriesData, 'color');\n\n if (!style.fill) {\n style.fill = color;\n }\n\n mpData.setItemVisual(idx, {\n symbol: symbol,\n symbolSize: symbolSize,\n symbolRotate: symbolRotate,\n style: style\n });\n });\n symbolDraw.updateData(mpData);\n this.group.add(symbolDraw.group);\n mpData.eachItemGraphicEl(function (el) {\n el.traverse(function (child) {\n getECData(child).dataModel = mpModel;\n });\n });\n this.markKeep(symbolDraw);\n symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\n };\n\n MarkPointView.type = 'markPoint';\n return MarkPointView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mpModel) {\n var coordDimsInfos;\n\n if (coordSys) {\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n return defaults({\n name: coordDim\n }, info);\n });\n } else {\n coordDimsInfos = [{\n name: 'value',\n type: 'float'\n }];\n }\n\n var mpData = new List(coordDimsInfos, mpModel);\n var dataOpt = map(mpModel.get('data'), curry(markerHelper.dataTransform, seriesModel));\n\n if (coordSys) {\n dataOpt = filter(dataOpt, curry(markerHelper.dataFilter, coordSys));\n }\n\n mpData.initData(dataOpt, null, coordSys ? markerHelper.dimValueGetter : function (item) {\n return item.value;\n });\n return mpData;\n}\n\nexport default MarkPointView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkPointModel from './MarkPointModel';\nimport MarkPointView from './MarkPointView';\nexport function install(registers) {\n registers.registerComponentModel(MarkPointModel);\n registers.registerComponentView(MarkPointView);\n registers.registerPreprocessor(function (opt) {\n opt.markPoint = opt.markPoint || {};\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkLineModel = function (_super) {\n __extends(MarkLineModel, _super);\n\n function MarkLineModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkLineModel.type;\n return _this;\n }\n\n MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\n };\n\n MarkLineModel.type = 'markLine';\n MarkLineModel.defaultOption = {\n zlevel: 0,\n z: 5,\n symbol: ['circle', 'arrow'],\n symbolSize: [8, 16],\n precision: 2,\n tooltip: {\n trigger: 'item'\n },\n label: {\n show: true,\n position: 'end',\n distance: 5\n },\n lineStyle: {\n type: 'dashed'\n },\n emphasis: {\n label: {\n show: true\n },\n lineStyle: {\n width: 3\n }\n },\n animationEasing: 'linear'\n };\n return MarkLineModel;\n}(MarkerModel);\n\nexport default MarkLineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as markerHelper from './markerHelper';\nimport LineDraw from '../../chart/helper/LineDraw';\nimport MarkerView from './MarkerView';\nimport { getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getECData } from '../../util/innerStore';\nimport MarkerModel from './MarkerModel';\nimport { isArray, retrieve, clone, extend, logError, merge, map, defaults, curry, filter } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nvar inner = makeInner();\n\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n var data = seriesModel.getData();\n var itemArray;\n\n if (!isArray(item)) {\n var mlType = item.type;\n\n if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' || item.xAxis != null || item.yAxis != null) {\n var valueAxis = void 0;\n var value = void 0;\n\n if (item.yAxis != null || item.xAxis != null) {\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n value = retrieve(item.yAxis, item.xAxis);\n } else {\n var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n valueAxis = axisInfo.valueAxis;\n var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n value = markerHelper.numCalculate(data, valueDataDim, mlType);\n }\n\n var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n var baseIndex = 1 - valueIndex;\n var mlFrom = clone(item);\n var mlTo = {\n coord: []\n };\n mlFrom.type = null;\n mlFrom.coord = [];\n mlFrom.coord[baseIndex] = -Infinity;\n mlTo.coord[baseIndex] = Infinity;\n var precision = mlModel.get('precision');\n\n if (precision >= 0 && typeof value === 'number') {\n value = +value.toFixed(Math.min(precision, 20));\n }\n\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n itemArray = [mlFrom, mlTo, {\n type: mlType,\n valueIndex: item.valueIndex,\n value: value\n }];\n } else {\n if (process.env.NODE_ENV !== 'production') {\n logError('Invalid markLine data.');\n }\n\n itemArray = [];\n }\n } else {\n itemArray = item;\n }\n\n var normalizedItem = [markerHelper.dataTransform(seriesModel, itemArray[0]), markerHelper.dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])];\n normalizedItem[2].type = normalizedItem[2].type || null;\n merge(normalizedItem[2], normalizedItem[0]);\n merge(normalizedItem[2], normalizedItem[1]);\n return normalizedItem;\n};\n\nfunction isInifinity(val) {\n return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n var otherDimIndex = 1 - dimIndex;\n var dimName = coordSys.dimensions[dimIndex];\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n if (coordSys.type === 'cartesian2d') {\n var fromCoord = item[0].coord;\n var toCoord = item[1].coord;\n\n if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n return true;\n }\n }\n\n return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var itemModel = data.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } else {\n if (seriesModel.getMarkerPosition) {\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n } else {\n var dims = coordSys.dimensions;\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n point = coordSys.dataToPoint([x, y]);\n }\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n var dims = coordSys.dimensions;\n\n if (isInifinity(data.get(dims[0], idx))) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n } else if (isInifinity(data.get(dims[1], idx))) {\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n }\n }\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n }\n\n data.setItemLayout(idx, point);\n}\n\nvar MarkLineView = function (_super) {\n __extends(MarkLineView, _super);\n\n function MarkLineView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkLineView.type;\n return _this;\n }\n\n MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\n\n if (mlModel) {\n var mlData_1 = mlModel.getData();\n var fromData_1 = inner(mlModel).from;\n var toData_1 = inner(mlModel).to;\n fromData_1.each(function (idx) {\n updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\n updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\n });\n mlData_1.each(function (idx) {\n mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]);\n });\n this.markerGroupMap.get(seriesModel.id).updateLayout();\n }\n }, this);\n };\n\n MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var lineDrawMap = this.markerGroupMap;\n var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n this.group.add(lineDraw.group);\n var mlData = createList(coordSys, seriesModel, mlModel);\n var fromData = mlData.from;\n var toData = mlData.to;\n var lineData = mlData.line;\n inner(mlModel).from = fromData;\n inner(mlModel).to = toData;\n mlModel.setData(lineData);\n var symbolType = mlModel.get('symbol');\n var symbolSize = mlModel.get('symbolSize');\n\n if (!isArray(symbolType)) {\n symbolType = [symbolType, symbolType];\n }\n\n if (!isArray(symbolSize)) {\n symbolSize = [symbolSize, symbolSize];\n }\n\n mlData.from.each(function (idx) {\n updateDataVisualAndLayout(fromData, idx, true);\n updateDataVisualAndLayout(toData, idx, false);\n });\n lineData.each(function (idx) {\n var lineStyle = lineData.getItemModel(idx).getModel('lineStyle').getLineStyle();\n lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n\n if (lineStyle.stroke == null) {\n lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\n }\n\n lineData.setItemVisual(idx, {\n fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\n fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\n fromSymbol: fromData.getItemVisual(idx, 'symbol'),\n toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\n toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\n toSymbol: toData.getItemVisual(idx, 'symbol'),\n style: lineStyle\n });\n });\n lineDraw.updateData(lineData);\n mlData.line.eachItemGraphicEl(function (el, idx) {\n el.traverse(function (child) {\n getECData(child).dataModel = mlModel;\n });\n });\n\n function updateDataVisualAndLayout(data, idx, isFrom) {\n var itemModel = data.getItemModel(idx);\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n var style = itemModel.getModel('itemStyle').getItemStyle();\n\n if (style.fill == null) {\n style.fill = getVisualFromData(seriesData, 'color');\n }\n\n data.setItemVisual(idx, {\n symbolRotate: itemModel.get('symbolRotate'),\n symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\n symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\n style: style\n });\n }\n\n this.markKeep(lineDraw);\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n };\n\n MarkLineView.type = 'markLine';\n return MarkLineView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mlModel) {\n var coordDimsInfos;\n\n if (coordSys) {\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n return defaults({\n name: coordDim\n }, info);\n });\n } else {\n coordDimsInfos = [{\n name: 'value',\n type: 'float'\n }];\n }\n\n var fromData = new List(coordDimsInfos, mlModel);\n var toData = new List(coordDimsInfos, mlModel);\n var lineData = new List([], mlModel);\n var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n if (coordSys) {\n optData = filter(optData, curry(markLineFilter, coordSys));\n }\n\n var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) {\n return item.value;\n };\n fromData.initData(map(optData, function (item) {\n return item[0];\n }), null, dimValueGetter);\n toData.initData(map(optData, function (item) {\n return item[1];\n }), null, dimValueGetter);\n lineData.initData(map(optData, function (item) {\n return item[2];\n }));\n lineData.hasItemOption = true;\n return {\n from: fromData,\n to: toData,\n line: lineData\n };\n}\n\nexport default MarkLineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkLineModel from './MarkLineModel';\nimport MarkLineView from './MarkLineView';\nexport function install(registers) {\n registers.registerComponentModel(MarkLineModel);\n registers.registerComponentView(MarkLineView);\n registers.registerPreprocessor(function (opt) {\n opt.markLine = opt.markLine || {};\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkAreaModel = function (_super) {\n __extends(MarkAreaModel, _super);\n\n function MarkAreaModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkAreaModel.type;\n return _this;\n }\n\n MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\n };\n\n MarkAreaModel.type = 'markArea';\n MarkAreaModel.defaultOption = {\n zlevel: 0,\n z: 1,\n tooltip: {\n trigger: 'item'\n },\n animation: false,\n label: {\n show: true,\n position: 'top'\n },\n itemStyle: {\n borderWidth: 0\n },\n emphasis: {\n label: {\n show: true,\n position: 'top'\n }\n }\n };\n return MarkAreaModel;\n}(MarkerModel);\n\nexport default MarkAreaModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as colorUtil from 'zrender/lib/tool/color';\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport { retrieve, mergeAll, map, defaults, curry, filter, each } from 'zrender/lib/core/util';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nvar inner = makeInner();\n\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n var lt = markerHelper.dataTransform(seriesModel, item[0]);\n var rb = markerHelper.dataTransform(seriesModel, item[1]);\n var ltCoord = lt.coord;\n var rbCoord = rb.coord;\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\n rbCoord[1] = retrieve(rbCoord[1], Infinity);\n var result = mergeAll([{}, lt, rb]);\n result.coord = [lt.coord, rb.coord];\n result.x0 = lt.x;\n result.y0 = lt.y;\n result.x1 = rb.x;\n result.y1 = rb.y;\n return result;\n};\n\nfunction isInifinity(val) {\n return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n var otherDimIndex = 1 - dimIndex;\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n var fromCoord = item.coord[0];\n var toCoord = item.coord[1];\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n return true;\n }\n }\n\n return markerHelper.dataFilter(coordSys, {\n coord: fromCoord,\n x: item.x0,\n y: item.y0\n }) || markerHelper.dataFilter(coordSys, {\n coord: toCoord,\n x: item.x1,\n y: item.y1\n });\n}\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var itemModel = data.getItemModel(idx);\n var point;\n var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\n\n if (!isNaN(xPx) && !isNaN(yPx)) {\n point = [xPx, yPx];\n } else {\n if (seriesModel.getMarkerPosition) {\n point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\n } else {\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n var pt = [x, y];\n coordSys.clampData && coordSys.clampData(pt, pt);\n point = coordSys.dataToPoint(pt, true);\n }\n\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n var xAxis = coordSys.getAxis('x');\n var yAxis = coordSys.getAxis('y');\n var x = data.get(dims[0], idx);\n var y = data.get(dims[1], idx);\n\n if (isInifinity(x)) {\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n } else if (isInifinity(y)) {\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\n }\n }\n\n if (!isNaN(xPx)) {\n point[0] = xPx;\n }\n\n if (!isNaN(yPx)) {\n point[1] = yPx;\n }\n }\n\n return point;\n}\n\nvar dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\n\nvar MarkAreaView = function (_super) {\n __extends(MarkAreaView, _super);\n\n function MarkAreaView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = MarkAreaView.type;\n return _this;\n }\n\n MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\n\n if (maModel) {\n var areaData_1 = maModel.getData();\n areaData_1.each(function (idx) {\n var points = map(dimPermutations, function (dim) {\n return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\n });\n areaData_1.setItemLayout(idx, points);\n var el = areaData_1.getItemGraphicEl(idx);\n el.setShape('points', points);\n });\n }\n }, this);\n };\n\n MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var seriesId = seriesModel.id;\n var seriesData = seriesModel.getData();\n var areaGroupMap = this.markerGroupMap;\n var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n group: new graphic.Group()\n });\n this.group.add(polygonGroup.group);\n this.markKeep(polygonGroup);\n var areaData = createList(coordSys, seriesModel, maModel);\n maModel.setData(areaData);\n areaData.each(function (idx) {\n var points = map(dimPermutations, function (dim) {\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n });\n var allClipped = true;\n each(dimPermutations, function (dim) {\n if (!allClipped) {\n return;\n }\n\n var xValue = areaData.get(dim[0], idx);\n var yValue = areaData.get(dim[1], idx);\n\n if ((isInifinity(xValue) || coordSys.getAxis('x').containData(xValue)) && (isInifinity(yValue) || coordSys.getAxis('y').containData(yValue))) {\n allClipped = false;\n }\n });\n areaData.setItemLayout(idx, {\n points: points,\n allClipped: allClipped\n });\n var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\n var color = getVisualFromData(seriesData, 'color');\n\n if (!style.fill) {\n style.fill = color;\n\n if (typeof style.fill === 'string') {\n style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\n }\n }\n\n if (!style.stroke) {\n style.stroke = color;\n }\n\n areaData.setItemVisual(idx, 'style', style);\n });\n areaData.diff(inner(polygonGroup).data).add(function (idx) {\n var layout = areaData.getItemLayout(idx);\n\n if (!layout.allClipped) {\n var polygon = new graphic.Polygon({\n shape: {\n points: layout.points\n }\n });\n areaData.setItemGraphicEl(idx, polygon);\n polygonGroup.group.add(polygon);\n }\n }).update(function (newIdx, oldIdx) {\n var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\n var layout = areaData.getItemLayout(newIdx);\n\n if (!layout.allClipped) {\n if (polygon) {\n graphic.updateProps(polygon, {\n shape: {\n points: layout.points\n }\n }, maModel, newIdx);\n } else {\n polygon = new graphic.Polygon({\n shape: {\n points: layout.points\n }\n });\n }\n\n areaData.setItemGraphicEl(newIdx, polygon);\n polygonGroup.group.add(polygon);\n } else if (polygon) {\n polygonGroup.group.remove(polygon);\n }\n }).remove(function (idx) {\n var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\n polygonGroup.group.remove(polygon);\n }).execute();\n areaData.eachItemGraphicEl(function (polygon, idx) {\n var itemModel = areaData.getItemModel(idx);\n var style = areaData.getItemVisual(idx, 'style');\n polygon.useStyle(areaData.getItemVisual(idx, 'style'));\n setLabelStyle(polygon, getLabelStatesModels(itemModel), {\n labelFetcher: maModel,\n labelDataIndex: idx,\n defaultText: areaData.getName(idx) || '',\n inheritColor: typeof style.fill === 'string' ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\n });\n setStatesStylesFromModel(polygon, itemModel);\n enableHoverEmphasis(polygon);\n getECData(polygon).dataModel = maModel;\n });\n inner(polygonGroup).data = areaData;\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n };\n\n MarkAreaView.type = 'markArea';\n return MarkAreaView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, maModel) {\n var coordDimsInfos;\n var areaData;\n var dims = ['x0', 'y0', 'x1', 'y1'];\n\n if (coordSys) {\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n var data = seriesModel.getData();\n var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\n return defaults({\n name: coordDim\n }, info);\n });\n areaData = new List(map(dims, function (dim, idx) {\n return {\n name: dim,\n type: coordDimsInfos[idx % 2].type\n };\n }), maModel);\n } else {\n coordDimsInfos = [{\n name: 'value',\n type: 'float'\n }];\n areaData = new List(coordDimsInfos, maModel);\n }\n\n var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n if (coordSys) {\n optData = filter(optData, curry(markAreaFilter, coordSys));\n }\n\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n } : function (item) {\n return item.value;\n };\n areaData.initData(optData, null, dimValueGetter);\n areaData.hasItemOption = true;\n return areaData;\n}\n\nexport default MarkAreaView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkAreaModel from './MarkAreaModel';\nimport MarkAreaView from './MarkAreaView';\nexport function install(registers) {\n registers.registerComponentModel(MarkAreaModel);\n registers.registerComponentView(MarkAreaView);\n registers.registerPreprocessor(function (opt) {\n opt.markArea = opt.markArea || {};\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../../model/Model';\nimport { isNameSpecified } from '../../util/model';\nimport ComponentModel from '../../model/Component';\n\nvar getDefaultSelectorOptions = function (ecModel, type) {\n if (type === 'all') {\n return {\n type: 'all',\n title: ecModel.getLocale(['legend', 'selector', 'all'])\n };\n } else if (type === 'inverse') {\n return {\n type: 'inverse',\n title: ecModel.getLocale(['legend', 'selector', 'inverse'])\n };\n }\n};\n\nvar LegendModel = function (_super) {\n __extends(LegendModel, _super);\n\n function LegendModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = LegendModel.type;\n _this.layoutMode = {\n type: 'box',\n ignoreSize: true\n };\n return _this;\n }\n\n LegendModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n option.selected = option.selected || {};\n\n this._updateSelector(option);\n };\n\n LegendModel.prototype.mergeOption = function (option, ecModel) {\n _super.prototype.mergeOption.call(this, option, ecModel);\n\n this._updateSelector(option);\n };\n\n LegendModel.prototype._updateSelector = function (option) {\n var selector = option.selector;\n var ecModel = this.ecModel;\n\n if (selector === true) {\n selector = option.selector = ['all', 'inverse'];\n }\n\n if (zrUtil.isArray(selector)) {\n zrUtil.each(selector, function (item, index) {\n zrUtil.isString(item) && (item = {\n type: item\n });\n selector[index] = zrUtil.merge(item, getDefaultSelectorOptions(ecModel, item.type));\n });\n }\n };\n\n LegendModel.prototype.optionUpdated = function () {\n this._updateData(this.ecModel);\n\n var legendData = this._data;\n\n if (legendData[0] && this.get('selectedMode') === 'single') {\n var hasSelected = false;\n\n for (var i = 0; i < legendData.length; i++) {\n var name_1 = legendData[i].get('name');\n\n if (this.isSelected(name_1)) {\n this.select(name_1);\n hasSelected = true;\n break;\n }\n }\n\n !hasSelected && this.select(legendData[0].get('name'));\n }\n };\n\n LegendModel.prototype._updateData = function (ecModel) {\n var potentialData = [];\n var availableNames = [];\n ecModel.eachRawSeries(function (seriesModel) {\n var seriesName = seriesModel.name;\n availableNames.push(seriesName);\n var isPotential;\n\n if (seriesModel.legendVisualProvider) {\n var provider = seriesModel.legendVisualProvider;\n var names = provider.getAllNames();\n\n if (!ecModel.isSeriesFiltered(seriesModel)) {\n availableNames = availableNames.concat(names);\n }\n\n if (names.length) {\n potentialData = potentialData.concat(names);\n } else {\n isPotential = true;\n }\n } else {\n isPotential = true;\n }\n\n if (isPotential && isNameSpecified(seriesModel)) {\n potentialData.push(seriesModel.name);\n }\n });\n this._availableNames = availableNames;\n var rawData = this.get('data') || potentialData;\n var legendData = zrUtil.map(rawData, function (dataItem) {\n if (typeof dataItem === 'string' || typeof dataItem === 'number') {\n dataItem = {\n name: dataItem\n };\n }\n\n return new Model(dataItem, this, this.ecModel);\n }, this);\n this._data = legendData;\n };\n\n LegendModel.prototype.getData = function () {\n return this._data;\n };\n\n LegendModel.prototype.select = function (name) {\n var selected = this.option.selected;\n var selectedMode = this.get('selectedMode');\n\n if (selectedMode === 'single') {\n var data = this._data;\n zrUtil.each(data, function (dataItem) {\n selected[dataItem.get('name')] = false;\n });\n }\n\n selected[name] = true;\n };\n\n LegendModel.prototype.unSelect = function (name) {\n if (this.get('selectedMode') !== 'single') {\n this.option.selected[name] = false;\n }\n };\n\n LegendModel.prototype.toggleSelected = function (name) {\n var selected = this.option.selected;\n\n if (!selected.hasOwnProperty(name)) {\n selected[name] = true;\n }\n\n this[selected[name] ? 'unSelect' : 'select'](name);\n };\n\n LegendModel.prototype.allSelect = function () {\n var data = this._data;\n var selected = this.option.selected;\n zrUtil.each(data, function (dataItem) {\n selected[dataItem.get('name', true)] = true;\n });\n };\n\n LegendModel.prototype.inverseSelect = function () {\n var data = this._data;\n var selected = this.option.selected;\n zrUtil.each(data, function (dataItem) {\n var name = dataItem.get('name', true);\n\n if (!selected.hasOwnProperty(name)) {\n selected[name] = true;\n }\n\n selected[name] = !selected[name];\n });\n };\n\n LegendModel.prototype.isSelected = function (name) {\n var selected = this.option.selected;\n return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n };\n\n LegendModel.prototype.getOrient = function () {\n return this.get('orient') === 'vertical' ? {\n index: 1,\n name: 'vertical'\n } : {\n index: 0,\n name: 'horizontal'\n };\n };\n\n LegendModel.type = 'legend.plain';\n LegendModel.dependencies = ['series'];\n LegendModel.defaultOption = {\n zlevel: 0,\n z: 4,\n show: true,\n orient: 'horizontal',\n left: 'center',\n top: 0,\n align: 'auto',\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n borderRadius: 0,\n borderWidth: 0,\n padding: 5,\n itemGap: 10,\n itemWidth: 25,\n itemHeight: 14,\n inactiveColor: '#ccc',\n inactiveBorderColor: '#ccc',\n itemStyle: {\n borderWidth: 0\n },\n textStyle: {\n color: '#333'\n },\n selectedMode: true,\n selector: false,\n selectorLabel: {\n show: true,\n borderRadius: 10,\n padding: [3, 5, 3, 5],\n fontSize: 12,\n fontFamily: ' sans-serif',\n color: '#666',\n borderWidth: 1,\n borderColor: '#666'\n },\n emphasis: {\n selectorLabel: {\n show: true,\n color: '#eee',\n backgroundColor: '#666'\n }\n },\n selectorPosition: 'auto',\n selectorItemGap: 7,\n selectorButtonGap: 10,\n tooltip: {\n show: false\n }\n };\n return LegendModel;\n}(ComponentModel);\n\nexport default LegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, createTextStyle } from '../../label/labelStyle';\nimport { makeBackground } from '../helper/listComponent';\nimport * as layoutUtil from '../../util/layout';\nimport ComponentView from '../../view/Component';\nimport { parse, stringify } from 'zrender/lib/tool/color';\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\n\nvar LegendView = function (_super) {\n __extends(LegendView, _super);\n\n function LegendView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = LegendView.type;\n _this.newlineDisabled = false;\n return _this;\n }\n\n LegendView.prototype.init = function () {\n this.group.add(this._contentGroup = new Group());\n this.group.add(this._selectorGroup = new Group());\n this._isFirstRender = true;\n };\n\n LegendView.prototype.getContentGroup = function () {\n return this._contentGroup;\n };\n\n LegendView.prototype.getSelectorGroup = function () {\n return this._selectorGroup;\n };\n\n LegendView.prototype.render = function (legendModel, ecModel, api) {\n var isFirstRender = this._isFirstRender;\n this._isFirstRender = false;\n this.resetInner();\n\n if (!legendModel.get('show', true)) {\n return;\n }\n\n var itemAlign = legendModel.get('align');\n var orient = legendModel.get('orient');\n\n if (!itemAlign || itemAlign === 'auto') {\n itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n }\n\n var selector = legendModel.get('selector', true);\n var selectorPosition = legendModel.get('selectorPosition', true);\n\n if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n }\n\n this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n var positionInfo = legendModel.getBoxLayoutParams();\n var viewportSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var padding = legendModel.get('padding');\n var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\n var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n width: mainRect.width,\n height: mainRect.height\n }, positionInfo), viewportSize, padding);\n this.group.x = layoutRect.x - mainRect.x;\n this.group.y = layoutRect.y - mainRect.y;\n this.group.markRedraw();\n this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n };\n\n LegendView.prototype.resetInner = function () {\n this.getContentGroup().removeAll();\n this._backgroundEl && this.group.remove(this._backgroundEl);\n this.getSelectorGroup().removeAll();\n };\n\n LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var contentGroup = this.getContentGroup();\n var legendDrawnMap = zrUtil.createHashMap();\n var selectMode = legendModel.get('selectedMode');\n var excludeSeriesId = [];\n ecModel.eachRawSeries(function (seriesModel) {\n !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n });\n each(legendModel.getData(), function (itemModel, dataIndex) {\n var name = itemModel.get('name');\n\n if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n var g = new Group();\n g.newline = true;\n contentGroup.add(g);\n return;\n }\n\n var seriesModel = ecModel.getSeriesByName(name)[0];\n\n if (legendDrawnMap.get(name)) {\n return;\n }\n\n if (seriesModel) {\n var data = seriesModel.getData();\n var style = data.getVisual('style');\n var color = style[data.getVisual('drawType')] || style.fill;\n var borderColor = style.stroke;\n var decal = style.decal;\n var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\n var symbolType = data.getVisual('symbol');\n\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode);\n\n itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n legendDrawnMap.set(name, true);\n } else {\n ecModel.eachRawSeries(function (seriesModel) {\n if (legendDrawnMap.get(name)) {\n return;\n }\n\n if (seriesModel.legendVisualProvider) {\n var provider = seriesModel.legendVisualProvider;\n\n if (!provider.containName(name)) {\n return;\n }\n\n var idx = provider.indexOfName(name);\n var style = provider.getItemVisual(idx, 'style');\n var borderColor = style.stroke;\n var decal = style.decal;\n var color = style.fill;\n var colorArr = parse(style.fill);\n\n if (colorArr && colorArr[3] === 0) {\n colorArr[3] = 0.2;\n color = stringify(colorArr, 'rgba');\n }\n\n var legendSymbolType = 'roundRect';\n\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, decal, selectMode);\n\n itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n legendDrawnMap.set(name, true);\n }\n }, this);\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!legendDrawnMap.get(name)) {\n console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\n }\n }\n }, this);\n\n if (selector) {\n this._createSelector(selector, legendModel, api, orient, selectorPosition);\n }\n };\n\n LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n each(selector, function createSelectorButton(selectorItem) {\n var type = selectorItem.type;\n var labelText = new graphic.Text({\n style: {\n x: 0,\n y: 0,\n align: 'center',\n verticalAlign: 'middle'\n },\n onclick: function () {\n api.dispatchAction({\n type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n });\n }\n });\n selectorGroup.add(labelText);\n var labelModel = legendModel.getModel('selectorLabel');\n var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\n setLabelStyle(labelText, {\n normal: labelModel,\n emphasis: emphasisLabelModel\n }, {\n defaultText: selectorItem.title\n });\n enableHoverEmphasis(labelText);\n });\n };\n\n LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode) {\n var itemWidth = legendModel.get('itemWidth');\n var itemHeight = legendModel.get('itemHeight');\n var inactiveColor = legendModel.get('inactiveColor');\n var inactiveBorderColor = legendModel.get('inactiveBorderColor');\n var symbolKeepAspect = legendModel.get('symbolKeepAspect');\n var legendModelItemStyle = legendModel.getModel('itemStyle');\n var isSelected = legendModel.isSelected(name);\n var itemGroup = new Group();\n var textStyleModel = itemModel.getModel('textStyle');\n var itemIcon = itemModel.get('icon');\n var tooltipModel = itemModel.getModel('tooltip');\n var legendGlobalTooltipModel = tooltipModel.parentModel;\n legendSymbolType = itemIcon || legendSymbolType;\n var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n\n if (!itemIcon && symbolType && (symbolType !== legendSymbolType || symbolType === 'none')) {\n var size = itemHeight * 0.8;\n\n if (symbolType === 'none') {\n symbolType = 'circle';\n }\n\n var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n }\n\n var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n var textAlign = itemAlign;\n var formatter = legendModel.get('formatter');\n var content = name;\n\n if (typeof formatter === 'string' && formatter) {\n content = formatter.replace('{name}', name != null ? name : '');\n } else if (typeof formatter === 'function') {\n content = formatter(name);\n }\n\n itemGroup.add(new graphic.Text({\n style: createTextStyle(textStyleModel, {\n text: content,\n x: textX,\n y: itemHeight / 2,\n fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\n align: textAlign,\n verticalAlign: 'middle'\n })\n }));\n var hitRect = new graphic.Rect({\n shape: itemGroup.getBoundingRect(),\n invisible: true\n });\n\n if (tooltipModel.get('show')) {\n var formatterParams = {\n componentType: 'legend',\n legendIndex: legendModel.componentIndex,\n name: name,\n $vars: ['name']\n };\n hitRect.tooltip = zrUtil.extend({\n content: name,\n formatter: legendGlobalTooltipModel.get('formatter', true) || function (params) {\n return params.name;\n },\n formatterParams: formatterParams\n }, tooltipModel.option);\n }\n\n itemGroup.add(hitRect);\n itemGroup.eachChild(function (child) {\n child.silent = true;\n });\n hitRect.silent = !selectMode;\n this.getContentGroup().add(itemGroup);\n enableHoverEmphasis(itemGroup);\n itemGroup.__legendDataIndex = dataIndex;\n return itemGroup;\n };\n\n LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var contentGroup = this.getContentGroup();\n var selectorGroup = this.getSelectorGroup();\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n var contentRect = contentGroup.getBoundingRect();\n var contentPos = [-contentRect.x, -contentRect.y];\n selectorGroup.markRedraw();\n contentGroup.markRedraw();\n\n if (selector) {\n layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var orientIdx = legendModel.getOrient().index;\n var wh = orientIdx === 0 ? 'width' : 'height';\n var hw = orientIdx === 0 ? 'height' : 'width';\n var yx = orientIdx === 0 ? 'y' : 'x';\n\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n } else {\n contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n }\n\n selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n selectorGroup.x = selectorPos[0];\n selectorGroup.y = selectorPos[1];\n contentGroup.x = contentPos[0];\n contentGroup.y = contentPos[1];\n var mainRect = {\n x: 0,\n y: 0\n };\n mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n return mainRect;\n } else {\n contentGroup.x = contentPos[0];\n contentGroup.y = contentPos[1];\n return this.group.getBoundingRect();\n }\n };\n\n LegendView.prototype.remove = function () {\n this.getContentGroup().removeAll();\n this._isFirstRender = true;\n };\n\n LegendView.type = 'legend.plain';\n return LegendView;\n}(ComponentView);\n\nfunction setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected) {\n var itemStyle;\n\n if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\n itemStyle = legendModelItemStyle.getItemStyle();\n symbol.style.stroke = borderColor;\n symbol.style.decal = decal;\n\n if (!isSelected) {\n itemStyle.stroke = inactiveBorderColor;\n }\n } else {\n itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\n }\n\n symbol.setStyle(itemStyle);\n return symbol;\n}\n\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n api.dispatchAction({\n type: 'legendToggleSelect',\n name: seriesName != null ? seriesName : dataName\n });\n dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\n\nfunction isUseHoverLayer(api) {\n var list = api.getZr().storage.getDisplayList();\n var emphasisState;\n var i = 0;\n var len = list.length;\n\n while (i < len && !(emphasisState = list[i].states.emphasis)) {\n i++;\n }\n\n return emphasisState && emphasisState.hoverLayer;\n}\n\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n if (!isUseHoverLayer(api)) {\n api.dispatchAction({\n type: 'highlight',\n seriesName: seriesName,\n name: dataName,\n excludeSeriesId: excludeSeriesId\n });\n }\n}\n\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n if (!isUseHoverLayer(api)) {\n api.dispatchAction({\n type: 'downplay',\n seriesName: seriesName,\n name: dataName,\n excludeSeriesId: excludeSeriesId\n });\n }\n}\n\nexport default LegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function legendFilter(ecModel) {\n var legendModels = ecModel.findComponents({\n mainType: 'legend'\n });\n\n if (legendModels && legendModels.length) {\n ecModel.filterSeries(function (series) {\n for (var i = 0; i < legendModels.length; i++) {\n if (!legendModels[i].isSelected(series.name)) {\n return false;\n }\n }\n\n return true;\n });\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each } from 'zrender/lib/core/util';\n\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n var selectedMap = {};\n var isToggleSelect = methodName === 'toggleSelected';\n var isSelected;\n ecModel.eachComponent('legend', function (legendModel) {\n if (isToggleSelect && isSelected != null) {\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n legendModel[methodName]();\n } else {\n legendModel[methodName](payload.name);\n isSelected = legendModel.isSelected(payload.name);\n }\n\n var legendData = legendModel.getData();\n each(legendData, function (model) {\n var name = model.get('name');\n\n if (name === '\\n' || name === '') {\n return;\n }\n\n var isItemSelected = legendModel.isSelected(name);\n\n if (selectedMap.hasOwnProperty(name)) {\n selectedMap[name] = selectedMap[name] && isItemSelected;\n } else {\n selectedMap[name] = isItemSelected;\n }\n });\n });\n return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n selected: selectedMap\n } : {\n name: payload.name,\n selected: selectedMap\n };\n}\n\nexport function installLegendAction(registers) {\n registers.registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\n registers.registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\n registers.registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\n registers.registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\n registers.registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LegendModel from './LegendModel';\nimport LegendView from './LegendView';\nimport legendFilter from './legendFilter';\nimport { installLegendAction } from './legendAction';\nexport function install(registers) {\n registers.registerComponentModel(LegendModel);\n registers.registerComponentView(LegendView);\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\n registers.registerSubTypeDefaulter('legend', function () {\n return 'plain';\n });\n installLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LegendModel from './LegendModel';\nimport { mergeLayoutParam, getLayoutParams } from '../../util/layout';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar ScrollableLegendModel = function (_super) {\n __extends(ScrollableLegendModel, _super);\n\n function ScrollableLegendModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ScrollableLegendModel.type;\n return _this;\n }\n\n ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\n this.option.scrollDataIndex = scrollDataIndex;\n };\n\n ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\n var inputPositionParams = getLayoutParams(option);\n\n _super.prototype.init.call(this, option, parentModel, ecModel);\n\n mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n };\n\n ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\n _super.prototype.mergeOption.call(this, option, ecModel);\n\n mergeAndNormalizeLayoutParams(this, this.option, option);\n };\n\n ScrollableLegendModel.type = 'legend.scroll';\n ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\n scrollDataIndex: 0,\n pageButtonItemGap: 5,\n pageButtonGap: null,\n pageButtonPosition: 'end',\n pageFormatter: '{current}/{total}',\n pageIcons: {\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n },\n pageIconColor: '#2f4554',\n pageIconInactiveColor: '#aaa',\n pageIconSize: 15,\n pageTextStyle: {\n color: '#333'\n },\n animationDurationUpdate: 800\n });\n return ScrollableLegendModel;\n}(LegendModel);\n\n;\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n var orient = legendModel.getOrient();\n var ignoreSize = [1, 1];\n ignoreSize[orient.index] = 0;\n mergeLayoutParam(target, raw, {\n type: 'box',\n ignoreSize: !!ignoreSize\n });\n}\n\nexport default ScrollableLegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport LegendView from './LegendView';\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\n\nvar ScrollableLegendView = function (_super) {\n __extends(ScrollableLegendView, _super);\n\n function ScrollableLegendView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ScrollableLegendView.type;\n _this.newlineDisabled = true;\n _this._currentIndex = 0;\n return _this;\n }\n\n ScrollableLegendView.prototype.init = function () {\n _super.prototype.init.call(this);\n\n this.group.add(this._containerGroup = new Group());\n\n this._containerGroup.add(this.getContentGroup());\n\n this.group.add(this._controllerGroup = new Group());\n };\n\n ScrollableLegendView.prototype.resetInner = function () {\n _super.prototype.resetInner.call(this);\n\n this._controllerGroup.removeAll();\n\n this._containerGroup.removeClipPath();\n\n this._containerGroup.__rectSize = null;\n };\n\n ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var self = this;\n\n _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n\n var controllerGroup = this._controllerGroup;\n var pageIconSize = legendModel.get('pageIconSize', true);\n var pageIconSizeArr = zrUtil.isArray(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize];\n createPageButton('pagePrev', 0);\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n controllerGroup.add(new graphic.Text({\n name: 'pageText',\n style: {\n text: 'xx/xx',\n fill: pageTextStyleModel.getTextColor(),\n font: pageTextStyleModel.getFont(),\n verticalAlign: 'middle',\n align: 'center'\n },\n silent: true\n }));\n createPageButton('pageNext', 1);\n\n function createPageButton(name, iconIdx) {\n var pageDataIndexName = name + 'DataIndex';\n var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n onclick: zrUtil.bind(self._pageGo, self, pageDataIndexName, legendModel, api)\n }, {\n x: -pageIconSizeArr[0] / 2,\n y: -pageIconSizeArr[1] / 2,\n width: pageIconSizeArr[0],\n height: pageIconSizeArr[1]\n });\n icon.name = name;\n controllerGroup.add(icon);\n }\n };\n\n ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n var hw = WH[1 - orientIdx];\n var yx = XY[1 - orientIdx];\n selector && layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var processMaxSize = zrUtil.clone(maxSize);\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\n\n if (selector) {\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n } else {\n var offset = selectorRect[wh] + selectorButtonGap;\n selectorPos[orientIdx] -= offset;\n mainRect[xy] -= offset;\n }\n\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n selectorGroup.x = selectorPos[0];\n selectorGroup.y = selectorPos[1];\n selectorGroup.markRedraw();\n }\n\n return mainRect;\n };\n\n ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\n var contentGroup = this.getContentGroup();\n var containerGroup = this._containerGroup;\n var controllerGroup = this._controllerGroup;\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n layoutUtil.box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n var contentRect = contentGroup.getBoundingRect();\n var controllerRect = controllerGroup.getBoundingRect();\n var showController = this._showController = contentRect[wh] > maxSize[wh];\n var contentPos = [-contentRect.x, -contentRect.y];\n\n if (!isFirstRender) {\n contentPos[orientIdx] = contentGroup[xy];\n }\n\n var containerPos = [0, 0];\n var controllerPos = [-controllerRect.x, -controllerRect.y];\n var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\n\n if (showController) {\n var pageButtonPosition = legendModel.get('pageButtonPosition', true);\n\n if (pageButtonPosition === 'end') {\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n } else {\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n }\n }\n\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n contentGroup.setPosition(contentPos);\n containerGroup.setPosition(containerPos);\n controllerGroup.setPosition(controllerPos);\n var mainRect = {\n x: 0,\n y: 0\n };\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n containerGroup.__rectSize = maxSize[wh];\n\n if (showController) {\n var clipShape = {\n x: 0,\n y: 0\n };\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n clipShape[hw] = mainRect[hw];\n containerGroup.setClipPath(new graphic.Rect({\n shape: clipShape\n }));\n containerGroup.__rectSize = clipShape[wh];\n } else {\n controllerGroup.eachChild(function (child) {\n child.attr({\n invisible: true,\n silent: true\n });\n });\n }\n\n var pageInfo = this._getPageInfo(legendModel);\n\n pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n x: pageInfo.contentPosition[0],\n y: pageInfo.contentPosition[1]\n }, showController ? legendModel : null);\n\n this._updatePageInfoView(legendModel, pageInfo);\n\n return mainRect;\n };\n\n ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n scrollDataIndex != null && api.dispatchAction({\n type: 'legendScroll',\n scrollDataIndex: scrollDataIndex,\n legendId: legendModel.id\n });\n };\n\n ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\n var controllerGroup = this._controllerGroup;\n zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n var key = name + 'DataIndex';\n var canJump = pageInfo[key] != null;\n var icon = controllerGroup.childOfName(name);\n\n if (icon) {\n icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n icon.cursor = canJump ? 'pointer' : 'default';\n }\n });\n var pageText = controllerGroup.childOfName('pageText');\n var pageFormatter = legendModel.get('pageFormatter');\n var pageIndex = pageInfo.pageIndex;\n var current = pageIndex != null ? pageIndex + 1 : 0;\n var total = pageInfo.pageCount;\n pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current == null ? '' : current + '').replace('{total}', total == null ? '' : total + '') : pageFormatter({\n current: current,\n total: total\n }));\n };\n\n ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n var contentGroup = this.getContentGroup();\n var containerRectSize = this._containerGroup.__rectSize;\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n var children = contentGroup.children();\n var targetItem = children[targetItemIndex];\n var itemCount = children.length;\n var pCount = !itemCount ? 0 : 1;\n var result = {\n contentPosition: [contentGroup.x, contentGroup.y],\n pageCount: pCount,\n pageIndex: pCount - 1,\n pagePrevDataIndex: null,\n pageNextDataIndex: null\n };\n\n if (!targetItem) {\n return result;\n }\n\n var targetItemInfo = getItemInfo(targetItem);\n result.contentPosition[orientIdx] = -targetItemInfo.s;\n\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n currItemInfo = getItemInfo(children[i]);\n\n if (!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n if (winEndItemInfo.i > winStartItemInfo.i) {\n winStartItemInfo = winEndItemInfo;\n } else {\n winStartItemInfo = currItemInfo;\n }\n\n if (winStartItemInfo) {\n if (result.pageNextDataIndex == null) {\n result.pageNextDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n }\n }\n\n winEndItemInfo = currItemInfo;\n }\n\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && winStartItemInfo.i < winEndItemInfo.i) {\n winEndItemInfo = winStartItemInfo;\n\n if (result.pagePrevDataIndex == null) {\n result.pagePrevDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n ++result.pageIndex;\n }\n\n winStartItemInfo = currItemInfo;\n }\n\n return result;\n\n function getItemInfo(el) {\n if (el) {\n var itemRect = el.getBoundingRect();\n var start = itemRect[xy] + el[xy];\n return {\n s: start,\n e: start + itemRect[wh],\n i: el.__legendDataIndex\n };\n }\n }\n\n function intersect(itemInfo, winStart) {\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n }\n };\n\n ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\n if (!this._showController) {\n return 0;\n }\n\n var index;\n var contentGroup = this.getContentGroup();\n var defaultIndex;\n contentGroup.eachChild(function (child, idx) {\n var legendDataIdx = child.__legendDataIndex;\n\n if (defaultIndex == null && legendDataIdx != null) {\n defaultIndex = idx;\n }\n\n if (legendDataIdx === targetDataIndex) {\n index = idx;\n }\n });\n return index != null ? index : defaultIndex;\n };\n\n ScrollableLegendView.type = 'legend.scroll';\n return ScrollableLegendView;\n}(LegendView);\n\nexport default ScrollableLegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function installScrollableLegendAction(registers) {\n registers.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n var scrollDataIndex = payload.scrollDataIndex;\n scrollDataIndex != null && ecModel.eachComponent({\n mainType: 'legend',\n subType: 'scroll',\n query: payload\n }, function (legendModel) {\n legendModel.setScrollDataIndex(scrollDataIndex);\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport ScrollableLegendModel from './ScrollableLegendModel';\nimport ScrollableLegendView from './ScrollableLegendView';\nimport installScrollableLegendAction from './scrollableLegendAction';\nexport function install(registers) {\n use(installLegendPlain);\n registers.registerComponentModel(ScrollableLegendModel);\n registers.registerComponentView(ScrollableLegendView);\n installScrollableLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport { install as installLegendScroll } from './installLegendScroll';\nexport function install(registers) {\n use(installLegendPlain);\n use(installLegendScroll);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar InsideZoomModel = function (_super) {\n __extends(InsideZoomModel, _super);\n\n function InsideZoomModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = InsideZoomModel.type;\n return _this;\n }\n\n InsideZoomModel.type = 'dataZoom.inside';\n InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n disabled: false,\n zoomLock: false,\n zoomOnMouseWheel: true,\n moveOnMouseMove: true,\n moveOnMouseWheel: false,\n preventDefaultMouseMove: true\n });\n return InsideZoomModel;\n}(DataZoomModel);\n\nexport default InsideZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RoamController from '../../component/helper/RoamController';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nimport { each, curry, createHashMap } from 'zrender/lib/core/util';\nimport { collectReferCoordSysModelInfo } from './helper';\nvar inner = makeInner();\nexport function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\n inner(api).coordSysRecordMap.each(function (coordSysRecord) {\n var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\n\n if (dzInfo) {\n dzInfo.getRange = getRange;\n }\n });\n}\nexport function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\n var coordSysRecordMap = inner(api).coordSysRecordMap;\n var coordSysKeyArr = coordSysRecordMap.keys();\n\n for (var i = 0; i < coordSysKeyArr.length; i++) {\n var coordSysKey = coordSysKeyArr[i];\n var coordSysRecord = coordSysRecordMap.get(coordSysKey);\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n if (dataZoomInfoMap) {\n var dzUid = dataZoomModel.uid;\n var dzInfo = dataZoomInfoMap.get(dzUid);\n\n if (dzInfo) {\n dataZoomInfoMap.removeKey(dzUid);\n\n if (!dataZoomInfoMap.keys().length) {\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n }\n }\n }\n }\n}\n\nfunction disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\n if (coordSysRecord) {\n coordSysRecordMap.removeKey(coordSysRecord.model.uid);\n var controller = coordSysRecord.controller;\n controller && controller.dispose();\n }\n}\n\nfunction createCoordSysRecord(api, coordSysModel) {\n var coordSysRecord = {\n model: coordSysModel,\n containsPoint: curry(containsPoint, coordSysModel),\n dispatchAction: curry(dispatchAction, api),\n dataZoomInfoMap: null,\n controller: null\n };\n var controller = coordSysRecord.controller = new RoamController(api.getZr());\n each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n controller.on(eventName, function (event) {\n var batch = [];\n coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\n if (!event.isAvailableBehavior(dzInfo.model.option)) {\n return;\n }\n\n var method = (dzInfo.getRange || {})[eventName];\n var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\n !dzInfo.model.get('disabled', true) && range && batch.push({\n dataZoomId: dzInfo.model.id,\n start: range[0],\n end: range[1]\n });\n });\n batch.length && coordSysRecord.dispatchAction(batch);\n });\n });\n return coordSysRecord;\n}\n\nfunction dispatchAction(api, batch) {\n api.dispatchAction({\n type: 'dataZoom',\n animation: {\n easing: 'cubicOut',\n duration: 100\n },\n batch: batch\n });\n}\n\nfunction containsPoint(coordSysModel, e, x, y) {\n return coordSysModel.coordinateSystem.containPoint([x, y]);\n}\n\nfunction mergeControllerParams(dataZoomInfoMap) {\n var controlType;\n var prefix = 'type_';\n var typePriority = {\n 'type_true': 2,\n 'type_move': 1,\n 'type_false': 0,\n 'type_undefined': -1\n };\n var preventDefaultMouseMove = true;\n dataZoomInfoMap.each(function (dataZoomInfo) {\n var dataZoomModel = dataZoomInfo.model;\n var oneType = dataZoomModel.get('disabled', true) ? false : dataZoomModel.get('zoomLock', true) ? 'move' : true;\n\n if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\n controlType = oneType;\n }\n\n preventDefaultMouseMove = preventDefaultMouseMove && dataZoomModel.get('preventDefaultMouseMove', true);\n });\n return {\n controlType: controlType,\n opt: {\n zoomOnMouseWheel: true,\n moveOnMouseMove: true,\n moveOnMouseWheel: true,\n preventDefaultMouseMove: !!preventDefaultMouseMove\n }\n };\n}\n\nexport function installDataZoomRoamProcessor(registers) {\n registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\n var apiInner = inner(api);\n var coordSysRecordMap = apiInner.coordSysRecordMap || (apiInner.coordSysRecordMap = createHashMap());\n coordSysRecordMap.each(function (coordSysRecord) {\n coordSysRecord.dataZoomInfoMap = null;\n });\n ecModel.eachComponent({\n mainType: 'dataZoom',\n subType: 'inside'\n }, function (dataZoomModel) {\n var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\n each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\n var coordSysUid = dzCoordSysInfo.model.uid;\n var coordSysRecord = coordSysRecordMap.get(coordSysUid) || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap || (coordSysRecord.dataZoomInfoMap = createHashMap());\n dataZoomInfoMap.set(dataZoomModel.uid, {\n dzReferCoordSysInfo: dzCoordSysInfo,\n model: dataZoomModel,\n getRange: null\n });\n });\n });\n coordSysRecordMap.each(function (coordSysRecord) {\n var controller = coordSysRecord.controller;\n var firstDzInfo;\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n if (dataZoomInfoMap) {\n var firstDzKey = dataZoomInfoMap.keys()[0];\n\n if (firstDzKey != null) {\n firstDzInfo = dataZoomInfoMap.get(firstDzKey);\n }\n }\n\n if (!firstDzInfo) {\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n return;\n }\n\n var controllerParams = mergeControllerParams(dataZoomInfoMap);\n controller.enable(controllerParams.controlType, controllerParams.opt);\n controller.setPointerChecker(coordSysRecord.containsPoint);\n throttleUtil.createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\n });\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\nimport sliderMove from '../helper/sliderMove';\nimport * as roams from './roams';\nimport { bind } from 'zrender/lib/core/util';\n\nvar InsideZoomView = function (_super) {\n __extends(InsideZoomView, _super);\n\n function InsideZoomView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'dataZoom.inside';\n return _this;\n }\n\n InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\n _super.prototype.render.apply(this, arguments);\n\n if (dataZoomModel.noTarget()) {\n this._clear();\n\n return;\n }\n\n this.range = dataZoomModel.getPercentRange();\n roams.setViewInfoToCoordSysRecord(api, dataZoomModel, {\n pan: bind(getRangeHandlers.pan, this),\n zoom: bind(getRangeHandlers.zoom, this),\n scrollMove: bind(getRangeHandlers.scrollMove, this)\n });\n };\n\n InsideZoomView.prototype.dispose = function () {\n this._clear();\n\n _super.prototype.dispose.apply(this, arguments);\n };\n\n InsideZoomView.prototype._clear = function () {\n roams.disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\n this.range = null;\n };\n\n InsideZoomView.type = 'dataZoom.inside';\n return InsideZoomView;\n}(DataZoomView);\n\nvar getRangeHandlers = {\n zoom: function (coordSysInfo, coordSysMainType, controller, e) {\n var lastRange = this.range;\n var range = lastRange.slice();\n var axisModel = coordSysInfo.axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\n var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n var scale = Math.max(1 / e.scale, 0);\n range[0] = (range[0] - percentPoint) * scale + percentPoint;\n range[1] = (range[1] - percentPoint) * scale + percentPoint;\n var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n this.range = range;\n\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n return range;\n }\n },\n pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\n return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n }),\n scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\n return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n })\n};\n\nfunction makeMover(getPercentDelta) {\n return function (coordSysInfo, coordSysMainType, controller, e) {\n var lastRange = this.range;\n var range = lastRange.slice();\n var axisModel = coordSysInfo.axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\n sliderMove(percentDelta, range, [0, 100], 'all');\n this.range = range;\n\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n return range;\n }\n };\n}\n\nvar getDirectionInfo = {\n grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n var axis = axisModel.axis;\n var ret = {};\n var rect = coordSysInfo.model.coordinateSystem.getRect();\n oldPoint = oldPoint || [0, 0];\n\n if (axis.dim === 'x') {\n ret.pixel = newPoint[0] - oldPoint[0];\n ret.pixelLength = rect.width;\n ret.pixelStart = rect.x;\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n ret.pixel = newPoint[1] - oldPoint[1];\n ret.pixelLength = rect.height;\n ret.pixelStart = rect.y;\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n },\n polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n var axis = axisModel.axis;\n var ret = {};\n var polar = coordSysInfo.model.coordinateSystem;\n var radiusExtent = polar.getRadiusAxis().getExtent();\n var angleExtent = polar.getAngleAxis().getExtent();\n oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n newPoint = polar.pointToCoord(newPoint);\n\n if (axisModel.mainType === 'radiusAxis') {\n ret.pixel = newPoint[0] - oldPoint[0];\n ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n ret.pixelStart = radiusExtent[0];\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n ret.pixel = newPoint[1] - oldPoint[1];\n ret.pixelLength = angleExtent[1] - angleExtent[0];\n ret.pixelStart = angleExtent[0];\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n },\n singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n var axis = axisModel.axis;\n var rect = coordSysInfo.model.coordinateSystem.getRect();\n var ret = {};\n oldPoint = oldPoint || [0, 0];\n\n if (axis.orient === 'horizontal') {\n ret.pixel = newPoint[0] - oldPoint[0];\n ret.pixelLength = rect.width;\n ret.pixelStart = rect.x;\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n ret.pixel = newPoint[1] - oldPoint[1];\n ret.pixelLength = rect.height;\n ret.pixelStart = rect.y;\n ret.signal = axis.inverse ? -1 : 1;\n }\n\n return ret;\n }\n};\nexport default InsideZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport InsideZoomModel from './InsideZoomModel';\nimport InsideZoomView from './InsideZoomView';\nimport { installDataZoomRoamProcessor } from './roams';\nimport installCommon from './installCommon';\nexport function install(registers) {\n installCommon(registers);\n registers.registerComponentModel(InsideZoomModel);\n registers.registerComponentView(InsideZoomView);\n installDataZoomRoamProcessor(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderZoomModel = function (_super) {\n __extends(SliderZoomModel, _super);\n\n function SliderZoomModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SliderZoomModel.type;\n return _this;\n }\n\n SliderZoomModel.type = 'dataZoom.slider';\n SliderZoomModel.layoutMode = 'box';\n SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n show: true,\n right: 'ph',\n top: 'ph',\n width: 'ph',\n height: 'ph',\n left: null,\n bottom: null,\n borderColor: '#d2dbee',\n borderRadius: 3,\n backgroundColor: 'rgba(47,69,84,0)',\n dataBackground: {\n lineStyle: {\n color: '#d2dbee',\n width: 0.5\n },\n areaStyle: {\n color: '#d2dbee',\n opacity: 0.2\n }\n },\n selectedDataBackground: {\n lineStyle: {\n color: '#8fb0f7',\n width: 0.5\n },\n areaStyle: {\n color: '#8fb0f7',\n opacity: 0.2\n }\n },\n fillerColor: 'rgba(135,175,274,0.2)',\n handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\n handleSize: '100%',\n handleStyle: {\n color: '#fff',\n borderColor: '#ACB8D1'\n },\n moveHandleSize: 7,\n moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\n moveHandleStyle: {\n color: '#D2DBEE',\n opacity: 0.7\n },\n showDetail: true,\n showDataShadow: 'auto',\n realtime: true,\n zoomLock: false,\n textStyle: {\n color: '#6E7079'\n },\n brushSelect: true,\n brushStyle: {\n color: 'rgba(135,175,274,0.15)'\n },\n emphasis: {\n handleStyle: {\n borderColor: '#8FB0F7'\n },\n moveHandleStyle: {\n color: '#8FB0F7'\n }\n }\n });\n return SliderZoomModel;\n}(DataZoomModel);\n\nexport default SliderZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, isFunction, isString, indexOf } from 'zrender/lib/core/util';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as graphic from '../../util/graphic';\nimport * as throttle from '../../util/throttle';\nimport DataZoomView from './DataZoomView';\nimport { linearMap, asc, parsePercent } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport sliderMove from '../helper/sliderMove';\nimport { getAxisMainType, collectReferCoordSysModelInfo } from './helper';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol, symbolBuildProxies } from '../../util/symbol';\nimport { deprecateLog } from '../../util/log';\nvar Rect = graphic.Rect;\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar DEFAULT_MOVE_HANDLE_SIZE = 7;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar REALTIME_ANIMATION_CONFIG = {\n easing: 'cubicOut',\n duration: 100\n};\n\nvar SliderZoomView = function (_super) {\n __extends(SliderZoomView, _super);\n\n function SliderZoomView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = SliderZoomView.type;\n _this._displayables = {};\n return _this;\n }\n\n SliderZoomView.prototype.init = function (ecModel, api) {\n this.api = api;\n this._onBrush = bind(this._onBrush, this);\n this._onBrushEnd = bind(this._onBrushEnd, this);\n };\n\n SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n _super.prototype.render.apply(this, arguments);\n\n throttle.createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\n this._orient = dataZoomModel.getOrient();\n\n if (dataZoomModel.get('show') === false) {\n this.group.removeAll();\n return;\n }\n\n if (dataZoomModel.noTarget()) {\n this._clear();\n\n this.group.removeAll();\n return;\n }\n\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n this._buildView();\n }\n\n this._updateView();\n };\n\n SliderZoomView.prototype.dispose = function () {\n this._clear();\n\n _super.prototype.dispose.apply(this, arguments);\n };\n\n SliderZoomView.prototype._clear = function () {\n throttle.clear(this, '_dispatchZoomAction');\n var zr = this.api.getZr();\n zr.off('mousemove', this._onBrush);\n zr.off('mouseup', this._onBrushEnd);\n };\n\n SliderZoomView.prototype._buildView = function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n this._brushing = false;\n this._displayables.brushRect = null;\n\n this._resetLocation();\n\n this._resetInterval();\n\n var barGroup = this._displayables.sliderGroup = new graphic.Group();\n\n this._renderBackground();\n\n this._renderHandle();\n\n this._renderDataShadow();\n\n thisGroup.add(barGroup);\n\n this._positionGroup();\n };\n\n SliderZoomView.prototype._resetLocation = function () {\n var dataZoomModel = this.dataZoomModel;\n var api = this.api;\n var showMoveHandle = dataZoomModel.get('brushSelect');\n var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\n\n var coordRect = this._findCoordRect();\n\n var ecSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var positionInfo = this._orient === HORIZONTAL ? {\n right: ecSize.width - coordRect.x - coordRect.width,\n top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize,\n width: coordRect.width,\n height: DEFAULT_FILLER_SIZE\n } : {\n right: DEFAULT_LOCATION_EDGE_GAP,\n top: coordRect.y,\n width: DEFAULT_FILLER_SIZE,\n height: coordRect.height\n };\n var layoutParams = layout.getLayoutParams(dataZoomModel.option);\n each(['right', 'top', 'width', 'height'], function (name) {\n if (layoutParams[name] === 'ph') {\n layoutParams[name] = positionInfo[name];\n }\n });\n var layoutRect = layout.getLayoutRect(layoutParams, ecSize);\n this._location = {\n x: layoutRect.x,\n y: layoutRect.y\n };\n this._size = [layoutRect.width, layoutRect.height];\n this._orient === VERTICAL && this._size.reverse();\n };\n\n SliderZoomView.prototype._positionGroup = function () {\n var thisGroup = this.group;\n var location = this._location;\n var orient = this._orient;\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\n var sliderGroup = this._displayables.sliderGroup;\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\n sliderGroup.attr(orient === HORIZONTAL && !inverse ? {\n scaleY: otherAxisInverse ? 1 : -1,\n scaleX: 1\n } : orient === HORIZONTAL && inverse ? {\n scaleY: otherAxisInverse ? 1 : -1,\n scaleX: -1\n } : orient === VERTICAL && !inverse ? {\n scaleY: otherAxisInverse ? -1 : 1,\n scaleX: 1,\n rotation: Math.PI / 2\n } : {\n scaleY: otherAxisInverse ? -1 : 1,\n scaleX: -1,\n rotation: Math.PI / 2\n });\n var rect = thisGroup.getBoundingRect([sliderGroup]);\n thisGroup.x = location.x - rect.x;\n thisGroup.y = location.y - rect.y;\n thisGroup.markRedraw();\n };\n\n SliderZoomView.prototype._getViewExtent = function () {\n return [0, this._size[0]];\n };\n\n SliderZoomView.prototype._renderBackground = function () {\n var dataZoomModel = this.dataZoomModel;\n var size = this._size;\n var barGroup = this._displayables.sliderGroup;\n var brushSelect = dataZoomModel.get('brushSelect');\n barGroup.add(new Rect({\n silent: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: dataZoomModel.get('backgroundColor')\n },\n z2: -40\n }));\n var clickPanel = new Rect({\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1]\n },\n style: {\n fill: 'transparent'\n },\n z2: 0,\n onclick: bind(this._onClickPanel, this)\n });\n var zr = this.api.getZr();\n\n if (brushSelect) {\n clickPanel.on('mousedown', this._onBrushStart, this);\n clickPanel.cursor = 'crosshair';\n zr.on('mousemove', this._onBrush);\n zr.on('mouseup', this._onBrushEnd);\n } else {\n zr.off('mousemove', this._onBrush);\n zr.off('mouseup', this._onBrushEnd);\n }\n\n barGroup.add(clickPanel);\n };\n\n SliderZoomView.prototype._renderDataShadow = function () {\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n this._displayables.dataShadowSegs = [];\n\n if (!info) {\n return;\n }\n\n var size = this._size;\n var seriesModel = info.series;\n var data = seriesModel.getRawData();\n var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() : info.otherDim;\n\n if (otherDim == null) {\n return;\n }\n\n var otherDataExtent = data.getDataExtent(otherDim);\n var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\n otherDataExtent = [otherDataExtent[0] - otherOffset, otherDataExtent[1] + otherOffset];\n var otherShadowExtent = [0, size[1]];\n var thisShadowExtent = [0, size[0]];\n var areaPoints = [[size[0], 0], [0, 0]];\n var linePoints = [];\n var step = thisShadowExtent[1] / (data.count() - 1);\n var thisCoord = 0;\n var stride = Math.round(data.count() / size[0]);\n var lastIsEmpty;\n data.each([otherDim], function (value, index) {\n if (stride > 0 && index % stride) {\n thisCoord += step;\n return;\n }\n\n var isEmpty = value == null || isNaN(value) || value === '';\n var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\n\n if (isEmpty && !lastIsEmpty && index) {\n areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\n linePoints.push([linePoints[linePoints.length - 1][0], 0]);\n } else if (!isEmpty && lastIsEmpty) {\n areaPoints.push([thisCoord, 0]);\n linePoints.push([thisCoord, 0]);\n }\n\n areaPoints.push([thisCoord, otherCoord]);\n linePoints.push([thisCoord, otherCoord]);\n thisCoord += step;\n lastIsEmpty = isEmpty;\n });\n var dataZoomModel = this.dataZoomModel;\n\n function createDataShadowGroup(isSelectedArea) {\n var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\n var group = new graphic.Group();\n var polygon = new graphic.Polygon({\n shape: {\n points: areaPoints\n },\n segmentIgnoreThreshold: 1,\n style: model.getModel('areaStyle').getAreaStyle(),\n silent: true,\n z2: -20\n });\n var polyline = new graphic.Polyline({\n shape: {\n points: linePoints\n },\n segmentIgnoreThreshold: 1,\n style: model.getModel('lineStyle').getLineStyle(),\n silent: true,\n z2: -19\n });\n group.add(polygon);\n group.add(polyline);\n return group;\n }\n\n for (var i = 0; i < 3; i++) {\n var group = createDataShadowGroup(i === 1);\n\n this._displayables.sliderGroup.add(group);\n\n this._displayables.dataShadowSegs.push(group);\n }\n };\n\n SliderZoomView.prototype._prepareDataShadowInfo = function () {\n var dataZoomModel = this.dataZoomModel;\n var showDataShadow = dataZoomModel.get('showDataShadow');\n\n if (showDataShadow === false) {\n return;\n }\n\n var result;\n var ecModel = this.ecModel;\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels();\n each(seriesModels, function (seriesModel) {\n if (result) {\n return;\n }\n\n if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n return;\n }\n\n var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\n var otherDim = getOtherDim(axisDim);\n var otherAxisInverse;\n var coordSys = seriesModel.coordinateSystem;\n\n if (otherDim != null && coordSys.getOtherAxis) {\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n }\n\n otherDim = seriesModel.getData().mapDimension(otherDim);\n result = {\n thisAxis: thisAxis,\n series: seriesModel,\n thisDim: axisDim,\n otherDim: otherDim,\n otherAxisInverse: otherAxisInverse\n };\n }, this);\n }, this);\n return result;\n };\n\n SliderZoomView.prototype._renderHandle = function () {\n var thisGroup = this.group;\n var displayables = this._displayables;\n var handles = displayables.handles = [null, null];\n var handleLabels = displayables.handleLabels = [null, null];\n var sliderGroup = this._displayables.sliderGroup;\n var size = this._size;\n var dataZoomModel = this.dataZoomModel;\n var api = this.api;\n var borderRadius = dataZoomModel.get('borderRadius') || 0;\n var brushSelect = dataZoomModel.get('brushSelect');\n var filler = displayables.filler = new Rect({\n silent: brushSelect,\n style: {\n fill: dataZoomModel.get('fillerColor')\n },\n textConfig: {\n position: 'inside'\n }\n });\n sliderGroup.add(filler);\n sliderGroup.add(new Rect({\n silent: true,\n subPixelOptimize: true,\n shape: {\n x: 0,\n y: 0,\n width: size[0],\n height: size[1],\n r: borderRadius\n },\n style: {\n stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n fill: 'rgba(0,0,0,0)'\n }\n }));\n each([0, 1], function (handleIndex) {\n var iconStr = dataZoomModel.get('handleIcon');\n\n if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\n iconStr = 'path://' + iconStr;\n\n if (process.env.NODE_ENV !== 'production') {\n deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\n }\n }\n\n var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\n path.attr({\n cursor: getCursor(this._orient),\n draggable: true,\n drift: bind(this._onDragMove, this, handleIndex),\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false),\n z2: 5\n });\n var bRect = path.getBoundingRect();\n var handleSize = dataZoomModel.get('handleSize');\n this._handleHeight = parsePercent(handleSize, this._size[1]);\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n path.style.strokeNoScale = true;\n path.rectHover = true;\n path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n enableHoverEmphasis(path);\n var handleColor = dataZoomModel.get('handleColor');\n\n if (handleColor != null) {\n path.style.fill = handleColor;\n }\n\n sliderGroup.add(handles[handleIndex] = path);\n var textStyleModel = dataZoomModel.getModel('textStyle');\n thisGroup.add(handleLabels[handleIndex] = new graphic.Text({\n silent: true,\n invisible: true,\n style: {\n x: 0,\n y: 0,\n text: '',\n verticalAlign: 'middle',\n align: 'center',\n fill: textStyleModel.getTextColor(),\n font: textStyleModel.getFont()\n },\n z2: 10\n }));\n }, this);\n var actualMoveZone = filler;\n\n if (brushSelect) {\n var moveHandleHeight = parsePercent(dataZoomModel.get('moveHandleSize'), size[1]);\n var moveHandle_1 = displayables.moveHandle = new graphic.Rect({\n style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\n silent: true,\n shape: {\n r: [0, 0, 2, 2],\n y: size[1] - 0.5,\n height: moveHandleHeight\n }\n });\n var iconSize = moveHandleHeight * 0.8;\n var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\n moveHandleIcon.silent = true;\n moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\n moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\n var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\n actualMoveZone = displayables.moveZone = new graphic.Rect({\n invisible: true,\n shape: {\n y: size[1] - moveZoneExpandSize,\n height: moveHandleHeight + moveZoneExpandSize\n }\n });\n actualMoveZone.on('mouseover', function () {\n api.enterEmphasis(moveHandle_1);\n }).on('mouseout', function () {\n api.leaveEmphasis(moveHandle_1);\n });\n sliderGroup.add(moveHandle_1);\n sliderGroup.add(moveHandleIcon);\n sliderGroup.add(actualMoveZone);\n }\n\n actualMoveZone.attr({\n draggable: true,\n cursor: getCursor(this._orient),\n drift: bind(this._onDragMove, this, 'all'),\n ondragstart: bind(this._showDataInfo, this, true),\n ondragend: bind(this._onDragEnd, this),\n onmouseover: bind(this._showDataInfo, this, true),\n onmouseout: bind(this._showDataInfo, this, false)\n });\n };\n\n SliderZoomView.prototype._resetInterval = function () {\n var range = this._range = this.dataZoomModel.getPercentRange();\n\n var viewExtent = this._getViewExtent();\n\n this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n };\n\n SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\n var dataZoomModel = this.dataZoomModel;\n var handleEnds = this._handleEnds;\n\n var viewExtend = this._getViewExtent();\n\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n var percentExtent = [0, 100];\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n var lastRange = this._range;\n var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n };\n\n SliderZoomView.prototype._updateView = function (nonRealtime) {\n var displaybles = this._displayables;\n var handleEnds = this._handleEnds;\n var handleInterval = asc(handleEnds.slice());\n var size = this._size;\n each([0, 1], function (handleIndex) {\n var handle = displaybles.handles[handleIndex];\n var handleHeight = this._handleHeight;\n handle.attr({\n scaleX: handleHeight / 2,\n scaleY: handleHeight / 2,\n x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\n y: size[1] / 2 - handleHeight / 2\n });\n }, this);\n displaybles.filler.setShape({\n x: handleInterval[0],\n y: 0,\n width: handleInterval[1] - handleInterval[0],\n height: size[1]\n });\n var viewExtent = {\n x: handleInterval[0],\n width: handleInterval[1] - handleInterval[0]\n };\n\n if (displaybles.moveHandle) {\n displaybles.moveHandle.setShape(viewExtent);\n displaybles.moveZone.setShape(viewExtent);\n displaybles.moveZone.getBoundingRect();\n displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\n }\n\n var dataShadowSegs = displaybles.dataShadowSegs;\n var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\n\n for (var i = 0; i < dataShadowSegs.length; i++) {\n var segGroup = dataShadowSegs[i];\n var clipPath = segGroup.getClipPath();\n\n if (!clipPath) {\n clipPath = new graphic.Rect();\n segGroup.setClipPath(clipPath);\n }\n\n clipPath.setShape({\n x: segIntervals[i],\n y: 0,\n width: segIntervals[i + 1] - segIntervals[i],\n height: size[1]\n });\n }\n\n this._updateDataInfo(nonRealtime);\n };\n\n SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\n var dataZoomModel = this.dataZoomModel;\n var displaybles = this._displayables;\n var handleLabels = displaybles.handleLabels;\n var orient = this._orient;\n var labelTexts = ['', ''];\n\n if (dataZoomModel.get('showDetail')) {\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n var axis = axisProxy.getAxisModel().axis;\n var range = this._range;\n var dataInterval = nonRealtime ? axisProxy.calculateDataWindow({\n start: range[0],\n end: range[1]\n }).valueWindow : axisProxy.getDataValueWindow();\n labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n }\n }\n\n var orderedHandleEnds = asc(this._handleEnds.slice());\n setLabel.call(this, 0);\n setLabel.call(this, 1);\n\n function setLabel(handleIndex) {\n var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n var offset = this._handleWidth / 2 + LABEL_GAP;\n var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n handleLabels[handleIndex].setStyle({\n x: textPoint[0],\n y: textPoint[1],\n verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n align: orient === HORIZONTAL ? direction : 'center',\n text: labelTexts[handleIndex]\n });\n }\n };\n\n SliderZoomView.prototype._formatLabel = function (value, axis) {\n var dataZoomModel = this.dataZoomModel;\n var labelFormatter = dataZoomModel.get('labelFormatter');\n var labelPrecision = dataZoomModel.get('labelPrecision');\n\n if (labelPrecision == null || labelPrecision === 'auto') {\n labelPrecision = axis.getPixelPrecision();\n }\n\n var valueStr = value == null || isNaN(value) ? '' : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel({\n value: Math.round(value)\n }) : value.toFixed(Math.min(labelPrecision, 20));\n return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n };\n\n SliderZoomView.prototype._showDataInfo = function (showOrHide) {\n showOrHide = this._dragging || showOrHide;\n var displayables = this._displayables;\n var handleLabels = displayables.handleLabels;\n handleLabels[0].attr('invisible', !showOrHide);\n handleLabels[1].attr('invisible', !showOrHide);\n displayables.moveHandle && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\n };\n\n SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\n this._dragging = true;\n eventTool.stop(event.event);\n\n var barTransform = this._displayables.sliderGroup.getLocalTransform();\n\n var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n var changed = this._updateInterval(handleIndex, vertex[0]);\n\n var realtime = this.dataZoomModel.get('realtime');\n\n this._updateView(!realtime);\n\n changed && realtime && this._dispatchZoomAction(true);\n };\n\n SliderZoomView.prototype._onDragEnd = function () {\n this._dragging = false;\n\n this._showDataInfo(false);\n\n var realtime = this.dataZoomModel.get('realtime');\n !realtime && this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onClickPanel = function (e) {\n var size = this._size;\n\n var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n return;\n }\n\n var handleEnds = this._handleEnds;\n var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n var changed = this._updateInterval('all', localPoint[0] - center);\n\n this._updateView();\n\n changed && this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onBrushStart = function (e) {\n var x = e.offsetX;\n var y = e.offsetY;\n this._brushStart = new graphic.Point(x, y);\n this._brushing = true;\n this._brushStartTime = +new Date();\n };\n\n SliderZoomView.prototype._onBrushEnd = function (e) {\n if (!this._brushing) {\n return;\n }\n\n var brushRect = this._displayables.brushRect;\n this._brushing = false;\n\n if (!brushRect) {\n return;\n }\n\n brushRect.attr('ignore', true);\n var brushShape = brushRect.shape;\n var brushEndTime = +new Date();\n\n if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\n return;\n }\n\n var viewExtend = this._getViewExtent();\n\n var percentExtent = [0, 100];\n this._range = asc([linearMap(brushShape.x, viewExtend, percentExtent, true), linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]);\n this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\n\n this._updateView();\n\n this._dispatchZoomAction(false);\n };\n\n SliderZoomView.prototype._onBrush = function (e) {\n if (this._brushing) {\n eventTool.stop(e.event);\n\n this._updateBrushRect(e.offsetX, e.offsetY);\n }\n };\n\n SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\n var displayables = this._displayables;\n var dataZoomModel = this.dataZoomModel;\n var brushRect = displayables.brushRect;\n\n if (!brushRect) {\n brushRect = displayables.brushRect = new Rect({\n silent: true,\n style: dataZoomModel.getModel('brushStyle').getItemStyle()\n });\n displayables.sliderGroup.add(brushRect);\n }\n\n brushRect.attr('ignore', false);\n var brushStart = this._brushStart;\n var sliderGroup = this._displayables.sliderGroup;\n var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\n var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\n var size = this._size;\n endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\n brushRect.setShape({\n x: startPoint[0],\n y: 0,\n width: endPoint[0] - startPoint[0],\n height: size[1]\n });\n };\n\n SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\n var range = this._range;\n this.api.dispatchAction({\n type: 'dataZoom',\n from: this.uid,\n dataZoomId: this.dataZoomModel.id,\n animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\n start: range[0],\n end: range[1]\n });\n };\n\n SliderZoomView.prototype._findCoordRect = function () {\n var rect;\n var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\n\n if (!rect && coordSysInfoList.length) {\n var coordSys = coordSysInfoList[0].model.coordinateSystem;\n rect = coordSys.getRect && coordSys.getRect();\n }\n\n if (!rect) {\n var width = this.api.getWidth();\n var height = this.api.getHeight();\n rect = {\n x: width * 0.2,\n y: height * 0.2,\n width: width * 0.6,\n height: height * 0.6\n };\n }\n\n return rect;\n };\n\n SliderZoomView.type = 'dataZoom.slider';\n return SliderZoomView;\n}(DataZoomView);\n\nfunction getOtherDim(thisDim) {\n var map = {\n x: 'y',\n y: 'x',\n radius: 'angle',\n angle: 'radius'\n };\n return map[thisDim];\n}\n\nfunction getCursor(orient) {\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default SliderZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderZoomModel from './SliderZoomModel';\nimport SliderZoomView from './SliderZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n registers.registerComponentModel(SliderZoomModel);\n registers.registerComponentView(SliderZoomView);\n installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomInside } from './installDataZoomInside';\nimport { install as installDataZoomSlider } from './installDataZoomSlider';\nexport function install(registers) {\n use(installDataZoomInside);\n use(installDataZoomSlider);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar visualDefault = {\n get: function (visualType, key, isCategory) {\n var value = zrUtil.clone((defaultOption[visualType] || {})[key]);\n return isCategory ? zrUtil.isArray(value) ? value[value.length - 1] : value : value;\n }\n};\nvar defaultOption = {\n color: {\n active: ['#006edd', '#e0ffff'],\n inactive: ['rgba(0,0,0,0)']\n },\n colorHue: {\n active: [0, 360],\n inactive: [0, 0]\n },\n colorSaturation: {\n active: [0.3, 1],\n inactive: [0, 0]\n },\n colorLightness: {\n active: [0.9, 0.5],\n inactive: [0, 0]\n },\n colorAlpha: {\n active: [0.3, 1],\n inactive: [0, 0]\n },\n opacity: {\n active: [0.3, 1],\n inactive: [0, 0]\n },\n symbol: {\n active: ['circle', 'roundRect', 'diamond'],\n inactive: ['none']\n },\n symbolSize: {\n active: [10, 50],\n inactive: [0, 0]\n }\n};\nexport default visualDefault;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport visualDefault from '../../visual/visualDefault';\nimport VisualMapping from '../../visual/VisualMapping';\nimport * as visualSolution from '../../visual/visualSolution';\nimport * as modelUtil from '../../util/model';\nimport * as numberUtil from '../../util/number';\nimport ComponentModel from '../../model/Component';\nvar mapVisual = VisualMapping.mapVisual;\nvar eachVisual = VisualMapping.eachVisual;\nvar isArray = zrUtil.isArray;\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\nvar linearMap = numberUtil.linearMap;\n\nvar VisualMapModel = function (_super) {\n __extends(VisualMapModel, _super);\n\n function VisualMapModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = VisualMapModel.type;\n _this.stateList = ['inRange', 'outOfRange'];\n _this.replacableOptionKeys = ['inRange', 'outOfRange', 'target', 'controller', 'color'];\n _this.layoutMode = {\n type: 'box',\n ignoreSize: true\n };\n _this.dataBound = [-Infinity, Infinity];\n _this.targetVisuals = {};\n _this.controllerVisuals = {};\n return _this;\n }\n\n VisualMapModel.prototype.init = function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n };\n\n VisualMapModel.prototype.optionUpdated = function (newOption, isInit) {\n var thisOption = this.option;\n\n if (!env.canvasSupported) {\n thisOption.realtime = false;\n }\n\n !isInit && visualSolution.replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\n this.textStyleModel = this.getModel('textStyle');\n this.resetItemSize();\n this.completeVisualOption();\n };\n\n VisualMapModel.prototype.resetVisual = function (supplementVisualOption) {\n var stateList = this.stateList;\n supplementVisualOption = zrUtil.bind(supplementVisualOption, this);\n this.controllerVisuals = visualSolution.createVisualMappings(this.option.controller, stateList, supplementVisualOption);\n this.targetVisuals = visualSolution.createVisualMappings(this.option.target, stateList, supplementVisualOption);\n };\n\n VisualMapModel.prototype.getTargetSeriesIndices = function () {\n var optionSeriesIndex = this.option.seriesIndex;\n var seriesIndices = [];\n\n if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\n this.ecModel.eachSeries(function (seriesModel, index) {\n seriesIndices.push(index);\n });\n } else {\n seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex);\n }\n\n return seriesIndices;\n };\n\n VisualMapModel.prototype.eachTargetSeries = function (callback, context) {\n zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) {\n var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex);\n\n if (seriesModel) {\n callback.call(context, seriesModel);\n }\n }, this);\n };\n\n VisualMapModel.prototype.isTargetSeries = function (seriesModel) {\n var is = false;\n this.eachTargetSeries(function (model) {\n model === seriesModel && (is = true);\n });\n return is;\n };\n\n VisualMapModel.prototype.formatValueText = function (value, isCategory, edgeSymbols) {\n var option = this.option;\n var precision = option.precision;\n var dataBound = this.dataBound;\n var formatter = option.formatter;\n var isMinMax;\n edgeSymbols = edgeSymbols || ['<', '>'];\n\n if (zrUtil.isArray(value)) {\n value = value.slice();\n isMinMax = true;\n }\n\n var textValue = isCategory ? value : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value);\n\n if (zrUtil.isString(formatter)) {\n return formatter.replace('{value}', isMinMax ? textValue[0] : textValue).replace('{value2}', isMinMax ? textValue[1] : textValue);\n } else if (zrUtil.isFunction(formatter)) {\n return isMinMax ? formatter(value[0], value[1]) : formatter(value);\n }\n\n if (isMinMax) {\n if (value[0] === dataBound[0]) {\n return edgeSymbols[0] + ' ' + textValue[1];\n } else if (value[1] === dataBound[1]) {\n return edgeSymbols[1] + ' ' + textValue[0];\n } else {\n return textValue[0] + ' - ' + textValue[1];\n }\n } else {\n return textValue;\n }\n\n function toFixed(val) {\n return val === dataBound[0] ? 'min' : val === dataBound[1] ? 'max' : (+val).toFixed(Math.min(precision, 20));\n }\n };\n\n VisualMapModel.prototype.resetExtent = function () {\n var thisOption = this.option;\n var extent = asc([thisOption.min, thisOption.max]);\n this._dataExtent = extent;\n };\n\n VisualMapModel.prototype.getDataDimension = function (list) {\n var optDim = this.option.dimension;\n var listDimensions = list.dimensions;\n\n if (optDim == null && !listDimensions.length) {\n return;\n }\n\n if (optDim != null) {\n return list.getDimension(optDim);\n }\n\n var dimNames = list.dimensions;\n\n for (var i = dimNames.length - 1; i >= 0; i--) {\n var dimName = dimNames[i];\n var dimInfo = list.getDimensionInfo(dimName);\n\n if (!dimInfo.isCalculationCoord) {\n return dimName;\n }\n }\n };\n\n VisualMapModel.prototype.getExtent = function () {\n return this._dataExtent.slice();\n };\n\n VisualMapModel.prototype.completeVisualOption = function () {\n var ecModel = this.ecModel;\n var thisOption = this.option;\n var base = {\n inRange: thisOption.inRange,\n outOfRange: thisOption.outOfRange\n };\n var target = thisOption.target || (thisOption.target = {});\n var controller = thisOption.controller || (thisOption.controller = {});\n zrUtil.merge(target, base);\n zrUtil.merge(controller, base);\n var isCategory = this.isCategory();\n completeSingle.call(this, target);\n completeSingle.call(this, controller);\n completeInactive.call(this, target, 'inRange', 'outOfRange');\n completeController.call(this, controller);\n\n function completeSingle(base) {\n if (isArray(thisOption.color) && !base.inRange) {\n base.inRange = {\n color: thisOption.color.slice().reverse()\n };\n }\n\n base.inRange = base.inRange || {\n color: ecModel.get('gradientColor')\n };\n }\n\n function completeInactive(base, stateExist, stateAbsent) {\n var optExist = base[stateExist];\n var optAbsent = base[stateAbsent];\n\n if (optExist && !optAbsent) {\n optAbsent = base[stateAbsent] = {};\n each(optExist, function (visualData, visualType) {\n if (!VisualMapping.isValidType(visualType)) {\n return;\n }\n\n var defa = visualDefault.get(visualType, 'inactive', isCategory);\n\n if (defa != null) {\n optAbsent[visualType] = defa;\n\n if (visualType === 'color' && !optAbsent.hasOwnProperty('opacity') && !optAbsent.hasOwnProperty('colorAlpha')) {\n optAbsent.opacity = [0, 0];\n }\n }\n });\n }\n }\n\n function completeController(controller) {\n var symbolExists = (controller.inRange || {}).symbol || (controller.outOfRange || {}).symbol;\n var symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize;\n var inactiveColor = this.get('inactiveColor');\n each(this.stateList, function (state) {\n var itemSize = this.itemSize;\n var visuals = controller[state];\n\n if (!visuals) {\n visuals = controller[state] = {\n color: isCategory ? inactiveColor : [inactiveColor]\n };\n }\n\n if (visuals.symbol == null) {\n visuals.symbol = symbolExists && zrUtil.clone(symbolExists) || (isCategory ? 'roundRect' : ['roundRect']);\n }\n\n if (visuals.symbolSize == null) {\n visuals.symbolSize = symbolSizeExists && zrUtil.clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\n }\n\n visuals.symbol = mapVisual(visuals.symbol, function (symbol) {\n return symbol === 'none' || symbol === 'square' ? 'roundRect' : symbol;\n });\n var symbolSize = visuals.symbolSize;\n\n if (symbolSize != null) {\n var max_1 = -Infinity;\n eachVisual(symbolSize, function (value) {\n value > max_1 && (max_1 = value);\n });\n visuals.symbolSize = mapVisual(symbolSize, function (value) {\n return linearMap(value, [0, max_1], [0, itemSize[0]], true);\n });\n }\n }, this);\n }\n };\n\n VisualMapModel.prototype.resetItemSize = function () {\n this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))];\n };\n\n VisualMapModel.prototype.isCategory = function () {\n return !!this.option.categories;\n };\n\n VisualMapModel.prototype.setSelected = function (selected) {};\n\n VisualMapModel.prototype.getSelected = function () {\n return null;\n };\n\n VisualMapModel.prototype.getValueState = function (value) {\n return null;\n };\n\n VisualMapModel.prototype.getVisualMeta = function (getColorVisual) {\n return null;\n };\n\n VisualMapModel.type = 'visualMap';\n VisualMapModel.dependencies = ['series'];\n VisualMapModel.defaultOption = {\n show: true,\n zlevel: 0,\n z: 4,\n seriesIndex: 'all',\n min: 0,\n max: 200,\n left: 0,\n right: null,\n top: null,\n bottom: 0,\n itemWidth: null,\n itemHeight: null,\n inverse: false,\n orient: 'vertical',\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n contentColor: '#5793f3',\n inactiveColor: '#aaa',\n borderWidth: 0,\n padding: 5,\n textGap: 10,\n precision: 0,\n textStyle: {\n color: '#333'\n }\n };\n return VisualMapModel;\n}(ComponentModel);\n\nexport default VisualMapModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapModel from './VisualMapModel';\nimport * as numberUtil from '../../util/number';\nimport { inheritDefaultOption } from '../../util/component';\nvar DEFAULT_BAR_BOUND = [20, 140];\n\nvar ContinuousModel = function (_super) {\n __extends(ContinuousModel, _super);\n\n function ContinuousModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ContinuousModel.type;\n return _this;\n }\n\n ContinuousModel.prototype.optionUpdated = function (newOption, isInit) {\n _super.prototype.optionUpdated.apply(this, arguments);\n\n this.resetExtent();\n this.resetVisual(function (mappingOption) {\n mappingOption.mappingMethod = 'linear';\n mappingOption.dataExtent = this.getExtent();\n });\n\n this._resetRange();\n };\n\n ContinuousModel.prototype.resetItemSize = function () {\n _super.prototype.resetItemSize.apply(this, arguments);\n\n var itemSize = this.itemSize;\n (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\n (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\n };\n\n ContinuousModel.prototype._resetRange = function () {\n var dataExtent = this.getExtent();\n var range = this.option.range;\n\n if (!range || range.auto) {\n dataExtent.auto = 1;\n this.option.range = dataExtent;\n } else if (zrUtil.isArray(range)) {\n if (range[0] > range[1]) {\n range.reverse();\n }\n\n range[0] = Math.max(range[0], dataExtent[0]);\n range[1] = Math.min(range[1], dataExtent[1]);\n }\n };\n\n ContinuousModel.prototype.completeVisualOption = function () {\n _super.prototype.completeVisualOption.apply(this, arguments);\n\n zrUtil.each(this.stateList, function (state) {\n var symbolSize = this.option.controller[state].symbolSize;\n\n if (symbolSize && symbolSize[0] !== symbolSize[1]) {\n symbolSize[0] = symbolSize[1] / 3;\n }\n }, this);\n };\n\n ContinuousModel.prototype.setSelected = function (selected) {\n this.option.range = selected.slice();\n\n this._resetRange();\n };\n\n ContinuousModel.prototype.getSelected = function () {\n var dataExtent = this.getExtent();\n var dataInterval = numberUtil.asc((this.get('range') || []).slice());\n dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\n dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\n dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\n dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\n return dataInterval;\n };\n\n ContinuousModel.prototype.getValueState = function (value) {\n var range = this.option.range;\n var dataExtent = this.getExtent();\n return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n };\n\n ContinuousModel.prototype.findTargetDataIndices = function (range) {\n var result = [];\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimension(data), function (value, dataIndex) {\n range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n };\n\n ContinuousModel.prototype.getVisualMeta = function (getColorVisual) {\n var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\n var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\n var stops = [];\n\n function setStop(value, valueState) {\n stops.push({\n value: value,\n color: getColorVisual(value, valueState)\n });\n }\n\n var iIdx = 0;\n var oIdx = 0;\n var iLen = iVals.length;\n var oLen = oVals.length;\n\n for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\n if (oVals[oIdx] < iVals[iIdx]) {\n setStop(oVals[oIdx], 'outOfRange');\n }\n }\n\n for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\n first && stops.length && setStop(iVals[iIdx], 'outOfRange');\n setStop(iVals[iIdx], 'inRange');\n }\n\n for (var first = 1; oIdx < oLen; oIdx++) {\n if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\n if (first) {\n stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\n first = 0;\n }\n\n setStop(oVals[oIdx], 'outOfRange');\n }\n }\n\n var stopsLen = stops.length;\n return {\n stops: stops,\n outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent']\n };\n };\n\n ContinuousModel.type = 'visualMap.continuous';\n ContinuousModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n align: 'auto',\n calculable: false,\n hoverLink: true,\n realtime: true,\n handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',\n handleSize: '120%',\n handleStyle: {\n borderColor: '#fff',\n borderWidth: 1\n },\n indicatorIcon: 'circle',\n indicatorSize: '50%',\n indicatorStyle: {\n borderColor: '#fff',\n borderWidth: 2,\n shadowBlur: 2,\n shadowOffsetX: 1,\n shadowOffsetY: 1,\n shadowColor: 'rgba(0,0,0,0.2)'\n }\n });\n return ContinuousModel;\n}(VisualMapModel);\n\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n if (dataExtent[0] === dataExtent[1]) {\n return dataExtent.slice();\n }\n\n var count = 200;\n var step = (dataExtent[1] - dataExtent[0]) / count;\n var value = dataExtent[0];\n var stopValues = [];\n\n for (var i = 0; i <= count && value < dataExtent[1]; i++) {\n stopValues.push(value);\n value += step;\n }\n\n stopValues.push(dataExtent[1]);\n return stopValues;\n}\n\nexport default ContinuousModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { Rect } from '../../util/graphic';\nimport * as formatUtil from '../../util/format';\nimport * as layout from '../../util/layout';\nimport VisualMapping from '../../visual/VisualMapping';\nimport ComponentView from '../../view/Component';\n\nvar VisualMapView = function (_super) {\n __extends(VisualMapView, _super);\n\n function VisualMapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = VisualMapView.type;\n _this.autoPositionValues = {\n left: 1,\n right: 1,\n top: 1,\n bottom: 1\n };\n return _this;\n }\n\n VisualMapView.prototype.init = function (ecModel, api) {\n this.ecModel = ecModel;\n this.api = api;\n };\n\n VisualMapView.prototype.render = function (visualMapModel, ecModel, api, payload) {\n this.visualMapModel = visualMapModel;\n\n if (visualMapModel.get('show') === false) {\n this.group.removeAll();\n return;\n }\n\n this.doRender(visualMapModel, ecModel, api, payload);\n };\n\n VisualMapView.prototype.renderBackground = function (group) {\n var visualMapModel = this.visualMapModel;\n var padding = formatUtil.normalizeCssArray(visualMapModel.get('padding') || 0);\n var rect = group.getBoundingRect();\n group.add(new Rect({\n z2: -1,\n silent: true,\n shape: {\n x: rect.x - padding[3],\n y: rect.y - padding[0],\n width: rect.width + padding[3] + padding[1],\n height: rect.height + padding[0] + padding[2]\n },\n style: {\n fill: visualMapModel.get('backgroundColor'),\n stroke: visualMapModel.get('borderColor'),\n lineWidth: visualMapModel.get('borderWidth')\n }\n }));\n };\n\n VisualMapView.prototype.getControllerVisual = function (targetValue, visualCluster, opts) {\n opts = opts || {};\n var forceState = opts.forceState;\n var visualMapModel = this.visualMapModel;\n var visualObj = {};\n\n if (visualCluster === 'symbol') {\n visualObj.symbol = visualMapModel.get('itemSymbol');\n }\n\n if (visualCluster === 'color') {\n var defaultColor = visualMapModel.get('contentColor');\n visualObj.color = defaultColor;\n }\n\n function getter(key) {\n return visualObj[key];\n }\n\n function setter(key, value) {\n visualObj[key] = value;\n }\n\n var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n zrUtil.each(visualTypes, function (type) {\n var visualMapping = mappings[type];\n\n if (opts.convertOpacityToAlpha && type === 'opacity') {\n type = 'colorAlpha';\n visualMapping = mappings.__alphaForOpacity;\n }\n\n if (VisualMapping.dependsOn(type, visualCluster)) {\n visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\n }\n });\n return visualObj[visualCluster];\n };\n\n VisualMapView.prototype.positionGroup = function (group) {\n var model = this.visualMapModel;\n var api = this.api;\n layout.positionElement(group, model.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n };\n\n VisualMapView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {};\n\n VisualMapView.type = 'visualMap';\n return VisualMapView;\n}(ComponentView);\n\nexport default VisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nvar paramsSet = [['left', 'right', 'width'], ['top', 'bottom', 'height']];\nexport function getItemAlign(visualMapModel, api, itemSize) {\n var modelOption = visualMapModel.option;\n var itemAlign = modelOption.align;\n\n if (itemAlign != null && itemAlign !== 'auto') {\n return itemAlign;\n }\n\n var ecSize = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\n var reals = paramsSet[realIndex];\n var fakeValue = [0, null, 10];\n var layoutInput = {};\n\n for (var i = 0; i < 3; i++) {\n layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\n layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\n }\n\n var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\n var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\n return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5 < ecSize[rParam[1]] * 0.5 ? 0 : 1];\n}\nexport function makeHighDownBatch(batch, visualMapModel) {\n zrUtil.each(batch || [], function (batchItem) {\n if (batchItem.dataIndex != null) {\n batchItem.dataIndexInside = batchItem.dataIndex;\n batchItem.dataIndex = null;\n }\n\n batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : '');\n });\n return batch;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport * as eventTool from 'zrender/lib/core/event';\nimport VisualMapView from './VisualMapView';\nimport * as graphic from '../../util/graphic';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport * as helper from './helper';\nimport * as modelUtil from '../../util/model';\nimport { parsePercent } from 'zrender/lib/contain/text';\nimport { setAsHighDownDispatcher } from '../../util/states';\nimport { createSymbol } from '../../util/symbol';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport { getECData } from '../../util/innerStore';\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6;\n\nvar ContinuousView = function (_super) {\n __extends(ContinuousView, _super);\n\n function ContinuousView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = ContinuousView.type;\n _this._shapes = {};\n _this._dataInterval = [];\n _this._handleEnds = [];\n _this._hoverLinkDataIndices = [];\n return _this;\n }\n\n ContinuousView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {\n this._api = api;\n\n if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n this._buildView();\n }\n };\n\n ContinuousView.prototype._buildView = function () {\n this.group.removeAll();\n var visualMapModel = this.visualMapModel;\n var thisGroup = this.group;\n this._orient = visualMapModel.get('orient');\n this._useHandle = visualMapModel.get('calculable');\n\n this._resetInterval();\n\n this._renderBar(thisGroup);\n\n var dataRangeText = visualMapModel.get('text');\n\n this._renderEndsText(thisGroup, dataRangeText, 0);\n\n this._renderEndsText(thisGroup, dataRangeText, 1);\n\n this._updateView(true);\n\n this.renderBackground(thisGroup);\n\n this._updateView();\n\n this._enableHoverLinkToSeries();\n\n this._enableHoverLinkFromSeries();\n\n this.positionGroup(thisGroup);\n };\n\n ContinuousView.prototype._renderEndsText = function (group, dataRangeText, endsIndex) {\n if (!dataRangeText) {\n return;\n }\n\n var text = dataRangeText[1 - endsIndex];\n text = text != null ? text + '' : '';\n var visualMapModel = this.visualMapModel;\n var textGap = visualMapModel.get('textGap');\n var itemSize = visualMapModel.itemSize;\n var barGroup = this._shapes.mainGroup;\n\n var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup);\n\n var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\n\n var orient = this._orient;\n var textStyleModel = this.visualMapModel.textStyleModel;\n this.group.add(new graphic.Text({\n style: {\n x: position[0],\n y: position[1],\n verticalAlign: orient === 'horizontal' ? 'middle' : align,\n align: orient === 'horizontal' ? align : 'center',\n text: text,\n font: textStyleModel.getFont(),\n fill: textStyleModel.getTextColor()\n }\n }));\n };\n\n ContinuousView.prototype._renderBar = function (targetGroup) {\n var visualMapModel = this.visualMapModel;\n var shapes = this._shapes;\n var itemSize = visualMapModel.itemSize;\n var orient = this._orient;\n var useHandle = this._useHandle;\n var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize);\n\n var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign);\n\n var gradientBarGroup = new graphic.Group();\n mainGroup.add(gradientBarGroup);\n gradientBarGroup.add(shapes.outOfRange = createPolygon());\n gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true)));\n gradientBarGroup.setClipPath(new graphic.Rect({\n shape: {\n x: 0,\n y: 0,\n width: itemSize[0],\n height: itemSize[1],\n r: 3\n }\n }));\n var textRect = visualMapModel.textStyleModel.getTextRect('国');\n var textSize = mathMax(textRect.width, textRect.height);\n\n if (useHandle) {\n shapes.handleThumbs = [];\n shapes.handleLabels = [];\n shapes.handleLabelPoints = [];\n\n this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient);\n\n this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient);\n }\n\n this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient);\n\n targetGroup.add(mainGroup);\n };\n\n ContinuousView.prototype._createHandle = function (visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) {\n var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false);\n var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true);\n var handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]);\n var handleThumb = createSymbol(visualMapModel.get('handleIcon'), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true);\n var cursor = getCursor(this._orient);\n handleThumb.attr({\n cursor: cursor,\n draggable: true,\n drift: onDrift,\n ondragend: onDragEnd,\n onmousemove: function (e) {\n eventTool.stop(e.event);\n }\n });\n handleThumb.x = itemSize[0] / 2;\n handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle());\n handleThumb.setStyle({\n strokeNoScale: true,\n strokeFirst: true\n });\n handleThumb.style.lineWidth *= 2;\n handleThumb.ensureState('emphasis').style = visualMapModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n setAsHighDownDispatcher(handleThumb, true);\n mainGroup.add(handleThumb);\n var textStyleModel = this.visualMapModel.textStyleModel;\n var handleLabel = new graphic.Text({\n cursor: cursor,\n draggable: true,\n drift: onDrift,\n onmousemove: function (e) {\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd,\n style: {\n x: 0,\n y: 0,\n text: '',\n font: textStyleModel.getFont(),\n fill: textStyleModel.getTextColor()\n }\n });\n handleLabel.ensureState('blur').style = {\n opacity: 0.1\n };\n handleLabel.stateTransition = {\n duration: 200\n };\n this.group.add(handleLabel);\n var handleLabelPoint = [handleSize, 0];\n var shapes = this._shapes;\n shapes.handleThumbs[handleIndex] = handleThumb;\n shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n shapes.handleLabels[handleIndex] = handleLabel;\n };\n\n ContinuousView.prototype._createIndicator = function (visualMapModel, mainGroup, itemSize, textSize, orient) {\n var scale = parsePercent(visualMapModel.get('indicatorSize'), itemSize[0]);\n var indicator = createSymbol(visualMapModel.get('indicatorIcon'), -scale / 2, -scale / 2, scale, scale, null, true);\n indicator.attr({\n cursor: 'move',\n invisible: true,\n silent: true,\n x: itemSize[0] / 2\n });\n var indicatorStyle = visualMapModel.getModel('indicatorStyle').getItemStyle();\n\n if (indicator instanceof ZRImage) {\n var pathStyle = indicator.style;\n indicator.useStyle(zrUtil.extend({\n image: pathStyle.image,\n x: pathStyle.x,\n y: pathStyle.y,\n width: pathStyle.width,\n height: pathStyle.height\n }, indicatorStyle));\n } else {\n indicator.useStyle(indicatorStyle);\n }\n\n mainGroup.add(indicator);\n var textStyleModel = this.visualMapModel.textStyleModel;\n var indicatorLabel = new graphic.Text({\n silent: true,\n invisible: true,\n style: {\n x: 0,\n y: 0,\n text: '',\n font: textStyleModel.getFont(),\n fill: textStyleModel.getTextColor()\n }\n });\n this.group.add(indicatorLabel);\n var indicatorLabelPoint = [(orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2, 0];\n var shapes = this._shapes;\n shapes.indicator = indicator;\n shapes.indicatorLabel = indicatorLabel;\n shapes.indicatorLabelPoint = indicatorLabelPoint;\n this._firstShowIndicator = true;\n };\n\n ContinuousView.prototype._dragHandle = function (handleIndex, isEnd, dx, dy) {\n if (!this._useHandle) {\n return;\n }\n\n this._dragging = !isEnd;\n\n if (!isEnd) {\n var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true);\n\n this._updateInterval(handleIndex, vertex[1]);\n\n this._hideIndicator();\n\n this._updateView();\n }\n\n if (isEnd === !this.visualMapModel.get('realtime')) {\n this.api.dispatchAction({\n type: 'selectDataRange',\n from: this.uid,\n visualMapId: this.visualMapModel.id,\n selected: this._dataInterval.slice()\n });\n }\n\n if (isEnd) {\n !this._hovering && this._clearHoverLinkToSeries();\n } else if (useHoverLinkOnHandle(this.visualMapModel)) {\n this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\n }\n };\n\n ContinuousView.prototype._resetInterval = function () {\n var visualMapModel = this.visualMapModel;\n var dataInterval = this._dataInterval = visualMapModel.getSelected();\n var dataExtent = visualMapModel.getExtent();\n var sizeExtent = [0, visualMapModel.itemSize[1]];\n this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)];\n };\n\n ContinuousView.prototype._updateInterval = function (handleIndex, delta) {\n delta = delta || 0;\n var visualMapModel = this.visualMapModel;\n var handleEnds = this._handleEnds;\n var sizeExtent = [0, visualMapModel.itemSize[1]];\n sliderMove(delta, handleEnds, sizeExtent, handleIndex, 0);\n var dataExtent = visualMapModel.getExtent();\n this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n };\n\n ContinuousView.prototype._updateView = function (forSketch) {\n var visualMapModel = this.visualMapModel;\n var dataExtent = visualMapModel.getExtent();\n var shapes = this._shapes;\n var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\n var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\n\n var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\n\n var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\n\n shapes.inRange.setStyle({\n fill: visualInRange.barColor\n }).setShape('points', visualInRange.barPoints);\n shapes.outOfRange.setStyle({\n fill: visualOutOfRange.barColor\n }).setShape('points', visualOutOfRange.barPoints);\n\n this._updateHandle(inRangeHandleEnds, visualInRange);\n };\n\n ContinuousView.prototype._createBarVisual = function (dataInterval, dataExtent, handleEnds, forceState) {\n var opts = {\n forceState: forceState,\n convertOpacityToAlpha: true\n };\n\n var colorStops = this._makeColorGradient(dataInterval, opts);\n\n var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)];\n\n var barPoints = this._createBarPoints(handleEnds, symbolSizes);\n\n return {\n barColor: new LinearGradient(0, 0, 0, 1, colorStops),\n barPoints: barPoints,\n handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color]\n };\n };\n\n ContinuousView.prototype._makeColorGradient = function (dataInterval, opts) {\n var sampleNumber = 100;\n var colorStops = [];\n var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\n colorStops.push({\n color: this.getControllerVisual(dataInterval[0], 'color', opts),\n offset: 0\n });\n\n for (var i = 1; i < sampleNumber; i++) {\n var currValue = dataInterval[0] + step * i;\n\n if (currValue > dataInterval[1]) {\n break;\n }\n\n colorStops.push({\n color: this.getControllerVisual(currValue, 'color', opts),\n offset: i / sampleNumber\n });\n }\n\n colorStops.push({\n color: this.getControllerVisual(dataInterval[1], 'color', opts),\n offset: 1\n });\n return colorStops;\n };\n\n ContinuousView.prototype._createBarPoints = function (handleEnds, symbolSizes) {\n var itemSize = this.visualMapModel.itemSize;\n return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]];\n };\n\n ContinuousView.prototype._createBarGroup = function (itemAlign) {\n var orient = this._orient;\n var inverse = this.visualMapModel.get('inverse');\n return new graphic.Group(orient === 'horizontal' && !inverse ? {\n scaleX: itemAlign === 'bottom' ? 1 : -1,\n rotation: Math.PI / 2\n } : orient === 'horizontal' && inverse ? {\n scaleX: itemAlign === 'bottom' ? -1 : 1,\n rotation: -Math.PI / 2\n } : orient === 'vertical' && !inverse ? {\n scaleX: itemAlign === 'left' ? 1 : -1,\n scaleY: -1\n } : {\n scaleX: itemAlign === 'left' ? 1 : -1\n });\n };\n\n ContinuousView.prototype._updateHandle = function (handleEnds, visualInRange) {\n if (!this._useHandle) {\n return;\n }\n\n var shapes = this._shapes;\n var visualMapModel = this.visualMapModel;\n var handleThumbs = shapes.handleThumbs;\n var handleLabels = shapes.handleLabels;\n var itemSize = visualMapModel.itemSize;\n var dataExtent = visualMapModel.getExtent();\n each([0, 1], function (handleIndex) {\n var handleThumb = handleThumbs[handleIndex];\n handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n handleThumb.y = handleEnds[handleIndex];\n var val = linearMap(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true);\n var symbolSize = this.getControllerVisual(val, 'symbolSize');\n handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0];\n handleThumb.x = itemSize[0] - symbolSize / 2;\n var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group));\n handleLabels[handleIndex].setStyle({\n x: textPoint[0],\n y: textPoint[1],\n text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\n verticalAlign: 'middle',\n align: this._orient === 'vertical' ? this._applyTransform('left', shapes.mainGroup) : 'center'\n });\n }, this);\n };\n\n ContinuousView.prototype._showIndicator = function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\n var visualMapModel = this.visualMapModel;\n var dataExtent = visualMapModel.getExtent();\n var itemSize = visualMapModel.itemSize;\n var sizeExtent = [0, itemSize[1]];\n var shapes = this._shapes;\n var indicator = shapes.indicator;\n\n if (!indicator) {\n return;\n }\n\n indicator.attr('invisible', false);\n var opts = {\n convertOpacityToAlpha: true\n };\n var color = this.getControllerVisual(cursorValue, 'color', opts);\n var symbolSize = this.getControllerVisual(cursorValue, 'symbolSize');\n var y = linearMap(cursorValue, dataExtent, sizeExtent, true);\n var x = itemSize[0] - symbolSize / 2;\n var oldIndicatorPos = {\n x: indicator.x,\n y: indicator.y\n };\n indicator.y = y;\n indicator.x = x;\n var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group));\n var indicatorLabel = shapes.indicatorLabel;\n indicatorLabel.attr('invisible', false);\n\n var align = this._applyTransform('left', shapes.mainGroup);\n\n var orient = this._orient;\n var isHorizontal = orient === 'horizontal';\n indicatorLabel.setStyle({\n text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n verticalAlign: isHorizontal ? align : 'middle',\n align: isHorizontal ? 'center' : align\n });\n var indicatorNewProps = {\n x: x,\n y: y,\n style: {\n fill: color\n }\n };\n var labelNewProps = {\n style: {\n x: textPoint[0],\n y: textPoint[1]\n }\n };\n\n if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {\n var animationCfg = {\n duration: 100,\n easing: 'cubicInOut',\n additive: true\n };\n indicator.x = oldIndicatorPos.x;\n indicator.y = oldIndicatorPos.y;\n indicator.animateTo(indicatorNewProps, animationCfg);\n indicatorLabel.animateTo(labelNewProps, animationCfg);\n } else {\n indicator.attr(indicatorNewProps);\n indicatorLabel.attr(labelNewProps);\n }\n\n this._firstShowIndicator = false;\n var handleLabels = this._shapes.handleLabels;\n\n if (handleLabels) {\n for (var i = 0; i < handleLabels.length; i++) {\n this._api.enterBlur(handleLabels[i]);\n }\n }\n };\n\n ContinuousView.prototype._enableHoverLinkToSeries = function () {\n var self = this;\n\n this._shapes.mainGroup.on('mousemove', function (e) {\n self._hovering = true;\n\n if (!self._dragging) {\n var itemSize = self.visualMapModel.itemSize;\n\n var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true);\n\n pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);\n\n self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\n }\n }).on('mouseout', function () {\n self._hovering = false;\n !self._dragging && self._clearHoverLinkToSeries();\n });\n };\n\n ContinuousView.prototype._enableHoverLinkFromSeries = function () {\n var zr = this.api.getZr();\n\n if (this.visualMapModel.option.hoverLink) {\n zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\n zr.on('mouseout', this._hideIndicator, this);\n } else {\n this._clearHoverLinkFromSeries();\n }\n };\n\n ContinuousView.prototype._doHoverLinkToSeries = function (cursorPos, hoverOnBar) {\n var visualMapModel = this.visualMapModel;\n var itemSize = visualMapModel.itemSize;\n\n if (!visualMapModel.option.hoverLink) {\n return;\n }\n\n var sizeExtent = [0, itemSize[1]];\n var dataExtent = visualMapModel.getExtent();\n cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]);\n var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\n var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\n var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true);\n var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)];\n hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity);\n\n if (hoverOnBar) {\n if (valueRange[0] === -Infinity) {\n this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\n } else if (valueRange[1] === Infinity) {\n this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\n } else {\n this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\n }\n }\n\n var oldBatch = this._hoverLinkDataIndices;\n var newBatch = [];\n\n if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\n newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\n }\n\n var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);\n\n this._dispatchHighDown('downplay', helper.makeHighDownBatch(resultBatches[0], visualMapModel));\n\n this._dispatchHighDown('highlight', helper.makeHighDownBatch(resultBatches[1], visualMapModel));\n };\n\n ContinuousView.prototype._hoverLinkFromSeriesMouseOver = function (e) {\n var el = e.target;\n var visualMapModel = this.visualMapModel;\n\n if (!el || getECData(el).dataIndex == null) {\n return;\n }\n\n var ecData = getECData(el);\n var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex);\n\n if (!visualMapModel.isTargetSeries(dataModel)) {\n return;\n }\n\n var data = dataModel.getData(ecData.dataType);\n var value = data.get(visualMapModel.getDataDimension(data), ecData.dataIndex);\n\n if (!isNaN(value)) {\n this._showIndicator(value, value);\n }\n };\n\n ContinuousView.prototype._hideIndicator = function () {\n var shapes = this._shapes;\n shapes.indicator && shapes.indicator.attr('invisible', true);\n shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n var handleLabels = this._shapes.handleLabels;\n\n if (handleLabels) {\n for (var i = 0; i < handleLabels.length; i++) {\n this._api.leaveBlur(handleLabels[i]);\n }\n }\n };\n\n ContinuousView.prototype._clearHoverLinkToSeries = function () {\n this._hideIndicator();\n\n var indices = this._hoverLinkDataIndices;\n\n this._dispatchHighDown('downplay', helper.makeHighDownBatch(indices, this.visualMapModel));\n\n indices.length = 0;\n };\n\n ContinuousView.prototype._clearHoverLinkFromSeries = function () {\n this._hideIndicator();\n\n var zr = this.api.getZr();\n zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\n zr.off('mouseout', this._hideIndicator);\n };\n\n ContinuousView.prototype._applyTransform = function (vertex, element, inverse, global) {\n var transform = graphic.getTransform(element, global ? null : this.group);\n return zrUtil.isArray(vertex) ? graphic.applyTransform(vertex, transform, inverse) : graphic.transformDirection(vertex, transform, inverse);\n };\n\n ContinuousView.prototype._dispatchHighDown = function (type, batch) {\n batch && batch.length && this.api.dispatchAction({\n type: type,\n batch: batch\n });\n };\n\n ContinuousView.prototype.dispose = function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n };\n\n ContinuousView.prototype.remove = function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n };\n\n ContinuousView.type = 'visualMap.continuous';\n return ContinuousView;\n}(VisualMapView);\n\nfunction createPolygon(points, cursor, onDrift, onDragEnd) {\n return new graphic.Polygon({\n shape: {\n points: points\n },\n draggable: !!onDrift,\n cursor: cursor,\n drift: onDrift,\n onmousemove: function (e) {\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd\n });\n}\n\nfunction getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\n var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\n var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\n\n if (hoverLinkDataSize) {\n halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\n }\n\n return halfHoverLinkSize;\n}\n\nfunction useHoverLinkOnHandle(visualMapModel) {\n var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\n return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\n}\n\nfunction getCursor(orient) {\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default ContinuousView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var visualMapActionInfo = {\n type: 'selectDataRange',\n event: 'dataRangeSelected',\n update: 'update'\n};\nexport var visualMapActionHander = function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'visualMap',\n query: payload\n }, function (model) {\n model.setSelected(payload.selected);\n });\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as visualSolution from '../../visual/visualSolution';\nimport VisualMapping from '../../visual/VisualMapping';\nimport { getVisualFromData } from '../../visual/helper';\nexport var visualMapEncodingHandlers = [{\n createOnAllSeries: true,\n reset: function (seriesModel, ecModel) {\n var resetDefines = [];\n ecModel.eachComponent('visualMap', function (visualMapModel) {\n var pipelineContext = seriesModel.pipelineContext;\n\n if (!visualMapModel.isTargetSeries(seriesModel) || pipelineContext && pipelineContext.large) {\n return;\n }\n\n resetDefines.push(visualSolution.incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, zrUtil.bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimension(seriesModel.getData())));\n });\n return resetDefines;\n }\n}, {\n createOnAllSeries: true,\n reset: function (seriesModel, ecModel) {\n var data = seriesModel.getData();\n var visualMetaList = [];\n ecModel.eachComponent('visualMap', function (visualMapModel) {\n if (visualMapModel.isTargetSeries(seriesModel)) {\n var visualMeta = visualMapModel.getVisualMeta(zrUtil.bind(getColorVisual, null, seriesModel, visualMapModel)) || {\n stops: [],\n outerColors: []\n };\n var concreteDim = visualMapModel.getDataDimension(data);\n var dimInfo = data.getDimensionInfo(concreteDim);\n\n if (dimInfo != null) {\n visualMeta.dimension = dimInfo.index;\n visualMetaList.push(visualMeta);\n }\n }\n });\n seriesModel.getData().setVisual('visualMeta', visualMetaList);\n }\n}];\n\nfunction getColorVisual(seriesModel, visualMapModel, value, valueState) {\n var mappings = visualMapModel.targetVisuals[valueState];\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n var resultVisual = {\n color: getVisualFromData(seriesModel.getData(), 'color')\n };\n\n for (var i = 0, len = visualTypes.length; i < len; i++) {\n var type = visualTypes[i];\n var mapping = mappings[type === 'opacity' ? '__alphaForOpacity' : type];\n mapping && mapping.applyVisual(value, getVisual, setVisual);\n }\n\n return resultVisual.color;\n\n function getVisual(key) {\n return resultVisual[key];\n }\n\n function setVisual(key, value) {\n resultVisual[key] = value;\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar each = zrUtil.each;\nexport default function visualMapPreprocessor(option) {\n var visualMap = option && option.visualMap;\n\n if (!zrUtil.isArray(visualMap)) {\n visualMap = visualMap ? [visualMap] : [];\n }\n\n each(visualMap, function (opt) {\n if (!opt) {\n return;\n }\n\n if (has(opt, 'splitList') && !has(opt, 'pieces')) {\n opt.pieces = opt.splitList;\n delete opt.splitList;\n }\n\n var pieces = opt.pieces;\n\n if (pieces && zrUtil.isArray(pieces)) {\n each(pieces, function (piece) {\n if (zrUtil.isObject(piece)) {\n if (has(piece, 'start') && !has(piece, 'min')) {\n piece.min = piece.start;\n }\n\n if (has(piece, 'end') && !has(piece, 'max')) {\n piece.max = piece.end;\n }\n }\n });\n }\n });\n}\n\nfunction has(obj, name) {\n return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { visualMapActionInfo, visualMapActionHander } from './visualMapAction';\nimport { visualMapEncodingHandlers } from './visualEncoding';\nimport { each } from 'zrender/lib/core/util';\nimport preprocessor from './preprocessor';\nvar installed = false;\nexport default function installCommon(registers) {\n if (installed) {\n return;\n }\n\n installed = true;\n registers.registerSubTypeDefaulter('visualMap', function (option) {\n return !option.categories && (!(option.pieces ? option.pieces.length > 0 : option.splitNumber > 0) || option.calculable) ? 'continuous' : 'piecewise';\n });\n registers.registerAction(visualMapActionInfo, visualMapActionHander);\n each(visualMapEncodingHandlers, function (handler) {\n registers.registerVisual(registers.PRIORITY.VISUAL.COMPONENT, handler);\n });\n registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ContinuousModel from './ContinuousModel';\nimport ContinuousView from './ContinuousView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n registers.registerComponentModel(ContinuousModel);\n registers.registerComponentView(ContinuousView);\n installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapModel from './VisualMapModel';\nimport VisualMapping from '../../visual/VisualMapping';\nimport visualDefault from '../../visual/visualDefault';\nimport { reformIntervals } from '../../util/number';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar PiecewiseModel = function (_super) {\n __extends(PiecewiseModel, _super);\n\n function PiecewiseModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PiecewiseModel.type;\n _this._pieceList = [];\n return _this;\n }\n\n PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\n _super.prototype.optionUpdated.apply(this, arguments);\n\n this.resetExtent();\n\n var mode = this._mode = this._determineMode();\n\n this._pieceList = [];\n\n resetMethods[this._mode].call(this, this._pieceList);\n\n this._resetSelected(newOption, isInit);\n\n var categories = this.option.categories;\n this.resetVisual(function (mappingOption, state) {\n if (mode === 'categories') {\n mappingOption.mappingMethod = 'category';\n mappingOption.categories = zrUtil.clone(categories);\n } else {\n mappingOption.dataExtent = this.getExtent();\n mappingOption.mappingMethod = 'piecewise';\n mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n piece = zrUtil.clone(piece);\n\n if (state !== 'inRange') {\n piece.visual = null;\n }\n\n return piece;\n });\n }\n });\n };\n\n PiecewiseModel.prototype.completeVisualOption = function () {\n var option = this.option;\n var visualTypesInPieces = {};\n var visualTypes = VisualMapping.listVisualTypes();\n var isCategory = this.isCategory();\n zrUtil.each(option.pieces, function (piece) {\n zrUtil.each(visualTypes, function (visualType) {\n if (piece.hasOwnProperty(visualType)) {\n visualTypesInPieces[visualType] = 1;\n }\n });\n });\n zrUtil.each(visualTypesInPieces, function (v, visualType) {\n var exists = false;\n zrUtil.each(this.stateList, function (state) {\n exists = exists || has(option, state, visualType) || has(option.target, state, visualType);\n }, this);\n !exists && zrUtil.each(this.stateList, function (state) {\n (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n });\n }, this);\n\n function has(obj, state, visualType) {\n return obj && obj[state] && obj[state].hasOwnProperty(visualType);\n }\n\n _super.prototype.completeVisualOption.apply(this, arguments);\n };\n\n PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\n var thisOption = this.option;\n var pieceList = this._pieceList;\n var selected = (isInit ? thisOption : newOption).selected || {};\n thisOption.selected = selected;\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (!selected.hasOwnProperty(key)) {\n selected[key] = true;\n }\n }, this);\n\n if (thisOption.selectedMode === 'single') {\n var hasSel_1 = false;\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (selected[key]) {\n hasSel_1 ? selected[key] = false : hasSel_1 = true;\n }\n }, this);\n }\n };\n\n PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\n return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n };\n\n PiecewiseModel.prototype.getPieceList = function () {\n return this._pieceList;\n };\n\n PiecewiseModel.prototype._determineMode = function () {\n var option = this.option;\n return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n };\n\n PiecewiseModel.prototype.setSelected = function (selected) {\n this.option.selected = zrUtil.clone(selected);\n };\n\n PiecewiseModel.prototype.getValueState = function (value) {\n var index = VisualMapping.findPieceIndex(value, this._pieceList);\n return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n };\n\n PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\n var result = [];\n var pieceList = this._pieceList;\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimension(data), function (value, dataIndex) {\n var pIdx = VisualMapping.findPieceIndex(value, pieceList);\n pIdx === pieceIndex && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n };\n\n PiecewiseModel.prototype.getRepresentValue = function (piece) {\n var representValue;\n\n if (this.isCategory()) {\n representValue = piece.value;\n } else {\n if (piece.value != null) {\n representValue = piece.value;\n } else {\n var pieceInterval = piece.interval || [];\n representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n }\n }\n\n return representValue;\n };\n\n PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\n if (this.isCategory()) {\n return;\n }\n\n var stops = [];\n var outerColors = ['', ''];\n var visualMapModel = this;\n\n function setStop(interval, valueState) {\n var representValue = visualMapModel.getRepresentValue({\n interval: interval\n });\n\n if (!valueState) {\n valueState = visualMapModel.getValueState(representValue);\n }\n\n var color = getColorVisual(representValue, valueState);\n\n if (interval[0] === -Infinity) {\n outerColors[0] = color;\n } else if (interval[1] === Infinity) {\n outerColors[1] = color;\n } else {\n stops.push({\n value: interval[0],\n color: color\n }, {\n value: interval[1],\n color: color\n });\n }\n }\n\n var pieceList = this._pieceList.slice();\n\n if (!pieceList.length) {\n pieceList.push({\n interval: [-Infinity, Infinity]\n });\n } else {\n var edge = pieceList[0].interval[0];\n edge !== -Infinity && pieceList.unshift({\n interval: [-Infinity, edge]\n });\n edge = pieceList[pieceList.length - 1].interval[1];\n edge !== Infinity && pieceList.push({\n interval: [edge, Infinity]\n });\n }\n\n var curr = -Infinity;\n zrUtil.each(pieceList, function (piece) {\n var interval = piece.interval;\n\n if (interval) {\n interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n setStop(interval.slice());\n curr = interval[1];\n }\n }, this);\n return {\n stops: stops,\n outerColors: outerColors\n };\n };\n\n PiecewiseModel.type = 'visualMap.piecewise';\n PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n selected: null,\n minOpen: false,\n maxOpen: false,\n align: 'auto',\n itemWidth: 20,\n itemHeight: 14,\n itemSymbol: 'roundRect',\n pieces: null,\n categories: null,\n splitNumber: 5,\n selectedMode: 'multiple',\n itemGap: 10,\n hoverLink: true\n });\n return PiecewiseModel;\n}(VisualMapModel);\n\n;\nvar resetMethods = {\n splitNumber: function (outPieceList) {\n var thisOption = this.option;\n var precision = Math.min(thisOption.precision, 20);\n var dataExtent = this.getExtent();\n var splitNumber = thisOption.splitNumber;\n splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n thisOption.splitNumber = splitNumber;\n var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber;\n\n while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n precision++;\n }\n\n thisOption.precision = precision;\n splitStep = +splitStep.toFixed(precision);\n\n if (thisOption.minOpen) {\n outPieceList.push({\n interval: [-Infinity, dataExtent[0]],\n close: [0, 0]\n });\n }\n\n for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\n var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n outPieceList.push({\n interval: [curr, max],\n close: [1, 1]\n });\n }\n\n if (thisOption.maxOpen) {\n outPieceList.push({\n interval: [dataExtent[1], Infinity],\n close: [0, 0]\n });\n }\n\n reformIntervals(outPieceList);\n zrUtil.each(outPieceList, function (piece, index) {\n piece.index = index;\n piece.text = this.formatValueText(piece.interval);\n }, this);\n },\n categories: function (outPieceList) {\n var thisOption = this.option;\n zrUtil.each(thisOption.categories, function (cate) {\n outPieceList.push({\n text: this.formatValueText(cate, true),\n value: cate\n });\n }, this);\n normalizeReverse(thisOption, outPieceList);\n },\n pieces: function (outPieceList) {\n var thisOption = this.option;\n zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n if (!zrUtil.isObject(pieceListItem)) {\n pieceListItem = {\n value: pieceListItem\n };\n }\n\n var item = {\n text: '',\n index: index\n };\n\n if (pieceListItem.label != null) {\n item.text = pieceListItem.label;\n }\n\n if (pieceListItem.hasOwnProperty('value')) {\n var value = item.value = pieceListItem.value;\n item.interval = [value, value];\n item.close = [1, 1];\n } else {\n var interval = item.interval = [];\n var close_1 = item.close = [0, 0];\n var closeList = [1, 0, 1];\n var infinityList = [-Infinity, Infinity];\n var useMinMax = [];\n\n for (var lg = 0; lg < 2; lg++) {\n var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n for (var i = 0; i < 3 && interval[lg] == null; i++) {\n interval[lg] = pieceListItem[names[i]];\n close_1[lg] = closeList[i];\n useMinMax[lg] = i === 2;\n }\n\n interval[lg] == null && (interval[lg] = infinityList[lg]);\n }\n\n useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\n useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\n\n if (process.env.NODE_ENV !== 'production') {\n if (interval[0] > interval[1]) {\n console.warn('Piece ' + index + 'is illegal: ' + interval + ' lower bound should not greater then uppper bound.');\n }\n }\n\n if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\n item.value = interval[0];\n }\n }\n\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n outPieceList.push(item);\n }, this);\n normalizeReverse(thisOption, outPieceList);\n reformIntervals(outPieceList);\n zrUtil.each(outPieceList, function (piece) {\n var close = piece.close;\n var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n }, this);\n }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n var inverse = thisOption.inverse;\n\n if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n pieceList.reverse();\n }\n}\n\nexport default PiecewiseModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapView from './VisualMapView';\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport * as layout from '../../util/layout';\nimport * as helper from './helper';\n\nvar PiecewiseVisualMapView = function (_super) {\n __extends(PiecewiseVisualMapView, _super);\n\n function PiecewiseVisualMapView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = PiecewiseVisualMapView.type;\n return _this;\n }\n\n PiecewiseVisualMapView.prototype.doRender = function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n var visualMapModel = this.visualMapModel;\n var textGap = visualMapModel.get('textGap');\n var textStyleModel = visualMapModel.textStyleModel;\n var textFont = textStyleModel.getFont();\n var textFill = textStyleModel.getTextColor();\n\n var itemAlign = this._getItemAlign();\n\n var itemSize = visualMapModel.itemSize;\n\n var viewData = this._getViewData();\n\n var endsText = viewData.endsText;\n var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText);\n endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\n zrUtil.each(viewData.viewPieceList, function (item) {\n var piece = item.piece;\n var itemGroup = new graphic.Group();\n itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece);\n\n this._enableHoverLink(itemGroup, item.indexInModelPieceList);\n\n var representValue = visualMapModel.getRepresentValue(piece);\n\n this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\n\n if (showLabel) {\n var visualState = this.visualMapModel.getValueState(representValue);\n itemGroup.add(new graphic.Text({\n style: {\n x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\n y: itemSize[1] / 2,\n text: piece.text,\n verticalAlign: 'middle',\n align: itemAlign,\n font: textFont,\n fill: textFill,\n opacity: visualState === 'outOfRange' ? 0.5 : 1\n }\n }));\n }\n\n thisGroup.add(itemGroup);\n }, this);\n endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\n layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\n this.renderBackground(thisGroup);\n this.positionGroup(thisGroup);\n };\n\n PiecewiseVisualMapView.prototype._enableHoverLink = function (itemGroup, pieceIndex) {\n var _this = this;\n\n itemGroup.on('mouseover', function () {\n return onHoverLink('highlight');\n }).on('mouseout', function () {\n return onHoverLink('downplay');\n });\n\n var onHoverLink = function (method) {\n var visualMapModel = _this.visualMapModel;\n visualMapModel.option.hoverLink && _this.api.dispatchAction({\n type: method,\n batch: helper.makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\n });\n };\n };\n\n PiecewiseVisualMapView.prototype._getItemAlign = function () {\n var visualMapModel = this.visualMapModel;\n var modelOption = visualMapModel.option;\n\n if (modelOption.orient === 'vertical') {\n return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\n } else {\n var align = modelOption.align;\n\n if (!align || align === 'auto') {\n align = 'left';\n }\n\n return align;\n }\n };\n\n PiecewiseVisualMapView.prototype._renderEndsText = function (group, text, itemSize, showLabel, itemAlign) {\n if (!text) {\n return;\n }\n\n var itemGroup = new graphic.Group();\n var textStyleModel = this.visualMapModel.textStyleModel;\n itemGroup.add(new graphic.Text({\n style: {\n x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2,\n y: itemSize[1] / 2,\n verticalAlign: 'middle',\n align: showLabel ? itemAlign : 'center',\n text: text,\n font: textStyleModel.getFont(),\n fill: textStyleModel.getTextColor()\n }\n }));\n group.add(itemGroup);\n };\n\n PiecewiseVisualMapView.prototype._getViewData = function () {\n var visualMapModel = this.visualMapModel;\n var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) {\n return {\n piece: piece,\n indexInModelPieceList: index\n };\n });\n var endsText = visualMapModel.get('text');\n var orient = visualMapModel.get('orient');\n var inverse = visualMapModel.get('inverse');\n\n if (orient === 'horizontal' ? inverse : !inverse) {\n viewPieceList.reverse();\n } else if (endsText) {\n endsText = endsText.slice().reverse();\n }\n\n return {\n viewPieceList: viewPieceList,\n endsText: endsText\n };\n };\n\n PiecewiseVisualMapView.prototype._createItemSymbol = function (group, representValue, shapeParam) {\n group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color')));\n };\n\n PiecewiseVisualMapView.prototype._onItemClick = function (piece) {\n var visualMapModel = this.visualMapModel;\n var option = visualMapModel.option;\n var selected = zrUtil.clone(option.selected);\n var newKey = visualMapModel.getSelectedMapKey(piece);\n\n if (option.selectedMode === 'single') {\n selected[newKey] = true;\n zrUtil.each(selected, function (o, key) {\n selected[key] = key === newKey;\n });\n } else {\n selected[newKey] = !selected[newKey];\n }\n\n this.api.dispatchAction({\n type: 'selectDataRange',\n from: this.uid,\n visualMapId: this.visualMapModel.id,\n selected: selected\n });\n };\n\n PiecewiseVisualMapView.type = 'visualMap.piecewise';\n return PiecewiseVisualMapView;\n}(VisualMapView);\n\nexport default PiecewiseVisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport PiecewiseModel from './PiecewiseModel';\nimport PiecewiseView from './PiecewiseView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n registers.registerComponentModel(PiecewiseModel);\n registers.registerComponentView(PiecewiseView);\n installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installVisualMapContinuous } from './installVisualMapContinuous';\nimport { install as installVisualMapPiecewise } from './installVisualMapPiecewise';\nexport function install(registers) {\n use(installVisualMapContinuous);\n use(installVisualMapPiecewise);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../data/helper/dataProvider';\nimport { makeInner } from '../util/model';\nimport { getDecalFromPalette } from '../model/mixin/palette';\nvar DEFAULT_OPTION = {\n label: {\n enabled: true\n },\n decal: {\n show: false\n }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n var ariaModel = ecModel.getModel('aria');\n\n if (!ariaModel.get('enabled')) {\n return;\n }\n\n var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n zrUtil.merge(ariaModel.option, defaultOption, false);\n setDecal();\n setLabel();\n\n function setDecal() {\n var decalModel = ariaModel.getModel('decal');\n var useDecal = decalModel.get('show');\n\n if (useDecal) {\n var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n ecModel.eachSeries(function (seriesModel) {\n if (!seriesModel.useColorPaletteOnData) {\n return;\n }\n\n var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n if (!decalScope) {\n decalScope = {};\n paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n }\n\n inner(seriesModel).scope = decalScope;\n });\n ecModel.eachRawSeries(function (seriesModel) {\n if (ecModel.isSeriesFiltered(seriesModel)) {\n return;\n }\n\n if (typeof seriesModel.enableAriaDecal === 'function') {\n seriesModel.enableAriaDecal();\n return;\n }\n\n var data = seriesModel.getData();\n\n if (seriesModel.useColorPaletteOnData) {\n var dataAll_1 = seriesModel.getRawData();\n var idxMap_1 = {};\n var decalScope_1 = inner(seriesModel).scope;\n data.each(function (idx) {\n var rawIdx = data.getRawIndex(idx);\n idxMap_1[rawIdx] = idx;\n });\n var dataCount_1 = dataAll_1.count();\n dataAll_1.each(function (rawIdx) {\n var idx = idxMap_1[rawIdx];\n var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n var specifiedDecal = data.getItemVisual(idx, 'decal');\n data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n });\n } else {\n var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n var specifiedDecal = data.getVisual('decal');\n data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n }\n\n function mergeDecal(specifiedDecal, paletteDecal) {\n var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n resultDecal.dirty = true;\n return resultDecal;\n }\n });\n }\n }\n\n function setLabel() {\n var labelLocale = ecModel.getLocaleModel().get('aria');\n var labelModel = ariaModel.getModel('label');\n labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n if (!labelModel.get('enabled')) {\n return;\n }\n\n var dom = api.getZr().dom;\n\n if (labelModel.get('description')) {\n dom.setAttribute('aria-label', labelModel.get('description'));\n return;\n }\n\n var seriesCnt = ecModel.getSeriesCount();\n var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n var ariaLabel;\n\n if (seriesCnt < 1) {\n return;\n } else {\n var title = getTitle();\n\n if (title) {\n var withTitle = labelModel.get(['general', 'withTitle']);\n ariaLabel = replace(withTitle, {\n title: title\n });\n } else {\n ariaLabel = labelModel.get(['general', 'withoutTitle']);\n }\n\n var seriesLabels_1 = [];\n var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n ariaLabel += replace(prefix, {\n seriesCount: seriesCnt\n });\n ecModel.eachSeries(function (seriesModel, idx) {\n if (idx < displaySeriesCnt) {\n var seriesLabel = void 0;\n var seriesName = seriesModel.get('name');\n var withName = seriesName ? 'withName' : 'withoutName';\n seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n seriesLabel = replace(seriesLabel, {\n seriesId: seriesModel.seriesIndex,\n seriesName: seriesModel.get('name'),\n seriesType: getSeriesTypeName(seriesModel.subType)\n });\n var data = seriesModel.getData();\n\n if (data.count() > maxDataCnt) {\n var partialLabel = labelModel.get(['data', 'partialData']);\n seriesLabel += replace(partialLabel, {\n displayCnt: maxDataCnt\n });\n } else {\n seriesLabel += labelModel.get(['data', 'allData']);\n }\n\n var dataLabels = [];\n\n for (var i = 0; i < data.count(); i++) {\n if (i < maxDataCnt) {\n var name_1 = data.getName(i);\n var value = retrieveRawValue(data, i);\n var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n dataLabels.push(replace(dataLabel, {\n name: name_1,\n value: value\n }));\n }\n }\n\n var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n seriesLabels_1.push(seriesLabel);\n }\n });\n var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n var middleSeparator = separatorModel.get('middle');\n var endSeparator = separatorModel.get('end');\n ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n dom.setAttribute('aria-label', ariaLabel);\n }\n }\n\n function replace(str, keyValues) {\n if (typeof str !== 'string') {\n return str;\n }\n\n var result = str;\n zrUtil.each(keyValues, function (value, key) {\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n });\n return result;\n }\n\n function getTitle() {\n var title = ecModel.get('title');\n\n if (title && title.length) {\n title = title[0];\n }\n\n return title && title.text;\n }\n\n function getSeriesTypeName(type) {\n return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function ariaPreprocessor(option) {\n if (!option || !option.aria) {\n return;\n }\n\n var aria = option.aria;\n\n if (aria.show != null) {\n aria.enabled = aria.show;\n }\n\n aria.label = aria.label || {};\n zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n if (aria[name] != null) {\n aria.label[name] = aria[name];\n }\n });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ariaVisual from '../../visual/aria';\nimport ariaPreprocessor from './preprocessor';\nexport function install(registers) {\n registers.registerPreprocessor(ariaPreprocessor);\n registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { keys, isArray, map, isObject, isString, isRegExp, isArrayLike, hasOwn } from 'zrender/lib/core/util';\nimport { throwError, makePrintable } from './log';\nimport { getRawValueParser, createFilterComparator } from '../data/helper/dataValueHelper';\n;\nvar RELATIONAL_EXPRESSION_OP_ALIAS_MAP = {\n value: 'eq',\n '<': 'lt',\n '<=': 'lte',\n '>': 'gt',\n '>=': 'gte',\n '=': 'eq',\n '!=': 'ne',\n '<>': 'ne'\n};\n\nvar RegExpEvaluator = function () {\n function RegExpEvaluator(rVal) {\n var condValue = this._condVal = isString(rVal) ? new RegExp(rVal) : isRegExp(rVal) ? rVal : null;\n\n if (condValue == null) {\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Illegal regexp', rVal, 'in');\n }\n\n throwError(errMsg);\n }\n }\n\n RegExpEvaluator.prototype.evaluate = function (lVal) {\n var type = typeof lVal;\n return type === 'string' ? this._condVal.test(lVal) : type === 'number' ? this._condVal.test(lVal + '') : false;\n };\n\n return RegExpEvaluator;\n}();\n\nvar ConstConditionInternal = function () {\n function ConstConditionInternal() {}\n\n ConstConditionInternal.prototype.evaluate = function () {\n return this.value;\n };\n\n return ConstConditionInternal;\n}();\n\nvar AndConditionInternal = function () {\n function AndConditionInternal() {}\n\n AndConditionInternal.prototype.evaluate = function () {\n var children = this.children;\n\n for (var i = 0; i < children.length; i++) {\n if (!children[i].evaluate()) {\n return false;\n }\n }\n\n return true;\n };\n\n return AndConditionInternal;\n}();\n\nvar OrConditionInternal = function () {\n function OrConditionInternal() {}\n\n OrConditionInternal.prototype.evaluate = function () {\n var children = this.children;\n\n for (var i = 0; i < children.length; i++) {\n if (children[i].evaluate()) {\n return true;\n }\n }\n\n return false;\n };\n\n return OrConditionInternal;\n}();\n\nvar NotConditionInternal = function () {\n function NotConditionInternal() {}\n\n NotConditionInternal.prototype.evaluate = function () {\n return !this.child.evaluate();\n };\n\n return NotConditionInternal;\n}();\n\nvar RelationalConditionInternal = function () {\n function RelationalConditionInternal() {}\n\n RelationalConditionInternal.prototype.evaluate = function () {\n var needParse = !!this.valueParser;\n var getValue = this.getValue;\n var tarValRaw = getValue(this.valueGetterParam);\n var tarValParsed = needParse ? this.valueParser(tarValRaw) : null;\n\n for (var i = 0; i < this.subCondList.length; i++) {\n if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) {\n return false;\n }\n }\n\n return true;\n };\n\n return RelationalConditionInternal;\n}();\n\nfunction parseOption(exprOption, getters) {\n if (exprOption === true || exprOption === false) {\n var cond = new ConstConditionInternal();\n cond.value = exprOption;\n return cond;\n }\n\n var errMsg = '';\n\n if (!isObjectNotArray(exprOption)) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption);\n }\n\n throwError(errMsg);\n }\n\n if (exprOption.and) {\n return parseAndOrOption('and', exprOption, getters);\n } else if (exprOption.or) {\n return parseAndOrOption('or', exprOption, getters);\n } else if (exprOption.not) {\n return parseNotOption(exprOption, getters);\n }\n\n return parseRelationalOption(exprOption, getters);\n}\n\nfunction parseAndOrOption(op, exprOption, getters) {\n var subOptionArr = exprOption[op];\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('\"and\"/\"or\" condition should only be `' + op + ': [...]` and must not be empty array.', 'Illegal condition:', exprOption);\n }\n\n if (!isArray(subOptionArr)) {\n throwError(errMsg);\n }\n\n if (!subOptionArr.length) {\n throwError(errMsg);\n }\n\n var cond = op === 'and' ? new AndConditionInternal() : new OrConditionInternal();\n cond.children = map(subOptionArr, function (subOption) {\n return parseOption(subOption, getters);\n });\n\n if (!cond.children.length) {\n throwError(errMsg);\n }\n\n return cond;\n}\n\nfunction parseNotOption(exprOption, getters) {\n var subOption = exprOption.not;\n var errMsg = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('\"not\" condition should only be `not: {}`.', 'Illegal condition:', exprOption);\n }\n\n if (!isObjectNotArray(subOption)) {\n throwError(errMsg);\n }\n\n var cond = new NotConditionInternal();\n cond.child = parseOption(subOption, getters);\n\n if (!cond.child) {\n throwError(errMsg);\n }\n\n return cond;\n}\n\nfunction parseRelationalOption(exprOption, getters) {\n var errMsg = '';\n var valueGetterParam = getters.prepareGetValue(exprOption);\n var subCondList = [];\n var exprKeys = keys(exprOption);\n var parserName = exprOption.parser;\n var valueParser = parserName ? getRawValueParser(parserName) : null;\n\n for (var i = 0; i < exprKeys.length; i++) {\n var keyRaw = exprKeys[i];\n\n if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) {\n continue;\n }\n\n var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw;\n var condValueRaw = exprOption[keyRaw];\n var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw;\n var evaluator = createFilterComparator(op, condValueParsed) || op === 'reg' && new RegExpEvaluator(condValueParsed);\n\n if (!evaluator) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Illegal relational operation: \"' + keyRaw + '\" in condition:', exprOption);\n }\n\n throwError(errMsg);\n }\n\n subCondList.push(evaluator);\n }\n\n if (!subCondList.length) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);\n }\n\n throwError(errMsg);\n }\n\n var cond = new RelationalConditionInternal();\n cond.valueGetterParam = valueGetterParam;\n cond.valueParser = valueParser;\n cond.getValue = getters.getValue;\n cond.subCondList = subCondList;\n return cond;\n}\n\nfunction isObjectNotArray(val) {\n return isObject(val) && !isArrayLike(val);\n}\n\nvar ConditionalExpressionParsed = function () {\n function ConditionalExpressionParsed(exprOption, getters) {\n this._cond = parseOption(exprOption, getters);\n }\n\n ConditionalExpressionParsed.prototype.evaluate = function () {\n return this._cond.evaluate();\n };\n\n return ConditionalExpressionParsed;\n}();\n\n;\nexport function parseConditionalExpression(exprOption, getters) {\n return new ConditionalExpressionParsed(exprOption, getters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseConditionalExpression } from '../../util/conditionalExpression';\nimport { hasOwn, createHashMap } from 'zrender/lib/core/util';\nimport { makePrintable, throwError } from '../../util/log';\nexport var filterTransform = {\n type: 'echarts:filter',\n transform: function (params) {\n var upstream = params.upstream;\n var rawItem;\n var condition = parseConditionalExpression(params.config, {\n valueGetterAttrMap: createHashMap({\n dimension: true\n }),\n prepareGetValue: function (exprOption) {\n var errMsg = '';\n var dimLoose = exprOption.dimension;\n\n if (!hasOwn(exprOption, 'dimension')) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Relation condition must has prop \"dimension\" specified.', 'Illegal condition:', exprOption);\n }\n\n throwError(errMsg);\n }\n\n var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n if (!dimInfo) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal condition:', exprOption, '.\\n');\n }\n\n throwError(errMsg);\n }\n\n return {\n dimIdx: dimInfo.index\n };\n },\n getValue: function (param) {\n return upstream.retrieveValueFromItem(rawItem, param.dimIdx);\n }\n });\n var resultData = [];\n\n for (var i = 0, len = upstream.count(); i < len; i++) {\n rawItem = upstream.getRawDataItem(i);\n\n if (condition.evaluate()) {\n resultData.push(rawItem);\n }\n }\n\n return {\n data: resultData\n };\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS } from '../../util/types';\nimport { makePrintable, throwError } from '../../util/log';\nimport { each } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { getRawValueParser, SortOrderComparator } from '../../data/helper/dataValueHelper';\nvar sampleLog = '';\n\nif (process.env.NODE_ENV !== 'production') {\n sampleLog = ['Valid config is like:', '{ dimension: \"age\", order: \"asc\" }', 'or [{ dimension: \"age\", order: \"asc\"], { dimension: \"date\", order: \"desc\" }]'].join(' ');\n}\n\nexport var sortTransform = {\n type: 'echarts:sort',\n transform: function (params) {\n var upstream = params.upstream;\n var config = params.config;\n var errMsg = '';\n var orderExprList = normalizeToArray(config);\n\n if (!orderExprList.length) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Empty `config` in sort transform.';\n }\n\n throwError(errMsg);\n }\n\n var orderDefList = [];\n each(orderExprList, function (orderExpr) {\n var dimLoose = orderExpr.dimension;\n var order = orderExpr.order;\n var parserName = orderExpr.parser;\n var incomparable = orderExpr.incomparable;\n\n if (dimLoose == null) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Sort transform config must has \"dimension\" specified.' + sampleLog;\n }\n\n throwError(errMsg);\n }\n\n if (order !== 'asc' && order !== 'desc') {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'Sort transform config must has \"order\" specified.' + sampleLog;\n }\n\n throwError(errMsg);\n }\n\n if (incomparable && incomparable !== 'min' && incomparable !== 'max') {\n var errMsg_1 = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg_1 = 'incomparable must be \"min\" or \"max\" rather than \"' + incomparable + '\".';\n }\n\n throwError(errMsg_1);\n }\n\n if (order !== 'asc' && order !== 'desc') {\n var errMsg_2 = '';\n\n if (process.env.NODE_ENV !== 'production') {\n errMsg_2 = 'order must be \"asc\" or \"desc\" rather than \"' + order + '\".';\n }\n\n throwError(errMsg_2);\n }\n\n var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n if (!dimInfo) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal config:', orderExpr, '.\\n');\n }\n\n throwError(errMsg);\n }\n\n var parser = parserName ? getRawValueParser(parserName) : null;\n\n if (parserName && !parser) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = makePrintable('Invalid parser name ' + parserName + '.\\n', 'Illegal config:', orderExpr, '.\\n');\n }\n\n throwError(errMsg);\n }\n\n orderDefList.push({\n dimIdx: dimInfo.index,\n parser: parser,\n comparator: new SortOrderComparator(order, incomparable)\n });\n });\n var sourceFormat = upstream.sourceFormat;\n\n if (sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n if (process.env.NODE_ENV !== 'production') {\n errMsg = 'sourceFormat \"' + sourceFormat + '\" is not supported yet';\n }\n\n throwError(errMsg);\n }\n\n var resultData = [];\n\n for (var i = 0, len = upstream.count(); i < len; i++) {\n resultData.push(upstream.getRawDataItem(i));\n }\n\n resultData.sort(function (item0, item1) {\n for (var i = 0; i < orderDefList.length; i++) {\n var orderDef = orderDefList[i];\n var val0 = upstream.retrieveValueFromItem(item0, orderDef.dimIdx);\n var val1 = upstream.retrieveValueFromItem(item1, orderDef.dimIdx);\n\n if (orderDef.parser) {\n val0 = orderDef.parser(val0);\n val1 = orderDef.parser(val1);\n }\n\n var result = orderDef.comparator.evaluate(val0, val1);\n\n if (result !== 0) {\n return result;\n }\n }\n\n return 0;\n });\n return {\n data: resultData\n };\n }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { filterTransform } from './filterTransform';\nimport { sortTransform } from './sortTransform';\nexport function install(registers) {\n registers.registerTransform(filterTransform);\n registers.registerTransform(sortTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager';\n\nvar DatasetModel = function (_super) {\n __extends(DatasetModel, _super);\n\n function DatasetModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'dataset';\n return _this;\n }\n\n DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n _super.prototype.init.call(this, option, parentModel, ecModel);\n\n this._sourceManager = new SourceManager(this);\n disableTransformOptionMerge(this);\n };\n\n DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n disableTransformOptionMerge(this);\n };\n\n DatasetModel.prototype.optionUpdated = function () {\n this._sourceManager.dirty();\n };\n\n DatasetModel.prototype.getSourceManager = function () {\n return this._sourceManager;\n };\n\n DatasetModel.type = 'dataset';\n DatasetModel.defaultOption = {\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n };\n return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView = function (_super) {\n __extends(DatasetView, _super);\n\n function DatasetView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'dataset';\n return _this;\n }\n\n DatasetView.type = 'dataset';\n return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n registers.registerComponentModel(DatasetModel);\n registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from './lib/extension';\nexport * from './lib/export/core';\nimport { SVGRenderer, CanvasRenderer } from './lib/export/renderers';\nimport { LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart } from './lib/export/charts';\nimport { GridComponent, PolarComponent, GeoComponent, SingleAxisComponent, ParallelComponent, CalendarComponent, GraphicComponent, ToolboxComponent, TooltipComponent, AxisPointerComponent, BrushComponent, TitleComponent, TimelineComponent, MarkPointComponent, MarkLineComponent, MarkAreaComponent, LegendComponent, DataZoomComponent, DataZoomInsideComponent, DataZoomSliderComponent, VisualMapComponent, VisualMapContinuousComponent, VisualMapPiecewiseComponent, AriaComponent, DatasetComponent, TransformComponent } from './lib/export/components';\nuse([CanvasRenderer]);\nuse([SVGRenderer]);\nuse([LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart]);\nuse(GridComponent);\nuse(PolarComponent);\nuse(GeoComponent);\nuse(SingleAxisComponent);\nuse(ParallelComponent);\nuse(CalendarComponent);\nuse(GraphicComponent);\nuse(ToolboxComponent);\nuse(TooltipComponent);\nuse(AxisPointerComponent);\nuse(BrushComponent);\nuse(TitleComponent);\nuse(TimelineComponent);\nuse(MarkPointComponent);\nuse(MarkLineComponent);\nuse(MarkAreaComponent);\nuse(LegendComponent);\nuse(DataZoomComponent);\nuse(DataZoomInsideComponent);\nuse(DataZoomSliderComponent);\nuse(VisualMapComponent);\nuse(VisualMapContinuousComponent);\nuse(VisualMapPiecewiseComponent);\nuse(AriaComponent);\nuse(TransformComponent);\nuse(DatasetComponent);"],"names":["clone","_calcOut","eventUtil.clientToLocal","dist","eventTool.stop","util.each","vec2.dist","create","copy","mul","scale","matrix.identity","matrix.create","matrix.mul","matrix.copy","matrix.invert","vector.applyTransform","matrix.rotate","easing","easingFuncs","lerp","color.parse","matrix.translate","matrix.scale","methods","timsort","util.indexOf","requestAnimationFrame","zrUtil.map","zrUtil.noop","zrUtil.each","zrUtil.indexOf","zrUtil.keys","HandlerProxy","zrUtil.guid","parsePercent","zrUtil.reduce","zrUtil.assert","zrUtil.createObject","zrUtil.extend","zrUtil.inherits","imageHelper.findExistImage","imageHelper.isImageReady","PRIMARY_STATES_KEYS","EPSILON","v2Create","isNotAroundZero","v2DistSquare","mathMin","mathMax","vec2.create","cubicExtrema","curve.cubicExtrema","cubicAt","curve.cubicAt","quadraticExtremum","curve.quadraticExtremum","quadraticAt","curve.quadraticAt","min","max","vec2.min","vec2.max","mathCos","mathSin","mathSqrt","PI2","dpr","containStroke","curve.cubicProjectPoint","CMD","curve.cubicRootAt","curve.quadraticRootAt","line.containStroke","cubic.containStroke","quadratic.containStroke","arc.containStroke","pathContain.containStroke","pathContain.contain","round","roundRectHelper.buildPath","color","colorTool.lift","v2ApplyTransform","PI","mathAbs","buildPath","roundSectorHelper.buildPath","distance","v2Distance","v2Min","v2Max","v2Clone","v2Sub","v2Scale","v2Add","polyHelper.buildPath","subPixelOptimizeOutputShape","vec2.normalize","minTv","maxTv","Displayble","pathTool.extendFromString","pathTool.createFromString","mergePath","pathTool.mergePath","subPixelOptimizeLine","subPixelOptimizeUtil.subPixelOptimizeLine","subPixelOptimizeRect","subPixelOptimizeUtil.subPixelOptimizeRect","subPixelOptimize","subPixelOptimizeUtil.subPixelOptimize","applyTransform","invert","zrUtil.merge","numberUtil.parseDate","defaults","zrUtil.defaults","zrUtil.isArray","Text","zrUtil.isString","normalizeCssArray","zrUtil.normalizeCssArray","zrUtil.trim","timeFormat","zrUtil.isStringSafe","zrUtil.isNumber","zrUtil.isObject","each","zrUtil.curry","formatUtil.normalizeCssArray","componentUtil.getUID","layout.fetchLayoutMode","layout.getLayoutParams","layout.mergeLayoutParam","componentUtil.enableSubTypeDefaulter","componentUtil.enableTopologicalTravel","modelUtil.normalizeToArray","modelUtil.mappingToExists","modelUtil.setComponentTypeToKeyInfo","modelUtil.isComponentIdInternal","modelUtil.convertOptionIdName","zrUtil.bind","isObject","modelUtil.TEXT_STYLE_OPTIONS","zrUtil.isTypedArray","set","compatStyle","inner","modelUtil.makeInner","modelUtil.defaultEmphasis","zrUtil.mixin","modelUtil.isNameSpecified","clazzUtil.enableClassExtend","clazzUtil.enableClassManagement","modelUtil.queryDataIndex","graphic.Group","graphic.Rect","graphic.Text","graphic.Arc","vector.dist","vector.lerp","graphic.Path","graphic.Circle","graphic.makeImage","graphic.makePath","assert","isFunction","zrUtil.isFunction","indexOf","version","zrender.init","zrUtil.clone","backwardCompat","zrUtil.setAsPrimitive","instances","zrUtil.createCanvas","graphic.Image","modelUtil.parseFinder","modelUtil.setAttribute","zrUtil.createHashMap","colorTool.parse","colorTool.stringify","graphic.isElementRemoved","init","zrUtil.isDom","dispose","modelUtil.getAttribute","zrUtil.$override","decal","loadingDefault","darkTheme","map","zrUtil.isArrayLike","zrUtil.slice","CoordinateSystem","numberUtil.round","numberUtil.nice","numberUtil.getPrecisionSafe","contain","normalize","scaleHelper.contain","scaleHelper.normalize","scaleHelper.scale","roundNumber","helper.contain","helper.normalize","helper.scale","helper.getIntervalPrecision","formatUtil.addCommas","helper.intervalScaleNiceTicks","getPrecisionSafe","mathFloor","mathPow","numberUtil.quantity","dataStack","axisHelper.createScaleByModel","axisHelper.niceScaleExtent","createTextStyle","innerCreateTextStyle","isAroundEqual","bbox.fromPoints","polygonContain.contain","vec2.applyTransform","zrUtil.filter","textContain.getBoundingRect","isAroundZero","adjustTextY","zrUtil.logError","colorTool.toHex","util.extend","util.logError","util.createCanvas","util.isObject","util.isGradientObject","util.isPatternObject","parseInt10","util.merge","install","graphic.updateProps","graphic.initProps","graphic.removeElement","SymbolClz","graphic.Sector","graphic.LinearGradient","isPointNull","modelUtil.interpolateRawValues","LineSeries","layoutPoints","Sausage","BarSeries","layout.getLayoutRect","RADIAN","graphic.Polyline","graphic.removeElementWithFadeOut","labelLayout","layout","zrUtil.retrieve","zrUtil.retrieve3","graphic.Line","matrixUtil.identity","matrixUtil.rotate","matrixUtil.mul","axisPointerModelHelper.fixValue","axisPointerModelHelper.getAxisPointerModel","cartesianAxisHelper.layout","graphic.groupTransition","installGridSimple","zrUtil.find","createSymbol","symbolUtil.createSymbol","graphic.Polygon","axisBuilderAttrs","RadarView","graphic.Ring","graphic.mergePath","numberUtil.parsePercent","installRadarComponent","echarts.registerAction","eventTool.isMiddleOrRightButtonOnMouseUpDown","interactionMutex.isTaken","points","parseGeoJson","fixTextCoord","fixGeoCoord","getBoundingRect","graphic.CompoundPath","roamHelper.updateViewOnPan","roamHelper.updateViewOnZoom","getViewRect","vector.copy","symbolNeedsDraw","graphic.BezierCurve","separation","sep","noop","helper.retrieveTargetInfo","helper.aboveViewRoot","layout.positionElement","layout.getAvailableSize","Group","Rect","animationUtil.createWrap","zrColor.fastLerp","zrColor.stringify","zrColor.modifyHSL","zrColor.modifyAlpha","zrColor.parse","helper.getPathToRoot","sort","vec2.clone","scaleAndAdd","vec2.scaleAndAdd","vec2.sub","vec2.len","vec2.set","vec2.copy","Line","vector.sub","vector.normalize","LineGroup","makeSeriesScope","curveTool.quadraticAt","vec2.distSquare","quadraticSubdivide","curveTool.quadraticSubdivide","edgeVisual","simpleLayout","circularLayout","forceLayout","createView","graphic.Point","opacityAccessPath","ParallelView","mathCeil","layoutUtil.getLayoutRect","restrict","graphic.applyTransform","numberUtil.asc","interactionMutex.take","interactionMutex.release","trigger","getTransform","graphic.getTransform","graphic.transformDirection","graphicUtil.clipPointsByRect","graphic.BoundingRect","brushHelper.makeRectPanelClipPath","brushHelper.makeRectIsTargetByCursor","brushHelper.makeLinearBrushOtherExtent","actionInfo","installParallelComponent","createGridClipShape","center","createNormalBox","createLarge","transInit","setLargeStyle","LargeArr","preprocessor","normalizeSymbolSize","matrix.clone","curveUtil.quadraticAt","quadraticDerivativeAt","curveUtil.quadraticDerivativeAt","Polyline","lineContain.containStroke","quadraticContain.containStroke","BAR_BORDER_WIDTH_QUERY","updateCommon","completeTreeValue","initChildren","dataToCoordSize","tmpArr","normalizeRadian","prepareCartesian2d","prepareGeo","prepareSingleAxis","preparePolar","prepareCalendar","graphicUtil.makePath","graphicUtil.Image","graphicUtil.Text","graphicUtil.Group","graphicUtil.getShapeClass","isPath","graphicUtil.initProps","graphicUtil.updateProps","updateZ","labelStyleHelper.createTextStyle","labelStyleHelper.createTextConfig","labelStyleHelper.getFont","graphicUtil.Path","bind","updateProps","axisPointerModelHelper.getAxisInfo","graphic.createIcon","throttleUtil.createOrUpdate","axisHelper.getAxisRawValue","viewHelper.buildElStyle","viewHelper.buildCartesianSingleLabelElOption","viewHelper.getTransformedPosition","viewHelper.makeLineShape","viewHelper.makeRectShape","globalListener.register","globalListener.unregister","modelHelper.makeKey","installSimple","installAxisPointer","pointerShapeBuilder","viewHelper.buildLabelElOption","viewHelper.makeSectorShape","getCoordSys","elementList","selfBuilderAttrs","axisElementBuilders","getSeriesStackId","getAxisKey","zrUtil.mergeAll","singleAxisHelper.layout","formatUtil.formatTplSimple","createEl","layoutUtil.positionElement","zrUtil.hasOwn","layoutUtil.LOCATION_PARAMS","layoutUtil.mergeLayoutParam","layoutUtil.copyLayoutParams","asc","numberUtil.linearMap","numberUtil.getPixelPrecision","SelectZoomModel","SelectZoomView","featureManager.getFeature","layoutBox","listComponentHelper.layout","listComponentHelper.makeBackground","trim","clear","history.clear","parseFinder","modelUtilParseFinder","handlers","history.push","history.pop","history.count","DataZoom","Restore","installDataZoomSelect","makeStyleCoord","makeDispatchAction","axisPointerViewHelper.getValueLabel","formatUtil.convertToColorString","formatUtil.formatTpl","visualSolution.createVisualMappings","visualSolution.applyVisual","visualSolution.replaceVisualOption","zrUtil.retrieve2","createScaleByModel","numberUtil.getPrecision","getAxisInfo","dataFilter","createList","markerHelper.dataTransform","markerHelper.dataFilter","markerHelper.dimValueGetter","markerHelper.getAxisInfo","markerHelper.numCalculate","dimValueGetter","isInifinity","colorUtil.modifyAlpha","curry","layoutUtil.box","mergeAndNormalizeLayoutParams","WH","XY","installLegendPlain","installLegendScroll","dispatchAction","roams.setViewInfoToCoordSysRecord","roams.disposeCoordSysRecordIfNeeded","throttle.createOrUpdate","throttle.clear","installDataZoomInside","installDataZoomSlider","defaultOption","mapVisual","isArray","linearMap","helper.getItemAlign","getCursor","modelUtil.compressBatches","helper.makeHighDownBatch","visualSolution.incrementalApplyVisual","has","installed","installCommon","layout.box","PiecewiseView","installVisualMapContinuous","installVisualMapPiecewise","CanvasRenderer","SVGRenderer","LineChart","BarChart","PieChart","ScatterChart","RadarChart","MapChart","TreeChart","TreemapChart","GraphChart","GaugeChart","FunnelChart","ParallelChart","SankeyChart","BoxplotChart","CandlestickChart","EffectScatterChart","LinesChart","HeatmapChart","PictorialBarChart","ThemeRiverChart","SunburstChart","CustomChart","GridComponent","PolarComponent","GeoComponent","SingleAxisComponent","ParallelComponent","CalendarComponent","GraphicComponent","ToolboxComponent","TooltipComponent","AxisPointerComponent","BrushComponent","TitleComponent","TimelineComponent","MarkPointComponent","MarkLineComponent","MarkAreaComponent","LegendComponent","DataZoomComponent","DataZoomInsideComponent","DataZoomSliderComponent","VisualMapComponent","VisualMapContinuousComponent","VisualMapPiecewiseComponent","AriaComponent","TransformComponent","DatasetComponent"],"mappings":"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I,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAA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"}