{"version":3,"sources":["webpack:///./node_modules/echarts/lib/chart/parallel/ParallelSeries.js","webpack:///./node_modules/echarts/lib/component/visualMap/PiecewiseView.js","webpack:///./node_modules/echarts/lib/component/tooltip.js","webpack:///./node_modules/echarts/lib/chart/funnel/FunnelSeries.js","webpack:///./node_modules/echarts/lib/coord/geo/prepareCustom.js","webpack:///./node_modules/echarts/lib/coord/geo/Geo.js","webpack:///./node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js","webpack:///./node_modules/echarts/lib/component/gridSimple.js","webpack:///./node_modules/echarts/lib/component/helper/roamHelper.js","webpack:///./node_modules/echarts/lib/component/dataset.js","webpack:///./node_modules/zrender/lib/core/timsort.js","webpack:///./node_modules/zrender/lib/contain/polygon.js","webpack:///./node_modules/zrender/lib/animation/Animator.js","webpack:///./node_modules/echarts/lib/data/Tree.js","webpack:///./node_modules/echarts/lib/component/visualMap/PiecewiseModel.js","webpack:///./node_modules/echarts/lib/component/tooltip/TooltipContent.js","webpack:///./node_modules/echarts/lib/chart/gauge.js","webpack:///./node_modules/echarts/lib/chart/parallel.js","webpack:///./node_modules/echarts/lib/chart/candlestick.js","webpack:///./node_modules/echarts/lib/component/timeline/TimelineAxis.js","webpack:///./node_modules/echarts/lib/chart/candlestick/candlestickLayout.js","webpack:///./node_modules/echarts/lib/component/dataZoom.js","webpack:///./node_modules/zrender/lib/core/GestureMgr.js","webpack:///./node_modules/echarts/lib/component/legendScroll.js","webpack:///./node_modules/zrender/lib/core/arrayDiff2.js","webpack:///./node_modules/echarts/lib/chart/helper/multipleGraphEdgeHelper.js","webpack:///./node_modules/echarts/lib/component/helper/MapDraw.js","webpack:///./node_modules/zrender/lib/mixin/Transformable.js","webpack:///./node_modules/zrender/lib/graphic/Image.js","webpack:///./node_modules/echarts/lib/chart/sankey/sankeyVisual.js","webpack:///./node_modules/echarts/lib/component/legend/ScrollableLegendView.js","webpack:///./node_modules/echarts/lib/coord/parallel/ParallelAxis.js","webpack:///./node_modules/echarts/lib/data/helper/sourceHelper.js","webpack:///./node_modules/echarts/lib/chart/helper/EffectLine.js","webpack:///./node_modules/echarts/lib/component/brush/visualEncoding.js","webpack:///./node_modules/echarts/lib/chart/effectScatter.js","webpack:///./node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js","webpack:///./node_modules/echarts/lib/chart/helper/Symbol.js","webpack:///./node_modules/echarts/lib/chart/radar/RadarView.js","webpack:///./node_modules/echarts/lib/component/axis/RadiusAxisView.js","webpack:///./node_modules/echarts/lib/helper.js","webpack:///./node_modules/echarts/lib/chart/scatter.js","webpack:///./node_modules/zrender/lib/core/matrix.js","webpack:///./node_modules/echarts/lib/coord/radar/RadarModel.js","webpack:///./node_modules/echarts/lib/coord/geo/fix/textCoord.js","webpack:///./node_modules/echarts/lib/chart/bar/BarSeries.js","webpack:///./node_modules/echarts/lib/component/axisPointer/globalListener.js","webpack:///./node_modules/echarts/lib/scale/Ordinal.js","webpack:///./node_modules/echarts/lib/component/marker/MarkLineModel.js","webpack:///./node_modules/echarts/lib/chart/candlestick/CandlestickView.js","webpack:///./node_modules/zrender/lib/graphic/Displayable.js","webpack:///./src/javascript/tools.js","webpack:///./node_modules/echarts/lib/chart/pie/PieView.js","webpack:///./node_modules/echarts/lib/chart/graph/simpleLayoutHelper.js","webpack:///./node_modules/echarts/lib/coord/polar/polarCreator.js","webpack:///./node_modules/echarts/lib/layout/barPolar.js","webpack:///./node_modules/echarts/lib/chart/gauge/PointerPath.js","webpack:///./node_modules/echarts/lib/coord/geo/GeoModel.js","webpack:///./node_modules/zrender/lib/mixin/Eventful.js","webpack:///./node_modules/echarts/lib/coord/axisModelCommonMixin.js","webpack:///./node_modules/echarts/lib/CoordinateSystem.js","webpack:///./node_modules/zrender/lib/core/PathProxy.js","webpack:///./node_modules/echarts/lib/component/toolbox/featureManager.js","webpack:///./node_modules/echarts/lib/chart/tree/TreeSeries.js","webpack:///./node_modules/echarts/lib/scale/Time.js","webpack:///./node_modules/echarts/lib/chart/line/LineSeries.js","webpack:///./node_modules/echarts/lib/coord/parallel/ParallelModel.js","webpack:///./node_modules/zrender/lib/core/env.js","webpack:///./node_modules/echarts/lib/chart/tree/layoutHelper.js","webpack:///./node_modules/echarts/lib/util/graphic.js","webpack:///./node_modules/echarts/lib/component/dataZoom/SliderZoomView.js","webpack:///./node_modules/echarts/lib/chart/helper/createGraphFromNodeEdge.js","webpack:///./node_modules/echarts/lib/coord/radar/Radar.js","webpack:///./node_modules/echarts/lib/chart/graph.js","webpack:///./node_modules/echarts/lib/component/marker/MarkerModel.js","webpack:///./node_modules/echarts/lib/chart/funnel/funnelLayout.js","webpack:///./node_modules/echarts/lib/chart/themeRiver/ThemeRiverView.js","webpack:///./node_modules/echarts/lib/preprocessor/helper/compatStyle.js","webpack:///./node_modules/echarts/lib/model/mixin/makeStyleMapper.js","webpack:///./node_modules/echarts/lib/chart/pie/pieLayout.js","webpack:///./node_modules/echarts/lib/chart/graph/categoryVisual.js","webpack:///./node_modules/echarts/lib/lang.js","webpack:///./node_modules/echarts/lib/component/visualMapPiecewise.js","webpack:///./node_modules/echarts/lib/data/helper/dataProvider.js","webpack:///./node_modules/zrender/lib/graphic/Style.js","webpack:///./node_modules/echarts/lib/visual/visualSolution.js","webpack:///./node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js","webpack:///./node_modules/zrender/lib/config.js","webpack:///./node_modules/echarts/lib/component/singleAxis.js","webpack:///./node_modules/echarts/lib/component/brush.js","webpack:///./node_modules/echarts/lib/data/helper/dimensionHelper.js","webpack:///./node_modules/echarts/lib/component/polar.js","webpack:///./node_modules/echarts/lib/chart/boxplot/boxplotVisual.js","webpack:///./node_modules/echarts/lib/chart/bar/BaseBarSeries.js","webpack:///./node_modules/zrender/lib/tool/parseSVG.js","webpack:///./node_modules/echarts/lib/component/visualMap/ContinuousModel.js","webpack:///./node_modules/echarts/lib/coord/single/prepareCustom.js","webpack:///./node_modules/echarts/lib/component/marker/MarkLineView.js","webpack:///./node_modules/zrender/lib/animation/Animation.js","webpack:///./node_modules/echarts/lib/chart/sankey.js","webpack:///./node_modules/echarts/index.js","webpack:///./node_modules/echarts/lib/data/helper/linkList.js","webpack:///./node_modules/echarts/lib/coord/geo/fix/nanhai.js","webpack:///./node_modules/echarts/lib/component/dataZoom/InsideZoomView.js","webpack:///./node_modules/echarts/lib/chart/helper/createListFromArray.js","webpack:///./node_modules/echarts/lib/chart/bar/PictorialBarView.js","webpack:///./node_modules/echarts/lib/chart/sunburst/SunburstView.js","webpack:///./node_modules/zrender/lib/tool/path.js","webpack:///./node_modules/echarts/lib/component/timeline/SliderTimelineView.js","webpack:///./node_modules/echarts/lib/component/dataZoom/SliderZoomModel.js","webpack:///./node_modules/echarts/lib/util/number.js","webpack:///./node_modules/echarts/lib/model/mixin/dataFormat.js","webpack:///./node_modules/echarts/lib/model/mixin/lineStyle.js","webpack:///./node_modules/zrender/lib/graphic/IncrementalDisplayable.js","webpack:///./node_modules/echarts/lib/component/timeline/timelineAction.js","webpack:///./node_modules/echarts/lib/chart/heatmap/HeatmapSeries.js","webpack:///./node_modules/echarts/lib/component/dataZoom/DataZoomModel.js","webpack:///./node_modules/echarts/lib/component/visualMap/ContinuousView.js","webpack:///./node_modules/echarts/lib/echarts.js","webpack:///./node_modules/zrender/lib/svg/graphic.js","webpack:///./node_modules/zrender/lib/core/vector.js","webpack:///./node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js","webpack:///./node_modules/zrender/lib/tool/color.js","webpack:///./node_modules/zrender/lib/graphic/Gradient.js","webpack:///./node_modules/echarts/lib/component/tooltip/TooltipView.js","webpack:///./node_modules/echarts/lib/model/Model.js","webpack:///./node_modules/echarts/lib/coord/single/singleCreator.js","webpack:///./node_modules/echarts/lib/component/marker/MarkAreaModel.js","webpack:///./node_modules/echarts/lib/chart/treemap/treemapAction.js","webpack:///./node_modules/zrender/lib/animation/Clip.js","webpack:///./node_modules/echarts/lib/chart/sunburst/sunburstAction.js","webpack:///./node_modules/echarts/lib/chart/helper/Polyline.js","webpack:///./node_modules/zrender/lib/graphic/shape/Ring.js","webpack:///./node_modules/echarts/lib/component/legend/legendAction.js","webpack:///./node_modules/echarts/lib/coord/calendar/prepareCustom.js","webpack:///./node_modules/echarts/lib/chart/effectScatter/EffectScatterView.js","webpack:///./node_modules/echarts/lib/chart/heatmap/HeatmapView.js","webpack:///./node_modules/echarts/lib/chart/graph/adjustEdge.js","webpack:///./node_modules/zrender/lib/graphic/LinearGradient.js","webpack:///./node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js","webpack:///./node_modules/echarts/lib/coord/cartesian/AxisModel.js","webpack:///./node_modules/zrender/lib/core/log.js","webpack:///./node_modules/echarts/lib/action/geoRoam.js","webpack:///./node_modules/echarts/lib/component/helper/RoamController.js","webpack:///./node_modules/zrender/lib/core/curve.js","webpack:///./node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js","webpack:///./node_modules/zrender/lib/graphic/shape/Sector.js","webpack:///./node_modules/zrender/lib/svg/helper/Definable.js","webpack:///./node_modules/echarts/lib/component/dataZoom/SelectZoomView.js","webpack:///./node_modules/echarts/lib/coord/single/Single.js","webpack:///./node_modules/echarts/lib/coord/geo/geoJSONLoader.js","webpack:///./node_modules/echarts/lib/chart/candlestick/candlestickVisual.js","webpack:///./node_modules/echarts/lib/chart/funnel/FunnelView.js","webpack:///./node_modules/echarts/lib/chart/gauge/GaugeSeries.js","webpack:///./node_modules/echarts/lib/config.js","webpack:///./node_modules/echarts/lib/chart/map/MapSeries.js","webpack:///./node_modules/echarts/lib/chart/sunburst/SunburstPiece.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js","webpack:///./node_modules/echarts/lib/model/Series.js","webpack:///./node_modules/zrender/lib/graphic/helper/poly.js","webpack:///./node_modules/echarts/lib/component/dataZoom/helper.js","webpack:///./node_modules/echarts/lib/chart/themeRiver/themeRiverLayout.js","webpack:///./node_modules/echarts/lib/chart/graph/graphHelper.js","webpack:///./node_modules/echarts/lib/component/visualMap.js","webpack:///./node_modules/echarts/lib/chart/map/mapVisual.js","webpack:///./node_modules/echarts/lib/model/mixin/itemStyle.js","webpack:///./node_modules/echarts/lib/component/radar.js","webpack:///./node_modules/echarts/lib/component/dataZoom/roams.js","webpack:///./node_modules/echarts/lib/chart/helper/treeHelper.js","webpack:///./node_modules/echarts/lib/data/DataDimensionInfo.js","webpack:///./node_modules/zrender/lib/graphic/helper/roundRect.js","webpack:///./node_modules/echarts/lib/chart/graph/forceLayout.js","webpack:///./node_modules/echarts/lib/component/axis/axisSplitHelper.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Grid.js","webpack:///./node_modules/echarts/lib/chart/sankey/SankeyView.js","webpack:///./node_modules/echarts/lib/coord/geo/geoSourceManager.js","webpack:///./node_modules/echarts/lib/chart/heatmap.js","webpack:///./node_modules/zrender/lib/Layer.js","webpack:///./node_modules/zrender/lib/graphic/helper/image.js","webpack:///./node_modules/echarts/lib/component/legend/LegendView.js","webpack:///./node_modules/echarts/lib/visual/VisualMapping.js","webpack:///./node_modules/zrender/lib/core/event.js","webpack:///./node_modules/echarts/lib/chart/parallel/ParallelView.js","webpack:///./node_modules/echarts/lib/visual/visualDefault.js","webpack:///./node_modules/echarts/lib/data/List.js","webpack:///./node_modules/zrender/lib/graphic/helper/smoothSpline.js","webpack:///./node_modules/echarts/lib/util/clazz.js","webpack:///./node_modules/echarts/lib/component/title.js","webpack:///./node_modules/echarts/lib/coord/parallel/parallelPreprocessor.js","webpack:///./node_modules/echarts/lib/chart/lines/linesLayout.js","webpack:///./node_modules/zrender/lib/core/dom.js","webpack:///./node_modules/echarts/lib/component/axis/AxisView.js","webpack:///./node_modules/echarts/lib/component/timeline/preprocessor.js","webpack:///./node_modules/echarts/lib/coord/single/SingleAxis.js","webpack:///./node_modules/echarts/lib/chart/graph/categoryFilter.js","webpack:///./node_modules/echarts/lib/chart/map.js","webpack:///./node_modules/echarts/lib/chart/effectScatter/EffectScatterSeries.js","webpack:///./node_modules/echarts/lib/chart/bar/BarView.js","webpack:///./node_modules/zrender/lib/contain/quadratic.js","webpack:///./node_modules/echarts/lib/component/dataZoom/typeDefaulter.js","webpack:///./node_modules/echarts/lib/coord/axisHelper.js","webpack:///./node_modules/zrender/lib/zrender.js","webpack:///./node_modules/echarts/lib/stream/Scheduler.js","webpack:///./node_modules/echarts/lib/chart/helper/EffectPolyline.js","webpack:///./node_modules/echarts/lib/component/axisPointer/PolarAxisPointer.js","webpack:///./node_modules/echarts/lib/coord/geo/fix/geoCoord.js","webpack:///./node_modules/echarts/lib/component/radar/RadarView.js","webpack:///./node_modules/echarts/lib/chart/themeRiver.js","webpack:///./node_modules/echarts/lib/model/Component.js","webpack:///./node_modules/echarts/lib/coord/View.js","webpack:///./node_modules/echarts/lib/chart/tree/TreeView.js","webpack:///./node_modules/zrender/lib/core/util.js","webpack:///./node_modules/echarts/lib/chart/tree/traversalHelper.js","webpack:///./node_modules/echarts/lib/component/dataZoom/history.js","webpack:///./node_modules/echarts/lib/component/helper/selectableMixin.js","webpack:///./node_modules/echarts/lib/coord/axisDefault.js","webpack:///./node_modules/echarts/lib/chart/themeRiver/themeRiverVisual.js","webpack:///./node_modules/echarts/lib/chart/lines/LinesSeries.js","webpack:///./node_modules/echarts/lib/component/visualMap/VisualMapView.js","webpack:///./node_modules/echarts/lib/data/Graph.js","webpack:///./node_modules/echarts/lib/chart/helper/LineDraw.js","webpack:///./node_modules/echarts/lib/component/visualMapContinuous.js","webpack:///./node_modules/zrender/lib/animation/easing.js","webpack:///./node_modules/echarts/lib/component/geo/GeoView.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/DataView.js","webpack:///./node_modules/zrender/lib/graphic/Text.js","webpack:///./node_modules/echarts/lib/action/createDataSelectAction.js","webpack:///./node_modules/echarts/lib/coord/radar/IndicatorAxis.js","webpack:///./node_modules/echarts/lib/chart/radar/backwardCompat.js","webpack:///./node_modules/echarts/lib/coord/polar/PolarModel.js","webpack:///./node_modules/echarts/lib/component/helper/listComponent.js","webpack:///./node_modules/echarts/lib/component/radiusAxis.js","webpack:///./node_modules/echarts/lib/chart/graph/createView.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/DataZoom.js","webpack:///./node_modules/zrender/lib/graphic/helper/fixShadow.js","webpack:///./node_modules/echarts/lib/component/dataZoom/DataZoomView.js","webpack:///./node_modules/echarts/lib/component/markArea.js","webpack:///./node_modules/echarts/lib/chart/helper/Line.js","webpack:///./node_modules/echarts/lib/model/Global.js","webpack:///./node_modules/echarts/lib/component/graphic.js","webpack:///./node_modules/echarts/lib/component/dataZoomInside.js","webpack:///./node_modules/echarts/lib/chart/helper/LinePath.js","webpack:///./node_modules/echarts/lib/visual/symbol.js","webpack:///./node_modules/echarts/lib/data/DataDiffer.js","webpack:///./node_modules/echarts/lib/chart/sankey/sankeyLayout.js","webpack:///./node_modules/zrender/lib/graphic/constant.js","webpack:///./node_modules/echarts/lib/component/tooltip/TooltipRichContent.js","webpack:///./node_modules/echarts/lib/component/marker/MarkPointView.js","webpack:///./node_modules/echarts/lib/coord/calendar/CalendarModel.js","webpack:///./node_modules/echarts/lib/ExtensionAPI.js","webpack:///./node_modules/echarts/lib/component/axis/parallelAxisAction.js","webpack:///./node_modules/echarts/lib/coord/parallel/parallelCreator.js","webpack:///./node_modules/echarts/lib/coord/Axis.js","webpack:///./node_modules/echarts/lib/component/legend/LegendModel.js","webpack:///./node_modules/zrender/lib/core/fourPointsTransform.js","webpack:///./node_modules/zrender/lib/contain/util.js","webpack:///./node_modules/echarts/lib/data/helper/completeDimensions.js","webpack:///./node_modules/echarts/lib/chart/radar/radarLayout.js","webpack:///./node_modules/zrender/lib/svg/core.js","webpack:///./node_modules/zrender/lib/contain/windingLine.js","webpack:///./node_modules/echarts/lib/chart/graph/GraphSeries.js","webpack:///./node_modules/zrender/lib/graphic/shape/Polygon.js","webpack:///./node_modules/echarts/lib/layout/points.js","webpack:///./node_modules/echarts/lib/util/throttle.js","webpack:///./node_modules/echarts/lib/component/marker/MarkerView.js","webpack:///./node_modules/echarts/lib/util/component.js","webpack:///./node_modules/echarts/lib/model/globalDefault.js","webpack:///./node_modules/zrender/lib/graphic/helper/fixClipWithShadow.js","webpack:///./node_modules/echarts/lib/scale/Interval.js","webpack:///./node_modules/echarts/lib/model/referHelper.js","webpack:///./node_modules/echarts/lib/scale/Log.js","webpack:///./node_modules/zrender/lib/graphic/shape/Arc.js","webpack:///./node_modules/echarts/lib/chart/radar.js","webpack:///./node_modules/echarts/lib/data/OrdinalMeta.js","webpack:///./node_modules/echarts/lib/component/marker/MarkAreaView.js","webpack:///./node_modules/echarts/lib/component/toolbox/ToolboxModel.js","webpack:///./node_modules/echarts/lib/coord/cartesian/GridModel.js","webpack:///./node_modules/zrender/lib/svg/svg.js","webpack:///./node_modules/echarts/lib/component/legend/legendFilter.js","webpack:///./node_modules/echarts/lib/chart/treemap/treemapVisual.js","webpack:///./node_modules/echarts/lib/component/marker/markerHelper.js","webpack:///./node_modules/echarts/lib/coord/polar/RadiusAxis.js","webpack:///./node_modules/echarts/lib/chart/treemap/TreemapSeries.js","webpack:///./node_modules/echarts/lib/component/timeline/TimelineView.js","webpack:///./node_modules/echarts/lib/component/calendar.js","webpack:///./node_modules/echarts/lib/data/helper/sourceType.js","webpack:///./node_modules/echarts/lib/chart/map/backwardCompat.js","webpack:///./node_modules/echarts/lib/scale/helper.js","webpack:///./node_modules/echarts/lib/chart/bar.js","webpack:///./node_modules/echarts/lib/chart/graph/circularLayoutHelper.js","webpack:///./node_modules/echarts/lib/component/markLine.js","webpack:///./node_modules/zrender/lib/contain/line.js","webpack:///./node_modules/echarts/lib/chart/graph/GraphView.js","webpack:///./node_modules/zrender/lib/core/BoundingRect.js","webpack:///./node_modules/zrender/lib/animation/requestAnimationFrame.js","webpack:///./node_modules/echarts/lib/visual/dataColor.js","webpack:///./node_modules/echarts/lib/loading/default.js","webpack:///./node_modules/echarts/lib/model/mixin/areaStyle.js","webpack:///./node_modules/zrender/lib/graphic/helper/smoothBezier.js","webpack:///./node_modules/echarts/lib/chart/treemap/treemapLayout.js","webpack:///./node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","webpack:///./node_modules/echarts/lib/layout/barGrid.js","webpack:///./node_modules/zrender/lib/graphic/mixin/RectText.js","webpack:///./node_modules/echarts/lib/coord/axisModelCreator.js","webpack:///./node_modules/echarts/lib/component/dataZoom/dataZoomAction.js","webpack:///./node_modules/zrender/lib/contain/arc.js","webpack:///./node_modules/echarts/lib/chart/line/helper.js","webpack:///./node_modules/zrender/lib/svg/helper/ClippathManager.js","webpack:///./node_modules/echarts/lib/chart/radar/RadarSeries.js","webpack:///./node_modules/echarts/lib/component/timeline/typeDefaulter.js","webpack:///./node_modules/echarts/lib/util/symbol.js","webpack:///./node_modules/echarts/lib/component/dataZoom/InsideZoomModel.js","webpack:///./node_modules/echarts/lib/chart/helper/LargeLineDraw.js","webpack:///./node_modules/echarts/lib/chart/funnel.js","webpack:///./node_modules/echarts/lib/component/helper/interactionMutex.js","webpack:///./node_modules/echarts/lib/chart/map/MapView.js","webpack:///./node_modules/zrender/lib/graphic/helper/text.js","webpack:///./node_modules/echarts/lib/chart/gauge/GaugeView.js","webpack:///./node_modules/echarts/lib/chart/lines.js","webpack:///./node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js","webpack:///./node_modules/zrender/lib/vml/graphic.js","webpack:///./node_modules/echarts/lib/component/brush/selector.js","webpack:///./node_modules/echarts/lib/component/marker/MarkPointModel.js","webpack:///./node_modules/echarts/lib/component/tooltip/TooltipModel.js","webpack:///./node_modules/echarts/lib/coord/polar/AngleAxis.js","webpack:///./node_modules/echarts/lib/chart/sunburst/SunburstSeries.js","webpack:///./node_modules/echarts/lib/coord/cartesian/prepareCustom.js","webpack:///./node_modules/echarts/lib/chart/pictorialBar.js","webpack:///./node_modules/echarts/lib/component/visualMap/visualEncoding.js","webpack:///./node_modules/echarts/lib/chart/parallel/parallelVisual.js","webpack:///./node_modules/echarts/lib/chart/scatter/ScatterView.js","webpack:///./node_modules/zrender/lib/graphic/shape/BezierCurve.js","webpack:///./node_modules/echarts/lib/chart/graph/circularLayout.js","webpack:///./node_modules/echarts/lib/chart/themeRiver/ThemeRiverSeries.js","webpack:///./node_modules/echarts/lib/chart/lines/LinesView.js","webpack:///./node_modules/zrender/lib/graphic/shape/Ellipse.js","webpack:///./node_modules/echarts/lib/component/brush/preprocessor.js","webpack:///./node_modules/echarts/lib/component/axis.js","webpack:///./node_modules/zrender/lib/Storage.js","webpack:///./node_modules/echarts/lib/component/axis/ParallelAxisView.js","webpack:///./node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js","webpack:///./node_modules/echarts/lib/component/toolbox.js","webpack:///./node_modules/echarts/lib/view/Component.js","webpack:///./node_modules/zrender/lib/svg/helper/GradientManager.js","webpack:///./node_modules/echarts/lib/data/helper/createDimensions.js","webpack:///./node_modules/echarts/lib/component/visualMap/preprocessor.js","webpack:///./node_modules/echarts/lib/chart/treemap/TreemapView.js","webpack:///./node_modules/echarts/lib/component/axis/AngleAxisView.js","webpack:///./node_modules/echarts/lib/chart/bar/barItemStyle.js","webpack:///./node_modules/echarts/lib/export.js","webpack:///./node_modules/echarts/lib/visual/aria.js","webpack:///./node_modules/echarts/lib/component/brush/brushAction.js","webpack:///./node_modules/echarts/lib/chart/pie/labelLayout.js","webpack:///./node_modules/echarts/lib/component/visualMap/typeDefaulter.js","webpack:///./node_modules/zrender/lib/svg/helper/ShadowManager.js","webpack:///./node_modules/echarts/lib/component/axis/SingleAxisView.js","webpack:///./node_modules/zrender/lib/mixin/Animatable.js","webpack:///./node_modules/echarts/lib/chart/candlestick/CandlestickSeries.js","webpack:///./node_modules/echarts/lib/component/helper/BrushTargetManager.js","webpack:///./node_modules/echarts/lib/coord/geo/parseGeoJson.js","webpack:///./node_modules/echarts/lib/chart/sankey/sankeyAction.js","webpack:///./node_modules/echarts/lib/chart/tree/treeAction.js","webpack:///./node_modules/echarts/lib/chart/pie.js","webpack:///./node_modules/echarts/lib/util/shape/sausage.js","webpack:///./node_modules/echarts/lib/component/brush/BrushView.js","webpack:///./node_modules/echarts/lib/visual/LegendVisualProvider.js","webpack:///./node_modules/echarts/lib/component/parallelAxis.js","webpack:///./node_modules/echarts/lib/component/helper/cursorHelper.js","webpack:///./node_modules/echarts/lib/theme/light.js","webpack:///./node_modules/echarts/lib/coord/single/AxisModel.js","webpack:///./node_modules/echarts/lib/chart/helper/labelHelper.js","webpack:///./node_modules/zrender/lib/graphic/shape/Rect.js","webpack:///./node_modules/echarts/lib/chart/helper/EffectSymbol.js","webpack:///./node_modules/echarts/lib/coord/geo/geoSVGLoader.js","webpack:///./node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js","webpack:///./node_modules/echarts/lib/chart/tree/treeLayout.js","webpack:///./node_modules/echarts/lib/model/OptionManager.js","webpack:///./node_modules/zrender/lib/graphic/shape/Line.js","webpack:///./node_modules/echarts/lib/chart/scatter/ScatterSeries.js","webpack:///./node_modules/zrender/lib/mixin/Draggable.js","webpack:///./node_modules/echarts/lib/chart/sunburst/sunburstLayout.js","webpack:///./node_modules/echarts/lib/component/axisPointer.js","webpack:///./node_modules/echarts/lib/component/visualMap/helper.js","webpack:///./node_modules/zrender/lib/graphic/Path.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Cartesian2D.js","webpack:///./node_modules/echarts/lib/component/dataZoom/AxisProxy.js","webpack:///./node_modules/echarts/lib/chart/helper/createRenderPlanner.js","webpack:///./node_modules/echarts/lib/component/grid.js","webpack:///./node_modules/echarts/lib/component/axisPointer/modelHelper.js","webpack:///./node_modules/echarts/lib/chart/heatmap/HeatmapLayer.js","webpack:///./node_modules/zrender/lib/dom/HandlerProxy.js","webpack:///./node_modules/echarts/lib/chart/map/mapSymbolLayout.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Cartesian.js","webpack:///./node_modules/echarts/lib/chart/sankey/SankeySeries.js","webpack:///./node_modules/echarts/lib/component/geo.js","webpack:///./node_modules/echarts/lib/coord/calendar/Calendar.js","webpack:///./node_modules/echarts/lib/processor/dataStack.js","webpack:///./node_modules/echarts/lib/component/legend.js","webpack:///./node_modules/echarts/lib/chart/helper/focusNodeAdjacencyAction.js","webpack:///./node_modules/zrender/lib/Handler.js","webpack:///./node_modules/echarts/lib/chart/graph/simpleLayout.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/MagicType.js","webpack:///./node_modules/zrender/lib/vml/core.js","webpack:///./node_modules/echarts/lib/processor/dataFilter.js","webpack:///./node_modules/zrender/lib/graphic/shape/Polyline.js","webpack:///./node_modules/echarts/lib/component/axisPointer/AxisPointerView.js","webpack:///./node_modules/zrender/lib/graphic/CompoundPath.js","webpack:///./node_modules/echarts/lib/chart/line/poly.js","webpack:///./node_modules/zrender/lib/core/LRU.js","webpack:///./node_modules/zrender/lib/Element.js","webpack:///./node_modules/echarts/lib/chart/bar/PictorialBarSeries.js","webpack:///./node_modules/echarts/lib/component/visualMap/visualMapAction.js","webpack:///./node_modules/echarts/lib/chart/sunburst.js","webpack:///./node_modules/echarts/lib/chart/graph/graphAction.js","webpack:///./node_modules/echarts/lib/action/roamHelper.js","webpack:///./node_modules/zrender/lib/contain/path.js","webpack:///./node_modules/echarts/lib/coord/parallel/Parallel.js","webpack:///./node_modules/echarts/lib/coord/polar/AxisModel.js","webpack:///./node_modules/zrender/lib/graphic/shape/Circle.js","webpack:///./node_modules/echarts/lib/chart/treemap.js","webpack:///./node_modules/echarts/lib/component/markPoint.js","webpack:///./node_modules/echarts/lib/component/toolbox/ToolboxView.js","webpack:///./node_modules/zrender/lib/svg/Painter.js","webpack:///./node_modules/zrender/lib/graphic/Pattern.js","webpack:///./node_modules/echarts/lib/component/axisPointer/BaseAxisPointer.js","webpack:///./node_modules/echarts/lib/chart/boxplot/BoxplotView.js","webpack:///./node_modules/echarts/lib/component/dataZoomSelect.js","webpack:///./node_modules/echarts/lib/component/timeline/SliderTimelineModel.js","webpack:///./node_modules/zrender/lib/graphic/RadialGradient.js","webpack:///./node_modules/zrender/lib/core/guid.js","webpack:///./node_modules/echarts/lib/model/mixin/boxLayout.js","webpack:///./node_modules/echarts/lib/chart/graph/edgeVisual.js","webpack:///./node_modules/echarts/lib/coord/parallel/AxisModel.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/Restore.js","webpack:///./node_modules/echarts/lib/chart/custom.js","webpack:///./node_modules/echarts/lib/coord/axisTickLabelBuilder.js","webpack:///./node_modules/echarts/lib/util/model.js","webpack:///./node_modules/echarts/lib/scale/Scale.js","webpack:///./node_modules/zrender/lib/container/Group.js","webpack:///./node_modules/zrender/lib/core/bbox.js","webpack:///./node_modules/echarts/lib/chart/helper/whiskerBoxCommon.js","webpack:///./node_modules/echarts/lib/chart/helper/createListSimply.js","webpack:///./node_modules/echarts/lib/model/mixin/colorPalette.js","webpack:///./node_modules/echarts/lib/component/dataZoomSlider.js","webpack:///./node_modules/echarts/lib/util/animation.js","webpack:///./node_modules/echarts/lib/chart/bar/helper.js","webpack:///./node_modules/zrender/lib/contain/cubic.js","webpack:///./node_modules/zrender/lib/contain/text.js","webpack:///./node_modules/echarts/lib/view/Chart.js","webpack:///./node_modules/zrender/lib/vml/Painter.js","webpack:///./node_modules/echarts/lib/chart/candlestick/preprocessor.js","webpack:///./node_modules/echarts/lib/component/visualMap/VisualMapModel.js","webpack:///./node_modules/echarts/lib/coord/polar/prepareCustom.js","webpack:///./node_modules/echarts/lib/component/axisPointer/axisTrigger.js","webpack:///./node_modules/echarts/lib/component/legend/scrollableLegendAction.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Axis2D.js","webpack:///./node_modules/echarts/lib/coord/geo/mapDataStorage.js","webpack:///./node_modules/echarts/lib/data/Source.js","webpack:///./node_modules/echarts/lib/chart/boxplot/boxplotLayout.js","webpack:///./node_modules/zrender/lib/Painter.js","webpack:///./node_modules/echarts/lib/util/format.js","webpack:///./node_modules/echarts/lib/component/timeline/TimelineModel.js","webpack:///./node_modules/echarts/lib/coord/single/singleAxisHelper.js","webpack:///./node_modules/echarts/lib/data/helper/dataStackHelper.js","webpack:///./node_modules/echarts/lib/component/calendar/CalendarView.js","webpack:///./node_modules/zrender/lib/tool/transformPath.js","webpack:///./node_modules/echarts/lib/component/timeline.js","webpack:///./node_modules/echarts/lib/chart/lines/linesVisual.js","webpack:///./node_modules/echarts/lib/coord/geo/geoCreator.js","webpack:///./node_modules/echarts/lib/chart/graph/forceHelper.js","webpack:///./node_modules/echarts/lib/component/helper/sliderMove.js","webpack:///./node_modules/echarts/lib/chart/line.js","webpack:///./node_modules/echarts/lib/chart/tree.js","webpack:///./node_modules/echarts/lib/chart/line/lineAnimationDiff.js","webpack:///./node_modules/echarts/lib/component/axisPointer/SingleAxisPointer.js","webpack:///./node_modules/echarts/lib/component/legend/ScrollableLegendModel.js","webpack:///./node_modules/zrender/lib/vml/vml.js","webpack:///./node_modules/echarts/lib/chart/line/LineView.js","webpack:///./node_modules/echarts/lib/theme/dark.js","webpack:///./node_modules/echarts/lib/component/axis/CartesianAxisView.js","webpack:///./node_modules/echarts/lib/coord/geo/Region.js","webpack:///./node_modules/echarts/lib/component/parallel.js","webpack:///./node_modules/echarts/lib/component/brush/BrushModel.js","webpack:///./node_modules/echarts/lib/stream/task.js","webpack:///./node_modules/echarts/lib/component/helper/brushHelper.js","webpack:///./node_modules/echarts/lib/component/angleAxis.js","webpack:///./node_modules/echarts/lib/chart/treemap/Breadcrumb.js","webpack:///./node_modules/echarts/lib/chart/map/mapDataStatistic.js","webpack:///./node_modules/echarts/lib/chart/helper/SymbolDraw.js","webpack:///./node_modules/echarts/lib/chart/pie/PieSeries.js","webpack:///./node_modules/echarts/lib/util/layout.js","webpack:///./node_modules/echarts/lib/chart/boxplot.js","webpack:///./node_modules/echarts/lib/component/axis/AxisBuilder.js","webpack:///./node_modules/echarts/lib/preprocessor/backwardCompat.js","webpack:///./node_modules/echarts/lib/component/helper/BrushController.js","webpack:///./node_modules/echarts/lib/coord/polar/Polar.js","webpack:///./node_modules/echarts/lib/visual/seriesColor.js","webpack:///./node_modules/echarts/lib/processor/dataSample.js","webpack:///./node_modules/echarts/lib/model/mixin/textStyle.js","webpack:///./node_modules/echarts/lib/chart/boxplot/BoxplotSeries.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/Brush.js","webpack:///./node_modules/echarts/lib/component/axisPointer/viewHelper.js"],"names":["_util","each","createHashMap","SeriesModel","createListFromArray","_default","extend","type","dependencies","visualColorAccessPath","getInitialData","option","ecModel","source","this","getSource","setEncodeAndDimensions","getRawIndicesByActiveState","activeState","coordSys","coordinateSystem","data","getData","indices","eachActiveState","theActiveState","dataIndex","push","getRawIndex","defaultOption","zlevel","z","parallelIndex","label","show","inactiveOpacity","activeOpacity","lineStyle","width","opacity","emphasis","progressive","smooth","animationEasing","seriesModel","encodeDefine","parallelModel","getComponent","get","dimensions","axisDim","dataDimIndex","convertDimNameToNumber","set","dimName","replace","module","exports","zrUtil","VisualMapView","graphic","_symbol","createSymbol","layout","helper","PiecewiseVisualMapView","doRender","thisGroup","group","removeAll","visualMapModel","textGap","textStyleModel","textFont","getFont","textFill","getTextColor","itemAlign","_getItemAlign","itemSize","viewData","_getViewData","endsText","showLabel","retrieve","renderItem","item","piece","itemGroup","Group","onclick","bind","_onItemClick","_enableHoverLink","indexInModelPieceList","representValue","getRepresentValue","_createItemSymbol","visualState","getValueState","add","Text","style","x","y","text","textVerticalAlign","textAlign","_renderEndsText","viewPieceList","box","renderBackground","positionGroup","pieceIndex","onHoverLink","method","hoverLink","api","dispatchAction","batch","makeHighDownBatch","findTargetDataIndices","on","modelOption","orient","getItemAlign","align","map","getPieceList","index","inverse","reverse","slice","shapeParam","getControllerVisual","selected","clone","newKey","getSelectedMapKey","selectedMode","o","key","from","uid","visualMapId","id","echarts","registerAction","event","update","createListSimply","_model","defaultEmphasis","_sourceHelper","makeSeriesEncodeForNameBased","LegendVisualProvider","FunnelSeries","extendSeriesModel","init","superApply","arguments","legendVisualProvider","getRawData","_defaultLabelLine","coordDimensions","encodeDefaulter","curry","labelLineNormalOpt","labelLine","labelLineEmphasisOpt","getDataParams","params","superCall","valueDim","mapDimension","sum","getSum","percent","toFixed","$vars","legendHoverLink","left","top","right","bottom","minSize","maxSize","sort","gap","funnelAlign","position","length","itemStyle","borderColor","borderWidth","dataToCoordSize","dataSize","dataItem","dimIdx","val","halfSize","p1","p2","Math","abs","dataToPoint","rect","getBoundingRect","height","zoom","getZoom","coord","size","BoundingRect","View","geoSourceManager","Geo","name","nameMap","invertLongitute","call","load","_nameCoordMap","nameCoordMap","_regionsMap","regionsMap","_invertLongitute","regions","_rect","boundingRect","doConvert","methodName","finder","value","geoModel","getReferringComponents","prototype","constructor","containCoord","i","contain","transformTo","rawTransformable","_rawTransformable","transform","calculateTransform","decomposeTransform","scale","updateTransform","_updateTransform","getRegion","getRegionByCoord","addGeoCoord","geoCoord","getGeoCoord","noRoam","out","convertToPixel","convertFromPixel","mixin","gridModel","axisModel","opt","grid","axis","otherAxisOnZeroOf","getAxesOnZeroOf","rawAxisPosition","axisPosition","dim","getRect","rectBound","idx","onZero","axisOffset","posBound","onZeroCoord","toGlobalCoord","dataToCoord","max","min","rotation","PI","dirMap","labelDirection","tickDirection","nameDirection","labelOffset","labelInside","labelRotate","z2","extendComponentView","render","Rect","shape","defaults","fill","getItemStyle","silent","registerPreprocessor","xAxis","yAxis","updateViewOnPan","controllerHost","dx","dy","target","pos","dirty","updateViewOnZoom","zoomDelta","zoomX","zoomY","zoomLimit","newZoom","zoomMin","zoomMax","Infinity","zoomScale","ComponentModel","ComponentView","detectSourceFormat","_sourceType","SERIES_LAYOUT_BY_COLUMN","seriesLayoutBy","sourceHeader","optionUpdated","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","minRunLength","n","r","makeAscendingRun","array","lo","hi","compare","runHi","reverseRun","t","binaryInsertionSort","start","mid","pivot","gallopLeft","hint","lastOffset","maxOffset","offset","tmp","m","gallopRight","TimSort","runStart","runLength","minGallop","stackSize","pushRun","_runStart","_runLength","mergeRuns","mergeAt","forceMergeRuns","start1","length1","start2","length2","k","mergeLow","mergeHigh","cursor1","cursor2","dest","count1","count2","exit","_minGallop","Error","customCursor","customDest","remaining","ts","minRun","force","windingLine","EPSILON","isAroundEqual","a","b","points","w","p","p0","Clip","color","isArrayLike","arraySlice","Array","defaultGetter","defaultSetter","interpolateNumber","interpolateString","interpolateArray","arrDim","len","len2","j","fillArr","arr0","arr1","arr0Len","arr1Len","isPreviousLarger","isNaN","isArraySame","catmullRomInterpolateArray","p3","t2","t3","catmullRomInterpolate","v0","v1","cloneValue","ret","rgba2String","rgba","floor","join","getArrayDim","keyframes","lastValue","createTrackClip","animator","easing","oneTrackDone","propName","forceAnimate","getter","_getter","setter","_setter","useSpline","trackLen","trackMaxTime","firstVal","isValueArray","isValueColor","isValueString","time","kfPercents","kfValues","prevValue","isAllValueEqual","colorArray","parse","_target","lastFrame","lastFramePercent","onframe","frame","range","clip","life","loop","_loop","delay","_delay","ondestroy","Animator","_tracks","_clipCount","_doneList","_onframeList","_clipList","when","props","tracks","hasOwnProperty","during","callback","pause","_paused","resume","isPaused","_doneCallback","doneList","lastClip","self","clipCount","animation","addClip","oldOnFrame","stop","forwardToLast","clipList","removeClip","done","cb","getClips","linkList","List","createDimensions","TreeNode","hostTree","depth","parentNode","children","viewChildren","Tree","hostModel","root","_nodes","addChild","child","node","isRemoved","eachNode","options","context","isString","order","suppressVisitSub","attr","updateDepthAndHeight","getNodeById","getId","res","contains","getAncestors","includeSelf","ancestors","getValue","dimension","getDimension","setLayout","merge","setItemLayout","getLayout","getItemLayout","getModel","path","itemModel","getItemModel","setVisual","setItemVisual","getVisual","ignoreParent","getItemVisual","isAncestorOf","parent","isDescendantOf","getNodeByDataIndex","rawIndex","getNodeByName","nodes","count","clearLayouts","clearItemLayouts","createTree","dataRoot","beforeLink","tree","listData","dimMax","buildHierarchy","dataNode","isArray","dimensionsInfo","dimensionsCount","list","initData","mainData","struct","structAttr","_config","__DEV__","VisualMapModel","VisualMapping","visualDefault","_number","reformIntervals","PiecewiseModel","minOpen","maxOpen","itemWidth","itemHeight","itemSymbol","pieceList","categories","splitNumber","itemGap","newOption","isInit","_pieceList","resetExtent","mode","_mode","_determineMode","resetMethods","_resetSelected","resetVisual","mappingOption","state","mappingMethod","dataExtent","getExtent","visual","completeVisualOption","visualTypesInPieces","visualTypes","listVisualTypes","isCategory","has","obj","visualType","isObject","pieces","v","exists","stateList","apply","thisOption","hasSel","setSelected","findPieceIndex","result","eachTargetSeries","dataIndices","getDataDimension","pIdx","seriesId","pieceInterval","interval","getVisualMeta","getColorVisual","stops","outerColors","edge","unshift","curr","setStop","valueState","precision","parseInt","splitStep","close","formatValueText","cate","normalizeReverse","pieceListItem","closeList","infinityList","useMinMax","lg","names","retrieveVisuals","edgeSymbols","zrColor","eventUtil","domUtil","env","formatUtil","toCamelCase","vendors","gCssText","assembleTransition","duration","transitionCurve","transitionText","vendorPrefix","assembleFont","cssText","fontSize","lineHeight","round","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","assembleCssText","tooltipModel","transitionDuration","backgroundColor","padding","canvasSupported","toHex","borderName","camelCase","normalizeCssArray","makeStyleCoord","zr","appendToBody","zrX","zrY","zrPainter","painter","zrViewportRoot","getViewportRoot","transformLocalCoord","document","body","viewportRootOffset","getViewportRootOffset","offsetLeft","offsetTop","getWidth","getHeight","TooltipContent","container","wxa","el","createElement","domBelongToZr","_zr","getZr","_appendToBody","_styleCoord","appendChild","_container","_show","_hideTimeout","onmouseenter","_enterable","clearTimeout","_inContent","onmousemove","e","window","handler","normalizeEvent","dispatch","onmouseleave","hideLater","_hideDelay","stl","currentStyle","defaultView","getComputedStyle","domStyle","alwaysShowContent","_moveTooltipIfResized","ratioX","ratioY","realX","realY","moveTo","styleCoord","display","innerHTML","pointerEvents","setContent","content","setEnterable","enterable","getSize","clientWidth","clientHeight","hide","setTimeout","isShow","dispose","removeChild","getOuterSize","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","parallelVisual","registerVisual","preprocessor","candlestickVisual","candlestickLayout","registerLayout","Axis","TimelineAxis","coordExtent","axisType","model","getLabelModel","isHorizontal","inherits","_graphic","subPixelOptimize","createRenderPlanner","parsePercent","retrieve2","LargeArr","Float32Array","seriesType","plan","reset","candleWidth","calculateCandleWidth","cDimIdx","vDimIdx","coordDims","cDim","vDims","openDim","closeDim","lowestDim","highestDim","isSimpleBox","progress","pipelineContext","large","largeProgress","normalProgress","next","axisDimVal","openVal","closeVal","lowestVal","highestVal","ocLow","ocHigh","ocLowPoint","getPoint","ocHighPoint","lowestPoint","highestPoint","ends","addBodyEnd","subPixelOptimizePoint","sign","getSign","initBaseline","brushRect","makeBrushRect","NaN","point","point1","point2","pmin","pmax","tmpIn","tmpOut","extent","baseAxis","getBaseAxis","bandWidth","getBandWidth","barMaxWidth","barMinWidth","barWidth","GestureMgr","_track","dist","pointPair","sqrt","center","recognize","_doTrack","_recognize","clear","touches","trackItem","touch","clientToLocal","eventName","recognizers","gestureInfo","pinch","track","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","Diff","buildValues","diff","components","newArr","oldArr","componentPos","componentLen","newPos","oldPos","component","removed","added","clonePath","equals","newLen","oldLen","editLength","maxEditLength","bestPath","extractCommon","execEditLength","diagonalPath","basePath","addPath","removePath","undefined","canAdd","canRemove","pushComponent","last","commonCount","tokenize","arrayDiff","KEY_DELIMITER","getAutoCurvenessParams","createCurveness","appendLength","autoCurvenessParmas","curvenessList","__curvenessList","getKeyOfEdges","n1","n2","getOppositeKey","keys","split","getEdgeFromMap","node1","node2","__edgeMap","getTotalLengthBetweenNodes","getEdgeMapLengthWithKey","lenV","edgeMap","initCurvenessList","createEdgeMapForCurveness","oppositeEdges","isForward","getCurvenessForEdge","needReverse","autoCurvenessParams","isArrayParam","edgeArray","edgeIndex","totalLen","curKey","parityCorrection","oppositeKey","resValue","RoamController","roamHelper","_cursorHelper","onIrrelevantElement","_component","getUID","Transformable","getFixedItemStyle","areaColor","updateMapSelectHandler","mapDraw","mapOrGeoModel","regionsGroup","fromView","off","_mouseDownFlag","__regions","action","mainType","region","updateMapSelected","eachChild","otherRegionEl","trigger","isSelected","MapDraw","updateGroup","_controller","_controllerHost","_updateGroup","_mapName","_initialized","_regionsGroup","_backgroundGroup","draw","payload","isGeo","eachComponent","subType","mapSeries","getHostGeoModel","geo","_updateBackground","targetScale","transformInfo","getTransformInfo","isFirstDraw","childAt","roamTransform","updateProps","rawScale","rawPosition","itemStyleAccessPath","hoverItemStyleAccessPath","labelAccessPath","hoverLabelAccessPath","regionGroup","compoundPath","CompoundPath","segmentIgnoreThreshold","paths","dataIdx","regionModel","getRegionModel","itemStyleModel","hoverItemStyleModel","hoverItemStyle","labelModel","hoverLabelModel","indexOfName","visualColor","transformPoint","geometries","geometry","exterior","Polygon","interiors","interior","setStyle","strokeNoScale","culling","hoverShowLabel","isDataNaN","itemLayout","labelFetcher","query","textEl","setLabelStyle","hoverStyle","labelDataIndex","defaultText","useInsideStyle","textScale","setItemGraphicEl","eventData","componentType","componentIndex","geoIndex","groupRegions","highDownSilentOnTouch","setHoverStyle","_updateController","remove","removeGraphic","mapName","makeGraphic","controller","enable","makeActionBase","originX","originY","traverse","setPointerChecker","getViewRectAfterRoam","matrix","vector","mIdentity","identity","isNotAroundZero","opts","origin","transformableProto","needLocalTransform","scaleTmp","parentHasTransform","create","getLocalTransform","mul","copy","globalScaleRatio","getGlobalScale","relX","relY","sx","sy","invTransform","invert","setTransform","ctx","dpr","restoreTransform","tmpTransform","originTransform","setLocalTransform","atan2","transformCoordToLocal","v2","applyTransform","transformCoordToGlobal","rotate","Displayable","imageHelper","ZImage","brush","prevEl","src","image","_image","createOrUpdateImage","onload","isImageReady","aspect","sWidth","sHeight","drawImage","drawRectText","eachSeriesByType","graph","getGraph","minValue","maxValue","nodeValue","mapping","mapValueToColor","mapValueToVisual","customColor","layoutUtil","LegendView","WH","XY","ScrollableLegendView","newlineDisabled","_currentIndex","_containerGroup","getContentGroup","_controllerGroup","_showController","resetInner","removeClipPath","__rectSize","renderInner","legendModel","selector","selectorPosition","me","controllerGroup","pageIconSize","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","icon","createIcon","getOrient","_pageGo","font","layoutInner","isFirstRender","selectorGroup","getSelectorGroup","orientIdx","wh","xy","hw","yx","selectorButtonGap","selectorRect","selectorPos","processMaxSize","mainRect","_layoutContentAndController","contentGroup","containerGroup","contentRect","controllerRect","showController","contentPos","containerPos","controllerPos","pageButtonGap","pageButtonPosition","clipShape","setClipPath","invisible","pageInfo","_getPageInfo","pageIndex","contentPosition","_updatePageInfoView","to","scrollDataIndex","legendId","canJump","childOfName","cursor","pageText","pageFormatter","current","total","pageCount","containerRectSize","targetItemIndex","_findTargetItemIndex","targetItem","itemCount","pCount","pagePrevDataIndex","pageNextDataIndex","targetItemInfo","getItemInfo","s","winStartItemInfo","winEndItemInfo","currItemInfo","intersect","itemRect","__legendDataIndex","itemInfo","winStart","targetDataIndex","defaultIndex","legendDataIdx","ParallelAxis","axisIndex","makeInner","getDataItemValue","isTypedArray","Source","assert","SOURCE_FORMAT_ORIGINAL","SOURCE_FORMAT_ARRAY_ROWS","SOURCE_FORMAT_OBJECT_ROWS","SOURCE_FORMAT_KEYED_COLUMNS","SOURCE_FORMAT_UNKNOWN","SOURCE_FORMAT_TYPED_ARRAY","SERIES_LAYOUT_BY_ROW","BE_ORDINAL","Must","Might","Not","inner","datasetModel","sourceFormat","resetSourceDefaulter","datasetMap","prepareSource","seriesOption","fromDataset","dimensionsDefine","getDatasetModel","datasetOption","completeResult","completeBySourceData","startIndex","dimensionsDetectCount","encode","normalizeDimensionsDefine","arrayRowsTravelFirst","objectRowsCollectDimensions","colArr","value0","displayName","exist","maxLoop","firstIndex","makeSeriesEncodeForAxisCoordSys","baseCategoryDimIndex","categoryWayValueDimStart","encodeItemName","encodeSeriesName","coordDimInfo","coordDimIdx","getDataDimCountOnCoordDim","datasetRecord","categoryWayDim","valueWayDim","pushDim","dimIdxArr","idxFrom","idxCount","dimsDef","coordDimName","itemName","seriesName","dimCount","potentialNameDimIndex","idxResult","idxRes0","idxRes1","guessRecords","guessResult","doGuessOrdinal","isPureNumber","fulfilled","nameDimIndex","thisData","datasetIndex","guessOrdinal","dimIndex","dimType","dimDefItem","sample","detectValue","row","beStr","Line","vec2","curveUtil","EffectLine","lineData","seriesScope","createLine","_updateEffectSymbol","effectLineProto","effectModel","symbolType","symbol","_symbolType","setColor","_symbolScale","_updateEffectAnimation","period","constantSpeed","delayExpr","isDelayFunc","ignore","updateAnimationPoints","getLineLength","_period","stopAnimation","__t","animate","updateSymbolPosition","__p1","__cp1","__p2","updateData","cp1","lastPos","quadraticAt","quadraticDerivativeAt","tx","ty","__lastT","scaleY","updateLayout","visualSolution","throttleUtil","BrushTargetManager","STATE_LIST","DISPATCH_METHOD","DISPATCH_FLAG","PRIORITY_BRUSH","PRIORITY","VISUAL","BRUSH","layoutCovers","brushModel","brushTargetManager","setInputRanges","areas","throttleType","throttleDelay","brushSelected","doDispatch","fn","createOrUpdate","isDisposed","checkInRange","selectorsByBrushType","rangeInfoList","area","brushType","selectors","getSelectorsByBrushType","brushSelector","sels","selectorsByElementType","isFunction","bSelector","sel","brushModelNotControll","seriesIndex","seriesIndices","indexOf","bindSelector","selFn","elType","setBrushOption","brushOption","brushIndex","thisBrushSelected","brushId","brushName","brushLink","linkedSeriesMap","selectedDataIndexForLink","rangeInfoBySeries","hasBrushExists","boundingRectBuilders","visualMappings","createVisualMappings","linkOthers","brushed","stepAParallel","hasAxisBrushed","stepAOthers","controlSeries","eachSeries","seriesBrushSelected","applyVisual","lineX","noop","lineY","getBoundingRectFromMinMax","polygon","minMax","rg","visualSymbol","layoutPoints","modelUtil","getSeriesByIndex","queryDataIndex","getItemGraphicEl","getTooltipPosition","getValues","_labelHelper","getDefaultLabel","SymbolClz","symbolProto","getSymbolSize","symbolSize","getScale","driftSymbol","drift","_createSymbol","keepAspect","symbolPath","stopSymbolAnimation","toLastFrame","getSymbolPath","highlight","downplay","setZ","setDraggable","draggable","_updateCommon","fadeIn","initProps","_seriesModel","normalStyleAccessPath","emphasisStyleAccessPath","normalLabelAccessPath","emphasisLabelAccessPath","highDownOnUpdate","fromState","toState","incremental","useHoverLayer","__symbolOriginalScale","ratio","emphasisOpt","animateTo","useStyle","symbolOffset","hoverAnimation","cursorStyle","hasItemOption","getShallow","elStyle","symbolRotate","symbolInnerColor","liftZ","z2Origin","__z2Origin","useNameLabel","getLabelDefaultText","getName","isRectText","autoColor","isAnimationEnabled","fadeOut","keepLabel","symbolUtil","normalizeSymbolSize","extendChartView","polar","oldData","_data","updateSymbols","oldPoints","newPoints","symbolGroup","__dimIdx","getInitialPoints","pt","cx","cy","polyline","Polyline","newIdx","oldIdx","execute","eachItemGraphicEl","getLineStyle","stroke","areaStyleModel","hoverAreaStyleModel","polygonIgnore","isEmpty","parentModel","hoverPolygonIgnore","getAreaStyle","itemHoverStyle","labelHoverModel","labelDimIndex","AxisBuilder","AxisView","axisBuilderAttrs","selfBuilderAttrs","axisPointerClass","radiusAxisModel","radiusAxis","angleAxis","getAngleAxis","ticksCoords","getTicksCoords","minorTicksCoords","getMinorTicksCoords","axisAngle","radiusExtent","layoutAxis","axisBuilder","getGroup","isBlank","_splitLine","splitLineModel","lineStyleModel","lineColors","lineCount","splitLines","colorIndex","Circle","mergePath","_minorSplitLine","minorSplitLineModel","lines","_splitArea","splitAreaModel","areaColors","splitAreas","prevRadius","Sector","r0","startAngle","endAngle","axisHelper","axisModelCommonMixin","Model","_layout","getLayoutRect","_dataStackHelper","enableDataStack","isDimensionStacked","getStackedDimension","_completeDimensions","completeDimensions","_createDimensions","createList","dataStack","createScale","isInstance","createScaleByModel","setExtent","niceScaleExtent","mixinAxisModelCommonMethods","ArrayCtor","m1","m2","out0","out1","out2","out3","out4","out5","translate","rad","aa","ac","atx","ab","ad","aty","st","sin","ct","cos","vx","vy","det","axisDefault","valueAxisDefault","valueAxis","defaultsShow","RadarModel","extendComponentModel","boundaryGap","axisLine","axisTick","axisLabel","nameTextStyle","showName","nameFormatter","nameGap","triggerEvent","indicatorModels","indicatorOpt","iNameTextStyle","nameLocation","indName","getIndicatorModels","radius","splitLine","splitArea","indicator","coordsOffsetMap","mapType","coordFix","cp","BaseBarSeries","getProgressive","getProgressiveThreshold","progressiveThreshold","largeThreshold","roundCap","showBackground","backgroundStyle","borderType","borderRadius","register","records","initGlobalListeners","record","useHandler","eventType","dis","makeDispatchAction","dispatchTooltipFinally","pendings","initialized","doEnter","onLeave","actuallyPayload","showLen","showTip","hideLen","hideTip","currTrigger","pendingList","unregister","Scale","OrdinalMeta","scaleProto","OrdinalScale","ordinalMeta","_ordinalMeta","_extent","getOrdinal","rank","normalize","getTicks","ticks","getLabel","unionExtentFromData","unionExtent","getApproximateExtent","getOrdinalMeta","niceTicks","niceExtent","MarkerModel","tooltip","distance","ChartView","Path","_createClipPathFromCoordSys","createClipPath","NORMAL_ITEM_STYLE_PATH","EMPHASIS_ITEM_STYLE_PATH","SKIP_PROPS","CandlestickView","_updateDrawMode","_isLargeDraw","_renderLarge","_renderNormal","incrementalPrepareRender","_clear","incrementalRender","_incrementalRenderLarge","_incrementalRenderNormal","isLargeDraw","needsClip","clipArea","getArea","hasValue","isNormalBoxClipped","createNormalBox","setBoxCommon","createLarge","clipPath","NormalBoxPath","buildPath","__simpleBox","lineTo","closePath","transInit","clipped","normalItemStyleModel","LargeBoxPath","__sign","largePoints","elP","elN","setLargeStyle","suffix","Style","Element","RectText","__clipPaths","__dirty","dragging","rectHover","beforeBrush","afterBrush","rectContain","__dirtyText","__zr","refresh","animateStyle","attrKV","calculateTextPosition","addEventListener","element","attachEvent","removeEventListener","detachEvent","updateDataSelected","hasAnimation","selectedOffset","toggleItemSelected","midAngle","PiePiece","sector","piePieceProto","firstCreate","labelText","sectorShape","animationTypeUpdate","setShape","animationType","lineJoin","withAnimation","_updateLabel","hoverIgnore","normalIgnore","labelLayout","targetLineShape","linePoints","targetTextStyle","labelLineModel","labelLineHoverModel","inside","verticalAlign","PieView","sectorGroup","_sectorGroup","onSectorClick","piePiece","_createClipPath","clockwise","initOrUpdate","containPoint","_multipleGraphEdgeHelper","simpleLayout","simpleLayoutEdge","eachEdge","curveness","retrieve3","Polar","_axisHelper","CoordinateSystem","resizePolar","polarModel","getRadiusAxis","updatePolarScale","onBand","setAxis","polarCreator","polarList","findAxisModel","angleAxisModel","queryComponents","getSeriesStackId","getAxisKey","barLayoutPolar","lastStackCoords","barWidthAndOffset","calRadialBar","filter","getSeriesByType","isSeriesFiltered","axisKey","stackId","columnLayoutInfo","columnOffset","columnWidth","getOtherAxis","barMinHeight","barMinAngle","baseDim","stacked","clampLayout","valueAxisStart","dataToRadius","dataToAngle","baseValue","baseCoord","radiusSpan","angle","angleSpan","barSeries","columnsMap","axisExtent","columnsOnAxis","remainedWidth","autoWidthCount","categoryGap","stacks","maxWidth","barGap","barCategoryGap","coordSysName","barGapPercent","autoWidth","column","stack","lastColumn","widthSum","mathCos","mathSin","selectableMixin","geoCreator","GeoModel","layoutMode","getFilledRegions","_optionModelMap","reduce","optionModelMap","regionOpt","updateSelectedMap","aspectScale","boundingCoords","scaleLimit","getFormattedLabel","status","formatter","setZoom","setCenter","arrySlice","Eventful","eventProcessor","_$handlers","_$eventProcessor","normalizeQuery","host","eventful","isOnce","_h","h","wrap","one","callAtLast","zrEventfulCallAtLast","lastIndex","lastWrap","splice","isSilent","newList","l","args","argLen","hItem","afterTrigger","triggerWithContext","getMin","rangeStart","eqNaN","getMax","rangeEnd","getNeedCrossZero","getCoordSysModel","setRange","resetRange","coordinateSystemCreators","CoordinateSystemManager","_coordinateSystems","coordinateSystems","creater","concat","getCoordinateSystems","coordinateSystemCreator","curve","bbox","devicePixelRatio","CMD","M","L","C","Q","A","Z","R","min2","max2","mathMin","mathMax","mathSqrt","mathAbs","hasTypedArray","PathProxy","notSaveData","_saveData","_ctx","_xi","_yi","_x0","_y0","_ux","_uy","_len","_lineDash","_dashOffset","_dashIdx","_dashSum","setScale","getContext","beginPath","addData","exceedUnit","_needsDash","_dashedLineTo","bezierCurveTo","x1","y1","x2","y2","x3","y3","_dashedBezierTo","quadraticCurveTo","_dashedQuadraticTo","arc","anticlockwise","arcTo","x0","y0","toStatic","setLineDash","lineDash","lineDashSum","setLineDashOffset","setData","appendPath","appendSize","appendPathData","cmd","_expandData","_prevCmd","newData","dash","dashSum","nDash","cubicAt","bezierLen","tmpLen","Number","MAX_VALUE","xi","yi","fromLine","fromCubic","fromQuadratic","rx","ry","fromArc","rebuildPath","d","ux","uy","theta","dTheta","psi","fs","scaleX","isEllipse","features","ctor","_format","encodeHTML","layoutInfo","leaves","leavesModel","nodeData","wrapMethod","isExpand","treeDepth","expandAndCollapse","expandTreeDepth","initialTreeDepth","getRawDataItem","collapsed","formatTooltip","realRoot","edgeShape","edgeForkPosition","roam","nodeScaleRatio","animationDuration","animationDurationUpdate","numberUtil","scaleHelper","IntervalScale","intervalScaleProto","mathCeil","ceil","mathFloor","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","bisect","TimeScale","stepLvl","_stepLvl","date","Date","formatTime","getSetting","getFullYear","getMonth","getDate","minInterval","maxInterval","_interval","fixMin","fixMax","approxTickNum","span","approxInterval","scaleLevelsLen","scaleLevels","level","yearSpan","yearStep","nice","timezoneOffset","getTimezoneOffset","fixExtent","_niceExtent","parseDate","useUTC","useEncodeDefaulter","step","smoothMonotone","showSymbol","showAllSymbol","connectNulls","sampling","hoverLayerThreshold","Component","parallelAxisIndex","axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandRate","axisExpandDebounce","axisExpandSlideTriggerArea","axisExpandTriggerOn","parallelAxisDefault","mergeOption","_initDimensions","setAxisExpand","axisModels","dependentModels","parallelAxis","wx","getSystemInfoSync","browser","os","svgSupported","touchEventsSupported","domSupported","worker","navigator","detect","userAgent","ua","firefox","match","ie","weChat","test","version","SVGRect","pointerEventsSupported","hierNode","defaultAncestor","ancestor","prelim","modifier","change","shift","thread","pop","firstWalk","separation","siblings","subtreeW","executeShifts","midPoint","apportion","secondWalk","nodeX","defaultSeparation","radialCoordinate","radialCoor","getViewRect","getBoxLayoutParams","subtreeV","nodeOutRight","nodeInRight","nodeOutLeft","nodeInLeft","sumOutRight","sumInRight","sumOutLeft","sumInLeft","nextRight","nextLeft","moveSubtree","nextAncestor","wl","wr","pathTool","colorTool","Image","Ring","BezierCurve","Arc","LinearGradient","RadialGradient","IncrementalDisplayable","subPixelOptimizeUtil","EMPTY_OBJ","Z2_EMPHASIS_LIFT","CACHED_LABEL_STYLE_PROPERTIES","textBorderColor","textBorderWidth","EMPHASIS","NORMAL","_highlightNextDigit","_highlightKeyMap","_customShapeMap","extendShape","extendPath","pathData","extendFromString","registerShape","ShapeClass","getShapeClass","makePath","createFromString","centerGraphic","resizePath","makeImage","imageUrl","img","pathRect","subPixelOptimizeLine","param","subPixelOptimizeRect","hasFillOrStroke","fillOrStroke","liftedColorMap","liftedColorCount","liftColor","liftedColor","lift","cacheElementStl","__hoverStlDirty","__hoverStl","normalStyle","__cachedNormalStl","__cachedNormalZ2","singleEnterEmphasis","hoverStl","__highlighted","isGroup","elTarget","targetStyle","addHover","rollbackDefaultTextStyle","extendFrom","setDefaultHoverFillStroke","applyDefaultTextStyle","prop","singleEnterNormal","highlighted","removeHover","normalStl","normalZ2","traverseUpdate","updater","commonParam","__highDownOnUpdate","setElementHoverStyle","onElementMouseOver","shouldSilent","__highByOuter","onElementMouseOut","onElementEmphasisEvent","highlightDigit","onElementNormalEvent","__highDownSilentOnTouch","zrByTouch","setAsHighDownDispatcher","asDispatcher","disable","__highDownDispatcher","isHighDownDispatcher","getHighlightDigit","highlightKey","emphasisStyle","normalModel","emphasisModel","normalSpecified","emphasisSpecified","baseText","labelProp","showNormal","showEmphasis","normalStyleText","emphasisStyleText","setTextStyle","modifyLabelStyle","normalStyleProps","emphasisStyleProps","textStyle","specifiedTextStyle","isEmphasis","setTextStyleCommon","setText","defaultColor","textPosition","getTextPosition","textOffset","textRotation","textDistance","richResult","globalTextStyle","richItemNames","getRichItemNames","richTextStyle","setTokenTextStyle","rich","forceRich","richItemNameMap","isBlock","getAutoColor","textStroke","textStrokeWidth","insideRollbackOpt","fontStyle","fontWeight","fontFamily","textLineHeight","textWidth","textHeight","textTag","disableBox","textBackgroundColor","textPadding","textBorderRadius","textBoxShadowColor","textBoxShadowBlur","textBoxShadowOffsetX","textBoxShadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","insideRollback","useInsideStyleCache","useAutoColorCache","gTextStyleModel","trim","animateOrSetProps","isUpdate","animatableModel","animationEnabled","postfix","animationDelay","getAnimationDelayParams","getTransform","mat","transformDirection","direction","hBase","vBase","vertex","groupTransition","g1","g2","elMap1","getElMap","anid","oldEl","newProp","getAnimatableProps","g","elMap","clipPointsByRect","clipRectByRect","targetRect","iconStr","linePolygonIntersect","a1x","a1y","a2x","a2y","lineLineIntersect","b1x","b1y","b2x","b2y","mx","my","nx","ny","nmCrossProduct","crossProduct2d","nearZero","b1a1x","b1a1y","q","eventTool","throttle","DataZoomView","sliderMove","linearMap","asc","DEFAULT_LOCATION_EDGE_GAP","DEFAULT_FRAME_BORDER_WIDTH","DEFAULT_FILLER_SIZE","HORIZONTAL","VERTICAL","LABEL_GAP","SHOW_DATA_SHADOW_SERIES_TYPE","SliderZoomView","_displayables","_orient","_range","_handleEnds","_size","_handleWidth","_handleHeight","_location","_dragging","_dataShadowInfo","dataZoomModel","_buildView","_updateView","_resetLocation","_resetInterval","barGroup","_renderBackground","_renderHandle","_renderDataShadow","_positionGroup","coordRect","_findCoordRect","ecSize","positionInfo","layoutParams","getLayoutParams","layoutRect","location","targetAxisModel","getFirstTargetAxisModel","otherAxisInverse","_getViewExtent","_onClickPanelClick","info","_prepareDataShadowInfo","series","otherDim","getShadowDim","otherDataExtent","getDataExtent","otherOffset","lastIsEmpty","otherShadowExtent","thisShadowExtent","areaPoints","thisCoord","stride","otherCoord","showDataShadow","eachTargetAxis","dimNames","seriesModels","getAxisProxy","getTargetSeriesModels","thisAxis","getOtherDim","thisDim","displaybles","handles","handleLabels","filler","getCursor","_onDragMove","ondragstart","_showDataInfo","ondragend","_onDragEnd","onmouseover","onmouseout","lineWidth","handleIndex","bRect","handleColor","getPercentRange","viewExtent","_updateInterval","delta","handleEnds","viewExtend","minMaxSpan","findRepresentativeAxisProxy","getMinMaxSpan","percentExtent","minSpan","maxSpan","lastRange","nonRealtime","handleInterval","handle","handleHeight","_updateDataInfo","labelTexts","axisProxy","getAxisModel","dataInterval","calculateDataWindow","end","valueWindow","getDataValueWindow","_formatLabel","orderedHandleEnds","setLabel","barTransform","textPoint","labelFormatter","labelPrecision","getPixelPrecision","valueStr","showOrHide","changed","realtime","_dispatchZoomAction","localPoint","offsetX","offsetY","dataZoomId","getTargetCoordInfo","coordInfoList","Graph","edges","directed","addNode","linkNameList","validEdges","linkCount","link","addEdge","coordSysCtor","dimensionNames","edgeData","datas","datasAttr","IndicatorAxis","getScaleExtent","LogScale","Radar","radarModel","_indicatorAxes","indicatorModel","indicatorAxis","resize","getIndicatorAxes","indicatorIndex","coordToPoint","pointToData","closestAxis","radian","minRadianDiff","closestAxisIdx","coordToData","viewWidth","viewHeight","viewSize","indicatorAxes","radarSeries","increaseInterval","exp10","pow","log","LN10","f","rawExtent","fixedMin","fixedMax","getInterval","setInterval","nicedSplitNumber","radarList","radar","categoryFilter","categoryVisual","edgeVisual","circularLayout","forceLayout","createView","registerProcessor","POST_CHART_LAYOUT","registerCoordinateSystem","dataFormatMixin","addCommas","fillLabel","mergeDefaultAndTheme","_mergeOption","hostSeries","__hostSeries","newOpt","createdBySelf","modelPropName","markerOpt","markerModel","multipleSeries","dataType","renderMode","getRawValue","formattedValue","html","newLine","getSortedIndices","valueArr","mapArray","isAscending","textX","textY","labelPosition","isLabelInside","labelLineLen","viewRect","sizeExtent","getLinePoints","nextIdx","_poly","DataDiffer","_layers","layerSeries","getLayerSeries","keyGetter","dataDiffer","_layersSeries","newLayersGroups","process","oldLayersGroups","points0","points1","textLayout","margin","layerGroup","stackedOnPoints","stackedOnSmooth","smoothConstraint","createGridClipShape","rectEl","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","styleName","normalItemStyleOpt","normal","emphasisItemStyleOpt","convertNormalEmphasis","optType","useExtend","normalOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","TEXT_STYLE_OPTIONS","compatEC3CommonStyles","processSeries","seriesOpt","markPoint","markLine","markArea","links","mpData","mlData","breadcrumb","levels","toArr","toObj","isTheme","axes","axisName","axisOpt","axisPointer","parallel","parallelOpt","calendar","calendarOpt","radarOpt","geoOpt","regionObj","timeline","timelineOpt","toolbox","toolboxOpt","feature","featureOpt","properties","excludes","includes","PI2","RADIAN","minAngle","validDataCount","unitRadian","roseType","stillShowZeroSum","restAngle","valueSumLargerThanMinAngle","currentAngle","dir","paletteScope","categoriesData","getCategoriesData","categoryNameIdxMap","getColorFromPalette","itemStyleList","category","legend","all","title","keep","dataView","lang","dataZoom","back","magicType","line","bar","tiled","restore","saveAsImage","typeNames","pie","scatter","effectScatter","treemap","boxplot","candlestick","heatmap","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","aria","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","middle","allData","partialData","isDataItemOption","DefaultDataProvider","dimSize","seriesDataToSource","_source","_offset","_dimSize","methods","providerMethods","providerProto","pure","persistent","getItem","appendData","appendDataSimply","countSimply","getItemSimply","col","dims","newCol","oldCol","clean","rawValueGetters","arrayRows","getRawValueSimply","objectRows","keyedColumns","original","typedArray","defaultDimValueGetters","getDimValueSimply","converDataValue","_dimensionInfos","_rawData","dimInfo","parseAndCollect","retrieveRawValue","getProvider","getDimensionInfo","retrieveRawAttr","fixShadow","_constant","ContextCachedBy","STYLE_COMMON_PROPS","createLinearGradient","global","canvasGradient","createRadialGradient","fillOpacity","strokeOpacity","lineDashOffset","textRect","transformText","textOrigin","truncate","blend","prevStyle","notCheckCache","__attrCachedBy","STYLE_BIND","fillStyle","strokeStyle","globalAlpha","globalCompositeOperation","hasStroke","getLineScale","hasFill","otherStyle","overwrite","newStyle","getGradient","colorStops","addColorStop","styleProto","hasKeys","supplementVisualOption","mappings","createMappings","visualData","isValidType","__hidden","__alphaForOpacity","Creater","replaceVisualOption","scope","visualTypesMap","eachItem","valueOrIndex","rawDataItem","visualMap","prepareVisualTypes","incrementalApplyVisual","getTargetSeries","seriesModelMap","modifyOutputEnd","overallReset","filterData","percentRange","getDataPercentWindow","valueRange","setCalculatedRange","startValue","endValue","debugMode","OTHER_DIMENSIONS","summarizeDimensions","summary","notExtraCoordDimMap","defaultedLabel","defaultedTooltip","userOutput","dimItem","coordDim","coordDimIndex","getOrCreateEncodeArr","isExtraCoord","mayLabelDimType","defaultTooltip","encodeArr","otherDims","dataDimsOnCoord","encodeFirstDimNotExtra","dimArr","encodeLabel","encodeTooltip","getDimensionTypeByAxis","barPolar","borderColorQuery","globalColors","eachRawSeriesByType","defaulColor","legendSymbol","getMarkerPosition","clampData","offsetIndex","progressiveChunkMode","Ellipse","_path","DILIMITER_REG","parseXML","svg","parser","DOMParser","parseFromString","nodeType","firstChild","nodeName","toLowerCase","nextSibling","SVGParser","_defs","_root","_isDefine","_isText","xml","viewBox","getAttribute","parseFloat","parseAttributes","viewBoxRect","viewBoxTransform","_parseNode","viewBoxArr","makeViewBoxTransform","ignoreViewBox","elRoot","ignoreRootClip","xmlNode","parentGroup","defineParsers","def","nodeParsers","_parseText","_textX","_textY","textContent","inheritStyle","circle","ellipse","parsePoints","gradient","_parseGradientColorStops","stopColor","__inheritedStyle","pointsString","attributesMap","defs","onlyInlineStyle","zrStyle","isTextEl","parseTransformAttribute","parseStyleAttribute","svgAttrName","attrValue","elFillProp","elStrokeProp","getPaint","elPropName","textBaseline","urlRegex","str","urlMatch","url","transformRegex","transformOps","console","warn","styleRegex","styleRegResult","styleList","exec","viewBoxScale","viewBoxPosition","parseSVG","DEFAULT_BAR_BOUND","ContinuousModel","calculable","hoverLinkDataSize","hoverLinkOnHandle","_resetRange","resetItemSize","auto","getSelected","oVals","getColorStopValues","iVals","iIdx","oIdx","iLen","oLen","first","stopsLen","stopValues","getAxis","markerHelper","LineDraw","MarkerView","markLineTransform","mlModel","mlType","axisInfo","getAxisInfo","valueDataDim","numCalculate","valueIndex","baseIndex","mlFrom","mlTo","dataTransform","isInifinity","ifMarkLineHasOnlyDim","fromCoord","toCoord","otherDimIndex","containData","markLineFilter","dataFilter","updateSingleMarkerEndLayout","isFrom","xPx","yPx","markLineModel","fromData","__from","toData","__to","markerGroupMap","renderSeries","seriesData","lineDrawMap","lineDraw","updateDataVisualAndLayout","lineColor","dataModel","__keep","coordDimsInfos","optData","dimValueGetter","util","_event","Dispatcher","requestAnimationFrame","Animation","stage","_clips","_running","_time","_pausedTime","_pauseStart","addAnimator","clips","removeAnimator","_update","getTime","deferredEvents","deferredClips","_needsRemove","fire","_startLoop","isFinished","sankeyLayout","sankeyVisual","_echarts","_export","DATAS","MAIN_DATA","main","linkAll","TRANSFERABLE_METHODS","transferInjection","cloneShallowInjection","CHANGABLE_METHODS","changeInjection","isMainData","linkSingle","cloneShallow","getLinkedData","Region","roams","InsideZoomView","allCoordIds","coordInfo","generateCoordId","coordModel","getRange","roamHandlers","coordId","containsPoint","directionInfo","getDirectionInfo","percentPoint","signal","pixelStart","pixelLength","pixel","pan","makeMover","oldX","oldY","newX","newY","scrollMove","scrollDelta","getPercentDelta","percentDelta","oldPoint","newPoint","angleExtent","pointToCoord","singleAxis","_dimensionHelper","_referHelper","getCoordSysInfoBySeries","coordSysDimDefs","registeredCoordSys","coordSysInfo","coordSysDims","axisMap","getDimensionsInfo","firstCategoryDimIndex","hasNameEncode","dimInfoList","generateCoord","categoryAxisModel","categoryAxisMap","stackCalculationInfo","setCalculationInfo","isNeedCompleteOrdinalData","itemOpt","defaultDimValueGetter","sampleItem","firstDataNotNull","isNumeric","_helper","BAR_BORDER_WIDTH_QUERY","LAYOUT_ATTRS","posDesc","pathForLineWidth","BarView","cartesian","coordSysRect","coordSysExtent","categoryDim","symbolMeta","getSymbolMeta","createBar","updateCommon","newIndex","oldIndex","pictorialShapeStr","getShapeStr","__pictorialShapeStr","updateBar","__pictorialSymbolMeta","removeBar","animationModel","symbolRepeat","symbolClip","symbolPosition","symbolPatternSize","symbolRepeatDirection","prepareBarLength","prepareSymbolSize","boundingLength","pxSign","prepareLineWidth","symbolScale","prepareLayoutInfo","valueLineWidth","repeatCutLength","output","symbolBoundingData","zeroPx","pxSignIdx","symbolBoundingExtent","convertToCoordOnAxis","categorySize","unitLength","pathLen","absBoundingLength","symbolMargin","hasEndGap","lastIndexOf","uLenWithMargin","endFix","repeatSpecified","repeatTimes","toIntTimes","mDiff","sizeFix","pathPosition","bundlePosition","barRectShape","createPath","createOrUpdateRepeatSymbols","bundle","__pictorialBundle","unit","eachPath","__pictorialAnimationIndex","__pictorialRepeatTimes","updateAttr","makeTarget","updateHoverAnimation","onMouseOver","onMouseOut","createOrUpdateSingleSymbol","mainPath","__pictorialMainPath","createOrUpdateBarRect","rectShape","barRect","__pictorialBarRect","createOrUpdateClip","__pictorialClipPath","labelRect","pathes","immediateAttrs","animationAttrs","barRectHoverStyle","barPositionOutside","times","roundedTimes","SunburstPiece","windowOpen","ROOT_TO_NODE_ACTION","SunburstView","that","virtualRoot","newRoot","getViewRoot","renderLabelForZeroData","newChildren","oldChildren","_oldChildren","dualTravel","renderRollUp","highlightPolicy","onEmphasis","unhighlight","virtualPiece","onNormal","getKey","processNode","newId","oldId","newNode","oldNode","doRenderNode","removeNode","viewRoot","_onclickEvent","_rootToNode","_initEvents","targetFound","nodeClick","linkTarget","targetNode","treeRoot","transformPath","vMag","vRatio","u","vAngle","acos","processArc","fa","psiDeg","xp","yp","lambda","cxp","cyp","commandReg","numberReg","createPathProxyFromString","prevCmd","cpx","cpy","subpathX","subpathY","cmdList","cmdText","cmdStr","charAt","pLen","ctlPtx","ctlPty","createPathOptions","pathProxy","pathEls","pathList","pathEl","createPathProxy","__dirtyPath","pathBundle","TimelineView","_axis","_viewRect","_timer","_currentPointer","_mainGroup","_labelGroup","timelineModel","mainGroup","_createGroup","labelGroup","_createAxis","_renderAxisLabel","_position","_doPlayStop","_clearTimer","labelPosOpt","horizontal","vertical","playPosition","prevBtnPosition","nextBtnPosition","labelAlignMap","labelBaselineMap","rotationMap","mainLength","controlModel","showControl","controlSize","controlGap","sizePlusGap","labelRotation","controlPosition","showPlayBtn","showPrevBtn","showNextBtn","xLeft","xRight","labelAlign","labelBaseline","rotateOriginX","rotateOriginY","viewBound","getBound","mainBound","labelBound","mainPosition","labelsPosition","mainBoundIdx","toBound","setOrigin","targetGroup","fromPos","boundIdx","newGroup","_renderAxisLine","lineCap","_renderAxisTick","tickCoord","hoverStyleModel","symbolOpt","_changeTimeline","giveSymbol","labels","getViewLabels","labelItem","tickValue","normalLabelModel","formattedLabel","_renderControl","playState","getPlayState","makeBtn","iconPath","willRotate","btn","makeIcon","_handlePlayClick","_renderCurrentPointer","currentIndex","getCurrentIndex","pointerModel","onCreate","pointer","_handlePointerDrag","_handlePointerDragend","pointerMoveTo","onUpdate","nextState","_pointerChangeTimeline","mousePos","_toAxisCoord","_findNearestTick","handleFrame","trans","axisCoord","nextIndex","objPath","noAnimation","DataZoomModel","SliderZoomModel","dataBackground","areaStyle","fillerColor","handleIcon","handleSize","handleStyle","showDetail","zoomLock","RADIAN_EPSILON","_trim","domain","clamp","subDomain","subRange","returnStr","arr","getPrecision","getPrecisionSafe","toString","eIndex","dotIndex","pixelExtent","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","remainder","NEGATIVE_INFINITY","maxId","MAX_SAFE_INTEGER","remRadian","pi2","isRadianAroundZero","TIME_REG","hour","toUpperCase","UTC","quantity","quantityExponent","exp","nf","exponent","quantile","ascArr","H","littleThan","currClose","_dataProvider","getTooltipMarker","formatTpl","getTooltipRenderMode","DIMENSION_LABEL_REG","rawValue","rawDataIndex","renderModeOption","isSeries","componentSubType","marker","dimensionIndex","makeStyleMapper","getLineDash","lineType","dotSize","dashSize","Displayble","IncrementalDisplayble","_temporaryDisplayables","_cursor","notClear","clearDisplaybles","addDisplayable","displayable","notPersistent","addDisplayables","displayables","eachPendingDisplayable","childRect","union","localPos","setCurrentIndex","isIndexMax","setPlayState","resetOption","preventIncremental","coordSysCreator","blurSize","pointSize","maxOpacity","minOpacity","AxisProxy","eachAxisDim","xAxisIndex","yAxisIndex","filterMode","minValueSpan","maxValueSpan","rangeMode","_dataIntervalByAxis","_dataInfo","_axisProxies","_autoThrottle","_rangePropMode","inputRawOption","retrieveRawOption","settledOption","doInit","_setDefaultThrottle","updateRangeUse","_resetTarget","_giveAxisProxies","axisProxies","__dzAxisProxy","autoMode","_judgeAutoMode","axisIndexName","normalizeToArray","_autoSetAxisIndex","_autoSetOrient","hasIndexSpecified","autoAxisIndex","singleAxisModel","singleAxisIndex","axisIndices","_isSeriesHasAllAxesTypeOf","axisId","is","seriesAxisIndex","globalOption","firstAxisModel","setRawRange","getValueRange","axisDimName","hostedBy","getRangePropMode","rangePropMode","rangeModeInOption","percentSpecified","valueSpecified","HOVER_LINK_SIZE","HOVER_LINK_OUT","ContinuousView","_shapes","_dataInterval","_useHandle","_hoverLinkDataIndices","_hovering","_renderBar","dataRangeText","_enableHoverLinkToSeries","_enableHoverLinkFromSeries","endsIndex","_applyTransform","shapes","useHandle","_createBarGroup","outOfRange","createPolygon","inRange","_dragHandle","getTextRect","textSize","handleThumbs","handleLabelPoints","_createHandle","_createIndicator","onDrift","onDragEnd","handleThumb","createHandlePoints","handleLabel","handleLabelPoint","indicatorLabel","indicatorLabelPoint","isEnd","_clearHoverLinkToSeries","useHoverLinkOnHandle","_doHoverLinkToSeries","forSketch","outOfRangeHandleEnds","inRangeHandleEnds","visualInRange","_createBarVisual","visualOutOfRange","barColor","barPoints","_updateHandle","forceState","convertOpacityToAlpha","_makeColorGradient","symbolSizes","_createBarPoints","handlesColor","sampleNumber","currValue","_showIndicator","cursorValue","textValue","rangeSymbol","halfHoverLinkSize","createIndicatorPoints","_hoverLinkFromSeriesMouseOver","_hideIndicator","_clearHoverLinkFromSeries","cursorPos","hoverOnBar","getHalfHoverLinkSize","hoverRange","oldBatch","newBatch","resultBatches","compressBatches","_dispatchHighDown","isTargetSeries","isRange","extentMax","zrender","timsort","GlobalModel","ExtensionAPI","OptionManager","backwardCompat","_throttle","seriesColor","loadingDefault","Scheduler","lightTheme","darkTheme","mapDataStorage","parseClassType","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_BRUSH","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","COMPONENT","IN_MAIN_PROCESS","OPTION_UPDATED","ACTION_REG","createRegisterEventWithLowercaseName","ignoreDisposed","_disposed","disposedWarning","MessageCenter","ECharts","dom","theme","themeStorage","_dom","defaultRenderer","renderer","_throttledZrFlush","flush","_theme","_chartsViews","_chartsMap","_componentsViews","_componentsMap","_coordSysMgr","_api","createExtensionAPI","prioritySortFunc","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_ecEventProcessor","EventProcessor","_messageCenter","_pendingActions","_onframe","bindRenderedEvent","setAsPrimitive","echartsProto","doConvertPixel","coordSysList","parseFinder","scheduler","prepare","updateMethods","flushPendingActions","triggerUpdatedEvent","unfinished","remainTime","startTime","performSeriesTasks","performDataProcessorTasks","updateStreamModes","performVisualTasks","getDom","setOption","notMerge","lazyUpdate","optionManager","optionPreprocessorFuncs","setTheme","error","getOption","getDevicePixelRatio","getRenderedCanvas","pixelRatio","getSvgDataURL","storage","getDisplayList","toDataURL","getDataURL","excludeComponents","excludesComponentViews","view","__viewId","getType","getConnectedDataURL","isSvg","groupId","MAX_NUMBER","connectedGroups","canvasList","instances","chart","canvas","getSvgDom","getBoundingClientRect","targetCanvas","createCanvas","getSvgRoot","connectedBackgroundColor","setBackgroundColor","refreshImmediately","containPixel","models","defaultMainType","dataIndexInside","indexOfRawIndex","getViewOfComponentModel","componentModel","getViewOfSeriesModel","prepareAndUpdate","coordSysMgr","restoreData","clearColorPalette","colorArr","stringify","performPostUpdateFuncs","ecIns","componentDirtyList","componentView","__alive","seriesDirtyMap","chartView","setDirty","dirtyMap","updateView","markUpdateMethod","updateVisual","restorePipelines","prepareStageTasks","prepareView","updateDirectly","condition","excludeSeriesId","callView","__model","chartsMap","doDispatchAction","payloadType","escapeConnect","actionWrap","actions","actionInfo","cptType","updateMethod","payloads","batched","eventObj","eventObjBatch","isHighDown","batchItem","sub","pendingActions","isComponent","viewList","viewMap","doPrepare","viewId","classType","Clazz","getClass","__id","__ecComponentInfo","renderTask","renderComponents","dirtyList","updateZ","updatePayload","perform","getPerformArgs","updateBlend","updateHoverLayerStatus","postUpdateFuncs","func","_loadingFX","optionChanged","showLoading","cfg","hideLoading","loadingEffects","makeActionFromEvent","eventActionMap","MOUSE_EVENT_NAMES","elCount","preventUsingHoverLayer","blendMode","ecInstance","getComponentByElement","modelInfo","eventInfo","eveName","isGlobalOut","targetEl","packedEvent","actionType","setAttribute","DOM_ATTRIBUTE_KEY","cptQuery","dataQuery","otherQuery","condCptType","suffixes","dataKeys","reserved","propSuffix","suffixPos","check","filterForExposedEvent","propOnHost","idBase","groupIdBase","enableConnect","STATUS_PENDING","STATUS_UPDATING","STATUS_UPDATED","STATUS_KEY","updateConnectedChartsStatus","charts","otherChart","otherCharts","existInstance","getInstanceByDom","connect","disConnect","disconnect","getInstanceById","registerTheme","preprocessorFunc","priority","processor","normalizeRegister","registerPostUpdate","postUpdateFunc","getCoordinateSystemDimensions","layoutTask","visualTask","targetList","defaultPriority","stageHandler","wrapStageHandler","__raw","registerLoading","loadingFx","setCanvasCreator","creator","$override","registerMap","geoJson","specialAreas","getMap","retrieveMap","geoJSON","dataTool","___ec_export","_core","textContain","textHelper","arrayJoin","NONE","mathRound","degree","round4","isAroundZero","pathHasFill","isText","pathHasStroke","svgEl","attrXLink","setAttributeNS","bindStyle","strokeWidth","strokeScale","miterLimit","pathDataToString","dataLength","nData","dThetaPositive","isCircle","unifiedTheta","svgPath","__svgEl","pathStr","svgTextDrawRectText","removeOldTextNode","svgImage","HTMLImageElement","dw","dh","__imageSrc","svgText","_tmpTextHostRect","_tmpTextBoxPos","_tmpTextTransform","TEXT_ALIGN_TO_ANCHRO","hostRect","elTransform","needTransformTextByHostEl","normalizeTextStyle","needDrawText","textSvgEl","__textSvgEl","textSvgElStyle","DEFAULT_FONT","computedFont","__computedFont","__styleFont","contentBlock","__textCotentBlock","parsePlainText","outerHeight","getBoxPosition","baseX","baseY","setTextTransform","boxY","adjustTextY","getTextXForPadding","canCacheByTextString","tspanList","__tspanList","tspanOriginLen","__canCacheByTextString","__text","updateTextLocation","textLines","nTextLines","tspan","singleLineText","__zrText","createTextNode","scaleAndAdd","lenSquare","lengthSquare","div","dot","distanceSquare","distSquare","negate","lerp","LRU","kCSSColorTable","clampCssByte","clampCssAngle","clampCssFloat","parseCssInt","parseCssFloat","cssHueToRgb","lerpNumber","setRgba","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","put","cached","op","ep","fname","substr","alpha","hsla2rgba","iv","hsla","rgba2hsla","S","G","B","vMin","vMax","deltaR","deltaG","deltaB","fastLerp","normalizedValue","colors","leftIndex","rightIndex","leftColor","rightColor","dv","fastMapToColor","fullOutput","mapToColor","modifyHSL","modifyAlpha","arrColor","Gradient","TooltipRichContent","findPointFromSeries","globalListener","axisPointerViewHelper","proxyRect","tooltipContent","_renderMode","_newLine","_tooltipContent","_tooltipModel","_ecModel","_lastDataByCoordSys","_alwaysShowContent","_initGlobalListener","_keepShow","triggerOn","_tryShow","_hide","_lastX","_lastY","_refreshUpdateTimeout","manuallyShowTip","_ticket","dataByCoordSys","tooltipOption","_manuallyAxisShowTip","pointInfo","findHover","manuallyHideTip","coordSysAxesInfo","buildTooltipModel","_showAxisTooltip","_showSeriesItemTooltip","_showComponentItemTooltip","_showOrMove","_showTimout","globalTooltipModel","singleDefaultHTML","singleParamsList","singleTooltipModel","markers","itemCoordSys","dataByAxis","axisValue","seriesDefaultHTML","valueLabel","getValueLabel","seriesDataIndices","valueLabelOpt","idxItem","dataParams","getAxisRawValue","axisValueLabel","seriesTooltip","newMarkers","firstLine","positionExpr","_updateContentNotChangedOnAxis","_updatePosition","_showTooltipContent","random","tooltipTrigger","defaultHtml","asyncTicket","tooltipOpt","subTooltipModel","cbTicket","contentSize","vAlign","calcTooltipPosition","refixTooltipPosition","isCenterAlign","confineTooltipPosition","lastCoordSys","contentNotChanged","lastItemCoordSys","indexCoordSys","lastDataByAxis","thisItemCoordSys","thisDataByAxis","lastItem","indexAxis","thisItem","lastIndices","newIndices","lastIdxItem","newIdxItem","modelCascade","resultModel","gapH","gapV","domWidth","domHeight","rectWidth","rectHeight","_clazz","enableClassExtend","enableClassCheck","lineStyleMixin","areaStyleMixin","textStyleMixin","itemStyleMixin","doGet","pathArr","getParent","getParentMethod","parsePath","thisParentModel","Ctor","setReadOnly","customizeGetParent","Single","singles","actionTypes","handleRootToNode","types","targetInfo","retrieveTargetInfo","originViewRoot","aboveViewRoot","resetViewRoot","easingFuncs","_life","onrestart","globalTime","deltaTime","_startTime","easingFunc","schedule","restart","arg","HIGHLIGHT_ACTION","handleHighlight","UNHIGHLIGHT_ACTION","handleUnhighlight","_createPolyline","polylineProto","_updateCommonStl","hoverLineStyle","legendSelectActionHandler","selectedMap","isToggleSelect","legendData","isItemSelected","rangeInfo","getRangeInfo","cellWidth","getCellWidth","cellHeight","getCellHeight","weeks","dayCount","allDay","SymbolDraw","EffectSymbol","pointsLayout","_symbolDraw","effectSymbolDraw","_updateGroupTransform","getRoamTransform","HeatmapLayer","getIsInPiecewiseRange","dataSpan","getIsInContinuousRange","isGeoCoordSys","visualMapOfThisSeries","targetSeries","_incrementalDisplayable","_renderOnCartesianAndCalendar","_renderOnGeo","itemStyleQuery","hoverItemStyleQuery","labelQuery","hoverLabelQuery","coordSysType","dataDims","dataToRect","contentShape","inRangeVisuals","targetVisuals","outOfRangeVisuals","hmLayer","_hmLayer","lng","lat","isInRange","getNormalizer","getColorMapper","curveTool","_graphHelper","v3","v2DistSquare","intersectCurveCircle","curvePoints","radiusSquare","_t","nextDiff","tmp0","quadraticSubdivide","pts","pts2","fromSymbol","toSymbol","__original","originalPoints","globalCoord","AxisPointerModel","snap","triggerTooltip","shadowStyle","axisModelCreator","AxisModel","gridIndex","gridId","getAxisType","extraOption","logError","_roamHelper","updateCenterAndZoom","seriesGroup","interactionMutex","pointerChecker","_opt","mousedownHandler","mousedown","mousemoveHandler","mousemove","mouseupHandler","mouseup","mousewheelHandler","mousewheel","pinchHandler","controlType","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","isDragging","isPinching","_pinching","isMiddleOrRightButtonOnMouseUpDown","_x","_y","isAvailableBehavior","gestureEvent","isTaken","shouldZoom","shouldMove","wheelDelta","absWheelDeltaDelta","factor","checkPointerAndTrigger","absDelta","behaviorToCheck","contollerEvent","settings","setting","_vector","v2Create","mathPow","EPSILON_NUMERIC","THREE_SQRT","ONE_THIRD","_v0","_v1","_v2","onet","cubicDerivativeAt","cubicRootAt","roots","c","t1","disc","K","discSqrt","Y1","Y2","T","ASqrt","cubicExtrema","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","cubicProjectPoint","prev","d1","d2","quadraticRootAt","quadraticExtremum","divider","quadraticProjectPoint","BaseAxisPointer","viewHelper","cartesianAxisHelper","CartesianAxisPointer","makeElOption","elOption","axisPointerModel","axisPointerType","otherExtent","getCartesian","getGlobalExtent","pixelValue","buildElStyle","pointerOption","pointerShapeBuilder","graphicKey","buildCartesianSingleLabelElOption","getHandleTransform","labelMargin","getTransformedPosition","updateHandleTransform","currPosition","cursorOtherValue","cursorPoint","tooltipOptions","targetShape","makeLineShape","getAxisDimIndex","shadow","makeRectShape","registerAxisPointerClass","fixClipWithShadow","unitX","unitY","ZText","MARK_UNUSED","MARK_USED","Definable","zrId","svgRoot","tagNames","markLabel","domName","_zrId","_svgRoot","_tagNames","_markLabel","_domName","nextId","getDefs","isForceCreating","getElementsByTagName","insertBefore","addDom","removeDom","getDoms","doms","tagName","tags","markAllUnused","markUsed","removeUnused","getSvgProxy","getTextSvgElement","getSvgElement","SingleAxis","_init","axisPointerEnabled","_adjustAxis","_updateAxisTransform","coordBase","extentSum","toLocalCoord","getAxes","getTooltipAxes","baseAxes","parseGeoJson","fixNanhai","fixTextCoord","fixGeoCoord","fixDiaoyuIsland","mapRecord","nameProperty","parsed","message","regionName","specialArea","regionRect","positiveBorderColorQuery","negativeBorderColorQuery","positiveColorQuery","negativeColorQuery","performRawSeries","colorP","getColor","colorN","borderColorP","getBorderColor","borderColorN","isLargeRender","FunnelPiece","funnelPieceProto","opacityAccessPath","FunnelView","funnelPiece","GaugeSeries","offsetCenter","detail","dev","dataSelectableMixin","MapSeries","needsDrawMap","dataNameMap","selectTargetList","toAppendNames","geoSource","getMapType","appendValues","seriesNames","otherIndex","originalData","showLegendSymbol","dataRangeHoverLink","NodeHighlightPolicy","DESCENDANT","ANCESTOR","SELF","DEFAULT_SECTOR_Z","DEFAULT_TEXT_Z","SunburstPieceProto","getNodeColor","fillDefaultColor","stateStyle","isNodeHighlighted","onHighlight","onDownplay","labelState","getLabelAttr","labelMinAngle","labelPadding","rotateType","stateAttr","visualMetaList","getRootId","activeNode","policy","featureManager","saveAsImageLang","SaveAsImage","unusable","proto","MouseEvent","msSaveOrOpenBlob","bstr","atob","u8arr","Uint8Array","charCodeAt","blob","Blob","tab","open","write","$a","download","href","evt","bubbles","cancelable","dispatchEvent","colorPaletteMixin","mergeLayoutParam","_task","createTask","visualBorderColorAccessPath","extraOpt","dataTask","dataTaskCount","dataTaskReset","wrapData","dataBeforeProcessed","autoSeriesName","inputPositionParams","themeSubType","hasClass","getTheme","getDefaultOption","fillDataTextStyle","newSeriesOption","task","getCurrentTask","setOutputEnd","outputData","isRichText","markerId","formatArrayValue","vertially","setEachItem","markName","dimHead","dimHeadStr","valStr","tooltipDims","formatSingleValue","tooltipDimLen","isValueArr","colorEl","isNameSpecified","requestColorNum","coordDimToDataDim","getAxisTooltipData","pipeTask","getSeriesAutoName","nameArr","dataDim","dataTaskProgress","onDataSelfChange","pipeline","getPipeline","currentTask","agentStubMap","smoothSpline","smoothBezier","controlPoints","cp2","AXIS_DIMS","COORDS","isCoordSupported","coordType","createNameEach","attrs","capitalNames","capitalFirst","capitalAttrs","nameObj","capital","createLinkedNodesFinder","forEachNode","forEachEdgeType","edgeIdGetter","sourceNode","existsLink","edgeType","absorb","processSingleNode","isNodeAbsorded","isLinked","hasLink","edgeId","themeRiverLayout","baseY0","timeDim","layerPoints","singleLayer","base","computeBaseline","baseLine","ky","layerIndex","layerNum","pointNum","sums","temp","getNodeGlobalScale","groupScale","groupZoom","roamZoom","nodeScale","colorList","getBorderLineDash","ATTR","dataZoomInfo","store","giveStore","theDataZoomId","theCoordId","dataZoomInfos","cleanStore","createController","controllerParams","mergeControllerParams","newRecord","typePriority","oneType","validPayloadTypes","targetNodeId","getPathToRoot","viewPath","wrapTreePathInfo","treePathInfo","nodeDataIndex","DataDimensionInfo","r1","r2","r3","r4","_forceHelper","_simpleLayoutHelper","_circularLayoutHelper","graphSeries","preservedPoints","forceModel","initLayout","nodeDataExtent","edgeDataExtent","repulsion","edgeLength","rep","fixed","getEdgeByIndex","edgeModel","ignoreForceLayout","forceInstance","gravity","friction","oldStep","getNodeByIndex","stopped","rectCoordAxisBuildSplitArea","axisView","axisGroup","gridRect","tickModel","areaColorsLen","lastSplitAreaColors","__splitAreaColors","newSplitAreaColors","cIndex","rectCoordAxisHandleRemove","ifAxisCrossZero","estimateLabelUnionRect","Cartesian2D","Axis2D","isAxisUsedInTheGrid","Grid","_coordsMap","_coordsList","_axesMap","_axesList","_initCartesian","gridProto","fixAxisOnZero","axesMap","otherAxisDim","onZeroRecords","otherAxes","onZeroAxisIndex","canOnZeroToAxis","getOnZeroRecordKey","updateAxisTransform","axisExtentSum","_updateScale","ignoreContainLabel","axesList","adjustAxes","labelUnionRect","axesMapOnDim","coordList","getCartesians","_findConvertTarget","xAxisModel","yAxisModel","coordsList","axisPositionUsed","axesCount","createAxisCreator","addAxis","isCartesian2D","axesModels","findAxesModels","otherAxis","axesTypes","grids","nodeOpacityPath","hoverNodeOpacityPath","lineOpacityPath","hoverLineOpacityPath","getItemOpacity","opacityPath","fadeOutItem","opacityRatio","getGraphicEl","fadeInItem","SankeyShape","cpx1","cpy1","cpx2","cpy2","_focusAdjacencyDisabled","sankeyView","curvature","n1Layout","node1Model","dragX1","dragY1","n2Layout","node2Model","dragX2","dragY2","edgeLayout","dragX","dragY","localX","localY","focusNodeAdjHandler","unfocusNodeAdjHandler","_dispatchUnfocus","edgeDataIndex","_unfocusDelayTimer","focusNodeAdjacency","focusNodeAdj","outEdges","inEdges","unfocusNodeAdjacency","geoJSONLoader","geoSVGLoader","loaders","mapRecords","singleSource","makeInvoker","hostKey","results","Pattern","returnFalse","createDom","newDom","newDomStyle","Layer","onselectstart","domBack","ctxBack","config","clearColor","motionBlur","lastFrameAlpha","__used","__drawIndex","__startIndex","__endIndex","getElementCount","initContext","createBackBuffer","clearAll","clearColorGradientOrPattern","haveMotionBLur","clearRect","__canvasGradient","getCanvasPattern","save","fillRect","globalImageCache","findExistImage","newImageOrSrc","cachedImgObj","hostEl","cbPayload","__zrImageSrc","pendingWrap","pending","onerror","imageOnLoad","__cachedImgObj","_listComponent","makeBackground","_contentGroup","_backgroundEl","_selectorGroup","_isFirstRender","viewportSize","legendDrawnMap","selectMode","eachRawSeries","getSeriesByName","legendSymbolType","_createItem","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","provider","containName","newline","_createSelector","createSelectorButton","selectorItem","emphasisLabelModel","inactiveColor","inactiveBorderColor","symbolKeepAspect","legendModelItemStyle","itemIcon","legendGlobalTooltipModel","setSymbolStyle","legendSymbolCenter","hitRect","formatterParams","legendIndex","dataName","CATEGORY_DEFAULT_VISUAL_INDEX","_normalizeData","normalizers","visualHandler","visualHandlers","_doMap","normalizeVisualRange","preprocessForPiecewise","preprocessForSpecifiedCategory","normalized","makeApplyVisual","isNormalized","doMapCategory","returnRGBArray","parsedVisual","linear","piecewise","getSpecifiedVisual","doMapFixed","colorHue","makePartialColorVisualHandler","colorSaturation","colorLightness","colorAlpha","makeDoMap","symbolCfg","doMapToArray","hasSpecialVisual","originIndex","categoryMap","visualArr","setVisualToOption","doNotNeedPair","applyValue","sourceExtent","addVisualHandler","eachVisual","mapVisual","isPrimary","newVisual","newVal","hasVisual","type1","type2","dependsOn","visualType1","visualType2","findClosestWhenOutside","possibleI","pieceValue","updatePossible","newAbs","isCanvasEl","transformCoordWithViewport","isDomLevel2","MOUSE_EVENT_REG","_calcOut","calculate","calculateZrXY","layerX","layerY","ex","clientX","ey","clientY","getNativeEvent","isTouch","targetTouches","changedTouches","zrDelta","button","which","preventDefault","stopPropagation","cancelBubble","returnValue","notLeftMouse","DEFAULT_SMOOTH","ParallelView","_dataGroup","dataGroup","makeSeriesScope","newDataIndex","addEl","updateElCommon","oldDataIndex","createLinePoints","taskParams","isEmptyValue","active","inactive","UNDEFINED","INDEX_NOT_FOUND","ID_PREFIX","dataCtors","Float64Array","Int32Array","CtorUint32Array","Uint32Array","CtorInt32Array","CtorUint16Array","Uint16Array","getIndicesCtor","_rawCount","cloneChunk","originalChunk","TRANSFERABLE_PROPERTIES","CLONE_PROPERTIES","transferProperties","__wrappedMethods","_calculationInfo","dimensionInfos","invertedIndicesMap","dimensionInfo","dimensionName","createInvertedIndices","_indices","_count","_storage","_nameList","_idList","_optionModels","_visual","_itemVisuals","hasItemVisual","_itemLayouts","_graphicEls","_chunkSize","_chunkCount","_rawExtent","_approximateExtent","_dimensionsSummary","_invertedIndicesMap","listProto","prepareChunks","chunkSize","chunkCount","DataCtor","lastChunkIndex","resizeChunkArray","newStore","prepareInvertedIndex","invertedIndices","getRawValueFromStore","chunkIndex","chunkOffset","chunk","getRawIndexWithoutIndices","getRawIndexWithIndices","_idDimIdx","normalizeDimensions","cloneListForMapAndSample","excludeDimensions","allDimensions","originalStorage","cloneDimStore","getInitialExtent","originalDimStore","newDimStore","getDimensionsOnCoord","dimensionsSummary","nameList","notProvider","_nameRepeatCount","_dimValueGetter","_dimValueGetterArrayRows","_initDataFromProvider","rawData","values","dimLen","originalChunkCount","emptyDataItem","sourceIdx","dimRawExtent","nameDimIdx","dimensionInfoMap","idList","nameRepeatCount","_nameDimIdx","itemId","dimStorage","nameDim","nameDimChunk","getIndices","thisCount","buffer","chunkStore","getByRawIndex","rawIdx","dimStore","_getFast","dimData","initialExtent","dimExtent","currEnd","useRaw","setApproximateExtent","getCalculationInfo","getMedian","dimDataArray","sortedDimDataArray","rawIndexOf","indicesOfNearest","maxDistance","nearestIndices","minDist","minDiff","nearestIndicesLen","contextCompat","filterSelf","dim0","selectRange","originalCount","quickFinished","chunkStorage","dimStorage2","chunkStorage2","val2","dimk","tmpRetValue","dataCount","retValue","rawExtentOnDim","downSample","rate","sampleValue","sampleIndex","targetStorage","frameValues","frameSize","originalChunkIndex","originalChunkOffset","sampleFrameIdx","sampleChunkIndex","sampleChunkOffset","otherList","thisList","itemVisual","clearAllVisual","setItemDataAndSeriesIndex","dimensionInfoList","injectFunction","originalMethod","v2Distance","interpolate","isLoop","segs","w2","w3","TYPE_DELIMITER","IS_CONTAINER","checkClassType","RootClass","mandatoryMethods","$constructor","superClass","ExtendedClass","classBase","Clz","classAttr","enableClassManagement","entity","makeContainer","registerClass","componentMainType","throwWhenNotFound","getClassesByMainType","getAllClassMainTypes","hasSubTypes","registerWhenExtend","originalExtend","ignoreSize","subtext","subtarget","subtextStyle","titleModel","subtextStyleModel","subText","subTextEl","sublink","groupRect","layoutOption","alignStyle","createParallelIfNeeded","mergeAxisOptionFromParallel","hasParallelSeries","axisOption","parallelOption","isPolyline","isLarge","lineCoords","segCount","totalCoordsCount","getLineCoordsCount","getLineCoords","_fourPointsTransform","buildTransformer","EVENT_SAVED_PROP","elFrom","inX","inY","saved","prepareCoordMarkers","transformer","preparePointerTransformer","propLR","propTB","idxLR","idxTB","transformerName","oldSrcCoords","srcCoords","oldCoordTheSame","destCoords","ii","axisPointerModelHelper","_axisPointer","fixValue","updateAxisPointer","disposeAxisPointer","forceRender","getAxisPointerClass","getAxisPointerModel","axisPointerClazz","clazz","compatibleEC2","ec2Types","transferItem","controlStyle","itemStyleEmphasis","labelNormal","excludeLabelAttr","legendModels","findComponents","categoryNames","mapSymbolLayout","mapDataStatistic","createDataSelectAction","effectType","showEffectOn","rippleEffect","barItemStyle","Sausage","_eventPos","getClipArea","coordSysClipArea","expandWidth","coordinateSystemType","isHorizontalOrRadial","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","createBackground","bgLayout","bgEl","createBackgroundEl","getBarItemStyle","isClipped","elementCreator","updateStyle","createBackgroundShape","removeRect","removeSector","bgGroup","_removeBackground","cartesian2d","coordSysBoundingRect","signWidth","signHeight","signR","animateProperty","animateTarget","isRadial","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","isPolar","labelPositionOutside","rawLayout","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","largeDataIndices","backgroundStartPoint","__largeDataIndices","__barWidth","setLargeBackgroundStyle","largePathUpdateDataIndex","largePath","largePathFindDataIndex","valueDimIdx","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","barBaseVal","barValueVal","coordLayout","ElementClz","_curve","containStroke","_l","registerSubTypeDefaulter","_barGrid","prepareLayoutBarSeries","makeColumnLayout","retrieveColumnLayout","axisDataLen","scaleType","originalExtent","getCategories","setBlank","isBaseAxisAndHasBarSeries","barSeriesModels","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","extentInfo","makeLabelFormatter","categoryTickStart","tpl","tick","realNumberScaleTicks","tickCount","categoryScaleExtent","axisLabelModel","unrotatedSingleRect","singleRect","rotateTextRect","rotateRadians","boundingBox","plain","beforeWidth","beforeHeight","afterWidth","afterHeight","rotatedRect","getOptionCategoryInterval","shouldShowAllLabels","guid","Handler","Storage","Painter","HandlerProxy","useVML","painterCtors","ZRender","getInstance","registerPainter","delInstance","rendererType","vml","handerProxy","_needsRefresh","oldDelFromStorage","delFromStorage","oldAddToStorage","addToStorage","removeSelfFromZr","addSelfToZr","addRoot","delRoot","configLayer","zLevel","_needsRefreshHover","triggerRendered","refreshHoverImmediately","elMirror","refreshHover","clearHover","clearAnimation","pathToImage","setCursorStyle","eventHandler","dataProcessorHandlers","_dataProcessorHandlers","_visualHandlers","_allHandlers","_stageTaskMap","performStageTasks","stageHandlers","needSetDirty","__pipeline","stageHandlerRecord","seriesTaskMap","overallTask","overallNeedDirty","stub","performArgs","block","pipelineId","skip","taskRecord","_pipelineMap","pCtx","progressiveEnabled","progressiveRender","__idxInPipeline","blockIndex","modDataCount","modBy","dataLen","threshold","pipelineMap","head","tail","pipe","stageTaskMap","createSeriesStageTask","createOverallStageTask","__block","getUpstream","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","createOnAllSeries","removeKey","overallTaskReset","overallProgress","createStub","stubReset","onDirty","stubOnDirty","agent","getSeries","upstreamContext","stubProgress","getDownstream","resetDefines","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","resetDefine","dataEach","detectSeriseType","legacyFunc","ecModelMock","apiMock","mockMethods","cond","EffectPolyline","_lastFrame","_lastFramePercent","effectPolylineProto","_points","accLenArr","_offsets","_length","offsets","PolarAxisPointer","animationThreshold","coordValue","labelPos","getLabelPosition","buildLabelElOption","innerTextLayout","makeSectorShape","geoCoordMap","_buildAxes","_buildSplitLineAndArea","axisBuilders","showSplitLine","showSplitArea","splitLineColors","splitAreaColors","ticksRadius","getColorIndex","realSplitNumber","axesTicksPoints","prevPoints","areaOrLine","areaOrLineColorList","themeRiverVisual","componentUtil","boxLayoutMixin","themeModel","newCptOption","fields","optList","Class","getDependencies","deps","enableSubTypeDefaulter","enableTopologicalTravel","v2ApplyTransform","TransformDummy","_roamTransformable","_center","_zoom","setBoundingRect","setViewRect","rawTransform","centerCoord","_updateCenterAndZoom","getDefaultCenter","rawRect","getCenter","rawTransformMatrix","defaultCenter","roamTransformable","_rawTransform","_layoutHelper","TreeShape","parentPoint","childPoints","forkPosition","childLen","firstChildPos","lastChildPos","forkDim","tmpPoint","_oldTree","_updateViewCoordSys","symbolNeedsDraw","updateNode","symbolEl","_nodeScaleRatio","_updateNodeAndLinkScale","fromPoints","oldMin","_min","oldMax","_max","viewCoordSys","_viewCoordSys","_getNodeGlobalScale","invScale","getTreeNodeStyle","sourceSymbolEl","sourceLayout","sourceOldLayout","rawX","__radialOldRawX","rawY","__radialOldRawY","targetLayout","__radialRawX","__radialRawY","isLeft","rootLayout","labelRotateRadian","drawEdge","__edge","getEdgeShape","childLayout","sourceEdge","radialCoor1","radialCoor2","radialCoor3","radialCoor4","BUILTIN_OBJECT","TYPED_ARRAY","objToString","Object","arrayProto","nativeForEach","forEach","nativeFilter","nativeSlice","nativeMap","nativeReduce","typeStr","isPrimitive","isDom","targetProp","sourceProp","isBuiltInObject","mergeAll","targetAndSources","overlay","baseClazz","clazzPrototype","F","memo","find","ownerDocument","value1","value2","Function","primitiveKey","HashMap","isArr","thisMap","visit","concatArray","newArray","eachAfter","eachBefore","newSnapshot","snapshot","_targetList","_selectTargetMap","targetMap","select","unSelect","toggleSelected","nameRotate","nameTruncate","ellipsis","placeholder","showMinLabel","showMaxLabel","categoryAxis","deduplication","alignWithLabel","minorTick","minorSplitLine","timeAxis","logAxis","logBase","idxMap","Uint32Arr","Float64Arr","compatEc2","coords","fromName","toName","LinesSeries","_processFlatCoordsArray","_flatCoords","flatCoords","_flatCoordsOffset","flatCoordsOffset","_getCoordsFromItemModel","startOffset","coordsOffsetAndLenStorage","coordsStorage","coordsCursor","offsetCursor","effect","trailLength","autoPositionValues","targetValue","visualCluster","visualObj","controllerVisuals","visualMapping","positionElement","generateNodeKey","_directed","_nodesMap","_edgesMap","graphProto","Node","hostGraph","Edge","isDirected","nodesMap","edgesMap","getEdge","breadthFirstTraverse","startNode","__visited","queue","currentNode","otherNode","inDegree","outDegree","createGraphDataProxyMixin","hostName","LineGroup","_ctor","lineDrawProto","doAdd","lineNeedsDraw","doUpdate","oldLineData","newLineData","itemEl","isEffectObject","animators","isPointNaN","isPersistent","_lineData","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","updateIncrementalAndHover","_clearIncremental","_incremental","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","sinusoidalOut","sinusoidalInOut","exponentialIn","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","_mapDraw","dataViewLang","BLOCK_SPLITER","ITEM_SPLITER","groupSeries","seriesGroupByCategoryAxis","otherSeries","meta","other","assembleSeriesWithCategoryAxis","tables","valueAxisDim","headers","columns","items","assembleOtherSeries","vals","getContentFromModel","isTSVFormat","itemSplitRegex","RegExp","parseTSVContents","tsv","tsvLines","header","parseListContents","hasName","parseContents","blockMetaList","blocks","blockMeta","DataView","tryMergeDataOption","newValIsObject","shouldDeleteName","readOnly","optionToContent","contentToOption","textColor","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","viewMain","textarea","htmlOrDom","buttonContainer","buttonStyle","closeButton","refreshButton","newSeriesOptList","renderText","getStroke","actionInfos","polarOptArr","polarNotRadar","polarOpt","polarIndex","radarIndex","foundAxisModel","layoutBox","boxLayoutParams","positions","bbWidth","bbHeight","BrushController","history","dataZoomLang","DATA_ZOOM_ID_BASE","DataZoom","_brushController","_onBrush","mount","_isZoomActive","brushStyle","featureModel","updateZoomBtnStatus","updateBackBtnStatus","handlers","unmount","nextActive","dataZoomSelectActive","retrieveAxisSetting","setIconStatus","zoomActive","include","setPanels","makePanelOpts","xAxisDeclared","yAxisDeclared","enableBrush","updateCovers","matchOutputRanges","coordRange","setBatch","findDataZoom","found","dzModel","dataZoomOpts","dataZoomOpt","addForAxis","axisIndicesName","givenAxisIndices","forEachComponent","$fromToolbox","SHADOW_PROPS","coordSysLists","coordIndex","LinePath","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","__specifiedRotation","setLinePoints","updateSymbolAndLabelBeforeLineUpdate","lineGroup","symbolFrom","symbolTo","pointAt","toPos","specifiedRotation","tangent","tangentAt","__labelDistance","distanceX","distanceY","halfPercent","__position","__verticalAlign","__textAlign","_createLine","lineProto","beforeUpdate","lineLabelOriginalOpacity","visualOpacity","defaultLabelColor","rawVal","normalText","emphasisText","labelStyle","linePath","globalDefault","OPTION_INNER_KEY","_optionManager","baseOption","mountOption","initBase","timelineOption","getTimelineOption","mediaOptions","getMediaOption","mediaOption","componentsMap","newCptTypes","visitComponent","newCptOptionList","mapResult","mappingToExists","makeIdAndName","keyInfo","determineSubType","getComponentsByTypes","resultItem","ComponentModelClass","createSeriesIndices","componentOption","topologicalTravel","_seriesIndicesMap","_seriesIndices","isIdInner","cpts","isIdArray","cpt","isNameArray","filterBySubType","queryCond","getQueryCond","doFilter","indexAttr","idAttr","nameAttr","queryResult","oneSeries","getSeriesCount","assertSeriesInitialized","rawSeriesIndex","getCurrentSeriesIndices","filterSeries","filteredSeries","componentTypes","isNotTargetSeries","seiresIndex","mergeTheme","notMergeColorLayer","colorLayer","themeItem","existComponent","graphicUtil","_nonShapeGraphicElements","graphicOption","elements","GraphicModel","parentId","_elOptionsToUpdate","existList","flattenedList","_flatten","mappingResult","elOptionsToUpdate","newElOption","setKeyInfoToNewElOption","mergeNewElOptionToExist","setLayoutInfoToExist","$action","optionList","parentOption","useElOptionsToUpdate","els","createEl","targetElParent","graphicType","__ecGraphicId","removeEl","existEl","existElParent","getCleanedElOption","LOCATION_PARAMS","isSetLoc","isSet","existElOption","newElParentOption","newElOptCopy","copyLayoutParams","existItem","hv","setEventData","graphicModel","_elMap","_lastGraphicModel","_updateElements","_relocate","rootGroup","elOptionStyle","elOptionCleaned","__ecGraphicWidthOption","__ecGraphicHeightOption","elOptions","apiWidth","apiHeight","parentEl","isParentRoot","__ecGraphicWidth","__ecGraphicHeight","containerInfo","boundingMode","bounding","straightLineProto","bezierCurveProto","isLine","_buildPathLine","_buildPathCurve","_pointAtLine","_pointAtCurve","_tangentAtCurve","defaultSymbolType","hasSymbolTypeCallback","hasSymbolSizeCallback","hasSymbolRotateCallback","hasCallback","seriesSymbol","seriesSymbolSize","itemSymbolType","itemSymbolSize","itemSymbolRotate","itemSymbolKeepAspect","defaultKeyGetter","oldKeyGetter","newKeyGetter","_old","_new","_oldKeyGetter","_newKeyGetter","initIndexMap","keyArr","keyGetterName","existence","_add","_remove","oldDataIndexMap","newDataIndexMap","oldDataKeyArr","newDataKeyArr","groupData","nodeWidth","nodeGap","computeNodeValues","filteredNodes","iterations","nodeAlign","layoutSankey","computeNodeBreadths","computeNodeDepths","computeEdgeDepths","getEdgeValue","nodeRawValue","remainEdges","indegreeArr","zeroIndegrees","nextTargetNode","kx","maxNodeDepth","isItemDepth","edgeIdx","indexEdge","nodeIndex","maxDepth","adjustNodeWithNodeAlign","scaleNodeBreadths","isNodeDepth","nextSourceNode","remainNodes","nodeHeight","skNodeHeight","moveSinksRight","nodeDepth","nodesByBreadth","prepareNodesByBreadth","initializeNodeDepth","resolveCollisions","relaxRightToLeft","relaxLeftToRight","keyAttr","groupResult","buckets","minKy","nodeDy","edgeDy","nodeDyAttr","weightedTarget","centerTarget","nodeY","weightedSource","centerSource","PLAIN_TEXT","WILL_BE_RESTORED","markerRich","startId","endId","updateMarkerLayout","markPointModel","mpModel","symbolDrawMap","symbolDraw","isFnSymbol","isFnSymbolSize","isFnSymbolRotate","dataOpt","sizeCalculable","CalendarModel","cellSize","dayLabel","firstDay","monthLabel","yearLabel","mergeAndNormalizeLayoutParams","raw","hvIdx","echartsAPIList","chartInstance","parallelAxisModel","setActiveIntervals","intervals","Parallel","_axisTickLabelBuilder","createAxisTicks","createAxisLabels","calculateCategoryInterval","NORMALIZED_EXTENT","fixExtentWithBands","nTick","fixOnBandTicksCoords","ticksLen","diffSize","crossLen","ticksItem","getTickModel","minorTickModel","minorTicks","getMinorTicks","minorTicksGroup","getRotate","langSelector","defaultSelectorOption","LegendModel","_updateSelector","_updateData","hasSelected","potentialData","availableNames","isPotential","getAllNames","_availableNames","allSelect","inverseSelect","selectorLabel","selectorItemGap","LN2","determinant","rows","rowStart","rowMask","colMask","detCache","cacheKey","fullRank","colStart","subRowMask","subRowStart","colLocalIdx","colTag","mA","vh","srcPointX","srcPointY","pk","normalizeRadian","sysDims","dataDimNameMap","coordDimNameMap","getDimCount","userDimName","encodeDef","validDataDims","resultDimIdx","applyDim","availDimIdx","sysDimItem","sysDimIndex","sysDimItemDimsDef","sysDimItemOtherDims","sysDimItemDimsDefItem","generateCoordCount","fromZero","extra","genName","optDimCount","isValidPoint","getValueMissingPoint","firstPoint","svgURI","createElementNS","x_","createGraphFromNodeEdge","GraphSeries","_categoriesData","_updateCategoriesData","categoriesModels","_categoriesModels","categoryIdx","categoryModel","edgeLabelModel","fakeSeriesModel","emphasisEdgeLabelModel","emphasisFakeSeriesModel","edgeGetParent","getEdgeData","sourceName","targetName","circular","rotateLabel","layoutAnimation","edgeSymbol","edgeSymbolSize","edgeLabel","polyHelper","stackResultDim","ORIGIN_METHOD","RATE","THROTTLE_TYPE","debounce","currCall","debounceNextCall","lastCall","lastExec","timer","thisDelay","thisDebounce","debounceDelay","fnAttr","originFn","lastThrottleType","lastRate","markerModelKey","subTypeDefaulters","defaulter","componentTypeMain","dependencyGetter","makeDepndencyGraph","fullNameList","noEntryList","createDependencyGraphItem","originalDeps","availableDeps","getAvailableDependencies","entryCount","dependentName","predecessor","thatItem","successor","dep","targetNameList","targetNameSet","currComponentType","currVertex","isInTargetNameSet","removeEdgeAndAdd","removeEdge","succComponentType","platform","gradientColor","animationEasingUpdate","shadowTemp","orignalBrush","modified","clipPaths","roundNumber","_intervalPrecision","thisExtent","getIntervalPrecision","expandToNicedExtent","niceTickExtent","intervalPrecision","safeLimit","lastNiceTick","nextTick","prevTick","minorInterval","intervalScaleNiceTicks","expandSize","CoordSysInfo","fetch","fetchers","roundingErrorFix","mathLog","_originalScale","originalScale","powVal","__fixMin","fixRoundingError","__fixMax","err","originalVal","dataColor","radarLayout","_needCollect","needCollect","_deduplication","_map","createByAxisModel","dedplication","getOrCreateMap","colorUtil","markAreaTransform","maModel","lt","rb","ltCoord","rbCoord","markAreaFilter","getSingleMarkerEndPoint","dimPermutations","areaData","markAreaModel","areaGroupMap","polygonGroup","allClipped","xValue","yValue","__data","ToolboxModel","featureName","Feature","showTitle","iconStyle","containLabel","_zrender","ITEM_STYLE_NORMAL","travelTree","designatedVisual","viewRootAncestors","nodeModel","nodeLayout","isInView","thisNodeColor","nodeItemStyleModel","visuals","buildVisuals","borderColorSaturation","calculateColor","calculateBorderColor","buildVisualMapping","childVisual","designatedVisualItemStyle","visualName","getValueVisualDefine","rangeVisual","getRangeVisual","visualMin","visualMax","colorMappingBy","__drColorMappingBy","childVisuals","mappingType","mapIdToIndex","hasXOrY","hasXAndY","markerTypeCalculatorWithExtent","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","coordArrValue","markerTypeCalculator","average","baseDataDim","dataDimToCoordDim","RadiusAxis","radiusToData","_treeHelper","_viewRoot","clipWindow","squareRatio","leafDepth","drillDownIcon","zoomToNodeRatio","emptyItemWidth","upperLabel","gapWidth","visualDimension","visibleMin","childrenVisibleMin","completeTreeValue","designatedVisualModel","setDefault","levelModels","levelDefine","levelModel","setLayoutInfo","idIndexMap","_idIndexMap","_idIndexMapCount","childValue","thisValue","globalColorList","hasColorDefine","modelColor","level0","mapLocation","largeLayout","_symbolRadiansHalf","basedOn","_layoutNodesBasedOn","x12","y12","unitAngle","radianHalf","sumRadian","symbolRadianHalf","halfRemainRadian","_a","_b","_s","adjustEdge","FOCUS_ADJACENCY","UNFOCUS_ADJACENCY","opct","_lineDraw","_firstRender","graphView","groupNewProp","_layoutTimeout","_startForceLayoutIteration","warmUp","_layouting","setFixed","setUnfixed","circularRotateLabel","adjacentEdge","lb","rt","maxX","maxY","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","seiresModelMap","__paletteScope","dataAll","filteredIdx","singleDataColor","singleDataBorderColor","maskColor","showSpinner","spinnerRadius","mask","animateShape","v2Min","v2Max","v2Scale","v2Add","v2Clone","v2Sub","constraint","prevPoint","nextPoint","cps","d0","cp0","retrieveValue","PATH_BORDER_WIDTH","PATH_GAP_WIDTH","PATH_UPPER_LABEL_SHOW","PATH_UPPER_LABEL_HEIGHT","ecWidth","ecHeight","containerWidth","containerHeight","rootRect","viewAbovePath","rootSize","estimateRootSize","viewRootLayout","squarify","upperHeight","calculateRootPosition","prunning","hideChildren","thisLayout","halfGapWidth","upperLabelHeight","getUpperLabelHeight","layoutOffset","layoutOffsetUpper","totalArea","initChildren","rowFixedLength","best","score","worst","orderBy","overLeafDepth","statistic","filterByThreshold","isLeafRoot","orderedChildren","deletePoint","areaMax","areaMin","squareArea","idx0WhenH","idx1WhenH","rowOtherLength","rowLen","wh1","remain","modWH","wh0","currNode","defaultSize","viewArea","currNodeValue","defaultPosition","targetCenter","clipRect","nodeInViewAbovePath","isAboveViewRoot","childClipRect","outputShape","inputShape","originWidth","originHeight","positiveOrNegative","doubledPosition","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","getLayoutOnAxis","widthAndOffsets","doCalBarWidthAndOffset","isOnCartesian","isInLargeMode","getValueAxesMinGaps","axisValues","cnt","axisMinGaps","valuesInAxis","seriesInfoList","minGap","extentSpan","scaleSpan","seriesInfo","minWidth","finalWidth","lastStackCoordsOrigin","isValueAxisH","getValueAxisStart","valueAxisHorizontal","largeBackgroundPoints","valuePair","pointsOffset","idxOffset","backgroundStart","tmpRect","AXIS_TYPES","BaseAxisModelClass","axisTypeDefaulter","extraDefaultOption","__ordinalMeta","linkedNodesFinder","effectedModels","prepareDataCoordInfo","valueOrigin","valueStart","getValueStart","baseAxisDim","baseDataOffset","dataDimsForPoint","stackedOverDimension","getStackedOnPoint","dataCoordInfo","stackedData","ClippathManager","updateDom","clipPathEl","svgProxy","cloneNode","_textDom","RadarSeries","_text","Triangle","Diamond","Pin","tanX","tanY","cpLen","cpLen2","Arrow","symbolCtors","roundRect","square","diamond","pin","arrow","triangle","symbolShapeMakers","symbolBuildProxies","inBundle","proxySymbol","symbolPathSetColor","innerColor","symbolStyle","symbolShape","__isEmptyBrush","disabled","lineContain","quadraticContain","LargeLineShape","findDataIndex","LargeLineDraw","largeLineProto","lineEl","_setCommon","isIncremental","funnelLayout","take","resourceKey","userKey","getStore","release","uKey","HIGH_DOWN_PROP","RECORD_VERSION_PROP","mapModel","_renderSymbols","originalDataIndex","fullData","mainSeries","fullIndex","highDownRecord","recordVersion","onRegionHighDown","enterRegionHighDown","toHighOrDown","__mapOriginalZ2","roundRectHelper","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","SHADOW_STYLE_COMMON_PROPS","_tmpTextPositionResult","_tmpBoxPositionResult","normalizeStyle","makeFont","renderRichText","renderPlainText","needDrawBg","needDrawBackground","checkCache","cachedByMe","styleFont","boxPos","applyTextRotation","outerWidth","boxX","adjustTextX","propItem","styleProp","ctxProp","textStrokeWidthPrev","strokeWidthChanged","strokeChanged","getFill","strokeText","fillText","parseRichText","drawRichText","contentWidth","lineTop","token","tokens","tokenCount","usedWidth","lineXLeft","lineXRight","placeToken","tokenStyle","isLineHolder","setCtx","isPlainBg","originalGlobalAlpha","onBgImageLoaded","PointerPath","parsePosition","formatLabel","GaugeView","posInfo","_renderMain","axisLineModel","angleRangeSpan","prevEndAngle","axisLineWidth","showAxis","_renderTicks","_renderPointer","_renderTitle","_renderDetail","minVal","maxVal","subSplitNumber","splitLineLen","tickLen","subStep","splitLineStyle","tickLineStyle","tickLine","valueExtent","detailModel","linesLayout","linesVisual","vmlCore","comma","imageTransformPrefix","Z2","ZLEVEL_BASE","Z_BASE","initRootElStyle","coordsize","coordorigin","encodeHtmlAttribute","String","rgb2Str","append","getZIndex","setColorAndOpacity","getColorAndAlpha","updateFillNode","zrEl","gradientType","focus","expansion","cs1","cs2","colorAndAlphaList","colorAndAlpha","color1","color2","opacity1","opacity2","focusposition","updateStrokeNode","dashstyle","updateFillAndStroke","vmlEl","isFill","createNode","nPoint","brushVML","vmlRoot","_vmlEl","needTransform","strokeEl","weight","zIndex","removeRectText","onRemove","onAdd","appendRectText","isImage","ow","oh","_imageSrc","_imageWidth","_imageHeight","imageRuntimeStyle","runtimeStyle","oldRuntimeWidth","oldRuntimeHeight","sw","sh","hasCrop","doc","vmlElStyle","hasRotation","transformFilter","imageEl","_imageEl","cropEl","_cropEl","imageELStyle","tmpImage","overflow","cropElStyle","filterStr","textMeasureEl","DEFAULT_STYLE_NORMAL","fontStyleCache","fontStyleCacheCount","MAX_FONT_CACHE_SIZE","fontEl","getFontStyle","fontString","variant","fontVariant","family","offsetWidth","fromTextEl","textLine","textPathEl","skewEl","textVmlEl","_textVmlEl","textpathok","textVmlElStyle","string","polygonContain","getLineSelectors","xyIndex","inLineRange","layoutRange","showContent","displayMode","confine","showDelay","hideDelay","extraCssText","crossStyle","AngleAxis","angleToData","ordinalScale","ordinalExtent","unitSpan","unitH","maxH","cache","lastAutoInterval","lastTickCount","percentPrecision","VISUAL_PRIORITY","resultVisual","visualMeta","concreteDim","opacityMap","itemOpacity","LargeSymbolDraw","_updateSymbolDraw","_getClipShape","_finished","someVectorAt","isTangent","DATA_NAME_INDEX","ThemeRiverSeries","fixData","rawDataLength","timeValueKeys","layData","dataList","timeValue","lenCount","indexArr","index1","index2","nestestValue","nearestIdx","theValue","htmlName","htmlValue","_updateLineDraw","getLayer","_lastZlevel","_showEffect","_clearLayer","hasEffect","_hasEffet","_isPolyline","ox","oy","DEFAULT_TOOLBOX_BTNS","isNew","brushComponents","brushComponentSpecifiedBtns","brushOpt","tbs","toolboxFeature","toolboxBrush","brushTypes","removeDuplicate","flag","shapeCompareFunc","_roots","_displayList","_displayListLen","includeIgnore","updateDisplayList","displayList","_updateAndAddDisplayable","afterUpdate","userSetClipPath","currentClipPath","parentClipPath","_children","__storage","addChildrenToStorage","delChildrenFromStorage","_renderList","displayableSortFunc","brushHelper","elementList","fromAxisAreaSelect","oldAxisGroup","_axisGroup","coordSysModel","areaSelectStyle","getAreaSelectStyle","areaWidth","axisLayout","getAxisLayout","builderOpt","strokeContainThreshold","_refreshBrushController","extentLen","enableGlobalPan","panelId","makeRectPanelClipPath","isTargetByCursor","makeRectIsTargetByCursor","getLinearBrushOtherExtent","makeLinearBrushOtherExtent","removeOnClick","getCoverInfoList","coverInfoList","coverInfo","parallelAxisId","activeIntervals","createGridClipPath","createPolarClipPath","sectorArea","clazzUtil","componentProto","GradientManager","addWithoutUpdate","svgElement","hex","splitList","Breadcrumb","animationUtil","DRAG_THRESHOLD","PATH_LABEL_NOAMAL","PATH_LABEL_EMPHASIS","PATH_UPPERLABEL_NORMAL","PATH_UPPERLABEL_EMPHASIS","Z_BG","Z_CONTENT","getItemStyleEmphasis","getItemStyleNormal","createStorage","_breadcrumb","_state","thisStorage","reRoot","rootNodeGroup","nodeGroup","_giveContainerGroup","renderResult","_doRender","renderFinally","_doAnimation","_resetController","_renderBreadcrumb","thisTree","oldTree","lastsForAnimation","oldStorage","willInvisibleEls","renderNode","willDeleteEls","clearStorage","thisViewChildren","oldViewChildren","sameTree","thisNode","storageName","delEls","__tmWillDelete","animationWrap","createWrap","__tmNodeWidth","__tmNodeHeight","targetX","targetY","old","fadein","_onPan","_onZoom","_clearController","mouseX","mouseY","findTarget","_zoomToNode","onSelect","background","thisWidth","thisHeight","thisInvisible","thisRawIndex","oldRawIndex","isParent","itemStyleNormalModel","itemStyleEmphasisModel","giveGraphic","bg","renderContent","useUpperLabel","processInvisible","visualBorderColor","emphasisBorderColor","upperLabelWidth","prepareText","contentHeight","upperLabelRect","addDrillDownIcon","minChar","iconChar","lasts","prepareAnimationWhenHasOld","calculateZ","__tmDepth","__tmStorageName","prepareAnimationWhenNoOld","lastCfg","parentOldX","parentOldY","parentOldBg","zInLevel","zb","getAxisLineShape","rExtent","getRadiusIdx","fixAngleOverlap","firstItem","ticksAngles","minorTickAngles","_axisLine","rId","r0Id","_axisTick","tickAngleItem","_minorTick","tickAngles","_axisLabel","rawCategoryData","commonLabelModel","labelTextAlign","labelTextVerticalAlign","isLabelSilent","makeAxisEventDataBase","targetType","rawLabel","prevAngle","number","format","ecHelper","parseGeoJSON","_List","_Model","_Axis","_env","ecUtil","ariaModel","seriesCnt","ariaLabel","maxDataCnt","maxSeriesCnt","displaySeriesCnt","getTitle","getConfig","seriesLabels","seriesCount","seriesLabel","seriesTpl","getSeriesTypeName","displayCnt","dataLabels","keyValues","userConfig","setAreas","adjustSingleSide","viewLeft","viewTop","farthestX","shiftDown","shiftUp","changeX","isDownList","lastDeltaX","labelAlignTo","deltaY","deltaX","lastY","upList","downList","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","targetTextWidth","isAlignToEdge","realTextWidth","labelDistance","bleedMargin","truncateText","hasLabelRotate","minShowLabelRadian","labelLineLen2","ShadowManager","hasShadow","_shadowDom","_shadowDomId","domChild","blur","stdDx","stdDy","stdDeviation","singleAxisHelper","_axisSplitHelper","SingleAxisView","Animatable","animatable","animateToShallow","objShallow","propertyCount","setAttrByPath","animatingShape","pathSplitted","animateFrom","_whiskerBoxCommon","seriesModelMixin","CandlestickSeries","defaultValueDimensions","color0","borderColor0","animationUpdate","COORD_CONVERTS","INCLUDE_FINDER_MAIN_TYPES","targetInfoList","_targetInfoList","foundCpts","targetInfoBuilders","builder","formatMinMax","includeMainTypes","setOutputRanges","coordRanges","coordConvert","__rangeOffset","diffProcessor","xyMinMax","findTargetInfo","coordSyses","rangeOffset","getScales","getDefaultBrushType","getPanelRect","defaultBrushType","areaPanelId","targetInfoMatchers","xAxisModels","yAxisModels","gridModels","gridModelMap","xAxesHas","yAxesHas","cartesians","panelRectBuilder","geoModels","axisConvert","rangeOrCoordRange","xminymin","xmaxymax","axisNameIndex","axisDiffProcessor","refer","scales","xyMinMaxCurr","xyMinMaxOrigin","sizeCurr","sizeOrigin","decode","json","UTF8Encoding","encodeScale","UTF8Scale","coordinates","encodeOffsets","coordinate","decodePolygon","c2","prevX","prevY","featureObj","setNodePosition","pieLayout","dr","rCenter","unitStartX","unitStartY","unitEndX","unitEndY","lessThanCircle","_visualEncoding","updateController","modelId","$from","getDataWithEncodedVisual","dataWithEncodedVisual","IRRELEVANT_EXCLUDES","targetCoordSysModel","topTarget","colorAll","labelDims","_subPixelOptimize","subPixelOptimizeOutputShape","EFFECT_RIPPLE_NUMBER","updateRipplePath","rippleGroup","effectCfg","rippleEffectColor","ripplePath","effectSymbolProto","stopEffectAnimation","startEffectAnimation","effectOffset","rippleScale","updateEffectAnimation","oldEffectCfg","_effectCfg","DIFFICULT_PROPS","_parseSVG","originRoot","buildGraphic","field","rootMap","originRootHostKey","svgXML","svgWidth","svgHeight","BOOST_SIZE_THRESHOLD","LargeSymbolPath","symbolProxy","softClipShape","symbolProxyShape","canBoost","largeSymbolProto","endIndex","byteOffset","extrudeShadow","_traversalHelper","sep","commonLayout","coorX","coorY","finalCoor","QUERY_REG","_timelineOptions","_mediaList","_mediaDefault","_currentMediaIndices","_optionBackup","_newBaseOption","parseRawOption","rawOption","mediaDefault","timelineOptions","mediaList","media","singleMedia","preProcess","applyMediaQuery","realMap","aspectratio","applicatable","matched","operator","realAttr","real","expect","indicesEquals","indices1","indices2","oldOption","newCptOpt","oldCptOpt","oldOptionBackup","newParsedOption","isRecreate","optionBackup","Draggable","_dragStart","_drag","_dragEnd","draggingTarget","_draggingTarget","dispatchToElement","dropTarget","lastDropTarget","_dropTarget","rootDepth","renderRollupNode","rPerLevel","rStart","rEnd","siblingAngle","isAsc","sortOrder","axisTrigger","collect","realIndex","paramsSet","reals","fakeValue","layoutInput","rParam","pathContain","pathProxyForDraw","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","_fillGradient","_strokeGradient","ctxLineDash","shapeCfg","needsUpdateRect","rectWithStroke","_rectWithStroke","lineScale","dirtyPath","__clipTarget","Sub","defaultShape","thisShape","Cartesian","getAxesByScale","axisX","axisY","xScale","yScale","xAxisExtent","yAxisExtent","xExtent","yExtent","_dimName","_axisIndex","_valueWindow","_percentWindow","_dataExtent","_minMaxSpan","_dataZoomModel","calculateDataExtent","seriesExtent","fixExtentByAxis","isCategoryAxis","setAxisModel","isRestore","percentWindow","useOrigin","setMinMaxSpan","percentSpan","valueSpan","getOtherAxisModel","coordSysIndexName","foundOtherAxisModel","isCartesian","otherAxisModel","hasPropModeValue","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","dataWindow","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","originalLarge","originalProgressive","axesInfo","seriesInvolved","coordSysMap","collectAxesInfo","collectSeriesInfo","globalAxisPointerModel","linksOption","linkGroups","coordSysKey","makeKey","axesInfoInCoordSys","baseTooltipModel","saveTooltipAxisInfo","triggerAxis","cross","tooltipAxes","fromTooltip","axisPointerShow","isHandleTrigger","makeAxisPointerModel","involveSeries","groupIndex","getLinkGroupIndex","linkGroup","mapper","tooltipAxisPointerModel","volatileOption","labelOption","tooltipAxisPointerLabelShow","seriesTooltipTrigger","seriesTooltipShow","seriesDataCount","linkOption","checkPropInLink","linkPropValue","axisPropValue","GRADIENT_LEVELS","Heatmap","_gradientPixels","colorFunc","_getBrush","gradientInRange","_getGradient","gradientOutOfRange","imageData","getImageData","pixels","pixelLen","diffOpacity","gradientOffset","putImageData","brushCanvas","_brushCanvas","gradientPixels","pixelsSingleState","Uint8ClampedArray","TOUCH_CLICK_DELAY","globalEventSupported","localNativeListenerNames","mouseHandlerNames","touchHandlerNames","pointerEventNameMap","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","mouse","globalNativeListenerNames","eventNameFix","isPointerFromTouch","pointerType","setTouchTimer","touching","touchTimer","markTouch","normalizeGlobalEvent","instance","FakeGlobalEvent","isLocalEl","elTmp","isLocal","painterRoot","currentTarget","fakeGlobalEventProto","stopImmediatePropagation","localDOMHandlers","_mayPointerCapture","downPoint","togglePointerCapture","mouseout","_pointerCapturing","zrEventControl","toElement","relatedTarget","zrIsToLocalDOM","touchstart","_lastTouchMoment","processGesture","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","domHandlers","nativeEventName","mountSingleDOMEventListener","mountGlobalDOMEventListeners","nativeEventListener","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","isPointerCapturing","globalHandlerScope","_globalHandlerScope","DOMHandlerScope","HandlerDomProxy","_localHandlerScope","handlerDomProxyProto","setCursor","processedMapType","mapSymbolOffsets","subMapSeries","dimAxisMapper","_axes","_dimList","_dataCoordConvert","input","dimList","SankeySeries","localPosition","rawDataOpt","layoutIterations","makeAction","PROXIMATE_ONE_DAY","Calendar","calendarModel","_rangeInfo","_sw","_sh","getFirstDayOfWeek","_firstDayOfWeek","getDateInfo","day","getDay","formatedDate","getNextNDay","setDate","_lineWidth","_getRangeInfo","_initRangeOption","whNames","cellNumbers","cellSizeSpecified","whGlobal","calendarRect","dayInfo","week","nthWeek","pointToDate","tl","tr","br","bl","nthX","nthY","_getDateByWeeksAndDay","setMonth","reversed","startDateNum","endDateNum","dateNum","fweek","lweek","nthDay","calendarList","calendarSeries","stackInfoMap","stackInfoList","stackInfo","stackResultDimension","stackedDimension","stackedByDimension","isStackedByIndex","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","targetData","byValue","stackedDataRawIndex","stackedOver","legendFilter","SILENT","makeEventPacket","eveType","stopEvent","EmptyProxy","handlerNames","proxy","_hovered","_gestureMgr","setHandlerProxy","isHover","isOutsideBoundary","handlerInstance","isOutside","lastHovered","lastHoveredTarget","hovered","hoveredTarget","eventControl","eventArgs","eventPacket","eachOtherLayer","layer","exclude","hoverCheckResult","gestureMgr","_downEl","_downPoint","_upEl","magicTypeLang","INNER_STACK_KEYWORD","MagicType","getIcons","availableIcons","icons","seriesOptGenreator","isStack","radioTypes","newTitle","generateNewSeriesTypes","newSeriesOpt","radio","currentType","doCreateNode","urn","win","vmlInited","namespaces","zrvml","initVML","styleSheets","createStyleSheet","addRule","AxisPointerView","_updatePathDirty","vec2Min","vec2Max","v2Copy","isPointNull","drawSegment","segLen","allLen","smoothMin","smoothMax","drawMono","drawNonMono","prevIdx","prevP","ctrlLen","nextP","ratioNextSeg","lenPrevSeg","lenNextSeg","getBoundingBox","ptMin","ptMax","stackedOnBBox","LinkedList","linkedListProto","insert","entry","Entry","insertEntry","_list","_maxSize","_lastRemovedEntry","LRUProto","leastUsedEntry","PictorialBarSeries","sunburstLayout","previousZoom","fixX","fixY","cubic","quadratic","swapExtrema","windingCubic","nRoots","y0_","y1_","nExtrema","windingQuadratic","y_","windingArc","containPath","isStroke","_axesLayout","restrict","layoutAxisWithoutExpand","layoutLength","axisCount","axisNameAvailableWidth","axisLabelShow","layoutAxisWithExpand","nameTruncateMaxWidth","axisCollapseWidth","winInnerIndices","axisExpandWindow0Pos","axisExpandWindow","_updateAxesFromSeries","_makeLayoutInfo","axisBase","layoutBase","pixelDimIndex","pAxis","pLayout","_layoutAxes","winSize","layoutExtent","positionTable","rotationTable","axisCoordToPoint","dataDimensions","hasActiveSet","lenj","getActiveState","getSlidedAxisExpandWindow","behavior","pointCoord","triggerArea","useJump","PolarAxisModel","polarId","polarAxisDefaultExtendedOption","treemapVisual","treemapLayout","listComponentHelper","toolboxModel","featureOpts","_features","featureNames","_featureNames","processFeature","titleText","__title","needPutOnTop","topOffset","oldName","isUserFeatureName","createIconPaths","iconName","iconPaths","iconStatus","iconStyleModel","iconStyleEmphasisModel","titles","defaultTextPosition","parseInt10","checkParentAvailable","insertAfter","prevSibling","prepend","SVGPainter","_opts","svgDom","bgRoot","gradientManager","clipPathManager","shadowManager","viewport","_svgDom","_backgroundRoot","_viewport","_visibleList","createMethodNotSupport","viewportRoot","_paintList","_backgroundNode","bgNode","visibleList","listLen","newVisibleList","prevSvgElement","textSvgElement","_getDefs","_getSize","_width","_height","viewportStyle","whIdx","cwh","plt","prb","encodeURIComponent","outerHTML","repeat","createPattern","moveAnimation","propsEqual","lastProp","lastProps","newProps","updateLabelShowHide","labelEl","getHandleTransProps","updateMandatoryProps","_group","_lastGraphicKey","_handle","_lastValue","_lastStatus","_payloadInfo","_axisModel","_axisPointerModel","_moveAnimation","determineAnimation","doUpdateProps","updatePointerEl","updateLabelEl","createPointerEl","createLabelEl","useSnap","pointerEl","handleModel","onmousedown","_onHandleDragMove","_onHandleDragEnd","includeStyles","_moveHandleToValue","_doDispatchAxisPointer","payloadInfo","doClear","buildLabel","xDimIndex","BoxplotView","constDim","updateNormalBoxData","BoxPath","TimelineModel","SliderTimelineModel","checkpointStyle","playIcon","stopIcon","nextIcon","prevIcon","idStart","colorQuery","opacityQuery","restoreLang","Restore","prepareCartesian2d","prepareGeo","prepareSingleAxis","preparePolar","prepareCalendar","ITEM_STYLE_NORMAL_PATH","ITEM_STYLE_EMPHASIS_PATH","LABEL_NORMAL","LABEL_EMPHASIS","GROUP_DIFF_PREFIX","prepareCustoms","getPathData","__customPathData","__customImagePath","__customText","__customGraphicType","updateEl","isRoot","transitionProps","prepareStyleTransition","targetOpacity","styleEmphasis","oldElStyle","makeRenderItem","customSeries","prepareResult","currDataIndexInside","currItemModel","currLabelNormalModel","currLabelEmphasisModel","currVisualColor","userAPI","barLayout","currentSeriesIndices","userParams","dataInsideLength","wrapEncodeDef","currDirty","updateCache","applyExtraBefore","applyExtraAfter","doCreateOrUpdate","simplyRemove","elOptionType","elOptionShape","hasOwnPathData","hasOwn","mergeChildren","$mergeChildren","byName","diffChildrenByName","diffGroupChildren","processAddUpdate","processRemove","childOption","dummyModel","stylePropName","useTransform","setIncrementalAndHoverLayer","elementName","makeCategoryLabels","makeRealNumberLabels","makeCategoryTicks","makeCategoryLabelsActually","labelCategoryInterval","numericLabelInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","tickCategoryInterval","ticksCache","optionTickInterval","labelsResult","autoInterval","fetchAutoCategoryIntervalCalculationParams","axisRotate","unitW","maxW","axisExtend0","axisExtend1","categoryInterval","onlyTick","startTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tVal","DUMMY_COMPONENT_NAME_PREFIX","subOpts","subOptName","newCptOptions","cptOption","idMap","existCpt","idNum","batchA","batchB","mapA","mapB","makeMap","mapToArray","sourceBatch","otherMap","otherDataIndices","isData","innerUniqueIndex","hostObj","parsedKey","queryType","queryParam","_setting","_isBlank","childCount","_doAdd","addBefore","includeChildren","tmpMat","extremity","xDim","yDim","_baseAxisDim","addOrdinal","xAxisType","yAxisType","baseAxisDimIndex","baseAxisType","otherAxisType","newOptionData","newItem","getNearestColorPalette","paletteNum","colorIdx","colorNameMap","scopeFields","defaultColorPalette","layeredColorPalette","colorPalette","doneCallback","elExistsMap","fixPosition","textWidthCache","textWidthCacheCounter","TEXT_CACHE_MAX","STYLE_REG","measureText","getRichTextRect","getPlainTextRect","halfHeight","adjustTextPositionOnRect","dummyStyle","prepareTruncateOptions","truncateSingleLine","maxIterations","cnCharWidth","ascCharWidth","ellipsisWidth","subLength","estimateLength","charCode","getLineHeight","truncOuterHeight","truncOuterWidth","matchedIndex","pushTokens","substring","stlPadding","truncateWidth","truncateHeight","tokenHeight","tokenWidth","tokenWidthNotSpecified","percentWidth","bgImg","paddingW","remianTruncWidth","isEmptyStr","strs","tokensLen","renderPlanner","Chart","renderTaskPlan","renderTaskReset","toggleHighlight","chartProto","elSetState","progressMethodMap","forceFirstProgress","VMLPainter","vmlViewport","_vmlRoot","_vmlViewport","_firstPaint","__alreadyNotVisible","_getWidth","_getHeight","vmlViewportStyle","paddingLeft","paddingRight","paddingTop","paddingBottom","seriesItem","replacableOptionKeys","dataBound","contentColor","getTargetSeriesIndices","optionSeriesIndex","isMinMax","optDim","listDimensions","isCalculationCoord","completeSingle","defa","completeInactive","stateExist","stateAbsent","optExist","optAbsent","completeController","symbolExists","symbolSizeExists","modelHelper","illegalPoint","isIllegalPoint","inputAxesInfo","shouldHide","outputFinder","showValueMap","updaters","showPointer","showTooltip","coordSysContainsPoint","inputAxisInfo","findInputAxisInfo","processOnAxis","linkTriggers","tarAxisInfo","tarKey","srcAxisInfo","srcKey","srcValItem","makeMapperParam","updateModelActually","dispatchTooltipActually","dispatchHighDownActually","newValue","dontSnap","buildPayloadsBySeries","payloadBatch","snapToValue","seriesNestestValue","coordSysItem","coordSysId","coordSysIndex","coordSysMainType","outputAxesInfo","valItem","highDownKey","lastHighlights","newHighlights","toHighlight","toDownplay","setScrollDataIndex","rawGeoJson","rawSpecialAreas","parsers","JSON","groupSeriesByAxis","groupItem","calculateBase","layoutSingleSeries","boxOffsetList","boxWidthList","axisList","boundList","maxDataCount","boxWidthBound","availableWidth","boxGap","boxWidth","halfWidth","median","end1","end2","end4","end5","layEndLine","endCenter","HOVER_LAYER_ZLEVEL","CANVAS_ZLEVEL","EL_AFTER_INCREMENTAL_INC","INCREMENTAL_INC","isLayerValid","__builtin__","isDisplayableCulled","isClipPathChanged","prevClipPaths","doClip","createRoot","domRoot","singleCanvas","_singleCanvas","rootStyle","zlevelList","_zlevelList","layers","_layerConfig","_needsManuallyCompositing","mainLayer","_domRoot","_hoverlayer","_hoverElements","isSingleCanvas","paintAll","_redrawId","_backgroundColor","__hoverMir","hoverElements","hoverLayer","originalEl","_doPaintEl","getHoverLayer","redrawId","_updateLayerStatus","finished","_doPaintList","_compositeManually","eachBuiltinLayer","virtual","layerList","zi","useTimer","now","firstEl","dTime","prevElClipPaths","currentLayer","forcePaint","insertLayer","layersMap","prevLayer","prevDom","eachLayer","getLayers","updatePrevLayer","prevZlevel","incrementalLayerCount","layerConfig","_zlevel","delLayer","_progressiveLayers","clearLayer","imageLayer","renderToCanvas","shadowBlurSize","leftMargin","rightMargin","topMargin","bottomMargin","pathTransform","ImageShape","imgShape","upperCaseFirst","group1","replaceReg","replaceMap","'","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","paramsList","seriesLen","alias","formatTplSimple","pad","isUTC","utc","getTextBoundingRect","blank","opener","autoPlay","rewind","playInterval","_names","_initData","dataArr","idxArr","positionMap","directionMap","stackedByDimInfo","stackedDimInfo","byIndex","stackedCoordDimension","mayStack","stackedDimCoordDim","stackedDimType","stackedDimCoordIndex","stackedDim","targetDim","MONTH_TEXT","EN","CN","WEEK_TEXT","_tlpoints","_blpoints","_firstDayOfMonth","_firstDayPoints","rangeData","_renderDayRect","_renderLines","_renderYearText","_renderMonthText","_renderWeekText","itemRectStyleModel","addPoints","_getLinePointsOfOneWeek","_drawSplitline","_getEdgesPoints","rs","poyline","tmpD","_formatterLabel","_yearTextPositionControl","aligns","xc","yc","posPoints","yearText","_monthTextPositionControl","isCenter","termPoints","firstDayPoints","yyyy","yy","MM","monthText","_weekTextPositionControl","isStart","firstDayOfWeek","weekText","mathAtan2","resizeGeo","leftTop","rightBottom","boxLayoutOption","useCenterAndSize","setGeoCoords","geoList","mapModelGroupBySeries","nameMapList","singleMapSeries","originRegionArr","regionsArr","pp","initialFriction","v12","nLen","repFact","handleSpan","originalDistSign","getSpanSign","extentMinSpan","realExtent","currDistSign","dataSample","treeLayout","diffData","diffResult","idx1","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","diffItem","pointAdded","currentPt","nextPt","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","stackedOnCurrent","stackedOnNext","SingleAxisPointer","getPointDimIndex","ScrollableLegendModel","pageButtonItemGap","pageIcons","pageIconColor","pageIconInactiveColor","pageTextStyle","_bbox","lineAnimationDiff","isPointsSame","points2","getBoundingDiff","min1","max1","getSmooth","getStackedOnPoints","turnPointsIntoStep","stepTurnAt","stepPoints","stepPt","stepPt2","getVisualGradient","stopLen","tinyExtent","minCoord","maxCoord","coordSpan","getIsIgnoreFunc","isAuto","canShowAllSymbolForCategory","categoryDataDim","labelMap","availSize","createLineClipPath","_lineGroup","isCoordSysPolar","prevCoordSys","_coordSys","_polyline","_polygon","isAreaChart","isIgnoreFunc","__temp","clipShapeForSymbol","_clipShapeForSymbol","_step","_newPolygon","isIgnore","_stackedOnPoints","_updateAnimation","_newPolyline","stackedOnSeries","_valueOrigin","__points","updatedDataInfo","diffStatus","ptIdx","contrastColor","axisCommon","CartesianAxisView","loopGeo","newRegion","parallelPreprocessor","CLICK_THRESHOLD","_handlers","_throttledDispatchExpand","_dispatchExpand","checkTrigger","_mouseDownPoint","mouseDownPoint","DEFAULT_OUT_OF_BRUSH_COLOR","BrushModel","brushMode","transformable","inBrush","outOfBrush","generateBrushOption","define","Task","_reset","_plan","_onDirty","_dirty","taskProto","planResult","upTask","_upstream","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","_dueEnd","_outputDueEnd","_progress","_dueIndex","doProgress","outputDueEnd","_settedOutputEnd","iterator","winCount","it","sStep","sCount","modNext","sequentialNext","taskIns","_callingProgress","downstream","_downstream","downTask","normalizeRect","localPoints","specifiedXYIndex","brushWidth","targetModel","localCursorPoint","TEXT_PADDING","ITEM_GAP","ARRAY_LENGTH","makeItemPoints","packEventData","itemNode","selfType","normalStyleModel","layoutParam","totalWidth","renderList","_prepare","_renderContent","lastX","availableSize","getAvailableSize","dataStatistics","statisticType","mapKey","seriesGroups","hostGeoModel","seriesList","symbolCtor","_symbolCtor","symbolDrawProto","normalizeUpdateOpt","SymbolCtor","enableAnimation","PieSeries","_createSelectableList","minShowLabelAngle","hoverOffset","avoidLabelOverlap","alignTo","distanceToLabelLine","HV_NAMES","boxLayout","maxHeight","currentLineMaxSize","nextX","nextY","nextChild","nextChildRect","moveX","moveY","vbox","hbox","containerRect","verticalMargin","horizontalMargin","elPos","targetOption","hResult","vResult","newParams","newValueCount","merged","mergedValueCount","enoughParamNumber","hasProp","boxplotVisual","boxplotLayout","matrixUtil","dumbGroup","_transform","_dumbGroup","hasBuilder","builders","pt1","pt2","arrows","arrowSize","arrowOffset","symbolWidth","symbolHeight","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","gapSignal","isNameLocationCenter","nameRotation","endTextLayout","truncateOpt","truncatedText","__fullText","__truncatedText","axisRotation","rotationDiff","textRotate","onLeft","tickEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","createTicks","tickTransform","tickEndCoord","aniid","tickEl","minorTickLineStyle","minorTicksEls","itemLabelModel","compatStyle","compatLayoutProperties","LAYOUT_PROPERTIES","COMPATITABLE_COMPONENTS","clipOverflow","clockWise","pointerColor","dataRange","componentName","COVER_Z","UNSELECT_THRESHOLD","MIN_RESIZE_LINE_WIDTH","MUTEX_RESOURCE_KEY","DIRECTION_MAP","CURSOR_MAP","ne","nw","se","DEFAULT_BRUSH_OPT","baseUID","_brushType","_brushOption","_panels","_covers","_creatingCover","_creatingPanel","_enableGlobalPan","_uid","pointerHandlers","doEnableBrush","mountHandlers","doDisableBrush","unmountHandlers","createCover","cover","coverRenderers","__brushOption","endCreating","creatingCover","coverRenderer","getCoverRenderer","updateCoverShape","updateCoverAfterCreation","getPanelByPoint","panel","panels","pn","getPanelByCover","clearCovers","covers","originalLength","shouldShowCover","getTrackEnds","createBaseRectCover","doDrift","edgeNames","makeStyle","updateBaseRect","localRange","xa","ya","x2a","y2a","widtha","heighta","updateRectShape","mainEl","globalDir","getGlobalDirection","pointsToRect","clipByPanel","formatRectRange","localDirection","inverseMap","driftRect","toRectRange","fromRectRange","rectRange","localDelta","toLocalDelta","namePart","ind","driftPolygon","localD","localZero","xmin","ymin","xmax","ymax","resetCursor","isOutsideZrArea","currPanel","rawE","mainShapeContain","updateCoverByMouse","eventParams","thisBrushOption","determineBrushType","coverBrushOption","getCreatingRange","panelOpts","eachCover","brushOptionList","tmpIdPrefix","oldCovers","newCovers","oldGetKey","addOrUpdate","newBrushOption","handleDragEnd","getLineRenderer","localTrack","_radiusAxis","_angleAxis","maxAngle","colorAccessPath","colorCallback","borderColorAccessPath","samplers","nearest","indexSampler","sampler","PATH_COLOR","BoxplotSeries","brushLang","Brush","_brushMode","isBrushed","command","styleModel","paddings","confineInContainer","bgColor","axisDimension"],"mappings":"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","file":"js/chunk-3511d47c.7534d520.js","sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar createHashMap = _util.createHashMap;\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\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*/\nvar _default = SeriesModel.extend({\n type: 'series.parallel',\n dependencies: ['parallel'],\n visualColorAccessPath: 'lineStyle.color',\n getInitialData: function (option, ecModel) {\n var source = this.getSource();\n setEncodeAndDimensions(source, this);\n return createListFromArray(source, this);\n },\n\n /**\n * User can get data raw indices on 'axisAreaSelected' event received.\n *\n * @public\n * @param {string} activeState 'active' or 'inactive' or 'normal'\n * @return {Array.} Raw indices\n */\n 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 defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\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 // true | false | number\n animationEasing: 'linear'\n }\n});\n\nfunction setEncodeAndDimensions(source, seriesModel) {\n // The mapping of parallelAxis dimension to data dimension can\n // be specified in parallelAxis.option.dim. For example, if\n // parallelAxis.option.dim is 'dim3', it mapping to the third\n // dimension of data. But `data.encode` has higher priority.\n // Moreover, parallelModel.dimension should not be regarded as data\n // dimensions. Consider dimensions = ['dim4', 'dim2', 'dim6'];\n if (source.encodeDefine) {\n return;\n }\n\n var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n\n if (!parallelModel) {\n return;\n }\n\n var encodeDefine = source.encodeDefine = createHashMap();\n each(parallelModel.dimensions, function (axisDim) {\n var dataDimIndex = convertDimNameToNumber(axisDim);\n encodeDefine.set(axisDim, dataDimIndex);\n });\n}\n\nfunction convertDimNameToNumber(dimName) {\n return +dimName.replace('dim', '');\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapView = require(\"./VisualMapView\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar layout = require(\"../../util/layout\");\n\nvar helper = require(\"./helper\");\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*/\nvar PiecewiseVisualMapView = VisualMapView.extend({\n type: 'visualMap.piecewise',\n\n /**\n * @protected\n * @override\n */\n 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, renderItem, 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 function renderItem(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 textVerticalAlign: 'middle',\n textAlign: itemAlign,\n textFont: textFont,\n textFill: textFill,\n opacity: visualState === 'outOfRange' ? 0.5 : 1\n }\n }));\n }\n\n thisGroup.add(itemGroup);\n }\n },\n\n /**\n * @private\n */\n _enableHoverLink: function (itemGroup, pieceIndex) {\n itemGroup.on('mouseover', zrUtil.bind(onHoverLink, this, 'highlight')).on('mouseout', zrUtil.bind(onHoverLink, this, 'downplay'));\n\n function onHoverLink(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 /**\n * @private\n */\n _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 // horizontal, most case left unless specifying right.\n var align = modelOption.align;\n\n if (!align || align === 'auto') {\n align = 'left';\n }\n\n return align;\n }\n },\n\n /**\n * @private\n */\n _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 textVerticalAlign: 'middle',\n textAlign: showLabel ? itemAlign : 'center',\n text: text,\n textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n }));\n group.add(itemGroup);\n },\n\n /**\n * @private\n * @return {Object} {peiceList, endsText} The order is the same as screen pixel order.\n */\n _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'); // Consider orient and inverse.\n\n var orient = visualMapModel.get('orient');\n var inverse = visualMapModel.get('inverse'); // Order of model pieceList is always [low, ..., high]\n\n if (orient === 'horizontal' ? inverse : !inverse) {\n viewPieceList.reverse();\n } // Origin order of endsText is [high, low]\n else if (endsText) {\n endsText = endsText.slice().reverse();\n }\n\n return {\n viewPieceList: viewPieceList,\n endsText: endsText\n };\n },\n\n /**\n * @private\n */\n _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 /**\n * @private\n */\n _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});\nvar _default = PiecewiseVisualMapView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./axisPointer\");\n\nrequire(\"./tooltip/TooltipModel\");\n\nrequire(\"./tooltip/TooltipView\");\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// FIXME Better way to pack data in graphic element\n\n/**\n * @action\n * @property {string} type\n * @property {number} seriesIndex\n * @property {number} dataIndex\n * @property {number} [x]\n * @property {number} [y]\n */\necharts.registerAction({\n type: 'showTip',\n event: 'showTip',\n update: 'tooltip:manuallyShowTip'\n}, // noop\nfunction () {});\necharts.registerAction({\n type: 'hideTip',\n event: 'hideTip',\n update: 'tooltip:manuallyHideTip'\n}, // noop\nfunction () {});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar createListSimply = require(\"../helper/createListSimply\");\n\nvar _model = require(\"../../util/model\");\n\nvar defaultEmphasis = _model.defaultEmphasis;\n\nvar _sourceHelper = require(\"../../data/helper/sourceHelper\");\n\nvar makeSeriesEncodeForNameBased = _sourceHelper.makeSeriesEncodeForNameBased;\n\nvar LegendVisualProvider = require(\"../../visual/LegendVisualProvider\");\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*/\nvar FunnelSeries = echarts.extendSeriesModel({\n type: 'series.funnel',\n init: function (option) {\n FunnelSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this)); // Extend labelLine emphasis\n\n this._defaultLabelLine(option);\n },\n getInitialData: function (option, ecModel) {\n return createListSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n },\n _defaultLabelLine: function (option) {\n // Extend labelLine emphasis\n defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n },\n // Overwrite\n getDataParams: function (dataIndex) {\n var data = this.getData();\n var params = FunnelSeries.superCall(this, 'getDataParams', dataIndex);\n var valueDim = data.mapDimension('value');\n var sum = data.getSum(valueDim); // Percent is 0 if sum is 0\n\n params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n params.$vars.push('percent');\n return params;\n },\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n legendHoverLink: true,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n // 默认取数据最小最大值\n // min: 0,\n // max: 100,\n minSize: '0%',\n maxSize: '100%',\n sort: 'descending',\n // 'ascending', 'descending'\n orient: 'vertical',\n gap: 0,\n funnelAlign: 'center',\n label: {\n show: true,\n position: 'outer' // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n\n },\n labelLine: {\n show: true,\n length: 20,\n lineStyle: {\n // color: 各异,\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n // color: 各异,\n borderColor: '#fff',\n borderWidth: 1\n },\n emphasis: {\n label: {\n show: true\n }\n }\n }\n});\nvar _default = FunnelSeries;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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*/\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\nfunction _default(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 // do not provide \"out\" and noRoam param,\n // Compatible with this usage:\n // echarts.util.map(item.points, api.coord)\n return coordSys.dataToPoint(data);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar View = require(\"../View\");\n\nvar geoSourceManager = require(\"./geoSourceManager\");\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 * [Geo description]\n * For backward compatibility, the orginal interface:\n * `name, map, geoJson, specialAreas, nameMap` is kept.\n *\n * @param {string|Object} name\n * @param {string} map Map type\n * Specify the positioned areas by left, top, width, height\n * @param {Object.} [nameMap]\n * Specify name alias\n * @param {boolean} [invertLongitute=true]\n */\nfunction Geo(name, map, nameMap, invertLongitute) {\n View.call(this, name);\n /**\n * Map type\n * @type {string}\n */\n\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 /**\n * @readOnly\n */\n\n this.regions = source.regions;\n /**\n * @type {module:zrender/src/core/BoundingRect}\n */\n\n this._rect = source.boundingRect;\n}\n\nGeo.prototype = {\n constructor: Geo,\n type: 'geo',\n\n /**\n * @param {Array.}\n * @readOnly\n */\n dimensions: ['lng', 'lat'],\n\n /**\n * If contain given lng,lat coord\n * @param {Array.}\n * @readOnly\n */\n 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 /**\n * @override\n */\n 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 // Longitute is inverted\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 var scale = rawTransformable.scale;\n scale[1] = -scale[1];\n }\n\n rawTransformable.updateTransform();\n\n this._updateTransform();\n },\n\n /**\n * @param {string} name\n * @return {module:echarts/coord/geo/Region}\n */\n getRegion: function (name) {\n return this._regionsMap.get(name);\n },\n 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 /**\n * Add geoCoord for indexing by name\n * @param {string} name\n * @param {Array.} geoCoord\n */\n addGeoCoord: function (name, geoCoord) {\n this._nameCoordMap.set(name, geoCoord);\n },\n\n /**\n * Get geoCoord by name\n * @param {string} name\n * @return {Array.}\n */\n getGeoCoord: function (name) {\n return this._nameCoordMap.get(name);\n },\n\n /**\n * @override\n */\n getBoundingRect: function () {\n return this._rect;\n },\n\n /**\n * @param {string|Array.} data\n * @param {boolean} noRoam\n * @param {Array.} [out]\n * @return {Array.}\n */\n dataToPoint: function (data, noRoam, out) {\n if (typeof data === 'string') {\n // Map area name to geoCoord\n data = this.getGeoCoord(data);\n }\n\n if (data) {\n return View.prototype.dataToPoint.call(this, data, noRoam, out);\n }\n },\n\n /**\n * @override\n */\n convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),\n\n /**\n * @override\n */\n convertFromPixel: zrUtil.curry(doConvert, 'pointToData')\n};\nzrUtil.mixin(Geo, View);\n\nfunction doConvert(methodName, ecModel, finder, value) {\n var geoModel = finder.geoModel;\n var seriesModel = finder.seriesModel;\n var coordSys = geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem // For map.\n || (seriesModel.getReferringComponents('geo')[0] || {}).coordinateSystem : null;\n return coordSys === this ? coordSys[methodName](value) : null;\n}\n\nvar _default = Geo;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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 * Can only be called after coordinate system creation stage.\n * (Can be called before coordinate system update stage).\n *\n * @param {Object} opt {labelInside}\n * @return {Object} {\n * position, rotation, labelDirection, labelOffset,\n * tickDirection, labelRotate, z2\n * }\n */\nfunction 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 } // Axis position\n\n\n layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]]; // Axis rotation\n\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1); // Tick and label direction, x y is axisDim\n\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 } // Special label rotation\n\n\n var labelRotate = axisModel.get('axisLabel.rotate');\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate; // Over splitLine and splitArea\n\n layout.z2 = 1;\n return layout;\n}\n\nexports.layout = layout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../util/graphic\");\n\nrequire(\"../coord/cartesian/Grid\");\n\nrequire(\"./axis\");\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// Grid view\necharts.extendComponentView({\n type: 'grid',\n render: function (gridModel, ecModel) {\n this.group.removeAll();\n\n if (gridModel.get('show')) {\n this.group.add(new graphic.Rect({\n shape: gridModel.coordinateSystem.getRect(),\n style: zrUtil.defaults({\n fill: gridModel.get('backgroundColor')\n }, gridModel.getItemStyle()),\n silent: true,\n z2: -1\n }));\n }\n }\n});\necharts.registerPreprocessor(function (option) {\n // Only create grid when need\n if (option.xAxis && option.yAxis && !option.grid) {\n option.grid = {};\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* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * For geo and graph.\n *\n * @param {Object} controllerHost\n * @param {module:zrender/Element} controllerHost.target\n */\nfunction updateViewOnPan(controllerHost, dx, dy) {\n var target = controllerHost.target;\n var pos = target.position;\n pos[0] += dx;\n pos[1] += dy;\n target.dirty();\n}\n/**\n * For geo and graph.\n *\n * @param {Object} controllerHost\n * @param {module:zrender/Element} controllerHost.target\n * @param {number} controllerHost.zoom\n * @param {number} controllerHost.zoomLimit like: {min: 1, max: 2}\n */\n\n\nfunction updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\n var target = controllerHost.target;\n var zoomLimit = controllerHost.zoomLimit;\n var pos = target.position;\n var scale = target.scale;\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; // Keep the mouse center when scaling\n\n pos[0] -= (zoomX - pos[0]) * (zoomScale - 1);\n pos[1] -= (zoomY - pos[1]) * (zoomScale - 1);\n scale[0] *= zoomScale;\n scale[1] *= zoomScale;\n target.dirty();\n}\n\nexports.updateViewOnPan = updateViewOnPan;\nexports.updateViewOnZoom = updateViewOnZoom;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar ComponentModel = require(\"../model/Component\");\n\nvar ComponentView = require(\"../view/Component\");\n\nvar _sourceHelper = require(\"../data/helper/sourceHelper\");\n\nvar detectSourceFormat = _sourceHelper.detectSourceFormat;\n\nvar _sourceType = require(\"../data/helper/sourceType\");\n\nvar SERIES_LAYOUT_BY_COLUMN = _sourceType.SERIES_LAYOUT_BY_COLUMN;\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 * This module is imported by echarts directly.\n *\n * Notice:\n * Always keep this file exists for backward compatibility.\n * Because before 4.1.0, dataset is an optional component,\n * some users may import this module manually.\n */\nComponentModel.extend({\n type: 'dataset',\n\n /**\n * @protected\n */\n defaultOption: {\n // 'row', 'column'\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n // null/'auto': auto detect header, see \"module:echarts/data/helper/sourceHelper\"\n sourceHeader: null,\n dimensions: null,\n source: null\n },\n optionUpdated: function () {\n detectSourceFormat(this);\n }\n});\nComponentView.extend({\n type: 'dataset'\n});","// https://github.com/mziccard/node-timsort\nvar DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\n\nfunction minRunLength(n) {\n var r = 0;\n\n while (n >= DEFAULT_MIN_MERGE) {\n r |= n & 1;\n n >>= 1;\n }\n\n return n + r;\n}\n\nfunction makeAscendingRun(array, lo, hi, compare) {\n var runHi = lo + 1;\n\n if (runHi === hi) {\n return 1;\n }\n\n if (compare(array[runHi++], array[lo]) < 0) {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n runHi++;\n }\n\n reverseRun(array, lo, runHi);\n } else {\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n runHi++;\n }\n }\n\n return runHi - lo;\n}\n\nfunction reverseRun(array, lo, hi) {\n hi--;\n\n while (lo < hi) {\n var t = array[lo];\n array[lo++] = array[hi];\n array[hi--] = t;\n }\n}\n\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n if (start === lo) {\n start++;\n }\n\n for (; start < hi; start++) {\n var pivot = array[start];\n var left = lo;\n var right = start;\n var mid;\n\n while (left < right) {\n mid = left + right >>> 1;\n\n if (compare(pivot, array[mid]) < 0) {\n right = mid;\n } else {\n left = mid + 1;\n }\n }\n\n var n = start - left;\n\n switch (n) {\n case 3:\n array[left + 3] = array[left + 2];\n\n case 2:\n array[left + 2] = array[left + 1];\n\n case 1:\n array[left + 1] = array[left];\n break;\n\n default:\n while (n > 0) {\n array[left + n] = array[left + n - 1];\n n--;\n }\n\n }\n\n array[left] = pivot;\n }\n}\n\nfunction gallopLeft(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n\n if (compare(value, array[start + hint]) > 0) {\n maxOffset = length - hint;\n\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n lastOffset += hint;\n offset += hint;\n } else {\n maxOffset = hint + 1;\n\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n }\n\n lastOffset++;\n\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n\n if (compare(value, array[start + m]) > 0) {\n lastOffset = m + 1;\n } else {\n offset = m;\n }\n }\n\n return offset;\n}\n\nfunction gallopRight(value, array, start, length, hint, compare) {\n var lastOffset = 0;\n var maxOffset = 0;\n var offset = 1;\n\n if (compare(value, array[start + hint]) < 0) {\n maxOffset = hint + 1;\n\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n var tmp = lastOffset;\n lastOffset = hint - offset;\n offset = hint - tmp;\n } else {\n maxOffset = length - hint;\n\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n lastOffset = offset;\n offset = (offset << 1) + 1;\n\n if (offset <= 0) {\n offset = maxOffset;\n }\n }\n\n if (offset > maxOffset) {\n offset = maxOffset;\n }\n\n lastOffset += hint;\n offset += hint;\n }\n\n lastOffset++;\n\n while (lastOffset < offset) {\n var m = lastOffset + (offset - lastOffset >>> 1);\n\n if (compare(value, array[start + m]) < 0) {\n offset = m;\n } else {\n lastOffset = m + 1;\n }\n }\n\n return offset;\n}\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\n if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n tmpStorageLength = length >>> 1;\n }\n\n var tmp = [];\n stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n runStart = [];\n runLength = [];\n\n function pushRun(_runStart, _runLength) {\n runStart[stackSize] = _runStart;\n runLength[stackSize] = _runLength;\n stackSize += 1;\n }\n\n function mergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n\n if (n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1] || n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1]) {\n if (runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n } else if (runLength[n] > runLength[n + 1]) {\n break;\n }\n\n mergeAt(n);\n }\n }\n\n function forceMergeRuns() {\n while (stackSize > 1) {\n var n = stackSize - 2;\n\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n n--;\n }\n\n mergeAt(n);\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\n if (i === stackSize - 3) {\n runStart[i + 1] = runStart[i + 2];\n runLength[i + 1] = runLength[i + 2];\n }\n\n stackSize--;\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n start1 += k;\n length1 -= k;\n\n if (length1 === 0) {\n return;\n }\n\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n\n if (length2 === 0) {\n return;\n }\n\n if (length1 <= length2) {\n mergeLow(start1, length1, start2, length2);\n } else {\n mergeHigh(start1, length1, start2, length2);\n }\n }\n\n function mergeLow(start1, length1, start2, length2) {\n var i = 0;\n\n for (i = 0; i < length1; i++) {\n tmp[i] = array[start1 + i];\n }\n\n var cursor1 = 0;\n var cursor2 = start2;\n var dest = start1;\n array[dest++] = array[cursor2++];\n\n if (--length2 === 0) {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n\n return;\n }\n\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n\n array[dest + length2] = tmp[cursor1];\n return;\n }\n\n var _minGallop = minGallop;\n var count1;\n var count2;\n var exit;\n\n while (1) {\n count1 = 0;\n count2 = 0;\n exit = false;\n\n do {\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\n array[dest++] = array[cursor2++];\n count2++;\n count1 = 0;\n\n if (--length2 === 0) {\n exit = true;\n break;\n }\n } else {\n array[dest++] = tmp[cursor1++];\n count1++;\n count2 = 0;\n\n if (--length1 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n\n if (exit) {\n break;\n }\n\n do {\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n\n if (count1 !== 0) {\n for (i = 0; i < count1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n\n dest += count1;\n cursor1 += count1;\n length1 -= count1;\n\n if (length1 <= 1) {\n exit = true;\n break;\n }\n }\n\n array[dest++] = array[cursor2++];\n\n if (--length2 === 0) {\n exit = true;\n break;\n }\n\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n\n if (count2 !== 0) {\n for (i = 0; i < count2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n\n dest += count2;\n cursor2 += count2;\n length2 -= count2;\n\n if (length2 === 0) {\n exit = true;\n break;\n }\n }\n\n array[dest++] = tmp[cursor1++];\n\n if (--length1 === 1) {\n exit = true;\n break;\n }\n\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n\n if (exit) {\n break;\n }\n\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n\n _minGallop += 2;\n }\n\n minGallop = _minGallop;\n minGallop < 1 && (minGallop = 1);\n\n if (length1 === 1) {\n for (i = 0; i < length2; i++) {\n array[dest + i] = array[cursor2 + i];\n }\n\n array[dest + length2] = tmp[cursor1];\n } else if (length1 === 0) {\n throw new Error(); // throw new Error('mergeLow preconditions were not respected');\n } else {\n for (i = 0; i < length1; i++) {\n array[dest + i] = tmp[cursor1 + i];\n }\n }\n }\n\n function mergeHigh(start1, length1, start2, length2) {\n var i = 0;\n\n for (i = 0; i < length2; i++) {\n tmp[i] = array[start2 + i];\n }\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\n if (--length1 === 0) {\n customCursor = dest - (length2 - 1);\n\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n\n return;\n }\n\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n\n array[dest] = tmp[cursor2];\n return;\n }\n\n var _minGallop = minGallop;\n\n while (true) {\n var count1 = 0;\n var count2 = 0;\n var exit = false;\n\n do {\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\n array[dest--] = array[cursor1--];\n count1++;\n count2 = 0;\n\n if (--length1 === 0) {\n exit = true;\n break;\n }\n } else {\n array[dest--] = tmp[cursor2--];\n count2++;\n count1 = 0;\n\n if (--length2 === 1) {\n exit = true;\n break;\n }\n }\n } while ((count1 | count2) < _minGallop);\n\n if (exit) {\n break;\n }\n\n do {\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n\n if (count1 !== 0) {\n dest -= count1;\n cursor1 -= count1;\n length1 -= count1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n\n for (i = count1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n\n if (length1 === 0) {\n exit = true;\n break;\n }\n }\n\n array[dest--] = tmp[cursor2--];\n\n if (--length2 === 1) {\n exit = true;\n break;\n }\n\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n\n if (count2 !== 0) {\n dest -= count2;\n cursor2 -= count2;\n length2 -= count2;\n customDest = dest + 1;\n customCursor = cursor2 + 1;\n\n for (i = 0; i < count2; i++) {\n array[customDest + i] = tmp[customCursor + i];\n }\n\n if (length2 <= 1) {\n exit = true;\n break;\n }\n }\n\n array[dest--] = array[cursor1--];\n\n if (--length1 === 0) {\n exit = true;\n break;\n }\n\n _minGallop--;\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n\n if (exit) {\n break;\n }\n\n if (_minGallop < 0) {\n _minGallop = 0;\n }\n\n _minGallop += 2;\n }\n\n minGallop = _minGallop;\n\n if (minGallop < 1) {\n minGallop = 1;\n }\n\n if (length2 === 1) {\n dest -= length1;\n cursor1 -= length1;\n customDest = dest + 1;\n customCursor = cursor1 + 1;\n\n for (i = length1 - 1; i >= 0; i--) {\n array[customDest + i] = array[customCursor + i];\n }\n\n array[dest] = tmp[cursor2];\n } else if (length2 === 0) {\n throw new Error(); // throw new Error('mergeHigh preconditions were not respected');\n } else {\n customCursor = dest - (length2 - 1);\n\n for (i = 0; i < length2; i++) {\n array[customCursor + i] = tmp[i];\n }\n }\n }\n\n this.mergeRuns = mergeRuns;\n this.forceMergeRuns = forceMergeRuns;\n this.pushRun = pushRun;\n}\n\nfunction sort(array, compare, lo, hi) {\n if (!lo) {\n lo = 0;\n }\n\n if (!hi) {\n hi = array.length;\n }\n\n var remaining = hi - lo;\n\n if (remaining < 2) {\n return;\n }\n\n var runLength = 0;\n\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\n var ts = new TimSort(array, compare);\n var minRun = minRunLength(remaining);\n\n do {\n runLength = makeAscendingRun(array, lo, hi, compare);\n\n if (runLength < minRun) {\n var force = remaining;\n\n if (force > minRun) {\n force = minRun;\n }\n\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n runLength = force;\n }\n\n ts.pushRun(lo, runLength);\n ts.mergeRuns();\n remaining -= runLength;\n lo += runLength;\n } while (remaining !== 0);\n\n ts.forceMergeRuns();\n}\n\nmodule.exports = sort;","var windingLine = require(\"./windingLine\");\n\nvar EPSILON = 1e-8;\n\nfunction isAroundEqual(a, b) {\n return Math.abs(a - b) < EPSILON;\n}\n\nfunction contain(points, x, y) {\n var w = 0;\n var p = points[0];\n\n if (!p) {\n return false;\n }\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 } // Close polygon\n\n\n var p0 = points[0];\n\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\n return w !== 0;\n}\n\nexports.contain = contain;","var Clip = require(\"./Clip\");\n\nvar color = require(\"../tool/color\");\n\nvar _util = require(\"../core/util\");\n\nvar isArrayLike = _util.isArrayLike;\n\n/**\n * @module echarts/animation/Animator\n */\nvar arraySlice = Array.prototype.slice;\n\nfunction defaultGetter(target, key) {\n return target[key];\n}\n\nfunction defaultSetter(target, key, value) {\n target[key] = value;\n}\n/**\n * @param {number} p0\n * @param {number} p1\n * @param {number} percent\n * @return {number}\n */\n\n\nfunction interpolateNumber(p0, p1, percent) {\n return (p1 - p0) * percent + p0;\n}\n/**\n * @param {string} p0\n * @param {string} p1\n * @param {number} percent\n * @return {string}\n */\n\n\nfunction interpolateString(p0, p1, percent) {\n return percent > 0.5 ? p1 : p0;\n}\n/**\n * @param {Array} p0\n * @param {Array} p1\n * @param {number} percent\n * @param {Array} out\n * @param {number} arrDim\n */\n\n\nfunction interpolateArray(p0, p1, percent, out, arrDim) {\n var len = p0.length;\n\n if (arrDim === 1) {\n for (var i = 0; i < len; i++) {\n out[i] = interpolateNumber(p0[i], p1[i], percent);\n }\n } else {\n var len2 = len && p0[0].length;\n\n for (var i = 0; i < len; i++) {\n for (var j = 0; j < len2; j++) {\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n }\n }\n }\n} // arr0 is source array, arr1 is target array.\n// Do some preprocess to avoid error happened when interpolating from arr0 to arr1\n\n\nfunction fillArr(arr0, arr1, arrDim) {\n var arr0Len = arr0.length;\n var arr1Len = arr1.length;\n\n if (arr0Len !== arr1Len) {\n // FIXME Not work for TypedArray\n var isPreviousLarger = arr0Len > arr1Len;\n\n if (isPreviousLarger) {\n // Cut the previous\n arr0.length = arr1Len;\n } else {\n // Fill the previous\n for (var i = arr0Len; i < arr1Len; i++) {\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n }\n }\n } // Handling NaN value\n\n\n var len2 = arr0[0] && arr0[0].length;\n\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 } 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}\n/**\n * @param {Array} arr0\n * @param {Array} arr1\n * @param {number} arrDim\n * @return {boolean}\n */\n\n\nfunction isArraySame(arr0, arr1, arrDim) {\n if (arr0 === arr1) {\n return true;\n }\n\n var len = arr0.length;\n\n if (len !== arr1.length) {\n return false;\n }\n\n if (arrDim === 1) {\n for (var i = 0; i < len; i++) {\n if (arr0[i] !== arr1[i]) {\n return false;\n }\n }\n } else {\n var len2 = arr0[0].length;\n\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 }\n\n return true;\n}\n/**\n * Catmull Rom interpolate array\n * @param {Array} p0\n * @param {Array} p1\n * @param {Array} p2\n * @param {Array} p3\n * @param {number} t\n * @param {number} t2\n * @param {number} t3\n * @param {Array} out\n * @param {number} arrDim\n */\n\n\nfunction catmullRomInterpolateArray(p0, p1, p2, p3, t, t2, t3, out, arrDim) {\n var len = p0.length;\n\n if (arrDim === 1) {\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 } else {\n var len2 = p0[0].length;\n\n for (var i = 0; i < len; i++) {\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 }\n}\n/**\n * Catmull Rom interpolate number\n * @param {number} p0\n * @param {number} p1\n * @param {number} p2\n * @param {number} p3\n * @param {number} t\n * @param {number} t2\n * @param {number} t3\n * @return {number}\n */\n\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 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1;\n}\n\nfunction cloneValue(value) {\n if (isArrayLike(value)) {\n var len = value.length;\n\n if (isArrayLike(value[0])) {\n var ret = [];\n\n for (var i = 0; i < len; i++) {\n ret.push(arraySlice.call(value[i]));\n }\n\n return ret;\n }\n\n return arraySlice.call(value);\n }\n\n return value;\n}\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}\n\nfunction getArrayDim(keyframes) {\n var lastValue = keyframes[keyframes.length - 1].value;\n return isArrayLike(lastValue && lastValue[0]) ? 2 : 1;\n}\n\nfunction createTrackClip(animator, easing, oneTrackDone, keyframes, propName, forceAnimate) {\n var getter = animator._getter;\n var setter = animator._setter;\n var useSpline = easing === 'spline';\n var trackLen = keyframes.length;\n\n if (!trackLen) {\n return;\n } // Guess data type\n\n\n var firstVal = keyframes[0].value;\n var isValueArray = isArrayLike(firstVal);\n var isValueColor = false;\n var isValueString = false; // For vertices morphing\n\n var arrDim = isValueArray ? getArrayDim(keyframes) : 0;\n var trackMaxTime; // Sort keyframe as ascending\n\n keyframes.sort(function (a, b) {\n return a.time - b.time;\n });\n trackMaxTime = keyframes[trackLen - 1].time; // Percents of each keyframe\n\n var kfPercents = []; // Value of each keyframe\n\n var kfValues = [];\n var prevValue = keyframes[0].value;\n var isAllValueEqual = true;\n\n for (var i = 0; i < trackLen; i++) {\n kfPercents.push(keyframes[i].time / trackMaxTime); // Assume value is a color when it is a string\n\n var value = keyframes[i].value; // Check if value is equal, deep check if value is array\n\n if (!(isValueArray && isArraySame(value, prevValue, arrDim) || !isValueArray && value === prevValue)) {\n isAllValueEqual = false;\n }\n\n prevValue = value; // Try converting a string to a color array\n\n if (typeof value === 'string') {\n var colorArray = color.parse(value);\n\n if (colorArray) {\n value = colorArray;\n isValueColor = true;\n } else {\n isValueString = true;\n }\n }\n\n kfValues.push(value);\n }\n\n if (!forceAnimate && isAllValueEqual) {\n return;\n }\n\n var lastValue = kfValues[trackLen - 1]; // Polyfill array and NaN value\n\n for (var i = 0; i < trackLen - 1; i++) {\n if (isValueArray) {\n fillArr(kfValues[i], lastValue, arrDim);\n } else {\n if (isNaN(kfValues[i]) && !isNaN(lastValue) && !isValueString && !isValueColor) {\n kfValues[i] = lastValue;\n }\n }\n }\n\n isValueArray && fillArr(getter(animator._target, propName), lastValue, arrDim); // Cache the key of last frame to speed up when\n // animation playback is sequency\n\n var lastFrame = 0;\n var lastFramePercent = 0;\n var start;\n var w;\n var p0;\n var p1;\n var p2;\n var p3;\n\n if (isValueColor) {\n var rgba = [0, 0, 0, 0];\n }\n\n var onframe = function (target, percent) {\n // Find the range keyframes\n // kf1-----kf2---------current--------kf3\n // find kf2 and kf3 and do interpolation\n var frame; // In the easing function like elasticOut, percent may less than 0\n\n if (percent < 0) {\n frame = 0;\n } else if (percent < lastFramePercent) {\n // Start from next key\n // PENDING start from lastFrame ?\n start = Math.min(lastFrame + 1, trackLen - 1);\n\n for (frame = start; frame >= 0; frame--) {\n if (kfPercents[frame] <= percent) {\n break;\n }\n } // PENDING really need to do this ?\n\n\n frame = Math.min(frame, trackLen - 2);\n } else {\n for (frame = lastFrame; frame < trackLen; frame++) {\n if (kfPercents[frame] > percent) {\n break;\n }\n }\n\n frame = Math.min(frame - 1, trackLen - 2);\n }\n\n lastFrame = frame;\n lastFramePercent = percent;\n var range = kfPercents[frame + 1] - kfPercents[frame];\n\n if (range === 0) {\n return;\n } else {\n w = (percent - kfPercents[frame]) / range;\n }\n\n if (useSpline) {\n p1 = kfValues[frame];\n p0 = kfValues[frame === 0 ? frame : frame - 1];\n p2 = kfValues[frame > trackLen - 2 ? trackLen - 1 : frame + 1];\n p3 = kfValues[frame > trackLen - 3 ? trackLen - 1 : frame + 2];\n\n if (isValueArray) {\n catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, getter(target, propName), arrDim);\n } else {\n var value;\n\n if (isValueColor) {\n value = catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, rgba, 1);\n value = rgba2String(rgba);\n } else if (isValueString) {\n // String is step(0.5)\n return interpolateString(p1, p2, w);\n } else {\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n }\n\n setter(target, propName, value);\n }\n } else {\n if (isValueArray) {\n interpolateArray(kfValues[frame], kfValues[frame + 1], w, getter(target, propName), arrDim);\n } else {\n var value;\n\n if (isValueColor) {\n interpolateArray(kfValues[frame], kfValues[frame + 1], w, rgba, 1);\n value = rgba2String(rgba);\n } else if (isValueString) {\n // String is step(0.5)\n return interpolateString(kfValues[frame], kfValues[frame + 1], w);\n } else {\n value = interpolateNumber(kfValues[frame], kfValues[frame + 1], w);\n }\n\n setter(target, propName, value);\n }\n }\n };\n\n var clip = new Clip({\n target: animator._target,\n life: trackMaxTime,\n loop: animator._loop,\n delay: animator._delay,\n onframe: onframe,\n ondestroy: oneTrackDone\n });\n\n if (easing && easing !== 'spline') {\n clip.easing = easing;\n }\n\n return clip;\n}\n/**\n * @alias module:zrender/animation/Animator\n * @constructor\n * @param {Object} target\n * @param {boolean} loop\n * @param {Function} getter\n * @param {Function} setter\n */\n\n\nvar Animator = function (target, loop, getter, setter) {\n this._tracks = {};\n this._target = target;\n this._loop = loop || false;\n this._getter = getter || defaultGetter;\n this._setter = setter || defaultSetter;\n this._clipCount = 0;\n this._delay = 0;\n this._doneList = [];\n this._onframeList = [];\n this._clipList = [];\n};\n\nAnimator.prototype = {\n /**\n * Set Animation keyframe\n * @param {number} time 关键帧时间,单位是ms\n * @param {Object} props 关键帧的属性值,key-value表示\n * @return {module:zrender/animation/Animator}\n */\n when: function (time\n /* ms */\n , props) {\n var tracks = this._tracks;\n\n for (var propName in props) {\n if (!props.hasOwnProperty(propName)) {\n continue;\n }\n\n if (!tracks[propName]) {\n tracks[propName] = []; // Invalid value\n\n var value = this._getter(this._target, propName);\n\n if (value == null) {\n // zrLog('Invalid property ' + propName);\n continue;\n } // If time is 0\n // Then props is given initialize value\n // Else\n // Initialize value from current prop value\n\n\n if (time !== 0) {\n tracks[propName].push({\n time: 0,\n value: cloneValue(value)\n });\n }\n }\n\n tracks[propName].push({\n time: time,\n value: props[propName]\n });\n }\n\n return this;\n },\n\n /**\n * 添加动画每一帧的回调函数\n * @param {Function} callback\n * @return {module:zrender/animation/Animator}\n */\n during: function (callback) {\n this._onframeList.push(callback);\n\n return this;\n },\n pause: function () {\n for (var i = 0; i < this._clipList.length; i++) {\n this._clipList[i].pause();\n }\n\n this._paused = true;\n },\n resume: function () {\n for (var i = 0; i < this._clipList.length; i++) {\n this._clipList[i].resume();\n }\n\n this._paused = false;\n },\n isPaused: function () {\n return !!this._paused;\n },\n _doneCallback: function () {\n // Clear all tracks\n this._tracks = {}; // Clear all clips\n\n this._clipList.length = 0;\n var doneList = this._doneList;\n var len = doneList.length;\n\n for (var i = 0; i < len; i++) {\n doneList[i].call(this);\n }\n },\n\n /**\n * Start the animation\n * @param {string|Function} [easing]\n * 动画缓动函数,详见{@link module:zrender/animation/easing}\n * @param {boolean} forceAnimate\n * @return {module:zrender/animation/Animator}\n */\n start: function (easing, forceAnimate) {\n var self = this;\n var clipCount = 0;\n\n var oneTrackDone = function () {\n clipCount--;\n\n if (!clipCount) {\n self._doneCallback();\n }\n };\n\n var lastClip;\n\n for (var propName in this._tracks) {\n if (!this._tracks.hasOwnProperty(propName)) {\n continue;\n }\n\n var clip = createTrackClip(this, easing, oneTrackDone, this._tracks[propName], propName, forceAnimate);\n\n if (clip) {\n this._clipList.push(clip);\n\n clipCount++; // If start after added to animation\n\n if (this.animation) {\n this.animation.addClip(clip);\n }\n\n lastClip = clip;\n }\n } // Add during callback on the last clip\n\n\n if (lastClip) {\n var oldOnFrame = lastClip.onframe;\n\n lastClip.onframe = function (target, percent) {\n oldOnFrame(target, percent);\n\n for (var i = 0; i < self._onframeList.length; i++) {\n self._onframeList[i](target, percent);\n }\n };\n } // This optimization will help the case that in the upper application\n // the view may be refreshed frequently, where animation will be\n // called repeatly but nothing changed.\n\n\n if (!clipCount) {\n this._doneCallback();\n }\n\n return this;\n },\n\n /**\n * Stop animation\n * @param {boolean} forwardToLast If move to last frame before stop\n */\n stop: function (forwardToLast) {\n var clipList = this._clipList;\n var animation = this.animation;\n\n for (var i = 0; i < clipList.length; i++) {\n var clip = clipList[i];\n\n if (forwardToLast) {\n // Move to last frame before stop\n clip.onframe(this._target, 1);\n }\n\n animation && animation.removeClip(clip);\n }\n\n clipList.length = 0;\n },\n\n /**\n * Set when animation delay starts\n * @param {number} time 单位ms\n * @return {module:zrender/animation/Animator}\n */\n delay: function (time) {\n this._delay = time;\n return this;\n },\n\n /**\n * Add callback for animation end\n * @param {Function} cb\n * @return {module:zrender/animation/Animator}\n */\n done: function (cb) {\n if (cb) {\n this._doneList.push(cb);\n }\n\n return this;\n },\n\n /**\n * @return {Array.}\n */\n getClips: function () {\n return this._clipList;\n }\n};\nvar _default = Animator;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar linkList = require(\"./helper/linkList\");\n\nvar List = require(\"./List\");\n\nvar createDimensions = require(\"./helper/createDimensions\");\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 * Tree data structure\n *\n * @module echarts/data/Tree\n */\n\n/**\n * @constructor module:echarts/data/Tree~TreeNode\n * @param {string} name\n * @param {module:echarts/data/Tree} hostTree\n */\nvar TreeNode = function (name, hostTree) {\n /**\n * @type {string}\n */\n this.name = name || '';\n /**\n * Depth of node\n *\n * @type {number}\n * @readOnly\n */\n\n this.depth = 0;\n /**\n * Height of the subtree rooted at this node.\n * @type {number}\n * @readOnly\n */\n\n this.height = 0;\n /**\n * @type {module:echarts/data/Tree~TreeNode}\n * @readOnly\n */\n\n this.parentNode = null;\n /**\n * Reference to list item.\n * Do not persistent dataIndex outside,\n * besause it may be changed by list.\n * If dataIndex -1,\n * this node is logical deleted (filtered) in list.\n *\n * @type {Object}\n * @readOnly\n */\n\n this.dataIndex = -1;\n /**\n * @type {Array.}\n * @readOnly\n */\n\n this.children = [];\n /**\n * @type {Array.}\n * @pubilc\n */\n\n this.viewChildren = [];\n /**\n * @type {moduel:echarts/data/Tree}\n * @readOnly\n */\n\n this.hostTree = hostTree;\n};\n\nTreeNode.prototype = {\n constructor: TreeNode,\n\n /**\n * The node is removed.\n * @return {boolean} is removed.\n */\n isRemoved: function () {\n return this.dataIndex < 0;\n },\n\n /**\n * Travel this subtree (include this node).\n * Usage:\n * node.eachNode(function () { ... }); // preorder\n * node.eachNode('preorder', function () { ... }); // preorder\n * node.eachNode('postorder', function () { ... }); // postorder\n * node.eachNode(\n * {order: 'postorder', attr: 'viewChildren'},\n * function () { ... }\n * ); // postorder\n *\n * @param {(Object|string)} options If string, means order.\n * @param {string=} options.order 'preorder' or 'postorder'\n * @param {string=} options.attr 'children' or 'viewChildren'\n * @param {Function} cb If in preorder and return false,\n * its subtree will not be visited.\n * @param {Object} [context]\n */\n 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 /**\n * Update depth and height of this subtree.\n *\n * @param {number} depth\n */\n 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 /**\n * @param {string} id\n * @return {module:echarts/data/Tree~TreeNode}\n */\n 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 /**\n * @param {module:echarts/data/Tree~TreeNode} node\n * @return {boolean}\n */\n 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 /**\n * @param {boolean} includeSelf Default false.\n * @return {Array.} order: [root, child, grandchild, ...]\n */\n 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 /**\n * @param {string|Array=} [dimension='value'] Default 'value'. can be 0, 1, 2, 3\n * @return {number} Value.\n */\n getValue: function (dimension) {\n var data = this.hostTree.data;\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n },\n\n /**\n * @param {Object} layout\n * @param {boolean=} [merge=false]\n */\n setLayout: function (layout, merge) {\n this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\n },\n\n /**\n * @return {Object} layout\n */\n getLayout: function () {\n return this.hostTree.data.getItemLayout(this.dataIndex);\n },\n\n /**\n * @param {string} [path]\n * @return {module:echarts/model/Model}\n */\n 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 /**\n * @example\n * setItemVisual('color', color);\n * setItemVisual({\n * 'color': color\n * });\n */\n setVisual: function (key, value) {\n this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\n },\n\n /**\n * Get item visual\n */\n getVisual: function (key, ignoreParent) {\n return this.hostTree.data.getItemVisual(this.dataIndex, key, ignoreParent);\n },\n\n /**\n * @public\n * @return {number}\n */\n getRawIndex: function () {\n return this.hostTree.data.getRawIndex(this.dataIndex);\n },\n\n /**\n * @public\n * @return {string}\n */\n getId: function () {\n return this.hostTree.data.getId(this.dataIndex);\n },\n\n /**\n * if this is an ancestor of another node\n *\n * @public\n * @param {TreeNode} node another node\n * @return {boolean} if is ancestor\n */\n 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 /**\n * if this is an descendant of another node\n *\n * @public\n * @param {TreeNode} node another node\n * @return {boolean} if is descendant\n */\n isDescendantOf: function (node) {\n return node !== this && node.isAncestorOf(this);\n }\n};\n/**\n * @constructor\n * @alias module:echarts/data/Tree\n * @param {module:echarts/model/Model} hostModel\n */\n\nfunction Tree(hostModel) {\n /**\n * @type {module:echarts/data/Tree~TreeNode}\n * @readOnly\n */\n this.root;\n /**\n * @type {module:echarts/data/List}\n * @readOnly\n */\n\n this.data;\n /**\n * Index of each item is the same as the raw index of coresponding list item.\n * @private\n * @type {Array.}, ...]\n * @private\n * @type {Array.}\n */\n\n this._pieceList = [];\n this.resetExtent();\n /**\n * 'pieces', 'categories', 'splitNumber'\n * @type {string}\n */\n\n var mode = this._mode = this._determineMode();\n\n resetMethods[this._mode].call(this);\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 var piece = zrUtil.clone(piece);\n\n if (state !== 'inRange') {\n // FIXME\n // outOfRange do not support special visual in pieces.\n piece.visual = null;\n }\n\n return piece;\n });\n }\n });\n },\n\n /**\n * @protected\n * @override\n */\n completeVisualOption: function () {\n // Consider this case:\n // visualMap: {\n // pieces: [{symbol: 'circle', lt: 0}, {symbol: 'rect', gte: 0}]\n // }\n // where no inRange/outOfRange set but only pieces. So we should make\n // default inRange/outOfRange for this case, otherwise visuals that only\n // appear in `pieces` will not be taken into account in visual encoding.\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 = 0;\n zrUtil.each(this.stateList, function (state) {\n 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] && (zrUtil.isObject(obj[state]) ? obj[state].hasOwnProperty(visualType) : obj[state] === visualType // e.g., inRange: 'symbol'\n );\n }\n\n VisualMapModel.prototype.completeVisualOption.apply(this, arguments);\n },\n _resetSelected: function (newOption, isInit) {\n var thisOption = this.option;\n var pieceList = this._pieceList; // Selected do not merge but all override.\n\n var selected = (isInit ? thisOption : newOption).selected || {};\n thisOption.selected = selected; // Consider 'not specified' means true.\n\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 // Ensure there is only one selected.\n var hasSel = false;\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (selected[key]) {\n hasSel ? selected[key] = false : hasSel = true;\n }\n }, this);\n } // thisOption.selectedMode === 'multiple', default: all selected.\n\n },\n\n /**\n * @public\n */\n getSelectedMapKey: function (piece) {\n return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n },\n\n /**\n * @public\n */\n getPieceList: function () {\n return this._pieceList;\n },\n\n /**\n * @private\n * @return {string}\n */\n _determineMode: function () {\n var option = this.option;\n return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n },\n\n /**\n * @public\n * @override\n */\n setSelected: function (selected) {\n this.option.selected = zrUtil.clone(selected);\n },\n\n /**\n * @public\n * @override\n */\n 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 /**\n * @public\n * @params {number} pieceIndex piece index in visualMapModel.getPieceList()\n * @return {Array.} [{seriesId, dataIndex: >}, ...]\n */\n findTargetDataIndices: function (pieceIndex) {\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 // Should always base on model pieceList, because it is order sensitive.\n var pIdx = VisualMapping.findPieceIndex(value, this._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 /**\n * @private\n * @param {Object} piece piece.value or piece.interval is required.\n * @return {number} Can be Infinity or -Infinity\n */\n 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 getVisualMeta: function (getColorVisual) {\n // Do not support category. (category axis is ordinal, numerical)\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 } // Suplement\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 // Fulfill gap.\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/**\n * Key is this._mode\n * @type {Object}\n * @this {module:echarts/component/viusalMap/PiecewiseMode}\n */\n\nvar resetMethods = {\n splitNumber: function () {\n var thisOption = this.option;\n var pieceList = this._pieceList;\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; // Precision auto-adaption\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 pieceList.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 pieceList.push({\n interval: [curr, max],\n close: [1, 1]\n });\n }\n\n if (thisOption.maxOpen) {\n pieceList.push({\n interval: [dataExtent[1], Infinity],\n close: [0, 0]\n });\n }\n\n reformIntervals(pieceList);\n zrUtil.each(pieceList, function (piece, index) {\n piece.index = index;\n piece.text = this.formatValueText(piece.interval);\n }, this);\n },\n categories: function () {\n var thisOption = this.option;\n zrUtil.each(thisOption.categories, function (cate) {\n // FIXME category模式也使用pieceList,但在visualMapping中不是使用pieceList。\n // 是否改一致。\n this._pieceList.push({\n text: this.formatValueText(cate, true),\n value: cate\n });\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, this._pieceList);\n },\n pieces: function () {\n var thisOption = this.option;\n var pieceList = this._pieceList;\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 // `min` `max` is legacy option.\n // `lt` `gt` `lte` `gte` is recommanded.\n var interval = item.interval = [];\n var close = 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[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[0] = 0);\n useMinMax[1] && interval[0] === -Infinity && (close[1] = 0);\n\n if (interval[0] === interval[1] && close[0] && close[1]) {\n // Consider: [{min: 5, max: 5, visual: {...}}, {min: 0, max: 5}],\n // we use value to lift the priority when min === max\n item.value = interval[0];\n }\n }\n\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n pieceList.push(item);\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, pieceList); // Only pieces\n\n reformIntervals(pieceList);\n zrUtil.each(pieceList, 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\nvar _default = PiecewiseModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar zrColor = require(\"zrender/lib/tool/color\");\n\nvar eventUtil = require(\"zrender/lib/core/event\");\n\nvar domUtil = require(\"zrender/lib/core/dom\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar formatUtil = require(\"../../util/format\");\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*/\nvar each = zrUtil.each;\nvar toCamelCase = formatUtil.toCamelCase;\nvar vendors = ['', '-webkit-', '-moz-', '-o-'];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n/**\n * @param {number} duration\n * @return {string}\n * @inner\n */\n\nfunction assembleTransition(duration) {\n var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n var transitionText = 'left ' + duration + 's ' + transitionCurve + ',' + 'top ' + duration + 's ' + transitionCurve;\n return zrUtil.map(vendors, function (vendorPrefix) {\n return vendorPrefix + 'transition:' + transitionText;\n }).join(';');\n}\n/**\n * @param {Object} textStyle\n * @return {string}\n * @inner\n */\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 var lineHeight = textStyleModel.get('lineHeight');\n\n if (lineHeight == null) {\n lineHeight = Math.round(fontSize * 3 / 2);\n }\n\n fontSize && cssText.push('line-height:' + lineHeight + '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 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/**\n * @param {Object} tooltipModel\n * @return {string}\n * @inner\n */\n\n\nfunction assembleCssText(tooltipModel) {\n var cssText = [];\n var transitionDuration = tooltipModel.get('transitionDuration');\n var backgroundColor = tooltipModel.get('backgroundColor');\n var textStyleModel = tooltipModel.getModel('textStyle');\n var padding = tooltipModel.get('padding'); // Animation transition. Do not animate when transitionDuration is 0.\n\n transitionDuration && cssText.push(assembleTransition(transitionDuration));\n\n if (backgroundColor) {\n if (env.canvasSupported) {\n cssText.push('background-Color:' + backgroundColor);\n } else {\n // for ie\n cssText.push('background-Color:#' + zrColor.toHex(backgroundColor));\n cssText.push('filter:alpha(opacity=70)');\n }\n } // Border style\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 }); // Text style\n\n cssText.push(assembleFont(textStyleModel)); // Padding\n\n if (padding != null) {\n cssText.push('padding:' + formatUtil.normalizeCssArray(padding).join('px ') + 'px');\n }\n\n return cssText.join(';') + ';';\n} // If not able to make, do not modify the input `out`.\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 // Some APPs might use scale on body, so we support CSS transform here.\n domUtil.transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n }\n } else {\n out[0] = zrX;\n out[1] = zrY; // xy should be based on canvas root. But tooltipContent is\n // the sibling of canvas root. So padding of ec container\n // should be considered here.\n\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(); // The ratio of left to width\n\n out[3] = out[1] / zr.getHeight(); // The ratio of top to height\n}\n/**\n * @alias module:echarts/component/tooltip/TooltipContent\n * @param {HTMLElement} container\n * @param {ExtensionAPI} api\n * @param {Object} [opt]\n * @param {boolean} [opt.appendToBody]\n * `false`: the DOM element will be inside the container. Default value.\n * `true`: the DOM element will be appended to HTML body, which avoid\n * some overflow clip but intrude outside of the container.\n * @constructor\n */\n\n\nfunction TooltipContent(container, api, opt) {\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 this._styleCoord = [0, 0, 0, 0]; // [left, top, left/width, top/height]\n\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 this._show = false;\n /**\n * @private\n */\n\n this._hideTimeout; // FIXME\n // Is it needed to trigger zr event manually if\n // the browser do not support `pointer-events: none`.\n\n var self = this;\n\n el.onmouseenter = function () {\n // clear the timeout in hideLater and keep showing tooltip\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 // `pointer-events: none` is set to tooltip content div\n // if `enterable` is set as `false`, and `el.onmousemove`\n // can not be triggered. But in browser that do not\n // support `pointer-events`, we need to do this:\n // Try trigger zrender event to avoid mouse\n // in and out shape too frequently\n var handler = zr.handler;\n var zrViewportRoot = zr.painter.getViewportRoot();\n eventUtil.normalizeEvent(zrViewportRoot, e, true);\n handler.dispatch('mousemove', e);\n }\n };\n\n el.onmouseleave = function () {\n if (self._enterable) {\n if (self._show) {\n self.hideLater(self._hideDelay);\n }\n }\n\n self._inContent = false;\n };\n}\n\nTooltipContent.prototype = {\n constructor: TooltipContent,\n\n /**\n * @private\n * @type {boolean}\n */\n _enterable: true,\n\n /**\n * Update when tooltip is rendered\n */\n update: function (tooltipModel) {\n // FIXME\n // Move this logic to ec main?\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._moveTooltipIfResized(); // Hide the tooltip\n // PENDING\n // this.hide();\n },\n\n /**\n * when `alwaysShowContent` is true,\n * we should move the tooltip after chart resized\n */\n _moveTooltipIfResized: function () {\n var ratioX = this._styleCoord[2]; // The ratio of left to width\n\n var ratioY = this._styleCoord[3]; // The ratio of top to height\n\n var realX = ratioX * this._zr.getWidth();\n\n var realY = ratioY * this._zr.getHeight();\n\n this.moveTo(realX, realY);\n },\n show: function (tooltipModel) {\n clearTimeout(this._hideTimeout);\n var el = this.el;\n var styleCoord = this._styleCoord;\n el.style.cssText = gCssText + assembleCssText(tooltipModel) // Because of the reason described in:\n // http://stackoverflow.com/questions/21125587/css3-transition-not-working-in-chrome-anymore\n // we should set initial value to `left` and `top`.\n + ';left:' + styleCoord[0] + 'px;top:' + styleCoord[1] + 'px;' + (tooltipModel.get('extraCssText') || '');\n el.style.display = el.innerHTML ? 'block' : 'none'; // If mouse occasionally move over the tooltip, a mouseout event will be\n // triggered by canvas, and cause some unexpectable result like dragging\n // stop, \"unfocusAdjacency\". Here `pointer-events: none` is used to solve\n // it. Although it is not supported by IE8~IE10, fortunately it is a rare\n // scenario.\n\n el.style.pointerEvents = this._enterable ? 'auto' : 'none';\n this._show = true;\n },\n setContent: function (content) {\n this.el.innerHTML = content == null ? '' : content;\n },\n setEnterable: function (enterable) {\n this._enterable = enterable;\n },\n getSize: function () {\n var el = this.el;\n return [el.clientWidth, el.clientHeight];\n },\n moveTo: function (zrX, zrY) {\n var styleCoord = this._styleCoord;\n makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n var style = this.el.style;\n style.left = styleCoord[0] + 'px';\n style.top = styleCoord[1] + 'px';\n },\n hide: function () {\n this.el.style.display = 'none';\n this._show = false;\n },\n hideLater: function (time) {\n if (this._show && !(this._inContent && this._enterable)) {\n if (time) {\n this._hideDelay = time; // Set show false to avoid invoke hideLater multiple times\n\n this._show = false;\n this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n } else {\n this.hide();\n }\n }\n },\n isShow: function () {\n return this._show;\n },\n dispose: function () {\n this.el.parentNode.removeChild(this.el);\n },\n getOuterSize: function () {\n var width = this.el.clientWidth;\n var height = this.el.clientHeight; // Consider browser compatibility.\n // IE8 does not support getComputedStyle.\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};\nvar _default = TooltipContent;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nrequire(\"./gauge/GaugeSeries\");\n\nrequire(\"./gauge/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\nvar echarts = require(\"../echarts\");\n\nrequire(\"../component/parallel\");\n\nrequire(\"./parallel/ParallelSeries\");\n\nrequire(\"./parallel/ParallelView\");\n\nvar parallelVisual = require(\"./parallel/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*/\necharts.registerVisual(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\nvar echarts = require(\"../echarts\");\n\nrequire(\"./candlestick/CandlestickSeries\");\n\nrequire(\"./candlestick/CandlestickView\");\n\nvar preprocessor = require(\"./candlestick/preprocessor\");\n\nvar candlestickVisual = require(\"./candlestick/candlestickVisual\");\n\nvar candlestickLayout = require(\"./candlestick/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*/\necharts.registerPreprocessor(preprocessor);\necharts.registerVisual(candlestickVisual);\necharts.registerLayout(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\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../../coord/Axis\");\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 * Extend axis 2d\n * @constructor module:echarts/coord/cartesian/Axis2D\n * @extends {module:echarts/coord/cartesian/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.} coordExtent\n * @param {string} axisType\n * @param {string} position\n */\nvar TimelineAxis = function (dim, scale, coordExtent, axisType) {\n Axis.call(this, dim, scale, coordExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = axisType || 'value';\n /**\n * Axis model\n * @param {module:echarts/component/TimelineModel}\n */\n\n this.model = null;\n};\n\nTimelineAxis.prototype = {\n constructor: TimelineAxis,\n\n /**\n * @override\n */\n getLabelModel: function () {\n return this.model.getModel('label');\n },\n\n /**\n * @override\n */\n isHorizontal: function () {\n return this.model.get('orient') === 'horizontal';\n }\n};\nzrUtil.inherits(TimelineAxis, Axis);\nvar _default = TimelineAxis;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _graphic = require(\"../../util/graphic\");\n\nvar subPixelOptimize = _graphic.subPixelOptimize;\n\nvar createRenderPlanner = require(\"../helper/createRenderPlanner\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar retrieve2 = _util.retrieve2;\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/* global Float32Array */\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar _default = {\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.mapDimension(coordDims[vDimIdx], true);\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 // The value is experimented visually.\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 // open point.\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 // Structure: [sign, x, yhigh, ylow, sign, x, yhigh, ylow, ...]\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 // If close === open, compare with close of last record\n ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : // No record of previous, set to be positive\n 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) // Put max outer to ensure bar visible in spite of overlap.\n : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nrequire(\"./dataZoomSlider\");\n\nrequire(\"./dataZoomInside\");","var eventUtil = require(\"./event\");\n\n/**\n * Only implements needed gestures for mobile.\n */\nvar GestureMgr = function () {\n /**\n * @private\n * @type {Array.}\n */\n this._track = [];\n};\n\nGestureMgr.prototype = {\n constructor: GestureMgr,\n recognize: function (event, target, root) {\n this._doTrack(event, target, root);\n\n return this._recognize(event);\n },\n clear: function () {\n this._track.length = 0;\n return this;\n },\n _doTrack: function (event, target, root) {\n var touches = event.touches;\n\n if (!touches) {\n return;\n }\n\n var trackItem = {\n points: [],\n touches: [],\n target: target,\n event: event\n };\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\n this._track.push(trackItem);\n },\n _recognize: function (event) {\n for (var eventName in recognizers) {\n if (recognizers.hasOwnProperty(eventName)) {\n var gestureInfo = recognizers[eventName](this._track, event);\n\n if (gestureInfo) {\n return gestureInfo;\n }\n }\n }\n }\n};\n\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}\n\nfunction center(pointPair) {\n return [(pointPair[0][0] + pointPair[1][0]) / 2, (pointPair[0][1] + pointPair[1][1]) / 2];\n}\n\nvar recognizers = {\n pinch: function (track, event) {\n var trackLen = track.length;\n\n if (!trackLen) {\n return;\n }\n\n var pinchEnd = (track[trackLen - 1] || {}).points;\n var pinchPre = (track[trackLen - 2] || {}).points || pinchEnd;\n\n if (pinchPre && pinchPre.length > 1 && pinchEnd && 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: track[0].target,\n event: event\n };\n }\n } // Only pinch currently.\n\n};\nvar _default = GestureMgr;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nrequire(\"./legend\");\n\nrequire(\"./legend/ScrollableLegendModel\");\n\nrequire(\"./legend/ScrollableLegendView\");\n\nrequire(\"./legend/scrollableLegendAction\");","// Myers' Diff Algorithm\n// Modified from https://github.com/kpdecker/jsdiff/blob/master/src/diff/base.js\nfunction Diff() {}\n\nDiff.prototype = {\n diff: function (oldArr, newArr, equals) {\n if (!equals) {\n equals = function (a, b) {\n return a === b;\n };\n }\n\n this.equals = equals;\n var self = this;\n oldArr = oldArr.slice();\n newArr = newArr.slice(); // Allow subclasses to massage the input prior to running\n\n var newLen = newArr.length;\n var oldLen = oldArr.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newArr, oldArr, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n var indices = [];\n\n for (var i = 0; i < newArr.length; i++) {\n indices.push(i);\n } // Identity per the equality and tokenizer\n\n\n return [{\n indices: indices,\n count: newArr.length\n }];\n } // Main worker method. checks all permutations of a given edit length for acceptance.\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\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen;\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n oldPos = self.extractCommon(basePath, newArr, oldArr, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n return buildValues(self, basePath.components, newArr, oldArr);\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n }\n\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n },\n pushComponent: function (components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n extractCommon: function (basePath, newArr, oldArr, diagonalPath) {\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\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n tokenize: function (value) {\n return value.slice();\n },\n join: function (value) {\n return value.slice();\n }\n};\n\nfunction buildValues(diff, components, newArr, oldArr) {\n var componentPos = 0;\n var componentLen = components.length;\n var newPos = 0;\n var oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n var indices = [];\n\n for (var i = newPos; i < newPos + component.count; i++) {\n indices.push(i);\n }\n\n component.indices = indices;\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n var indices = [];\n\n for (var i = oldPos; i < oldPos + component.count; i++) {\n indices.push(i);\n }\n\n component.indices = indices;\n oldPos += component.count;\n }\n }\n\n return components;\n}\n\nfunction clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n}\n\nvar arrayDiff = new Diff();\n\nfunction _default(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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*/\nvar KEY_DELIMITER = '-->';\n/**\n * params handler\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @returns {*}\n */\n\nvar getAutoCurvenessParams = function (seriesModel) {\n return seriesModel.get('autoCurveness') || null;\n};\n/**\n * Generate a list of edge curvatures, 20 is the default\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param {number} appendLength\n * @return 20 => [0, -0.2, 0.2, -0.4, 0.4, -0.6, 0.6, -0.8, 0.8, -1, 1, -1.2, 1.2, -1.4, 1.4, -1.6, 1.6, -1.8, 1.8, -2]\n */\n\n\nvar createCurveness = function (seriesModel, appendLength) {\n var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);\n var length = 20;\n var curvenessList = []; // handler the function set\n\n if (typeof autoCurvenessParmas === 'number') {\n length = autoCurvenessParmas;\n } else if (zrUtil.isArray(autoCurvenessParmas)) {\n seriesModel.__curvenessList = autoCurvenessParmas;\n return;\n } // append length\n\n\n if (appendLength > length) {\n length = appendLength;\n } // make sure the length is even\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/**\n * Create different cache key data in the positive and negative directions, in order to set the curvature later\n * @param {number|string|module:echarts/data/Graph.Node} n1\n * @param {number|string|module:echarts/data/Graph.Node} n2\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @returns {string} key\n */\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/**\n * get opposite key\n * @param {string} key\n * @returns {string}\n */\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/**\n * get edgeMap with key\n * @param edge\n * @param {module:echarts/model/SeriesModel} seriesModel\n */\n\n\nvar getEdgeFromMap = function (edge, seriesModel) {\n var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n return seriesModel.__edgeMap[key];\n};\n/**\n * calculate all cases total length\n * @param edge\n * @param seriesModel\n * @returns {number}\n */\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/**\n *\n * @param key\n */\n\n\nvar getEdgeMapLengthWithKey = function (key, seriesModel) {\n var edgeMap = seriesModel.__edgeMap;\n return edgeMap[key] ? edgeMap[key].length : 0;\n};\n/**\n * Count the number of edges between the same two points, used to obtain the curvature table and the parity of the edge\n * @see /graph/GraphSeries.js@getInitialData\n * @param {module:echarts/model/SeriesModel} seriesModel\n */\n\n\nfunction initCurvenessList(seriesModel) {\n if (!getAutoCurvenessParams(seriesModel)) {\n return;\n }\n\n seriesModel.__curvenessList = [];\n seriesModel.__edgeMap = {}; // calc the array of curveness List\n\n createCurveness(seriesModel);\n}\n/**\n * set edgeMap with key\n * @param {number|string|module:echarts/data/Graph.Node} n1\n * @param {number|string|module:echarts/data/Graph.Node} n2\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param {number} index\n */\n\n\nfunction 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)]; // set direction\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}\n/**\n * get curvature for edge\n * @param edge\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param index\n */\n\n\nfunction 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 } // if totalLen is Longer createCurveness\n\n\n var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);\n createCurveness(seriesModel, totalLen);\n edge.lineStyle = edge.lineStyle || {}; // if is opposite edge, must set curvenss to opposite number\n\n var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n var curvenessList = seriesModel.__curvenessList; // if pass array no need parity\n\n var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;\n\n if (!edgeArray.isForward) {\n // the opposite edge show outside\n var oppositeKey = getOppositeKey(curKey);\n var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);\n var resValue = curvenessList[edgeIndex + len + parityCorrection]; // isNeedReverse, simple, force type need reverse the curveness in the junction of the forword and the opposite\n\n if (needReverse) {\n // set as array may make the parity handle with the len of opposite\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\nexports.initCurvenessList = initCurvenessList;\nexports.createEdgeMapForCurveness = createEdgeMapForCurveness;\nexports.getCurvenessForEdge = getCurvenessForEdge;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar RoamController = require(\"./RoamController\");\n\nvar roamHelper = require(\"../../component/helper/roamHelper\");\n\nvar _cursorHelper = require(\"../../component/helper/cursorHelper\");\n\nvar onIrrelevantElement = _cursorHelper.onIrrelevantElement;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar geoSourceManager = require(\"../../coord/geo/geoSourceManager\");\n\nvar _component = require(\"../../util/component\");\n\nvar getUID = _component.getUID;\n\nvar Transformable = require(\"zrender/lib/mixin/Transformable\");\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*/\nfunction getFixedItemStyle(model) {\n var itemStyle = model.getItemStyle();\n var areaColor = model.get('areaColor'); // If user want the color not to be changed when hover,\n // they should both set areaColor and color to be null.\n\n if (areaColor != null) {\n itemStyle.fill = areaColor;\n }\n\n return itemStyle;\n}\n\nfunction updateMapSelectHandler(mapDraw, mapOrGeoModel, regionsGroup, api, fromView) {\n regionsGroup.off('click');\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 var el = e.target;\n\n while (!el.__regions) {\n el = el.parent;\n }\n\n if (!el) {\n return;\n }\n\n var action = {\n type: (mapOrGeoModel.mainType === 'geo' ? 'geo' : 'map') + 'ToggleSelect',\n batch: zrUtil.map(el.__regions, function (region) {\n return {\n name: region.name,\n from: fromView.uid\n };\n })\n };\n action[mapOrGeoModel.mainType + 'Id'] = mapOrGeoModel.id;\n api.dispatchAction(action);\n updateMapSelected(mapOrGeoModel, regionsGroup);\n });\n }\n}\n\nfunction updateMapSelected(mapOrGeoModel, regionsGroup) {\n // FIXME\n regionsGroup.eachChild(function (otherRegionEl) {\n zrUtil.each(otherRegionEl.__regions, function (region) {\n otherRegionEl.trigger(mapOrGeoModel.isSelected(region.name) ? 'emphasis' : 'normal');\n });\n });\n}\n/**\n * @alias module:echarts/component/helper/MapDraw\n * @param {module:echarts/ExtensionAPI} api\n * @param {boolean} updateGroup\n */\n\n\nfunction MapDraw(api, updateGroup) {\n var group = new graphic.Group();\n /**\n * @type {string}\n * @private\n */\n\n this.uid = getUID('ec_map_draw');\n /**\n * @type {module:echarts/component/helper/RoamController}\n * @private\n */\n\n this._controller = new RoamController(api.getZr());\n /**\n * @type {Object} {target, zoom, zoomLimit}\n * @private\n */\n\n this._controllerHost = {\n target: updateGroup ? group : null\n };\n /**\n * @type {module:zrender/container/Group}\n * @readOnly\n */\n\n this.group = group;\n /**\n * @type {boolean}\n * @private\n */\n\n this._updateGroup = updateGroup;\n /**\n * This flag is used to make sure that only one among\n * `pan`, `zoom`, `click` can occurs, otherwise 'selected'\n * action may be triggered when `pan`, which is unexpected.\n * @type {booelan}\n */\n\n this._mouseDownFlag;\n /**\n * @type {string}\n */\n\n this._mapName;\n /**\n * @type {boolean}\n */\n\n this._initialized;\n /**\n * @type {module:zrender/container/Group}\n */\n\n group.add(this._regionsGroup = new graphic.Group());\n /**\n * @type {module:zrender/container/Group}\n */\n\n group.add(this._backgroundGroup = new graphic.Group());\n}\n\nMapDraw.prototype = {\n constructor: MapDraw,\n draw: function (mapOrGeoModel, ecModel, api, fromView, payload) {\n var isGeo = mapOrGeoModel.mainType === 'geo'; // Map series has data. GEO model that controlled by map series\n // will be assigned with map data. Other GEO model has no data.\n\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(); // No animation when first draw or in action\n\n var isFirstDraw = !regionsGroup.childAt(0) || payload;\n var targetScale;\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 scale: target.scale,\n position: target.position\n };\n targetScale = target.scale;\n graphic.updateProps(group, props, mapOrGeoModel);\n }\n\n var scale = transformInfo.rawScale;\n var position = transformInfo.rawPosition;\n regionsGroup.removeAll();\n var itemStyleAccessPath = ['itemStyle'];\n var hoverItemStyleAccessPath = ['emphasis', 'itemStyle'];\n var labelAccessPath = ['label'];\n var hoverLabelAccessPath = ['emphasis', 'label'];\n var nameMap = zrUtil.createHashMap();\n zrUtil.each(geo.regions, function (region) {\n // Consider in GeoJson properties.name may be duplicated, for example,\n // there is multiple region named \"United Kindom\" or \"France\" (so many\n // colonies). And it is not appropriate to merge them in geo, which\n // will make them share the same label and bring trouble in label\n // location calculation.\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(itemStyleAccessPath);\n var hoverItemStyleModel = regionModel.getModel(hoverItemStyleAccessPath);\n var itemStyle = getFixedItemStyle(itemStyleModel);\n var hoverItemStyle = getFixedItemStyle(hoverItemStyleModel);\n var labelModel = regionModel.getModel(labelAccessPath);\n var hoverLabelModel = regionModel.getModel(hoverLabelAccessPath);\n var dataIdx; // Use the itemStyle in data if has data\n\n if (data) {\n dataIdx = data.indexOfName(region.name); // Only visual color of each item will be used. It can be encoded by dataRange\n // But visual color of series is used in symbol drawing\n //\n // Visual color for each series is for the symbol draw\n\n var visualColor = data.getItemVisual(dataIdx, 'color', true);\n\n if (visualColor) {\n itemStyle.fill = visualColor;\n }\n }\n\n var transformPoint = function (point) {\n return [point[0] * scale[0] + position[0], point[1] * scale[1] + position[1]];\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 = [];\n\n for (var j = 0; j < interior.length; ++j) {\n points.push(transformPoint(interior[j]));\n }\n\n compoundPath.shape.paths.push(new graphic.Polygon({\n segmentIgnoreThreshold: 1,\n shape: {\n points: points\n }\n }));\n }\n });\n compoundPath.setStyle(itemStyle);\n compoundPath.style.strokeNoScale = true;\n compoundPath.culling = true; // Label\n\n var showLabel = labelModel.get('show');\n var hoverShowLabel = hoverLabelModel.get('show');\n var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n var itemLayout = data && data.getItemLayout(dataIdx); // In the following cases label will be drawn\n // 1. In map series and data value is NaN\n // 2. In geo component\n // 4. Region has no series legendSymbol, which will be add a showLabel flag in mapSymbolLayout\n\n if (isGeo || isDataNaN && (showLabel || hoverShowLabel) || itemLayout && itemLayout.showLabel) {\n var query = !isGeo ? dataIdx : region.name;\n var labelFetcher; // Consider dataIdx not found.\n\n if (!data || dataIdx >= 0) {\n labelFetcher = mapOrGeoModel;\n }\n\n var textEl = new graphic.Text({\n position: transformPoint(region.center.slice()),\n // FIXME\n // label rotation is not support yet in geo or regions of series-map\n // that has no data. The rotation will be effected by this `scale`.\n // So needed to change to RectText?\n scale: [1 / group.scale[0], 1 / group.scale[1]],\n z2: 10,\n silent: true\n });\n graphic.setLabelStyle(textEl.style, textEl.hoverStyle = {}, labelModel, hoverLabelModel, {\n labelFetcher: labelFetcher,\n labelDataIndex: query,\n defaultText: region.name,\n useInsideStyle: false\n }, {\n textAlign: 'center',\n textVerticalAlign: 'middle'\n });\n\n if (!isFirstDraw) {\n // Text animation\n var textScale = [1 / targetScale[0], 1 / targetScale[1]];\n graphic.updateProps(textEl, {\n scale: textScale\n }, mapOrGeoModel);\n }\n\n regionGroup.add(textEl);\n } // setItemGraphicEl, setHoverStyle after all polygons and labels\n // are added to the rigionGroup\n\n\n if (data) {\n data.setItemGraphicEl(dataIdx, regionGroup);\n } else {\n var regionModel = mapOrGeoModel.getRegionModel(region.name); // Package custom mouse event for geo component\n\n compoundPath.eventData = {\n componentType: 'geo',\n componentIndex: mapOrGeoModel.componentIndex,\n geoIndex: mapOrGeoModel.componentIndex,\n name: region.name,\n region: regionModel && regionModel.option || {}\n };\n }\n\n var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\n groupRegions.push(region);\n regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\n graphic.setHoverStyle(regionGroup, hoverItemStyle);\n regionsGroup.add(regionGroup);\n });\n\n this._updateController(mapOrGeoModel, ecModel, api);\n\n updateMapSelectHandler(this, mapOrGeoModel, regionsGroup, api, fromView);\n updateMapSelected(mapOrGeoModel, regionsGroup);\n },\n 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 = {};\n },\n _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 _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(); // roamType is will be set default true if it is null\n\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\n if (this._updateGroup) {\n var scale = this.group.scale;\n\n this._regionsGroup.traverse(function (el) {\n if (el.type === 'text') {\n el.attr('scale', [1 / scale[0], 1 / scale[1]]);\n }\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};\nvar _default = MapDraw;\nmodule.exports = _default;","var matrix = require(\"../core/matrix\");\n\nvar vector = require(\"../core/vector\");\n\n/**\n * 提供变换扩展\n * @module zrender/mixin/Transformable\n * @author pissang (https://www.github.com/pissang)\n */\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\n\nfunction isNotAroundZero(val) {\n return val > EPSILON || val < -EPSILON;\n}\n/**\n * @alias module:zrender/mixin/Transformable\n * @constructor\n */\n\n\nvar Transformable = function (opts) {\n opts = opts || {}; // If there are no given position, rotation, scale\n\n if (!opts.position) {\n /**\n * 平移\n * @type {Array.}\n * @default [0, 0]\n */\n this.position = [0, 0];\n }\n\n if (opts.rotation == null) {\n /**\n * 旋转\n * @type {Array.}\n * @default 0\n */\n this.rotation = 0;\n }\n\n if (!opts.scale) {\n /**\n * 缩放\n * @type {Array.}\n * @default [1, 1]\n */\n this.scale = [1, 1];\n }\n /**\n * 旋转和缩放的原点\n * @type {Array.}\n * @default null\n */\n\n\n this.origin = this.origin || null;\n};\n\nvar transformableProto = Transformable.prototype;\ntransformableProto.transform = null;\n/**\n * 判断是否需要有坐标变换\n * 如果有坐标变换, 则从position, rotation, scale以及父节点的transform计算出自身的transform矩阵\n */\n\ntransformableProto.needLocalTransform = function () {\n return isNotAroundZero(this.rotation) || isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1]) || isNotAroundZero(this.scale[0] - 1) || isNotAroundZero(this.scale[1] - 1);\n};\n\nvar scaleTmp = [];\n\ntransformableProto.updateTransform = function () {\n var parent = this.parent;\n var parentHasTransform = parent && parent.transform;\n var needLocalTransform = this.needLocalTransform();\n var m = this.transform;\n\n if (!(needLocalTransform || parentHasTransform)) {\n m && mIdentity(m);\n return;\n }\n\n m = m || matrix.create();\n\n if (needLocalTransform) {\n this.getLocalTransform(m);\n } else {\n mIdentity(m);\n } // 应用父节点变换\n\n\n if (parentHasTransform) {\n if (needLocalTransform) {\n matrix.mul(m, parent.transform, m);\n } else {\n matrix.copy(m, parent.transform);\n }\n } // 保存这个变换矩阵\n\n\n this.transform = m;\n var globalScaleRatio = this.globalScaleRatio;\n\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\n this.invTransform = this.invTransform || matrix.create();\n matrix.invert(this.invTransform, m);\n};\n\ntransformableProto.getLocalTransform = function (m) {\n return Transformable.getLocalTransform(this, m);\n};\n/**\n * 将自己的transform应用到context上\n * @param {CanvasRenderingContext2D} ctx\n */\n\n\ntransformableProto.setTransform = function (ctx) {\n var m = this.transform;\n var dpr = ctx.dpr || 1;\n\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 } else {\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n }\n};\n\ntransformableProto.restoreTransform = function (ctx) {\n var dpr = ctx.dpr || 1;\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n};\n\nvar tmpTransform = [];\nvar originTransform = matrix.create();\n\ntransformableProto.setLocalTransform = function (m) {\n if (!m) {\n // TODO return or set identity?\n return;\n }\n\n var sx = m[0] * m[0] + m[1] * m[1];\n var sy = m[2] * m[2] + m[3] * m[3];\n var position = this.position;\n var scale = this.scale;\n\n if (isNotAroundZero(sx - 1)) {\n sx = Math.sqrt(sx);\n }\n\n if (isNotAroundZero(sy - 1)) {\n sy = Math.sqrt(sy);\n }\n\n if (m[0] < 0) {\n sx = -sx;\n }\n\n if (m[3] < 0) {\n sy = -sy;\n }\n\n position[0] = m[4];\n position[1] = m[5];\n scale[0] = sx;\n scale[1] = sy;\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n};\n/**\n * 分解`transform`矩阵到`position`, `rotation`, `scale`\n */\n\n\ntransformableProto.decomposeTransform = function () {\n if (!this.transform) {\n return;\n }\n\n var parent = this.parent;\n var m = this.transform;\n\n if (parent && parent.transform) {\n // Get local transform and decompose them to position, scale, rotation\n matrix.mul(tmpTransform, parent.invTransform, m);\n m = tmpTransform;\n }\n\n var origin = this.origin;\n\n if (origin && (origin[0] || origin[1])) {\n originTransform[4] = origin[0];\n originTransform[5] = origin[1];\n matrix.mul(tmpTransform, m, originTransform);\n tmpTransform[4] -= origin[0];\n tmpTransform[5] -= origin[1];\n m = tmpTransform;\n }\n\n this.setLocalTransform(m);\n};\n/**\n * Get global scale\n * @return {Array.}\n */\n\n\ntransformableProto.getGlobalScale = function (out) {\n var m = this.transform;\n out = out || [];\n\n if (!m) {\n out[0] = 1;\n out[1] = 1;\n return out;\n }\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\n if (m[0] < 0) {\n out[0] = -out[0];\n }\n\n if (m[3] < 0) {\n out[1] = -out[1];\n }\n\n return out;\n};\n/**\n * 变换坐标位置到 shape 的局部坐标空间\n * @method\n * @param {number} x\n * @param {number} y\n * @return {Array.}\n */\n\n\ntransformableProto.transformCoordToLocal = function (x, y) {\n var v2 = [x, y];\n var invTransform = this.invTransform;\n\n if (invTransform) {\n vector.applyTransform(v2, v2, invTransform);\n }\n\n return v2;\n};\n/**\n * 变换局部坐标位置到全局坐标空间\n * @method\n * @param {number} x\n * @param {number} y\n * @return {Array.}\n */\n\n\ntransformableProto.transformCoordToGlobal = function (x, y) {\n var v2 = [x, y];\n var transform = this.transform;\n\n if (transform) {\n vector.applyTransform(v2, v2, transform);\n }\n\n return v2;\n};\n/**\n * @static\n * @param {Object} target\n * @param {Array.} target.origin\n * @param {number} target.rotation\n * @param {Array.} target.position\n * @param {Array.} [m]\n */\n\n\nTransformable.getLocalTransform = function (target, m) {\n m = m || [];\n mIdentity(m);\n var origin = target.origin;\n var scale = target.scale || [1, 1];\n var rotation = target.rotation || 0;\n var position = target.position || [0, 0];\n\n if (origin) {\n // Translate to origin\n m[4] -= origin[0];\n m[5] -= origin[1];\n }\n\n matrix.scale(m, m, scale);\n\n if (rotation) {\n matrix.rotate(m, m, rotation);\n }\n\n if (origin) {\n // Translate back from origin\n m[4] += origin[0];\n m[5] += origin[1];\n }\n\n m[4] += position[0];\n m[5] += position[1];\n return m;\n};\n\nvar _default = Transformable;\nmodule.exports = _default;","var Displayable = require(\"./Displayable\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\nvar zrUtil = require(\"../core/util\");\n\nvar imageHelper = require(\"./helper/image\");\n\n/**\n * @alias zrender/graphic/Image\n * @extends module:zrender/graphic/Displayable\n * @constructor\n * @param {Object} opts\n */\nfunction ZImage(opts) {\n Displayable.call(this, opts);\n}\n\nZImage.prototype = {\n constructor: ZImage,\n type: 'image',\n brush: function (ctx, prevEl) {\n var style = this.style;\n var src = style.image; // Must bind each time\n\n style.bind(ctx, this, prevEl);\n var image = this._image = imageHelper.createOrUpdateImage(src, this._image, this, this.onload);\n\n if (!image || !imageHelper.isImageReady(image)) {\n return;\n } // 图片已经加载完成\n // if (image.nodeName.toUpperCase() == 'IMG') {\n // if (!image.complete) {\n // return;\n // }\n // }\n // Else is canvas\n\n\n var x = style.x || 0;\n var y = style.y || 0;\n var width = style.width;\n var height = style.height;\n var aspect = image.width / image.height;\n\n if (width == null && height != null) {\n // Keep image/height ratio\n width = height * aspect;\n } else if (height == null && width != null) {\n height = width / aspect;\n } else if (width == null && height == null) {\n width = image.width;\n height = image.height;\n } // 设置transform\n\n\n this.setTransform(ctx);\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 } 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 } else {\n ctx.drawImage(image, x, y, width, height);\n } // Draw rect text\n\n\n if (style.text != null) {\n // Only restore transform when needs draw text.\n this.restoreTransform(ctx);\n this.drawRectText(ctx, this.getBoundingRect());\n }\n },\n getBoundingRect: function () {\n var style = this.style;\n\n if (!this._rect) {\n this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0);\n }\n\n return this._rect;\n }\n};\nzrUtil.inherits(ZImage, Displayable);\nvar _default = ZImage;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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*/\nfunction _default(ecModel, payload) {\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\n var graph = seriesModel.getGraph();\n var nodes = graph.nodes;\n\n if (nodes.length) {\n var minValue = Infinity;\n var maxValue = -Infinity;\n zrUtil.each(nodes, function (node) {\n var nodeValue = node.getLayout().value;\n\n if (nodeValue < minValue) {\n minValue = nodeValue;\n }\n\n if (nodeValue > maxValue) {\n maxValue = nodeValue;\n }\n });\n zrUtil.each(nodes, function (node) {\n var mapping = new VisualMapping({\n type: 'color',\n mappingMethod: 'linear',\n dataExtent: [minValue, maxValue],\n visual: seriesModel.get('color')\n });\n var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n var customColor = node.getModel().get('itemStyle.color');\n customColor != null ? node.setVisual('color', customColor) : node.setVisual('color', mapValueToColor);\n });\n }\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar layoutUtil = require(\"../../util/layout\");\n\nvar LegendView = require(\"./LegendView\");\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 * Separate legend and scrollable legend to reduce package size.\n */\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\nvar ScrollableLegendView = LegendView.extend({\n type: 'legend.scroll',\n newlineDisabled: true,\n init: function () {\n ScrollableLegendView.superCall(this, 'init');\n /**\n * @private\n * @type {number} For `scroll`.\n */\n\n this._currentIndex = 0;\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n this.group.add(this._containerGroup = new Group());\n\n this._containerGroup.add(this.getContentGroup());\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n\n this.group.add(this._controllerGroup = new Group());\n /**\n *\n * @private\n */\n\n this._showController;\n },\n\n /**\n * @override\n */\n resetInner: function () {\n ScrollableLegendView.superCall(this, 'resetInner');\n\n this._controllerGroup.removeAll();\n\n this._containerGroup.removeClipPath();\n\n this._containerGroup.__rectSize = null;\n },\n\n /**\n * @override\n */\n renderInner: function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var me = this; // Render content items.\n\n ScrollableLegendView.superCall(this, 'renderInner', itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n var controllerGroup = this._controllerGroup; // FIXME: support be 'auto' adapt to size number text length,\n // e.g., '3/12345' should not overlap with the control arrow button.\n\n var pageIconSize = legendModel.get('pageIconSize', true);\n\n if (!zrUtil.isArray(pageIconSize)) {\n pageIconSize = [pageIconSize, pageIconSize];\n }\n\n createPageButton('pagePrev', 0);\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n controllerGroup.add(new graphic.Text({\n name: 'pageText',\n style: {\n textFill: pageTextStyleModel.getTextColor(),\n font: pageTextStyleModel.getFont(),\n textVerticalAlign: 'middle',\n textAlign: '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 // Buttons will be created in each render, so we do not need\n // to worry about avoiding using legendModel kept in scope.\n onclick: zrUtil.bind(me._pageGo, me, pageDataIndexName, legendModel, api)\n }, {\n x: -pageIconSize[0] / 2,\n y: -pageIconSize[1] / 2,\n width: pageIconSize[0],\n height: pageIconSize[1]\n });\n icon.name = name;\n controllerGroup.add(icon);\n }\n },\n\n /**\n * @override\n */\n 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( // Buttons in selectorGroup always layout horizontally\n '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);\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.attr('position', selectorPos);\n }\n\n return mainRect;\n },\n _layoutContentAndController: function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx) {\n var contentGroup = this.getContentGroup();\n var containerGroup = this._containerGroup;\n var controllerGroup = this._controllerGroup; // Place items in contentGroup.\n\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n layoutUtil.box( // Buttons in controller are layout always horizontally.\n '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]; // Remain contentPos when scroll animation perfroming.\n // If first rendering, `contentGroup.position` is [0, 0], which\n // does not make sense and may cause unexepcted animation if adopted.\n\n if (!isFirstRender) {\n contentPos[orientIdx] = contentGroup.position[orientIdx];\n } // Layout container group based on 0.\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)); // Place containerGroup and controllerGroup and contentGroup.\n\n if (showController) {\n var pageButtonPosition = legendModel.get('pageButtonPosition', true); // controller is on the right / bottom.\n\n if (pageButtonPosition === 'end') {\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n } // controller is on the left / top.\n else {\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n }\n } // Always align controller to content as 'middle'.\n\n\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n contentGroup.attr('position', contentPos);\n containerGroup.attr('position', containerPos);\n controllerGroup.attr('position', controllerPos); // Calculate `mainRect` and set `clipPath`.\n // mainRect should not be calculated by `this.group.getBoundingRect()`\n // for sake of the overflow.\n\n var mainRect = {\n x: 0,\n y: 0\n }; // Consider content may be overflow (should be clipped).\n\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]); // `containerRect[yx] + containerPos[1 - orientIdx]` is 0.\n\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 })); // Consider content may be larger than container, container rect\n // can not be obtained from `containerGroup.getBoundingRect()`.\n\n containerGroup.__rectSize = clipShape[wh];\n } else {\n // Do not remove or ignore controller. Keep them set as placeholders.\n controllerGroup.eachChild(function (child) {\n child.attr({\n invisible: true,\n silent: true\n });\n });\n } // Content translate animation.\n\n\n var pageInfo = this._getPageInfo(legendModel);\n\n pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n position: pageInfo.contentPosition\n }, // When switch from \"show controller\" to \"not show controller\", view should be\n // updated immediately without animation, otherwise causes weird effect.\n showController ? legendModel : false);\n\n this._updatePageInfoView(legendModel, pageInfo);\n\n return mainRect;\n },\n _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 _updatePageInfoView: function (legendModel, pageInfo) {\n var controllerGroup = this._controllerGroup;\n zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n var canJump = pageInfo[name + 'DataIndex'] != 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).replace('{total}', total) : pageFormatter({\n current: current,\n total: total\n }));\n },\n\n /**\n * @param {module:echarts/model/Model} legendModel\n * @return {Object} {\n * contentPosition: Array., null when data item not found.\n * pageIndex: number, null when data item not found.\n * pageCount: number, always be a number, can be 0.\n * pagePrevDataIndex: number, null when no previous page.\n * pageNextDataIndex: number, null when no next page.\n * }\n */\n _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.position.slice(),\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; // Strategy:\n // (1) Always align based on the left/top most item.\n // (2) It is user-friendly that the last item shown in the\n // current window is shown at the begining of next window.\n // Otherwise if half of the last item is cut by the window,\n // it will have no chance to display entirely.\n // (3) Consider that item size probably be different, we\n // have calculate pageIndex by size rather than item index,\n // and we can not get page index directly by division.\n // (4) The window is to narrow to contain more than\n // one item, we should make sure that the page can be fliped.\n\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // Half of the last item is out of the window.\n !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || // If the current item does not intersect with the window, the new page\n // can be started at the current item or the last item.\n currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n if (winEndItemInfo.i > winStartItemInfo.i) {\n winStartItemInfo = winEndItemInfo;\n } else {\n // e.g., when page size is smaller than item size.\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 ( // If the the end item does not intersect with the window started\n // from the current item, a page can be settled.\n (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && // e.g., when page size is smaller than item size.\n 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.position[orientIdx];\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 _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; // FIXME\n // If the given targetDataIndex (from model) is illegal,\n // we use defaultIndex. But the index on the legend model and\n // action payload is still illegal. That case will not be\n // changed until some scenario requires.\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});\nvar _default = ScrollableLegendView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../Axis\");\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 * @constructor module:echarts/coord/parallel/ParallelAxis\n * @extends {module:echarts/coord/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.} coordExtent\n * @param {string} axisType\n */\nvar ParallelAxis = function (dim, scale, coordExtent, axisType, axisIndex) {\n Axis.call(this, dim, scale, coordExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = axisType || 'value';\n /**\n * @type {number}\n * @readOnly\n */\n\n this.axisIndex = axisIndex;\n};\n\nParallelAxis.prototype = {\n constructor: ParallelAxis,\n\n /**\n * Axis model\n * @param {module:echarts/coord/parallel/AxisModel}\n */\n model: null,\n\n /**\n * @override\n */\n isHorizontal: function () {\n return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n }\n};\nzrUtil.inherits(ParallelAxis, Axis);\nvar _default = ParallelAxis;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar _model = require(\"../../util/model\");\n\nvar makeInner = _model.makeInner;\nvar getDataItemValue = _model.getDataItemValue;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar each = _util.each;\nvar map = _util.map;\nvar isArray = _util.isArray;\nvar isString = _util.isString;\nvar isObject = _util.isObject;\nvar isTypedArray = _util.isTypedArray;\nvar isArrayLike = _util.isArrayLike;\nvar extend = _util.extend;\nvar assert = _util.assert;\n\nvar Source = require(\"../Source\");\n\nvar _sourceType = require(\"./sourceType\");\n\nvar SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL;\nvar SOURCE_FORMAT_ARRAY_ROWS = _sourceType.SOURCE_FORMAT_ARRAY_ROWS;\nvar SOURCE_FORMAT_OBJECT_ROWS = _sourceType.SOURCE_FORMAT_OBJECT_ROWS;\nvar SOURCE_FORMAT_KEYED_COLUMNS = _sourceType.SOURCE_FORMAT_KEYED_COLUMNS;\nvar SOURCE_FORMAT_UNKNOWN = _sourceType.SOURCE_FORMAT_UNKNOWN;\nvar SOURCE_FORMAT_TYPED_ARRAY = _sourceType.SOURCE_FORMAT_TYPED_ARRAY;\nvar SERIES_LAYOUT_BY_ROW = _sourceType.SERIES_LAYOUT_BY_ROW;\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// The result of `guessOrdinal`.\nvar BE_ORDINAL = {\n Must: 1,\n // Encounter string but not '-' and not number-like.\n Might: 2,\n // Encounter string but number-like.\n Not: 3 // Other cases\n\n};\nvar inner = makeInner();\n/**\n * @see {module:echarts/data/Source}\n * @param {module:echarts/component/dataset/DatasetModel} datasetModel\n * @return {string} sourceFormat\n */\n\nfunction detectSourceFormat(datasetModel) {\n var data = datasetModel.option.source;\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n if (isTypedArray(data)) {\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n } else if (isArray(data)) {\n // FIXME Whether tolerate null in top level array?\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 (data.hasOwnProperty(key) && isArrayLike(data[key])) {\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n break;\n }\n }\n } else if (data != null) {\n throw new Error('Invalid data');\n }\n\n inner(datasetModel).sourceFormat = sourceFormat;\n}\n/**\n * [Scenarios]:\n * (1) Provide source data directly:\n * series: {\n * encode: {...},\n * dimensions: [...]\n * seriesLayoutBy: 'row',\n * data: [[...]]\n * }\n * (2) Refer to datasetModel.\n * series: [{\n * encode: {...}\n * // Ignore datasetIndex means `datasetIndex: 0`\n * // and the dimensions defination in dataset is used\n * }, {\n * encode: {...},\n * seriesLayoutBy: 'column',\n * datasetIndex: 1\n * }]\n *\n * Get data from series itself or datset.\n * @return {module:echarts/data/Source} source\n */\n\n\nfunction getSource(seriesModel) {\n return inner(seriesModel).source;\n}\n/**\n * MUST be called before mergeOption of all series.\n * @param {module:echarts/model/Global} ecModel\n */\n\n\nfunction resetSourceDefaulter(ecModel) {\n // `datasetMap` is used to make default encode.\n inner(ecModel).datasetMap = createHashMap();\n}\n/**\n * [Caution]:\n * MUST be called after series option merged and\n * before \"series.getInitailData()\" called.\n *\n * [The rule of making default encode]:\n * Category axis (if exists) alway map to the first dimension.\n * Each other axis occupies a subsequent dimension.\n *\n * [Why make default encode]:\n * Simplify the typing of encode in option, avoiding the case like that:\n * series: [{encode: {x: 0, y: 1}}, {encode: {x: 0, y: 2}}, {encode: {x: 0, y: 3}}],\n * where the \"y\" have to be manually typed as \"1, 2, 3, ...\".\n *\n * @param {module:echarts/model/Series} seriesModel\n */\n\n\nfunction prepareSource(seriesModel) {\n var seriesOption = seriesModel.option;\n var data = seriesOption.data;\n var sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n var fromDataset = false;\n var seriesLayoutBy = seriesOption.seriesLayoutBy;\n var sourceHeader = seriesOption.sourceHeader;\n var dimensionsDefine = seriesOption.dimensions;\n var datasetModel = getDatasetModel(seriesModel);\n\n if (datasetModel) {\n var datasetOption = datasetModel.option;\n data = datasetOption.source;\n sourceFormat = inner(datasetModel).sourceFormat;\n fromDataset = true; // These settings from series has higher priority.\n\n seriesLayoutBy = seriesLayoutBy || datasetOption.seriesLayoutBy;\n sourceHeader == null && (sourceHeader = datasetOption.sourceHeader);\n dimensionsDefine = dimensionsDefine || datasetOption.dimensions;\n }\n\n var completeResult = completeBySourceData(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine);\n inner(seriesModel).source = new Source({\n data: data,\n fromDataset: fromDataset,\n seriesLayoutBy: seriesLayoutBy,\n sourceFormat: sourceFormat,\n dimensionsDefine: completeResult.dimensionsDefine,\n startIndex: completeResult.startIndex,\n dimensionsDetectCount: completeResult.dimensionsDetectCount,\n // Note: dataset option does not have `encode`.\n encodeDefine: seriesOption.encode\n });\n} // return {startIndex, dimensionsDefine, dimensionsCount}\n\n\nfunction completeBySourceData(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n if (!data) {\n return {\n dimensionsDefine: normalizeDimensionsDefine(dimensionsDefine)\n };\n }\n\n var dimensionsDetectCount;\n var startIndex;\n\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n // Rule: Most of the first line are string: it is header.\n // Caution: consider a line with 5 string and 1 number,\n // it still can not be sure it is a head, because the\n // 5 string may be 5 values of category columns.\n if (sourceHeader === 'auto' || sourceHeader == null) {\n arrayRowsTravelFirst(function (val) {\n // '-' is regarded as null/undefined.\n if (val != null && val !== '-') {\n if (isString(val)) {\n startIndex == null && (startIndex = 1);\n } else {\n startIndex = 0;\n }\n } // 10 is an experience number, avoid long loop.\n\n }, seriesLayoutBy, data, 10);\n } else {\n startIndex = 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, data);\n }\n\n dimensionsDetectCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? data.length : data[0] ? data[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 dimensionsDetectCount = isArray(value0) && value0.length || 1;\n } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {}\n\n return {\n startIndex: startIndex,\n dimensionsDefine: normalizeDimensionsDefine(dimensionsDefine),\n dimensionsDetectCount: dimensionsDetectCount\n };\n} // Consider dimensions defined like ['A', 'price', 'B', 'price', 'C', 'price'],\n// which is reasonable. But dimension name is duplicated.\n// Returns undefined or an array contains only object without null/undefiend or string.\n\n\nfunction normalizeDimensionsDefine(dimensionsDefine) {\n if (!dimensionsDefine) {\n // The meaning of null/undefined is different from empty array.\n return;\n }\n\n var nameMap = createHashMap();\n return map(dimensionsDefine, function (item, index) {\n item = extend({}, isObject(item) ? item : {\n name: item\n }); // User can set null in dimensions.\n // We dont auto specify name, othewise a given name may\n // cause it be refered unexpectedly.\n\n if (item.name == null) {\n return item;\n } // Also consider number form like 2012.\n\n\n item.name += ''; // User may also specify displayName.\n // displayName will always exists except user not\n // specified or dim name is not specified or detected.\n // (A auto generated dim name will not be used as\n // displayName).\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 maxLoop == null && (maxLoop = Infinity);\n\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\nfunction objectRowsCollectDimensions(data) {\n var firstIndex = 0;\n var obj;\n\n while (firstIndex < data.length && !(obj = data[firstIndex++])) {} // jshint ignore: line\n\n\n if (obj) {\n var dimensions = [];\n each(obj, function (value, key) {\n dimensions.push(key);\n });\n return dimensions;\n }\n}\n/**\n * [The strategy of the arrengment of data dimensions for dataset]:\n * \"value way\": all axes are non-category axes. So series one by one take\n * several (the number is coordSysDims.length) dimensions from dataset.\n * The result of data arrengment of data dimensions like:\n * | ser0_x | ser0_y | ser1_x | ser1_y | ser2_x | ser2_y |\n * \"category way\": at least one axis is category axis. So the the first data\n * dimension is always mapped to the first category axis and shared by\n * all of the series. The other data dimensions are taken by series like\n * \"value way\" does.\n * The result of data arrengment of data dimensions like:\n * | ser_shared_x | ser0_y | ser1_y | ser2_y |\n *\n * @param {Array.} coordDimensions [{name: , type: , dimsDef: }, ...]\n * @param {module:model/Series} seriesModel\n * @param {module:data/Source} source\n * @return {Object} encode Never be `null/undefined`.\n */\n\n\nfunction makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n var encode = {};\n var datasetModel = getDatasetModel(seriesModel); // Currently only make default when using dataset, util more reqirements occur.\n\n if (!datasetModel || !coordDimensions) {\n return encode;\n }\n\n var encodeItemName = [];\n var encodeSeriesName = [];\n var ecModel = seriesModel.ecModel;\n var datasetMap = inner(ecModel).datasetMap;\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n var baseCategoryDimIndex;\n var categoryWayValueDimStart;\n coordDimensions = coordDimensions.slice();\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n !isObject(coordDimInfo) && (coordDimensions[coordDimIdx] = {\n name: coordDimInfo\n });\n\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n baseCategoryDimIndex = coordDimIdx;\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimensions[coordDimIdx]);\n }\n\n encode[coordDimInfo.name] = [];\n });\n var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n categoryWayDim: categoryWayValueDimStart,\n valueWayDim: 0\n }); // TODO\n // Auto detect first time axis and do arrangement.\n\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n var coordDimName = coordDimInfo.name;\n var count = getDataDimCountOnCoordDim(coordDimInfo); // In value way.\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; // ??? TODO give a better default series name rule?\n // especially when encode x y specified.\n // consider: when mutiple series share one dimension\n // category axis, series name should better use\n // the other dimsion name. On the other hand, use\n // both dimensions name.\n } // In category way, the first category axis.\n else if (baseCategoryDimIndex === coordDimIdx) {\n pushDim(encode[coordDimName], 0, count);\n pushDim(encodeItemName, 0, count);\n } // In category way, the other axis.\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}\n/**\n * Work for data like [{name: ..., value: ...}, ...].\n *\n * @param {module:model/Series} seriesModel\n * @param {module:data/Source} source\n * @return {Object} encode Never be `null/undefined`.\n */\n\n\nfunction makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n var encode = {};\n var datasetModel = getDatasetModel(seriesModel); // Currently only make default when using dataset, util more reqirements occur.\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 } // idxResult: {v, n}.\n\n\n var idxResult = function () {\n var idxRes0 = {};\n var idxRes1 = {};\n var guessRecords = []; // 5 is an experience value.\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; // [Strategy of idxRes0]: find the first BE_ORDINAL.Not as the value dim,\n // and then find a name dim with the priority:\n // \"BE_ORDINAL.Might|BE_ORDINAL.Must\" > \"other dim\" > \"the value dim itself\".\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 } // [Strategy of idxRes1]: if idxRes0 not satisfied (that is, no BE_ORDINAL.Not),\n // find the first BE_ORDINAL.Might as the value dim,\n // and then find a name dim with the priority:\n // \"other dim\" > \"the value dim itself\".\n // That is for backward compat: number-like (e.g., `'3'`, `'55'`) can be\n // treated as number.\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; // `potentialNameDimIndex` has highest priority.\n\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n; // By default, label use itemName in charts.\n // So we dont set encodeLabel here.\n\n encode.itemName = [nameDimIndex];\n encode.seriesName = [nameDimIndex];\n }\n\n return encode;\n}\n/**\n * If return null/undefined, indicate that should not use datasetModel.\n */\n\n\nfunction getDatasetModel(seriesModel) {\n var option = seriesModel.option; // Caution: consider the scenario:\n // A dataset is declared and a series is not expected to use the dataset,\n // and at the beginning `setOption({series: { noData })` (just prepare other\n // option but no data), then `setOption({series: {data: [...]}); In this case,\n // the user should set an empty array to avoid that dataset is used by default.\n\n var thisData = option.data;\n\n if (!thisData) {\n return seriesModel.ecModel.getComponent('dataset', option.datasetIndex || 0);\n }\n}\n/**\n * The rule should not be complex, otherwise user might not\n * be able to known where the data is wrong.\n * The code is ugly, but how to make it neat?\n *\n * @param {module:echars/data/Source} source\n * @param {number} dimIndex\n * @return {BE_ORDINAL} guess result.\n */\n\n\nfunction guessOrdinal(source, dimIndex) {\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n} // dimIndex may be overflow source data.\n// return {BE_ORDINAL}\n\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n var result; // Experience value.\n\n var maxLoop = 5;\n\n if (isTypedArray(data)) {\n return BE_ORDINAL.Not;\n } // When sourceType is 'objectRows' or 'keyedColumns', dimensionsDefine\n // always exists in source.\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 if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n var sample = data[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 < data.length && i < maxLoop; i++) {\n var row = data[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 if (!dimName) {\n return BE_ORDINAL.Not;\n }\n\n for (var i = 0; i < data.length && i < maxLoop; i++) {\n var item = data[i];\n\n if (item && (result = detectValue(item[dimName])) != null) {\n return result;\n }\n }\n } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n if (!dimName) {\n return BE_ORDINAL.Not;\n }\n\n var sample = data[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 for (var i = 0; i < data.length && i < maxLoop; i++) {\n var item = data[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); // Consider usage convenience, '1', '2' will be treated as \"number\".\n // `isFinit('')` get `true`.\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\nexports.BE_ORDINAL = BE_ORDINAL;\nexports.detectSourceFormat = detectSourceFormat;\nexports.getSource = getSource;\nexports.resetSourceDefaulter = resetSourceDefaulter;\nexports.prepareSource = prepareSource;\nexports.makeSeriesEncodeForAxisCoordSys = makeSeriesEncodeForAxisCoordSys;\nexports.makeSeriesEncodeForNameBased = makeSeriesEncodeForNameBased;\nexports.guessOrdinal = guessOrdinal;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Line = require(\"./Line\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\nvar curveUtil = require(\"zrender/lib/core/curve\");\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 * Provide effect for line\n * @module echarts/chart/helper/EffectLine\n */\n\n/**\n * @constructor\n * @extends {module:zrender/graphic/Group}\n * @alias {module:echarts/chart/helper/Line}\n */\nfunction EffectLine(lineData, idx, seriesScope) {\n graphic.Group.call(this);\n this.add(this.createLine(lineData, idx, seriesScope));\n\n this._updateEffectSymbol(lineData, idx);\n}\n\nvar effectLineProto = EffectLine.prototype;\n\neffectLineProto.createLine = function (lineData, idx, seriesScope) {\n return new Line(lineData, idx, seriesScope);\n};\n\neffectLineProto._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 color = effectModel.get('color') || lineData.getItemVisual(idx, 'color');\n var symbol = this.childAt(1);\n\n if (this._symbolType !== symbolType) {\n // Remove previous\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 } // Symbol may be removed if loop is false\n\n\n if (!symbol) {\n return;\n } // Shadow color is same with color in default\n\n\n symbol.setStyle('shadowColor', color);\n symbol.setStyle(effectModel.getItemStyle(['color']));\n symbol.attr('scale', size);\n symbol.setColor(color);\n symbol.attr('scale', size);\n this._symbolType = symbolType;\n this._symbolScale = size;\n\n this._updateEffectAnimation(lineData, effectModel, idx);\n};\n\neffectLineProto._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 var isDelayFunc = typeof delayExpr === 'function'; // Ignore when updating\n\n symbol.ignore = true;\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 var delay = delayExpr;\n\n if (isDelayFunc) {\n delay = delayExpr(idx);\n }\n\n if (symbol.__t > 0) {\n delay = -period * symbol.__t;\n }\n\n symbol.__t = 0;\n var animator = symbol.animate('', loop).when(period, {\n __t: 1\n }).delay(delay).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 this._period = period;\n this._loop = loop;\n};\n\neffectLineProto.getLineLength = function (symbol) {\n // Not so accurate\n return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2);\n};\n\neffectLineProto.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\neffectLineProto.updateData = function (lineData, idx, seriesScope) {\n this.childAt(0).updateData(lineData, idx, seriesScope);\n\n this._updateEffectSymbol(lineData, idx);\n};\n\neffectLineProto.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.position;\n var lastPos = [pos[0], pos[1]];\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); // Tangent\n\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; // enable continuity trail for 'line', 'rect', 'roundRect' symbolType\n\n if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\n if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\n var scaleY = vec2.dist(lastPos, pos) * 1.05;\n symbol.attr('scale', [symbol.scale[0], scaleY]); // make sure the last segment render within endPoint\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 // After first loop, symbol.__t does NOT start with 0, so connect p1 to pos directly.\n var scaleY = 2 * vec2.dist(p1, pos);\n symbol.attr('scale', [symbol.scale[0], scaleY]);\n } else {\n symbol.attr('scale', this._symbolScale);\n }\n }\n\n symbol.__lastT = symbol.__t;\n symbol.ignore = false;\n};\n\neffectLineProto.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\nzrUtil.inherits(EffectLine, graphic.Group);\nvar _default = EffectLine;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar visualSolution = require(\"../../visual/visualSolution\");\n\nvar selector = require(\"./selector\");\n\nvar throttleUtil = require(\"../../util/throttle\");\n\nvar BrushTargetManager = require(\"../helper/BrushTargetManager\");\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*/\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\nvar PRIORITY_BRUSH = echarts.PRIORITY.VISUAL.BRUSH;\n/**\n * Layout for visual, the priority higher than other layout, and before brush visual.\n */\n\necharts.registerLayout(PRIORITY_BRUSH, function (ecModel, api, payload) {\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});\n\nfunction 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}\n/**\n * Register the visual encoding if this modules required.\n */\n\n\necharts.registerVisual(PRIORITY_BRUSH, function (ecModel, api, payload) {\n var brushSelected = [];\n var throttleType;\n var throttleDelay;\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 }; // Every brush component exists in event params, convenient\n // for user to find by index.\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 = 0;\n\n if (!brushIndex) {\n // Only the first throttle setting works.\n throttleType = brushOption.throttleType;\n throttleDelay = brushOption.throttleDelay;\n } // Add boundingRect and selectors to range.\n\n\n var areas = zrUtil.map(brushModel.areas, function (area) {\n return bindSelector(zrUtil.defaults({\n boundingRect: boundingRectBuilders[area.brushType](area)\n }, area));\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 } // If no supported brush or no brush on the series,\n // all visuals should be in original state.\n\n\n function brushed(rangeInfoList) {\n return !!rangeInfoList.length;\n }\n /**\n * Logic for each series: (If the logic has to be modified one day, do it carefully!)\n *\n * ( brushed ┬ && ┬hasBrushExist ┬ && linkOthers ) => StepA: ┬record, ┬ StepB: ┬visualByRecord.\n * !brushed┘ ├hasBrushExist ┤ └nothing,┘ ├visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( !brushed && ┬hasBrushExist ┬ && linkOthers ) => StepA: nothing, StepB: ┬visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( brushed ┬ && !linkOthers ) => StepA: nothing, StepB: ┬visualByCheck.\n * !brushed┘ └nothing.\n * ( !brushed && !linkOthers ) => StepA: nothing, StepB: nothing.\n */\n // Step A\n\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex, rangeInfoList) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n });\n\n function stepAParallel(seriesModel, seriesIndex) {\n var coordSys = seriesModel.coordinateSystem;\n 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 var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\n\n if (!selectorsByBrushType || brushModelNotControll(brushModel, seriesIndex)) {\n return;\n }\n\n zrUtil.each(areas, function (area) {\n selectorsByBrushType[area.brushType] && brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel) && rangeInfoList.push(area);\n hasBrushExists |= brushed(rangeInfoList);\n });\n\n if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n var data = seriesModel.getData();\n data.each(function (dataIndex) {\n if (checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex)) {\n selectedDataIndexForLink[dataIndex] = 1;\n }\n });\n }\n } // Step B\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 }; // Every series exists in event params, convenient\n // for user to find series by seriesIndex.\n\n thisBrushSelected.selected.push(seriesBrushSelected);\n var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\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(selectorsByBrushType, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n }; // If no supported brush or no brush, all visuals are in original state.\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\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n // This event will not be triggered when `setOpion`, otherwise dead lock may\n // triggered when do `setOption` in event listener, which we do not find\n // satisfactory way to solve yet. Some considered resolutions:\n // (a) Diff with prevoius selected data ant only trigger event when changed.\n // But store previous data and diff precisely (i.e., not only by dataIndex, but\n // also detect value changes in selected data) might bring complexity or fragility.\n // (b) Use spectial param like `silent` to suppress event triggering.\n // But such kind of volatile param may be weird in `setOption`.\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(selectorsByBrushType, rangeInfoList, data, dataIndex) {\n for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n var area = rangeInfoList[i];\n\n if (selectorsByBrushType[area.brushType](dataIndex, data, area.selectors, area)) {\n return true;\n }\n }\n}\n\nfunction getSelectorsByBrushType(seriesModel) {\n var brushSelector = seriesModel.brushSelector;\n\n if (zrUtil.isString(brushSelector)) {\n var sels = [];\n zrUtil.each(selector, function (selectorsByElementType, brushType) {\n sels[brushType] = function (dataIndex, data, selectors, area) {\n var itemLayout = data.getItemLayout(dataIndex);\n return selectorsByElementType[brushSelector](itemLayout, selectors, area);\n };\n });\n return sels;\n } else if (zrUtil.isFunction(brushSelector)) {\n var bSelector = {};\n zrUtil.each(selector, function (sel, brushType) {\n bSelector[brushType] = brushSelector;\n });\n return bSelector;\n }\n\n return brushSelector;\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\nfunction bindSelector(area) {\n var selectors = area.selectors = {};\n zrUtil.each(selector[area.brushType], function (selFn, elType) {\n // Do not use function binding or curry for performance.\n selectors[elType] = function (itemLayout) {\n return selFn(itemLayout, selectors, area);\n };\n });\n return area;\n}\n\nvar boundingRectBuilders = {\n lineX: zrUtil.noop,\n lineY: zrUtil.noop,\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\nexports.layoutCovers = layoutCovers;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./effectScatter/EffectScatterSeries\");\n\nrequire(\"./effectScatter/EffectScatterView\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar layoutPoints = require(\"../layout/points\");\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*/\necharts.registerVisual(visualSymbol('effectScatter', 'circle'));\necharts.registerLayout(layoutPoints('effectScatter'));","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\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 * @param {Object} finder contains {seriesIndex, dataIndex, dataIndexInside}\n * @param {module:echarts/model/Global} ecModel\n * @return {Object} {point: [x, y], el: ...} point Will not be null.\n */\nfunction _default(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 point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n return data.mapDimension(dim);\n }), dataIndex, true)) || [];\n } else if (el) {\n // Use graphic bounding rect\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\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _labelHelper = require(\"./labelHelper\");\n\nvar getDefaultLabel = _labelHelper.getDefaultLabel;\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 * @module echarts/chart/helper/Symbol\n */\n\n/**\n * @constructor\n * @alias {module:echarts/chart/helper/Symbol}\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @extends {module:zrender/graphic/Group}\n */\nfunction SymbolClz(data, idx, seriesScope) {\n graphic.Group.call(this);\n this.updateData(data, idx, seriesScope);\n}\n\nvar symbolProto = SymbolClz.prototype;\n/**\n * @public\n * @static\n * @param {module:echarts/data/List} data\n * @param {number} dataIndex\n * @return {Array.} [width, height]\n */\n\nvar getSymbolSize = SymbolClz.getSymbolSize = function (data, idx) {\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\n return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n};\n\nfunction getScale(symbolSize) {\n return [symbolSize[0] / 2, symbolSize[1] / 2];\n}\n\nfunction driftSymbol(dx, dy) {\n this.parent.drift(dx, dy);\n}\n\nsymbolProto._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n // Remove paths created before\n this.removeAll();\n var color = data.getItemVisual(idx, 'color'); // var symbolPath = createSymbol(\n // symbolType, -0.5, -0.5, 1, 1, color\n // );\n // If width/height are set too small (e.g., set to 1) on ios10\n // and macOS Sierra, a circle stroke become a rect, no matter what\n // the scale is set. So we set width/height as 2. See #4150.\n\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, color, keepAspect);\n symbolPath.attr({\n z2: 100,\n culling: true,\n scale: getScale(symbolSize)\n }); // Rewrite drift method\n\n symbolPath.drift = driftSymbol;\n this._symbolType = symbolType;\n this.add(symbolPath);\n};\n/**\n * Stop animation\n * @param {boolean} toLastFrame\n */\n\n\nsymbolProto.stopSymbolAnimation = function (toLastFrame) {\n this.childAt(0).stopAnimation(toLastFrame);\n};\n/**\n * FIXME:\n * Caution: This method breaks the encapsulation of this module,\n * but it indeed brings convenience. So do not use the method\n * unless you detailedly know all the implements of `Symbol`,\n * especially animation.\n *\n * Get symbol path element.\n */\n\n\nsymbolProto.getSymbolPath = function () {\n return this.childAt(0);\n};\n/**\n * Get scale(aka, current symbol size).\n * Including the change caused by animation\n */\n\n\nsymbolProto.getScale = function () {\n return this.childAt(0).scale;\n};\n/**\n * Highlight symbol\n */\n\n\nsymbolProto.highlight = function () {\n this.childAt(0).trigger('emphasis');\n};\n/**\n * Downplay symbol\n */\n\n\nsymbolProto.downplay = function () {\n this.childAt(0).trigger('normal');\n};\n/**\n * @param {number} zlevel\n * @param {number} z\n */\n\n\nsymbolProto.setZ = function (zlevel, z) {\n var symbolPath = this.childAt(0);\n symbolPath.zlevel = zlevel;\n symbolPath.z = z;\n};\n\nsymbolProto.setDraggable = function (draggable) {\n var symbolPath = this.childAt(0);\n symbolPath.draggable = draggable;\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n};\n/**\n * Update symbol properties\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @param {Object} [seriesScope]\n * @param {Object} [seriesScope.itemStyle]\n * @param {Object} [seriesScope.hoverItemStyle]\n * @param {Object} [seriesScope.symbolRotate]\n * @param {Object} [seriesScope.symbolOffset]\n * @param {module:echarts/model/Model} [seriesScope.labelModel]\n * @param {module:echarts/model/Model} [seriesScope.hoverLabelModel]\n * @param {boolean} [seriesScope.hoverAnimation]\n * @param {Object} [seriesScope.cursorStyle]\n * @param {module:echarts/model/Model} [seriesScope.itemModel]\n * @param {string} [seriesScope.symbolInnerColor]\n * @param {Object} [seriesScope.fadeIn=false]\n */\n\n\nsymbolProto.updateData = function (data, idx, seriesScope) {\n this.silent = false;\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n var seriesModel = data.hostModel;\n var symbolSize = getSymbolSize(data, idx);\n var isInit = symbolType !== this._symbolType;\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 graphic.updateProps(symbolPath, {\n scale: getScale(symbolSize)\n }, seriesModel, idx);\n }\n\n this._updateCommon(data, idx, symbolSize, seriesScope);\n\n if (isInit) {\n var symbolPath = this.childAt(0);\n var fadeIn = seriesScope && seriesScope.fadeIn;\n var target = {\n scale: symbolPath.scale.slice()\n };\n fadeIn && (target.style = {\n opacity: symbolPath.style.opacity\n });\n symbolPath.scale = [0, 0];\n fadeIn && (symbolPath.style.opacity = 0);\n graphic.initProps(symbolPath, target, seriesModel, idx);\n }\n\n this._seriesModel = seriesModel;\n}; // Update common properties\n\n\nvar normalStyleAccessPath = ['itemStyle'];\nvar emphasisStyleAccessPath = ['emphasis', 'itemStyle'];\nvar normalLabelAccessPath = ['label'];\nvar emphasisLabelAccessPath = ['emphasis', 'label'];\n/**\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @param {Array.} symbolSize\n * @param {Object} [seriesScope]\n */\n\nsymbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {\n var symbolPath = this.childAt(0);\n var seriesModel = data.hostModel;\n var color = data.getItemVisual(idx, 'color'); // Reset style\n\n if (symbolPath.type !== 'image') {\n symbolPath.useStyle({\n strokeNoScale: true\n });\n } else {\n symbolPath.setStyle({\n opacity: 1,\n shadowBlur: null,\n shadowOffsetX: null,\n shadowOffsetY: null,\n shadowColor: null\n });\n }\n\n var itemStyle = seriesScope && seriesScope.itemStyle;\n var hoverItemStyle = seriesScope && seriesScope.hoverItemStyle;\n var symbolOffset = seriesScope && seriesScope.symbolOffset;\n var labelModel = seriesScope && seriesScope.labelModel;\n var hoverLabelModel = seriesScope && seriesScope.hoverLabelModel;\n var hoverAnimation = seriesScope && seriesScope.hoverAnimation;\n var cursorStyle = seriesScope && seriesScope.cursorStyle;\n\n if (!seriesScope || data.hasItemOption) {\n var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx); // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n itemStyle = itemModel.getModel(normalStyleAccessPath).getItemStyle(['color']);\n hoverItemStyle = itemModel.getModel(emphasisStyleAccessPath).getItemStyle();\n symbolOffset = itemModel.getShallow('symbolOffset');\n labelModel = itemModel.getModel(normalLabelAccessPath);\n hoverLabelModel = itemModel.getModel(emphasisLabelAccessPath);\n hoverAnimation = itemModel.getShallow('hoverAnimation');\n cursorStyle = itemModel.getShallow('cursor');\n } else {\n hoverItemStyle = zrUtil.extend({}, hoverItemStyle);\n }\n\n var elStyle = symbolPath.style;\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n if (symbolOffset) {\n symbolPath.attr('position', [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])]);\n }\n\n cursorStyle && symbolPath.attr('cursor', cursorStyle); // PENDING setColor before setStyle!!!\n\n symbolPath.setColor(color, seriesScope && seriesScope.symbolInnerColor);\n symbolPath.setStyle(itemStyle);\n var opacity = data.getItemVisual(idx, 'opacity');\n\n if (opacity != null) {\n elStyle.opacity = opacity;\n }\n\n var liftZ = data.getItemVisual(idx, 'liftZ');\n var z2Origin = symbolPath.__z2Origin;\n\n if (liftZ != null) {\n if (z2Origin == null) {\n symbolPath.__z2Origin = symbolPath.z2;\n symbolPath.z2 += liftZ;\n }\n } else if (z2Origin != null) {\n symbolPath.z2 = z2Origin;\n symbolPath.__z2Origin = null;\n }\n\n var useNameLabel = seriesScope && seriesScope.useNameLabel;\n graphic.setLabelStyle(elStyle, hoverItemStyle, labelModel, hoverLabelModel, {\n labelFetcher: seriesModel,\n labelDataIndex: idx,\n defaultText: getLabelDefaultText,\n isRectText: true,\n autoColor: color\n }); // Do not execute util needed.\n\n function getLabelDefaultText(idx, opt) {\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n }\n\n symbolPath.__symbolOriginalScale = getScale(symbolSize);\n symbolPath.hoverStyle = hoverItemStyle;\n symbolPath.highDownOnUpdate = hoverAnimation && seriesModel.isAnimationEnabled() ? highDownOnUpdate : null;\n graphic.setHoverStyle(symbolPath);\n};\n\nfunction highDownOnUpdate(fromState, toState) {\n // Do not support this hover animation util some scenario required.\n // Animation can only be supported in hover layer when using `el.incremetal`.\n if (this.incremental || this.useHoverLayer) {\n return;\n }\n\n if (toState === 'emphasis') {\n var scale = this.__symbolOriginalScale;\n var ratio = scale[1] / scale[0];\n var emphasisOpt = {\n scale: [Math.max(scale[0] * 1.1, scale[0] + 3), Math.max(scale[1] * 1.1, scale[1] + 3 * ratio)]\n }; // FIXME\n // modify it after support stop specified animation.\n // toState === fromState\n // ? (this.stopAnimation(), this.attr(emphasisOpt))\n\n this.animateTo(emphasisOpt, 400, 'elasticOut');\n } else if (toState === 'normal') {\n this.animateTo({\n scale: this.__symbolOriginalScale\n }, 400, 'elasticOut');\n }\n}\n/**\n * @param {Function} cb\n * @param {Object} [opt]\n * @param {Object} [opt.keepLabel=true]\n */\n\n\nsymbolProto.fadeOut = function (cb, opt) {\n var symbolPath = this.childAt(0); // Avoid mistaken hover when fading out\n\n this.silent = symbolPath.silent = true; // Not show text when animating\n\n !(opt && opt.keepLabel) && (symbolPath.style.text = null);\n graphic.updateProps(symbolPath, {\n style: {\n opacity: 0\n },\n scale: [0, 0]\n }, this._seriesModel, this.dataIndex, cb);\n};\n\nzrUtil.inherits(SymbolClz, graphic.Group);\nvar _default = SymbolClz;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar symbolUtil = require(\"../../util/symbol\");\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*/\nfunction normalizeSymbolSize(symbolSize) {\n if (!zrUtil.isArray(symbolSize)) {\n symbolSize = [+symbolSize, +symbolSize];\n }\n\n return symbolSize;\n}\n\nvar _default = echarts.extendChartView({\n type: 'radar',\n 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 var color = data.getItemVisual(idx, 'color');\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, color);\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate') || 0;\n symbolPath.attr({\n style: {\n strokeNoScale: true\n },\n z2: 100,\n scale: [symbolSize[0] / 2, 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 // Simply rerender all\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.attr('position', oldPoints[i]);\n graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n position: newPoints[i]\n }, seriesModel, idx);\n } else {\n symbolPath.attr('position', 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 color = data.getItemVisual(idx, 'color');\n group.add(itemGroup);\n polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n fill: 'none',\n stroke: color\n }));\n polyline.hoverStyle = itemModel.getModel('emphasis.lineStyle').getLineStyle();\n var areaStyleModel = itemModel.getModel('areaStyle');\n var hoverAreaStyleModel = itemModel.getModel('emphasis.areaStyle');\n var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n var hoverPolygonIgnore = hoverAreaStyleModel.isEmpty() && hoverAreaStyleModel.parentModel.isEmpty();\n hoverPolygonIgnore = hoverPolygonIgnore && polygonIgnore;\n polygon.ignore = polygonIgnore;\n polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n fill: color,\n opacity: 0.7\n }));\n polygon.hoverStyle = hoverAreaStyleModel.getAreaStyle();\n var itemStyle = itemModel.getModel('itemStyle').getItemStyle(['color']);\n var itemHoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n var labelModel = itemModel.getModel('label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n symbolGroup.eachChild(function (symbolPath) {\n symbolPath.setStyle(itemStyle);\n symbolPath.hoverStyle = zrUtil.clone(itemHoverStyle);\n var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);\n (defaultText == null || isNaN(defaultText)) && (defaultText = '');\n graphic.setLabelStyle(symbolPath.style, symbolPath.hoverStyle, labelModel, labelHoverModel, {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n labelDimIndex: symbolPath.__dimIdx,\n defaultText: defaultText,\n autoColor: color,\n isRectText: true\n });\n });\n\n itemGroup.highDownOnUpdate = function (fromState, toState) {\n polygon.attr('ignore', toState === 'emphasis' ? hoverPolygonIgnore : polygonIgnore);\n };\n\n graphic.setHoverStyle(itemGroup);\n });\n this._data = data;\n },\n remove: function () {\n this.group.removeAll();\n this._data = null;\n },\n dispose: function () {}\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar AxisBuilder = require(\"./AxisBuilder\");\n\nvar AxisView = require(\"./AxisView\");\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*/\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea', 'minorSplitLine'];\n\nvar _default = AxisView.extend({\n type: 'radiusAxis',\n axisPointerClass: 'PolarAxisPointer',\n render: function (radiusAxisModel, ecModel) {\n this.group.removeAll();\n\n if (!radiusAxisModel.get('show')) {\n return;\n }\n\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 this.group.add(axisBuilder.getGroup());\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (radiusAxisModel.get(name + '.show') && !radiusAxis.scale.isBlank()) {\n this['_' + name](radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\n }\n }, this);\n },\n\n /**\n * @private\n */\n _splitLine: function (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 } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitLines.length; i++) {\n this.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\n /**\n * @private\n */\n _minorSplitLine: function (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 this.group.add(graphic.mergePath(lines, {\n style: zrUtil.defaults({\n fill: null\n }, lineStyleModel.getLineStyle()),\n silent: true\n }));\n },\n\n /**\n * @private\n */\n _splitArea: function (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 } // Simple optimization\n // Batching the lines if color are the same\n\n\n for (var i = 0; i < splitAreas.length; i++) {\n this.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/**\n * @inner\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 // Over splitLine and splitArea\n z2: 1\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar createListFromArray = require(\"./chart/helper/createListFromArray\");\n\nvar axisHelper = require(\"./coord/axisHelper\");\n\nvar axisModelCommonMixin = require(\"./coord/axisModelCommonMixin\");\n\nvar Model = require(\"./model/Model\");\n\nvar _layout = require(\"./util/layout\");\n\nvar getLayoutRect = _layout.getLayoutRect;\nexports.getLayoutRect = _layout.getLayoutRect;\n\nvar _dataStackHelper = require(\"./data/helper/dataStackHelper\");\n\nvar enableDataStack = _dataStackHelper.enableDataStack;\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\n\nvar _completeDimensions = require(\"./data/helper/completeDimensions\");\n\nexports.completeDimensions = _completeDimensions;\n\nvar _createDimensions = require(\"./data/helper/createDimensions\");\n\nexports.createDimensions = _createDimensions;\n\nvar _symbol = require(\"./util/symbol\");\n\nexports.createSymbol = _symbol.createSymbol;\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// import createGraphFromNodeEdge from './chart/helper/createGraphFromNodeEdge';\n\n/**\n * Create a muti dimension List structure from seriesModel.\n * @param {module:echarts/model/Model} seriesModel\n * @return {module:echarts/data/List} list\n */\nfunction createList(seriesModel) {\n return createListFromArray(seriesModel.getSource(), seriesModel);\n} // export function createGraph(seriesModel) {\n// var nodes = seriesModel.get('data');\n// var links = seriesModel.get('links');\n// return createGraphFromNodeEdge(nodes, links, seriesModel);\n// }\n\n\nvar dataStack = {\n isDimensionStacked: isDimensionStacked,\n enableDataStack: enableDataStack,\n getStackedDimension: getStackedDimension\n};\n/**\n * Create a symbol element with given symbol configuration: shape, x, y, width, height, color\n * @param {string} symbolDesc\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {string} color\n */\n\n/**\n * Create scale\n * @param {Array.} dataExtent\n * @param {Object|module:echarts/Model} option\n */\nfunction createScale(dataExtent, option) {\n var axisModel = option;\n\n if (!Model.isInstance(option)) {\n axisModel = new Model(option);\n zrUtil.mixin(axisModel, axisModelCommonMixin);\n }\n\n var scale = axisHelper.createScaleByModel(axisModel);\n scale.setExtent(dataExtent[0], dataExtent[1]);\n axisHelper.niceScaleExtent(scale, axisModel);\n return scale;\n}\n/**\n * Mixin common methods to axis model,\n *\n * Inlcude methods\n * `getFormattedLabels() => Array.`\n * `getCategories() => Array.`\n * `getMin(origin: boolean) => number`\n * `getMax(origin: boolean) => number`\n * `getNeedCrossZero() => boolean`\n * `setRange(start: number, end: number)`\n * `resetRange()`\n */\n\n\nfunction mixinAxisModelCommonMethods(Model) {\n zrUtil.mixin(Model, axisModelCommonMixin);\n}\n\nexports.createList = createList;\nexports.dataStack = dataStack;\nexports.createScale = createScale;\nexports.mixinAxisModelCommonMethods = mixinAxisModelCommonMethods;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./scatter/ScatterSeries\");\n\nrequire(\"./scatter/ScatterView\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar layoutPoints = require(\"../layout/points\");\n\nrequire(\"../component/gridSimple\");\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// import * as zrUtil from 'zrender/src/core/util';\n// In case developer forget to include grid component\necharts.registerVisual(visualSymbol('scatter', 'circle'));\necharts.registerLayout(layoutPoints('scatter')); // echarts.registerProcessor(function (ecModel, api) {\n// ecModel.eachSeriesByType('scatter', function (seriesModel) {\n// var data = seriesModel.getData();\n// var coordSys = seriesModel.coordinateSystem;\n// if (coordSys.type !== 'geo') {\n// return;\n// }\n// var startPt = coordSys.pointToData([0, 0]);\n// var endPt = coordSys.pointToData([api.getWidth(), api.getHeight()]);\n// var dims = zrUtil.map(coordSys.dimensions, function (dim) {\n// return data.mapDimension(dim);\n// });\n// var range = {};\n// range[dims[0]] = [Math.min(startPt[0], endPt[0]), Math.max(startPt[0], endPt[0])];\n// range[dims[1]] = [Math.min(startPt[1], endPt[1]), Math.max(startPt[1], endPt[1])];\n// data.selectRange(range);\n// });\n// });","/**\n * 3x2矩阵操作类\n * @exports zrender/tool/matrix\n */\n\n/* global Float32Array */\nvar ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array;\n/**\n * Create a identity matrix.\n * @return {Float32Array|Array.}\n */\n\nfunction create() {\n var out = new ArrayCtor(6);\n identity(out);\n return out;\n}\n/**\n * 设置矩阵为单位矩阵\n * @param {Float32Array|Array.} out\n */\n\n\nfunction 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}\n/**\n * 复制矩阵\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} m\n */\n\n\nfunction 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}\n/**\n * 矩阵相乘\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} m1\n * @param {Float32Array|Array.} m2\n */\n\n\nfunction mul(out, m1, m2) {\n // Consider matrix.mul(m, m2, m);\n // where out is the same as m2.\n // So use temp variable to escape error.\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}\n/**\n * 平移变换\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n * @param {Float32Array|Array.} v\n */\n\n\nfunction 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}\n/**\n * 旋转变换\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n * @param {number} rad\n */\n\n\nfunction 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}\n/**\n * 缩放变换\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n * @param {Float32Array|Array.} v\n */\n\n\nfunction 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}\n/**\n * 求逆矩阵\n * @param {Float32Array|Array.} out\n * @param {Float32Array|Array.} a\n */\n\n\nfunction 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\n if (!det) {\n return null;\n }\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}\n/**\n * Clone a new matrix.\n * @param {Float32Array|Array.} a\n */\n\n\nfunction clone(a) {\n var b = create();\n copy(b, a);\n return b;\n}\n\nexports.create = create;\nexports.identity = identity;\nexports.copy = copy;\nexports.mul = mul;\nexports.translate = translate;\nexports.rotate = rotate;\nexports.scale = scale;\nexports.invert = invert;\nexports.clone = clone;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar axisDefault = require(\"../axisDefault\");\n\nvar Model = require(\"../../model/Model\");\n\nvar axisModelCommonMixin = require(\"../axisModelCommonMixin\");\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*/\nvar valueAxisDefault = axisDefault.valueAxis;\n\nfunction defaultsShow(opt, show) {\n return zrUtil.defaults({\n show: show\n }, opt);\n}\n\nvar RadarModel = echarts.extendComponentModel({\n type: 'radar',\n 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 axisType = this.get('axisType');\n var axisLabel = this.get('axisLabel');\n var nameTextStyle = this.get('name');\n var showName = this.get('name.show');\n var nameFormatter = this.get('name.formatter');\n var nameGap = this.get('nameGap');\n var triggerEvent = this.get('triggerEvent');\n var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n // PENDING\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 } // Use same configuration\n\n\n indicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n boundaryGap: boundaryGap,\n splitNumber: splitNumber,\n scale: scale,\n axisLine: axisLine,\n axisTick: axisTick,\n axisType: axisType,\n axisLabel: axisLabel,\n // Compatible with 2 and use text\n name: indicatorOpt.text,\n nameLocation: 'end',\n nameGap: nameGap,\n // min: 0,\n nameTextStyle: iNameTextStyle,\n triggerEvent: triggerEvent\n }, false);\n\n if (!showName) {\n indicatorOpt.name = '';\n }\n\n if (typeof nameFormatter === 'string') {\n var indName = indicatorOpt.name;\n indicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n } else if (typeof nameFormatter === 'function') {\n indicatorOpt.name = nameFormatter(indicatorOpt.name, indicatorOpt);\n }\n\n var model = zrUtil.extend(new Model(indicatorOpt, null, this.ecModel), axisModelCommonMixin); // For triggerEvent.\n\n model.mainType = 'radar';\n model.componentIndex = this.componentIndex;\n return model;\n }, this);\n\n this.getIndicatorModels = function () {\n return indicatorModels;\n };\n },\n defaultOption: {\n zlevel: 0,\n z: 0,\n center: ['50%', '50%'],\n radius: '75%',\n startAngle: 90,\n name: {\n show: true // formatter: null\n // textStyle: {}\n\n },\n boundaryGap: [0, 0],\n splitNumber: 5,\n nameGap: 15,\n scale: false,\n // Polygon or circle\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 axisType: 'interval',\n splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n // {text, min, max}\n indicator: []\n }\n});\nvar _default = RadarModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\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*/\nvar coordsOffsetMap = {\n '南海诸岛': [32, 80],\n // 全国\n '广东': [0, -10],\n '香港': [10, 5],\n '澳门': [-10, 10],\n //'北京': [-10, 0],\n '天津': [5, 5]\n};\n\nfunction _default(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\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar BaseBarSeries = require(\"./BaseBarSeries\");\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*/\nvar _default = BaseBarSeries.extend({\n type: 'series.bar',\n dependencies: ['grid', 'polar'],\n brushSelector: 'rect',\n\n /**\n * @override\n */\n getProgressive: function () {\n // Do not support progressive in normal mode.\n return this.get('large') ? this.get('progressive') : false;\n },\n\n /**\n * @override\n */\n getProgressiveThreshold: function () {\n // Do not support progressive in normal mode.\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 defaultOption: {\n // If clipped\n // Only available on cartesian2d\n clip: true,\n // If use caps on two sides of bars\n // Only available on tangential polar bar\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 }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar _model = require(\"../../util/model\");\n\nvar makeInner = _model.makeInner;\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*/\nvar inner = makeInner();\nvar each = zrUtil.each;\n/**\n * @param {string} key\n * @param {module:echarts/ExtensionAPI} api\n * @param {Function} handler\n * param: {string} currTrigger\n * param: {Array.} point\n */\n\nfunction 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')); // useHandler('mouseout', onLeave);\n\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 }; // FIXME\n // better approach?\n // 'showTip' and 'hideTip' can be triggered by axisPointer and tooltip,\n // which may be conflict, (axisPointer call showTip but tooltip call hideTip);\n // So we have to add \"final stage\" to merge those dispatched actions.\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/**\n * @param {string} key\n * @param {module:echarts/ExtensionAPI} api\n */\n\n\nfunction 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\nexports.register = register;\nexports.unregister = unregister;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Scale = require(\"./Scale\");\n\nvar OrdinalMeta = require(\"../data/OrdinalMeta\");\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 * Linear continuous scale\n * @module echarts/coord/scale/Ordinal\n *\n * http://en.wikipedia.org/wiki/Level_of_measurement\n */\n// FIXME only one data\nvar scaleProto = Scale.prototype;\nvar OrdinalScale = Scale.extend({\n type: 'ordinal',\n\n /**\n * @param {module:echarts/data/OrdianlMeta|Array.} ordinalMeta\n */\n init: function (ordinalMeta, extent) {\n // Caution: Should not use instanceof, consider ec-extensions using\n // import approach to get OrdinalMeta class.\n if (!ordinalMeta || zrUtil.isArray(ordinalMeta)) {\n ordinalMeta = new OrdinalMeta({\n categories: ordinalMeta\n });\n }\n\n this._ordinalMeta = ordinalMeta;\n this._extent = extent || [0, ordinalMeta.categories.length - 1];\n },\n parse: function (val) {\n return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) // val might be float.\n : Math.round(val);\n },\n contain: function (rank) {\n rank = this.parse(rank);\n return scaleProto.contain.call(this, rank) && this._ordinalMeta.categories[rank] != null;\n },\n\n /**\n * Normalize given rank or name to linear [0, 1]\n * @param {number|string} [val]\n * @return {number}\n */\n normalize: function (val) {\n return scaleProto.normalize.call(this, this.parse(val));\n },\n scale: function (val) {\n return Math.round(scaleProto.scale.call(this, val));\n },\n\n /**\n * @return {Array}\n */\n getTicks: function () {\n var ticks = [];\n var extent = this._extent;\n var rank = extent[0];\n\n while (rank <= extent[1]) {\n ticks.push(rank);\n rank++;\n }\n\n return ticks;\n },\n\n /**\n * Get item on rank n\n * @param {number} n\n * @return {string}\n */\n getLabel: function (n) {\n if (!this.isBlank()) {\n // Note that if no data, ordinalMeta.categories is an empty array.\n return this._ordinalMeta.categories[n];\n }\n },\n\n /**\n * @return {number}\n */\n count: function () {\n return this._extent[1] - this._extent[0] + 1;\n },\n\n /**\n * @override\n */\n unionExtentFromData: function (data, dim) {\n this.unionExtent(data.getApproximateExtent(dim));\n },\n getOrdinalMeta: function () {\n return this._ordinalMeta;\n },\n niceTicks: zrUtil.noop,\n niceExtent: zrUtil.noop\n});\n/**\n * @return {module:echarts/scale/Time}\n */\n\nOrdinalScale.create = function () {\n return new OrdinalScale();\n};\n\nvar _default = OrdinalScale;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar MarkerModel = require(\"./MarkerModel\");\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*/\nvar _default = MarkerModel.extend({\n type: 'markLine',\n defaultOption: {\n zlevel: 0,\n z: 5,\n symbol: ['circle', 'arrow'],\n symbolSize: [8, 16],\n //symbolRotate: 0,\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});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\nvar _createClipPathFromCoordSys = require(\"../helper/createClipPathFromCoordSys\");\n\nvar createClipPath = _createClipPathFromCoordSys.createClipPath;\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*/\nvar NORMAL_ITEM_STYLE_PATH = ['itemStyle'];\nvar EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];\nvar SKIP_PROPS = ['color', 'color0', 'borderColor', 'borderColor0'];\nvar CandlestickView = ChartView.extend({\n type: 'candlestick',\n render: function (seriesModel, ecModel, api) {\n // If there is clipPath created in large mode. Remove it.\n this.group.removeClipPath();\n\n this._updateDrawMode(seriesModel);\n\n this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n },\n incrementalPrepareRender: function (seriesModel, ecModel, api) {\n this._clear();\n\n this._updateDrawMode(seriesModel);\n },\n incrementalRender: function (params, seriesModel, ecModel, api) {\n this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n },\n _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 _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(); // There is no old data only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n if (!this._data) {\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var el;\n var itemLayout = data.getItemLayout(newIdx);\n\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n return;\n }\n\n 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); // Empty data\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 _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 _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 el;\n var itemLayout = data.getItemLayout(dataIndex);\n el = createNormalBox(itemLayout, dataIndex);\n setBoxCommon(el, data, dataIndex, isSimpleBox);\n el.incremental = true;\n this.group.add(el);\n }\n },\n _incrementalRenderLarge: function (params, seriesModel) {\n createLarge(seriesModel, this.group, true);\n },\n remove: function (ecModel) {\n this._clear();\n },\n _clear: function () {\n this.group.removeAll();\n this._data = null;\n },\n dispose: zrUtil.noop\n});\nvar NormalBoxPath = Path.extend({\n type: 'normalCandlestickBox',\n shape: {},\n 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\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 any point are in the region.\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 var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);\n var color = data.getItemVisual(dataIndex, 'color');\n var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color; // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var itemStyle = normalItemStyleModel.getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.strokeNoScale = true;\n el.style.fill = color;\n el.style.stroke = borderColor;\n el.__simpleBox = isSimpleBox;\n var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();\n graphic.setHoverStyle(el, hoverStyle);\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 LargeBoxPath = Path.extend({\n type: 'largeCandlestickBox',\n shape: {},\n buildPath: function (ctx, shape) {\n // Drawing lines is more efficient than drawing\n // a whole line or drawing rects.\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\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 suffix = sign > 0 ? 'P' : 'N';\n var borderColor = data.getVisual('borderColor' + suffix) || data.getVisual('color' + suffix); // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var itemStyle = seriesModel.getModel(NORMAL_ITEM_STYLE_PATH).getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.fill = null;\n el.style.stroke = borderColor; // No different\n // el.style.lineWidth = .5;\n}\n\nvar _default = CandlestickView;\nmodule.exports = _default;","var zrUtil = require(\"../core/util\");\n\nvar Style = require(\"./Style\");\n\nvar Element = require(\"../Element\");\n\nvar RectText = require(\"./mixin/RectText\");\n\n/**\n * Base class of all displayable graphic objects\n * @module zrender/graphic/Displayable\n */\n\n/**\n * @alias module:zrender/graphic/Displayable\n * @extends module:zrender/Element\n * @extends module:zrender/graphic/mixin/RectText\n */\nfunction Displayable(opts) {\n opts = opts || {};\n Element.call(this, opts); // Extend properties\n\n for (var name in opts) {\n if (opts.hasOwnProperty(name) && name !== 'style') {\n this[name] = opts[name];\n }\n }\n /**\n * @type {module:zrender/graphic/Style}\n */\n\n\n this.style = new Style(opts.style, this);\n this._rect = null; // Shapes for cascade clipping.\n // Can only be `null`/`undefined` or an non-empty array, MUST NOT be an empty array.\n // because it is easy to only using null to check whether clipPaths changed.\n\n this.__clipPaths = null; // FIXME Stateful must be mixined after style is setted\n // Stateful.call(this, opts);\n}\n\nDisplayable.prototype = {\n constructor: Displayable,\n type: 'displayable',\n\n /**\n * Dirty flag. From which painter will determine if this displayable object needs brush.\n * @name module:zrender/graphic/Displayable#__dirty\n * @type {boolean}\n */\n __dirty: true,\n\n /**\n * Whether the displayable object is visible. when it is true, the displayable object\n * is not drawn, but the mouse event can still trigger the object.\n * @name module:/zrender/graphic/Displayable#invisible\n * @type {boolean}\n * @default false\n */\n invisible: false,\n\n /**\n * @name module:/zrender/graphic/Displayable#z\n * @type {number}\n * @default 0\n */\n z: 0,\n\n /**\n * @name module:/zrender/graphic/Displayable#z\n * @type {number}\n * @default 0\n */\n z2: 0,\n\n /**\n * The z level determines the displayable object can be drawn in which layer canvas.\n * @name module:/zrender/graphic/Displayable#zlevel\n * @type {number}\n * @default 0\n */\n zlevel: 0,\n\n /**\n * Whether it can be dragged.\n * @name module:/zrender/graphic/Displayable#draggable\n * @type {boolean}\n * @default false\n */\n draggable: false,\n\n /**\n * Whether is it dragging.\n * @name module:/zrender/graphic/Displayable#draggable\n * @type {boolean}\n * @default false\n */\n dragging: false,\n\n /**\n * Whether to respond to mouse events.\n * @name module:/zrender/graphic/Displayable#silent\n * @type {boolean}\n * @default false\n */\n silent: false,\n\n /**\n * If enable culling\n * @type {boolean}\n * @default false\n */\n culling: false,\n\n /**\n * Mouse cursor when hovered\n * @name module:/zrender/graphic/Displayable#cursor\n * @type {string}\n */\n cursor: 'pointer',\n\n /**\n * If hover area is bounding rect\n * @name module:/zrender/graphic/Displayable#rectHover\n * @type {string}\n */\n rectHover: false,\n\n /**\n * Render the element progressively when the value >= 0,\n * usefull for large data.\n * @type {boolean}\n */\n progressive: false,\n\n /**\n * @type {boolean}\n */\n incremental: false,\n\n /**\n * Scale ratio for global scale.\n * @type {boolean}\n */\n globalScaleRatio: 1,\n beforeBrush: function (ctx) {},\n afterBrush: function (ctx) {},\n\n /**\n * Graphic drawing method.\n * @param {CanvasRenderingContext2D} ctx\n */\n // Interface\n brush: function (ctx, prevEl) {},\n\n /**\n * Get the minimum bounding box.\n * @return {module:zrender/core/BoundingRect}\n */\n // Interface\n getBoundingRect: function () {},\n\n /**\n * If displayable element contain coord x, y\n * @param {number} x\n * @param {number} y\n * @return {boolean}\n */\n contain: function (x, y) {\n return this.rectContain(x, y);\n },\n\n /**\n * @param {Function} cb\n * @param {} context\n */\n traverse: function (cb, context) {\n cb.call(context, this);\n },\n\n /**\n * If bounding rect of element contain coord x, y\n * @param {number} x\n * @param {number} y\n * @return {boolean}\n */\n 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\n /**\n * Mark displayable element dirty and refresh next frame\n */\n dirty: function () {\n this.__dirty = this.__dirtyText = true;\n this._rect = null;\n this.__zr && this.__zr.refresh();\n },\n\n /**\n * If displayable object binded any event\n * @return {boolean}\n */\n // TODO, events bound by bind\n // isSilent: function () {\n // return !(\n // this.hoverable || this.draggable\n // || this.onmousemove || this.onmouseover || this.onmouseout\n // || this.onmousedown || this.onmouseup || this.onclick\n // || this.ondragenter || this.ondragover || this.ondragleave\n // || this.ondrop\n // );\n // },\n\n /**\n * Alias for animate('style')\n * @param {boolean} loop\n */\n animateStyle: function (loop) {\n return this.animate('style', loop);\n },\n attrKV: function (key, value) {\n if (key !== 'style') {\n Element.prototype.attrKV.call(this, key, value);\n } else {\n this.style.set(value);\n }\n },\n\n /**\n * @param {Object|string} key\n * @param {*} value\n */\n setStyle: function (key, value) {\n this.style.set(key, value);\n this.dirty(false);\n return this;\n },\n\n /**\n * Use given style object\n * @param {Object} obj\n */\n useStyle: function (obj) {\n this.style = new Style(obj, this);\n this.dirty(false);\n return this;\n },\n\n /**\n * The string value of `textPosition` needs to be calculated to a real postion.\n * For example, `'inside'` is calculated to `[rect.width/2, rect.height/2]`\n * by default. See `contain/text.js#calculateTextPosition` for more details.\n * But some coutom shapes like \"pin\", \"flag\" have center that is not exactly\n * `[width/2, height/2]`. So we provide this hook to customize the calculation\n * for those shapes. It will be called if the `style.textPosition` is a string.\n * @param {Obejct} [out] Prepared out object. If not provided, this method should\n * be responsible for creating one.\n * @param {module:zrender/graphic/Style} style\n * @param {Object} rect {x, y, width, height}\n * @return {Obejct} out The same as the input out.\n * {\n * x: number. mandatory.\n * y: number. mandatory.\n * textAlign: string. optional. use style.textAlign by default.\n * textVerticalAlign: string. optional. use style.textVerticalAlign by default.\n * }\n */\n calculateTextPosition: null\n};\nzrUtil.inherits(Displayable, Element);\nzrUtil.mixin(Displayable, RectText); // zrUtil.mixin(Displayable, Stateful);\n\nvar _default = Displayable;\nmodule.exports = _default;","\r\n\r\n/**\r\n * @description on(element, event, handler)\r\n */\r\nexport const on = (function () {\r\n if (document.addEventListener) {\r\n return function (element, event, handler) {\r\n if (element && event && handler) {\r\n element.addEventListener(event, handler, false)\r\n }\r\n }\r\n } else {\r\n return function (element, event, handler) {\r\n if (element && event && handler) {\r\n element.attachEvent('on' + event, handler)\r\n }\r\n }\r\n }\r\n})()\r\n\r\n/**\r\n * @description off(element, event, handler)\r\n */\r\nexport const off = (function () {\r\n if (document.removeEventListener) {\r\n return function (element, event, handler) {\r\n if (element && event) {\r\n element.removeEventListener(event, handler, false)\r\n }\r\n }\r\n } else {\r\n return function (element, event, handler) {\r\n if (element && event) {\r\n element.detachEvent('on' + event, handler)\r\n }\r\n }\r\n }\r\n})()\r\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\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar ChartView = require(\"../../view/Chart\");\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 * @param {module:echarts/model/Series} seriesModel\n * @param {boolean} hasAnimation\n * @inner\n */\nfunction updateDataSelected(uid, seriesModel, hasAnimation, api) {\n var data = seriesModel.getData();\n var dataIndex = this.dataIndex;\n var name = data.getName(dataIndex);\n var selectedOffset = seriesModel.get('selectedOffset');\n api.dispatchAction({\n type: 'pieToggleSelect',\n from: uid,\n name: name,\n seriesId: seriesModel.id\n });\n data.each(function (idx) {\n toggleItemSelected(data.getItemGraphicEl(idx), data.getItemLayout(idx), seriesModel.isSelected(data.getName(idx)), selectedOffset, hasAnimation);\n });\n}\n/**\n * @param {module:zrender/graphic/Sector} el\n * @param {Object} layout\n * @param {boolean} isSelected\n * @param {number} selectedOffset\n * @param {boolean} hasAnimation\n * @inner\n */\n\n\nfunction toggleItemSelected(el, layout, isSelected, selectedOffset, hasAnimation) {\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var dx = Math.cos(midAngle);\n var dy = Math.sin(midAngle);\n var offset = isSelected ? selectedOffset : 0;\n var position = [dx * offset, dy * offset];\n hasAnimation // animateTo will stop revious animation like update transition\n ? el.animate().when(200, {\n position: position\n }).start('bounceOut') : el.attr('position', position);\n}\n/**\n * Piece of pie including Sector, Label, LabelLine\n * @constructor\n * @extends {module:zrender/graphic/Group}\n */\n\n\nfunction PiePiece(data, idx) {\n graphic.Group.call(this);\n var sector = new graphic.Sector({\n z2: 2\n });\n var polyline = new graphic.Polyline();\n var text = new graphic.Text();\n this.add(sector);\n this.add(polyline);\n this.add(text);\n this.updateData(data, idx, true);\n}\n\nvar piePieceProto = PiePiece.prototype;\n\npiePieceProto.updateData = function (data, idx, firstCreate) {\n var sector = this.childAt(0);\n var labelLine = this.childAt(1);\n var labelText = this.childAt(2);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var sectorShape = zrUtil.extend({}, layout);\n sectorShape.label = null;\n var animationTypeUpdate = seriesModel.getShallow('animationTypeUpdate');\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 } // Expansion\n else {\n sector.shape.endAngle = layout.startAngle;\n graphic.updateProps(sector, {\n shape: {\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n }\n } else {\n if (animationTypeUpdate === 'expansion') {\n // Sectors are set to be target shape and an overlaying clipPath is used for animation\n sector.setShape(sectorShape);\n } else {\n // Transition animation from the old shape\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel, idx);\n }\n } // Update common style\n\n\n var visualColor = data.getItemVisual(idx, 'color');\n sector.useStyle(zrUtil.defaults({\n lineJoin: 'bevel',\n fill: visualColor\n }, itemModel.getModel('itemStyle').getItemStyle()));\n sector.hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle); // Toggle selected\n\n toggleItemSelected(this, data.getItemLayout(idx), seriesModel.isSelected(data.getName(idx)), seriesModel.get('selectedOffset'), seriesModel.get('animation')); // Label and text animation should be applied only for transition type animation when update\n\n var withAnimation = !firstCreate && animationTypeUpdate === 'transition';\n\n this._updateLabel(data, idx, withAnimation);\n\n this.highDownOnUpdate = !seriesModel.get('silent') ? function (fromState, toState) {\n var hasAnimation = seriesModel.isAnimationEnabled() && itemModel.get('hoverAnimation');\n\n if (toState === 'emphasis') {\n labelLine.ignore = labelLine.hoverIgnore;\n labelText.ignore = labelText.hoverIgnore; // Sector may has animation of updating data. Force to move to the last frame\n // Or it may stopped on the wrong shape\n\n if (hasAnimation) {\n sector.stopAnimation(true);\n sector.animateTo({\n shape: {\n r: layout.r + seriesModel.get('hoverOffset')\n }\n }, 300, 'elasticOut');\n }\n } else {\n labelLine.ignore = labelLine.normalIgnore;\n labelText.ignore = labelText.normalIgnore;\n\n if (hasAnimation) {\n sector.stopAnimation(true);\n sector.animateTo({\n shape: {\n r: layout.r\n }\n }, 300, 'elasticOut');\n }\n }\n } : null;\n graphic.setHoverStyle(this);\n};\n\npiePieceProto._updateLabel = function (data, idx, withAnimation) {\n var labelLine = this.childAt(1);\n var labelText = this.childAt(2);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var labelLayout = layout.label;\n var visualColor = data.getItemVisual(idx, 'color');\n\n if (!labelLayout || isNaN(labelLayout.x) || isNaN(labelLayout.y)) {\n labelText.ignore = labelText.normalIgnore = labelText.hoverIgnore = labelLine.ignore = labelLine.normalIgnore = labelLine.hoverIgnore = true;\n return;\n }\n\n var targetLineShape = {\n points: labelLayout.linePoints || [[labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y]]\n };\n var targetTextStyle = {\n x: labelLayout.x,\n y: labelLayout.y\n };\n\n if (withAnimation) {\n graphic.updateProps(labelLine, {\n shape: targetLineShape\n }, seriesModel, idx);\n graphic.updateProps(labelText, {\n style: targetTextStyle\n }, seriesModel, idx);\n } else {\n labelLine.attr({\n shape: targetLineShape\n });\n labelText.attr({\n style: targetTextStyle\n });\n }\n\n labelText.attr({\n rotation: labelLayout.rotation,\n origin: [labelLayout.x, labelLayout.y],\n z2: 10\n });\n var labelModel = itemModel.getModel('label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineHoverModel = itemModel.getModel('emphasis.labelLine');\n var visualColor = data.getItemVisual(idx, 'color');\n graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel, {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n defaultText: labelLayout.text,\n autoColor: visualColor,\n useInsideStyle: !!labelLayout.inside\n }, {\n textAlign: labelLayout.textAlign,\n textVerticalAlign: labelLayout.verticalAlign,\n opacity: data.getItemVisual(idx, 'opacity')\n });\n labelText.ignore = labelText.normalIgnore = !labelModel.get('show');\n labelText.hoverIgnore = !labelHoverModel.get('show');\n labelLine.ignore = labelLine.normalIgnore = !labelLineModel.get('show');\n labelLine.hoverIgnore = !labelLineHoverModel.get('show'); // Default use item visual color\n\n labelLine.setStyle({\n stroke: visualColor,\n opacity: data.getItemVisual(idx, 'opacity')\n });\n labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle());\n labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle();\n var smooth = labelLineModel.get('smooth');\n\n if (smooth && smooth === true) {\n smooth = 0.4;\n }\n\n labelLine.setShape({\n smooth: smooth\n });\n};\n\nzrUtil.inherits(PiePiece, graphic.Group); // Pie view\n\nvar PieView = ChartView.extend({\n type: 'pie',\n init: function () {\n var sectorGroup = new graphic.Group();\n this._sectorGroup = sectorGroup;\n },\n render: function (seriesModel, ecModel, api, payload) {\n if (payload && payload.from === this.uid) {\n return;\n }\n\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var hasAnimation = ecModel.get('animation');\n var isFirstRender = !oldData;\n var animationType = seriesModel.get('animationType');\n var animationTypeUpdate = seriesModel.get('animationTypeUpdate');\n var onSectorClick = zrUtil.curry(updateDataSelected, this.uid, seriesModel, hasAnimation, api);\n var selectedMode = seriesModel.get('selectedMode');\n data.diff(oldData).add(function (idx) {\n var piePiece = new PiePiece(data, idx); // Default expansion animation\n\n if (isFirstRender && animationType !== 'scale') {\n piePiece.eachChild(function (child) {\n child.stopAnimation(true);\n });\n }\n\n selectedMode && piePiece.on('click', onSectorClick);\n data.setItemGraphicEl(idx, piePiece);\n group.add(piePiece);\n }).update(function (newIdx, oldIdx) {\n var piePiece = oldData.getItemGraphicEl(oldIdx);\n\n if (!isFirstRender && animationTypeUpdate !== 'transition') {\n piePiece.eachChild(function (child) {\n child.stopAnimation(true);\n });\n }\n\n piePiece.updateData(data, newIdx);\n piePiece.off('click');\n selectedMode && piePiece.on('click', onSectorClick);\n group.add(piePiece);\n data.setItemGraphicEl(newIdx, piePiece);\n }).remove(function (idx) {\n var piePiece = oldData.getItemGraphicEl(idx);\n group.remove(piePiece);\n }).execute();\n\n if (hasAnimation && data.count() > 0 && (isFirstRender ? animationType !== 'scale' : animationTypeUpdate !== 'transition')) {\n var shape = data.getItemLayout(0);\n\n for (var s = 1; isNaN(shape.startAngle) && s < data.count(); ++s) {\n shape = data.getItemLayout(s);\n }\n\n var r = Math.max(api.getWidth(), api.getHeight()) / 2;\n var removeClipPath = zrUtil.bind(group.removeClipPath, group);\n group.setClipPath(this._createClipPath(shape.cx, shape.cy, r, shape.startAngle, shape.clockwise, removeClipPath, seriesModel, isFirstRender));\n } else {\n // clipPath is used in first-time animation, so remove it when otherwise. See: #8994\n group.removeClipPath();\n }\n\n this._data = data;\n },\n dispose: function () {},\n _createClipPath: function (cx, cy, r, startAngle, clockwise, cb, seriesModel, isFirstRender) {\n var clipPath = new graphic.Sector({\n shape: {\n cx: cx,\n cy: cy,\n r0: 0,\n r: r,\n startAngle: startAngle,\n endAngle: startAngle,\n clockwise: clockwise\n }\n });\n var initOrUpdate = isFirstRender ? graphic.initProps : graphic.updateProps;\n initOrUpdate(clipPath, {\n shape: {\n endAngle: startAngle + (clockwise ? 1 : -1) * Math.PI * 2\n }\n }, seriesModel, cb);\n return clipPath;\n },\n\n /**\n * @implement\n */\n 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});\nvar _default = PieView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _multipleGraphEdgeHelper = require(\"../helper/multipleGraphEdgeHelper\");\n\nvar getCurvenessForEdge = _multipleGraphEdgeHelper.getCurvenessForEdge;\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*/\nfunction 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}\n\nfunction 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\nexports.simpleLayout = simpleLayout;\nexports.simpleLayoutEdge = simpleLayoutEdge;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Polar = require(\"./Polar\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _axisHelper = require(\"../../coord/axisHelper\");\n\nvar createScaleByModel = _axisHelper.createScaleByModel;\nvar niceScaleExtent = _axisHelper.niceScaleExtent;\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\n\nrequire(\"./PolarModel\");\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// TODO Axis scale\n\n/**\n * Resize method bound to the polar\n * @param {module:echarts/coord/polar/PolarModel} polarModel\n * @param {module:echarts/ExtensionAPI} api\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 // r0 = 0\n radius = [0, radius];\n }\n\n radius = [parsePercent(radius[0], size), parsePercent(radius[1], size)];\n radiusAxis.inverse ? radiusAxis.setExtent(radius[1], radius[0]) : radiusAxis.setExtent(radius[0], radius[1]);\n}\n/**\n * Update polar\n */\n\n\nfunction updatePolarScale(ecModel, api) {\n var polar = this;\n var angleAxis = polar.getAngleAxis();\n var radiusAxis = polar.getRadiusAxis(); // Reset scale\n\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 = seriesModel.getData();\n zrUtil.each(data.mapDimension('radius', true), function (dim) {\n radiusAxis.scale.unionExtentFromData(data, getStackedDimension(data, dim));\n });\n zrUtil.each(data.mapDimension('angle', true), function (dim) {\n angleAxis.scale.unionExtentFromData(data, getStackedDimension(data, dim));\n });\n }\n });\n niceScaleExtent(angleAxis.scale, angleAxis.model);\n niceScaleExtent(radiusAxis.scale, radiusAxis.model); // Fix extent of category angle axis\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/**\n * Set common axis properties\n * @param {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n * @param {module:echarts/coord/polar/AxisModel}\n * @inner\n */\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 (axisModel.mainType === 'angleAxis') {\n axis.inverse ^= axisModel.get('clockwise');\n var startAngle = axisModel.get('startAngle');\n axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\n } // Inject axis instance\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); // Inject resize and update method\n\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 }); // Inject coordinateSystem to series\n\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'polar') {\n var polarModel = ecModel.queryComponents({\n mainType: 'polar',\n index: seriesModel.get('polarIndex'),\n id: seriesModel.get('polarId')\n })[0];\n seriesModel.coordinateSystem = polarModel.coordinateSystem;\n }\n });\n return polarList;\n }\n};\nCoordinateSystem.register('polar', 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\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _number = require(\"../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _dataStackHelper = require(\"../data/helper/dataStackHelper\");\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\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*/\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/**\n * @param {string} seriesType\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\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 // Check series coordinate, do layout for polar only\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 /*, baseDim*/\n );\n var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true);\n var valueAxisStart = valueAxis.dim === 'radius' ? valueAxis.dataToRadius(0) : valueAxis.dataToAngle(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; // Because of the barMinHeight, we can not use the value in\n // stackResultDimension directly.\n // Only ordinal axis can be stacked.\n\n if (stacked) {\n if (!lastStackCoords[stackId][baseValue]) {\n lastStackCoords[stackId][baseValue] = {\n p: valueAxisStart,\n // Positive stack\n n: valueAxisStart // Negative stack\n\n };\n } // Should also consider #4243\n\n\n baseCoord = lastStackCoords[stackId][baseValue][sign];\n }\n\n var r0;\n var r;\n var startAngle;\n var endAngle; // radial sector\n\n if (valueAxis.dim === 'radius') {\n var radiusSpan = valueAxis.dataToRadius(value) - valueAxisStart;\n var angle = baseAxis.dataToAngle(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 } // tangential sector\n else {\n var angleSpan = valueAxis.dataToAngle(value, clampLayout) - valueAxisStart;\n var radius = baseAxis.dataToRadius(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; // if the previous stack is at the end of the ring,\n // add a round to differentiate it from origin\n // var extent = angleAxis.getExtent();\n // var stackCoord = angle;\n // if (stackCoord === extent[0] && value > 0) {\n // stackCoord = extent[1];\n // }\n // else if (stackCoord === extent[1] && value < 0) {\n // stackCoord = extent[0];\n // }\n\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 // Consider that positive angle is anti-clockwise,\n // while positive radian of sector is clockwise\n startAngle: -startAngle * Math.PI / 180,\n endAngle: -endAngle * Math.PI / 180\n });\n }\n }, this);\n}\n/**\n * Calculate bar width and offset for radial bar charts\n */\n\n\nfunction calRadialBar(barSeries, api) {\n // Columns info on each category axis. Key is polar name\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); // Find if any auto calculated bar exceeded maxBarWidth\n\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 }); // Recalculate width again\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\nvar _default = barLayoutPolar;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar Path = require(\"zrender/lib/graphic/Path\");\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*/\nvar _default = Path.extend({\n type: 'echartsGaugePointer',\n shape: {\n angle: 0,\n width: 10,\n r: 10,\n x: 0,\n y: 0\n },\n 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 return;\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar ComponentModel = require(\"../../model/Component\");\n\nvar Model = require(\"../../model/Model\");\n\nvar selectableMixin = require(\"../../component/helper/selectableMixin\");\n\nvar geoCreator = require(\"./geoCreator\");\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*/\nvar GeoModel = ComponentModel.extend({\n type: 'geo',\n\n /**\n * @type {module:echarts/coord/geo/Geo}\n */\n coordinateSystem: null,\n layoutMode: 'box',\n init: function (option) {\n ComponentModel.prototype.init.apply(this, arguments); // Default label emphasis `show`\n\n modelUtil.defaultEmphasis(option, 'label', ['show']);\n },\n optionUpdated: function () {\n var option = this.option;\n var self = this;\n option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\n this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n if (regionOpt.name) {\n optionModelMap.set(regionOpt.name, new Model(regionOpt, self));\n }\n\n return optionModelMap;\n }, zrUtil.createHashMap());\n this.updateSelectedMap(option.regions);\n },\n defaultOption: {\n zlevel: 0,\n z: 0,\n show: true,\n left: 'center',\n top: 'center',\n // width:,\n // height:,\n // right\n // bottom\n // Aspect is width / height. Inited to be geoJson bbox aspect\n // This parameter is used for scale this aspect\n // If svg used, aspectScale is 1 by default.\n // aspectScale: 0.75,\n aspectScale: null,\n ///// Layout with center and size\n // If you wan't to put map in a fixed size box with right aspect ratio\n // This two properties may more conveninet\n // layoutCenter: [50%, 50%]\n // layoutSize: 100\n silent: false,\n // Map type\n map: '',\n // Define left-top, right-bottom coords to control view\n // For example, [ [180, 90], [-180, -90] ]\n boundingCoords: null,\n // Default on center of map\n center: null,\n zoom: 1,\n scaleLimit: null,\n // selectedMode: false\n label: {\n show: false,\n color: '#000'\n },\n itemStyle: {\n // color: 各异,\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 regions: []\n },\n\n /**\n * Get model of region\n * @param {string} name\n * @return {module:echarts/model/Model}\n */\n getRegionModel: function (name) {\n return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n },\n\n /**\n * Format label\n * @param {string} name Region name\n * @param {string} [status='normal'] 'normal' or 'emphasis'\n * @return {string}\n */\n getFormattedLabel: function (name, status) {\n status = status || 'normal';\n var regionModel = this.getRegionModel(name);\n var formatter = regionModel.get((status === 'normal' ? '' : status + '.') + '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 setZoom: function (zoom) {\n this.option.zoom = zoom;\n },\n setCenter: function (center) {\n this.option.center = center;\n }\n});\nzrUtil.mixin(GeoModel, selectableMixin);\nvar _default = GeoModel;\nmodule.exports = _default;","/**\n * Event Mixin\n * @module zrender/mixin/Eventful\n * @author Kener (@Kener-林峰, kener.linfeng@gmail.com)\n * pissang (https://www.github.com/pissang)\n */\nvar arrySlice = Array.prototype.slice;\n/**\n * Event dispatcher.\n *\n * @alias module:zrender/mixin/Eventful\n * @constructor\n * @param {Object} [eventProcessor] The object eventProcessor is the scope when\n * `eventProcessor.xxx` called.\n * @param {Function} [eventProcessor.normalizeQuery]\n * param: {string|Object} Raw query.\n * return: {string|Object} Normalized query.\n * @param {Function} [eventProcessor.filter] Event will be dispatched only\n * if it returns `true`.\n * param: {string} eventType\n * param: {string|Object} query\n * return: {boolean}\n * @param {Function} [eventProcessor.afterTrigger] Called after all handlers called.\n * param: {string} eventType\n */\n\nvar Eventful = function (eventProcessor) {\n this._$handlers = {};\n this._$eventProcessor = eventProcessor;\n};\n\nEventful.prototype = {\n constructor: Eventful,\n\n /**\n * The handler can only be triggered once, then removed.\n *\n * @param {string} event The event name.\n * @param {string|Object} [query] Condition used on event filter.\n * @param {Function} handler The event handler.\n * @param {Object} context\n */\n one: function (event, query, handler, context) {\n return on(this, event, query, handler, context, true);\n },\n\n /**\n * Bind a handler.\n *\n * @param {string} event The event name.\n * @param {string|Object} [query] Condition used on event filter.\n * @param {Function} handler The event handler.\n * @param {Object} [context]\n */\n on: function (event, query, handler, context) {\n return on(this, event, query, handler, context, false);\n },\n\n /**\n * Whether any handler has bound.\n *\n * @param {string} event\n * @return {boolean}\n */\n isSilent: function (event) {\n var _h = this._$handlers;\n return !_h[event] || !_h[event].length;\n },\n\n /**\n * Unbind a event.\n *\n * @param {string} [event] The event name.\n * If no `event` input, \"off\" all listeners.\n * @param {Function} [handler] The event handler.\n * If no `handler` input, \"off\" all listeners of the `event`.\n */\n off: function (event, handler) {\n var _h = this._$handlers;\n\n if (!event) {\n this._$handlers = {};\n return this;\n }\n\n if (handler) {\n if (_h[event]) {\n var newList = [];\n\n for (var i = 0, l = _h[event].length; i < l; i++) {\n if (_h[event][i].h !== handler) {\n newList.push(_h[event][i]);\n }\n }\n\n _h[event] = newList;\n }\n\n if (_h[event] && _h[event].length === 0) {\n delete _h[event];\n }\n } else {\n delete _h[event];\n }\n\n return this;\n },\n\n /**\n * Dispatch a event.\n *\n * @param {string} type The event name.\n */\n trigger: function (type) {\n var _h = this._$handlers[type];\n var eventProcessor = this._$eventProcessor;\n\n if (_h) {\n var args = arguments;\n var argLen = args.length;\n\n if (argLen > 3) {\n args = arrySlice.call(args, 1);\n }\n\n var len = _h.length;\n\n for (var i = 0; i < len;) {\n var hItem = _h[i];\n\n if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(type, hItem.query)) {\n i++;\n continue;\n } // Optimize advise from backbone\n\n\n switch (argLen) {\n case 1:\n hItem.h.call(hItem.ctx);\n break;\n\n case 2:\n hItem.h.call(hItem.ctx, args[1]);\n break;\n\n case 3:\n hItem.h.call(hItem.ctx, args[1], args[2]);\n break;\n\n default:\n // have more than 2 given arguments\n hItem.h.apply(hItem.ctx, args);\n break;\n }\n\n if (hItem.one) {\n _h.splice(i, 1);\n\n len--;\n } else {\n i++;\n }\n }\n }\n\n eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(type);\n return this;\n },\n\n /**\n * Dispatch a event with context, which is specified at the last parameter.\n *\n * @param {string} type The event name.\n */\n triggerWithContext: function (type) {\n var _h = this._$handlers[type];\n var eventProcessor = this._$eventProcessor;\n\n if (_h) {\n var args = arguments;\n var argLen = args.length;\n\n if (argLen > 4) {\n args = arrySlice.call(args, 1, args.length - 1);\n }\n\n var ctx = args[args.length - 1];\n var len = _h.length;\n\n for (var i = 0; i < len;) {\n var hItem = _h[i];\n\n if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(type, hItem.query)) {\n i++;\n continue;\n } // Optimize advise from backbone\n\n\n switch (argLen) {\n case 1:\n hItem.h.call(ctx);\n break;\n\n case 2:\n hItem.h.call(ctx, args[1]);\n break;\n\n case 3:\n hItem.h.call(ctx, args[1], args[2]);\n break;\n\n default:\n // have more than 2 given arguments\n hItem.h.apply(ctx, args);\n break;\n }\n\n if (hItem.one) {\n _h.splice(i, 1);\n\n len--;\n } else {\n i++;\n }\n }\n }\n\n eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(type);\n return this;\n }\n};\n\nfunction normalizeQuery(host, query) {\n var eventProcessor = host._$eventProcessor;\n\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n query = eventProcessor.normalizeQuery(query);\n }\n\n return query;\n}\n\nfunction on(eventful, event, query, handler, context, isOnce) {\n var _h = eventful._$handlers;\n\n if (typeof query === 'function') {\n context = handler;\n handler = query;\n query = null;\n }\n\n if (!handler || !event) {\n return eventful;\n }\n\n query = normalizeQuery(eventful, query);\n\n if (!_h[event]) {\n _h[event] = [];\n }\n\n for (var i = 0; i < _h[event].length; i++) {\n if (_h[event][i].h === handler) {\n return eventful;\n }\n }\n\n var wrap = {\n h: handler,\n one: isOnce,\n query: query,\n ctx: context || eventful,\n // FIXME\n // Do not publish this feature util it is proved that it makes sense.\n callAtLast: handler.zrEventfulCallAtLast\n };\n var lastIndex = _h[event].length - 1;\n var lastWrap = _h[event][lastIndex];\n lastWrap && lastWrap.callAtLast ? _h[event].splice(lastIndex, 0, wrap) : _h[event].push(wrap);\n return eventful;\n} // ----------------------\n// The events in zrender\n// ----------------------\n\n/**\n * @event module:zrender/mixin/Eventful#onclick\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseover\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseout\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousemove\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousewheel\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmousedown\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#onmouseup\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondrag\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragstart\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragend\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragenter\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragleave\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondragover\n * @type {Function}\n * @default null\n */\n\n/**\n * @event module:zrender/mixin/Eventful#ondrop\n * @type {Function}\n * @default null\n */\n\n\nvar _default = Eventful;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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// import * as axisHelper from './axisHelper';\nvar _default = {\n /**\n * @param {boolean} origin\n * @return {number|string} min value or 'dataMin' or null/undefined (means auto) or NaN\n */\n getMin: function (origin) {\n var option = this.option;\n var min = !origin && option.rangeStart != null ? option.rangeStart : option.min;\n\n if (this.axis && min != null && min !== 'dataMin' && typeof min !== 'function' && !zrUtil.eqNaN(min)) {\n min = this.axis.scale.parse(min);\n }\n\n return min;\n },\n\n /**\n * @param {boolean} origin\n * @return {number|string} max value or 'dataMax' or null/undefined (means auto) or NaN\n */\n getMax: function (origin) {\n var option = this.option;\n var max = !origin && option.rangeEnd != null ? option.rangeEnd : option.max;\n\n if (this.axis && max != null && max !== 'dataMax' && typeof max !== 'function' && !zrUtil.eqNaN(max)) {\n max = this.axis.scale.parse(max);\n }\n\n return max;\n },\n\n /**\n * @return {boolean}\n */\n getNeedCrossZero: function () {\n var option = this.option;\n return option.rangeStart != null || option.rangeEnd != null ? false : !option.scale;\n },\n\n /**\n * Should be implemented by each axis model if necessary.\n * @return {module:echarts/model/Component} coordinate system model\n */\n getCoordSysModel: zrUtil.noop,\n\n /**\n * @param {number} rangeStart Can only be finite number or null/undefined or NaN.\n * @param {number} rangeEnd Can only be finite number or null/undefined or NaN.\n */\n setRange: function (rangeStart, rangeEnd) {\n this.option.rangeStart = rangeStart;\n this.option.rangeEnd = rangeEnd;\n },\n\n /**\n * Reset range\n */\n resetRange: function () {\n // rangeStart and rangeEnd is readonly.\n this.option.rangeStart = this.option.rangeEnd = null;\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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*/\nvar coordinateSystemCreators = {};\n\nfunction CoordinateSystemManager() {\n this._coordinateSystems = [];\n}\n\nCoordinateSystemManager.prototype = {\n constructor: CoordinateSystemManager,\n 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 update: function (ecModel, api) {\n zrUtil.each(this._coordinateSystems, function (coordSys) {\n coordSys.update && coordSys.update(ecModel, api);\n });\n },\n getCoordinateSystems: function () {\n return this._coordinateSystems.slice();\n }\n};\n\nCoordinateSystemManager.register = function (type, coordinateSystemCreator) {\n coordinateSystemCreators[type] = coordinateSystemCreator;\n};\n\nCoordinateSystemManager.get = function (type) {\n return coordinateSystemCreators[type];\n};\n\nvar _default = CoordinateSystemManager;\nmodule.exports = _default;","var curve = require(\"./curve\");\n\nvar vec2 = require(\"./vector\");\n\nvar bbox = require(\"./bbox\");\n\nvar BoundingRect = require(\"./BoundingRect\");\n\nvar _config = require(\"../config\");\n\nvar dpr = _config.devicePixelRatio;\n\n/**\n * Path 代理,可以在`buildPath`中用于替代`ctx`, 会保存每个path操作的命令到pathCommands属性中\n * 可以用于 isInsidePath 判断以及获取boundingRect\n *\n * @module zrender/core/PathProxy\n * @author Yi Shen (http://www.github.com/pissang)\n */\n// TODO getTotalLength, getPointAtLength\n\n/* global Float32Array */\nvar CMD = {\n M: 1,\n L: 2,\n C: 3,\n Q: 4,\n A: 5,\n Z: 6,\n // Rect\n R: 7\n}; // var CMD_MEM_SIZE = {\n// M: 3,\n// L: 3,\n// C: 7,\n// Q: 5,\n// A: 9,\n// R: 5,\n// Z: 1\n// };\n\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 hasTypedArray = typeof Float32Array !== 'undefined';\n/**\n * @alias module:zrender/core/PathProxy\n * @constructor\n */\n\nvar PathProxy = function (notSaveData) {\n this._saveData = !(notSaveData || false);\n\n if (this._saveData) {\n /**\n * Path data. Stored as flat array\n * @type {Array.}\n */\n this.data = [];\n }\n\n this._ctx = null;\n};\n/**\n * 快速计算Path包围盒(并不是最小包围盒)\n * @return {Object}\n */\n\n\nPathProxy.prototype = {\n constructor: PathProxy,\n _xi: 0,\n _yi: 0,\n _x0: 0,\n _y0: 0,\n // Unit x, Unit y. Provide for avoiding drawing that too short line segment\n _ux: 0,\n _uy: 0,\n _len: 0,\n _lineDash: null,\n _dashOffset: 0,\n _dashIdx: 0,\n _dashSum: 0,\n\n /**\n * @readOnly\n */\n setScale: function (sx, sy, segmentIgnoreThreshold) {\n // Compat. Previously there is no segmentIgnoreThreshold.\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n },\n getContext: function () {\n return this._ctx;\n },\n\n /**\n * @param {CanvasRenderingContext2D} ctx\n * @return {module:zrender/core/PathProxy}\n */\n beginPath: function (ctx) {\n this._ctx = ctx;\n ctx && ctx.beginPath();\n ctx && (this.dpr = ctx.dpr); // Reset\n\n if (this._saveData) {\n this._len = 0;\n }\n\n if (this._lineDash) {\n this._lineDash = null;\n this._dashOffset = 0;\n }\n\n return this;\n },\n\n /**\n * @param {number} x\n * @param {number} y\n * @return {module:zrender/core/PathProxy}\n */\n moveTo: function (x, y) {\n this.addData(CMD.M, x, y);\n this._ctx && this._ctx.moveTo(x, y); // x0, y0, xi, yi 是记录在 _dashedXXXXTo 方法中使用\n // xi, yi 记录当前点, x0, y0 在 closePath 的时候回到起始点。\n // 有可能在 beginPath 之后直接调用 lineTo,这时候 x0, y0 需要\n // 在 lineTo 方法中记录,这里先不考虑这种情况,dashed line 也只在 IE10- 中不支持\n\n this._x0 = x;\n this._y0 = y;\n this._xi = x;\n this._yi = y;\n return this;\n },\n\n /**\n * @param {number} x\n * @param {number} y\n * @return {module:zrender/core/PathProxy}\n */\n lineTo: function (x, y) {\n var exceedUnit = mathAbs(x - this._xi) > this._ux || mathAbs(y - this._yi) > this._uy // Force draw the first segment\n || this._len < 5;\n this.addData(CMD.L, x, y);\n\n if (this._ctx && exceedUnit) {\n this._needsDash() ? this._dashedLineTo(x, y) : this._ctx.lineTo(x, y);\n }\n\n if (exceedUnit) {\n this._xi = x;\n this._yi = y;\n }\n\n return this;\n },\n\n /**\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @param {number} x3\n * @param {number} y3\n * @return {module:zrender/core/PathProxy}\n */\n bezierCurveTo: function (x1, y1, x2, y2, x3, y3) {\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n\n if (this._ctx) {\n this._needsDash() ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3) : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n }\n\n this._xi = x3;\n this._yi = y3;\n return this;\n },\n\n /**\n * @param {number} x1\n * @param {number} y1\n * @param {number} x2\n * @param {number} y2\n * @return {module:zrender/core/PathProxy}\n */\n quadraticCurveTo: function (x1, y1, x2, y2) {\n this.addData(CMD.Q, x1, y1, x2, y2);\n\n if (this._ctx) {\n this._needsDash() ? this._dashedQuadraticTo(x1, y1, x2, y2) : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n }\n\n this._xi = x2;\n this._yi = y2;\n return this;\n },\n\n /**\n * @param {number} cx\n * @param {number} cy\n * @param {number} r\n * @param {number} startAngle\n * @param {number} endAngle\n * @param {boolean} anticlockwise\n * @return {module:zrender/core/PathProxy}\n */\n arc: function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n this.addData(CMD.A, cx, cy, r, r, startAngle, endAngle - startAngle, 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 // TODO\n arcTo: function (x1, y1, x2, y2, radius) {\n if (this._ctx) {\n this._ctx.arcTo(x1, y1, x2, y2, radius);\n }\n\n return this;\n },\n // TODO\n 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\n /**\n * @return {module:zrender/core/PathProxy}\n */\n closePath: function () {\n this.addData(CMD.Z);\n var ctx = this._ctx;\n var x0 = this._x0;\n var y0 = this._y0;\n\n if (ctx) {\n this._needsDash() && this._dashedLineTo(x0, y0);\n ctx.closePath();\n }\n\n this._xi = x0;\n this._yi = y0;\n return this;\n },\n\n /**\n * Context 从外部传入,因为有可能是 rebuildPath 完之后再 fill。\n * stroke 同样\n * @param {CanvasRenderingContext2D} ctx\n * @return {module:zrender/core/PathProxy}\n */\n fill: function (ctx) {\n ctx && ctx.fill();\n this.toStatic();\n },\n\n /**\n * @param {CanvasRenderingContext2D} ctx\n * @return {module:zrender/core/PathProxy}\n */\n stroke: function (ctx) {\n ctx && ctx.stroke();\n this.toStatic();\n },\n\n /**\n * 必须在其它绘制命令前调用\n * Must be invoked before all other path drawing methods\n * @return {module:zrender/core/PathProxy}\n */\n setLineDash: function (lineDash) {\n if (lineDash instanceof Array) {\n this._lineDash = lineDash;\n this._dashIdx = 0;\n var lineDashSum = 0;\n\n for (var i = 0; i < lineDash.length; i++) {\n lineDashSum += lineDash[i];\n }\n\n this._dashSum = lineDashSum;\n }\n\n return this;\n },\n\n /**\n * 必须在其它绘制命令前调用\n * Must be invoked before all other path drawing methods\n * @return {module:zrender/core/PathProxy}\n */\n setLineDashOffset: function (offset) {\n this._dashOffset = offset;\n return this;\n },\n\n /**\n *\n * @return {boolean}\n */\n len: function () {\n return this._len;\n },\n\n /**\n * 直接设置 Path 数据\n */\n setData: function (data) {\n var len = data.length;\n\n if (!(this.data && this.data.length === len) && hasTypedArray) {\n this.data = new Float32Array(len);\n }\n\n for (var i = 0; i < len; i++) {\n this.data[i] = data[i];\n }\n\n this._len = len;\n },\n\n /**\n * 添加子路径\n * @param {module:zrender/core/PathProxy|Array.} path\n */\n appendPath: function (path) {\n if (!(path instanceof Array)) {\n path = [path];\n }\n\n var len = path.length;\n var appendSize = 0;\n var offset = this._len;\n\n for (var i = 0; i < len; i++) {\n appendSize += path[i].len();\n }\n\n if (hasTypedArray && this.data instanceof Float32Array) {\n this.data = new Float32Array(offset + appendSize);\n }\n\n for (var i = 0; i < len; i++) {\n var appendPathData = path[i].data;\n\n for (var k = 0; k < appendPathData.length; k++) {\n this.data[offset++] = appendPathData[k];\n }\n }\n\n this._len = offset;\n },\n\n /**\n * 填充 Path 数据。\n * 尽量复用而不申明新的数组。大部分图形重绘的指令数据长度都是不变的。\n */\n addData: function (cmd) {\n if (!this._saveData) {\n return;\n }\n\n var data = this.data;\n\n if (this._len + arguments.length > data.length) {\n // 因为之前的数组已经转换成静态的 Float32Array\n // 所以不够用时需要扩展一个新的动态数组\n this._expandData();\n\n data = this.data;\n }\n\n for (var i = 0; i < arguments.length; i++) {\n data[this._len++] = arguments[i];\n }\n\n this._prevCmd = cmd;\n },\n _expandData: function () {\n // Only if data is Float32Array\n if (!(this.data instanceof Array)) {\n var newData = [];\n\n for (var i = 0; i < this._len; i++) {\n newData[i] = this.data[i];\n }\n\n this.data = newData;\n }\n },\n\n /**\n * If needs js implemented dashed line\n * @return {boolean}\n * @private\n */\n _needsDash: function () {\n return this._lineDash;\n },\n _dashedLineTo: function (x1, y1) {\n var dashSum = this._dashSum;\n var offset = this._dashOffset;\n var lineDash = this._lineDash;\n var ctx = this._ctx;\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 dash;\n var nDash = lineDash.length;\n var idx;\n dx /= dist;\n dy /= dist;\n\n if (offset < 0) {\n // Convert to positive offset\n offset = dashSum + offset;\n }\n\n offset %= dashSum;\n x -= offset * dx;\n y -= offset * dy;\n\n while (dx > 0 && x <= x1 || dx < 0 && x >= x1 || 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; // Skip positive offset\n\n if (dx > 0 && x < x0 || dx < 0 && x > x0 || dy > 0 && y < y0 || dy < 0 && y > y0) {\n continue;\n }\n\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n } // Offset for next lineTo\n\n\n dx = x - x1;\n dy = y - y1;\n this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n },\n // Not accurate dashed line to\n _dashedBezierTo: function (x1, y1, x2, y2, x3, y3) {\n var dashSum = this._dashSum;\n var offset = this._dashOffset;\n var lineDash = this._lineDash;\n var ctx = this._ctx;\n var x0 = this._xi;\n var y0 = this._yi;\n var t;\n var dx;\n var dy;\n var cubicAt = curve.cubicAt;\n var bezierLen = 0;\n var idx = this._dashIdx;\n var nDash = lineDash.length;\n var x;\n var y;\n var tmpLen = 0;\n\n if (offset < 0) {\n // Convert to positive offset\n offset = dashSum + offset;\n }\n\n offset %= dashSum; // Bezier approx length\n\n for (t = 0; t < 1; t += 0.1) {\n dx = cubicAt(x0, x1, x2, x3, t + 0.1) - cubicAt(x0, x1, x2, x3, t);\n dy = cubicAt(y0, y1, y2, y3, t + 0.1) - cubicAt(y0, y1, y2, y3, t);\n bezierLen += mathSqrt(dx * dx + dy * dy);\n } // Find idx after add offset\n\n\n for (; idx < nDash; idx++) {\n tmpLen += lineDash[idx];\n\n if (tmpLen > offset) {\n break;\n }\n }\n\n t = (tmpLen - offset) / bezierLen;\n\n while (t <= 1) {\n x = cubicAt(x0, x1, x2, x3, t);\n y = cubicAt(y0, y1, y2, y3, t); // Use line to approximate dashed bezier\n // Bad result if dash is long\n\n idx % 2 ? ctx.moveTo(x, y) : ctx.lineTo(x, y);\n t += lineDash[idx] / bezierLen;\n idx = (idx + 1) % nDash;\n } // Finish the last segment and calculate the new offset\n\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 _dashedQuadraticTo: function (x1, y1, x2, y2) {\n // Convert quadratic to cubic using degree elevation\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\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n },\n\n /**\n * 转成静态的 Float32Array 减少堆内存占用\n * Convert dynamic array to static Float32Array\n */\n toStatic: function () {\n var data = this.data;\n\n if (data instanceof Array) {\n data.length = this._len;\n\n if (hasTypedArray) {\n this.data = new Float32Array(data);\n }\n }\n },\n\n /**\n * @return {module:zrender/core/BoundingRect}\n */\n 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\n for (var i = 0; i < data.length;) {\n var cmd = data[i++];\n\n if (i === 1) {\n // 如果第一个命令是 L, C, Q\n // 则 previous point 同绘制命令的第一个 point\n //\n // 第一个命令为 Arc 的情况下会在后面特殊处理\n xi = data[i];\n yi = data[i + 1];\n x0 = xi;\n y0 = yi;\n }\n\n switch (cmd) {\n case CMD.M:\n // moveTo 命令重新创建一个新的 subpath, 并且更新新的起点\n // 在 closePath 的时候使用\n x0 = data[i++];\n y0 = data[i++];\n xi = x0;\n yi = y0;\n min2[0] = x0;\n min2[1] = y0;\n max2[0] = x0;\n max2[1] = y0;\n break;\n\n case CMD.L:\n bbox.fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n xi = data[i++];\n yi = data[i++];\n break;\n\n case CMD.C:\n bbox.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\n case CMD.Q:\n bbox.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\n case CMD.A:\n // TODO Arc 判断的开销比较大\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; // TODO Arc 旋转\n\n i += 1;\n var anticlockwise = 1 - data[i++];\n\n if (i === 1) {\n // 直接使用 arc 命令\n // 第一个命令起点还未定义\n x0 = mathCos(startAngle) * rx + cx;\n y0 = mathSin(startAngle) * ry + cy;\n }\n\n bbox.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\n case CMD.R:\n x0 = xi = data[i++];\n y0 = yi = data[i++];\n var width = data[i++];\n var height = data[i++]; // Use fromLine\n\n bbox.fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n break;\n\n case CMD.Z:\n xi = x0;\n yi = y0;\n break;\n } // Union\n\n\n vec2.min(min, min, min2);\n vec2.max(max, max, max2);\n } // No data\n\n\n if (i === 0) {\n min[0] = min[1] = max[0] = max[1] = 0;\n }\n\n return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n },\n\n /**\n * Rebuild path from current data\n * Rebuild path will not consider javascript implemented line dash.\n * @param {CanvasRenderingContext2D} ctx\n */\n rebuildPath: function (ctx) {\n var d = this.data;\n var x0;\n var y0;\n var xi;\n var yi;\n var x;\n var y;\n var ux = this._ux;\n var uy = this._uy;\n var len = this._len;\n\n for (var i = 0; i < len;) {\n var cmd = d[i++];\n\n if (i === 1) {\n // 如果第一个命令是 L, C, Q\n // 则 previous point 同绘制命令的第一个 point\n //\n // 第一个命令为 Arc 的情况下会在后面特殊处理\n xi = d[i];\n yi = d[i + 1];\n x0 = xi;\n y0 = yi;\n }\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\n case CMD.L:\n x = d[i++];\n y = d[i++]; // Not draw too small seg between\n\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n ctx.lineTo(x, y);\n xi = x;\n yi = y;\n }\n\n break;\n\n case CMD.C:\n ctx.bezierCurveTo(d[i++], d[i++], d[i++], d[i++], d[i++], d[i++]);\n xi = d[i - 2];\n yi = d[i - 1];\n break;\n\n case CMD.Q:\n ctx.quadraticCurveTo(d[i++], d[i++], d[i++], d[i++]);\n xi = d[i - 2];\n yi = d[i - 1];\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 theta = d[i++];\n var dTheta = d[i++];\n var psi = d[i++];\n var fs = 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 = Math.abs(rx - ry) > 1e-3;\n var endAngle = theta + dTheta;\n\n if (isEllipse) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, endAngle, 1 - fs);\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n } else {\n ctx.arc(cx, cy, r, theta, endAngle, 1 - fs);\n }\n\n if (i === 1) {\n // 直接使用 arc 命令\n // 第一个命令起点还未定义\n x0 = mathCos(theta) * rx + cx;\n y0 = mathSin(theta) * ry + cy;\n }\n\n xi = mathCos(endAngle) * rx + cx;\n yi = mathSin(endAngle) * ry + cy;\n break;\n\n case CMD.R:\n x0 = xi = d[i];\n y0 = yi = d[i + 1];\n ctx.rect(d[i++], d[i++], d[i++], d[i++]);\n break;\n\n case CMD.Z:\n ctx.closePath();\n xi = x0;\n yi = y0;\n }\n }\n }\n};\nPathProxy.CMD = CMD;\nvar _default = PathProxy;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\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*/\nvar features = {};\n\nfunction register(name, ctor) {\n features[name] = ctor;\n}\n\nfunction get(name) {\n return features[name];\n}\n\nexports.register = register;\nexports.get = get;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar Tree = require(\"../../data/Tree\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\nvar Model = require(\"../../model/Model\");\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*/\nvar _default = SeriesModel.extend({\n type: 'series.tree',\n layoutInfo: null,\n // can support the position parameters 'left', 'top','right','bottom', 'width',\n // 'height' in the setOption() with 'merge' mode normal.\n layoutMode: 'box',\n\n /**\n * Init a tree data structure from data in option series\n * @param {Object} option the object used to config echarts view\n * @return {module:echarts/data/List} storage initial data\n */\n getInitialData: function (option) {\n //create an virtual root\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); // Add item.collapsed != null, because users can collapse node original in the series.data.\n\n node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n });\n return tree.data;\n },\n\n /**\n * Make the configuration 'orient' backward compatibly, with 'horizontal = LR', 'vertical = TB'.\n * @returns {string} orient\n */\n 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 setZoom: function (zoom) {\n this.option.zoom = zoom;\n },\n setCenter: function (center) {\n this.option.center = center;\n },\n\n /**\n * @override\n * @param {number} dataIndex\n */\n formatTooltip: function (dataIndex) {\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 encodeHTML(name + (isNaN(value) || value == null ? '' : ' : ' + value));\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n // the position of the whole view\n left: '12%',\n top: '12%',\n right: '12%',\n bottom: '12%',\n // the layout of the tree, two value can be selected, 'orthogonal' or 'radial'\n layout: 'orthogonal',\n // value can be 'polyline'\n edgeShape: 'curve',\n edgeForkPosition: '50%',\n // true | false | 'move' | 'scale', see module:component/helper/RoamController.\n roam: false,\n // Symbol size scale ratio in roam\n nodeScaleRatio: 0.4,\n // Default on center of graph\n center: null,\n zoom: 1,\n // The orient of orthoginal layout, can be setted to 'LR', 'TB', 'RL', 'BT'.\n // and the backward compatibility configuration 'horizontal = LR', 'vertical = TB'.\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 color: '#555'\n },\n leaves: {\n label: {\n show: true\n }\n },\n animationEasing: 'linear',\n animationDuration: 700,\n animationDurationUpdate: 1000\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar numberUtil = require(\"../util/number\");\n\nvar formatUtil = require(\"../util/format\");\n\nvar scaleHelper = require(\"./helper\");\n\nvar IntervalScale = require(\"./Interval\");\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* A third-party license is embeded for some of the code in this file:\n* The \"scaleLevels\" was originally copied from \"d3.js\" with some\n* modifications made for this project.\n* (See more details in the comment on the definition of \"scaleLevels\" below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\n// [About UTC and local time zone]:\n// In most cases, `number.parseDate` will treat input data string as local time\n// (except time zone is specified in time string). And `format.formateTime` returns\n// local time by default. option.useUTC is false by default. This design have\n// concidered these common case:\n// (1) Time that is persistent in server is in UTC, but it is needed to be diplayed\n// in local time by default.\n// (2) By default, the input data string (e.g., '2011-01-02') should be displayed\n// as its original time, without any time difference.\nvar intervalScaleProto = IntervalScale.prototype;\nvar mathCeil = Math.ceil;\nvar mathFloor = Math.floor;\nvar ONE_SECOND = 1000;\nvar ONE_MINUTE = ONE_SECOND * 60;\nvar ONE_HOUR = ONE_MINUTE * 60;\nvar ONE_DAY = ONE_HOUR * 24; // FIXME 公用?\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/**\n * @alias module:echarts/coord/scale/Time\n * @constructor\n */\n\n\nvar TimeScale = IntervalScale.extend({\n type: 'time',\n\n /**\n * @override\n */\n getLabel: function (val) {\n var stepLvl = this._stepLvl;\n var date = new Date(val);\n return formatUtil.formatTime(stepLvl[0], date, this.getSetting('useUTC'));\n },\n\n /**\n * @override\n */\n niceExtent: function (opt) {\n var extent = this._extent; // If extent start and end are same, expand them\n\n if (extent[0] === extent[1]) {\n // Expand extent\n extent[0] -= ONE_DAY;\n extent[1] += ONE_DAY;\n } // If there are no data and extent are [Infinity, -Infinity]\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); // var extent = this._extent;\n\n var interval = this._interval;\n\n if (!opt.fixMin) {\n extent[0] = numberUtil.round(mathFloor(extent[0] / interval) * interval);\n }\n\n if (!opt.fixMax) {\n extent[1] = numberUtil.round(mathCeil(extent[1] / interval) * interval);\n }\n },\n\n /**\n * @override\n */\n niceTicks: function (approxTickNum, minInterval, maxInterval) {\n approxTickNum = approxTickNum || 10;\n var extent = this._extent;\n var span = extent[1] - extent[0];\n var approxInterval = span / approxTickNum;\n\n if (minInterval != null && approxInterval < minInterval) {\n approxInterval = minInterval;\n }\n\n if (maxInterval != null && approxInterval > maxInterval) {\n approxInterval = maxInterval;\n }\n\n var scaleLevelsLen = scaleLevels.length;\n var idx = bisect(scaleLevels, approxInterval, 0, scaleLevelsLen);\n var level = scaleLevels[Math.min(idx, scaleLevelsLen - 1)];\n var interval = level[1]; // Same with interval scale if span is much larger than 1 year\n\n if (level[0] === 'year') {\n var yearSpan = span / interval; // From \"Nice Numbers for Graph Labels\" of Graphic Gems\n // var niceYearSpan = numberUtil.nice(yearSpan, false);\n\n var yearStep = numberUtil.nice(yearSpan / approxTickNum, true);\n interval *= yearStep;\n }\n\n var timezoneOffset = this.getSetting('useUTC') ? 0 : new Date(+extent[0] || +extent[1]).getTimezoneOffset() * 60 * 1000;\n var niceExtent = [Math.round(mathCeil((extent[0] - timezoneOffset) / interval) * interval + timezoneOffset), Math.round(mathFloor((extent[1] - timezoneOffset) / interval) * interval + timezoneOffset)];\n scaleHelper.fixExtent(niceExtent, extent);\n this._stepLvl = level; // Interval will be used in getTicks\n\n this._interval = interval;\n this._niceExtent = niceExtent;\n },\n parse: function (val) {\n // val might be float.\n return +numberUtil.parseDate(val);\n }\n});\nzrUtil.each(['contain', 'normalize'], function (methodName) {\n TimeScale.prototype[methodName] = function (val) {\n return intervalScaleProto[methodName].call(this, this.parse(val));\n };\n});\n/**\n * This implementation was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\nvar scaleLevels = [// Format interval\n['hh:mm:ss', ONE_SECOND], // 1s\n['hh:mm:ss', ONE_SECOND * 5], // 5s\n['hh:mm:ss', ONE_SECOND * 10], // 10s\n['hh:mm:ss', ONE_SECOND * 15], // 15s\n['hh:mm:ss', ONE_SECOND * 30], // 30s\n['hh:mm\\nMM-dd', ONE_MINUTE], // 1m\n['hh:mm\\nMM-dd', ONE_MINUTE * 5], // 5m\n['hh:mm\\nMM-dd', ONE_MINUTE * 10], // 10m\n['hh:mm\\nMM-dd', ONE_MINUTE * 15], // 15m\n['hh:mm\\nMM-dd', ONE_MINUTE * 30], // 30m\n['hh:mm\\nMM-dd', ONE_HOUR], // 1h\n['hh:mm\\nMM-dd', ONE_HOUR * 2], // 2h\n['hh:mm\\nMM-dd', ONE_HOUR * 6], // 6h\n['hh:mm\\nMM-dd', ONE_HOUR * 12], // 12h\n['MM-dd\\nyyyy', ONE_DAY], // 1d\n['MM-dd\\nyyyy', ONE_DAY * 2], // 2d\n['MM-dd\\nyyyy', ONE_DAY * 3], // 3d\n['MM-dd\\nyyyy', ONE_DAY * 4], // 4d\n['MM-dd\\nyyyy', ONE_DAY * 5], // 5d\n['MM-dd\\nyyyy', ONE_DAY * 6], // 6d\n['week', ONE_DAY * 7], // 7d\n['MM-dd\\nyyyy', ONE_DAY * 10], // 10d\n['week', ONE_DAY * 14], // 2w\n['week', ONE_DAY * 21], // 3w\n['month', ONE_DAY * 31], // 1M\n['week', ONE_DAY * 42], // 6w\n['month', ONE_DAY * 62], // 2M\n['week', ONE_DAY * 70], // 10w\n['quarter', ONE_DAY * 95], // 3M\n['month', ONE_DAY * 31 * 4], // 4M\n['month', ONE_DAY * 31 * 5], // 5M\n['half-year', ONE_DAY * 380 / 2], // 6M\n['month', ONE_DAY * 31 * 8], // 8M\n['month', ONE_DAY * 31 * 10], // 10M\n['year', ONE_DAY * 380] // 1Y\n];\n/**\n * @param {module:echarts/model/Model}\n * @return {module:echarts/scale/Time}\n */\n\nTimeScale.create = function (model) {\n return new TimeScale({\n useUTC: model.ecModel.get('useUTC')\n });\n};\n\nvar _default = TimeScale;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\nvar SeriesModel = require(\"../../model/Series\");\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*/\nvar _default = SeriesModel.extend({\n type: 'series.line',\n dependencies: ['grid', 'polar'],\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true\n });\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n hoverAnimation: true,\n // stack: null\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // polarIndex: 0,\n // If clip the overflow value\n clip: true,\n // cursor: null,\n label: {\n position: 'top'\n },\n // itemStyle: {\n // },\n lineStyle: {\n width: 2,\n type: 'solid'\n },\n // areaStyle: {\n // origin of areaStyle. Valid values:\n // `'auto'/null/undefined`: from axisLine to data\n // `'start'`: from min to data\n // `'end'`: from data to max\n // origin: 'auto'\n // },\n // false, 'start', 'end', 'middle'\n step: false,\n // Disabled if step is true\n smooth: false,\n smoothMonotone: null,\n symbol: 'emptyCircle',\n symbolSize: 4,\n symbolRotate: null,\n showSymbol: true,\n // `false`: follow the label interval strategy.\n // `true`: show all symbols.\n // `'auto'`: If possible, show all symbols, otherwise\n // follow the label interval strategy.\n showAllSymbol: 'auto',\n // Whether to connect break point.\n connectNulls: false,\n // Sampling for large data. Can be: 'average', 'max', 'min', 'sum'.\n sampling: 'none',\n animationEasing: 'linear',\n // Disable progressive\n progressive: 0,\n hoverLayerThreshold: Infinity\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Component = require(\"../../model/Component\");\n\nrequire(\"./AxisModel\");\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*/\nvar _default = Component.extend({\n type: 'parallel',\n dependencies: ['parallelAxis'],\n\n /**\n * @type {module:echarts/coord/parallel/Parallel}\n */\n coordinateSystem: null,\n\n /**\n * Each item like: 'dim0', 'dim1', 'dim2', ...\n * @type {Array.}\n * @readOnly\n */\n dimensions: null,\n\n /**\n * Coresponding to dimensions.\n * @type {Array.}\n * @readOnly\n */\n parallelAxisIndex: null,\n layoutMode: 'box',\n defaultOption: {\n zlevel: 0,\n z: 0,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n layout: 'horizontal',\n // 'horizontal' or 'vertical'\n // FIXME\n // naming?\n axisExpandable: false,\n axisExpandCenter: null,\n axisExpandCount: 0,\n axisExpandWidth: 50,\n // FIXME '10%' ?\n axisExpandRate: 17,\n axisExpandDebounce: 50,\n // [out, in, jumpTarget]. In percentage. If use [null, 0.05], null means full.\n // Do not doc to user until necessary.\n axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n axisExpandTriggerOn: 'click',\n // 'mousemove' or 'click'\n parallelAxisDefault: null\n },\n\n /**\n * @override\n */\n init: function () {\n Component.prototype.init.apply(this, arguments);\n this.mergeOption({});\n },\n\n /**\n * @override\n */\n mergeOption: function (newOption) {\n var thisOption = this.option;\n newOption && zrUtil.merge(thisOption, newOption, true);\n\n this._initDimensions();\n },\n\n /**\n * Whether series or axis is in this coordinate system.\n * @param {module:echarts/model/Series|module:echarts/coord/parallel/AxisModel} model\n * @param {module:echarts/model/Global} ecModel\n */\n contains: function (model, ecModel) {\n var parallelIndex = model.get('parallelIndex');\n return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n },\n 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 /**\n * @private\n */\n _initDimensions: function () {\n var dimensions = this.dimensions = [];\n var parallelAxisIndex = this.parallelAxisIndex = [];\n var axisModels = zrUtil.filter(this.dependentModels.parallelAxis, function (axisModel) {\n // Can not use this.contains here, because\n // initialization has not been completed yet.\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\nmodule.exports = _default;","/**\n * echarts设备环境识别\n *\n * @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。\n * @author firede[firede@firede.us]\n * @desc thanks zepto.\n */\n\n/* global wx */\nvar env = {};\n\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n // In Weixin Application\n env = {\n browser: {},\n os: {},\n node: false,\n wxa: true,\n // Weixin Application\n canvasSupported: true,\n svgSupported: false,\n touchEventsSupported: true,\n domSupported: false\n };\n} else if (typeof document === 'undefined' && typeof self !== 'undefined') {\n // In worker\n env = {\n browser: {},\n os: {},\n node: false,\n worker: true,\n canvasSupported: true,\n domSupported: false\n };\n} else if (typeof navigator === 'undefined') {\n // In node\n env = {\n browser: {},\n os: {},\n node: true,\n worker: false,\n // Assume canvas is supported\n canvasSupported: true,\n svgSupported: true,\n domSupported: false\n };\n} else {\n env = detect(navigator.userAgent);\n}\n\nvar _default = env; // Zepto.js\n// (c) 2010-2013 Thomas Fuchs\n// Zepto.js may be freely distributed under the MIT license.\n\nfunction detect(ua) {\n var os = {};\n var browser = {}; // var webkit = ua.match(/Web[kK]it[\\/]{0,1}([\\d.]+)/);\n // var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/);\n // var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n // var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n // var iphone = !ipad && ua.match(/(iPhone\\sOS)\\s([\\d_]+)/);\n // var webos = ua.match(/(webOS|hpwOS)[\\s\\/]([\\d.]+)/);\n // var touchpad = webos && ua.match(/TouchPad/);\n // var kindle = ua.match(/Kindle\\/([\\d.]+)/);\n // var silk = ua.match(/Silk\\/([\\d._]+)/);\n // var blackberry = ua.match(/(BlackBerry).*Version\\/([\\d.]+)/);\n // var bb10 = ua.match(/(BB10).*Version\\/([\\d.]+)/);\n // var rimtabletos = ua.match(/(RIM\\sTablet\\sOS)\\s([\\d.]+)/);\n // var playbook = ua.match(/PlayBook/);\n // var chrome = ua.match(/Chrome\\/([\\d.]+)/) || ua.match(/CriOS\\/([\\d.]+)/);\n\n var firefox = ua.match(/Firefox\\/([\\d.]+)/); // var safari = webkit && ua.match(/Mobile\\//) && !chrome;\n // var webview = ua.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !chrome;\n\n var ie = ua.match(/MSIE\\s([\\d.]+)/) // IE 11 Trident/7.0; rv:11.0\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n var edge = ua.match(/Edge\\/([\\d.]+)/); // IE 12 and 12+\n\n var weChat = /micromessenger/i.test(ua); // Todo: clean this up with a better OS/browser seperation:\n // - discern (more) between multiple browsers on android\n // - decide if kindle fire in silk mode is android or not\n // - Firefox on Android doesn't specify the Android version\n // - possibly devide in os, device and browser hashes\n // if (browser.webkit = !!webkit) browser.version = webkit[1];\n // if (android) os.android = true, os.version = android[2];\n // if (iphone && !ipod) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.');\n // if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.');\n // if (ipod) os.ios = os.ipod = true, os.version = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n // if (webos) os.webos = true, os.version = webos[2];\n // if (touchpad) os.touchpad = true;\n // if (blackberry) os.blackberry = true, os.version = blackberry[2];\n // if (bb10) os.bb10 = true, os.version = bb10[2];\n // if (rimtabletos) os.rimtabletos = true, os.version = rimtabletos[2];\n // if (playbook) browser.playbook = true;\n // if (kindle) os.kindle = true, os.version = kindle[1];\n // if (silk) browser.silk = true, browser.version = silk[1];\n // if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true;\n // if (chrome) browser.chrome = true, browser.version = chrome[1];\n\n if (firefox) {\n browser.firefox = true;\n browser.version = firefox[1];\n } // if (safari && (ua.match(/Safari/) || !!os.ios)) browser.safari = true;\n // if (webview) browser.webview = true;\n\n\n if (ie) {\n browser.ie = true;\n browser.version = ie[1];\n }\n\n if (edge) {\n browser.edge = true;\n browser.version = edge[1];\n } // It is difficult to detect WeChat in Win Phone precisely, because ua can\n // not be set on win phone. So we do not consider Win Phone.\n\n\n if (weChat) {\n browser.weChat = true;\n } // os.tablet = !!(ipad || playbook || (android && !ua.match(/Mobile/)) ||\n // (firefox && ua.match(/Tablet/)) || (ie && !ua.match(/Phone/) && ua.match(/Touch/)));\n // os.phone = !!(!os.tablet && !os.ipod && (android || iphone || webos ||\n // (chrome && ua.match(/Android/)) || (chrome && ua.match(/CriOS\\/([\\d.]+)/)) ||\n // (firefox && ua.match(/Mobile/)) || (ie && ua.match(/Touch/))));\n\n\n return {\n browser: browser,\n os: os,\n node: false,\n // 原生canvas支持,改极端点了\n // canvasSupported : !(browser.ie && parseFloat(browser.version) < 9)\n canvasSupported: !!document.createElement('canvas').getContext,\n svgSupported: typeof SVGRect !== 'undefined',\n // works on most browsers\n // IE10/11 does not support touch event, and MS Edge supports them but not by\n // default, so we dont check navigator.maxTouchPoints for them here.\n touchEventsSupported: 'ontouchstart' in window && !browser.ie && !browser.edge,\n // .\n pointerEventsSupported: // (1) Firefox supports pointer but not by default, only MS browsers are reliable on pointer\n // events currently. So we dont use that on other browsers unless tested sufficiently.\n // For example, in iOS 13 Mobile Chromium 78, if the touching behavior starts page\n // scroll, the `pointermove` event can not be fired any more. That will break some\n // features like \"pan horizontally to move something and pan vertically to page scroll\".\n // The horizontal pan probably be interrupted by the casually triggered page scroll.\n // (2) Although IE 10 supports pointer event, it use old style and is different from the\n // standard. So we exclude that. (IE 10 is hardly used on touch device)\n 'onpointerdown' in window && (browser.edge || browser.ie && browser.version >= 11),\n // passiveSupported: detectPassiveSupport()\n domSupported: typeof document !== 'undefined'\n };\n} // See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md#feature-detection\n// function detectPassiveSupport() {\n// // Test via a getter in the options object to see if the passive property is accessed\n// var supportsPassive = false;\n// try {\n// var opts = Object.defineProperty({}, 'passive', {\n// get: function() {\n// supportsPassive = true;\n// }\n// });\n// window.addEventListener('testPassive', function() {}, opts);\n// } catch (e) {\n// }\n// return supportsPassive;\n// }\n\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar layout = require(\"../../util/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* A third-party license is embeded for some of the code in this file:\n* The tree layoutHelper implementation was originally copied from\n* \"d3.js\"(https://github.com/d3/d3-hierarchy) with\n* some modifications made for this project.\n* (see more details in the comment of the specific method below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the licence of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\n\n/**\n * @file The layout algorithm of node-link tree diagrams. Here we using Reingold-Tilford algorithm to drawing\n * the tree.\n */\n\n/**\n * Initialize all computational message for following algorithm.\n *\n * @param {module:echarts/data/Tree~TreeNode} root The virtual root of the tree.\n */\nfunction init(root) {\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 // jshint ignore:line\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}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Computes a preliminary x coordinate for node. Before that, this function is\n * applied recursively to the children of node, as well as the function\n * apportion(). After spacing out the children by calling executeShifts(), the\n * node is placed to the midpoint of its outermost children.\n *\n * @param {module:echarts/data/Tree~TreeNode} node\n * @param {Function} separation\n */\n\n\nfunction 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}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Computes all real x-coordinates by summing up the modifiers recursively.\n *\n * @param {module:echarts/data/Tree~TreeNode} node\n */\n\n\nfunction 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}\n\nfunction separation(cb) {\n return arguments.length ? cb : defaultSeparation;\n}\n/**\n * Transform the common coordinate to radial coordinate.\n *\n * @param {number} x\n * @param {number} y\n * @return {Object}\n */\n\n\nfunction radialCoordinate(x, y) {\n var radialCoor = {};\n x -= Math.PI / 2;\n radialCoor.x = y * Math.cos(x);\n radialCoor.y = y * Math.sin(x);\n return radialCoor;\n}\n/**\n * Get the layout position of the whole view.\n *\n * @param {module:echarts/model/Series} seriesModel the model object of sankey series\n * @param {module:echarts/ExtensionAPI} api provide the API list that the developer can call\n * @return {module:zrender/core/BoundingRect} size of rect to draw the sankey view\n */\n\n\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n/**\n * All other shifts, applied to the smaller subtrees between w- and w+, are\n * performed by this function.\n *\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * @param {module:echarts/data/Tree~TreeNode} node\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/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * The core of the algorithm. Here, a new subtree is combined with the\n * previous subtrees. Threads are used to traverse the inside and outside\n * contours of the left and right subtree up to the highest common level.\n * Whenever two nodes of the inside contours conflict, we compute the left\n * one of the greatest uncommon ancestors using the function nextAncestor()\n * and call moveSubtree() to shift the subtree and prepare the shifts of\n * smaller subtrees. Finally, we add a new thread (if necessary).\n *\n * @param {module:echarts/data/Tree~TreeNode} subtreeV\n * @param {module:echarts/data/Tree~TreeNode} subtreeW\n * @param {module:echarts/data/Tree~TreeNode} ancestor\n * @param {Function} separation\n * @return {module:echarts/data/Tree~TreeNode}\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/**\n * This function is used to traverse the right contour of a subtree.\n * It returns the rightmost child of node or the thread of node. The function\n * returns null if and only if node is on the highest depth of its subtree.\n *\n * @param {module:echarts/data/Tree~TreeNode} node\n * @return {module:echarts/data/Tree~TreeNode}\n */\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/**\n * This function is used to traverse the left contour of a subtree (or a subforest).\n * It returns the leftmost child of node or the thread of node. The function\n * returns null if and only if node is on the highest depth of its subtree.\n *\n * @param {module:echarts/data/Tree~TreeNode} node\n * @return {module:echarts/data/Tree~TreeNode}\n */\n\n\nfunction nextLeft(node) {\n var children = node.children;\n return children.length && node.isExpand ? children[0] : node.hierNode.thread;\n}\n/**\n * If nodeInLeft’s ancestor is a sibling of node, returns nodeInLeft’s ancestor.\n * Otherwise, returns the specified ancestor.\n *\n * @param {module:echarts/data/Tree~TreeNode} nodeInLeft\n * @param {module:echarts/data/Tree~TreeNode} node\n * @param {module:echarts/data/Tree~TreeNode} ancestor\n * @return {module:echarts/data/Tree~TreeNode}\n */\n\n\nfunction nextAncestor(nodeInLeft, node, ancestor) {\n return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor;\n}\n/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n *\n * Shifts the current subtree rooted at wr.\n * This is done by increasing prelim(w+) and modifier(w+) by shift.\n *\n * @param {module:echarts/data/Tree~TreeNode} wl\n * @param {module:echarts/data/Tree~TreeNode} wr\n * @param {number} shift [description]\n */\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/**\n * The implementation of this function was originally copied from \"d3.js\"\n * \n * with some modifications made for this program.\n * See the license statement at the head of this file.\n */\n\n\nfunction defaultSeparation(node1, node2) {\n return node1.parentNode === node2.parentNode ? 1 : 2;\n}\n\nexports.init = init;\nexports.firstWalk = firstWalk;\nexports.secondWalk = secondWalk;\nexports.separation = separation;\nexports.radialCoordinate = radialCoordinate;\nexports.getViewRect = getViewRect;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar pathTool = require(\"zrender/lib/tool/path\");\n\nvar colorTool = require(\"zrender/lib/tool/color\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar vector = require(\"zrender/lib/core/vector\");\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\nvar Transformable = require(\"zrender/lib/mixin/Transformable\");\n\nvar ZImage = require(\"zrender/lib/graphic/Image\");\n\nexports.Image = ZImage;\n\nvar Group = require(\"zrender/lib/container/Group\");\n\nexports.Group = Group;\n\nvar Text = require(\"zrender/lib/graphic/Text\");\n\nexports.Text = Text;\n\nvar Circle = require(\"zrender/lib/graphic/shape/Circle\");\n\nexports.Circle = Circle;\n\nvar Sector = require(\"zrender/lib/graphic/shape/Sector\");\n\nexports.Sector = Sector;\n\nvar Ring = require(\"zrender/lib/graphic/shape/Ring\");\n\nexports.Ring = Ring;\n\nvar Polygon = require(\"zrender/lib/graphic/shape/Polygon\");\n\nexports.Polygon = Polygon;\n\nvar Polyline = require(\"zrender/lib/graphic/shape/Polyline\");\n\nexports.Polyline = Polyline;\n\nvar Rect = require(\"zrender/lib/graphic/shape/Rect\");\n\nexports.Rect = Rect;\n\nvar Line = require(\"zrender/lib/graphic/shape/Line\");\n\nexports.Line = Line;\n\nvar BezierCurve = require(\"zrender/lib/graphic/shape/BezierCurve\");\n\nexports.BezierCurve = BezierCurve;\n\nvar Arc = require(\"zrender/lib/graphic/shape/Arc\");\n\nexports.Arc = Arc;\n\nvar CompoundPath = require(\"zrender/lib/graphic/CompoundPath\");\n\nexports.CompoundPath = CompoundPath;\n\nvar LinearGradient = require(\"zrender/lib/graphic/LinearGradient\");\n\nexports.LinearGradient = LinearGradient;\n\nvar RadialGradient = require(\"zrender/lib/graphic/RadialGradient\");\n\nexports.RadialGradient = RadialGradient;\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nexports.BoundingRect = BoundingRect;\n\nvar IncrementalDisplayable = require(\"zrender/lib/graphic/IncrementalDisplayable\");\n\nexports.IncrementalDisplayable = IncrementalDisplayable;\n\nvar subPixelOptimizeUtil = require(\"zrender/lib/graphic/helper/subPixelOptimize\");\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*/\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar EMPTY_OBJ = {};\nvar Z2_EMPHASIS_LIFT = 1; // key: label model property nane, value: style property name.\n\nvar CACHED_LABEL_STYLE_PROPERTIES = {\n color: 'textFill',\n textBorderColor: 'textStroke',\n textBorderWidth: 'textStrokeWidth'\n};\nvar EMPHASIS = 'emphasis';\nvar NORMAL = 'normal'; // Reserve 0 as default.\n\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar _customShapeMap = {};\n/**\n * Extend shape with parameters\n */\n\nfunction extendShape(opts) {\n return Path.extend(opts);\n}\n/**\n * Extend path\n */\n\n\nfunction extendPath(pathData, opts) {\n return pathTool.extendFromString(pathData, opts);\n}\n/**\n * Register a user defined shape.\n * The shape class can be fetched by `getShapeClass`\n * This method will overwrite the registered shapes, including\n * the registered built-in shapes, if using the same `name`.\n * The shape can be used in `custom series` and\n * `graphic component` by declaring `{type: name}`.\n *\n * @param {string} name\n * @param {Object} ShapeClass Can be generated by `extendShape`.\n */\n\n\nfunction registerShape(name, ShapeClass) {\n _customShapeMap[name] = ShapeClass;\n}\n/**\n * Find shape class registered by `registerShape`. Usually used in\n * fetching user defined shape.\n *\n * [Caution]:\n * (1) This method **MUST NOT be used inside echarts !!!**, unless it is prepared\n * to use user registered shapes.\n * Because the built-in shape (see `getBuiltInShape`) will be registered by\n * `registerShape` by default. That enables users to get both built-in\n * shapes as well as the shapes belonging to themsleves. But users can overwrite\n * the built-in shapes by using names like 'circle', 'rect' via calling\n * `registerShape`. So the echarts inner featrues should not fetch shapes from here\n * in case that it is overwritten by users, except that some features, like\n * `custom series`, `graphic component`, do it deliberately.\n *\n * (2) In the features like `custom series`, `graphic component`, the user input\n * `{tpye: 'xxx'}` does not only specify shapes but also specify other graphic\n * elements like `'group'`, `'text'`, `'image'` or event `'path'`. Those names\n * are reserved names, that is, if some user register a shape named `'image'`,\n * the shape will not be used. If we intending to add some more reserved names\n * in feature, that might bring break changes (disable some existing user shape\n * names). But that case probably rearly happen. So we dont make more mechanism\n * to resolve this issue here.\n *\n * @param {string} name\n * @return {Object} The shape class. If not found, return nothing.\n */\n\n\nfunction getShapeClass(name) {\n if (_customShapeMap.hasOwnProperty(name)) {\n return _customShapeMap[name];\n }\n}\n/**\n * Create a path element from path data string\n * @param {string} pathData\n * @param {Object} opts\n * @param {module:zrender/core/BoundingRect} rect\n * @param {string} [layout=cover] 'center' or 'cover'\n */\n\n\nfunction 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}\n/**\n * Create a image element from image url\n * @param {string} imageUrl image url\n * @param {Object} opts options\n * @param {module:zrender/core/BoundingRect} rect constrain rect\n * @param {string} [layout=cover] 'center' or 'cover'\n */\n\n\nfunction makeImage(imageUrl, rect, layout) {\n var path = new ZImage({\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 path.setStyle(centerGraphic(rect, boundingRect));\n }\n }\n });\n return path;\n}\n/**\n * Get position of centered element in bounding box.\n *\n * @param {Object} rect element local bounding box\n * @param {Object} boundingRect constraint bounding box\n * @return {Object} element position containing x, y, width, and height\n */\n\n\nfunction centerGraphic(rect, boundingRect) {\n // Set rect to center, keep width / height ratio.\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\nvar mergePath = pathTool.mergePath;\n/**\n * Resize a path to fit the rect\n * @param {module:zrender/graphic/Path} path\n * @param {Object} rect\n */\n\nfunction 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}\n/**\n * Sub pixel optimize line for canvas\n *\n * @param {Object} param\n * @param {Object} [param.shape]\n * @param {number} [param.shape.x1]\n * @param {number} [param.shape.y1]\n * @param {number} [param.shape.x2]\n * @param {number} [param.shape.y2]\n * @param {Object} [param.style]\n * @param {number} [param.style.lineWidth]\n * @return {Object} Modified param\n */\n\n\nfunction subPixelOptimizeLine(param) {\n subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n return param;\n}\n/**\n * Sub pixel optimize rect for canvas\n *\n * @param {Object} param\n * @param {Object} [param.shape]\n * @param {number} [param.shape.x]\n * @param {number} [param.shape.y]\n * @param {number} [param.shape.width]\n * @param {number} [param.shape.height]\n * @param {Object} [param.style]\n * @param {number} [param.style.lineWidth]\n * @return {Object} Modified param\n */\n\n\nfunction subPixelOptimizeRect(param) {\n subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n return param;\n}\n/**\n * Sub pixel optimize for canvas\n *\n * @param {number} position Coordinate, such as x, y\n * @param {number} lineWidth Should be nonnegative integer.\n * @param {boolean=} positiveOrNegative Default false (negative).\n * @return {number} Optimized position.\n */\n\n\nvar subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction hasFillOrStroke(fillOrStroke) {\n return fillOrStroke != null && fillOrStroke !== 'none';\n} // Most lifted color are duplicated.\n\n\nvar liftedColorMap = zrUtil.createHashMap();\nvar liftedColorCount = 0;\n\nfunction liftColor(color) {\n if (typeof color !== 'string') {\n return color;\n }\n\n var liftedColor = liftedColorMap.get(color);\n\n if (!liftedColor) {\n liftedColor = colorTool.lift(color, -0.1);\n\n if (liftedColorCount < 10000) {\n liftedColorMap.set(color, liftedColor);\n liftedColorCount++;\n }\n }\n\n return liftedColor;\n}\n\nfunction cacheElementStl(el) {\n if (!el.__hoverStlDirty) {\n return;\n }\n\n el.__hoverStlDirty = false;\n var hoverStyle = el.__hoverStl;\n\n if (!hoverStyle) {\n el.__cachedNormalStl = el.__cachedNormalZ2 = null;\n return;\n }\n\n var normalStyle = el.__cachedNormalStl = {};\n el.__cachedNormalZ2 = el.z2;\n var elStyle = el.style;\n\n for (var name in hoverStyle) {\n // See comment in `singleEnterEmphasis`.\n if (hoverStyle[name] != null) {\n normalStyle[name] = elStyle[name];\n }\n } // Always cache fill and stroke to normalStyle for lifting color.\n\n\n normalStyle.fill = elStyle.fill;\n normalStyle.stroke = elStyle.stroke;\n}\n\nfunction singleEnterEmphasis(el) {\n var hoverStl = el.__hoverStl;\n\n if (!hoverStl || el.__highlighted) {\n return;\n }\n\n var zr = el.__zr;\n var useHoverLayer = el.useHoverLayer && zr && zr.painter.type === 'canvas';\n el.__highlighted = useHoverLayer ? 'layer' : 'plain';\n\n if (el.isGroup || !zr && el.useHoverLayer) {\n return;\n }\n\n var elTarget = el;\n var targetStyle = el.style;\n\n if (useHoverLayer) {\n elTarget = zr.addHover(el);\n targetStyle = elTarget.style;\n }\n\n rollbackDefaultTextStyle(targetStyle);\n\n if (!useHoverLayer) {\n cacheElementStl(elTarget);\n } // styles can be:\n // {\n // label: {\n // show: false,\n // position: 'outside',\n // fontSize: 18\n // },\n // emphasis: {\n // label: {\n // show: true\n // }\n // }\n // },\n // where properties of `emphasis` may not appear in `normal`. We previously use\n // module:echarts/util/model#defaultEmphasis to merge `normal` to `emphasis`.\n // But consider rich text and setOption in merge mode, it is impossible to cover\n // all properties in merge. So we use merge mode when setting style here.\n // But we choose the merge strategy that only properties that is not `null/undefined`.\n // Because when making a textStyle (espacially rich text), it is not easy to distinguish\n // `hasOwnProperty` and `null/undefined` in code, so we trade them as the same for simplicity.\n // But this strategy brings a trouble that `null/undefined` can not be used to remove\n // style any more in `emphasis`. Users can both set properties directly on normal and\n // emphasis to avoid this issue, or we might support `'none'` for this case if required.\n\n\n targetStyle.extendFrom(hoverStl);\n setDefaultHoverFillStroke(targetStyle, hoverStl, 'fill');\n setDefaultHoverFillStroke(targetStyle, hoverStl, 'stroke');\n applyDefaultTextStyle(targetStyle);\n\n if (!useHoverLayer) {\n el.dirty(false);\n el.z2 += Z2_EMPHASIS_LIFT;\n }\n}\n\nfunction setDefaultHoverFillStroke(targetStyle, hoverStyle, prop) {\n if (!hasFillOrStroke(hoverStyle[prop]) && hasFillOrStroke(targetStyle[prop])) {\n targetStyle[prop] = liftColor(targetStyle[prop]);\n }\n}\n\nfunction singleEnterNormal(el) {\n var highlighted = el.__highlighted;\n\n if (!highlighted) {\n return;\n }\n\n el.__highlighted = false;\n\n if (el.isGroup) {\n return;\n }\n\n if (highlighted === 'layer') {\n el.__zr && el.__zr.removeHover(el);\n } else {\n var style = el.style;\n var normalStl = el.__cachedNormalStl;\n\n if (normalStl) {\n rollbackDefaultTextStyle(style);\n el.setStyle(normalStl);\n applyDefaultTextStyle(style);\n } // `__cachedNormalZ2` will not be reset if calling `setElementHoverStyle`\n // when `el` is on emphasis state. So here by comparing with 1, we try\n // hard to make the bug case rare.\n\n\n var normalZ2 = el.__cachedNormalZ2;\n\n if (normalZ2 != null && el.z2 - normalZ2 === Z2_EMPHASIS_LIFT) {\n el.z2 = normalZ2;\n }\n }\n}\n\nfunction traverseUpdate(el, updater, commonParam) {\n // If root is group, also enter updater for `highDownOnUpdate`.\n var fromState = NORMAL;\n var toState = NORMAL;\n var trigger; // See the rule of `highDownOnUpdate` on `graphic.setAsHighDownDispatcher`.\n\n el.__highlighted && (fromState = EMPHASIS, trigger = true);\n updater(el, commonParam);\n el.__highlighted && (toState = EMPHASIS, trigger = true);\n el.isGroup && el.traverse(function (child) {\n !child.isGroup && updater(child, commonParam);\n });\n trigger && el.__highDownOnUpdate && el.__highDownOnUpdate(fromState, toState);\n}\n/**\n * Set hover style (namely \"emphasis style\") of element, based on the current\n * style of the given `el`.\n * This method should be called after all of the normal styles have been adopted\n * to the `el`. See the reason on `setHoverStyle`.\n *\n * @param {module:zrender/Element} el Should not be `zrender/container/Group`.\n * @param {Object} [el.hoverStyle] Can be set on el or its descendants,\n * e.g., `el.hoverStyle = ...; graphic.setHoverStyle(el); `.\n * Often used when item group has a label element and it's hoverStyle is different.\n * @param {Object|boolean} [hoverStl] The specified hover style.\n * If set as `false`, disable the hover style.\n * Similarly, The `el.hoverStyle` can alse be set\n * as `false` to disable the hover style.\n * Otherwise, use the default hover style if not provided.\n */\n\n\nfunction setElementHoverStyle(el, hoverStl) {\n // For performance consideration, it might be better to make the \"hover style\" only the\n // difference properties from the \"normal style\", but not a entire copy of all styles.\n hoverStl = el.__hoverStl = hoverStl !== false && (el.hoverStyle || hoverStl || {});\n el.__hoverStlDirty = true; // FIXME\n // It is not completely right to save \"normal\"/\"emphasis\" flag on elements.\n // It probably should be saved on `data` of series. Consider the cases:\n // (1) A highlighted elements are moved out of the view port and re-enter\n // again by dataZoom.\n // (2) call `setOption` and replace elements totally when they are highlighted.\n\n if (el.__highlighted) {\n // Consider the case:\n // The styles of a highlighted `el` is being updated. The new \"emphasis style\"\n // should be adapted to the `el`. Notice here new \"normal styles\" should have\n // been set outside and the cached \"normal style\" is out of date.\n el.__cachedNormalStl = null; // Do not clear `__cachedNormalZ2` here, because setting `z2` is not a constraint\n // of this method. In most cases, `z2` is not set and hover style should be able\n // to rollback. Of course, that would bring bug, but only in a rare case, see\n // `doSingleLeaveHover` for details.\n\n singleEnterNormal(el);\n singleEnterEmphasis(el);\n }\n}\n\nfunction onElementMouseOver(e) {\n !shouldSilent(this, e) // \"emphasis\" event highlight has higher priority than mouse highlight.\n && !this.__highByOuter && traverseUpdate(this, singleEnterEmphasis);\n}\n\nfunction onElementMouseOut(e) {\n !shouldSilent(this, e) // \"emphasis\" event highlight has higher priority than mouse highlight.\n && !this.__highByOuter && traverseUpdate(this, singleEnterNormal);\n}\n\nfunction onElementEmphasisEvent(highlightDigit) {\n this.__highByOuter |= 1 << (highlightDigit || 0);\n traverseUpdate(this, singleEnterEmphasis);\n}\n\nfunction onElementNormalEvent(highlightDigit) {\n !(this.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdate(this, singleEnterNormal);\n}\n\nfunction shouldSilent(el, e) {\n return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n/**\n * Set hover style (namely \"emphasis style\") of element,\n * based on the current style of the given `el`.\n *\n * (1)\n * **CONSTRAINTS** for this method:\n * This method MUST be called after all of the normal styles having been adopted\n * to the `el`.\n * The input `hoverStyle` (that is, \"emphasis style\") MUST be the subset of the\n * \"normal style\" having been set to the el.\n * `color` MUST be one of the \"normal styles\" (because color might be lifted as\n * a default hover style).\n *\n * The reason: this method treat the current style of the `el` as the \"normal style\"\n * and cache them when enter/update the \"emphasis style\". Consider the case: the `el`\n * is in \"emphasis\" state and `setOption`/`dispatchAction` trigger the style updating\n * logic, where the el should shift from the original emphasis style to the new\n * \"emphasis style\" and should be able to \"downplay\" back to the new \"normal style\".\n *\n * Indeed, it is error-prone to make a interface has so many constraints, but I have\n * not found a better solution yet to fit the backward compatibility, performance and\n * the current programming style.\n *\n * (2)\n * Call the method for a \"root\" element once. Do not call it for each descendants.\n * If the descendants elemenets of a group has itself hover style different from the\n * root group, we can simply mount the style on `el.hoverStyle` for them, but should\n * not call this method for them.\n *\n * (3) These input parameters can be set directly on `el`:\n *\n * @param {module:zrender/Element} el\n * @param {Object} [el.hoverStyle] See `graphic.setElementHoverStyle`.\n * @param {boolean} [el.highDownSilentOnTouch=false] See `graphic.setAsHighDownDispatcher`.\n * @param {Function} [el.highDownOnUpdate] See `graphic.setAsHighDownDispatcher`.\n * @param {Object|boolean} [hoverStyle] See `graphic.setElementHoverStyle`.\n */\n\n\nfunction setHoverStyle(el, hoverStyle) {\n setAsHighDownDispatcher(el, true);\n traverseUpdate(el, setElementHoverStyle, hoverStyle);\n}\n/**\n * @param {module:zrender/Element} el\n * @param {Function} [el.highDownOnUpdate] Called when state updated.\n * Since `setHoverStyle` has the constraint that it must be called after\n * all of the normal style updated, `highDownOnUpdate` is not needed to\n * trigger if both `fromState` and `toState` is 'normal', and needed to\n * trigger if both `fromState` and `toState` is 'emphasis', which enables\n * to sync outside style settings to \"emphasis\" state.\n * @this {string} This dispatcher `el`.\n * @param {string} fromState Can be \"normal\" or \"emphasis\".\n * `fromState` might equal to `toState`,\n * for example, when this method is called when `el` is\n * on \"emphasis\" state.\n * @param {string} toState Can be \"normal\" or \"emphasis\".\n *\n * FIXME\n * CAUTION: Do not expose `highDownOnUpdate` outside echarts.\n * Because it is not a complete solution. The update\n * listener should not have been mount in element,\n * and the normal/emphasis state should not have\n * mantained on elements.\n *\n * @param {boolean} [el.highDownSilentOnTouch=false]\n * In touch device, mouseover event will be trigger on touchstart event\n * (see module:zrender/dom/HandlerProxy). By this mechanism, we can\n * conveniently use hoverStyle when tap on touch screen without additional\n * code for compatibility.\n * But if the chart/component has select feature, which usually also use\n * hoverStyle, there might be conflict between 'select-highlight' and\n * 'hover-highlight' especially when roam is enabled (see geo for example).\n * In this case, `highDownSilentOnTouch` should be used to disable\n * hover-highlight on touch device.\n * @param {boolean} [asDispatcher=true] If `false`, do not set as \"highDownDispatcher\".\n */\n\n\nfunction setAsHighDownDispatcher(el, asDispatcher) {\n var disable = asDispatcher === false; // Make `highDownSilentOnTouch` and `highDownOnUpdate` only work after\n // `setAsHighDownDispatcher` called. Avoid it is modified by user unexpectedly.\n\n el.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n el.__highDownOnUpdate = el.highDownOnUpdate; // Simple optimize, since this method might be\n // called for each elements of a group in some cases.\n\n if (!disable || el.__highDownDispatcher) {\n var method = disable ? 'off' : 'on'; // Duplicated function will be auto-ignored, see Eventful.js.\n\n el[method]('mouseover', onElementMouseOver)[method]('mouseout', onElementMouseOut); // Emphasis, normal can be triggered manually by API or other components like hover link.\n\n el[method]('emphasis', onElementEmphasisEvent)[method]('normal', onElementNormalEvent); // Also keep previous record.\n\n el.__highByOuter = el.__highByOuter || 0;\n el.__highDownDispatcher = !disable;\n }\n}\n/**\n * @param {module:zrender/src/Element} el\n * @return {boolean}\n */\n\n\nfunction isHighDownDispatcher(el) {\n return !!(el && el.__highDownDispatcher);\n}\n/**\n * Support hightlight/downplay record on each elements.\n * For the case: hover highlight/downplay (legend, visualMap, ...) and\n * user triggerred hightlight/downplay should not conflict.\n * Only all of the highlightDigit cleared, return to normal.\n * @param {string} highlightKey\n * @return {number} highlightDigit\n */\n\n\nfunction 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}\n/**\n * See more info in `setTextStyleCommon`.\n * @param {Object|module:zrender/graphic/Style} normalStyle\n * @param {Object} emphasisStyle\n * @param {module:echarts/model/Model} normalModel\n * @param {module:echarts/model/Model} emphasisModel\n * @param {Object} opt Check `opt` of `setTextStyleCommon` to find other props.\n * @param {string|Function} [opt.defaultText]\n * @param {module:echarts/model/Model} [opt.labelFetcher] Fetch text by\n * `opt.labelFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)`\n * @param {number} [opt.labelDataIndex] Fetch text by\n * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)`\n * @param {number} [opt.labelDimIndex] Fetch text by\n * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)`\n * @param {string} [opt.labelProp] Fetch text by\n * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex, opt.labelProp)`\n * @param {Object} [normalSpecified]\n * @param {Object} [emphasisSpecified]\n */\n\n\nfunction setLabelStyle(normalStyle, emphasisStyle, normalModel, emphasisModel, opt, normalSpecified, emphasisSpecified) {\n opt = opt || EMPTY_OBJ;\n var labelFetcher = opt.labelFetcher;\n var labelDataIndex = opt.labelDataIndex;\n var labelDimIndex = opt.labelDimIndex;\n var labelProp = opt.labelProp; // This scenario, `label.normal.show = true; label.emphasis.show = false`,\n // is not supported util someone requests.\n\n var showNormal = normalModel.getShallow('show');\n var showEmphasis = emphasisModel.getShallow('show'); // Consider performance, only fetch label when necessary.\n // If `normal.show` is `false` and `emphasis.show` is `true` and `emphasis.formatter` is not set,\n // label should be displayed, where text is fetched by `normal.formatter` or `opt.defaultText`.\n\n var baseText;\n\n if (showNormal || showEmphasis) {\n if (labelFetcher) {\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, labelProp);\n }\n\n if (baseText == null) {\n baseText = zrUtil.isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt) : opt.defaultText;\n }\n }\n\n var normalStyleText = showNormal ? baseText : null;\n var emphasisStyleText = showEmphasis ? zrUtil.retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, 'emphasis', null, labelDimIndex, labelProp) : null, baseText) : null; // Optimize: If style.text is null, text will not be drawn.\n\n if (normalStyleText != null || emphasisStyleText != null) {\n // Always set `textStyle` even if `normalStyle.text` is null, because default\n // values have to be set on `normalStyle`.\n // If we set default values on `emphasisStyle`, consider case:\n // Firstly, `setOption(... label: {normal: {text: null}, emphasis: {show: true}} ...);`\n // Secondly, `setOption(... label: {noraml: {show: true, text: 'abc', color: 'red'} ...);`\n // Then the 'red' will not work on emphasis.\n setTextStyle(normalStyle, normalModel, normalSpecified, opt);\n setTextStyle(emphasisStyle, emphasisModel, emphasisSpecified, opt, true);\n }\n\n normalStyle.text = normalStyleText;\n emphasisStyle.text = emphasisStyleText;\n}\n/**\n * Modify label style manually.\n * Only works after `setLabelStyle` and `setElementHoverStyle` called.\n *\n * @param {module:zrender/src/Element} el\n * @param {Object} [normalStyleProps] optional\n * @param {Object} [emphasisStyleProps] optional\n */\n\n\nfunction modifyLabelStyle(el, normalStyleProps, emphasisStyleProps) {\n var elStyle = el.style;\n\n if (normalStyleProps) {\n rollbackDefaultTextStyle(elStyle);\n el.setStyle(normalStyleProps);\n applyDefaultTextStyle(elStyle);\n }\n\n elStyle = el.__hoverStl;\n\n if (emphasisStyleProps && elStyle) {\n rollbackDefaultTextStyle(elStyle);\n zrUtil.extend(elStyle, emphasisStyleProps);\n applyDefaultTextStyle(elStyle);\n }\n}\n/**\n * Set basic textStyle properties.\n * See more info in `setTextStyleCommon`.\n * @param {Object|module:zrender/graphic/Style} textStyle\n * @param {module:echarts/model/Model} model\n * @param {Object} [specifiedTextStyle] Can be overrided by settings in model.\n * @param {Object} [opt] See `opt` of `setTextStyleCommon`.\n * @param {boolean} [isEmphasis]\n */\n\n\nfunction setTextStyle(textStyle, textStyleModel, specifiedTextStyle, opt, isEmphasis) {\n setTextStyleCommon(textStyle, textStyleModel, opt, isEmphasis);\n specifiedTextStyle && zrUtil.extend(textStyle, specifiedTextStyle); // textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false);\n\n return textStyle;\n}\n/**\n * Set text option in the style.\n * See more info in `setTextStyleCommon`.\n * @deprecated\n * @param {Object} textStyle\n * @param {module:echarts/model/Model} labelModel\n * @param {string|boolean} defaultColor Default text color.\n * If set as false, it will be processed as a emphasis style.\n */\n\n\nfunction setText(textStyle, labelModel, defaultColor) {\n var opt = {\n isRectText: true\n };\n var isEmphasis;\n\n if (defaultColor === false) {\n isEmphasis = true;\n } else {\n // Support setting color as 'auto' to get visual color.\n opt.autoColor = defaultColor;\n }\n\n setTextStyleCommon(textStyle, labelModel, opt, isEmphasis); // textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false);\n}\n/**\n * The uniform entry of set text style, that is, retrieve style definitions\n * from `model` and set to `textStyle` object.\n *\n * Never in merge mode, but in overwrite mode, that is, all of the text style\n * properties will be set. (Consider the states of normal and emphasis and\n * default value can be adopted, merge would make the logic too complicated\n * to manage.)\n *\n * The `textStyle` object can either be a plain object or an instance of\n * `zrender/src/graphic/Style`, and either be the style of normal or emphasis.\n * After this mothod called, the `textStyle` object can then be used in\n * `el.setStyle(textStyle)` or `el.hoverStyle = textStyle`.\n *\n * Default value will be adopted and `insideRollbackOpt` will be created.\n * See `applyDefaultTextStyle` `rollbackDefaultTextStyle` for more details.\n *\n * opt: {\n * disableBox: boolean, Whether diable drawing box of block (outer most).\n * isRectText: boolean,\n * autoColor: string, specify a color when color is 'auto',\n * for textFill, textStroke, textBackgroundColor, and textBorderColor.\n * If autoColor specified, it is used as default textFill.\n * useInsideStyle:\n * `true`: Use inside style (textFill, textStroke, textStrokeWidth)\n * if `textFill` is not specified.\n * `false`: Do not use inside style.\n * `null/undefined`: use inside style if `isRectText` is true and\n * `textFill` is not specified and textPosition contains `'inside'`.\n * forceRich: boolean\n * }\n */\n\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isEmphasis) {\n // Consider there will be abnormal when merge hover style to normal style if given default value.\n opt = opt || EMPTY_OBJ;\n\n if (opt.isRectText) {\n var textPosition;\n\n if (opt.getTextPosition) {\n textPosition = opt.getTextPosition(textStyleModel, isEmphasis);\n } else {\n textPosition = textStyleModel.getShallow('position') || (isEmphasis ? null : 'inside'); // 'outside' is not a valid zr textPostion value, but used\n // in bar series, and magric type should be considered.\n\n textPosition === 'outside' && (textPosition = 'top');\n }\n\n textStyle.textPosition = textPosition;\n textStyle.textOffset = textStyleModel.getShallow('offset');\n var labelRotate = textStyleModel.getShallow('rotate');\n labelRotate != null && (labelRotate *= Math.PI / 180);\n textStyle.textRotation = labelRotate;\n textStyle.textDistance = zrUtil.retrieve2(textStyleModel.getShallow('distance'), isEmphasis ? null : 5);\n }\n\n var ecModel = textStyleModel.ecModel;\n var globalTextStyle = ecModel && ecModel.option.textStyle; // Consider case:\n // {\n // data: [{\n // value: 12,\n // label: {\n // rich: {\n // // no 'a' here but using parent 'a'.\n // }\n // }\n // }],\n // rich: {\n // a: { ... }\n // }\n // }\n\n var richItemNames = getRichItemNames(textStyleModel);\n var richResult;\n\n if (richItemNames) {\n richResult = {};\n\n for (var name in richItemNames) {\n if (richItemNames.hasOwnProperty(name)) {\n // Cascade is supported in rich.\n var richTextStyle = textStyleModel.getModel(['rich', name]); // In rich, never `disableBox`.\n // FIXME: consider `label: {formatter: '{a|xx}', color: 'blue', rich: {a: {}}}`,\n // the default color `'blue'` will not be adopted if no color declared in `rich`.\n // That might confuses users. So probably we should put `textStyleModel` as the\n // root ancestor of the `richTextStyle`. But that would be a break change.\n\n setTokenTextStyle(richResult[name] = {}, richTextStyle, globalTextStyle, opt, isEmphasis);\n }\n }\n }\n\n textStyle.rich = richResult;\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isEmphasis, true);\n\n if (opt.forceRich && !opt.textStyle) {\n opt.textStyle = {};\n }\n\n return textStyle;\n} // Consider case:\n// {\n// data: [{\n// value: 12,\n// label: {\n// rich: {\n// // no 'a' here but using parent 'a'.\n// }\n// }\n// }],\n// rich: {\n// a: { ... }\n// }\n// }\n\n\nfunction getRichItemNames(textStyleModel) {\n // Use object to remove duplicated names.\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\n for (var name in rich) {\n if (rich.hasOwnProperty(name)) {\n richItemNameMap[name] = 1;\n }\n }\n }\n\n textStyleModel = textStyleModel.parentModel;\n }\n\n return richItemNameMap;\n}\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isEmphasis, isBlock) {\n // In merge mode, default value should not be given.\n globalTextStyle = !isEmphasis && globalTextStyle || EMPTY_OBJ;\n textStyle.textFill = getAutoColor(textStyleModel.getShallow('color'), opt) || globalTextStyle.color;\n textStyle.textStroke = getAutoColor(textStyleModel.getShallow('textBorderColor'), opt) || globalTextStyle.textBorderColor;\n textStyle.textStrokeWidth = zrUtil.retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n if (!isEmphasis) {\n if (isBlock) {\n textStyle.insideRollbackOpt = opt;\n applyDefaultTextStyle(textStyle);\n } // Set default finally.\n\n\n if (textStyle.textFill == null) {\n textStyle.textFill = opt.autoColor;\n }\n } // Do not use `getFont` here, because merge should be supported, where\n // part of these properties may be changed in emphasis style, and the\n // others should remain their original value got from normal style.\n\n\n textStyle.fontStyle = textStyleModel.getShallow('fontStyle') || globalTextStyle.fontStyle;\n textStyle.fontWeight = textStyleModel.getShallow('fontWeight') || globalTextStyle.fontWeight;\n textStyle.fontSize = textStyleModel.getShallow('fontSize') || globalTextStyle.fontSize;\n textStyle.fontFamily = textStyleModel.getShallow('fontFamily') || globalTextStyle.fontFamily;\n textStyle.textAlign = textStyleModel.getShallow('align');\n textStyle.textVerticalAlign = textStyleModel.getShallow('verticalAlign') || textStyleModel.getShallow('baseline');\n textStyle.textLineHeight = textStyleModel.getShallow('lineHeight');\n textStyle.textWidth = textStyleModel.getShallow('width');\n textStyle.textHeight = textStyleModel.getShallow('height');\n textStyle.textTag = textStyleModel.getShallow('tag');\n\n if (!isBlock || !opt.disableBox) {\n textStyle.textBackgroundColor = getAutoColor(textStyleModel.getShallow('backgroundColor'), opt);\n textStyle.textPadding = textStyleModel.getShallow('padding');\n textStyle.textBorderColor = getAutoColor(textStyleModel.getShallow('borderColor'), opt);\n textStyle.textBorderWidth = textStyleModel.getShallow('borderWidth');\n textStyle.textBorderRadius = textStyleModel.getShallow('borderRadius');\n textStyle.textBoxShadowColor = textStyleModel.getShallow('shadowColor');\n textStyle.textBoxShadowBlur = textStyleModel.getShallow('shadowBlur');\n textStyle.textBoxShadowOffsetX = textStyleModel.getShallow('shadowOffsetX');\n textStyle.textBoxShadowOffsetY = textStyleModel.getShallow('shadowOffsetY');\n }\n\n textStyle.textShadowColor = textStyleModel.getShallow('textShadowColor') || globalTextStyle.textShadowColor;\n textStyle.textShadowBlur = textStyleModel.getShallow('textShadowBlur') || globalTextStyle.textShadowBlur;\n textStyle.textShadowOffsetX = textStyleModel.getShallow('textShadowOffsetX') || globalTextStyle.textShadowOffsetX;\n textStyle.textShadowOffsetY = textStyleModel.getShallow('textShadowOffsetY') || globalTextStyle.textShadowOffsetY;\n}\n\nfunction getAutoColor(color, opt) {\n return color !== 'auto' ? color : opt && opt.autoColor ? opt.autoColor : null;\n}\n/**\n * Give some default value to the input `textStyle` object, based on the current settings\n * in this `textStyle` object.\n *\n * The Scenario:\n * when text position is `inside` and `textFill` is not specified, we show\n * text border by default for better view. But it should be considered that text position\n * might be changed when hovering or being emphasis, where the `insideRollback` is used to\n * restore the style.\n *\n * Usage (& NOTICE):\n * When a style object (eithor plain object or instance of `zrender/src/graphic/Style`) is\n * about to be modified on its text related properties, `rollbackDefaultTextStyle` should\n * be called before the modification and `applyDefaultTextStyle` should be called after that.\n * (For the case that all of the text related properties is reset, like `setTextStyleCommon`\n * does, `rollbackDefaultTextStyle` is not needed to be called).\n */\n\n\nfunction applyDefaultTextStyle(textStyle) {\n var textPosition = textStyle.textPosition;\n var opt = textStyle.insideRollbackOpt;\n var insideRollback;\n\n if (opt && textStyle.textFill == null) {\n var autoColor = opt.autoColor;\n var isRectText = opt.isRectText;\n var useInsideStyle = opt.useInsideStyle;\n var useInsideStyleCache = useInsideStyle !== false && (useInsideStyle === true || isRectText && textPosition // textPosition can be [10, 30]\n && typeof textPosition === 'string' && textPosition.indexOf('inside') >= 0);\n var useAutoColorCache = !useInsideStyleCache && autoColor != null; // All of the props declared in `CACHED_LABEL_STYLE_PROPERTIES` are to be cached.\n\n if (useInsideStyleCache || useAutoColorCache) {\n insideRollback = {\n textFill: textStyle.textFill,\n textStroke: textStyle.textStroke,\n textStrokeWidth: textStyle.textStrokeWidth\n };\n }\n\n if (useInsideStyleCache) {\n textStyle.textFill = '#fff'; // Consider text with #fff overflow its container.\n\n if (textStyle.textStroke == null) {\n textStyle.textStroke = autoColor;\n textStyle.textStrokeWidth == null && (textStyle.textStrokeWidth = 2);\n }\n }\n\n if (useAutoColorCache) {\n textStyle.textFill = autoColor;\n }\n } // Always set `insideRollback`, so that the previous one can be cleared.\n\n\n textStyle.insideRollback = insideRollback;\n}\n/**\n * Consider the case: in a scatter,\n * label: {\n * normal: {position: 'inside'},\n * emphasis: {position: 'top'}\n * }\n * In the normal state, the `textFill` will be set as '#fff' for pretty view (see\n * `applyDefaultTextStyle`), but when switching to emphasis state, the `textFill`\n * should be retured to 'autoColor', but not keep '#fff'.\n */\n\n\nfunction rollbackDefaultTextStyle(style) {\n var insideRollback = style.insideRollback;\n\n if (insideRollback) {\n // Reset all of the props in `CACHED_LABEL_STYLE_PROPERTIES`.\n style.textFill = insideRollback.textFill;\n style.textStroke = insideRollback.textStroke;\n style.textStrokeWidth = insideRollback.textStrokeWidth;\n style.insideRollback = null;\n }\n}\n\nfunction getFont(opt, ecModel) {\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n return zrUtil.trim([// FIXME in node-canvas fontWeight is before fontStyle\n 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}\n\nfunction animateOrSetProps(isUpdate, el, props, animatableModel, dataIndex, cb) {\n if (typeof dataIndex === 'function') {\n cb = dataIndex;\n dataIndex = null;\n } // Do not check 'animation' property directly here. Consider this case:\n // animation model is an `itemModel`, whose does not have `isAnimationEnabled`\n // but its parent model (`seriesModel`) does.\n\n\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n if (animationEnabled) {\n var postfix = isUpdate ? 'Update' : '';\n var duration = animatableModel.getShallow('animationDuration' + postfix);\n var animationEasing = animatableModel.getShallow('animationEasing' + postfix);\n var animationDelay = animatableModel.getShallow('animationDelay' + postfix);\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 ? el.animateTo(props, duration, animationDelay || 0, animationEasing, cb, !!cb) : (el.stopAnimation(), el.attr(props), cb && cb());\n } else {\n el.stopAnimation();\n el.attr(props);\n cb && cb();\n }\n}\n/**\n * Update graphic element properties with or without animation according to the\n * configuration in series.\n *\n * Caution: this method will stop previous animation.\n * So do not use this method to one element twice before\n * animation starts, unless you know what you are doing.\n *\n * @param {module:zrender/Element} el\n * @param {Object} props\n * @param {module:echarts/model/Model} [animatableModel]\n * @param {number} [dataIndex]\n * @param {Function} [cb]\n * @example\n * graphic.updateProps(el, {\n * position: [100, 100]\n * }, seriesModel, dataIndex, function () { console.log('Animation done!'); });\n * // Or\n * graphic.updateProps(el, {\n * position: [100, 100]\n * }, seriesModel, function () { console.log('Animation done!'); });\n */\n\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb) {\n animateOrSetProps(true, el, props, animatableModel, dataIndex, cb);\n}\n/**\n * Init graphic element properties with or without animation according to the\n * configuration in series.\n *\n * Caution: this method will stop previous animation.\n * So do not use this method to one element twice before\n * animation starts, unless you know what you are doing.\n *\n * @param {module:zrender/Element} el\n * @param {Object} props\n * @param {module:echarts/model/Model} [animatableModel]\n * @param {number} [dataIndex]\n * @param {Function} cb\n */\n\n\nfunction initProps(el, props, animatableModel, dataIndex, cb) {\n animateOrSetProps(false, el, props, animatableModel, dataIndex, cb);\n}\n/**\n * Get transform matrix of target (param target),\n * in coordinate of its ancestor (param ancestor)\n *\n * @param {module:zrender/mixin/Transformable} target\n * @param {module:zrender/mixin/Transformable} [ancestor]\n */\n\n\nfunction 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}\n/**\n * Apply transform to an vertex.\n * @param {Array.} target [x, y]\n * @param {Array.|TypedArray.|Object} transform Can be:\n * + Transform matrix: like [1, 0, 0, 1, 0, 0]\n * + {position, rotation, scale}, the same as `zrender/Transformable`.\n * @param {boolean=} invert Whether use invert matrix.\n * @return {Array.} [x, y]\n */\n\n\nfunction applyTransform(target, transform, invert) {\n if (transform && !zrUtil.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}\n/**\n * @param {string} direction 'left' 'right' 'top' 'bottom'\n * @param {Array.} transform Transform matrix: like [1, 0, 0, 1, 0, 0]\n * @param {boolean=} invert Whether use invert matrix.\n * @return {string} Transformed direction. 'left' 'right' 'top' 'bottom'\n */\n\n\nfunction transformDirection(direction, transform, invert) {\n // Pick a base, ensure that transform result will not be (0, 0).\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/**\n * Apply group transition animation from g1 to g2.\n * If no animatableModel, no animation.\n */\n\n\nfunction groupTransition(g1, g2, animatableModel, cb) {\n if (!g1 || !g2) {\n return;\n }\n\n function getElMap(g) {\n var elMap = {};\n g.traverse(function (el) {\n if (!el.isGroup && el.anid) {\n elMap[el.anid] = el;\n }\n });\n return elMap;\n }\n\n function getAnimatableProps(el) {\n var obj = {\n position: vector.clone(el.position),\n rotation: el.rotation\n };\n\n if (el.shape) {\n obj.shape = zrUtil.extend({}, el.shape);\n }\n\n return obj;\n }\n\n var elMap1 = getElMap(g1);\n g2.traverse(function (el) {\n if (!el.isGroup && 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, el.dataIndex);\n } // else {\n // if (el.previousProps) {\n // graphic.updateProps\n // }\n // }\n\n }\n });\n}\n/**\n * @param {Array.>} points Like: [[23, 44], [53, 66], ...]\n * @param {Object} rect {x, y, width, height}\n * @return {Array.>} A new clipped points.\n */\n\n\nfunction clipPointsByRect(points, rect) {\n // FIXME: this way migth be incorrect when grpahic clipped by a corner.\n // and when element have border.\n return zrUtil.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}\n/**\n * @param {Object} targetRect {x, y, width, height}\n * @param {Object} rect {x, y, width, height}\n * @return {Object} A new clipped rect. If rect size are negative, return undefined.\n */\n\n\nfunction 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); // If the total rect is cliped, nothing, including the border,\n // should be painted. So return undefined.\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}\n/**\n * @param {string} iconStr Support 'image://' or 'path://' or direct svg path.\n * @param {Object} [opt] Properties of `module:zrender/Element`, except `style`.\n * @param {Object} [rect] {x, y, width, height}\n * @return {module:zrender/Element} Icon path or image element.\n */\n\n\nfunction createIcon(iconStr, opt, rect) {\n opt = zrUtil.extend({\n rectHover: true\n }, opt);\n var style = opt.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), zrUtil.defaults(style, rect), new ZImage(opt)) : makePath(iconStr.replace('path://', ''), opt, rect, 'center');\n }\n}\n/**\n * Return `true` if the given line (line `a`) and the given polygon\n * are intersect.\n * Note that we do not count colinear as intersect here because no\n * requirement for that. We could do that if required in future.\n *\n * @param {number} a1x\n * @param {number} a1y\n * @param {number} a2x\n * @param {number} a2y\n * @param {Array.>} points Points of the polygon.\n * @return {boolean}\n */\n\n\nfunction 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}\n/**\n * Return `true` if the given two lines (line `a` and line `b`)\n * are intersect.\n * Note that we do not count colinear as intersect here because no\n * requirement for that. We could do that if required in future.\n *\n * @param {number} a1x\n * @param {number} a1y\n * @param {number} a2x\n * @param {number} a2y\n * @param {number} b1x\n * @param {number} b1y\n * @param {number} b2x\n * @param {number} b2y\n * @return {boolean}\n */\n\n\nfunction lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n // let `vec_m` to be `vec_a2 - vec_a1` and `vec_n` to be `vec_b2 - vec_b1`.\n var mx = a2x - a1x;\n var my = a2y - a1y;\n var nx = b2x - b1x;\n var ny = b2y - b1y; // `vec_m` and `vec_n` are parallel iff\n // exising `k` such that `vec_m = k · vec_n`, equivalent to `vec_m X vec_n = 0`.\n\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n if (nearZero(nmCrossProduct)) {\n return false;\n } // `vec_m` and `vec_n` are intersect iff\n // existing `p` and `q` in [0, 1] such that `vec_a1 + p * vec_m = vec_b1 + q * vec_n`,\n // such that `q = ((vec_a1 - vec_b1) X vec_m) / (vec_n X vec_m)`\n // and `p = ((vec_a1 - vec_b1) X vec_n) / (vec_n X vec_m)`.\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/**\n * Cross product of 2-dimension vector.\n */\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} // Register built-in shapes. These shapes might be overwirtten\n// by users, although we do not recommend that.\n\n\nregisterShape('circle', Circle);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexports.Z2_EMPHASIS_LIFT = Z2_EMPHASIS_LIFT;\nexports.CACHED_LABEL_STYLE_PROPERTIES = CACHED_LABEL_STYLE_PROPERTIES;\nexports.extendShape = extendShape;\nexports.extendPath = extendPath;\nexports.registerShape = registerShape;\nexports.getShapeClass = getShapeClass;\nexports.makePath = makePath;\nexports.makeImage = makeImage;\nexports.mergePath = mergePath;\nexports.resizePath = resizePath;\nexports.subPixelOptimizeLine = subPixelOptimizeLine;\nexports.subPixelOptimizeRect = subPixelOptimizeRect;\nexports.subPixelOptimize = subPixelOptimize;\nexports.setElementHoverStyle = setElementHoverStyle;\nexports.setHoverStyle = setHoverStyle;\nexports.setAsHighDownDispatcher = setAsHighDownDispatcher;\nexports.isHighDownDispatcher = isHighDownDispatcher;\nexports.getHighlightDigit = getHighlightDigit;\nexports.setLabelStyle = setLabelStyle;\nexports.modifyLabelStyle = modifyLabelStyle;\nexports.setTextStyle = setTextStyle;\nexports.setText = setText;\nexports.getFont = getFont;\nexports.updateProps = updateProps;\nexports.initProps = initProps;\nexports.getTransform = getTransform;\nexports.applyTransform = applyTransform;\nexports.transformDirection = transformDirection;\nexports.groupTransition = groupTransition;\nexports.clipPointsByRect = clipPointsByRect;\nexports.clipRectByRect = clipRectByRect;\nexports.createIcon = createIcon;\nexports.linePolygonIntersect = linePolygonIntersect;\nexports.lineLineIntersect = lineLineIntersect;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar eventTool = require(\"zrender/lib/core/event\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar throttle = require(\"../../util/throttle\");\n\nvar DataZoomView = require(\"./DataZoomView\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar layout = require(\"../../util/layout\");\n\nvar sliderMove = require(\"../helper/sliderMove\");\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*/\nvar Rect = graphic.Rect;\nvar linearMap = numberUtil.linearMap;\nvar asc = numberUtil.asc;\nvar bind = zrUtil.bind;\nvar each = zrUtil.each; // Constants\n\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar SliderZoomView = DataZoomView.extend({\n type: 'dataZoom.slider',\n init: function (ecModel, api) {\n /**\n * @private\n * @type {Object}\n */\n this._displayables = {};\n /**\n * @private\n * @type {string}\n */\n\n this._orient;\n /**\n * [0, 100]\n * @private\n */\n\n this._range;\n /**\n * [coord of the first handle, coord of the second handle]\n * @private\n */\n\n this._handleEnds;\n /**\n * [length, thick]\n * @private\n * @type {Array.}\n */\n\n this._size;\n /**\n * @private\n * @type {number}\n */\n\n this._handleWidth;\n /**\n * @private\n * @type {number}\n */\n\n this._handleHeight;\n /**\n * @private\n */\n\n this._location;\n /**\n * @private\n */\n\n this._dragging;\n /**\n * @private\n */\n\n this._dataShadowInfo;\n this.api = api;\n },\n\n /**\n * @override\n */\n render: function (dataZoomModel, ecModel, api, payload) {\n SliderZoomView.superApply(this, 'render', arguments);\n throttle.createOrUpdate(this, '_dispatchZoomAction', this.dataZoomModel.get('throttle'), 'fixRate');\n this._orient = dataZoomModel.get('orient');\n\n if (this.dataZoomModel.get('show') === false) {\n this.group.removeAll();\n return;\n } // Notice: this._resetInterval() should not be executed when payload.type\n // is 'dataZoom', origin this._range should be maintained, otherwise 'pan'\n // or 'zoom' info will be missed because of 'throttle' of this.dispatchAction,\n\n\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n this._buildView();\n }\n\n this._updateView();\n },\n\n /**\n * @override\n */\n remove: function () {\n SliderZoomView.superApply(this, 'remove', arguments);\n throttle.clear(this, '_dispatchZoomAction');\n },\n\n /**\n * @override\n */\n dispose: function () {\n SliderZoomView.superApply(this, 'dispose', arguments);\n throttle.clear(this, '_dispatchZoomAction');\n },\n _buildView: function () {\n var thisGroup = this.group;\n thisGroup.removeAll();\n\n this._resetLocation();\n\n this._resetInterval();\n\n var barGroup = this._displayables.barGroup = 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 /**\n * @private\n */\n _resetLocation: function () {\n var dataZoomModel = this.dataZoomModel;\n var api = this.api; // If some of x/y/width/height are not specified,\n // auto-adapt according to target grid.\n\n var coordRect = this._findCoordRect();\n\n var ecSize = {\n width: api.getWidth(),\n height: api.getHeight()\n }; // Default align by coordinate system rect.\n\n var positionInfo = this._orient === HORIZONTAL ? {\n // Why using 'right', because right should be used in vertical,\n // and it is better to be consistent for dealing with position param merge.\n right: ecSize.width - coordRect.x - coordRect.width,\n top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP,\n width: coordRect.width,\n height: DEFAULT_FILLER_SIZE\n } : {\n // vertical\n right: DEFAULT_LOCATION_EDGE_GAP,\n top: coordRect.y,\n width: DEFAULT_FILLER_SIZE,\n height: coordRect.height\n }; // Do not write back to option and replace value 'ph', because\n // the 'ph' value should be recalculated when resize.\n\n var layoutParams = layout.getLayoutParams(dataZoomModel.option); // Replace the placeholder value.\n\n zrUtil.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, dataZoomModel.padding);\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 /**\n * @private\n */\n _positionGroup: function () {\n var thisGroup = this.group;\n var location = this._location;\n var orient = this._orient; // Just use the first axis to determine mapping.\n\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\n var barGroup = this._displayables.barGroup;\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse; // Transform barGroup.\n\n barGroup.attr(orient === HORIZONTAL && !inverse ? {\n scale: otherAxisInverse ? [1, 1] : [1, -1]\n } : orient === HORIZONTAL && inverse ? {\n scale: otherAxisInverse ? [-1, 1] : [-1, -1]\n } : orient === VERTICAL && !inverse ? {\n scale: otherAxisInverse ? [1, -1] : [1, 1],\n rotation: Math.PI / 2 // Dont use Math.PI, considering shadow direction.\n\n } : {\n scale: otherAxisInverse ? [-1, -1] : [-1, 1],\n rotation: Math.PI / 2\n }); // Position barGroup\n\n var rect = thisGroup.getBoundingRect([barGroup]);\n thisGroup.attr('position', [location.x - rect.x, location.y - rect.y]);\n },\n\n /**\n * @private\n */\n _getViewExtent: function () {\n return [0, this._size[0]];\n },\n _renderBackground: function () {\n var dataZoomModel = this.dataZoomModel;\n var size = this._size;\n var barGroup = this._displayables.barGroup;\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 })); // Click panel, over shadow, below handles.\n\n barGroup.add(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: zrUtil.bind(this._onClickPanelClick, this)\n }));\n },\n _renderDataShadow: function () {\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\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() // @see candlestick\n : info.otherDim;\n\n if (otherDim == null) {\n return;\n }\n\n var otherDataExtent = data.getDataExtent(otherDim); // Nice extent.\n\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; // Optimize for large data shadow\n\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 } // FIXME\n // Should consider axis.min/axis.max when drawing dataShadow.\n // FIXME\n // 应该使用统一的空判断?还是在list里进行空判断?\n\n\n var isEmpty = value == null || isNaN(value) || value === ''; // See #4235.\n\n var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true); // Attempt to draw data shadow precisely when there are empty value.\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; // var dataBackgroundModel = dataZoomModel.getModel('dataBackground');\n\n this._displayables.barGroup.add(new graphic.Polygon({\n shape: {\n points: areaPoints\n },\n style: zrUtil.defaults({\n fill: dataZoomModel.get('dataBackgroundColor')\n }, dataZoomModel.getModel('dataBackground.areaStyle').getAreaStyle()),\n silent: true,\n z2: -20\n }));\n\n this._displayables.barGroup.add(new graphic.Polyline({\n shape: {\n points: linePoints\n },\n style: dataZoomModel.getModel('dataBackground.lineStyle').getLineStyle(),\n silent: true,\n z2: -19\n }));\n },\n _prepareDataShadowInfo: function () {\n var dataZoomModel = this.dataZoomModel;\n var showDataShadow = dataZoomModel.get('showDataShadow');\n\n if (showDataShadow === false) {\n return;\n } // Find a representative series.\n\n\n var result;\n var ecModel = this.ecModel;\n dataZoomModel.eachTargetAxis(function (dimNames, axisIndex) {\n var seriesModels = dataZoomModel.getAxisProxy(dimNames.name, axisIndex).getTargetSeriesModels();\n zrUtil.each(seriesModels, function (seriesModel) {\n if (result) {\n return;\n }\n\n if (showDataShadow !== true && zrUtil.indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n return;\n }\n\n var thisAxis = ecModel.getComponent(dimNames.axis, axisIndex).axis;\n var otherDim = getOtherDim(dimNames.name);\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: dimNames.name,\n otherDim: otherDim,\n otherAxisInverse: otherAxisInverse\n };\n }, this);\n }, this);\n return result;\n },\n _renderHandle: function () {\n var displaybles = this._displayables;\n var handles = displaybles.handles = [];\n var handleLabels = displaybles.handleLabels = [];\n var barGroup = this._displayables.barGroup;\n var size = this._size;\n var dataZoomModel = this.dataZoomModel;\n barGroup.add(displaybles.filler = new Rect({\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 style: {\n fill: dataZoomModel.get('fillerColor'),\n textPosition: 'inside'\n }\n })); // Frame border.\n\n barGroup.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 },\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 path = graphic.createIcon(dataZoomModel.get('handleIcon'), {\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 }, {\n x: -1,\n y: 0,\n width: 2,\n height: 2\n });\n var bRect = path.getBoundingRect();\n this._handleHeight = numberUtil.parsePercent(dataZoomModel.get('handleSize'), this._size[1]);\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n var handleColor = dataZoomModel.get('handleColor'); // Compatitable with previous version\n\n if (handleColor != null) {\n path.style.fill = handleColor;\n }\n\n barGroup.add(handles[handleIndex] = path);\n var textStyleModel = dataZoomModel.textStyleModel;\n this.group.add(handleLabels[handleIndex] = new graphic.Text({\n silent: true,\n invisible: true,\n style: {\n x: 0,\n y: 0,\n text: '',\n textVerticalAlign: 'middle',\n textAlign: 'center',\n textFill: textStyleModel.getTextColor(),\n textFont: textStyleModel.getFont()\n },\n z2: 10\n }));\n }, this);\n },\n\n /**\n * @private\n */\n _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 /**\n * @private\n * @param {(number|string)} handleIndex 0 or 1 or 'all'\n * @param {number} delta\n * @return {boolean} changed\n */\n _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 /**\n * @private\n */\n _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 // Handles\n var handle = displaybles.handles[handleIndex];\n var handleHeight = this._handleHeight;\n handle.attr({\n scale: [handleHeight / 2, handleHeight / 2],\n position: [handleEnds[handleIndex], size[1] / 2 - handleHeight / 2]\n });\n }, this); // Filler\n\n displaybles.filler.setShape({\n x: handleInterval[0],\n y: 0,\n width: handleInterval[1] - handleInterval[0],\n height: size[1]\n });\n\n this._updateDataInfo(nonRealtime);\n },\n\n /**\n * @private\n */\n _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 = ['', '']; // FIXME\n // date型,支持formatter,autoformatter(ec2 date.getAutoFormatter)\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 // See #4434, data and axis are not processed and reset yet in non-realtime mode.\n ? 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 // Label\n // Text should not transform by barGroup.\n // Ignore handlers transform\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 textVerticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n textAlign: orient === HORIZONTAL ? direction : 'center',\n text: labelTexts[handleIndex]\n });\n }\n },\n\n /**\n * @private\n */\n _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) ? '' // FIXME Glue code\n : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel(Math.round(value)) // param of toFixed should less then 20.\n : value.toFixed(Math.min(labelPrecision, 20));\n return zrUtil.isFunction(labelFormatter) ? labelFormatter(value, valueStr) : zrUtil.isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n },\n\n /**\n * @private\n * @param {boolean} showOrHide true: show, false: hide\n */\n _showDataInfo: function (showOrHide) {\n // Always show when drgging.\n showOrHide = this._dragging || showOrHide;\n var handleLabels = this._displayables.handleLabels;\n handleLabels[0].attr('invisible', !showOrHide);\n handleLabels[1].attr('invisible', !showOrHide);\n },\n _onDragMove: function (handleIndex, dx, dy, event) {\n this._dragging = true; // For mobile device, prevent screen slider on the button.\n\n eventTool.stop(event.event); // Transform dx, dy to bar coordination.\n\n var barTransform = this._displayables.barGroup.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); // Avoid dispatch dataZoom repeatly but range not changed,\n // which cause bad visual effect when progressive enabled.\n\n\n changed && realtime && this._dispatchZoomAction();\n },\n _onDragEnd: function () {\n this._dragging = false;\n\n this._showDataInfo(false); // While in realtime mode and stream mode, dispatch action when\n // drag end will cause the whole view rerender, which is unnecessary.\n\n\n var realtime = this.dataZoomModel.get('realtime');\n !realtime && this._dispatchZoomAction();\n },\n _onClickPanelClick: function (e) {\n var size = this._size;\n\n var localPoint = this._displayables.barGroup.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();\n },\n\n /**\n * This action will be throttled.\n * @private\n */\n _dispatchZoomAction: function () {\n var range = this._range;\n this.api.dispatchAction({\n type: 'dataZoom',\n from: this.uid,\n dataZoomId: this.dataZoomModel.id,\n start: range[0],\n end: range[1]\n });\n },\n\n /**\n * @private\n */\n _findCoordRect: function () {\n // Find the grid coresponding to the first axis referred by dataZoom.\n var rect;\n each(this.getTargetCoordInfo(), function (coordInfoList) {\n if (!rect && coordInfoList.length) {\n var coordSys = coordInfoList[0].model.coordinateSystem;\n rect = coordSys.getRect && coordSys.getRect();\n }\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\nfunction getOtherDim(thisDim) {\n // FIXME\n // 这个逻辑和getOtherAxis里一致,但是写在这里是否不好\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\nvar _default = SliderZoomView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar List = require(\"../../data/List\");\n\nvar Graph = require(\"../../data/Graph\");\n\nvar linkList = require(\"../../data/helper/linkList\");\n\nvar createDimensions = require(\"../../data/helper/createDimensions\");\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar createListFromArray = require(\"./createListFromArray\");\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*/\nfunction _default(nodes, edges, seriesModel, directed, beforeLink) {\n // ??? TODO\n // support dataset?\n var graph = new Graph(directed);\n\n for (var i = 0; i < nodes.length; i++) {\n graph.addNode(zrUtil.retrieve( // Id, name, dataIndex\n 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; // addEdge may fail when source or target not exists\n\n if (graph.addEdge(source, target, linkCount)) {\n validEdges.push(link);\n linkNameList.push(zrUtil.retrieve(link.id, 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.type !== 'view' ? coordSysCtor.dimensions || [] : []; // FIXME: Some geo do not need `value` dimenson, whereas `calendar` needs\n // `value` dimension, but graph need `value` dimension. It's better to\n // uniform this behavior.\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 }); // Update dataIndex of nodes and edges because invalid edge may be removed\n\n graph.update();\n return graph;\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar IndicatorAxis = require(\"./IndicatorAxis\");\n\nvar IntervalScale = require(\"../../scale/Interval\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar _axisHelper = require(\"../axisHelper\");\n\nvar getScaleExtent = _axisHelper.getScaleExtent;\nvar niceScaleExtent = _axisHelper.niceScaleExtent;\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar LogScale = require(\"../../scale/Log\");\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// TODO clockwise\nfunction Radar(radarModel, ecModel, api) {\n this._model = radarModel;\n /**\n * Radar dimensions\n * @type {Array.}\n */\n\n this.dimensions = [];\n this._indicatorAxes = zrUtil.map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n var dim = 'indicator_' + idx;\n var indicatorAxis = new IndicatorAxis(dim, indicatorModel.get('axisType') === 'log' ? new LogScale() : new IntervalScale());\n indicatorAxis.name = indicatorModel.get('name'); // Inject model and axis\n\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 * @type {number}\n * @readOnly\n */\n\n this.cx;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.cy;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.r;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.r0;\n /**\n * @type {number}\n * @readOnly\n */\n\n this.startAngle;\n}\n\nRadar.prototype.getIndicatorAxes = function () {\n return this._indicatorAxes;\n};\n\nRadar.prototype.dataToPoint = function (value, indicatorIndex) {\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\n return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n};\n\nRadar.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\nRadar.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); // Find the closest angle\n // FIXME index can calculated directly\n\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\nRadar.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; // radius may be single value like `20`, `'80%'`, or array like `[10, '80%']`\n\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 zrUtil.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; // Normalize to [-PI, PI]\n\n angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n indicatorAxis.angle = angle;\n }, this);\n};\n\nRadar.prototype.update = function (ecModel, api) {\n var indicatorAxes = this._indicatorAxes;\n var radarModel = this._model;\n zrUtil.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 zrUtil.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)); // Increase interval\n\n var f = interval / exp10;\n\n if (f === 2) {\n f = 5;\n } else {\n // f is 2 or 5\n f *= 2;\n }\n\n return f * exp10;\n } // Force all the axis fixing the maxSplitNumber.\n\n\n zrUtil.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 = axisModel.getMin();\n var fixedMax = axisModel.getMax();\n var interval = scale.getInterval();\n\n if (fixedMin != null && fixedMax != null) {\n // User set min, max, divide to get new interval\n scale.setExtent(+fixedMin, +fixedMax);\n scale.setInterval((fixedMax - fixedMin) / splitNumber);\n } else if (fixedMin != null) {\n var max; // User set min, expand extent on the other side\n\n do {\n max = fixedMin + interval * splitNumber;\n scale.setExtent(+fixedMin, max); // Interval must been set after extent\n // FIXME\n\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; // User set min, expand extent on the other side\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 } // TODO\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 dimensions is based on the data\n * @type {Array}\n */\n\n\nRadar.dimensions = [];\n\nRadar.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 // Inject coordinate system\n radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n }\n });\n return radarList;\n};\n\nCoordinateSystem.register('radar', Radar);\nvar _default = Radar;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./graph/GraphSeries\");\n\nrequire(\"./graph/GraphView\");\n\nrequire(\"./graph/graphAction\");\n\nvar categoryFilter = require(\"./graph/categoryFilter\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar categoryVisual = require(\"./graph/categoryVisual\");\n\nvar edgeVisual = require(\"./graph/edgeVisual\");\n\nvar simpleLayout = require(\"./graph/simpleLayout\");\n\nvar circularLayout = require(\"./graph/circularLayout\");\n\nvar forceLayout = require(\"./graph/forceLayout\");\n\nvar createView = require(\"./graph/createView\");\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*/\necharts.registerProcessor(categoryFilter);\necharts.registerVisual(visualSymbol('graph', 'circle', null));\necharts.registerVisual(categoryVisual);\necharts.registerVisual(edgeVisual);\necharts.registerLayout(simpleLayout);\necharts.registerLayout(echarts.PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout);\necharts.registerLayout(forceLayout); // Graph view coordinate system\n\necharts.registerCoordinateSystem('graphView', {\n create: createView\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\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar formatUtil = require(\"../../util/format\");\n\nvar dataFormatMixin = require(\"../../model/mixin/dataFormat\");\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*/\nvar addCommas = formatUtil.addCommas;\nvar encodeHTML = formatUtil.encodeHTML;\n\nfunction fillLabel(opt) {\n modelUtil.defaultEmphasis(opt, 'label', ['show']);\n}\n\nvar MarkerModel = echarts.extendComponentModel({\n type: 'marker',\n dependencies: ['series', 'grid', 'polar', 'geo'],\n\n /**\n * @overrite\n */\n init: function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n\n this._mergeOption(option, ecModel, false, true);\n },\n\n /**\n * @return {boolean}\n */\n 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 /**\n * @overrite\n */\n mergeOption: function (newOpt, ecModel) {\n this._mergeOption(newOpt, ecModel, false, false);\n },\n _mergeOption: function (newOpt, ecModel, createdBySelf, isInit) {\n var MarkerModel = this.constructor;\n var modelPropName = this.mainType + 'Model';\n\n if (!createdBySelf) {\n ecModel.eachSeries(function (seriesModel) {\n var markerOpt = seriesModel.get(this.mainType, true);\n var markerModel = seriesModel[modelPropName];\n\n if (!markerOpt || !markerOpt.data) {\n seriesModel[modelPropName] = null;\n return;\n }\n\n if (!markerModel) {\n if (isInit) {\n // Default label emphasis `position` and `show`\n fillLabel(markerOpt);\n }\n\n zrUtil.each(markerOpt.data, function (item) {\n // FIXME Overwrite fillLabel method ?\n if (item instanceof Array) {\n fillLabel(item[0]);\n fillLabel(item[1]);\n } else {\n fillLabel(item);\n }\n });\n markerModel = new MarkerModel(markerOpt, this, ecModel);\n zrUtil.extend(markerModel, {\n mainType: this.mainType,\n // Use the same series index and name\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 seriesModel[modelPropName] = markerModel;\n }, this);\n }\n },\n formatTooltip: function (dataIndex, multipleSeries, dataType, renderMode) {\n var data = this.getData();\n var value = this.getRawValue(dataIndex);\n var formattedValue = zrUtil.isArray(value) ? zrUtil.map(value, addCommas).join(', ') : addCommas(value);\n var name = data.getName(dataIndex);\n var html = encodeHTML(this.name);\n var newLine = renderMode === 'html' ? '
' : '\\n';\n\n if (value != null || name) {\n html += newLine;\n }\n\n if (name) {\n html += encodeHTML(name);\n\n if (value != null) {\n html += ' : ';\n }\n }\n\n if (value != null) {\n html += encodeHTML(formattedValue);\n }\n\n return html;\n },\n getData: function () {\n return this._data;\n },\n setData: function (data) {\n this._data = data;\n }\n});\nzrUtil.mixin(MarkerModel, dataFormatMixin);\nvar _default = MarkerModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar layout = require(\"../../util/layout\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar linearMap = _number.linearMap;\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*/\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 } // Add custom sortable function & none sortable opetion by \"options.sort\"\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 data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n var labelPosition = labelModel.get('position');\n var orient = itemModel.get('orient');\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;\n var y1;\n var x2;\n var y2;\n var labelLineLen = labelLineModel.get('length');\n\n if (labelPosition === 'left') {\n // Left side\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 // Right side\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 // Top side\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 // Bottom side\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 // RightTop side\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 // RightBottom side\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 // LeftTop side\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 // LeftBottom side\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 // Right side or Bottom side\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\nfunction _default(ecModel, api, payload) {\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 indices = getSortedIndices(data, sort);\n var orient = seriesModel.get('orient');\n var viewWidth = viewRect.width;\n var viewHeight = viewRect.height;\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 // End point index is data.count() and we assign it 0\n if (orient === 'horizontal') {\n var val = data.get(valueDim, idx) || 0;\n var itemHeight = linearMap(val, [min, max], sizeExtent, true);\n var y0;\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 // From bottom to top\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 = orient === 'horizontal' ? getLinePoints(idx, x) : getLinePoints(idx, y);\n var end = orient === 'horizontal' ? getLinePoints(nextIdx, x + width) : 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\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar _poly = require(\"../line/poly\");\n\nvar Polygon = _poly.Polygon;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar bind = _util.bind;\nvar extend = _util.extend;\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\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*/\nvar _default = echarts.extendChartView({\n type: 'themeRiver',\n init: function () {\n this._layers = [];\n },\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var group = this.group;\n var layerSeries = seriesModel.getLayerSeries();\n var layoutInfo = data.getLayout('layoutInfo');\n var rect = layoutInfo.rect;\n var boundaryGap = layoutInfo.boundaryGap;\n group.attr('position', [0, rect.y + boundaryGap[0]]);\n\n function keyGetter(item) {\n return item.name;\n }\n\n var dataDiffer = new DataDiffer(this._layersSeries || [], layerSeries, 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 = this._layers;\n\n if (status === 'remove') {\n group.remove(oldLayersGroups[idx]);\n return;\n }\n\n var points0 = [];\n var points1 = [];\n var color;\n var indices = layerSeries[idx].indices;\n\n for (var j = 0; 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 color = data.getItemVisual(indices[j], 'color');\n }\n\n var polygon;\n var text;\n var textLayout = data.getItemLayout(indices[0]);\n var itemModel = data.getItemModel(indices[j - 1]);\n var labelModel = itemModel.getModel('label');\n var margin = labelModel.get('margin');\n\n if (status === 'add') {\n var layerGroup = newLayersGroups[idx] = new graphic.Group();\n polygon = new Polygon({\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 text = new graphic.Text({\n style: {\n x: textLayout.x - margin,\n y: textLayout.y0 + textLayout.y / 2\n }\n });\n layerGroup.add(polygon);\n layerGroup.add(text);\n group.add(layerGroup);\n polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n polygon.removeClipPath();\n }));\n } else {\n var layerGroup = oldLayersGroups[oldIdx];\n polygon = layerGroup.childAt(0);\n text = layerGroup.childAt(1);\n group.add(layerGroup);\n newLayersGroups[idx] = layerGroup;\n graphic.updateProps(polygon, {\n shape: {\n points: points0,\n stackedOnPoints: points1\n }\n }, seriesModel);\n graphic.updateProps(text, {\n style: {\n x: textLayout.x - margin,\n y: textLayout.y0 + textLayout.y / 2\n }\n }, seriesModel);\n }\n\n var hoverItemStyleModel = itemModel.getModel('emphasis.itemStyle');\n var itemStyleModel = itemModel.getModel('itemStyle');\n graphic.setTextStyle(text.style, labelModel, {\n text: labelModel.get('show') ? seriesModel.getFormattedLabel(indices[j - 1], 'normal') || data.getName(indices[j - 1]) : null,\n textVerticalAlign: 'middle'\n });\n polygon.setStyle(extend({\n fill: color\n }, itemStyleModel.getItemStyle(['color'])));\n graphic.setHoverStyle(polygon, hoverItemStyleModel.getItemStyle());\n }\n\n this._layersSeries = layerSeries;\n this._layers = newLayersGroups;\n },\n dispose: function () {}\n}); // add animation to the view\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 width: rect.width + 20,\n height: rect.height + 20\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\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*/\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 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 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 // Timeline controlStyle has other properties besides normal and emphasis\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 opt.emphasis = opt.emphasis || {};\n opt.emphasis[optType] = emphasisOpt;\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'); // treemap\n\n convertNormalEmphasis(opt, 'upperLabel'); // graph\n\n convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n // Check whether is not object (string\\null\\undefined ...)\n var labelOptSingle = isObject(opt) && opt[propName];\n var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n if (textStyle) {\n for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n var propName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n if (textStyle.hasOwnProperty(propName)) {\n labelOptSingle[propName] = textStyle[propName];\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'); // treemap\n\n compatTextStyle(seriesOpt, 'upperLabel'); // graph\n\n compatTextStyle(seriesOpt, 'edgeLabel');\n\n if (seriesOpt.emphasis) {\n compatTextStyle(seriesOpt.emphasis, 'label'); // treemap\n\n compatTextStyle(seriesOpt.emphasis, 'upperLabel'); // graph\n\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; // Break with ec3: if `setOption` again, there may be no `type` in option,\n // then the backward compat based on option type will not be performed.\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 } // mark point data\n\n\n var 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 } // mark line data\n\n\n var 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 } // Series\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 } // sunburst starts from ec4, so it does not need to compat levels.\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\nfunction _default(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 }); // radar.name.textStyle\n\n each(toArr(option.radar), function (radarOpt) {\n compatTextStyle(radarOpt, 'name');\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\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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// TODO Parse shadow style\n// TODO Only shallow path support\nfunction _default(properties) {\n // Normalize\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 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);\n\n if (val != null) {\n style[properties[i][0]] = val;\n }\n }\n\n return style;\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar linearMap = _number.linearMap;\n\nvar layout = require(\"../../util/layout\");\n\nvar labelLayout = require(\"./labelLayout\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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*/\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\nfunction _default(seriesType, ecModel, api, payload) {\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); // Sum may be 0\n\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'); // [0...max]\n\n var extent = data.getDataExtent(valueDim);\n extent[0] = 0; // In the case some sector angle is smaller than minAngle\n\n var restAngle = PI2;\n var valueSumLargerThanMinAngle = 0;\n var currentAngle = startAngle;\n var dir = clockwise ? 1 : -1;\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 viewRect: viewRect\n });\n return;\n } // FIXME 兼容 2.0 但是 roseType 是 area 的时候才是这样?\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 viewRect: viewRect\n });\n currentAngle = endAngle;\n }); // Some sector is constrained by minAngle\n // Rest sectors needs recalculate angle\n\n if (restAngle < PI2 && validDataCount) {\n // Average the angle if rest angle is not enough after all angles is\n // Constrained by minAngle\n if (restAngle <= 1e-3) {\n var angle = PI2 / validDataCount;\n data.each(valueDim, function (value, idx) {\n if (!isNaN(value)) {\n var layout = data.getItemLayout(idx);\n layout.angle = angle;\n layout.startAngle = startAngle + dir * idx * angle;\n layout.endAngle = startAngle + dir * (idx + 1) * angle;\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 = data.getItemLayout(idx);\n var angle = layout.angle === minAngle ? minAngle : value * unitRadian;\n layout.startAngle = currentAngle;\n layout.endAngle = currentAngle + dir * angle;\n currentAngle += dir * angle;\n }\n });\n }\n }\n\n labelLayout(seriesModel, r, viewRect.width, viewRect.height, viewRect.x, viewRect.y);\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\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*/\nfunction _default(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); // Add prefix to avoid conflict with Object.prototype.\n\n categoryNameIdxMap['ec-' + name] = idx;\n var itemModel = categoriesData.getItemModel(idx);\n var color = itemModel.get('itemStyle.color') || seriesModel.getColorFromPalette(name, paletteScope);\n categoriesData.setItemVisual(idx, 'color', color);\n var itemStyleList = ['opacity', 'symbol', 'symbolSize', 'symbolKeepAspect'];\n\n for (var i = 0; i < itemStyleList.length; i++) {\n var itemStyle = itemModel.getShallow(itemStyleList[i], true);\n\n if (itemStyle != null) {\n categoriesData.setItemVisual(idx, itemStyleList[i], itemStyle);\n }\n }\n }); // Assign category color to visual\n\n if (categoriesData.count()) {\n data.each(function (idx) {\n var model = data.getItemModel(idx);\n var category = model.getShallow('category');\n\n if (category != null) {\n if (typeof category === 'string') {\n category = categoryNameIdxMap['ec-' + category];\n }\n\n var itemStyleList = ['color', 'opacity', 'symbol', 'symbolSize', 'symbolKeepAspect'];\n\n for (var i = 0; i < itemStyleList.length; i++) {\n if (data.getItemVisual(idx, itemStyleList[i], true) == null) {\n data.setItemVisual(idx, itemStyleList[i], categoriesData.getItemVisual(category, itemStyleList[i]));\n }\n }\n }\n });\n }\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\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 * Language: (Simplified) Chinese.\n */\nvar _default = {\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};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nvar preprocessor = require(\"./visualMap/preprocessor\");\n\nrequire(\"./visualMap/typeDefaulter\");\n\nrequire(\"./visualMap/visualEncoding\");\n\nrequire(\"./visualMap/PiecewiseModel\");\n\nrequire(\"./visualMap/PiecewiseView\");\n\nrequire(\"./visualMap/visualMapAction\");\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 * DataZoom component entry\n */\necharts.registerPreprocessor(preprocessor);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar isTypedArray = _util.isTypedArray;\nvar extend = _util.extend;\nvar assert = _util.assert;\nvar each = _util.each;\nvar isObject = _util.isObject;\n\nvar _model = require(\"../../util/model\");\n\nvar getDataItemValue = _model.getDataItemValue;\nvar isDataItemOption = _model.isDataItemOption;\n\nvar _number = require(\"../../util/number\");\n\nvar parseDate = _number.parseDate;\n\nvar Source = require(\"../Source\");\n\nvar _sourceType = require(\"./sourceType\");\n\nvar SOURCE_FORMAT_TYPED_ARRAY = _sourceType.SOURCE_FORMAT_TYPED_ARRAY;\nvar SOURCE_FORMAT_ARRAY_ROWS = _sourceType.SOURCE_FORMAT_ARRAY_ROWS;\nvar SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL;\nvar SOURCE_FORMAT_OBJECT_ROWS = _sourceType.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// TODO\n// ??? refactor? check the outer usage of data provider.\n// merge with defaultDimValueGetter?\n\n/**\n * If normal array used, mutable chunk size is supported.\n * If typed array used, chunk size must be fixed.\n */\nfunction DefaultDataProvider(source, dimSize) {\n if (!Source.isInstance(source)) {\n source = Source.seriesDataToSource(source);\n }\n\n this._source = source;\n var data = this._data = source.data;\n var sourceFormat = source.sourceFormat; // Typed array. TODO IE10+?\n\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n this._offset = 0;\n this._dimSize = dimSize;\n this._data = data;\n }\n\n var methods = providerMethods[sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + source.seriesLayoutBy : sourceFormat];\n extend(this, methods);\n}\n\nvar providerProto = DefaultDataProvider.prototype; // If data is pure without style configuration\n\nproviderProto.pure = false; // If data is persistent and will not be released after use.\n\nproviderProto.persistent = true; // ???! FIXME legacy data provider do not has method getSource\n\nproviderProto.getSource = function () {\n return this._source;\n};\n\nvar providerMethods = {\n 'arrayRows_column': {\n pure: true,\n count: function () {\n return Math.max(0, this._data.length - this._source.startIndex);\n },\n getItem: function (idx) {\n return this._data[idx + this._source.startIndex];\n },\n appendData: appendDataSimply\n },\n 'arrayRows_row': {\n pure: true,\n count: function () {\n var row = this._data[0];\n return row ? Math.max(0, row.length - this._source.startIndex) : 0;\n },\n getItem: function (idx) {\n idx += this._source.startIndex;\n var item = [];\n var data = this._data;\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 },\n appendData: function () {\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n }\n },\n 'objectRows': {\n pure: true,\n count: countSimply,\n getItem: getItemSimply,\n appendData: appendDataSimply\n },\n 'keyedColumns': {\n pure: true,\n count: function () {\n var dimName = this._source.dimensionsDefine[0].name;\n var col = this._data[dimName];\n return col ? col.length : 0;\n },\n getItem: function (idx) {\n var item = [];\n var dims = this._source.dimensionsDefine;\n\n for (var i = 0; i < dims.length; i++) {\n var col = this._data[dims[i].name];\n item.push(col ? col[idx] : null);\n }\n\n return item;\n },\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 },\n 'original': {\n count: countSimply,\n getItem: getItemSimply,\n appendData: appendDataSimply\n },\n 'typedArray': {\n persistent: false,\n pure: true,\n count: function () {\n return this._data ? this._data.length / this._dimSize : 0;\n },\n getItem: function (idx, out) {\n idx = idx - this._offset;\n out = out || [];\n var offset = this._dimSize * idx;\n\n for (var i = 0; i < this._dimSize; i++) {\n out[i] = this._data[offset + i];\n }\n\n return out;\n },\n appendData: function (newData) {\n this._data = newData;\n },\n // Clean self if data is already used.\n clean: function () {\n // PENDING\n this._offset += this.count();\n this._data = null;\n }\n }\n};\n\nfunction countSimply() {\n return this._data.length;\n}\n\nfunction getItemSimply(idx) {\n return this._data[idx];\n}\n\nfunction appendDataSimply(newData) {\n for (var i = 0; i < newData.length; i++) {\n this._data.push(newData[i]);\n }\n}\n\nvar rawValueGetters = {\n arrayRows: getRawValueSimply,\n objectRows: function (dataItem, dataIndex, dimIndex, dimName) {\n return dimIndex != null ? dataItem[dimName] : dataItem;\n },\n keyedColumns: getRawValueSimply,\n original: function (dataItem, dataIndex, dimIndex, dimName) {\n // FIXME\n // In some case (markpoint in geo (geo-map.html)), dataItem\n // is {coord: [...]}\n var value = getDataItemValue(dataItem);\n return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n },\n typedArray: getRawValueSimply\n};\n\nfunction getRawValueSimply(dataItem, dataIndex, dimIndex, dimName) {\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\n}\n\nvar defaultDimValueGetters = {\n arrayRows: getDimValueSimply,\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n return converDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n },\n keyedColumns: getDimValueSimply,\n original: function (dataItem, dimName, dataIndex, dimIndex) {\n // Performance sensitive, do not use modelUtil.getDataItemValue.\n // If dataItem is an plain object with no value field, the var `value`\n // will be assigned with the object, but it will be tread correctly\n // in the `convertDataValue`.\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value); // If any dataItem is like { value: 10 }\n\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\n this.hasItemOption = true;\n }\n\n return converDataValue(value instanceof Array ? value[dimIndex] // If value is a single number or something else not array.\n : value, this._dimensionInfos[dimName]);\n },\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n return dataItem[dimIndex];\n }\n};\n\nfunction getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n return converDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n}\n/**\n * This helper method convert value in data.\n * @param {string|number|Date} value\n * @param {Object|string} [dimInfo] If string (like 'x'), dimType defaults 'number'.\n * If \"dimInfo.ordinalParseAndSave\", ordinal value can be parsed.\n */\n\n\nfunction converDataValue(value, dimInfo) {\n // Performance sensitive.\n var dimType = dimInfo && dimInfo.type;\n\n if (dimType === 'ordinal') {\n // If given value is a category string\n var ordinalMeta = dimInfo && dimInfo.ordinalMeta;\n return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n }\n\n if (dimType === 'time' // spead up when using timestamp\n && typeof value !== 'number' && value != null && value !== '-') {\n value = +parseDate(value);\n } // dimType defaults 'number'.\n // If dimType is not ordinal and value is null or undefined or NaN or '-',\n // parse to NaN.\n\n\n return value == null || value === '' ? NaN // If string (like '-'), using '+' parse to NaN\n // If object, also parse to NaN\n : +value;\n} // ??? FIXME can these logic be more neat: getRawValue, getRawDataItem,\n// Consider persistent.\n// Caution: why use raw value to display on label or tooltip?\n// A reason is to avoid format. For example time value we do not know\n// how to format is expected. More over, if stack is used, calculated\n// value may be 0.91000000001, which have brings trouble to display.\n// TODO: consider how to treat null/undefined/NaN when display?\n\n/**\n * @param {module:echarts/data/List} data\n * @param {number} dataIndex\n * @param {string|number} [dim] dimName or dimIndex\n * @return {Array.|string|number} can be null/undefined.\n */\n\n\nfunction retrieveRawValue(data, dataIndex, dim) {\n if (!data) {\n return;\n } // Consider data may be not persistent.\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 rawValueGetters[sourceFormat](dataItem, dataIndex, dimIndex, dimName);\n}\n/**\n * Compatible with some cases (in pie, map) like:\n * data: [{name: 'xx', value: 5, selected: true}, ...]\n * where only sourceFormat is 'original' and 'objectRows' supported.\n *\n * ??? TODO\n * Supported detail options in data item when using 'arrayRows'.\n *\n * @param {module:echarts/data/List} data\n * @param {number} dataIndex\n * @param {string} attr like 'selected'\n */\n\n\nfunction 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\nexports.DefaultDataProvider = DefaultDataProvider;\nexports.defaultDimValueGetters = defaultDimValueGetters;\nexports.retrieveRawValue = retrieveRawValue;\nexports.retrieveRawAttr = retrieveRawAttr;","var fixShadow = require(\"./helper/fixShadow\");\n\nvar _constant = require(\"./constant\");\n\nvar ContextCachedBy = _constant.ContextCachedBy;\nvar STYLE_COMMON_PROPS = [['shadowBlur', 0], ['shadowOffsetX', 0], ['shadowOffsetY', 0], ['shadowColor', '#000'], ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]]; // var SHADOW_PROPS = STYLE_COMMON_PROPS.slice(0, 4);\n// var LINE_PROPS = STYLE_COMMON_PROPS.slice(4);\n\nvar Style = function (opts) {\n this.extendFrom(opts, false);\n};\n\nfunction 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\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 } // Fix NaN when rect is Infinity\n\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}\n\nfunction 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\n if (!obj.global) {\n x = x * width + rect.x;\n y = y * height + rect.y;\n r = r * min;\n }\n\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n return canvasGradient;\n}\n\nStyle.prototype = {\n constructor: Style,\n\n /**\n * @type {string}\n */\n fill: '#000',\n\n /**\n * @type {string}\n */\n stroke: null,\n\n /**\n * @type {number}\n */\n opacity: 1,\n\n /**\n * @type {number}\n */\n fillOpacity: null,\n\n /**\n * @type {number}\n */\n strokeOpacity: null,\n\n /**\n * `true` is not supported.\n * `false`/`null`/`undefined` are the same.\n * `false` is used to remove lineDash in some\n * case that `null`/`undefined` can not be set.\n * (e.g., emphasis.lineStyle in echarts)\n * @type {Array.|boolean}\n */\n lineDash: null,\n\n /**\n * @type {number}\n */\n lineDashOffset: 0,\n\n /**\n * @type {number}\n */\n shadowBlur: 0,\n\n /**\n * @type {number}\n */\n shadowOffsetX: 0,\n\n /**\n * @type {number}\n */\n shadowOffsetY: 0,\n\n /**\n * @type {number}\n */\n lineWidth: 1,\n\n /**\n * If stroke ignore scale\n * @type {Boolean}\n */\n strokeNoScale: false,\n // Bounding rect text configuration\n // Not affected by element transform\n\n /**\n * @type {string}\n */\n text: null,\n\n /**\n * If `fontSize` or `fontFamily` exists, `font` will be reset by\n * `fontSize`, `fontStyle`, `fontWeight`, `fontFamily`.\n * So do not visit it directly in upper application (like echarts),\n * but use `contain/text#makeFont` instead.\n * @type {string}\n */\n font: null,\n\n /**\n * The same as font. Use font please.\n * @deprecated\n * @type {string}\n */\n textFont: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * @type {string}\n */\n fontStyle: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * @type {string}\n */\n fontWeight: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * Should be 12 but not '12px'.\n * @type {number}\n */\n fontSize: null,\n\n /**\n * It helps merging respectively, rather than parsing an entire font string.\n * @type {string}\n */\n fontFamily: null,\n\n /**\n * Reserved for special functinality, like 'hr'.\n * @type {string}\n */\n textTag: null,\n\n /**\n * @type {string}\n */\n textFill: '#000',\n\n /**\n * @type {string}\n */\n textStroke: null,\n\n /**\n * @type {number}\n */\n textWidth: null,\n\n /**\n * Only for textBackground.\n * @type {number}\n */\n textHeight: null,\n\n /**\n * textStroke may be set as some color as a default\n * value in upper applicaion, where the default value\n * of textStrokeWidth should be 0 to make sure that\n * user can choose to do not use text stroke.\n * @type {number}\n */\n textStrokeWidth: 0,\n\n /**\n * @type {number}\n */\n textLineHeight: null,\n\n /**\n * 'inside', 'left', 'right', 'top', 'bottom'\n * [x, y]\n * Based on x, y of rect.\n * @type {string|Array.}\n * @default 'inside'\n */\n textPosition: 'inside',\n\n /**\n * If not specified, use the boundingRect of a `displayable`.\n * @type {Object}\n */\n textRect: null,\n\n /**\n * [x, y]\n * @type {Array.}\n */\n textOffset: null,\n\n /**\n * @type {string}\n */\n textAlign: null,\n\n /**\n * @type {string}\n */\n textVerticalAlign: null,\n\n /**\n * @type {number}\n */\n textDistance: 5,\n\n /**\n * @type {string}\n */\n textShadowColor: 'transparent',\n\n /**\n * @type {number}\n */\n textShadowBlur: 0,\n\n /**\n * @type {number}\n */\n textShadowOffsetX: 0,\n\n /**\n * @type {number}\n */\n textShadowOffsetY: 0,\n\n /**\n * @type {string}\n */\n textBoxShadowColor: 'transparent',\n\n /**\n * @type {number}\n */\n textBoxShadowBlur: 0,\n\n /**\n * @type {number}\n */\n textBoxShadowOffsetX: 0,\n\n /**\n * @type {number}\n */\n textBoxShadowOffsetY: 0,\n\n /**\n * Whether transform text.\n * Only available in Path and Image element,\n * where the text is called as `RectText`.\n * @type {boolean}\n */\n transformText: false,\n\n /**\n * Text rotate around position of Path or Image.\n * The origin of the rotation can be specified by `textOrigin`.\n * Only available in Path and Image element,\n * where the text is called as `RectText`.\n */\n textRotation: 0,\n\n /**\n * Text origin of text rotation.\n * Useful in the case like label rotation of circular symbol.\n * Only available in Path and Image element, where the text is called\n * as `RectText` and the element is called as \"host element\".\n * The value can be:\n * + If specified as a coordinate like `[10, 40]`, it is the `[x, y]`\n * base on the left-top corner of the rect of its host element.\n * + If specified as a string `center`, it is the center of the rect of\n * its host element.\n * + By default, this origin is the `textPosition`.\n * @type {string|Array.}\n */\n textOrigin: null,\n\n /**\n * @type {string}\n */\n textBackgroundColor: null,\n\n /**\n * @type {string}\n */\n textBorderColor: null,\n\n /**\n * @type {number}\n */\n textBorderWidth: 0,\n\n /**\n * @type {number}\n */\n textBorderRadius: 0,\n\n /**\n * Can be `2` or `[2, 4]` or `[2, 3, 4, 5]`\n * @type {number|Array.}\n */\n textPadding: null,\n\n /**\n * Text styles for rich text.\n * @type {Object}\n */\n rich: null,\n\n /**\n * {outerWidth, outerHeight, ellipsis, placeholder}\n * @type {Object}\n */\n truncate: null,\n\n /**\n * https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation\n * @type {string}\n */\n blend: null,\n\n /**\n * @param {CanvasRenderingContext2D} ctx\n */\n bind: function (ctx, el, prevEl) {\n var style = this;\n var prevStyle = prevEl && prevEl.style; // If no prevStyle, it means first draw.\n // Only apply cache if the last time cachced by this function.\n\n var notCheckCache = !prevStyle || ctx.__attrCachedBy !== ContextCachedBy.STYLE_BIND;\n ctx.__attrCachedBy = ContextCachedBy.STYLE_BIND;\n\n for (var i = 0; i < STYLE_COMMON_PROPS.length; i++) {\n var prop = STYLE_COMMON_PROPS[i];\n var styleName = prop[0];\n\n if (notCheckCache || style[styleName] !== prevStyle[styleName]) {\n // FIXME Invalid property value will cause style leak from previous element.\n ctx[styleName] = fixShadow(ctx, styleName, style[styleName] || prop[1]);\n }\n }\n\n if (notCheckCache || style.fill !== prevStyle.fill) {\n ctx.fillStyle = style.fill;\n }\n\n if (notCheckCache || style.stroke !== prevStyle.stroke) {\n ctx.strokeStyle = style.stroke;\n }\n\n if (notCheckCache || style.opacity !== prevStyle.opacity) {\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n }\n\n if (notCheckCache || style.blend !== prevStyle.blend) {\n ctx.globalCompositeOperation = style.blend || 'source-over';\n }\n\n if (this.hasStroke()) {\n var lineWidth = style.lineWidth;\n ctx.lineWidth = lineWidth / (this.strokeNoScale && el && el.getLineScale ? el.getLineScale() : 1);\n }\n },\n hasFill: function () {\n var fill = this.fill;\n return fill != null && fill !== 'none';\n },\n hasStroke: function () {\n var stroke = this.stroke;\n return stroke != null && stroke !== 'none' && this.lineWidth > 0;\n },\n\n /**\n * Extend from other style\n * @param {zrender/graphic/Style} otherStyle\n * @param {boolean} overwrite true: overwrirte any way.\n * false: overwrite only when !target.hasOwnProperty\n * others: overwrite when property is not null/undefined.\n */\n extendFrom: function (otherStyle, overwrite) {\n if (otherStyle) {\n for (var name in otherStyle) {\n if (otherStyle.hasOwnProperty(name) && (overwrite === true || (overwrite === false ? !this.hasOwnProperty(name) : otherStyle[name] != null))) {\n this[name] = otherStyle[name];\n }\n }\n }\n },\n\n /**\n * Batch setting style with a given object\n * @param {Object|string} obj\n * @param {*} [obj]\n */\n set: function (obj, value) {\n if (typeof obj === 'string') {\n this[obj] = value;\n } else {\n this.extendFrom(obj, true);\n }\n },\n\n /**\n * Clone\n * @return {zrender/graphic/Style} [description]\n */\n clone: function () {\n var newStyle = new this.constructor();\n newStyle.extendFrom(this, true);\n return newStyle;\n },\n getGradient: function (ctx, obj, rect) {\n var method = obj.type === 'radial' ? createRadialGradient : createLinearGradient;\n var canvasGradient = method(ctx, obj, rect);\n var colorStops = obj.colorStops;\n\n for (var i = 0; i < colorStops.length; i++) {\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n }\n\n return canvasGradient;\n }\n};\nvar styleProto = Style.prototype;\n\nfor (var i = 0; i < STYLE_COMMON_PROPS.length; i++) {\n var prop = STYLE_COMMON_PROPS[i];\n\n if (!(prop[0] in styleProto)) {\n styleProto[prop[0]] = prop[1];\n }\n} // Provide for others\n\n\nStyle.getGradient = styleProto.getGradient;\nvar _default = Style;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapping = require(\"./VisualMapping\");\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 * @file Visual solution, for consistent option specification.\n */\nvar each = zrUtil.each;\n\nfunction hasKeys(obj) {\n if (obj) {\n for (var name in obj) {\n if (obj.hasOwnProperty(name)) {\n return true;\n }\n }\n }\n}\n/**\n * @param {Object} option\n * @param {Array.} stateList\n * @param {Function} [supplementVisualOption]\n * @return {Object} visualMappings >\n */\n\n\nfunction 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); // Prepare a alpha for opacity, for some case that opacity\n // is not supported, such as rendering using gradient color.\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 () {}; // Make sure hidden fields will not be visited by\n // object iteration (with hasOwnProperty checking).\n\n\n Creater.prototype.__hidden = Creater.prototype;\n var obj = new Creater();\n return obj;\n }\n}\n/**\n * @param {Object} thisOption\n * @param {Object} newOption\n * @param {Array.} keys\n */\n\n\nfunction replaceVisualOption(thisOption, newOption, keys) {\n // Visual attributes merge is not supported, otherwise it\n // brings overcomplicated merge logic. See #2853. So if\n // newOption has anyone of these keys, all of these keys\n // will be reset. Otherwise, all keys remain.\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}\n/**\n * @param {Array.} stateList\n * @param {Object} visualMappings >\n * @param {module:echarts/data/List} list\n * @param {Function} getValueState param: valueOrIndex, return: state.\n * @param {object} [scope] Scope for getValueState\n * @param {string} [dimension] Concrete dimension, if used.\n */\n// ???! handle brush?\n\n\nfunction 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 data.getItemVisual(dataIndex, key);\n }\n\n function setVisual(key, value) {\n data.setItemVisual(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); // Consider performance\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}\n/**\n * @param {module:echarts/data/List} data\n * @param {Array.} stateList\n * @param {Object} visualMappings >\n * @param {Function} getValueState param: valueOrIndex, return: state.\n * @param {number} [dim] dimension or dimension index.\n */\n\n\nfunction 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\n function progress(params, data) {\n if (dim != null) {\n dim = data.getDimension(dim);\n }\n\n function getVisual(key) {\n return data.getItemVisual(dataIndex, key);\n }\n\n function setVisual(key, value) {\n data.setItemVisual(dataIndex, key, value);\n }\n\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var rawDataItem = data.getRawDataItem(dataIndex); // Consider performance\n\n if (rawDataItem && rawDataItem.visualMap === false) {\n continue;\n }\n\n var value = dim != null ? data.get(dim, dataIndex, true) : 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 return {\n progress: progress\n };\n}\n\nexports.createVisualMappings = createVisualMappings;\nexports.replaceVisualOption = replaceVisualOption;\nexports.applyVisual = applyVisual;\nexports.incrementalApplyVisual = incrementalApplyVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar createHashMap = _util.createHashMap;\nvar each = _util.each;\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*/\necharts.registerProcessor({\n // `dataZoomProcessor` will only be performed in needed series. Consider if\n // there is a line series and a pie series, it is better not to update the\n // line series if only pie series is needed to be updated.\n getTargetSeries: function (ecModel) {\n var seriesModelMap = createHashMap();\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) {\n var axisProxy = dataZoomModel.getAxisProxy(dimNames.name, axisIndex);\n each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n seriesModelMap.set(seriesModel.uid, seriesModel);\n });\n });\n });\n return seriesModelMap;\n },\n modifyOutputEnd: true,\n // Consider appendData, where filter should be performed. Because data process is\n // in block mode currently, it is not need to worry about that the overallProgress\n // execute every frame.\n overallReset: function (ecModel, api) {\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n // We calculate window and reset axis here but not in model\n // init stage and not after action dispatch handler, because\n // reset should be called after seriesData.restoreData.\n dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) {\n dataZoomModel.getAxisProxy(dimNames.name, axisIndex).reset(dataZoomModel, api);\n }); // Caution: data zoom filtering is order sensitive when using\n // percent range and no min/max/scale set on axis.\n // For example, we have dataZoom definition:\n // [\n // {xAxisIndex: 0, start: 30, end: 70},\n // {yAxisIndex: 0, start: 20, end: 80}\n // ]\n // In this case, [20, 80] of y-dataZoom should be based on data\n // that have filtered by x-dataZoom using range of [30, 70],\n // but should not be based on full raw data. Thus sliding\n // x-dataZoom will change both ranges of xAxis and yAxis,\n // while sliding y-dataZoom will only change the range of yAxis.\n // So we should filter x-axis after reset x-axis immediately,\n // and then reset y-axis and filter y-axis.\n\n dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) {\n dataZoomModel.getAxisProxy(dimNames.name, axisIndex).filterData(dataZoomModel, api);\n });\n });\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n // Fullfill all of the range props so that user\n // is able to get them from chart.getOption().\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\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});","var dpr = 1; // If in browser environment\n\nif (typeof window !== 'undefined') {\n dpr = Math.max(window.devicePixelRatio || 1, 1);\n}\n/**\n * config默认配置项\n * @exports zrender/config\n * @author Kener (@Kener-林峰, kener.linfeng@gmail.com)\n */\n\n/**\n * Debug log mode:\n * 0: Do nothing, for release.\n * 1: console.error, for debug.\n */\n\n\nvar debugMode = 0; // retina 屏幕优化\n\nvar devicePixelRatio = dpr;\nexports.debugMode = debugMode;\nexports.devicePixelRatio = devicePixelRatio;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"../coord/single/singleCreator\");\n\nrequire(\"./axis/SingleAxisView\");\n\nrequire(\"../coord/single/AxisModel\");\n\nrequire(\"./axisPointer\");\n\nrequire(\"./axisPointer/SingleAxisPointer\");\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*/\necharts.extendComponentView({\n type: 'single'\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\nvar echarts = require(\"../echarts\");\n\nvar preprocessor = require(\"./brush/preprocessor\");\n\nrequire(\"./brush/visualEncoding\");\n\nrequire(\"./brush/BrushModel\");\n\nrequire(\"./brush/BrushView\");\n\nrequire(\"./brush/brushAction\");\n\nrequire(\"./toolbox/feature/Brush\");\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 * Brush component entry\n */\necharts.registerPreprocessor(preprocessor);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\nvar createHashMap = _util.createHashMap;\nvar assert = _util.assert;\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\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*/\nvar OTHER_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\n\nfunction summarizeDimensions(data) {\n var summary = {};\n var encode = summary.encode = {};\n var notExtraCoordDimMap = createHashMap();\n var defaultedLabel = [];\n var defaultedTooltip = []; // See the comment of `List.js#userOutput`.\n\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 var coordDimIndex = dimItem.coordDimIndex;\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n if (!dimItem.isExtraCoord) {\n notExtraCoordDimMap.set(coordDim, 1); // Use the last coord dim (and label friendly) as default label,\n // because when dataset is used, it is hard to guess which dimension\n // can be value dimension. If both show x, y on label is not look good,\n // and conventionally y axis is focused more.\n\n if (mayLabelDimType(dimItem.type)) {\n defaultedLabel[0] = dimName;\n } // User output encode do not contain generated coords.\n // And it only has index. User can use index to retrieve value from the raw item array.\n\n\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n }\n\n if (dimItem.defaultTooltip) {\n defaultedTooltip.push(dimName);\n }\n }\n\n OTHER_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]; // ??? FIXME extra coord should not be set in dataDimsOnCoord.\n // But should fix the case that radar axes: simplify the logic\n // of `completeDimension`, remove `extraPrefix`.\n\n encodeFirstDimNotExtra[coordDim] = dimArr[0]; // Not necessary to remove duplicate, because a data\n // dim canot on more than one coordDim.\n\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n });\n summary.dataDimsOnCoord = dataDimsOnCoord;\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n var encodeLabel = encode.label; // FIXME `encode.label` is not recommanded, because formatter can not be set\n // in this way. Use label.formatter instead. May be remove this approach someday.\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\nfunction getDimensionTypeByAxis(axisType) {\n return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n // In most cases, ordinal and time do not suitable for label.\n // Ordinal info can be displayed on axis. Time is too long.\n return !(dimType === 'ordinal' || dimType === 'time');\n} // function findTheLastDimMayLabel(data) {\n// // Get last value dim\n// var dimensions = data.dimensions.slice();\n// var valueType;\n// var valueDim;\n// while (dimensions.length && (\n// valueDim = dimensions.pop(),\n// valueType = data.getDimensionInfo(valueDim).type,\n// valueType === 'ordinal' || valueType === 'time'\n// )) {} // jshint ignore:line\n// return valueDim;\n// }\n\n\nexports.OTHER_DIMENSIONS = OTHER_DIMENSIONS;\nexports.summarizeDimensions = summarizeDimensions;\nexports.getDimensionTypeByAxis = getDimensionTypeByAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar barPolar = require(\"../layout/barPolar\");\n\nrequire(\"../coord/polar/polarCreator\");\n\nrequire(\"./angleAxis\");\n\nrequire(\"./radiusAxis\");\n\nrequire(\"./axisPointer\");\n\nrequire(\"./axisPointer/PolarAxisPointer\");\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// For reducing size of echarts.min, barLayoutPolar is required by polar.\necharts.registerLayout(zrUtil.curry(barPolar, 'bar')); // Polar view\n\necharts.extendComponentView({\n type: 'polar'\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* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar borderColorQuery = ['itemStyle', 'borderColor'];\n\nfunction _default(ecModel, api) {\n var globalColors = ecModel.get('color');\n ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\n var defaulColor = globalColors[seriesModel.seriesIndex % globalColors.length];\n var data = seriesModel.getData();\n data.setVisual({\n legendSymbol: 'roundRect',\n // Use name 'color' but not 'borderColor' for legend usage and\n // visual coding from other component like dataRange.\n color: seriesModel.get(borderColorQuery) || defaulColor\n }); // Only visible series has each data be visual encoded\n\n if (!ecModel.isSeriesFiltered(seriesModel)) {\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n data.setItemVisual(idx, {\n color: itemModel.get(borderColorQuery, true)\n });\n });\n }\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\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*/\nvar _default = SeriesModel.extend({\n type: 'series.__base_bar__',\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n useEncodeDefaulter: true\n });\n },\n getMarkerPosition: function (value) {\n var coordSys = this.coordinateSystem;\n\n if (coordSys) {\n // PENDING if clamp ?\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 defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n // stack: null\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // 最小高度改为0\n barMinHeight: 0,\n // 最小角度为0,仅对极坐标系下的柱状图有效\n barMinAngle: 0,\n // cursor: null,\n large: false,\n largeThreshold: 400,\n progressive: 3e3,\n progressiveChunkMode: 'mod',\n // barMaxWidth: null,\n // In cartesian, the default value is 1. Otherwise null.\n // barMinWidth: null,\n // 默认自适应\n // barWidth: null,\n // 柱间距离,默认为柱形宽度的30%,可设固定值\n // barGap: '30%',\n // 类目间柱形距离,默认为类目间距的20%,可设固定值\n // barCategoryGap: '20%',\n // label: {\n // show: false\n // },\n itemStyle: {},\n emphasis: {}\n }\n});\n\nmodule.exports = _default;","var Group = require(\"../container/Group\");\n\nvar ZImage = require(\"../graphic/Image\");\n\nvar Text = require(\"../graphic/Text\");\n\nvar Circle = require(\"../graphic/shape/Circle\");\n\nvar Rect = require(\"../graphic/shape/Rect\");\n\nvar Ellipse = require(\"../graphic/shape/Ellipse\");\n\nvar Line = require(\"../graphic/shape/Line\");\n\nvar Path = require(\"../graphic/Path\");\n\nvar Polygon = require(\"../graphic/shape/Polygon\");\n\nvar Polyline = require(\"../graphic/shape/Polyline\");\n\nvar LinearGradient = require(\"../graphic/LinearGradient\");\n\nvar Style = require(\"../graphic/Style\");\n\nvar matrix = require(\"../core/matrix\");\n\nvar _path = require(\"./path\");\n\nvar createFromString = _path.createFromString;\n\nvar _util = require(\"../core/util\");\n\nvar isString = _util.isString;\nvar extend = _util.extend;\nvar defaults = _util.defaults;\nvar trim = _util.trim;\nvar each = _util.each;\n// import RadialGradient from '../graphic/RadialGradient';\n// import Pattern from '../graphic/Pattern';\n// import * as vector from '../core/vector';\n// Most of the values can be separated by comma and/or white space.\nvar DILIMITER_REG = /[\\s,]+/;\n/**\n * For big svg string, this method might be time consuming.\n *\n * @param {string} svg xml string\n * @return {Object} xml root.\n */\n\nfunction parseXML(svg) {\n if (isString(svg)) {\n var parser = new DOMParser();\n svg = parser.parseFromString(svg, 'text/xml');\n } // Document node. If using $.get, doc node may be input.\n\n\n if (svg.nodeType === 9) {\n svg = svg.firstChild;\n } // nodeName of is also 'svg'.\n\n\n while (svg.nodeName.toLowerCase() !== 'svg' || svg.nodeType !== 1) {\n svg = svg.nextSibling;\n }\n\n return svg;\n}\n\nfunction SVGParser() {\n this._defs = {};\n this._root = null;\n this._isDefine = false;\n this._isText = false;\n}\n\nSVGParser.prototype.parse = function (xml, opt) {\n opt = opt || {};\n var svg = parseXML(xml);\n\n if (!svg) {\n throw new Error('Illegal svg');\n }\n\n var root = new Group();\n this._root = root; // parse view port\n\n var viewBox = svg.getAttribute('viewBox') || ''; // If width/height not specified, means \"100%\" of `opt.width/height`.\n // TODO: Other percent value not supported yet.\n\n var width = parseFloat(svg.getAttribute('width') || opt.width);\n var height = parseFloat(svg.getAttribute('height') || opt.height); // If width/height not specified, set as null for output.\n\n isNaN(width) && (width = null);\n isNaN(height) && (height = null); // Apply inline style on svg element.\n\n parseAttributes(svg, root, null, true);\n var child = svg.firstChild;\n\n while (child) {\n this._parseNode(child, root);\n\n child = child.nextSibling;\n }\n\n var viewBoxRect;\n var viewBoxTransform;\n\n if (viewBox) {\n var viewBoxArr = trim(viewBox).split(DILIMITER_REG); // Some invalid case like viewBox: 'none'.\n\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\n if (viewBoxRect && width != null && height != null) {\n viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height);\n\n if (!opt.ignoreViewBox) {\n // If set transform on the output group, it probably bring trouble when\n // some users only intend to show the clipped content inside the viewBox,\n // but not intend to transform the output group. So we keep the output\n // group no transform. If the user intend to use the viewBox as a\n // camera, just set `opt.ignoreViewBox` as `true` and set transfrom\n // manually according to the viewBox info in the output of this method.\n var elRoot = root;\n root = new Group();\n root.add(elRoot);\n elRoot.scale = viewBoxTransform.scale.slice();\n elRoot.position = viewBoxTransform.position.slice();\n }\n } // Some shapes might be overflow the viewport, which should be\n // clipped despite whether the viewBox is used, as the SVG does.\n\n\n if (!opt.ignoreRootClip && width != null && height != null) {\n root.setClipPath(new Rect({\n shape: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n }));\n } // Set width/height on group just for output the viewport size.\n\n\n return {\n root: root,\n width: width,\n height: height,\n viewBoxRect: viewBoxRect,\n viewBoxTransform: viewBoxTransform\n };\n};\n\nSVGParser.prototype._parseNode = function (xmlNode, parentGroup) {\n var nodeName = xmlNode.nodeName.toLowerCase(); // TODO\n // support in svg, where nodeName is 'style',\n // CSS classes is defined globally wherever the style tags are declared.\n\n if (nodeName === 'defs') {\n // define flag\n this._isDefine = true;\n } else if (nodeName === 'text') {\n this._isText = true;\n }\n\n var el;\n\n if (this._isDefine) {\n var parser = defineParsers[nodeName];\n\n if (parser) {\n var def = parser.call(this, xmlNode);\n var id = xmlNode.getAttribute('id');\n\n if (id) {\n this._defs[id] = def;\n }\n }\n } else {\n var parser = nodeParsers[nodeName];\n\n if (parser) {\n el = parser.call(this, xmlNode, parentGroup);\n parentGroup.add(el);\n }\n }\n\n var child = xmlNode.firstChild;\n\n while (child) {\n if (child.nodeType === 1) {\n this._parseNode(child, el);\n } // Is text\n\n\n if (child.nodeType === 3 && this._isText) {\n this._parseText(child, el);\n }\n\n child = child.nextSibling;\n } // Quit define\n\n\n if (nodeName === 'defs') {\n this._isDefine = false;\n } else if (nodeName === 'text') {\n this._isText = false;\n }\n};\n\nSVGParser.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\n var text = new Text({\n style: {\n text: xmlNode.textContent,\n transformText: true\n },\n position: [this._textX || 0, this._textY || 0]\n });\n inheritStyle(parentGroup, text);\n parseAttributes(xmlNode, text, this._defs);\n var fontSize = text.style.fontSize;\n\n if (fontSize && fontSize < 9) {\n // PENDING\n text.style.fontSize = 9;\n text.scale = text.scale || [1, 1];\n text.scale[0] *= fontSize / 9;\n text.scale[1] *= fontSize / 9;\n }\n\n var rect = text.getBoundingRect();\n this._textX += rect.width;\n parentGroup.add(text);\n return text;\n};\n\nvar 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 }); // console.log(xmlNode.getAttribute('transform'));\n // console.log(rect.transform);\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 points = xmlNode.getAttribute('points');\n\n if (points) {\n points = parsePoints(points);\n }\n\n var polygon = new Polygon({\n shape: {\n points: points || []\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 points = xmlNode.getAttribute('points');\n\n if (points) {\n points = parsePoints(points);\n }\n\n var polyline = new Polyline({\n shape: {\n points: points || []\n }\n });\n return polyline;\n },\n 'image': function (xmlNode, parentGroup) {\n var img = new ZImage();\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\n if (x != null) {\n // new offset x\n this._textX = parseFloat(x);\n }\n\n if (y != null) {\n // new offset y\n this._textY = parseFloat(y);\n }\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 // TODO svg fill rule\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule\n // path.style.globalCompositeOperation = 'xor';\n var d = xmlNode.getAttribute('d') || ''; // Performance sensitive.\n\n var path = createFromString(d);\n inheritStyle(parentGroup, path);\n parseAttributes(xmlNode, path, this._defs);\n return path;\n }\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\n _parseGradientColorStops(xmlNode, gradient);\n\n return gradient;\n },\n 'radialgradient': function (xmlNode) {}\n};\n\nfunction _parseGradientColorStops(xmlNode, gradient) {\n var stop = xmlNode.firstChild;\n\n while (stop) {\n if (stop.nodeType === 1) {\n var offset = stop.getAttribute('offset');\n\n if (offset.indexOf('%') > 0) {\n // percentage\n offset = parseInt(offset, 10) / 100;\n } else if (offset) {\n // number from 0 to 1\n offset = parseFloat(offset);\n } else {\n offset = 0;\n }\n\n var stopColor = stop.getAttribute('stop-color') || '#000000';\n gradient.addColorStop(offset, stopColor);\n }\n\n stop = stop.nextSibling;\n }\n}\n\nfunction inheritStyle(parent, child) {\n if (parent && parent.__inheritedStyle) {\n if (!child.__inheritedStyle) {\n child.__inheritedStyle = {};\n }\n\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\n }\n}\n\nfunction parsePoints(pointsString) {\n var list = trim(pointsString).split(DILIMITER_REG);\n var points = [];\n\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\n return points;\n}\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};\n\nfunction parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\n var zrStyle = el.__inheritedStyle || {};\n var isTextEl = el.type === 'text'; // TODO Shadow\n\n if (xmlNode.nodeType === 1) {\n parseTransformAttribute(xmlNode, el);\n extend(zrStyle, parseStyleAttribute(xmlNode));\n\n if (!onlyInlineStyle) {\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName)) {\n var attrValue = xmlNode.getAttribute(svgAttrName);\n\n if (attrValue != null) {\n zrStyle[attributesMap[svgAttrName]] = attrValue;\n }\n }\n }\n }\n }\n\n var elFillProp = isTextEl ? 'textFill' : 'fill';\n var elStrokeProp = isTextEl ? 'textStroke' : 'stroke';\n el.style = el.style || new Style();\n var elStyle = el.style;\n zrStyle.fill != null && elStyle.set(elFillProp, getPaint(zrStyle.fill, defs));\n zrStyle.stroke != null && elStyle.set(elStrokeProp, getPaint(zrStyle.stroke, defs));\n each(['lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'], function (propName) {\n var elPropName = propName === 'lineWidth' && isTextEl ? 'textStrokeWidth' : propName;\n zrStyle[propName] != null && elStyle.set(elPropName, parseFloat(zrStyle[propName]));\n });\n\n if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\n zrStyle.textBaseline = 'alphabetic';\n }\n\n if (zrStyle.textBaseline === 'alphabetic') {\n zrStyle.textBaseline = 'bottom';\n }\n\n if (zrStyle.textAlign === 'start') {\n zrStyle.textAlign = 'left';\n }\n\n if (zrStyle.textAlign === 'end') {\n zrStyle.textAlign = 'right';\n }\n\n each(['lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'], function (propName) {\n zrStyle[propName] != null && elStyle.set(propName, zrStyle[propName]);\n });\n\n if (zrStyle.lineDash) {\n el.style.lineDash = trim(zrStyle.lineDash).split(DILIMITER_REG);\n }\n\n if (elStyle[elStrokeProp] && elStyle[elStrokeProp] !== 'none') {\n // enable stroke\n el[elStrokeProp] = true;\n }\n\n el.__inheritedStyle = zrStyle;\n}\n\nvar urlRegex = /url\\(\\s*#(.*?)\\)/;\n\nfunction getPaint(str, defs) {\n // if (str === 'none') {\n // return;\n // }\n var urlMatch = defs && str && str.match(urlRegex);\n\n if (urlMatch) {\n var url = trim(urlMatch[1]);\n var def = defs[url];\n return def;\n }\n\n return str;\n}\n\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\n\nfunction parseTransformAttribute(xmlNode, node) {\n var transform = xmlNode.getAttribute('transform');\n\n if (transform) {\n transform = transform.replace(/,/g, ' ');\n var m = null;\n var transformOps = [];\n transform.replace(transformRegex, function (str, type, value) {\n transformOps.push(type, value);\n });\n\n for (var i = transformOps.length - 1; i > 0; i -= 2) {\n var value = transformOps[i];\n var type = transformOps[i - 1];\n m = m || matrix.create();\n\n switch (type) {\n case 'translate':\n value = trim(value).split(DILIMITER_REG);\n matrix.translate(m, m, [parseFloat(value[0]), parseFloat(value[1] || 0)]);\n break;\n\n case 'scale':\n value = trim(value).split(DILIMITER_REG);\n matrix.scale(m, m, [parseFloat(value[0]), parseFloat(value[1] || value[0])]);\n break;\n\n case 'rotate':\n value = trim(value).split(DILIMITER_REG);\n matrix.rotate(m, m, parseFloat(value[0]));\n break;\n\n case 'skew':\n value = trim(value).split(DILIMITER_REG);\n console.warn('Skew transform is not supported yet');\n break;\n\n case 'matrix':\n var value = trim(value).split(DILIMITER_REG);\n m[0] = parseFloat(value[0]);\n m[1] = parseFloat(value[1]);\n m[2] = parseFloat(value[2]);\n m[3] = parseFloat(value[3]);\n m[4] = parseFloat(value[4]);\n m[5] = parseFloat(value[5]);\n break;\n }\n }\n\n node.setLocalTransform(m);\n }\n} // Value may contain space.\n\n\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\n\nfunction parseStyleAttribute(xmlNode) {\n var style = xmlNode.getAttribute('style');\n var result = {};\n\n if (!style) {\n return result;\n }\n\n var styleList = {};\n styleRegex.lastIndex = 0;\n var styleRegResult;\n\n while ((styleRegResult = styleRegex.exec(style)) != null) {\n styleList[styleRegResult[1]] = styleRegResult[2];\n }\n\n for (var svgAttrName in attributesMap) {\n if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\n result[attributesMap[svgAttrName]] = styleList[svgAttrName];\n }\n }\n\n return result;\n}\n/**\n * @param {Array.} viewBoxRect\n * @param {number} width\n * @param {number} height\n * @return {Object} {scale, position}\n */\n\n\nfunction makeViewBoxTransform(viewBoxRect, width, height) {\n var scaleX = width / viewBoxRect.width;\n var scaleY = height / viewBoxRect.height;\n var scale = Math.min(scaleX, scaleY); // preserveAspectRatio 'xMidYMid'\n\n var viewBoxScale = [scale, scale];\n var viewBoxPosition = [-(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2, -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2];\n return {\n scale: viewBoxScale,\n position: viewBoxPosition\n };\n}\n/**\n * @param {string|XMLElement} xml\n * @param {Object} [opt]\n * @param {number} [opt.width] Default width if svg width not specified or is a percent value.\n * @param {number} [opt.height] Default height if svg height not specified or is a percent value.\n * @param {boolean} [opt.ignoreViewBox]\n * @param {boolean} [opt.ignoreRootClip]\n * @return {Object} result:\n * {\n * root: Group, The root of the the result tree of zrender shapes,\n * width: number, the viewport width of the SVG,\n * height: number, the viewport height of the SVG,\n * viewBoxRect: {x, y, width, height}, the declared viewBox rect of the SVG, if exists,\n * viewBoxTransform: the {scale, position} calculated by viewBox and viewport, is exists.\n * }\n */\n\n\nfunction parseSVG(xml, opt) {\n var parser = new SVGParser();\n return parser.parse(xml, opt);\n}\n\nexports.parseXML = parseXML;\nexports.makeViewBoxTransform = makeViewBoxTransform;\nexports.parseSVG = parseSVG;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapModel = require(\"./VisualMapModel\");\n\nvar numberUtil = require(\"../../util/number\");\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// Constant\nvar DEFAULT_BAR_BOUND = [20, 140];\nvar ContinuousModel = VisualMapModel.extend({\n type: 'visualMap.continuous',\n\n /**\n * @protected\n */\n defaultOption: {\n align: 'auto',\n // 'auto', 'left', 'right', 'top', 'bottom'\n calculable: false,\n // This prop effect default component type determine,\n // See echarts/component/visualMap/typeDefaulter.\n range: null,\n // selected range. In default case `range` is [min, max]\n // and can auto change along with modification of min max,\n // util use specifid a range.\n realtime: true,\n // Whether realtime update.\n itemHeight: null,\n // The length of the range control edge.\n itemWidth: null,\n // The length of the other side.\n hoverLink: true,\n // Enable hover highlight.\n hoverLinkDataSize: null,\n // The size of hovered data.\n hoverLinkOnHandle: null // Whether trigger hoverLink when hover handle.\n // If not specified, follow the value of `realtime`.\n\n },\n\n /**\n * @override\n */\n optionUpdated: function (newOption, isInit) {\n ContinuousModel.superApply(this, 'optionUpdated', arguments);\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 /**\n * @protected\n * @override\n */\n resetItemSize: function () {\n ContinuousModel.superApply(this, 'resetItemSize', arguments);\n var itemSize = this.itemSize;\n this._orient === 'horizontal' && itemSize.reverse();\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 /**\n * @private\n */\n _resetRange: function () {\n var dataExtent = this.getExtent();\n var range = this.option.range;\n\n if (!range || range.auto) {\n // `range` should always be array (so we dont use other\n // value like 'auto') for user-friend. (consider getOption).\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 /**\n * @protected\n * @override\n */\n completeVisualOption: function () {\n VisualMapModel.prototype.completeVisualOption.apply(this, arguments);\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] = 0; // For good looking.\n }\n }, this);\n },\n\n /**\n * @override\n */\n setSelected: function (selected) {\n this.option.range = selected.slice();\n\n this._resetRange();\n },\n\n /**\n * @public\n */\n getSelected: function () {\n var dataExtent = this.getExtent();\n var dataInterval = numberUtil.asc((this.get('range') || []).slice()); // Clamp\n\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 /**\n * @override\n */\n getValueState: function (value) {\n var range = this.option.range;\n var dataExtent = this.getExtent(); // When range[0] === dataExtent[0], any value larger than dataExtent[0] maps to 'inRange'.\n // range[1] is processed likewise.\n\n return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n },\n\n /**\n * @params {Array.} range target value: range[0] <= value && value <= range[1]\n * @return {Array.} [{seriesId, dataIndices: >}, ...]\n */\n 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 /**\n * @implement\n */\n 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 } // Format to: outOfRange -- inRange -- outOfRange.\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 oVal[oIdx] === iVals[iIdx], oVal[oIdx] should be ignored.\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 // If range is full, value beyond min, max will be clamped.\n // make a singularity\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 // make a singularity\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\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n if (dataExtent[0] === dataExtent[1]) {\n return dataExtent.slice();\n } // When using colorHue mapping, it is not linear color any more.\n // Moreover, canvas gradient seems not to be accurate linear.\n // FIXME\n // Should be arbitrary value 100? or based on pixel size?\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\nvar _default = ContinuousModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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*/\nfunction dataToCoordSize(dataSize, dataItem) {\n // dataItem is necessary in log axis.\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\nfunction _default(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 // do not provide \"out\" param\n return coordSys.dataToPoint(val);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar List = require(\"../../data/List\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar markerHelper = require(\"./markerHelper\");\n\nvar LineDraw = require(\"../../chart/helper/LineDraw\");\n\nvar MarkerView = require(\"./MarkerView\");\n\nvar _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\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*/\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n var data = seriesModel.getData(); // Special type markLine like 'min', 'max', 'average', 'median'\n\n var mlType = item.type;\n\n if (!zrUtil.isArray(item) && (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' // In case\n // data: [{\n // yAxis: 10\n // }]\n || item.xAxis != null || item.yAxis != null)) {\n var valueAxis;\n var value;\n\n if (item.yAxis != null || item.xAxis != null) {\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n value = zrUtil.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 = zrUtil.clone(item);\n var mlTo = {};\n mlFrom.type = null;\n mlFrom.coord = [];\n mlTo.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 item = [mlFrom, mlTo, {\n // Extra option for tooltip and label\n type: mlType,\n valueIndex: item.valueIndex,\n // Force to use the value of calculated value.\n value: value\n }];\n }\n\n item = [markerHelper.dataTransform(seriesModel, item[0]), markerHelper.dataTransform(seriesModel, item[1]), zrUtil.extend({}, item[2])]; // Avoid line data type is extended by from(to) data type\n\n item[2].type = item[2].type || ''; // Merge from option and to option into line option\n\n zrUtil.merge(item[2], item[0]);\n zrUtil.merge(item[2], item[1]);\n return item;\n};\n\nfunction isInifinity(val) {\n return !isNaN(val) && !isFinite(val);\n} // If a markLine has one dim\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; // In case\n // {\n // markLine: {\n // data: [{ yAxis: 2 }]\n // }\n // }\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 // Chart like bar may have there own marker positioning logic\n if (seriesModel.getMarkerPosition) {\n // Use the getMarkerPoisition\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 } // Expand line to the edge of grid if value on one axis is Inifnity\n // In case\n // markLine: {\n // data: [{\n // yAxis: 2\n // // or\n // type: 'average'\n // }]\n // }\n\n\n if (coordSys.type === '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 } // Use x, y if has any\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 _default = MarkerView.extend({\n type: 'markLine',\n // updateLayout: function (markLineModel, ecModel, api) {\n // ecModel.eachSeries(function (seriesModel) {\n // var mlModel = seriesModel.markLineModel;\n // if (mlModel) {\n // var mlData = mlModel.getData();\n // var fromData = mlModel.__from;\n // var toData = mlModel.__to;\n // // Update visual and layout of from symbol and to symbol\n // fromData.each(function (idx) {\n // updateSingleMarkerEndLayout(fromData, idx, true, seriesModel, api);\n // updateSingleMarkerEndLayout(toData, idx, false, seriesModel, api);\n // });\n // // Update layout of line\n // mlData.each(function (idx) {\n // mlData.setItemLayout(idx, [\n // fromData.getItemLayout(idx),\n // toData.getItemLayout(idx)\n // ]);\n // });\n // this.markerGroupMap.get(seriesModel.id).updateLayout();\n // }\n // }, this);\n // },\n updateTransform: function (markLineModel, ecModel, api) {\n ecModel.eachSeries(function (seriesModel) {\n var mlModel = seriesModel.markLineModel;\n\n if (mlModel) {\n var mlData = mlModel.getData();\n var fromData = mlModel.__from;\n var toData = mlModel.__to; // Update visual and layout of from symbol and to symbol\n\n fromData.each(function (idx) {\n updateSingleMarkerEndLayout(fromData, idx, true, seriesModel, api);\n updateSingleMarkerEndLayout(toData, idx, false, seriesModel, api);\n }); // Update layout of line\n\n mlData.each(function (idx) {\n mlData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n });\n this.markerGroupMap.get(seriesModel.id).updateLayout();\n }\n }, this);\n },\n 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 mlModel.__from = fromData;\n mlModel.__to = toData; // Line data for tooltip and formatter\n\n mlModel.setData(lineData);\n var symbolType = mlModel.get('symbol');\n var symbolSize = mlModel.get('symbolSize');\n\n if (!zrUtil.isArray(symbolType)) {\n symbolType = [symbolType, symbolType];\n }\n\n if (typeof symbolSize === 'number') {\n symbolSize = [symbolSize, symbolSize];\n } // Update visual and layout of from symbol and to symbol\n\n\n mlData.from.each(function (idx) {\n updateDataVisualAndLayout(fromData, idx, true);\n updateDataVisualAndLayout(toData, idx, false);\n }); // Update visual and layout of line\n\n lineData.each(function (idx) {\n var lineColor = lineData.getItemModel(idx).get('lineStyle.color');\n lineData.setItemVisual(idx, {\n color: lineColor || fromData.getItemVisual(idx, 'color')\n });\n lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\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 });\n });\n lineDraw.updateData(lineData); // Set host model for tooltip\n // FIXME\n\n mlData.line.eachItemGraphicEl(function (el, idx) {\n el.traverse(function (child) {\n 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 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 color: itemModel.get('itemStyle.color') || seriesData.getVisual('color')\n });\n }\n\n lineDraw.__keep = true;\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n }\n});\n/**\n * @inner\n * @param {module:echarts/coord/*} coordSys\n * @param {module:echarts/model/Series} seriesModel\n * @param {module:echarts/model/Model} mpModel\n */\n\n\nfunction createList(coordSys, seriesModel, mlModel) {\n var coordDimsInfos;\n\n if (coordSys) {\n coordDimsInfos = zrUtil.map(coordSys && coordSys.dimensions, function (coordDim) {\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {}; // In map series data don't have lng and lat dimension. Fallback to same with coordSys\n\n return zrUtil.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); // No dimensions\n\n var lineData = new List([], mlModel);\n var optData = zrUtil.map(mlModel.get('data'), zrUtil.curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n if (coordSys) {\n optData = zrUtil.filter(optData, zrUtil.curry(markLineFilter, coordSys));\n }\n\n var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) {\n return item.value;\n };\n fromData.initData(zrUtil.map(optData, function (item) {\n return item[0];\n }), null, dimValueGetter);\n toData.initData(zrUtil.map(optData, function (item) {\n return item[1];\n }), null, dimValueGetter);\n lineData.initData(zrUtil.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\nmodule.exports = _default;","var util = require(\"../core/util\");\n\nvar _event = require(\"../core/event\");\n\nvar Dispatcher = _event.Dispatcher;\n\nvar requestAnimationFrame = require(\"./requestAnimationFrame\");\n\nvar Animator = require(\"./Animator\");\n\n/**\n * Animation main class, dispatch and manage all animation controllers\n *\n * @module zrender/animation/Animation\n * @author pissang(https://github.com/pissang)\n */\n// TODO Additive animation\n// http://iosoteric.com/additive-animations-animatewithduration-in-ios-8/\n// https://developer.apple.com/videos/wwdc2014/#236\n\n/**\n * @typedef {Object} IZRenderStage\n * @property {Function} update\n */\n\n/**\n * @alias module:zrender/animation/Animation\n * @constructor\n * @param {Object} [options]\n * @param {Function} [options.onframe]\n * @param {IZRenderStage} [options.stage]\n * @example\n * var animation = new Animation();\n * var obj = {\n * x: 100,\n * y: 100\n * };\n * animation.animate(node.position)\n * .when(1000, {\n * x: 500,\n * y: 500\n * })\n * .when(2000, {\n * x: 100,\n * y: 100\n * })\n * .start('spline');\n */\nvar Animation = function (options) {\n options = options || {};\n this.stage = options.stage || {};\n\n this.onframe = options.onframe || function () {}; // private properties\n\n\n this._clips = [];\n this._running = false;\n this._time;\n this._pausedTime;\n this._pauseStart;\n this._paused = false;\n Dispatcher.call(this);\n};\n\nAnimation.prototype = {\n constructor: Animation,\n\n /**\n * Add clip\n * @param {module:zrender/animation/Clip} clip\n */\n addClip: function (clip) {\n this._clips.push(clip);\n },\n\n /**\n * Add animator\n * @param {module:zrender/animation/Animator} animator\n */\n addAnimator: function (animator) {\n animator.animation = this;\n var clips = animator.getClips();\n\n for (var i = 0; i < clips.length; i++) {\n this.addClip(clips[i]);\n }\n },\n\n /**\n * Delete animation clip\n * @param {module:zrender/animation/Clip} clip\n */\n removeClip: function (clip) {\n var idx = util.indexOf(this._clips, clip);\n\n if (idx >= 0) {\n this._clips.splice(idx, 1);\n }\n },\n\n /**\n * Delete animation clip\n * @param {module:zrender/animation/Animator} animator\n */\n removeAnimator: function (animator) {\n var clips = animator.getClips();\n\n for (var i = 0; i < clips.length; i++) {\n this.removeClip(clips[i]);\n }\n\n animator.animation = null;\n },\n _update: function () {\n var time = new Date().getTime() - this._pausedTime;\n\n var delta = time - this._time;\n var clips = this._clips;\n var len = clips.length;\n var deferredEvents = [];\n var deferredClips = [];\n\n for (var i = 0; i < len; i++) {\n var clip = clips[i];\n var e = clip.step(time, delta); // Throw out the events need to be called after\n // stage.update, like destroy\n\n if (e) {\n deferredEvents.push(e);\n deferredClips.push(clip);\n }\n } // Remove the finished clip\n\n\n for (var i = 0; i < len;) {\n if (clips[i]._needsRemove) {\n clips[i] = clips[len - 1];\n clips.pop();\n len--;\n } else {\n i++;\n }\n }\n\n len = deferredEvents.length;\n\n for (var i = 0; i < len; i++) {\n deferredClips[i].fire(deferredEvents[i]);\n }\n\n this._time = time;\n this.onframe(delta); // 'frame' should be triggered before stage, because upper application\n // depends on the sequence (e.g., echarts-stream and finish\n // event judge)\n\n this.trigger('frame', delta);\n\n if (this.stage.update) {\n this.stage.update();\n }\n },\n _startLoop: function () {\n var self = this;\n this._running = true;\n\n function step() {\n if (self._running) {\n requestAnimationFrame(step);\n !self._paused && self._update();\n }\n }\n\n requestAnimationFrame(step);\n },\n\n /**\n * Start animation.\n */\n start: function () {\n this._time = new Date().getTime();\n this._pausedTime = 0;\n\n this._startLoop();\n },\n\n /**\n * Stop animation.\n */\n stop: function () {\n this._running = false;\n },\n\n /**\n * Pause animation.\n */\n pause: function () {\n if (!this._paused) {\n this._pauseStart = new Date().getTime();\n this._paused = true;\n }\n },\n\n /**\n * Resume animation.\n */\n resume: function () {\n if (this._paused) {\n this._pausedTime += new Date().getTime() - this._pauseStart;\n this._paused = false;\n }\n },\n\n /**\n * Clear animation.\n */\n clear: function () {\n this._clips = [];\n },\n\n /**\n * Whether animation finished.\n */\n isFinished: function () {\n return !this._clips.length;\n },\n\n /**\n * Creat animator for a target, whose props can be animated.\n *\n * @param {Object} target\n * @param {Object} options\n * @param {boolean} [options.loop=false] Whether loop animation.\n * @param {Function} [options.getter=null] Get value from target.\n * @param {Function} [options.setter=null] Set value to target.\n * @return {module:zrender/animation/Animation~Animator}\n */\n // TODO Gap\n animate: function (target, options) {\n options = options || {};\n var animator = new Animator(target, options.loop, options.getter, options.setter);\n this.addAnimator(animator);\n return animator;\n }\n};\nutil.mixin(Animation, Dispatcher);\nvar _default = Animation;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./sankey/SankeySeries\");\n\nrequire(\"./sankey/SankeyView\");\n\nrequire(\"./sankey/sankeyAction\");\n\nvar sankeyLayout = require(\"./sankey/sankeyLayout\");\n\nvar sankeyVisual = require(\"./sankey/sankeyVisual\");\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*/\necharts.registerLayout(sankeyLayout);\necharts.registerVisual(sankeyVisual);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _echarts = require(\"./lib/echarts\");\n\n(function () {\n for (var key in _echarts) {\n if (_echarts == null || !_echarts.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;\n exports[key] = _echarts[key];\n }\n})();\n\nvar _export = require(\"./lib/export\");\n\n(function () {\n for (var key in _export) {\n if (_export == null || !_export.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;\n exports[key] = _export[key];\n }\n})();\n\nrequire(\"./lib/component/dataset\");\n\nrequire(\"./lib/chart/line\");\n\nrequire(\"./lib/chart/bar\");\n\nrequire(\"./lib/chart/pie\");\n\nrequire(\"./lib/chart/scatter\");\n\nrequire(\"./lib/chart/radar\");\n\nrequire(\"./lib/chart/map\");\n\nrequire(\"./lib/chart/tree\");\n\nrequire(\"./lib/chart/treemap\");\n\nrequire(\"./lib/chart/graph\");\n\nrequire(\"./lib/chart/gauge\");\n\nrequire(\"./lib/chart/funnel\");\n\nrequire(\"./lib/chart/parallel\");\n\nrequire(\"./lib/chart/sankey\");\n\nrequire(\"./lib/chart/boxplot\");\n\nrequire(\"./lib/chart/candlestick\");\n\nrequire(\"./lib/chart/effectScatter\");\n\nrequire(\"./lib/chart/lines\");\n\nrequire(\"./lib/chart/heatmap\");\n\nrequire(\"./lib/chart/pictorialBar\");\n\nrequire(\"./lib/chart/themeRiver\");\n\nrequire(\"./lib/chart/sunburst\");\n\nrequire(\"./lib/chart/custom\");\n\nrequire(\"./lib/component/grid\");\n\nrequire(\"./lib/component/polar\");\n\nrequire(\"./lib/component/geo\");\n\nrequire(\"./lib/component/singleAxis\");\n\nrequire(\"./lib/component/parallel\");\n\nrequire(\"./lib/component/calendar\");\n\nrequire(\"./lib/component/graphic\");\n\nrequire(\"./lib/component/toolbox\");\n\nrequire(\"./lib/component/tooltip\");\n\nrequire(\"./lib/component/axisPointer\");\n\nrequire(\"./lib/component/brush\");\n\nrequire(\"./lib/component/title\");\n\nrequire(\"./lib/component/timeline\");\n\nrequire(\"./lib/component/markPoint\");\n\nrequire(\"./lib/component/markLine\");\n\nrequire(\"./lib/component/markArea\");\n\nrequire(\"./lib/component/legendScroll\");\n\nrequire(\"./lib/component/legend\");\n\nrequire(\"./lib/component/dataZoom\");\n\nrequire(\"./lib/component/dataZoomInside\");\n\nrequire(\"./lib/component/dataZoomSlider\");\n\nrequire(\"./lib/component/visualMap\");\n\nrequire(\"./lib/component/visualMapContinuous\");\n\nrequire(\"./lib/component/visualMapPiecewise\");\n\nrequire(\"zrender/lib/vml/vml\");\n\nrequire(\"zrender/lib/svg/svg\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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 * Link lists and struct (graph or tree)\n */\nvar each = zrUtil.each;\nvar DATAS = '\\0__link_datas';\nvar MAIN_DATA = '\\0__link_mainData'; // Caution:\n// In most case, either list or its shallow clones (see list.cloneShallow)\n// is active in echarts process. So considering heap memory consumption,\n// we do not clone tree or graph, but share them among list and its shallow clones.\n// But in some rare case, we have to keep old list (like do animation in chart). So\n// please take care that both the old list and the new list share the same tree/graph.\n\n/**\n * @param {Object} opt\n * @param {module:echarts/data/List} opt.mainData\n * @param {Object} [opt.struct] For example, instance of Graph or Tree.\n * @param {string} [opt.structAttr] designation: list[structAttr] = struct;\n * @param {Object} [opt.datas] {dataType: data},\n * like: {node: nodeList, edge: edgeList}.\n * Should contain mainData.\n * @param {Object} [opt.datasAttr] {dataType: attr},\n * designation: struct[datasAttr[dataType]] = list;\n */\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); // Porxy data original methods.\n\n each(datas, function (data) {\n each(mainData.TRANSFERABLE_METHODS, function (methodName) {\n data.wrapMethod(methodName, zrUtil.curry(transferInjection, opt));\n });\n }); // Beyond transfer, additional features should be added to `cloneShallow`.\n\n mainData.wrapMethod('cloneShallow', zrUtil.curry(cloneShallowInjection, opt)); // Only mainData trigger change, because struct.update may trigger\n // another changable methods, which may bring about dead lock.\n\n each(mainData.CHANGABLE_METHODS, function (methodName) {\n mainData.wrapMethod(methodName, zrUtil.curry(changeInjection, opt));\n }); // Make sure datas contains mainData.\n\n zrUtil.assert(datas[mainData.dataType] === mainData);\n}\n\nfunction transferInjection(opt, res) {\n if (isMainData(this)) {\n // Transfer datas to new main data.\n var datas = zrUtil.extend({}, this[DATAS]);\n datas[this.dataType] = res;\n linkAll(res, datas, opt);\n } else {\n // Modify the reference in main data to point newData.\n linkSingle(res, this.dataType, this[MAIN_DATA], opt);\n }\n\n return res;\n}\n\nfunction changeInjection(opt, res) {\n opt.struct && opt.struct.update(this);\n return res;\n}\n\nfunction cloneShallowInjection(opt, res) {\n // cloneShallow, which brings about some fragilities, may be inappropriate\n // to be exposed as an API. So for implementation simplicity we can make\n // the restriction that cloneShallow of not-mainData should not be invoked\n // outside, but only be invoked here.\n each(res[DATAS], function (data, dataType) {\n data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\n });\n return res;\n}\n/**\n * Supplement method to List.\n *\n * @public\n * @param {string} [dataType] If not specified, return mainData.\n * @return {module:echarts/data/List}\n */\n\n\nfunction getLinkedData(dataType) {\n var mainData = this[MAIN_DATA];\n return dataType == null || mainData == null ? mainData : mainData[DATAS][dataType];\n}\n\nfunction isMainData(data) {\n return data[MAIN_DATA] === data;\n}\n\nfunction linkAll(mainData, datas, opt) {\n mainData[DATAS] = {};\n each(datas, function (data, dataType) {\n linkSingle(data, dataType, mainData, opt);\n });\n}\n\nfunction linkSingle(data, dataType, mainData, opt) {\n mainData[DATAS][dataType] = data;\n data[MAIN_DATA] = mainData;\n data.dataType = dataType;\n\n if (opt.struct) {\n data[opt.structAttr] = opt.struct;\n opt.struct[opt.datasAttr[dataType]] = data;\n } // Supplement method.\n\n\n data.getLinkedData = getLinkedData;\n}\n\nvar _default = linkList;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Region = require(\"../Region\");\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// Fix for 南海诸岛\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\nfunction _default(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\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar DataZoomView = require(\"./DataZoomView\");\n\nvar sliderMove = require(\"../helper/sliderMove\");\n\nvar roams = require(\"./roams\");\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*/\nvar bind = zrUtil.bind;\nvar InsideZoomView = DataZoomView.extend({\n type: 'dataZoom.inside',\n\n /**\n * @override\n */\n init: function (ecModel, api) {\n /**\n * 'throttle' is used in this.dispatchAction, so we save range\n * to avoid missing some 'pan' info.\n * @private\n * @type {Array.}\n */\n this._range;\n },\n\n /**\n * @override\n */\n render: function (dataZoomModel, ecModel, api, payload) {\n InsideZoomView.superApply(this, 'render', arguments); // Hence the `throttle` util ensures to preserve command order,\n // here simply updating range all the time will not cause missing\n // any of the the roam change.\n\n this._range = dataZoomModel.getPercentRange(); // Reset controllers.\n\n zrUtil.each(this.getTargetCoordInfo(), function (coordInfoList, coordSysName) {\n var allCoordIds = zrUtil.map(coordInfoList, function (coordInfo) {\n return roams.generateCoordId(coordInfo.model);\n });\n zrUtil.each(coordInfoList, function (coordInfo) {\n var coordModel = coordInfo.model;\n var getRange = {};\n zrUtil.each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n getRange[eventName] = bind(roamHandlers[eventName], this, coordInfo, coordSysName);\n }, this);\n roams.register(api, {\n coordId: roams.generateCoordId(coordModel),\n allCoordIds: allCoordIds,\n containsPoint: function (e, x, y) {\n return coordModel.coordinateSystem.containPoint([x, y]);\n },\n dataZoomId: dataZoomModel.id,\n dataZoomModel: dataZoomModel,\n getRange: getRange\n });\n }, this);\n }, this);\n },\n\n /**\n * @override\n */\n dispose: function () {\n roams.unregister(this.api, this.dataZoomModel.id);\n InsideZoomView.superApply(this, 'dispose', arguments);\n this._range = null;\n }\n});\nvar roamHandlers = {\n /**\n * @this {module:echarts/component/dataZoom/InsideZoomView}\n */\n zoom: function (coordInfo, coordSysName, controller, e) {\n var lastRange = this._range;\n var range = lastRange.slice(); // Calculate transform by the first axis.\n\n var axisModel = coordInfo.axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var directionInfo = getDirectionInfo[coordSysName](null, [e.originX, e.originY], axisModel, controller, coordInfo);\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; // Restrict range.\n\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\n /**\n * @this {module:echarts/component/dataZoom/InsideZoomView}\n */\n pan: makeMover(function (range, axisModel, coordInfo, coordSysName, controller, e) {\n var directionInfo = getDirectionInfo[coordSysName]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordInfo);\n return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n }),\n\n /**\n * @this {module:echarts/component/dataZoom/InsideZoomView}\n */\n scrollMove: makeMover(function (range, axisModel, coordInfo, coordSysName, controller, e) {\n var directionInfo = getDirectionInfo[coordSysName]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordInfo);\n return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n })\n};\n\nfunction makeMover(getPercentDelta) {\n return function (coordInfo, coordSysName, controller, e) {\n var lastRange = this._range;\n var range = lastRange.slice(); // Calculate transform by the first axis.\n\n var axisModel = coordInfo.axisModels[0];\n\n if (!axisModel) {\n return;\n }\n\n var percentDelta = getPercentDelta(range, axisModel, coordInfo, coordSysName, 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, coordInfo) {\n var axis = axisModel.axis;\n var ret = {};\n var rect = coordInfo.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 // axis.dim === 'y'\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, coordInfo) {\n var axis = axisModel.axis;\n var ret = {};\n var polar = coordInfo.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]; // ret.pixelLength = Math.abs(radiusExtent[1] - radiusExtent[0]);\n // ret.pixelStart = Math.min(radiusExtent[0], radiusExtent[1]);\n\n ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n ret.pixelStart = radiusExtent[0];\n ret.signal = axis.inverse ? 1 : -1;\n } else {\n // 'angleAxis'\n ret.pixel = newPoint[1] - oldPoint[1]; // ret.pixelLength = Math.abs(angleExtent[1] - angleExtent[0]);\n // ret.pixelStart = Math.min(angleExtent[0], angleExtent[1]);\n\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, coordInfo) {\n var axis = axisModel.axis;\n var rect = coordInfo.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 // 'vertical'\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};\nvar _default = InsideZoomView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar List = require(\"../../data/List\");\n\nvar createDimensions = require(\"../../data/helper/createDimensions\");\n\nvar _sourceType = require(\"../../data/helper/sourceType\");\n\nvar SOURCE_FORMAT_ORIGINAL = _sourceType.SOURCE_FORMAT_ORIGINAL;\n\nvar _dimensionHelper = require(\"../../data/helper/dimensionHelper\");\n\nvar getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis;\n\nvar _model = require(\"../../util/model\");\n\nvar getDataItemValue = _model.getDataItemValue;\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar _referHelper = require(\"../../model/referHelper\");\n\nvar getCoordSysInfoBySeries = _referHelper.getCoordSysInfoBySeries;\n\nvar Source = require(\"../../data/Source\");\n\nvar _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar enableDataStack = _dataStackHelper.enableDataStack;\n\nvar _sourceHelper = require(\"../../data/helper/sourceHelper\");\n\nvar makeSeriesEncodeForAxisCoordSys = _sourceHelper.makeSeriesEncodeForAxisCoordSys;\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 * @param {module:echarts/data/Source|Array} source Or raw data.\n * @param {module:echarts/model/Series} seriesModel\n * @param {Object} [opt]\n * @param {string} [opt.generateCoord]\n * @param {boolean} [opt.useEncodeDefaulter]\n */\nfunction createListFromArray(source, seriesModel, opt) {\n opt = opt || {};\n\n if (!Source.isInstance(source)) {\n source = Source.seriesDataToSource(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) {\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); // dimInfo.stackable = isStackable(axisType);\n }\n\n return dimInfo;\n });\n }\n\n if (!coordSysDimDefs) {\n // Get dimensions from registered coordinate system\n coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n }\n\n var dimInfoList = createDimensions(source, {\n coordDimensions: coordSysDimDefs,\n generateCoord: opt.generateCoord,\n encodeDefaulter: opt.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\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 // Use dataIndex as ordinal value in categoryAxis\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\nvar _default = createListFromArray;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar isNumeric = _number.isNumeric;\n\nvar _helper = require(\"./helper\");\n\nvar setLabel = _helper.setLabel;\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*/\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth']; // index: +isHorizontal\n\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();\nvar BarView = echarts.extendChartView({\n type: 'pictorialBar',\n 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.grid.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; // Add back\n\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 dispose: zrUtil.noop,\n 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, bar.dataIndex, ecModel, bar);\n });\n }\n } else {\n group.removeAll();\n }\n }\n}); // Set or calculate default value about symbol, and calculate layout info.\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 color: data.getItemVisual(dataIndex, 'color'),\n symbolClip: symbolClip,\n symbolRepeat: symbolRepeat,\n symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\n symbolPatternSize: symbolPatternSize,\n rotation: rotation,\n animationModel: isAnimationEnabled ? itemModel : null,\n hoverAnimation: isAnimationEnabled && itemModel.get('hoverAnimation'),\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} // bar length can be negative.\n\n\nfunction prepareBarLength(itemModel, symbolRepeat, layout, opt, output) {\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 output.boundingLength = boundingLength;\n\n if (symbolRepeat) {\n output.repeatCutLength = layout[valueDim.wh];\n }\n\n output.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} // Support ['100%', '100%']\n\n\nfunction prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, output) {\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\n if (zrUtil.isArray(symbolSize)) {\n symbolSize = symbolSize.slice();\n } else {\n if (symbolSize == null) {\n symbolSize = '100%';\n }\n\n symbolSize = [symbolSize, symbolSize];\n } // Note: percentage symbolSize (like '100%') do not consider lineWidth, because it is\n // to complicated to calculate real percent value if considering scaled lineWidth.\n // So the actual size will bigger than layout size if lineWidth is bigger than zero,\n // which can be tolerated in pictorial chart.\n\n\n symbolSize[categoryDim.index] = parsePercent(symbolSize[categoryDim.index], categorySize);\n symbolSize[valueDim.index] = parsePercent(symbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\n output.symbolSize = symbolSize; // If x or y is less than zero, show reversed shape.\n\n var symbolScale = output.symbolScale = [symbolSize[0] / symbolPatternSize, symbolSize[1] / symbolPatternSize]; // Follow convention, 'right' and 'top' is the normal scale.\n\n symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\n}\n\nfunction prepareLineWidth(itemModel, symbolScale, rotation, opt, output) {\n // In symbols are drawn with scale, so do not need to care about the case that width\n // or height are too small. But symbol use strokeNoScale, where acture lineWidth should\n // be calculated.\n var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n\n if (valueLineWidth) {\n pathForLineWidth.attr({\n scale: symbolScale.slice(),\n rotation: rotation\n });\n pathForLineWidth.updateTransform();\n valueLineWidth /= pathForLineWidth.getLineScale();\n valueLineWidth *= symbolScale[opt.valueDim.index];\n }\n\n output.valueLineWidth = valueLineWidth;\n}\n\nfunction prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, output) {\n var categoryDim = opt.categoryDim;\n var valueDim = opt.valueDim;\n var pxSign = output.pxSign;\n var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\n var pathLen = unitLength; // Note: rotation will not effect the layout of symbols, because user may\n // want symbols to rotate on its center, which should not be translated\n // when rotating.\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 symbolMargin = parsePercent(symbolMargin, symbolSize[valueDim.index]);\n var uLenWithMargin = Math.max(unitLength + symbolMargin * 2, 0); // When symbol margin is less than 0, margin at both ends will be subtracted\n // to ensure that all of the symbols will not be overflow the given area.\n\n var endFix = hasEndGap ? 0 : symbolMargin * 2; // Both final repeatTimes and final symbolMargin area calculated based on\n // boundingLength.\n\n var repeatSpecified = isNumeric(symbolRepeat);\n var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin); // Adjust calculate margin, to ensure each symbol is displayed\n // entirely in the given layout area.\n\n var mDiff = absBoundingLength - repeatTimes * unitLength;\n symbolMargin = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\n uLenWithMargin = unitLength + symbolMargin * 2;\n endFix = hasEndGap ? 0 : symbolMargin * 2; // Update repeatTimes when not all symbol will be shown.\n\n if (!repeatSpecified && symbolRepeat !== 'fixed') {\n repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;\n }\n\n pathLen = repeatTimes * uLenWithMargin - endFix;\n output.repeatTimes = repeatTimes;\n output.symbolMargin = symbolMargin;\n }\n\n var sizeFix = pxSign * (pathLen / 2);\n var pathPosition = output.pathPosition = [];\n pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\n pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2; // 'center'\n\n if (symbolOffset) {\n pathPosition[0] += symbolOffset[0];\n pathPosition[1] += symbolOffset[1];\n }\n\n var bundlePosition = output.bundlePosition = [];\n bundlePosition[categoryDim.index] = layout[categoryDim.xy];\n bundlePosition[valueDim.index] = layout[valueDim.xy];\n var barRectShape = output.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 = output.clipShape = {}; // Consider that symbol may be overflow layout rect.\n\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( // Consider texture img, make a big size.\n symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize, symbolMeta.color);\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 scale: [0, 0]\n }, symbolMeta, isUpdate, function () {\n bundle.remove(path);\n });\n }\n\n updateHoverAnimation(path, symbolMeta);\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 position: target.position,\n scale: [0, 0]\n }, {\n scale: target.scale,\n rotation: target.rotation\n }, symbolMeta, isUpdate); // FIXME\n // If all emphasis/normal through action.\n\n path.on('mouseover', onMouseOver).on('mouseout', onMouseOut);\n updateHoverAnimation(path, symbolMeta);\n }\n\n function makeTarget(index) {\n var position = pathPosition.slice(); // (start && pxSign > 0) || (end && pxSign < 0): i = repeatTimes - index\n // Otherwise: i = index;\n\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 position: position,\n scale: symbolMeta.symbolScale.slice(),\n rotation: symbolMeta.rotation\n };\n }\n\n function onMouseOver() {\n eachPath(bar, function (path) {\n path.trigger('emphasis');\n });\n }\n\n function onMouseOut() {\n eachPath(bar, function (path) {\n path.trigger('normal');\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 position: symbolMeta.pathPosition.slice(),\n scale: [0, 0],\n rotation: symbolMeta.rotation\n }, {\n scale: symbolMeta.symbolScale.slice()\n }, symbolMeta, isUpdate);\n mainPath.on('mouseover', onMouseOver).on('mouseout', onMouseOut);\n } else {\n updateAttr(mainPath, null, {\n position: symbolMeta.pathPosition.slice(),\n scale: symbolMeta.symbolScale.slice(),\n rotation: symbolMeta.rotation\n }, symbolMeta, isUpdate);\n }\n\n updateHoverAnimation(mainPath, symbolMeta);\n\n function onMouseOver() {\n this.trigger('emphasis');\n }\n\n function onMouseOut() {\n this.trigger('normal');\n }\n} // bar rect is used for label.\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 not clip, symbol will be remove and rebuilt.\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 // The order is the same as the z-order, see `symbolRepeatDiretion`.\n return {\n index: path.__pictorialAnimationIndex,\n count: path.__pictorialRepeatTimes\n };\n}\n\nfunction isAnimationEnabled() {\n // `animation` prop can be set on itemModel in pictorial bar chart.\n return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\n}\n\nfunction updateHoverAnimation(path, symbolMeta) {\n path.off('emphasis').off('normal');\n var scale = symbolMeta.symbolScale.slice();\n symbolMeta.hoverAnimation && path.on('emphasis', function () {\n this.animateTo({\n scale: [scale[0] * 1.1, scale[1] * 1.1]\n }, 400, 'elasticOut');\n }).on('normal', function () {\n this.animateTo({\n scale: scale.slice()\n }, 400, 'elasticOut');\n });\n}\n\nfunction createBar(data, opt, symbolMeta, isUpdate) {\n // bar is the main element for each data.\n var bar = new graphic.Group(); // bundle is used for location and clip.\n\n var bundle = new graphic.Group();\n bar.add(bundle);\n bar.__pictorialBundle = bundle;\n bundle.attr('position', symbolMeta.bundlePosition.slice());\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 position: symbolMeta.bundlePosition.slice()\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 // Not show text when animating\n var labelRect = bar.__pictorialBarRect;\n labelRect && (labelRect.style.text = null);\n var pathes = [];\n eachPath(bar, function (path) {\n pathes.push(path);\n });\n bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath); // I do not find proper remove animation for clip yet.\n\n bar.__pictorialClipPath && (animationModel = null);\n zrUtil.each(pathes, function (path) {\n graphic.updateProps(path, {\n scale: [0, 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 // Do not use Group#eachChild, because it do not support remove.\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); // when symbolCip used, only clip path has init animation, otherwise it would be weird effect.\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 color = symbolMeta.color;\n var dataIndex = symbolMeta.dataIndex;\n var itemModel = symbolMeta.itemModel; // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var normalStyle = itemModel.getModel('itemStyle').getItemStyle(['color']);\n var hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n var cursorStyle = itemModel.getShallow('cursor');\n eachPath(bar, function (path) {\n // PENDING setColor should be before setStyle!!!\n path.setColor(color);\n path.setStyle(zrUtil.defaults({\n fill: color,\n opacity: symbolMeta.opacity\n }, normalStyle));\n graphic.setHoverStyle(path, hoverStyle);\n cursorStyle && (path.cursor = cursorStyle);\n path.z2 = symbolMeta.z2;\n });\n var barRectHoverStyle = {};\n var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\n var barRect = bar.__pictorialBarRect;\n setLabel(barRect.style, barRectHoverStyle, itemModel, color, opt.seriesModel, dataIndex, barPositionOutside);\n graphic.setHoverStyle(barRect, barRectHoverStyle);\n}\n\nfunction toIntTimes(times) {\n var roundedTimes = Math.round(times); // Escapse accurate error\n\n return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);\n}\n\nvar _default = BarView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar SunburstPiece = require(\"./SunburstPiece\");\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\n\nvar _format = require(\"../../util/format\");\n\nvar windowOpen = _format.windowOpen;\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*/\nvar ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\nvar SunburstView = ChartView.extend({\n type: 'sunburst',\n init: function () {},\n render: function (seriesModel, ecModel, api, payload) {\n var that = 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 if (payload && payload.highlight && payload.highlight.piece) {\n var highlightPolicy = seriesModel.getShallow('highlightPolicy');\n payload.highlight.piece.onEmphasis(highlightPolicy);\n } else if (payload && payload.unhighlight) {\n var piece = this.virtualPiece;\n\n if (!piece && virtualRoot.children.length) {\n piece = virtualRoot.children[0].piece;\n }\n\n if (piece) {\n piece.onNormal();\n }\n }\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(newId, oldId) {\n var newNode = newId == null ? null : newChildren[newId];\n var oldNode = oldId == null ? null : oldChildren[oldId];\n doRenderNode(newNode, oldNode);\n }\n }\n\n function doRenderNode(newNode, oldNode) {\n if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\n // Not render data with value 0\n newNode = null;\n }\n\n if (newNode !== virtualRoot && oldNode !== virtualRoot) {\n if (oldNode && oldNode.piece) {\n if (newNode) {\n // Update\n oldNode.piece.updateData(false, newNode, 'normal', seriesModel, ecModel); // For tooltip\n\n data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\n } else {\n // Remove\n removeNode(oldNode);\n }\n } else if (newNode) {\n // Add\n var piece = new SunburstPiece(newNode, seriesModel, ecModel);\n group.add(piece); // For tooltip\n\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 // Render\n if (that.virtualPiece) {\n // Update\n that.virtualPiece.updateData(false, virtualRoot, 'normal', seriesModel, ecModel);\n } else {\n // Add\n that.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel);\n group.add(that.virtualPiece);\n }\n\n if (viewRoot.piece._onclickEvent) {\n viewRoot.piece.off('click', viewRoot.piece._onclickEvent);\n }\n\n var event = function (e) {\n that._rootToNode(viewRoot.parentNode);\n };\n\n viewRoot.piece._onclickEvent = event;\n that.virtualPiece.on('click', event);\n } else if (that.virtualPiece) {\n // Remove\n group.remove(that.virtualPiece);\n that.virtualPiece = null;\n }\n }\n },\n dispose: function () {},\n\n /**\n * @private\n */\n _initEvents: function () {\n var that = this;\n\n var event = function (e) {\n var targetFound = false;\n var viewRoot = that.seriesModel.getViewRoot();\n viewRoot.eachNode(function (node) {\n if (!targetFound && node.piece && node.piece.childAt(0) === e.target) {\n var nodeClick = node.getModel().get('nodeClick');\n\n if (nodeClick === 'rootToNode') {\n that._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 if (this.group._onclickEvent) {\n this.group.off('click', this.group._onclickEvent);\n }\n\n this.group.on('click', event);\n this.group._onclickEvent = event;\n },\n\n /**\n * @private\n */\n _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 /**\n * @implement\n */\n 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});\nvar _default = SunburstView;\nmodule.exports = _default;","var Path = require(\"../graphic/Path\");\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar transformPath = require(\"./transformPath\");\n\n// command chars\n// var cc = [\n// 'm', 'M', 'l', 'L', 'v', 'V', 'h', 'H', 'z', 'Z',\n// 'c', 'C', 'q', 'Q', 't', 'T', 's', 'S', 'a', 'A'\n// ];\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\n\nvar vMag = function (v) {\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n};\n\nvar vRatio = function (u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n};\n\nvar vAngle = function (u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * 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 + mathSin(psi) * (y1 - y2) / 2.0;\n var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0 + mathCos(psi) * (y1 - y2) / 2.0;\n var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);\n\n if (lambda > 1) {\n rx *= mathSqrt(lambda);\n ry *= mathSqrt(lambda);\n }\n\n var f = (fa === fs ? -1 : 1) * mathSqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + 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 + mathCos(psi) * cxp - mathSin(psi) * cyp;\n var cy = (y1 + y2) / 2.0 + mathSin(psi) * cxp + 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\n if (vRatio(u, v) <= -1) {\n dTheta = PI;\n }\n\n if (vRatio(u, v) >= 1) {\n dTheta = 0;\n }\n\n if (fs === 0 && dTheta > 0) {\n dTheta = dTheta - 2 * PI;\n }\n\n if (fs === 1 && dTheta < 0) {\n dTheta = dTheta + 2 * PI;\n }\n\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\n\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig; // Consider case:\n// (1) delimiter can be comma or space, where continuous commas\n// or spaces should be seen as one comma.\n// (2) value can be like:\n// '2e-4', 'l.5.9' (ignore 0), 'M-10-10', 'l-2.43e-1,34.9983',\n// 'l-.5E1,54', '121-23-44-11' (no delimiter)\n\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g; // var valueSplitReg = /[\\s,]+/;\n\nfunction createPathProxyFromString(data) {\n if (!data) {\n return new PathProxy();\n } // var data = data.replace(/-/g, ' -')\n // .replace(/ /g, ' ')\n // .replace(/ /g, ',')\n // .replace(/,,/g, ',');\n // var n;\n // create pipes so that we can split the data\n // for (n = 0; n < cc.length; n++) {\n // cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);\n // }\n // data = data.replace(/-/g, ',-');\n // create array\n // var arr = cs.split('|');\n // init context point\n\n\n var cpx = 0;\n var cpy = 0;\n var subpathX = cpx;\n var subpathY = cpy;\n var prevCmd;\n var path = new PathProxy();\n var CMD = PathProxy.CMD; // commandReg.lastIndex = 0;\n // var cmdResult;\n // while ((cmdResult = commandReg.exec(data)) != null) {\n // var cmdStr = cmdResult[1];\n // var cmdContent = cmdResult[2];\n\n var cmdList = data.match(commandReg);\n\n for (var l = 0; l < cmdList.length; l++) {\n var cmdText = cmdList[l];\n var cmdStr = cmdText.charAt(0);\n var cmd; // String#split is faster a little bit than String#replace or RegExp#exec.\n // var p = cmdContent.split(valueSplitReg);\n // var pLen = 0;\n // for (var i = 0; i < p.length; i++) {\n // // '' and other invalid str => NaN\n // var val = parseFloat(p[i]);\n // !isNaN(val) && (p[pLen++] = val);\n // }\n\n var p = cmdText.match(numberReg) || [];\n var pLen = p.length;\n\n for (var i = 0; i < pLen; i++) {\n p[i] = parseFloat(p[i]);\n }\n\n var off = 0;\n\n while (off < pLen) {\n var ctlPtx;\n var ctlPty;\n var rx;\n var ry;\n var psi;\n var fa;\n var fs;\n var x1 = cpx;\n var y1 = cpy; // convert l, H, h, V, and v to L\n\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\n case 'L':\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\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\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\n case 'h':\n cpx += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'H':\n cpx = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'v':\n cpy += p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\n case 'V':\n cpy = p[off++];\n cmd = CMD.L;\n path.addData(cmd, cpx, cpy);\n break;\n\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\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\n case 'S':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\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\n case 's':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.C) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\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\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\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\n case 'T':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cpx = p[off++];\n cpy = p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n\n case 't':\n ctlPtx = cpx;\n ctlPty = cpy;\n var len = path.len();\n var pathData = path.data;\n\n if (prevCmd === CMD.Q) {\n ctlPtx += cpx - pathData[len - 4];\n ctlPty += cpy - pathData[len - 3];\n }\n\n cpx += p[off++];\n cpy += p[off++];\n cmd = CMD.Q;\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n break;\n\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 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\n if (cmdStr === 'z' || cmdStr === 'Z') {\n cmd = CMD.Z;\n path.addData(cmd); // z may be in the middle of the path.\n\n cpx = subpathX;\n cpy = subpathY;\n }\n\n prevCmd = cmd;\n }\n\n path.toStatic();\n return path;\n} // TODO Optimize double memory cost problem\n\n\nfunction createPathOptions(str, opts) {\n var pathProxy = createPathProxyFromString(str);\n opts = opts || {};\n\n opts.buildPath = function (path) {\n if (path.setData) {\n path.setData(pathProxy.data); // Svg and vml renderer don't have context\n\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx);\n }\n } else {\n var ctx = path;\n pathProxy.rebuildPath(ctx);\n }\n };\n\n opts.applyTransform = function (m) {\n transformPath(pathProxy, m);\n this.dirty(true);\n };\n\n return opts;\n}\n/**\n * Create a Path object from path string data\n * http://www.w3.org/TR/SVG/paths.html#PathData\n * @param {Object} opts Other options\n */\n\n\nfunction createFromString(str, opts) {\n return new Path(createPathOptions(str, opts));\n}\n/**\n * Create a Path class from path string data\n * @param {string} str\n * @param {Object} opts Other options\n */\n\n\nfunction extendFromString(str, opts) {\n return Path.extend(createPathOptions(str, opts));\n}\n/**\n * Merge multiple paths\n */\n// TODO Apply transform\n// TODO stroke dash\n// TODO Optimize double memory cost problem\n\n\nfunction mergePath(pathEls, opts) {\n var pathList = [];\n var len = pathEls.length;\n\n for (var i = 0; i < len; i++) {\n var pathEl = pathEls[i];\n\n if (!pathEl.path) {\n pathEl.createPathProxy();\n }\n\n if (pathEl.__dirtyPath) {\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\n }\n\n pathList.push(pathEl.path);\n }\n\n var pathBundle = new Path(opts); // Need path proxy.\n\n pathBundle.createPathProxy();\n\n pathBundle.buildPath = function (path) {\n path.appendPath(pathList); // Svg and vml renderer don't have context\n\n var ctx = path.getContext();\n\n if (ctx) {\n path.rebuildPath(ctx);\n }\n };\n\n return pathBundle;\n}\n\nexports.createFromString = createFromString;\nexports.extendFromString = extendFromString;\nexports.mergePath = mergePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar matrix = require(\"zrender/lib/core/matrix\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar layout = require(\"../../util/layout\");\n\nvar TimelineView = require(\"./TimelineView\");\n\nvar TimelineAxis = require(\"./TimelineAxis\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar axisHelper = require(\"../../coord/axisHelper\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\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*/\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar PI = Math.PI;\n\nvar _default = TimelineView.extend({\n type: 'timeline.slider',\n init: function (ecModel, api) {\n this.api = api;\n /**\n * @private\n * @type {module:echarts/component/timeline/TimelineAxis}\n */\n\n this._axis;\n /**\n * @private\n * @type {module:zrender/core/BoundingRect}\n */\n\n this._viewRect;\n /**\n * @type {number}\n */\n\n this._timer;\n /**\n * @type {module:zrender/Element}\n */\n\n this._currentPointer;\n /**\n * @type {module:zrender/container/Group}\n */\n\n this._mainGroup;\n /**\n * @type {module:zrender/container/Group}\n */\n\n this._labelGroup;\n },\n\n /**\n * @override\n */\n render: function (timelineModel, ecModel, api, payload) {\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 = this._layout(timelineModel, api);\n\n var mainGroup = this._createGroup('mainGroup');\n\n var labelGroup = this._createGroup('labelGroup');\n /**\n * @private\n * @type {module:echarts/component/timeline/TimelineAxis}\n */\n\n\n var axis = this._axis = this._createAxis(layoutInfo, timelineModel);\n\n timelineModel.formatTooltip = function (dataIndex) {\n return encodeHTML(axis.scale.getLabel(dataIndex));\n };\n\n each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\n this['_render' + name](layoutInfo, mainGroup, axis, timelineModel);\n }, this);\n\n this._renderAxisLabel(layoutInfo, labelGroup, axis, timelineModel);\n\n this._position(layoutInfo, timelineModel);\n }\n\n this._doPlayStop();\n },\n\n /**\n * @override\n */\n remove: function () {\n this._clearTimer();\n\n this.group.removeAll();\n },\n\n /**\n * @override\n */\n dispose: function () {\n this._clearTimer();\n },\n _layout: function (timelineModel, api) {\n var labelPosOpt = timelineModel.get('label.position');\n var orient = timelineModel.get('orient');\n var viewRect = getViewRect(timelineModel, api); // Auto label offset.\n\n if (labelPosOpt == null || labelPosOpt === 'auto') {\n labelPosOpt = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-';\n } else if (isNaN(labelPosOpt)) {\n labelPosOpt = {\n horizontal: {\n top: '-',\n bottom: '+'\n },\n vertical: {\n left: '-',\n right: '+'\n }\n }[orient][labelPosOpt];\n }\n\n var labelAlignMap = {\n horizontal: 'center',\n vertical: labelPosOpt >= 0 || labelPosOpt === '+' ? 'left' : 'right'\n };\n var labelBaselineMap = {\n horizontal: labelPosOpt >= 0 || labelPosOpt === '+' ? 'top' : 'bottom',\n vertical: 'middle'\n };\n var rotationMap = {\n horizontal: 0,\n vertical: PI / 2\n }; // Position\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; // Special label rotate.\n\n var labelRotation = timelineModel.get('label.rotate') || 0;\n labelRotation = labelRotation * PI / 180; // To radian.\n\n var playPosition;\n var prevBtnPosition;\n var nextBtnPosition;\n var axisExtent;\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; // position[0] means left, position[1] means middle.\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 // 'top' 'right'\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 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: labelPosOpt,\n labelAlign: timelineModel.get('label.align') || labelAlignMap[orient],\n labelBaseline: timelineModel.get('label.verticalAlign') || timelineModel.get('label.baseline') || labelBaselineMap[orient],\n // Based on mainGroup.\n playPosition: playPosition,\n prevBtnPosition: prevBtnPosition,\n nextBtnPosition: nextBtnPosition,\n axisExtent: axisExtent,\n controlSize: controlSize,\n controlGap: controlGap\n };\n },\n _position: function (layoutInfo, timelineModel) {\n // Position is be called finally, because bounding rect is needed for\n // adapt content to fill viewRect (auto adapt offset).\n // Timeline may be not all in the viewRect when 'offset' is specified\n // as a number, because it is more appropriate that label aligns at\n // 'offset' but not the other edge defined by viewRect.\n var mainGroup = this._mainGroup;\n var labelGroup = this._labelGroup;\n var viewRect = layoutInfo.viewRect;\n\n if (layoutInfo.orient === 'vertical') {\n // transform to horizontal, inverse rotate by left-top point.\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.position;\n var labelsPosition = labelGroup.position;\n labelsPosition[0] = mainPosition[0] = viewBound[0][0];\n var labelPosOpt = layoutInfo.labelPosOpt;\n\n if (isNaN(labelPosOpt)) {\n // '+' or '-'\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.attr('position', mainPosition);\n labelGroup.attr('position', labelsPosition);\n mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\n setOrigin(mainGroup);\n setOrigin(labelGroup);\n\n function setOrigin(targetGroup) {\n var pos = targetGroup.position;\n targetGroup.origin = [viewBound[0][0] - pos[0], viewBound[1][0] - pos[1]];\n }\n\n function getBound(rect) {\n // [[xmin, xmax], [ymin, ymax]]\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 _createAxis: function (layoutInfo, timelineModel) {\n var data = timelineModel.getData();\n var axisType = timelineModel.get('axisType');\n var scale = axisHelper.createScaleByModel(timelineModel, axisType); // Customize scale. The `tickValue` is `dataIndex`.\n\n scale.getTicks = function () {\n return data.mapArray(['value'], function (value) {\n return value;\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 _createGroup: function (name) {\n var newGroup = this['_' + name] = new graphic.Group();\n this.group.add(newGroup);\n return newGroup;\n },\n _renderAxisLine: function (layoutInfo, group, axis, timelineModel) {\n var axisExtent = axis.getExtent();\n\n if (!timelineModel.get('lineStyle.show')) {\n return;\n }\n\n group.add(new graphic.Line({\n shape: {\n x1: axisExtent[0],\n y1: 0,\n x2: axisExtent[1],\n y2: 0\n },\n style: zrUtil.extend({\n lineCap: 'round'\n }, timelineModel.getModel('lineStyle').getLineStyle()),\n silent: true,\n z2: 1\n }));\n },\n\n /**\n * @private\n */\n _renderAxisTick: function (layoutInfo, group, axis, timelineModel) {\n var data = timelineModel.getData(); // Show all ticks, despite ignoring strategy.\n\n var ticks = axis.scale.getTicks(); // The value is dataIndex, see the costomized scale.\n\n each(ticks, function (value) {\n var tickCoord = axis.dataToCoord(value);\n var itemModel = data.getItemModel(value);\n var itemStyleModel = itemModel.getModel('itemStyle');\n var hoverStyleModel = itemModel.getModel('emphasis.itemStyle');\n var symbolOpt = {\n position: [tickCoord, 0],\n onclick: bind(this._changeTimeline, this, value)\n };\n var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\n graphic.setHoverStyle(el, hoverStyleModel.getItemStyle());\n\n if (itemModel.get('tooltip')) {\n el.dataIndex = value;\n el.dataModel = timelineModel;\n } else {\n el.dataIndex = el.dataModel = null;\n }\n }, this);\n },\n\n /**\n * @private\n */\n _renderAxisLabel: function (layoutInfo, group, axis, timelineModel) {\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 each(labels, function (labelItem) {\n // The tickValue is dataIndex, see the costomized scale.\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 tickCoord = axis.dataToCoord(labelItem.tickValue);\n var textEl = new graphic.Text({\n position: [tickCoord, 0],\n rotation: layoutInfo.labelRotation - layoutInfo.rotation,\n onclick: bind(this._changeTimeline, this, dataIndex),\n silent: false\n });\n graphic.setTextStyle(textEl.style, normalLabelModel, {\n text: labelItem.formattedLabel,\n textAlign: layoutInfo.labelAlign,\n textVerticalAlign: layoutInfo.labelBaseline\n });\n group.add(textEl);\n graphic.setHoverStyle(textEl, graphic.setTextStyle({}, hoverLabelModel));\n }, this);\n },\n\n /**\n * @private\n */\n _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 rect = [0, -controlSize / 2, controlSize, controlSize];\n var playState = timelineModel.getPlayState();\n var inverse = timelineModel.get('inverse', true);\n makeBtn(layoutInfo.nextBtnPosition, 'controlStyle.nextIcon', bind(this._changeTimeline, this, inverse ? '-' : '+'));\n makeBtn(layoutInfo.prevBtnPosition, 'controlStyle.prevIcon', bind(this._changeTimeline, this, inverse ? '+' : '-'));\n makeBtn(layoutInfo.playPosition, 'controlStyle.' + (playState ? 'stopIcon' : 'playIcon'), bind(this._handlePlayClick, this, !playState), true);\n\n function makeBtn(position, iconPath, onclick, willRotate) {\n if (!position) {\n return;\n }\n\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 = makeIcon(timelineModel, iconPath, rect, opt);\n group.add(btn);\n graphic.setHoverStyle(btn, hoverStyle);\n }\n },\n _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, currentIndex, axis, timelineModel, true);\n },\n onUpdate: function (pointer) {\n pointerMoveTo(pointer, currentIndex, axis, timelineModel);\n }\n }; // Reuse when exists, for animation and drag.\n\n this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\n },\n _handlePlayClick: function (nextState) {\n this._clearTimer();\n\n this.api.dispatchAction({\n type: 'timelinePlayChange',\n playState: nextState,\n from: this.uid\n });\n },\n _handlePointerDrag: function (dx, dy, e) {\n this._clearTimer();\n\n this._pointerChangeTimeline([e.offsetX, e.offsetY]);\n },\n _handlePointerDragend: function (e) {\n this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\n },\n _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.position[0] = toCoord;\n\n this._currentPointer.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 _doPlayStop: function () {\n this._clearTimer();\n\n if (this.model.getPlayState()) {\n this._timer = setTimeout(bind(handleFrame, this), this.model.get('playInterval'));\n }\n\n function handleFrame() {\n // Do not cache\n var timelineModel = this.model;\n\n this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1));\n }\n },\n _toAxisCoord: function (vertex) {\n var trans = this._mainGroup.getLocalTransform();\n\n return graphic.applyTransform(vertex, trans, true);\n },\n _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 _clearTimer: function () {\n if (this._timer) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n },\n _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\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 makeIcon(timelineModel, objPath, rect, opts) {\n var style = opts.style;\n var icon = graphic.createIcon(timelineModel.get(objPath), opts || {}, new BoundingRect(rect[0], rect[1], rect[2], rect[3])); // TODO createIcon won't use style in opt.\n\n if (style) {\n icon.setStyle(style);\n }\n\n return icon;\n}\n/**\n * Create symbol or update symbol\n * opt: basic position and event handlers\n */\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); // Group may be new, also need to add.\n\n callback && callback.onUpdate(symbol);\n } // Style\n\n\n var itemStyle = itemStyleModel.getItemStyle(['color', 'symbol', 'symbolSize']);\n symbol.setStyle(itemStyle); // Transform and events.\n\n opt = zrUtil.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 symbolSize[0] /= 2;\n symbolSize[1] /= 2;\n opt.scale = symbolSize;\n var symbolOffset = hostModel.get('symbolOffset');\n\n if (symbolOffset) {\n var pos = opt.position = opt.position || [0, 0];\n pos[0] += numberUtil.parsePercent(symbolOffset[0], symbolSize[0]);\n pos[1] += 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); // FIXME\n // (1) When symbol.style.strokeNoScale is true and updateTransform is not performed,\n // getBoundingRect will return wrong result.\n // (This is supposed to be resolved in zrender, but it is a little difficult to\n // leverage performance and auto updateTransform)\n // (2) All of ancesters of symbol do not scale, so we can just updateTransform symbol.\n\n symbol.updateTransform();\n return symbol;\n}\n\nfunction pointerMoveTo(pointer, 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 position: [toCoord, 0]\n });\n } else {\n pointer.stopAnimation(true);\n pointer.animateTo({\n position: [toCoord, 0]\n }, pointerModel.get('animationDuration', true), pointerModel.get('animationEasing', true));\n }\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar DataZoomModel = require(\"./DataZoomModel\");\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*/\nvar SliderZoomModel = DataZoomModel.extend({\n type: 'dataZoom.slider',\n layoutMode: 'box',\n\n /**\n * @protected\n */\n defaultOption: {\n show: true,\n // ph => placeholder. Using placehoder here because\n // deault value can only be drived in view stage.\n right: 'ph',\n // Default align to grid rect.\n top: 'ph',\n // Default align to grid rect.\n width: 'ph',\n // Default align to grid rect.\n height: 'ph',\n // Default align to grid rect.\n left: null,\n // Default align to grid rect.\n bottom: null,\n // Default align to grid rect.\n backgroundColor: 'rgba(47,69,84,0)',\n // Background of slider zoom component.\n // dataBackgroundColor: '#ddd', // Background coor of data shadow and border of box,\n // highest priority, remain for compatibility of\n // previous version, but not recommended any more.\n dataBackground: {\n lineStyle: {\n color: '#2f4554',\n width: 0.5,\n opacity: 0.3\n },\n areaStyle: {\n color: 'rgba(47,69,84,0.3)',\n opacity: 0.3\n }\n },\n borderColor: '#ddd',\n // border color of the box. For compatibility,\n // if dataBackgroundColor is set, borderColor\n // is ignored.\n fillerColor: 'rgba(167,183,204,0.4)',\n // Color of selected area.\n // handleColor: 'rgba(89,170,216,0.95)', // Color of handle.\n // handleIcon: 'path://M4.9,17.8c0-1.4,4.5-10.5,5.5-12.4c0-0.1,0.6-1.1,0.9-1.1c0.4,0,0.9,1,0.9,1.1c1.1,2.2,5.4,11,5.4,12.4v17.8c0,1.5-0.6,2.1-1.3,2.1H6.1c-0.7,0-1.3-0.6-1.3-2.1V17.8z',\n\n /* eslint-disable */\n handleIcon: 'M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z',\n\n /* eslint-enable */\n // Percent of the slider height\n handleSize: '100%',\n handleStyle: {\n color: '#a7b7cc'\n },\n labelPrecision: null,\n labelFormatter: null,\n showDetail: true,\n showDataShadow: 'auto',\n // Default auto decision.\n realtime: true,\n zoomLock: false,\n // Whether disable zoom.\n textStyle: {\n color: '#333'\n }\n }\n});\nvar _default = SliderZoomModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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* A third-party license is embeded for some of the code in this file:\n* The method \"quantile\" was copied from \"d3.js\".\n* (See more details in the comment of the method below.)\n* The use of the source code of this file is also subject to the terms\n* and consitions of the license of \"d3.js\" (BSD-3Clause, see\n* ).\n*/\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n/**\n * Linear mapping a value from domain to range\n * @memberOf module:echarts/util/number\n * @param {(number|Array.)} val\n * @param {Array.} domain Domain extent domain[0] can be bigger than domain[1]\n * @param {Array.} range Range extent range[0] can be bigger than range[1]\n * @param {boolean} clamp\n * @return {(number|Array.}\n */\n\n\nfunction 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 } // Avoid accuracy problem in edge, such as\n // 146.39 - 62.83 === 83.55999999999999.\n // See echarts/test/ut/spec/util/number.js#linearMap#accuracyError\n // It is a little verbose for efficiency considering this method\n // is a hotspot.\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}\n/**\n * Convert a percent string to absolute number.\n * Returns NaN if percent is not a valid string or number\n * @memberOf module:echarts/util/number\n * @param {string|number} percent\n * @param {number} all\n * @return {number}\n */\n\n\nfunction 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}\n/**\n * (1) Fix rounding error of float numbers.\n * (2) Support return string to avoid scientific notation like '3.5e-7'.\n *\n * @param {number} x\n * @param {number} [precision]\n * @param {boolean} [returnStr]\n * @return {number|string}\n */\n\n\nfunction round(x, precision, returnStr) {\n if (precision == null) {\n precision = 10;\n } // Avoid range error\n\n\n precision = Math.min(Math.max(0, precision), 20);\n x = (+x).toFixed(precision);\n return returnStr ? x : +x;\n}\n/**\n * asc sort arr.\n * The input arr will be modified.\n *\n * @param {Array} arr\n * @return {Array} The input arr.\n */\n\n\nfunction asc(arr) {\n arr.sort(function (a, b) {\n return a - b;\n });\n return arr;\n}\n/**\n * Get precision\n * @param {number} val\n */\n\n\nfunction getPrecision(val) {\n val = +val;\n\n if (isNaN(val)) {\n return 0;\n } // It is much faster than methods converting number to string as follows\n // var tmp = val.toString();\n // return tmp.length - 1 - tmp.indexOf('.');\n // especially when precision is low\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}\n/**\n * @param {string|number} val\n * @return {number}\n */\n\n\nfunction getPrecisionSafe(val) {\n var str = val.toString(); // Consider scientific notation: '3.4e-12' '3.4e+12'\n\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}\n/**\n * Minimal dicernible data precisioin according to a single pixel.\n *\n * @param {Array.} dataExtent\n * @param {Array.} pixelExtent\n * @return {number} precision\n */\n\n\nfunction 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); // toFixed() digits argument must be between 0 and 20.\n\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n return !isFinite(precision) ? 20 : precision;\n}\n/**\n * Get a data of given precision, assuring the sum of percentages\n * in valueList is 1.\n * The largest remainer method is used.\n * https://en.wikipedia.org/wiki/Largest_remainder_method\n *\n * @param {Array.} valueList a list of all data\n * @param {number} idx index of the data to be processed in valueList\n * @param {number} precision integer number showing digits of precision\n * @return {number} percent ranging from 0 to 100\n */\n\n\nfunction 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 // Assign automatic seats.\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 }); // Has remainding votes.\n\n while (currentSum < targetSeats) {\n // Find next largest remainder.\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 } // Add a vote to max remainder.\n\n\n ++seats[maxId];\n remainder[maxId] = 0;\n ++currentSum;\n }\n\n return seats[idx] / digits;\n} // Number.MAX_SAFE_INTEGER, ie do not support.\n\n\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * To 0 - 2 * PI, considering negative radian.\n * @param {number} radian\n * @return {number}\n */\n\nfunction remRadian(radian) {\n var pi2 = Math.PI * 2;\n return (radian % pi2 + pi2) % pi2;\n}\n/**\n * @param {type} radian\n * @return {boolean}\n */\n\n\nfunction isRadianAroundZero(val) {\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\n/* eslint-disable */\n\n\nvar TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d\\d)(?::(\\d\\d)(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/; // jshint ignore:line\n\n/* eslint-enable */\n\n/**\n * @param {string|Date|number} value These values can be accepted:\n * + An instance of Date, represent a time in its own time zone.\n * + Or string in a subset of ISO 8601, only including:\n * + only year, month, date: '2012-03', '2012-03-01', '2012-03-01 05', '2012-03-01 05:06',\n * + separated with T or space: '2012-03-01T12:22:33.123', '2012-03-01 12:22:33.123',\n * + time zone: '2012-03-01T12:22:33Z', '2012-03-01T12:22:33+8000', '2012-03-01T12:22:33-05:00',\n * all of which will be treated as local time if time zone is not specified\n * (see ).\n * + Or other string format, including (all of which will be treated as loacal time):\n * '2012', '2012-3-1', '2012/3/1', '2012/03/01',\n * '2009/6/12 2:00', '2009/6/12 2:05:08', '2009/6/12 2:05:08.123'\n * + a timestamp, which represent a time in UTC.\n * @return {Date} date\n */\n\nfunction parseDate(value) {\n if (value instanceof Date) {\n return value;\n } else if (typeof value === 'string') {\n // Different browsers parse date in different way, so we parse it manually.\n // Some other issues:\n // new Date('1970-01-01') is UTC,\n // new Date('1970/01/01') and new Date('1970-1-01') is local.\n // See issue #3623\n var match = TIME_REG.exec(value);\n\n if (!match) {\n // return Invalid Date.\n return new Date(NaN);\n } // Use local time when no timezone offset specifed.\n\n\n if (!match[8]) {\n // match[n] can only be string or undefined.\n // But take care of '12' + 1 => '121'.\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 } // Timezoneoffset of Javascript Date has considered DST (Daylight Saving Time,\n // https://tc39.github.io/ecma262/#sec-daylight-saving-time-adjustment).\n // For example, system timezone is set as \"Time Zone: America/Toronto\",\n // then these code will get different result:\n // `new Date(1478411999999).getTimezoneOffset(); // get 240`\n // `new Date(1478412000000).getTimezoneOffset(); // get 300`\n // So we should not use `new Date`, but use `Date.UTC`.\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}\n/**\n * Quantity of a number. e.g. 0.1, 1, 10, 100\n *\n * @param {number} val\n * @return {number}\n */\n\n\nfunction quantity(val) {\n return Math.pow(10, quantityExponent(val));\n}\n/**\n * Exponent of the quantity of a number\n * e.g., 1234 equals to 1.234*10^3, so quantityExponent(1234) is 3\n *\n * @param {number} val non-negative value\n * @return {number}\n */\n\n\nfunction quantityExponent(val) {\n if (val === 0) {\n return 0;\n }\n\n var exp = Math.floor(Math.log(val) / Math.LN10);\n /**\n * exp is expected to be the rounded-down result of the base-10 log of val.\n * But due to the precision loss with Math.log(val), we need to restore it\n * using 10^exp to make sure we can get val back from exp. #11249\n */\n\n if (val / Math.pow(10, exp) >= 10) {\n exp++;\n }\n\n return exp;\n}\n/**\n * find a “nice” number approximately equal to x. Round the number if round = true,\n * take ceiling if round = false. The primary observation is that the “nicest”\n * numbers in decimal are 1, 2, and 5, and all power-of-ten multiples of these numbers.\n *\n * See \"Nice Numbers for Graph Labels\" of Graphic Gems.\n *\n * @param {number} val Non-negative value.\n * @param {boolean} round\n * @return {number}\n */\n\n\nfunction nice(val, round) {\n var exponent = quantityExponent(val);\n var exp10 = Math.pow(10, exponent);\n var f = val / exp10; // 1 <= f < 10\n\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; // Fix 3 * 0.1 === 0.30000000000000004 issue (see IEEE 754).\n // 20 is the uppper bound of toFixed.\n\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\n/**\n * This code was copied from \"d3.js\"\n * .\n * See the license statement at the head of this file.\n * @param {Array.} ascArr\n */\n\n\nfunction 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}\n/**\n * Order intervals asc, and split them when overlap.\n * expect(numberUtil.reformIntervals([\n * {interval: [18, 62], close: [1, 1]},\n * {interval: [-Infinity, -70], close: [0, 0]},\n * {interval: [-70, -26], close: [1, 1]},\n * {interval: [-26, 18], close: [1, 1]},\n * {interval: [62, 150], close: [1, 1]},\n * {interval: [106, 150], close: [1, 1]},\n * {interval: [150, Infinity], close: [0, 0]}\n * ])).toEqual([\n * {interval: [-Infinity, -70], close: [0, 0]},\n * {interval: [-70, -26], close: [1, 1]},\n * {interval: [-26, 18], close: [0, 1]},\n * {interval: [18, 62], close: [0, 1]},\n * {interval: [62, 150], close: [0, 1]},\n * {interval: [150, Infinity], close: [0, 0]}\n * ]);\n * @param {Array.} list, where `close` mean open or close\n * of the interval, and Infinity can be used.\n * @return {Array.} The origin list, which has been reformed.\n */\n\n\nfunction 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 = list[i].close;\n\n for (var lg = 0; lg < 2; lg++) {\n if (interval[lg] <= curr) {\n interval[lg] = curr;\n close[lg] = !lg ? 1 - currClose : 1;\n }\n\n curr = interval[lg];\n currClose = close[lg];\n }\n\n if (interval[0] === interval[1] && close[0] * close[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}\n/**\n * parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n * ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n * subtraction forces infinities to NaN\n *\n * @param {*} v\n * @return {boolean}\n */\n\n\nfunction isNumeric(v) {\n return v - parseFloat(v) >= 0;\n}\n\nexports.linearMap = linearMap;\nexports.parsePercent = parsePercent;\nexports.round = round;\nexports.asc = asc;\nexports.getPrecision = getPrecision;\nexports.getPrecisionSafe = getPrecisionSafe;\nexports.getPixelPrecision = getPixelPrecision;\nexports.getPercentWithPrecision = getPercentWithPrecision;\nexports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER;\nexports.remRadian = remRadian;\nexports.isRadianAroundZero = isRadianAroundZero;\nexports.parseDate = parseDate;\nexports.quantity = quantity;\nexports.quantityExponent = quantityExponent;\nexports.nice = nice;\nexports.quantile = quantile;\nexports.reformIntervals = reformIntervals;\nexports.isNumeric = isNumeric;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _dataProvider = require(\"../../data/helper/dataProvider\");\n\nvar retrieveRawValue = _dataProvider.retrieveRawValue;\n\nvar _format = require(\"../../util/format\");\n\nvar getTooltipMarker = _format.getTooltipMarker;\nvar formatTpl = _format.formatTpl;\n\nvar _model = require(\"../../util/model\");\n\nvar getTooltipRenderMode = _model.getTooltipRenderMode;\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*/\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g; // PENDING A little ugly\n\nvar _default = {\n /**\n * Get params for formatter\n * @param {number} dataIndex\n * @param {string} [dataType]\n * @return {Object}\n */\n 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 color = data.getItemVisual(dataIndex, 'color');\n var borderColor = data.getItemVisual(dataIndex, 'borderColor');\n var tooltipModel = this.ecModel.getComponent('tooltip');\n var renderModeOption = tooltipModel && tooltipModel.get('renderMode');\n var renderMode = getTooltipRenderMode(renderModeOption);\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 marker: getTooltipMarker({\n color: color,\n renderMode: renderMode\n }),\n // Param name list for mapping `a`, `b`, `c`, `d`, `e`\n $vars: ['seriesName', 'name', 'value']\n };\n },\n\n /**\n * Format label\n * @param {number} dataIndex\n * @param {string} [status='normal'] 'normal' or 'emphasis'\n * @param {string} [dataType]\n * @param {number} [dimIndex] Only used in some chart that\n * use formatter in different dimensions, like radar.\n * @param {string} [labelProp='label']\n * @return {string} If not formatter, return null/undefined\n */\n getFormattedLabel: function (dataIndex, status, dataType, dimIndex, labelProp) {\n status = status || 'normal';\n var data = this.getData(dataType);\n var itemModel = data.getItemModel(dataIndex);\n var params = this.getDataParams(dataIndex, dataType);\n\n if (dimIndex != null && params.value instanceof Array) {\n params.value = params.value[dimIndex];\n }\n\n var formatter = itemModel.get(status === 'normal' ? [labelProp || 'label', 'formatter'] : [status, labelProp || 'label', 'formatter']);\n\n if (typeof formatter === 'function') {\n params.status = status;\n params.dimensionIndex = dimIndex;\n return formatter(params);\n } else if (typeof formatter === 'string') {\n var str = formatTpl(formatter, params); // Support 'aaa{@[3]}bbb{@product}ccc'.\n // Do not support '}' in dim name util have to.\n\n return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\n var len = dim.length;\n\n if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\n dim = +dim.slice(1, len - 1); // Also: '[]' => 0\n }\n\n return retrieveRawValue(data, dataIndex, dim);\n });\n }\n },\n\n /**\n * Get raw value in option\n * @param {number} idx\n * @param {string} [dataType]\n * @return {Array|number|string}\n */\n getRawValue: function (idx, dataType) {\n return retrieveRawValue(this.getData(dataType), idx);\n },\n\n /**\n * Should be implemented.\n * @param {number} dataIndex\n * @param {boolean} [multipleSeries=false]\n * @param {number} [dataType]\n * @return {string} tooltip string\n */\n formatTooltip: function () {// Empty function\n }\n};\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar makeStyleMapper = require(\"./makeStyleMapper\");\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*/\nvar getLineStyle = makeStyleMapper([['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\nvar _default = {\n getLineStyle: function (excludes) {\n var style = getLineStyle(this, excludes); // Always set lineDash whether dashed, otherwise we can not\n // erase the previous style when assigning to el.style.\n\n style.lineDash = this.getLineDash(style.lineWidth);\n return style;\n },\n getLineDash: function (lineWidth) {\n if (lineWidth == null) {\n lineWidth = 1;\n }\n\n var lineType = this.get('type');\n var dotSize = Math.max(lineWidth, 2);\n var dashSize = lineWidth * 4;\n return lineType === 'solid' || lineType == null ? // Use `false` but not `null` for the solid line here, because `null` might be\n // ignored when assigning to `el.style`. e.g., when setting `lineStyle.type` as\n // `'dashed'` and `emphasis.lineStyle.type` as `'solid'` in graph series, the\n // `lineDash` gotten form the latter one is not able to erase that from the former\n // one if using `null` here according to the emhpsis strategy in `util/graphic.js`.\n false : lineType === 'dashed' ? [dashSize, dashSize] : [dotSize, dotSize];\n }\n};\nmodule.exports = _default;","var _util = require(\"../core/util\");\n\nvar inherits = _util.inherits;\n\nvar Displayble = require(\"./Displayable\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\n/**\n * Displayable for incremental rendering. It will be rendered in a separate layer\n * IncrementalDisplay have two main methods. `clearDisplayables` and `addDisplayables`\n * addDisplayables will render the added displayables incremetally.\n *\n * It use a not clearFlag to tell the painter don't clear the layer if it's the first element.\n */\n// TODO Style override ?\nfunction IncrementalDisplayble(opts) {\n Displayble.call(this, opts);\n this._displayables = [];\n this._temporaryDisplayables = [];\n this._cursor = 0;\n this.notClear = true;\n}\n\nIncrementalDisplayble.prototype.incremental = true;\n\nIncrementalDisplayble.prototype.clearDisplaybles = function () {\n this._displayables = [];\n this._temporaryDisplayables = [];\n this._cursor = 0;\n this.dirty();\n this.notClear = false;\n};\n\nIncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\n if (notPersistent) {\n this._temporaryDisplayables.push(displayable);\n } else {\n this._displayables.push(displayable);\n }\n\n this.dirty();\n};\n\nIncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\n notPersistent = notPersistent || false;\n\n for (var i = 0; i < displayables.length; i++) {\n this.addDisplayable(displayables[i], notPersistent);\n }\n};\n\nIncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\n for (var i = this._cursor; i < this._displayables.length; i++) {\n cb && cb(this._displayables[i]);\n }\n\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n cb && cb(this._temporaryDisplayables[i]);\n }\n};\n\nIncrementalDisplayble.prototype.update = function () {\n this.updateTransform();\n\n for (var i = this._cursor; i < this._displayables.length; i++) {\n var displayable = this._displayables[i]; // PENDING\n\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n var displayable = this._temporaryDisplayables[i]; // PENDING\n\n displayable.parent = this;\n displayable.update();\n displayable.parent = null;\n }\n};\n\nIncrementalDisplayble.prototype.brush = function (ctx, prevEl) {\n // Render persistant displayables.\n for (var i = this._cursor; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n displayable.beforeBrush && displayable.beforeBrush(ctx);\n displayable.brush(ctx, i === this._cursor ? null : this._displayables[i - 1]);\n displayable.afterBrush && displayable.afterBrush(ctx);\n }\n\n this._cursor = i; // Render temporary displayables.\n\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n var displayable = this._temporaryDisplayables[i];\n displayable.beforeBrush && displayable.beforeBrush(ctx);\n displayable.brush(ctx, i === 0 ? null : this._temporaryDisplayables[i - 1]);\n displayable.afterBrush && displayable.afterBrush(ctx);\n }\n\n this._temporaryDisplayables = [];\n this.notClear = true;\n};\n\nvar m = [];\n\nIncrementalDisplayble.prototype.getBoundingRect = function () {\n if (!this._rect) {\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n\n for (var i = 0; i < this._displayables.length; i++) {\n var displayable = this._displayables[i];\n var childRect = displayable.getBoundingRect().clone();\n\n if (displayable.needLocalTransform()) {\n childRect.applyTransform(displayable.getLocalTransform(m));\n }\n\n rect.union(childRect);\n }\n\n this._rect = rect;\n }\n\n return this._rect;\n};\n\nIncrementalDisplayble.prototype.contain = function (x, y) {\n var localPos = this.transformCoordToLocal(x, y);\n var rect = this.getBoundingRect();\n\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\n if (displayable.contain(x, y)) {\n return true;\n }\n }\n }\n\n return false;\n};\n\ninherits(IncrementalDisplayble, Displayble);\nvar _default = IncrementalDisplayble;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\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*/\necharts.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 } // Set normalized currentIndex to payload.\n\n\n ecModel.resetOption('timeline');\n return zrUtil.defaults({\n currentIndex: timelineModel.option.currentIndex\n }, payload);\n});\necharts.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* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar createListFromArray = require(\"../helper/createListFromArray\");\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\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*/\nvar _default = SeriesModel.extend({\n type: 'series.heatmap',\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this, {\n generateCoord: 'value'\n });\n },\n 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 defaultOption: {\n // Cartesian2D or geo\n coordinateSystem: 'cartesian2d',\n zlevel: 0,\n z: 2,\n // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Geo coordinate system\n geoIndex: 0,\n blurSize: 30,\n pointSize: 20,\n maxOpacity: 1,\n minOpacity: 0\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar helper = require(\"./helper\");\n\nvar AxisProxy = require(\"./AxisProxy\");\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*/\nvar each = zrUtil.each;\nvar eachAxisDim = helper.eachAxisDim;\nvar DataZoomModel = echarts.extendComponentModel({\n type: 'dataZoom',\n dependencies: ['xAxis', 'yAxis', 'zAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series'],\n\n /**\n * @protected\n */\n defaultOption: {\n zlevel: 0,\n z: 4,\n // Higher than normal component (z: 2).\n orient: null,\n // Default auto by axisIndex. Possible value: 'horizontal', 'vertical'.\n xAxisIndex: null,\n // Default the first horizontal category axis.\n yAxisIndex: null,\n // Default the first vertical category axis.\n filterMode: 'filter',\n // Possible values: 'filter' or 'empty' or 'weakFilter'.\n // 'filter': data items which are out of window will be removed. This option is\n // applicable when filtering outliers. For each data item, it will be\n // filtered if one of the relevant dimensions is out of the window.\n // 'weakFilter': data items which are out of window will be removed. This option\n // is applicable when filtering outliers. For each data item, it will be\n // filtered only if all of the relevant dimensions are out of the same\n // side of the window.\n // 'empty': data items which are out of window will be set to empty.\n // This option is applicable when user should not neglect\n // that there are some data items out of window.\n // 'none': Do not filter.\n // Taking line chart as an example, line will be broken in\n // the filtered points when filterModel is set to 'empty', but\n // be connected when set to 'filter'.\n throttle: null,\n // Dispatch action by the fixed rate, avoid frequency.\n // default 100. Do not throttle when use null/undefined.\n // If animation === true and animationDurationUpdate > 0,\n // default value is 100, otherwise 20.\n start: 0,\n // Start percent. 0 ~ 100\n end: 100,\n // End percent. 0 ~ 100\n startValue: null,\n // Start value. If startValue specified, start is ignored.\n endValue: null,\n // End value. If endValue specified, end is ignored.\n minSpan: null,\n // 0 ~ 100\n maxSpan: null,\n // 0 ~ 100\n minValueSpan: null,\n // The range of dataZoom can not be smaller than that.\n maxValueSpan: null,\n // The range of dataZoom can not be larger than that.\n rangeMode: null // Array, can be 'value' or 'percent'.\n\n },\n\n /**\n * @override\n */\n init: function (option, parentModel, ecModel) {\n /**\n * key like x_0, y_1\n * @private\n * @type {Object}\n */\n this._dataIntervalByAxis = {};\n /**\n * @private\n */\n\n this._dataInfo = {};\n /**\n * key like x_0, y_1\n * @private\n */\n\n this._axisProxies = {};\n /**\n * @readOnly\n */\n\n this.textStyleModel;\n /**\n * @private\n */\n\n this._autoThrottle = true;\n /**\n * It is `[rangeModeForMin, rangeModeForMax]`.\n * The optional values for `rangeMode`:\n * + `'value'` mode: the axis extent will always be determined by\n * `dataZoom.startValue` and `dataZoom.endValue`, despite\n * how data like and how `axis.min` and `axis.max` are.\n * + `'percent'` mode: `100` represents 100% of the `[dMin, dMax]`,\n * where `dMin` is `axis.min` if `axis.min` specified, otherwise `data.extent[0]`,\n * and `dMax` is `axis.max` if `axis.max` specified, otherwise `data.extent[1]`.\n * Axis extent will be determined by the result of the percent of `[dMin, dMax]`.\n *\n * For example, when users are using dynamic data (update data periodically via `setOption`),\n * if in `'value`' mode, the window will be kept in a fixed value range despite how\n * data are appended, while if in `'percent'` mode, whe window range will be changed alone with\n * the appended data (suppose `axis.min` and `axis.max` are not specified).\n *\n * @private\n */\n\n this._rangePropMode = ['percent', 'percent'];\n var inputRawOption = retrieveRawOption(option);\n /**\n * Suppose a \"main process\" start at the point that model prepared (that is,\n * model initialized or merged or method called in `action`).\n * We should keep the `main process` idempotent, that is, given a set of values\n * on `option`, we get the same result.\n *\n * But sometimes, values on `option` will be updated for providing users\n * a \"final calculated value\" (`dataZoomProcessor` will do that). Those value\n * should not be the base/input of the `main process`.\n *\n * So in that case we should save and keep the input of the `main process`\n * separately, called `settledOption`.\n *\n * For example, consider the case:\n * (Step_1) brush zoom the grid by `toolbox.dataZoom`,\n * where the original input `option.startValue`, `option.endValue` are earsed by\n * calculated value.\n * (Step)2) click the legend to hide and show a series,\n * where the new range is calculated by the earsed `startValue` and `endValue`,\n * which brings incorrect result.\n *\n * @readOnly\n */\n\n this.settledOption = inputRawOption;\n this.mergeDefaultAndTheme(option, ecModel);\n this.doInit(inputRawOption);\n },\n\n /**\n * @override\n */\n mergeOption: function (newOption) {\n var inputRawOption = retrieveRawOption(newOption); //FIX #2591\n\n zrUtil.merge(this.option, newOption, true);\n zrUtil.merge(this.settledOption, inputRawOption, true);\n this.doInit(inputRawOption);\n },\n\n /**\n * @protected\n */\n doInit: function (inputRawOption) {\n var thisOption = this.option; // Disable realtime view update if canvas is not supported.\n\n if (!env.canvasSupported) {\n thisOption.realtime = false;\n }\n\n this._setDefaultThrottle(inputRawOption);\n\n updateRangeUse(this, inputRawOption);\n var settledOption = this.settledOption;\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n // start/end has higher priority over startValue/endValue if they\n // both set, but we should make chart.setOption({endValue: 1000})\n // effective, rather than chart.setOption({endValue: 1000, end: null}).\n if (this._rangePropMode[index] === 'value') {\n thisOption[names[0]] = settledOption[names[0]] = null;\n } // Otherwise do nothing and use the merge result.\n\n }, this);\n this.textStyleModel = this.getModel('textStyle');\n\n this._resetTarget();\n\n this._giveAxisProxies();\n },\n\n /**\n * @private\n */\n _giveAxisProxies: function () {\n var axisProxies = this._axisProxies;\n this.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel, ecModel) {\n var axisModel = this.dependentModels[dimNames.axis][axisIndex]; // If exists, share axisProxy with other dataZoomModels.\n\n var axisProxy = axisModel.__dzAxisProxy || ( // Use the first dataZoomModel as the main model of axisProxy.\n axisModel.__dzAxisProxy = new AxisProxy(dimNames.name, axisIndex, this, ecModel)); // FIXME\n // dispose __dzAxisProxy\n\n axisProxies[dimNames.name + '_' + axisIndex] = axisProxy;\n }, this);\n },\n\n /**\n * @private\n */\n _resetTarget: function () {\n var thisOption = this.option;\n\n var autoMode = this._judgeAutoMode();\n\n eachAxisDim(function (dimNames) {\n var axisIndexName = dimNames.axisIndex;\n thisOption[axisIndexName] = modelUtil.normalizeToArray(thisOption[axisIndexName]);\n }, this);\n\n if (autoMode === 'axisIndex') {\n this._autoSetAxisIndex();\n } else if (autoMode === 'orient') {\n this._autoSetOrient();\n }\n },\n\n /**\n * @private\n */\n _judgeAutoMode: function () {\n // Auto set only works for setOption at the first time.\n // The following is user's reponsibility. So using merged\n // option is OK.\n var thisOption = this.option;\n var hasIndexSpecified = false;\n eachAxisDim(function (dimNames) {\n // When user set axisIndex as a empty array, we think that user specify axisIndex\n // but do not want use auto mode. Because empty array may be encountered when\n // some error occured.\n if (thisOption[dimNames.axisIndex] != null) {\n hasIndexSpecified = true;\n }\n }, this);\n var orient = thisOption.orient;\n\n if (orient == null && hasIndexSpecified) {\n return 'orient';\n } else if (!hasIndexSpecified) {\n if (orient == null) {\n thisOption.orient = 'horizontal';\n }\n\n return 'axisIndex';\n }\n },\n\n /**\n * @private\n */\n _autoSetAxisIndex: function () {\n var autoAxisIndex = true;\n var orient = this.get('orient', true);\n var thisOption = this.option;\n var dependentModels = this.dependentModels;\n\n if (autoAxisIndex) {\n // Find axis that parallel to dataZoom as default.\n var dimName = orient === 'vertical' ? 'y' : 'x';\n\n if (dependentModels[dimName + 'Axis'].length) {\n thisOption[dimName + 'AxisIndex'] = [0];\n autoAxisIndex = false;\n } else {\n each(dependentModels.singleAxis, function (singleAxisModel) {\n if (autoAxisIndex && singleAxisModel.get('orient', true) === orient) {\n thisOption.singleAxisIndex = [singleAxisModel.componentIndex];\n autoAxisIndex = false;\n }\n });\n }\n }\n\n if (autoAxisIndex) {\n // Find the first category axis as default. (consider polar)\n eachAxisDim(function (dimNames) {\n if (!autoAxisIndex) {\n return;\n }\n\n var axisIndices = [];\n var axisModels = this.dependentModels[dimNames.axis];\n\n if (axisModels.length && !axisIndices.length) {\n for (var i = 0, len = axisModels.length; i < len; i++) {\n if (axisModels[i].get('type') === 'category') {\n axisIndices.push(i);\n }\n }\n }\n\n thisOption[dimNames.axisIndex] = axisIndices;\n\n if (axisIndices.length) {\n autoAxisIndex = false;\n }\n }, this);\n }\n\n if (autoAxisIndex) {\n // FIXME\n // 这里是兼容ec2的写法(没指定xAxisIndex和yAxisIndex时把scatter和双数值轴折柱纳入dataZoom控制),\n // 但是实际是否需要Grid.js#getScaleByOption来判断(考虑time,log等axis type)?\n // If both dataZoom.xAxisIndex and dataZoom.yAxisIndex is not specified,\n // dataZoom component auto adopts series that reference to\n // both xAxis and yAxis which type is 'value'.\n this.ecModel.eachSeries(function (seriesModel) {\n if (this._isSeriesHasAllAxesTypeOf(seriesModel, 'value')) {\n eachAxisDim(function (dimNames) {\n var axisIndices = thisOption[dimNames.axisIndex];\n var axisIndex = seriesModel.get(dimNames.axisIndex);\n var axisId = seriesModel.get(dimNames.axisId);\n var axisModel = seriesModel.ecModel.queryComponents({\n mainType: dimNames.axis,\n index: axisIndex,\n id: axisId\n })[0];\n axisIndex = axisModel.componentIndex;\n\n if (zrUtil.indexOf(axisIndices, axisIndex) < 0) {\n axisIndices.push(axisIndex);\n }\n });\n }\n }, this);\n }\n },\n\n /**\n * @private\n */\n _autoSetOrient: function () {\n var dim; // Find the first axis\n\n this.eachTargetAxis(function (dimNames) {\n !dim && (dim = dimNames.name);\n }, this);\n this.option.orient = dim === 'y' ? 'vertical' : 'horizontal';\n },\n\n /**\n * @private\n */\n _isSeriesHasAllAxesTypeOf: function (seriesModel, axisType) {\n // FIXME\n // 需要series的xAxisIndex和yAxisIndex都首先自动设置上。\n // 例如series.type === scatter时。\n var is = true;\n eachAxisDim(function (dimNames) {\n var seriesAxisIndex = seriesModel.get(dimNames.axisIndex);\n var axisModel = this.dependentModels[dimNames.axis][seriesAxisIndex];\n\n if (!axisModel || axisModel.get('type') !== axisType) {\n is = false;\n }\n }, this);\n return is;\n },\n\n /**\n * @private\n */\n _setDefaultThrottle: function (inputRawOption) {\n // When first time user set throttle, auto throttle ends.\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 /**\n * @public\n */\n getFirstTargetAxisModel: function () {\n var firstAxisModel;\n eachAxisDim(function (dimNames) {\n if (firstAxisModel == null) {\n var indices = this.get(dimNames.axisIndex);\n\n if (indices.length) {\n firstAxisModel = this.dependentModels[dimNames.axis][indices[0]];\n }\n }\n }, this);\n return firstAxisModel;\n },\n\n /**\n * @public\n * @param {Function} callback param: axisModel, dimNames, axisIndex, dataZoomModel, ecModel\n */\n eachTargetAxis: function (callback, context) {\n var ecModel = this.ecModel;\n eachAxisDim(function (dimNames) {\n each(this.get(dimNames.axisIndex), function (axisIndex) {\n callback.call(context, dimNames, axisIndex, this, ecModel);\n }, this);\n }, this);\n },\n\n /**\n * @param {string} dimName\n * @param {number} axisIndex\n * @return {module:echarts/component/dataZoom/AxisProxy} If not found, return null/undefined.\n */\n getAxisProxy: function (dimName, axisIndex) {\n return this._axisProxies[dimName + '_' + axisIndex];\n },\n\n /**\n * @param {string} dimName\n * @param {number} axisIndex\n * @return {module:echarts/model/Model} If not found, return null/undefined.\n */\n getAxisModel: function (dimName, axisIndex) {\n var axisProxy = this.getAxisProxy(dimName, axisIndex);\n return axisProxy && axisProxy.getAxisModel();\n },\n\n /**\n * If not specified, set to undefined.\n *\n * @public\n * @param {Object} opt\n * @param {number} [opt.start]\n * @param {number} [opt.end]\n * @param {number} [opt.startValue]\n * @param {number} [opt.endValue]\n */\n setRawRange: function (opt) {\n var thisOption = this.option;\n var settledOption = this.settledOption;\n each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n // Consider the pair :\n // If one has value and the other one is `null/undefined`, we both set them\n // to `settledOption`. This strategy enables the feature to clear the original\n // value in `settledOption` to `null/undefined`.\n // But if both of them are `null/undefined`, we do not set them to `settledOption`\n // and keep `settledOption` with the original value. This strategy enables users to\n // only set but not set when calling\n // `dispatchAction`.\n // The pair is treated in the same way.\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 updateRangeUse(this, opt);\n },\n\n /**\n * @public\n * @param {Object} opt\n * @param {number} [opt.start]\n * @param {number} [opt.end]\n * @param {number} [opt.startValue]\n * @param {number} [opt.endValue]\n */\n 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 /**\n * @public\n * @return {Array.} [startPercent, endPercent]\n */\n getPercentRange: function () {\n var axisProxy = this.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n return axisProxy.getDataPercentWindow();\n }\n },\n\n /**\n * @public\n * For example, chart.getModel().getComponent('dataZoom').getValueRange('y', 0);\n *\n * @param {string} [axisDimName]\n * @param {number} [axisIndex]\n * @return {Array.} [startValue, endValue] value can only be '-' or finite number.\n */\n getValueRange: function (axisDimName, axisIndex) {\n if (axisDimName == null && axisIndex == null) {\n var axisProxy = this.findRepresentativeAxisProxy();\n\n if (axisProxy) {\n return axisProxy.getDataValueWindow();\n }\n } else {\n return this.getAxisProxy(axisDimName, axisIndex).getDataValueWindow();\n }\n },\n\n /**\n * @public\n * @param {module:echarts/model/Model} [axisModel] If axisModel given, find axisProxy\n * corresponding to the axisModel\n * @return {module:echarts/component/dataZoom/AxisProxy}\n */\n findRepresentativeAxisProxy: function (axisModel) {\n if (axisModel) {\n return axisModel.__dzAxisProxy;\n } // Find the first hosted axisProxy\n\n\n var axisProxies = this._axisProxies;\n\n for (var key in axisProxies) {\n if (axisProxies.hasOwnProperty(key) && axisProxies[key].hostedBy(this)) {\n return axisProxies[key];\n }\n } // If no hosted axis find not hosted axisProxy.\n // Consider this case: dataZoomModel1 and dataZoomModel2 control the same axis,\n // and the option.start or option.end settings are different. The percentRange\n // should follow axisProxy.\n // (We encounter this problem in toolbox data zoom.)\n\n\n for (var key in axisProxies) {\n if (axisProxies.hasOwnProperty(key) && !axisProxies[key].hostedBy(this)) {\n return axisProxies[key];\n }\n }\n },\n\n /**\n * @return {Array.}\n */\n getRangePropMode: function () {\n return this._rangePropMode.slice();\n }\n});\n/**\n * Retrieve the those raw params from option, which will be cached separately.\n * becasue they will be overwritten by normalized/calculated values in the main\n * process.\n */\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\nfunction updateRangeUse(dataZoomModel, inputRawOption) {\n var rangePropMode = dataZoomModel._rangePropMode;\n var rangeModeInOption = dataZoomModel.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 // percentSpecified && valueSpecified\n rangePropMode[index] = 'percent';\n } // else remain its original setting.\n\n });\n}\n\nvar _default = DataZoomModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar LinearGradient = require(\"zrender/lib/graphic/LinearGradient\");\n\nvar eventTool = require(\"zrender/lib/core/event\");\n\nvar VisualMapView = require(\"./VisualMapView\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar sliderMove = require(\"../helper/sliderMove\");\n\nvar helper = require(\"./helper\");\n\nvar modelUtil = require(\"../../util/model\");\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*/\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max; // Arbitrary value\n\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6; // Notice:\n// Any \"interval\" should be by the order of [low, high].\n// \"handle0\" (handleIndex === 0) maps to\n// low data value: this._dataInterval[0] and has low coord.\n// \"handle1\" (handleIndex === 1) maps to\n// high data value: this._dataInterval[1] and has high coord.\n// The logic of transform is implemented in this._createBarGroup.\n\nvar ContinuousView = VisualMapView.extend({\n type: 'visualMap.continuous',\n\n /**\n * @override\n */\n init: function () {\n ContinuousView.superApply(this, 'init', arguments);\n /**\n * @private\n */\n\n this._shapes = {};\n /**\n * @private\n */\n\n this._dataInterval = [];\n /**\n * @private\n */\n\n this._handleEnds = [];\n /**\n * @private\n */\n\n this._orient;\n /**\n * @private\n */\n\n this._useHandle;\n /**\n * @private\n */\n\n this._hoverLinkDataIndices = [];\n /**\n * @private\n */\n\n this._dragging;\n /**\n * @private\n */\n\n this._hovering;\n },\n\n /**\n * @protected\n * @override\n */\n doRender: function (visualMapModel, ecModel, api, payload) {\n if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n this._buildView();\n }\n },\n\n /**\n * @private\n */\n _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); // Do this for background size calculation.\n\n\n this._updateView(true); // After updating view, inner shapes is built completely,\n // and then background can be rendered.\n\n\n this.renderBackground(thisGroup); // Real update view\n\n this._updateView();\n\n this._enableHoverLinkToSeries();\n\n this._enableHoverLinkFromSeries();\n\n this.positionGroup(thisGroup);\n },\n\n /**\n * @private\n */\n _renderEndsText: function (group, dataRangeText, endsIndex) {\n if (!dataRangeText) {\n return;\n } // Compatible with ec2, text[0] map to high value, text[1] map low value.\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.barGroup;\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 textVerticalAlign: orient === 'horizontal' ? 'middle' : align,\n textAlign: orient === 'horizontal' ? align : 'center',\n text: text,\n textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n }));\n },\n\n /**\n * @private\n */\n _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 barGroup = shapes.barGroup = this._createBarGroup(itemAlign); // Bar\n\n\n barGroup.add(shapes.outOfRange = createPolygon());\n barGroup.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 var textRect = visualMapModel.textStyleModel.getTextRect('国');\n var textSize = mathMax(textRect.width, textRect.height); // Handle\n\n if (useHandle) {\n shapes.handleThumbs = [];\n shapes.handleLabels = [];\n shapes.handleLabelPoints = [];\n\n this._createHandle(barGroup, 0, itemSize, textSize, orient, itemAlign);\n\n this._createHandle(barGroup, 1, itemSize, textSize, orient, itemAlign);\n }\n\n this._createIndicator(barGroup, itemSize, textSize, orient);\n\n targetGroup.add(barGroup);\n },\n\n /**\n * @private\n */\n _createHandle: function (barGroup, 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 handleThumb = createPolygon(createHandlePoints(handleIndex, textSize), getCursor(this._orient), onDrift, onDragEnd);\n handleThumb.position[0] = itemSize[0];\n barGroup.add(handleThumb); // Text is always horizontal layout but should not be effected by\n // transform (orient/inverse). So label is built separately but not\n // use zrender/graphic/helper/RectText, and is located based on view\n // group (according to handleLabelPoint) but not barGroup.\n\n var textStyleModel = this.visualMapModel.textStyleModel;\n var handleLabel = new graphic.Text({\n draggable: true,\n drift: onDrift,\n onmousemove: function (e) {\n // Fot mobile devicem, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd,\n style: {\n x: 0,\n y: 0,\n text: '',\n textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n });\n this.group.add(handleLabel);\n var handleLabelPoint = [orient === 'horizontal' ? textSize / 2 : textSize * 1.5, orient === 'horizontal' ? handleIndex === 0 ? -(textSize * 1.5) : textSize * 1.5 : handleIndex === 0 ? -textSize / 2 : textSize / 2];\n var shapes = this._shapes;\n shapes.handleThumbs[handleIndex] = handleThumb;\n shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n shapes.handleLabels[handleIndex] = handleLabel;\n },\n\n /**\n * @private\n */\n _createIndicator: function (barGroup, itemSize, textSize, orient) {\n var indicator = createPolygon([[0, 0]], 'move');\n indicator.position[0] = itemSize[0];\n indicator.attr({\n invisible: true,\n silent: true\n });\n barGroup.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 textFont: textStyleModel.getFont(),\n textFill: textStyleModel.getTextColor()\n }\n });\n this.group.add(indicatorLabel);\n var indicatorLabelPoint = [orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT + 3, 0];\n var shapes = this._shapes;\n shapes.indicator = indicator;\n shapes.indicatorLabel = indicatorLabel;\n shapes.indicatorLabelPoint = indicatorLabelPoint;\n },\n\n /**\n * @private\n */\n _dragHandle: function (handleIndex, isEnd, dx, dy) {\n if (!this._useHandle) {\n return;\n }\n\n this._dragging = !isEnd;\n\n if (!isEnd) {\n // Transform dx, dy to bar coordination.\n var vertex = this._applyTransform([dx, dy], this._shapes.barGroup, true);\n\n this._updateInterval(handleIndex, vertex[1]); // Considering realtime, update view should be executed\n // before dispatch action.\n\n\n this._updateView();\n } // dragEnd do not dispatch action when realtime.\n\n\n if (isEnd === !this.visualMapModel.get('realtime')) {\n // jshint ignore:line\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 /**\n * @private\n */\n _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 /**\n * @private\n * @param {(number|string)} handleIndex 0 or 1 or 'all'\n * @param {number} dx\n * @param {number} dy\n */\n _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, // cross is forbiden\n 0);\n var dataExtent = visualMapModel.getExtent(); // Update data interval.\n\n this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n },\n\n /**\n * @private\n */\n _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 opacity: visualInRange.opacity\n }).setShape('points', visualInRange.barPoints);\n shapes.outOfRange.setStyle({\n fill: visualOutOfRange.barColor,\n opacity: visualOutOfRange.opacity\n }).setShape('points', visualOutOfRange.barPoints);\n\n this._updateHandle(inRangeHandleEnds, visualInRange);\n },\n\n /**\n * @private\n */\n _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 /**\n * @private\n */\n _makeColorGradient: function (dataInterval, opts) {\n // Considering colorHue, which is not linear, so we have to sample\n // to calculate gradient color stops, but not only caculate head\n // and tail.\n var sampleNumber = 100; // Arbitrary value.\n\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 /**\n * @private\n */\n _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 /**\n * @private\n */\n _createBarGroup: function (itemAlign) {\n var orient = this._orient;\n var inverse = this.visualMapModel.get('inverse');\n return new graphic.Group(orient === 'horizontal' && !inverse ? {\n scale: itemAlign === 'bottom' ? [1, 1] : [-1, 1],\n rotation: Math.PI / 2\n } : orient === 'horizontal' && inverse ? {\n scale: itemAlign === 'bottom' ? [-1, 1] : [1, 1],\n rotation: -Math.PI / 2\n } : orient === 'vertical' && !inverse ? {\n scale: itemAlign === 'left' ? [1, -1] : [-1, -1]\n } : {\n scale: itemAlign === 'left' ? [1, 1] : [-1, 1]\n });\n },\n\n /**\n * @private\n */\n _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 each([0, 1], function (handleIndex) {\n var handleThumb = handleThumbs[handleIndex];\n handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n handleThumb.position[1] = handleEnds[handleIndex]; // Update handle label position.\n\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 textVerticalAlign: 'middle',\n textAlign: this._applyTransform(this._orient === 'horizontal' ? handleIndex === 0 ? 'bottom' : 'top' : 'left', shapes.barGroup)\n });\n }, this);\n },\n\n /**\n * @private\n * @param {number} cursorValue\n * @param {number} textValue\n * @param {string} [rangeSymbol]\n * @param {number} [halfHoverLinkSize]\n */\n _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 pos = linearMap(cursorValue, dataExtent, sizeExtent, true);\n var shapes = this._shapes;\n var indicator = shapes.indicator;\n\n if (!indicator) {\n return;\n }\n\n indicator.position[1] = pos;\n indicator.attr('invisible', false);\n indicator.setShape('points', createIndicatorPoints(!!rangeSymbol, halfHoverLinkSize, pos, itemSize[1]));\n var opts = {\n convertOpacityToAlpha: true\n };\n var color = this.getControllerVisual(cursorValue, 'color', opts);\n indicator.setStyle('fill', color); // Update handle label position.\n\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.barGroup);\n\n var orient = this._orient;\n indicatorLabel.setStyle({\n text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n textVerticalAlign: orient === 'horizontal' ? align : 'middle',\n textAlign: orient === 'horizontal' ? 'center' : align,\n x: textPoint[0],\n y: textPoint[1]\n });\n },\n\n /**\n * @private\n */\n _enableHoverLinkToSeries: function () {\n var self = this;\n\n this._shapes.barGroup.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.barGroup, true, true); // For hover link show when hover handle, which might be\n // below or upper than sizeExtent.\n\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 // When mouse is out of handle, hoverLink still need\n // to be displayed when realtime is set as false.\n self._hovering = false;\n !self._dragging && self._clearHoverLinkToSeries();\n });\n },\n\n /**\n * @private\n */\n _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 /**\n * @private\n */\n _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(); // For hover link show when hover handle, which might be below or upper than sizeExtent.\n\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)]; // Consider data range is out of visualMap range, see test/visualMap-continuous.html,\n // where china and india has very large population.\n\n hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity); // Do not show indicator when mouse is over handle,\n // otherwise labels overlap, especially when dragging.\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 } // When realtime is set as false, handles, which are in barGroup,\n // also trigger hoverLink, which help user to realize where they\n // focus on when dragging. (see test/heatmap-large.html)\n // When realtime is set as true, highlight will not show when hover\n // handle, because the label on handle, which displays a exact value\n // but not range, might mislead users.\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 /**\n * @private\n */\n _hoverLinkFromSeriesMouseOver: function (e) {\n var el = e.target;\n var visualMapModel = this.visualMapModel;\n\n if (!el || el.dataIndex == null) {\n return;\n }\n\n var dataModel = this.ecModel.getSeriesByIndex(el.seriesIndex);\n\n if (!visualMapModel.isTargetSeries(dataModel)) {\n return;\n }\n\n var data = dataModel.getData(el.dataType);\n var value = data.get(visualMapModel.getDataDimension(data), el.dataIndex, true);\n\n if (!isNaN(value)) {\n this._showIndicator(value, value);\n }\n },\n\n /**\n * @private\n */\n _hideIndicator: function () {\n var shapes = this._shapes;\n shapes.indicator && shapes.indicator.attr('invisible', true);\n shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n },\n\n /**\n * @private\n */\n _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 /**\n * @private\n */\n _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 /**\n * @private\n */\n _applyTransform: function (vertex, element, inverse, global) {\n var transform = graphic.getTransform(element, global ? null : this.group);\n return graphic[zrUtil.isArray(vertex) ? 'applyTransform' : 'transformDirection'](vertex, transform, inverse);\n },\n\n /**\n * @private\n */\n _dispatchHighDown: function (type, batch) {\n batch && batch.length && this.api.dispatchAction({\n type: type,\n batch: batch\n });\n },\n\n /**\n * @override\n */\n dispose: function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n },\n\n /**\n * @override\n */\n remove: function () {\n this._clearHoverLinkFromSeries();\n\n this._clearHoverLinkToSeries();\n }\n});\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 // Fot mobile devicem, prevent screen slider on the button.\n eventTool.stop(e.event);\n },\n ondragend: onDragEnd\n });\n}\n\nfunction createHandlePoints(handleIndex, textSize) {\n return handleIndex === 0 ? [[0, 0], [textSize, 0], [textSize, -textSize]] : [[0, 0], [textSize, 0], [textSize, textSize]];\n}\n\nfunction createIndicatorPoints(isRange, halfHoverLinkSize, pos, extentMax) {\n return isRange ? [// indicate range\n [0, -mathMin(halfHoverLinkSize, mathMax(pos, 0))], [HOVER_LINK_OUT, 0], [0, mathMin(halfHoverLinkSize, mathMax(extentMax - pos, 0))]] : [// indicate single value\n [0, 0], [5, -5], [5, 5]];\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\nvar _default = ContinuousView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"./config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrender = require(\"zrender/lib/zrender\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar colorTool = require(\"zrender/lib/tool/color\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar timsort = require(\"zrender/lib/core/timsort\");\n\nvar Eventful = require(\"zrender/lib/mixin/Eventful\");\n\nvar GlobalModel = require(\"./model/Global\");\n\nvar ExtensionAPI = require(\"./ExtensionAPI\");\n\nvar CoordinateSystemManager = require(\"./CoordinateSystem\");\n\nvar OptionManager = require(\"./model/OptionManager\");\n\nvar backwardCompat = require(\"./preprocessor/backwardCompat\");\n\nvar dataStack = require(\"./processor/dataStack\");\n\nvar ComponentModel = require(\"./model/Component\");\n\nvar SeriesModel = require(\"./model/Series\");\n\nvar ComponentView = require(\"./view/Component\");\n\nvar ChartView = require(\"./view/Chart\");\n\nvar graphic = require(\"./util/graphic\");\n\nvar modelUtil = require(\"./util/model\");\n\nvar _throttle = require(\"./util/throttle\");\n\nvar throttle = _throttle.throttle;\n\nvar seriesColor = require(\"./visual/seriesColor\");\n\nvar aria = require(\"./visual/aria\");\n\nvar loadingDefault = require(\"./loading/default\");\n\nvar Scheduler = require(\"./stream/Scheduler\");\n\nvar lightTheme = require(\"./theme/light\");\n\nvar darkTheme = require(\"./theme/dark\");\n\nrequire(\"./component/dataset\");\n\nvar mapDataStorage = require(\"./coord/geo/mapDataStorage\");\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*/\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar parseClassType = ComponentModel.parseClassType;\nvar version = '4.9.0';\nvar dependencies = {\n zrender: '4.3.2'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\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_POST_CHART_LAYOUT = 3500;\nvar PRIORITY_VISUAL_COMPONENT = 4000; // FIXME\n// necessary?\n\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar 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 }\n}; // Main process have three entries: `setOption`, `dispatchAction` and `resize`,\n// where they must not be invoked nestedly, except the only case: invoke\n// dispatchAction with updateMethod \"none\" in main process.\n// This flag is used to carry out this rule.\n// All events will be triggered out side main process (i.e. when !this[IN_MAIN_PROCESS]).\n\nvar IN_MAIN_PROCESS = '__flagInMainProcess';\nvar OPTION_UPDATED = '__optionUpdated';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\n\nfunction createRegisterEventWithLowercaseName(method, ignoreDisposed) {\n return function (eventName, handler, context) {\n if (!ignoreDisposed && this._disposed) {\n disposedWarning(this.id);\n return;\n } // Event name is all lowercase\n\n\n eventName = eventName && eventName.toLowerCase();\n Eventful.prototype[method].call(this, eventName, handler, context);\n };\n}\n/**\n * @module echarts~MessageCenter\n */\n\n\nfunction MessageCenter() {\n Eventful.call(this);\n}\n\nMessageCenter.prototype.on = createRegisterEventWithLowercaseName('on', true);\nMessageCenter.prototype.off = createRegisterEventWithLowercaseName('off', true);\nMessageCenter.prototype.one = createRegisterEventWithLowercaseName('one', true);\nzrUtil.mixin(MessageCenter, Eventful);\n/**\n * @module echarts~ECharts\n */\n\nfunction ECharts(dom, theme, opts) {\n opts = opts || {}; // Get theme by name\n\n if (typeof theme === 'string') {\n theme = themeStorage[theme];\n }\n /**\n * @type {string}\n */\n\n\n this.id;\n /**\n * Group id\n * @type {string}\n */\n\n this.group;\n /**\n * @type {HTMLElement}\n * @private\n */\n\n this._dom = dom;\n var defaultRenderer = 'canvas';\n\n /**\n * @type {module:zrender/ZRender}\n * @private\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 });\n /**\n * Expect 60 fps.\n * @type {Function}\n * @private\n */\n\n this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n var theme = zrUtil.clone(theme);\n theme && backwardCompat(theme, true);\n /**\n * @type {Object}\n * @private\n */\n\n this._theme = theme;\n /**\n * @type {Array.}\n * @private\n */\n\n this._chartsViews = [];\n /**\n * @type {Object.}\n * @private\n */\n\n this._chartsMap = {};\n /**\n * @type {Array.}\n * @private\n */\n\n this._componentsViews = [];\n /**\n * @type {Object.}\n * @private\n */\n\n this._componentsMap = {};\n /**\n * @type {module:echarts/CoordinateSystem}\n * @private\n */\n\n this._coordSysMgr = new CoordinateSystemManager();\n /**\n * @type {module:echarts/ExtensionAPI}\n * @private\n */\n\n var api = this._api = createExtensionAPI(this); // Sort on demand\n\n function prioritySortFunc(a, b) {\n return a.__prio - b.__prio;\n }\n\n timsort(visualFuncs, prioritySortFunc);\n timsort(dataProcessorFuncs, prioritySortFunc);\n /**\n * @type {module:echarts/stream/Scheduler}\n */\n\n this._scheduler = new Scheduler(this, api, dataProcessorFuncs, visualFuncs);\n Eventful.call(this, this._ecEventProcessor = new EventProcessor());\n /**\n * @type {module:echarts~MessageCenter}\n * @private\n */\n\n this._messageCenter = new MessageCenter(); // Init mouse events\n\n this._initEvents(); // In case some people write `window.onresize = chart.resize`\n\n\n this.resize = zrUtil.bind(this.resize, this); // Can't dispatch action during rendering procedure\n\n this._pendingActions = [];\n zr.animation.on('frame', this._onframe, this);\n bindRenderedEvent(zr, this); // ECharts instance can be used as value.\n\n zrUtil.setAsPrimitive(this);\n}\n\nvar echartsProto = ECharts.prototype;\n\nechartsProto._onframe = function () {\n if (this._disposed) {\n return;\n }\n\n var scheduler = this._scheduler; // Lazy update\n\n if (this[OPTION_UPDATED]) {\n var silent = this[OPTION_UPDATED].silent;\n this[IN_MAIN_PROCESS] = true;\n prepare(this);\n updateMethods.update.call(this);\n this[IN_MAIN_PROCESS] = false;\n this[OPTION_UPDATED] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n } // Avoid do both lazy update and progress in one frame.\n else if (scheduler.unfinished) {\n // Stream progress.\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); // Currently dataProcessorFuncs do not check threshold.\n\n scheduler.performDataProcessorTasks(ecModel);\n updateStreamModes(this, ecModel); // Do not update coordinate system here. Because that coord system update in\n // each frame is not a good user experience. So we follow the rule that\n // the extent of the coordinate system is determin in the first frame (the\n // frame is executed immedietely after task reset.\n // this._coordSysMgr.update(ecModel, api);\n // console.log('--- ec frame visual ---', remainTime);\n\n scheduler.performVisualTasks(ecModel);\n renderSeries(this, this._model, api, 'remain');\n remainTime -= +new Date() - startTime;\n } while (remainTime > 0 && scheduler.unfinished); // Call flush explicitly for trigger finished event.\n\n\n if (!scheduler.unfinished) {\n this._zr.flush();\n } // Else, zr flushing be ensue within the same frame,\n // because zr flushing is after onframe event.\n\n }\n};\n/**\n * @return {HTMLElement}\n */\n\n\nechartsProto.getDom = function () {\n return this._dom;\n};\n/**\n * @return {module:zrender~ZRender}\n */\n\n\nechartsProto.getZr = function () {\n return this._zr;\n};\n/**\n * Usage:\n * chart.setOption(option, notMerge, lazyUpdate);\n * chart.setOption(option, {\n * notMerge: ...,\n * lazyUpdate: ...,\n * silent: ...\n * });\n *\n * @param {Object} option\n * @param {Object|boolean} [opts] opts or notMerge.\n * @param {boolean} [opts.notMerge=false]\n * @param {boolean} [opts.lazyUpdate=false] Useful when setOption frequently.\n */\n\n\nechartsProto.setOption = function (option, notMerge, lazyUpdate) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var silent;\n\n if (isObject(notMerge)) {\n lazyUpdate = notMerge.lazyUpdate;\n silent = notMerge.silent;\n notMerge = notMerge.notMerge;\n }\n\n this[IN_MAIN_PROCESS] = 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, theme, optionManager);\n }\n\n this._model.setOption(option, optionPreprocessorFuncs);\n\n if (lazyUpdate) {\n this[OPTION_UPDATED] = {\n silent: silent\n };\n this[IN_MAIN_PROCESS] = false;\n } else {\n prepare(this);\n updateMethods.update.call(this); // Ensure zr refresh sychronously, and then pixel in canvas can be\n // fetched after `setOption`.\n\n this._zr.flush();\n\n this[OPTION_UPDATED] = false;\n this[IN_MAIN_PROCESS] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n }\n};\n/**\n * @DEPRECATED\n */\n\n\nechartsProto.setTheme = function () {\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n};\n/**\n * @return {module:echarts/model/Global}\n */\n\n\nechartsProto.getModel = function () {\n return this._model;\n};\n/**\n * @return {Object}\n */\n\n\nechartsProto.getOption = function () {\n return this._model && this._model.getOption();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getWidth = function () {\n return this._zr.getWidth();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getHeight = function () {\n return this._zr.getHeight();\n};\n/**\n * @return {number}\n */\n\n\nechartsProto.getDevicePixelRatio = function () {\n return this._zr.painter.dpr || window.devicePixelRatio || 1;\n};\n/**\n * Get canvas which has all thing rendered\n * @param {Object} opts\n * @param {string} [opts.backgroundColor]\n * @return {string}\n */\n\n\nechartsProto.getRenderedCanvas = function (opts) {\n if (!env.canvasSupported) {\n return;\n }\n\n opts = opts || {};\n opts.pixelRatio = opts.pixelRatio || 1;\n opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n var zr = this._zr; // var list = zr.storage.getDisplayList();\n // Stop animations\n // Never works before in init animation, so remove it.\n // zrUtil.each(list, function (el) {\n // el.stopAnimation(true);\n // });\n\n return zr.painter.getRenderedCanvas(opts);\n};\n/**\n * Get svg data url\n * @return {string}\n */\n\n\nechartsProto.getSvgDataURL = function () {\n if (!env.svgSupported) {\n return;\n }\n\n var zr = this._zr;\n var list = zr.storage.getDisplayList(); // Stop animations\n\n zrUtil.each(list, function (el) {\n el.stopAnimation(true);\n });\n return zr.painter.toDataURL();\n};\n/**\n * @return {string}\n * @param {Object} opts\n * @param {string} [opts.type='png']\n * @param {string} [opts.pixelRatio=1]\n * @param {string} [opts.backgroundColor]\n * @param {string} [opts.excludeComponents]\n */\n\n\nechartsProto.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 * @return {string}\n * @param {Object} opts\n * @param {string} [opts.type='png']\n * @param {string} [opts.pixelRatio=1]\n * @param {string} [opts.backgroundColor]\n */\n\n\nechartsProto.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 = MAX_NUMBER;\n var top = MAX_NUMBER;\n var right = -MAX_NUMBER;\n var bottom = -MAX_NUMBER;\n var canvasList = [];\n var dpr = 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 = mathMin(boundingRect.left, left);\n top = mathMin(boundingRect.top, top);\n right = mathMax(boundingRect.right, right);\n bottom = mathMax(boundingRect.bottom, bottom);\n canvasList.push({\n dom: canvas,\n left: boundingRect.left,\n top: boundingRect.top\n });\n }\n });\n left *= dpr;\n top *= dpr;\n right *= dpr;\n bottom *= dpr;\n var width = right - left;\n var height = bottom - top;\n var targetCanvas = zrUtil.createCanvas();\n var zr = zrender.init(targetCanvas, {\n renderer: isSvg ? 'svg' : 'canvas'\n });\n zr.resize({\n width: width,\n height: height\n });\n\n if (isSvg) {\n var content = '';\n each(canvasList, function (item) {\n var x = item.left - left;\n var y = item.top - top;\n content += '' + item.dom + '';\n });\n zr.painter.getSvgRoot().innerHTML = content;\n\n if (opts.connectedBackgroundColor) {\n zr.painter.setBackgroundColor(opts.connectedBackgroundColor);\n }\n\n zr.refreshImmediately();\n return zr.painter.toDataURL();\n } else {\n // Background between the charts\n if (opts.connectedBackgroundColor) {\n zr.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, function (item) {\n var img = new graphic.Image({\n style: {\n x: item.left * dpr - left,\n y: item.top * dpr - top,\n image: item.dom\n }\n });\n zr.add(img);\n });\n zr.refreshImmediately();\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n }\n } else {\n return this.getDataURL(opts);\n }\n};\n/**\n * Convert from logical coordinate system to pixel coordinate system.\n * See CoordinateSystem#convertToPixel.\n * @param {string|Object} finder\n * If string, e.g., 'geo', means {geoIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * geoIndex / geoId, geoName,\n * bmapIndex / bmapId / bmapName,\n * xAxisIndex / xAxisId / xAxisName,\n * yAxisIndex / yAxisId / yAxisName,\n * gridIndex / gridId / gridName,\n * ... (can be extended)\n * }\n * @param {Array|number} value\n * @return {Array|number} result\n */\n\n\nechartsProto.convertToPixel = zrUtil.curry(doConvertPixel, 'convertToPixel');\n/**\n * Convert from pixel coordinate system to logical coordinate system.\n * See CoordinateSystem#convertFromPixel.\n * @param {string|Object} finder\n * If string, e.g., 'geo', means {geoIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * geoIndex / geoId / geoName,\n * bmapIndex / bmapId / bmapName,\n * xAxisIndex / xAxisId / xAxisName,\n * yAxisIndex / yAxisId / yAxisName\n * gridIndex / gridId / gridName,\n * ... (can be extended)\n * }\n * @param {Array|number} value\n * @return {Array|number} result\n */\n\nechartsProto.convertFromPixel = zrUtil.curry(doConvertPixel, 'convertFromPixel');\n\nfunction doConvertPixel(methodName, finder, value) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n var ecModel = this._model;\n\n var coordSysList = this._coordSysMgr.getCoordinateSystems();\n\n var result;\n finder = 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, finder, value)) != null) {\n return result;\n }\n }\n}\n/**\n * Is the specified coordinate systems or components contain the given pixel point.\n * @param {string|Object} finder\n * If string, e.g., 'geo', means {geoIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * geoIndex / geoId / geoName,\n * bmapIndex / bmapId / bmapName,\n * xAxisIndex / xAxisId / xAxisName,\n * yAxisIndex / yAxisId / yAxisName,\n * gridIndex / gridId / gridName,\n * ... (can be extended)\n * }\n * @param {Array|number} value\n * @return {boolean} result\n */\n\n\nechartsProto.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 finder = modelUtil.parseFinder(ecModel, finder);\n zrUtil.each(finder, 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 |= !!coordSys.containPoint(value);\n } else if (key === 'seriesModels') {\n var view = this._chartsMap[model.__viewId];\n\n if (view && view.containPoint) {\n result |= view.containPoint(value, model);\n } else {}\n } else {}\n }, this);\n }, this);\n return !!result;\n};\n/**\n * Get visual from series or data.\n * @param {string|Object} finder\n * If string, e.g., 'series', means {seriesIndex: 0}.\n * If Object, could contain some of these properties below:\n * {\n * seriesIndex / seriesId / seriesName,\n * dataIndex / dataIndexInside\n * }\n * If dataIndex is not specified, series visual will be fetched,\n * but not data item visual.\n * If all of seriesIndex, seriesId, seriesName are not specified,\n * visual will be fetched from first series.\n * @param {string} visualType 'color', 'symbol', 'symbolSize'\n */\n\n\nechartsProto.getVisual = function (finder, visualType) {\n var ecModel = this._model;\n finder = modelUtil.parseFinder(ecModel, finder, {\n defaultMainType: 'series'\n });\n var seriesModel = finder.seriesModel;\n var data = seriesModel.getData();\n var dataIndexInside = finder.hasOwnProperty('dataIndexInside') ? finder.dataIndexInside : finder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(finder.dataIndex) : null;\n return dataIndexInside != null ? data.getItemVisual(dataIndexInside, visualType) : data.getVisual(visualType);\n};\n/**\n * Get view of corresponding component model\n * @param {module:echarts/model/Component} componentModel\n * @return {module:echarts/view/Component}\n */\n\n\nechartsProto.getViewOfComponentModel = function (componentModel) {\n return this._componentsMap[componentModel.__viewId];\n};\n/**\n * Get view of corresponding series model\n * @param {module:echarts/model/Series} seriesModel\n * @return {module:echarts/view/Chart}\n */\n\n\nechartsProto.getViewOfSeriesModel = function (seriesModel) {\n return this._chartsMap[seriesModel.__viewId];\n};\n\nvar updateMethods = {\n prepareAndUpdate: function (payload) {\n prepare(this);\n updateMethods.update.call(this, payload);\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n update: function (payload) {\n // console.profile && console.profile('update');\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; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n scheduler.restoreData(ecModel, payload);\n scheduler.performSeriesTasks(ecModel); // TODO\n // Save total ecModel here for undo/redo (after restoring data and before processing data).\n // Undo (restoration of total ecModel) can be carried out in 'action' or outside API call.\n // Create new coordinate system each update\n // In LineView may save the old coordinate system and use it to get the orignal point\n\n coordSysMgr.create(ecModel, api);\n scheduler.performDataProcessorTasks(ecModel, payload); // Current stream render is not supported in data process. So we can update\n // stream modes after data processing, where the filtered data is used to\n // deteming whether use progressive rendering.\n\n updateStreamModes(this, ecModel); // We update stream modes before coordinate system updated, then the modes info\n // can be fetched when coord sys updating (consider the barGrid extent fix). But\n // the drawback is the full coord info can not be fetched. Fortunately this full\n // coord is not requied in stream mode updater currently.\n\n coordSysMgr.update(ecModel, api);\n clearColorPalette(ecModel);\n scheduler.performVisualTasks(ecModel, payload);\n render(this, ecModel, api, payload); // Set background\n\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent'; // In IE8\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\n performPostUpdateFuncs(ecModel, api); // console.profile && console.profileEnd('update');\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n updateTransform: function (payload) {\n var ecModel = this._model;\n var ecIns = this;\n var api = this._api; // update before setOption\n\n if (!ecModel) {\n return;\n } // ChartView.markUpdateMethod(payload, 'updateTransform');\n\n\n var componentDirtyList = [];\n ecModel.eachComponent(function (componentType, componentModel) {\n var componentView = ecIns.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 = ecIns._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); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n // this._scheduler.performVisualTasks(ecModel, payload, 'layout', true);\n\n this._scheduler.performVisualTasks(ecModel, payload, {\n setDirty: true,\n dirtyMap: seriesDirtyMap\n }); // Currently, not call render of components. Geo render cost a lot.\n // renderComponents(ecIns, ecModel, api, payload, componentDirtyList);\n\n\n renderSeries(ecIns, ecModel, api, payload, seriesDirtyMap);\n performPostUpdateFuncs(ecModel, this._api);\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n updateView: function (payload) {\n var ecModel = this._model; // update before setOption\n\n if (!ecModel) {\n return;\n }\n\n ChartView.markUpdateMethod(payload, 'updateView');\n clearColorPalette(ecModel); // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\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\n /**\n * @param {Object} payload\n * @private\n */\n updateVisual: function (payload) {\n updateMethods.update.call(this, payload); // var ecModel = this._model;\n // // update before setOption\n // if (!ecModel) {\n // return;\n // }\n // ChartView.markUpdateMethod(payload, 'updateVisual');\n // clearColorPalette(ecModel);\n // // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n // this._scheduler.performVisualTasks(ecModel, payload, {visualType: 'visual', setDirty: true});\n // render(this, this._model, this._api, payload);\n // performPostUpdateFuncs(ecModel, this._api);\n },\n\n /**\n * @param {Object} payload\n * @private\n */\n updateLayout: function (payload) {\n updateMethods.update.call(this, payload); // var ecModel = this._model;\n // // update before setOption\n // if (!ecModel) {\n // return;\n // }\n // ChartView.markUpdateMethod(payload, 'updateLayout');\n // // Keep pipe to the exist pipeline because it depends on the render task of the full pipeline.\n // // this._scheduler.performVisualTasks(ecModel, payload, 'layout', true);\n // this._scheduler.performVisualTasks(ecModel, payload, {setDirty: true});\n // render(this, this._model, this._api, payload);\n // performPostUpdateFuncs(ecModel, this._api);\n }\n};\n\nfunction prepare(ecIns) {\n var ecModel = ecIns._model;\n var scheduler = ecIns._scheduler;\n scheduler.restorePipelines(ecModel);\n scheduler.prepareStageTasks();\n prepareView(ecIns, 'component', ecModel, scheduler);\n prepareView(ecIns, 'chart', ecModel, scheduler);\n scheduler.plan();\n}\n/**\n * @private\n */\n\n\nfunction updateDirectly(ecIns, method, payload, mainType, subType) {\n var ecModel = ecIns._model; // broadcast\n\n if (!mainType) {\n // FIXME\n // Chart will not be update directly here, except set dirty.\n // But there is no such scenario now.\n each(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); // subType may be '' by parseClassType;\n\n var excludeSeriesId = payload.excludeSeriesId;\n\n if (excludeSeriesId != null) {\n excludeSeriesId = zrUtil.createHashMap(modelUtil.normalizeToArray(excludeSeriesId));\n } // If dispatchAction before setOption, do nothing.\n\n\n ecModel && ecModel.eachComponent(condition, function (model) {\n if (!excludeSeriesId || excludeSeriesId.get(model.id) == null) {\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 * Resize the chart\n * @param {Object} opts\n * @param {number} [opts.width] Can be 'auto' (the same as null/undefined)\n * @param {number} [opts.height] Can be 'auto' (the same as null/undefined)\n * @param {boolean} [opts.silent=false]\n */\n\n\nechartsProto.resize = function (opts) {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this._zr.resize(opts);\n\n var ecModel = this._model; // Resize loading effect\n\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] = true;\n optionChanged && prepare(this);\n updateMethods.update.call(this);\n this[IN_MAIN_PROCESS] = false;\n flushPendingActions.call(this, silent);\n triggerUpdatedEvent.call(this, silent);\n};\n\nfunction updateStreamModes(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 * Show loading effect\n * @param {string} [name='default']\n * @param {Object} [cfg]\n */\n\n\nechartsProto.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 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 * Hide loading effect\n */\n\n\nechartsProto.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 * @param {Object} eventObj\n * @return {Object}\n */\n\n\nechartsProto.makeActionFromEvent = function (eventObj) {\n var payload = zrUtil.extend({}, eventObj);\n payload.type = eventActionMap[eventObj.type];\n return payload;\n};\n/**\n * @pubilc\n * @param {Object} payload\n * @param {string} [payload.type] Action type\n * @param {Object|boolean} [opt] If pass boolean, means opt.silent\n * @param {boolean} [opt.silent=false] Whether trigger events.\n * @param {boolean} [opt.flush=undefined]\n * true: Flush immediately, and then pixel in canvas can be fetched\n * immediately. Caution: it might affect performance.\n * false: Not flush.\n * undefined: Auto decide whether perform flush.\n */\n\n\nechartsProto.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 } // Avoid dispatch action before setOption. Especially in `connect`.\n\n\n if (!this._model) {\n return;\n } // May dispatchAction in rendering procedure\n\n\n if (this[IN_MAIN_PROCESS]) {\n this._pendingActions.push(payload);\n\n return;\n }\n\n doDispatchAction.call(this, payload, opt.silent);\n\n if (opt.flush) {\n this._zr.flush(true);\n } else if (opt.flush !== false && env.browser.weChat) {\n // In WeChat embeded browser, `requestAnimationFrame` and `setInterval`\n // hang when sliding page (on touch event), which cause that zr does not\n // refresh util user interaction finished, which is not expected.\n // But `dispatchAction` may be called too frequently when pan on touch\n // screen, which impacts performance if do not throttle them.\n this._throttledZrFlush();\n }\n\n flushPendingActions.call(this, opt.silent);\n triggerUpdatedEvent.call(this, opt.silent);\n};\n\nfunction doDispatchAction(payload, silent) {\n var payloadType = payload.type;\n var escapeConnect = payload.escapeConnect;\n var actionWrap = actions[payloadType];\n var actionInfo = actionWrap.actionInfo;\n var cptType = (actionInfo.update || 'update').split(':');\n var updateMethod = cptType.pop();\n cptType = cptType[0] != null && parseClassType(cptType[0]);\n this[IN_MAIN_PROCESS] = true;\n var payloads = [payload];\n var batched = false; // Batch action\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 isHighDown = payloadType === 'highlight' || payloadType === 'downplay';\n each(payloads, function (batchItem) {\n // Action can specify the event by return it.\n eventObj = actionWrap.action(batchItem, this._model, this._api); // Emit event outside\n\n eventObj = eventObj || zrUtil.extend({}, batchItem); // Convert type to eventType\n\n eventObj.type = actionInfo.event || eventObj.type;\n eventObjBatch.push(eventObj); // light update does not perform data process, layout and visual.\n\n if (isHighDown) {\n // method, payload, mainType, subType\n updateDirectly(this, updateMethod, batchItem, 'series');\n } else if (cptType) {\n updateDirectly(this, updateMethod, batchItem, cptType.main, cptType.sub);\n }\n }, this);\n\n if (updateMethod !== 'none' && !isHighDown && !cptType) {\n // Still dirty\n if (this[OPTION_UPDATED]) {\n // FIXME Pass payload ?\n prepare(this);\n updateMethods.update.call(this, payload);\n this[OPTION_UPDATED] = false;\n } else {\n updateMethods[updateMethod].call(this, payload);\n }\n } // Follow the rule of action batch\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] = false;\n !silent && this._messageCenter.trigger(eventObj.type, eventObj);\n}\n\nfunction flushPendingActions(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\nfunction triggerUpdatedEvent(silent) {\n !silent && this.trigger('updated');\n}\n/**\n * Event `rendered` is triggered when zr\n * rendered. It is useful for realtime\n * snapshot (reflect animation).\n *\n * Event `finished` is triggered when:\n * (1) zrender rendering finished.\n * (2) initial animation finished.\n * (3) progressive rendering finished.\n * (4) no pending action.\n * (5) no delayed setOption needs to be processed.\n */\n\n\nfunction bindRenderedEvent(zr, ecIns) {\n zr.on('rendered', function () {\n ecIns.trigger('rendered'); // The `finished` event should not be triggered repeatly,\n // so it should only be triggered when rendering indeed happend\n // in zrender. (Consider the case that dipatchAction is keep\n // triggering when mouse move).\n\n if ( // Although zr is dirty if initial animation is not finished\n // and this checking is called on frame, we also check\n // animation finished for robustness.\n zr.animation.isFinished() && !ecIns[OPTION_UPDATED] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n ecIns.trigger('finished');\n }\n });\n}\n/**\n * @param {Object} params\n * @param {number} params.seriesIndex\n * @param {Array|TypedArray} params.data\n */\n\n\nechartsProto.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 seriesModel.appendData(params); // Note: `appendData` does not support that update extent of coordinate\n // system, util some scenario require that. In the expected usage of\n // `appendData`, the initial extent of coordinate system should better\n // be fixed by axis `min`/`max` setting or initial data, otherwise if\n // the extent changed while `appendData`, the location of the painted\n // graphic elements have to be changed, which make the usage of\n // `appendData` meaningless.\n\n this._scheduler.unfinished = true;\n};\n/**\n * Register event\n * @method\n */\n\n\nechartsProto.on = createRegisterEventWithLowercaseName('on', false);\nechartsProto.off = createRegisterEventWithLowercaseName('off', false);\nechartsProto.one = createRegisterEventWithLowercaseName('one', false);\n/**\n * Prepare view instances of charts and components\n * @param {module:echarts/model/Global} ecModel\n * @private\n */\n\nfunction prepareView(ecIns, type, ecModel, scheduler) {\n var isComponent = type === 'component';\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 // Consider: id same and type changed.\n var viewId = '_ec_' + model.id + '_' + model.type;\n var view = 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 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 delete viewMap[view.__id];\n view.__id = view.group.__ecComponentInfo = null;\n } else {\n i++;\n }\n }\n} // /**\n// * Encode visual infomation from data after data processing\n// *\n// * @param {module:echarts/model/Global} ecModel\n// * @param {object} layout\n// * @param {boolean} [layoutFilter] `true`: only layout,\n// * `false`: only not layout,\n// * `null`/`undefined`: all.\n// * @param {string} taskBaseTag\n// * @private\n// */\n// function startVisualEncoding(ecIns, ecModel, api, payload, layoutFilter) {\n// each(visualFuncs, function (visual, index) {\n// var isLayout = visual.isLayout;\n// if (layoutFilter == null\n// || (layoutFilter === false && !isLayout)\n// || (layoutFilter === true && isLayout)\n// ) {\n// visual.func(ecModel, api, payload);\n// }\n// });\n// }\n\n\nfunction clearColorPalette(ecModel) {\n ecModel.clearColorPalette();\n ecModel.eachSeries(function (seriesModel) {\n seriesModel.clearColorPalette();\n });\n}\n\nfunction render(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); // Remove groups of unrendered charts\n\n each(ecIns._chartsViews, function (chart) {\n if (!chart.__alive) {\n chart.remove(ecModel, api);\n }\n });\n}\n\nfunction renderComponents(ecIns, ecModel, api, payload, dirtyList) {\n each(dirtyList || ecIns._componentsViews, function (componentView) {\n var componentModel = componentView.__model;\n componentView.render(componentModel, ecModel, api, payload);\n updateZ(componentModel, componentView);\n });\n}\n/**\n * Render each chart and component\n * @private\n */\n\n\nfunction renderSeries(ecIns, ecModel, api, payload, dirtyMap) {\n // Render all charts\n var scheduler = ecIns._scheduler;\n var unfinished;\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\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n renderTask.dirty();\n }\n\n unfinished |= renderTask.perform(scheduler.getPerformArgs(renderTask));\n chartView.group.silent = !!seriesModel.get('silent');\n updateZ(seriesModel, chartView);\n updateBlend(seriesModel, chartView);\n });\n scheduler.unfinished |= unfinished; // If use hover layer\n\n updateHoverLayerStatus(ecIns, ecModel); // Add aria\n\n aria(ecIns._zr.dom, ecModel);\n}\n\nfunction performPostUpdateFuncs(ecModel, api) {\n each(postUpdateFuncs, function (func) {\n func(ecModel, api);\n });\n}\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n/**\n * @private\n */\n\nechartsProto._initEvents = function () {\n each(MOUSE_EVENT_NAMES, function (eveName) {\n var handler = function (e) {\n var ecModel = this.getModel();\n var el = e.target;\n var params;\n var isGlobalOut = eveName === 'globalout'; // no e.target when 'globalout'.\n\n if (isGlobalOut) {\n params = {};\n } else if (el && el.dataIndex != null) {\n var dataModel = el.dataModel || ecModel.getSeriesByIndex(el.seriesIndex);\n params = dataModel && dataModel.getDataParams(el.dataIndex, el.dataType, el) || {};\n } // If element has custom eventData of components\n else if (el && el.eventData) {\n params = zrUtil.extend({}, el.eventData);\n } // Contract: if params prepared in mouse event,\n // these properties must be specified:\n // {\n // componentType: string (component main type)\n // componentIndex: number\n // }\n // Otherwise event query can not work.\n\n\n if (params) {\n var componentType = params.componentType;\n var componentIndex = params.componentIndex; // Special handling for historic reason: when trigger by\n // markLine/markPoint/markArea, the componentType is\n // 'markLine'/'markPoint'/'markArea', but we should better\n // enable them to be queried by seriesIndex, since their\n // option is set in each series.\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 params.event = e;\n params.type = eveName;\n this._ecEventProcessor.eventInfo = {\n targetEl: el,\n packedEvent: params,\n model: model,\n view: view\n };\n this.trigger(eveName, params);\n }\n }; // Consider that some component (like tooltip, brush, ...)\n // register zr event handler, but user event handler might\n // do anything, such as call `setOption` or `dispatchAction`,\n // which probably update any of the content and probably\n // cause problem if it is called previous other inner handlers.\n\n\n handler.zrEventfulCallAtLast = true;\n\n this._zr.on(eveName, handler, this);\n }, this);\n each(eventActionMap, function (actionType, eventType) {\n this._messageCenter.on(eventType, function (event) {\n this.trigger(eventType, event);\n }, this);\n }, this);\n};\n/**\n * @return {boolean}\n */\n\n\nechartsProto.isDisposed = function () {\n return this._disposed;\n};\n/**\n * Clear\n */\n\n\nechartsProto.clear = function () {\n if (this._disposed) {\n disposedWarning(this.id);\n return;\n }\n\n this.setOption({\n series: []\n }, true);\n};\n/**\n * Dispose instance\n */\n\n\nechartsProto.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 }); // Dispose after all views disposed\n\n this._zr.dispose();\n\n delete instances[this.id];\n};\n\nzrUtil.mixin(ECharts, Eventful);\n\nfunction disposedWarning(id) {}\n\nfunction updateHoverLayerStatus(ecIns, ecModel) {\n var zr = ecIns._zr;\n var storage = zr.storage;\n var elCount = 0;\n storage.traverse(function (el) {\n elCount++;\n });\n\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node) {\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 // Don't switch back.\n el.useHoverLayer = true;\n });\n }\n });\n }\n}\n/**\n * Update chart progressive and blend.\n * @param {module:echarts/model/Series|module:echarts/model/Component} model\n * @param {module:echarts/view/Component|module:echarts/view/Chart} view\n */\n\n\nfunction updateBlend(seriesModel, chartView) {\n var blendMode = seriesModel.get('blendMode') || null;\n chartView.group.traverse(function (el) {\n // FIXME marker and other components\n if (!el.isGroup) {\n // Only set if blendMode is changed. In case element is incremental and don't wan't to rerender.\n if (el.style.blend !== blendMode) {\n el.setStyle('blend', blendMode);\n }\n }\n\n if (el.eachPendingDisplayable) {\n el.eachPendingDisplayable(function (displayable) {\n displayable.setStyle('blend', blendMode);\n });\n }\n });\n}\n/**\n * @param {module:echarts/model/Series|module:echarts/model/Component} model\n * @param {module:echarts/view/Component|module:echarts/view/Chart} view\n */\n\n\nfunction updateZ(model, view) {\n var z = model.get('z');\n var zlevel = model.get('zlevel'); // Set z and zlevel\n\n view.group.traverse(function (el) {\n if (el.type !== 'group') {\n z != null && (el.z = z);\n zlevel != null && (el.zlevel = zlevel);\n }\n });\n}\n\nfunction createExtensionAPI(ecInstance) {\n var coordSysMgr = ecInstance._coordSysMgr;\n return zrUtil.extend(new ExtensionAPI(ecInstance), {\n // Inject methods\n getCoordinateSystems: zrUtil.bind(coordSysMgr.getCoordinateSystems, coordSysMgr),\n getComponentByElement: function (el) {\n while (el) {\n var modelInfo = el.__ecComponentInfo;\n\n if (modelInfo != null) {\n return ecInstance._model.getComponent(modelInfo.mainType, modelInfo.index);\n }\n\n el = el.parent;\n }\n }\n });\n}\n/**\n * @class\n * Usage of query:\n * `chart.on('click', query, handler);`\n * The `query` can be:\n * + The component type query string, only `mainType` or `mainType.subType`,\n * like: 'xAxis', 'series', 'xAxis.category' or 'series.line'.\n * + The component query object, like:\n * `{seriesIndex: 2}`, `{seriesName: 'xx'}`, `{seriesId: 'some'}`,\n * `{xAxisIndex: 2}`, `{xAxisName: 'xx'}`, `{xAxisId: 'some'}`.\n * + The data query object, like:\n * `{dataIndex: 123}`, `{dataType: 'link'}`, `{name: 'some'}`.\n * + The other query object (cmponent customized query), like:\n * `{element: 'some'}` (only available in custom series).\n *\n * Caveat: If a prop in the `query` object is `null/undefined`, it is the\n * same as there is no such prop in the `query` object.\n */\n\n\nfunction EventProcessor() {\n // These info required: targetEl, packedEvent, model, view\n this.eventInfo;\n}\n\nEventProcessor.prototype = {\n constructor: EventProcessor,\n normalizeQuery: function (query) {\n var cptQuery = {};\n var dataQuery = {};\n var otherQuery = {}; // `query` is `mainType` or `mainType.subType` of component.\n\n if (zrUtil.isString(query)) {\n var condCptType = parseClassType(query); // `.main` and `.sub` may be ''.\n\n cptQuery.mainType = condCptType.main || null;\n cptQuery.subType = condCptType.sub || null;\n } // `query` is an object, convert to {mainType, index, name, id}.\n else {\n // `xxxIndex`, `xxxName`, `xxxId`, `name`, `dataIndex`, `dataType` is reserved,\n // can not be used in `compomentModel.filterForExposedEvent`.\n var suffixes = ['Index', 'Name', 'Id'];\n var dataKeys = {\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.length; i++) {\n var propSuffix = suffixes[i];\n var suffixPos = key.lastIndexOf(propSuffix);\n\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n var mainType = key.slice(0, suffixPos); // Consider `dataIndex`.\n\n if (mainType !== 'data') {\n cptQuery.mainType = mainType;\n cptQuery[propSuffix.toLowerCase()] = val;\n reserved = true;\n }\n }\n }\n\n if (dataKeys.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 filter: function (eventType, query, args) {\n // They should be assigned before each trigger call.\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; // For event like 'globalout'.\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 afterTrigger: function () {\n // Make sure the eventInfo wont be used in next trigger.\n this.eventInfo = null;\n }\n};\n/**\n * @type {Object} key: actionType.\n * @inner\n */\n\nvar actions = {};\n/**\n * Map eventType to actionType\n * @type {Object}\n */\n\nvar eventActionMap = {};\n/**\n * Data processor functions of each stage\n * @type {Array.>}\n * @inner\n */\n\nvar dataProcessorFuncs = [];\n/**\n * @type {Array.}\n * @inner\n */\n\nvar optionPreprocessorFuncs = [];\n/**\n * @type {Array.}\n * @inner\n */\n\nvar postUpdateFuncs = [];\n/**\n * Visual encoding functions of each stage\n * @type {Array.>}\n */\n\nvar visualFuncs = [];\n/**\n * Theme storage\n * @type {Object.}\n */\n\nvar themeStorage = {};\n/**\n * Loading effects\n */\n\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = new Date() - 0;\nvar groupIdBase = new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\n\nfunction enableConnect(chart) {\n var STATUS_PENDING = 0;\n var STATUS_UPDATING = 1;\n var STATUS_UPDATED = 2;\n var STATUS_KEY = '__connectUpdateStatus';\n\n function updateConnectedChartsStatus(charts, status) {\n for (var i = 0; i < charts.length; i++) {\n var otherChart = charts[i];\n otherChart[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[STATUS_KEY] !== STATUS_PENDING) {\n if (event && event.escapeConnect) {\n return;\n }\n\n var action = chart.makeActionFromEvent(event);\n var otherCharts = [];\n each(instances, function (otherChart) {\n if (otherChart !== chart && otherChart.group === chart.group) {\n otherCharts.push(otherChart);\n }\n });\n updateConnectedChartsStatus(otherCharts, STATUS_PENDING);\n each(otherCharts, function (otherChart) {\n if (otherChart[STATUS_KEY] !== STATUS_UPDATING) {\n otherChart.dispatchAction(action);\n }\n });\n updateConnectedChartsStatus(otherCharts, STATUS_UPDATED);\n }\n });\n });\n}\n/**\n * @param {HTMLElement} dom\n * @param {Object} [theme]\n * @param {Object} opts\n * @param {number} [opts.devicePixelRatio] Use window.devicePixelRatio by default\n * @param {string} [opts.renderer] Can choose 'canvas' or 'svg' to render the chart.\n * @param {number} [opts.width] Use clientWidth of the input `dom` by default.\n * Can be 'auto' (the same as null/undefined)\n * @param {number} [opts.height] Use clientHeight of the input `dom` by default.\n * Can be 'auto' (the same as null/undefined)\n */\n\n\nfunction init(dom, theme, opts) {\n var existInstance = getInstanceByDom(dom);\n\n if (existInstance) {\n return existInstance;\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 return chart;\n}\n/**\n * @return {string|Array.} groupId\n */\n\n\nfunction connect(groupId) {\n // Is array of charts\n if (zrUtil.isArray(groupId)) {\n var charts = groupId;\n groupId = null; // If any chart has group\n\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}\n/**\n * @DEPRECATED\n * @return {string} groupId\n */\n\n\nfunction disConnect(groupId) {\n connectedGroups[groupId] = false;\n}\n/**\n * @return {string} groupId\n */\n\n\nvar disconnect = disConnect;\n/**\n * Dispose a chart instance\n * @param {module:echarts~ECharts|HTMLDomElement|string} chart\n */\n\nfunction dispose(chart) {\n if (typeof chart === 'string') {\n chart = instances[chart];\n } else if (!(chart instanceof ECharts)) {\n // Try to treat as dom\n chart = getInstanceByDom(chart);\n }\n\n if (chart instanceof ECharts && !chart.isDisposed()) {\n chart.dispose();\n }\n}\n/**\n * @param {HTMLElement} dom\n * @return {echarts~ECharts}\n */\n\n\nfunction getInstanceByDom(dom) {\n return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\n/**\n * @param {string} key\n * @return {echarts~ECharts}\n */\n\n\nfunction getInstanceById(key) {\n return instances[key];\n}\n/**\n * Register theme\n */\n\n\nfunction registerTheme(name, theme) {\n themeStorage[name] = theme;\n}\n/**\n * Register option preprocessor\n * @param {Function} preprocessorFunc\n */\n\n\nfunction registerPreprocessor(preprocessorFunc) {\n optionPreprocessorFuncs.push(preprocessorFunc);\n}\n/**\n * @param {number} [priority=1000]\n * @param {Object|Function} processor\n */\n\n\nfunction registerProcessor(priority, processor) {\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_FILTER);\n}\n/**\n * Register postUpdater\n * @param {Function} postUpdateFunc\n */\n\n\nfunction registerPostUpdate(postUpdateFunc) {\n postUpdateFuncs.push(postUpdateFunc);\n}\n/**\n * Usage:\n * registerAction('someAction', 'someEvent', function () { ... });\n * registerAction('someAction', function () { ... });\n * registerAction(\n * {type: 'someAction', event: 'someEvent', update: 'updateView'},\n * function () { ... }\n * );\n *\n * @param {(string|Object)} actionInfo\n * @param {string} actionInfo.type\n * @param {string} [actionInfo.event]\n * @param {string} [actionInfo.update]\n * @param {string} [eventName]\n * @param {Function} action\n */\n\n\nfunction 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]; // Event name is all lowercase\n\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n eventName = actionInfo.event; // Validate action type and event name.\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}\n/**\n * @param {string} type\n * @param {*} CoordinateSystem\n */\n\n\nfunction registerCoordinateSystem(type, CoordinateSystem) {\n CoordinateSystemManager.register(type, CoordinateSystem);\n}\n/**\n * Get dimensions of specified coordinate system.\n * @param {string} type\n * @return {Array.}\n */\n\n\nfunction getCoordinateSystemDimensions(type) {\n var coordSysCreator = CoordinateSystemManager.get(type);\n\n if (coordSysCreator) {\n return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n }\n}\n/**\n * Layout is a special stage of visual encoding\n * Most visual encoding like color are common for different chart\n * But each chart has it's own layout algorithm\n *\n * @param {number} [priority=1000]\n * @param {Function} layoutTask\n */\n\n\nfunction registerLayout(priority, layoutTask) {\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n/**\n * @param {number} [priority=3000]\n * @param {module:echarts/stream/Task} visualTask\n */\n\n\nfunction registerVisual(priority, visualTask) {\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n/**\n * @param {Object|Function} fn: {seriesType, createOnAllSeries, performRawSeries, reset}\n */\n\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n if (isFunction(priority) || isObject(priority)) {\n fn = priority;\n priority = defaultPriority;\n }\n\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n stageHandler.__prio = priority;\n stageHandler.__raw = fn;\n targetList.push(stageHandler);\n return stageHandler;\n}\n/**\n * @param {string} name\n */\n\n\nfunction registerLoading(name, loadingFx) {\n loadingEffects[name] = loadingFx;\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendComponentModel(opts\n/*, superClass*/\n) {\n // var Clazz = ComponentModel;\n // if (superClass) {\n // var classType = parseClassType(superClass);\n // Clazz = ComponentModel.getClass(classType.main, classType.sub, true);\n // }\n return ComponentModel.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendComponentView(opts\n/*, superClass*/\n) {\n // var Clazz = ComponentView;\n // if (superClass) {\n // var classType = parseClassType(superClass);\n // Clazz = ComponentView.getClass(classType.main, classType.sub, true);\n // }\n return ComponentView.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendSeriesModel(opts\n/*, superClass*/\n) {\n // var Clazz = SeriesModel;\n // if (superClass) {\n // superClass = 'series.' + superClass.replace('series.', '');\n // var classType = parseClassType(superClass);\n // Clazz = ComponentModel.getClass(classType.main, classType.sub, true);\n // }\n return SeriesModel.extend(opts);\n}\n/**\n * @param {Object} opts\n * @param {string} [superClass]\n */\n\n\nfunction extendChartView(opts\n/*, superClass*/\n) {\n // var Clazz = ChartView;\n // if (superClass) {\n // superClass = superClass.replace('series.', '');\n // var classType = parseClassType(superClass);\n // Clazz = ChartView.getClass(classType.main, true);\n // }\n return ChartView.extend(opts);\n}\n/**\n * ZRender need a canvas context to do measureText.\n * But in node environment canvas may be created by node-canvas.\n * So we need to specify how to create a canvas instead of using document.createElement('canvas')\n *\n * Be careful of using it in the browser.\n *\n * @param {Function} creator\n * @example\n * var Canvas = require('canvas');\n * var echarts = require('echarts');\n * echarts.setCanvasCreator(function () {\n * // Small size is enough.\n * return new Canvas(32, 32);\n * });\n */\n\n\nfunction setCanvasCreator(creator) {\n zrUtil.$override('createCanvas', creator);\n}\n/**\n * @param {string} mapName\n * @param {Array.|Object|string} geoJson\n * @param {Object} [specialAreas]\n *\n * @example GeoJSON\n * $.get('USA.json', function (geoJson) {\n * echarts.registerMap('USA', geoJson);\n * // Or\n * echarts.registerMap('USA', {\n * geoJson: geoJson,\n * specialAreas: {}\n * })\n * });\n *\n * $.get('airport.svg', function (svg) {\n * echarts.registerMap('airport', {\n * svg: svg\n * }\n * });\n *\n * echarts.registerMap('eu', [\n * {svg: eu-topographic.svg},\n * {geoJSON: eu.json}\n * ])\n */\n\n\nfunction registerMap(mapName, geoJson, specialAreas) {\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\n/**\n * @param {string} mapName\n * @return {Object}\n */\n\n\nfunction getMap(mapName) {\n // For backward compatibility, only return the first one.\n var records = mapDataStorage.retrieveMap(mapName);\n return records && records[0] && {\n geoJson: records[0].geoJSON,\n specialAreas: records[0].specialAreas\n };\n}\n\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesColor);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault); // Default actions\n\nregisterAction({\n type: 'highlight',\n event: 'highlight',\n update: 'highlight'\n}, zrUtil.noop);\nregisterAction({\n type: 'downplay',\n event: 'downplay',\n update: 'downplay'\n}, zrUtil.noop); // Default theme\n\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme); // For backward compatibility, where the namespace `dataTool` will\n// be mounted on `echarts` is the extension `dataTool` is imported.\n\nvar dataTool = {};\nexports.version = version;\nexports.dependencies = dependencies;\nexports.PRIORITY = PRIORITY;\nexports.init = init;\nexports.connect = connect;\nexports.disConnect = disConnect;\nexports.disconnect = disconnect;\nexports.dispose = dispose;\nexports.getInstanceByDom = getInstanceByDom;\nexports.getInstanceById = getInstanceById;\nexports.registerTheme = registerTheme;\nexports.registerPreprocessor = registerPreprocessor;\nexports.registerProcessor = registerProcessor;\nexports.registerPostUpdate = registerPostUpdate;\nexports.registerAction = registerAction;\nexports.registerCoordinateSystem = registerCoordinateSystem;\nexports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\nexports.registerLayout = registerLayout;\nexports.registerVisual = registerVisual;\nexports.registerLoading = registerLoading;\nexports.extendComponentModel = extendComponentModel;\nexports.extendComponentView = extendComponentView;\nexports.extendSeriesModel = extendSeriesModel;\nexports.extendChartView = extendChartView;\nexports.setCanvasCreator = setCanvasCreator;\nexports.registerMap = registerMap;\nexports.getMap = getMap;\nexports.dataTool = dataTool;\nvar ___ec_export = require(\"./export\");\n(function () {\n for (var key in ___ec_export) {\n if (___ec_export.hasOwnProperty(key)) {\n exports[key] = ___ec_export[key];\n }\n }\n})();","var _core = require(\"./core\");\n\nvar createElement = _core.createElement;\n\nvar PathProxy = require(\"../core/PathProxy\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\nvar matrix = require(\"../core/matrix\");\n\nvar textContain = require(\"../contain/text\");\n\nvar textHelper = require(\"../graphic/helper/text\");\n\nvar Text = require(\"../graphic/Text\");\n\n// TODO\n// 1. shadow\n// 2. Image: sx, sy, sw, sh\nvar CMD = PathProxy.CMD;\nvar arrayJoin = Array.prototype.join;\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;\n\nfunction round4(val) {\n return mathRound(val * 1e4) / 1e4;\n}\n\nfunction isAroundZero(val) {\n return val < EPSILON && val > -EPSILON;\n}\n\nfunction pathHasFill(style, isText) {\n var fill = isText ? style.textFill : style.fill;\n return fill != null && fill !== NONE;\n}\n\nfunction pathHasStroke(style, isText) {\n var stroke = isText ? style.textStroke : style.stroke;\n return stroke != null && stroke !== NONE;\n}\n\nfunction setTransform(svgEl, m) {\n if (m) {\n attr(svgEl, 'transform', 'matrix(' + arrayJoin.call(m, ',') + ')');\n }\n}\n\nfunction attr(el, key, val) {\n if (!val || val.type !== 'linear' && val.type !== 'radial') {\n // Don't set attribute for gradient, since it need new dom nodes\n el.setAttribute(key, val);\n }\n}\n\nfunction attrXLink(el, key, val) {\n el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\n\nfunction bindStyle(svgEl, style, isText, el) {\n if (pathHasFill(style, isText)) {\n var fill = isText ? style.textFill : style.fill;\n fill = fill === 'transparent' ? NONE : fill;\n attr(svgEl, 'fill', fill);\n attr(svgEl, 'fill-opacity', style.fillOpacity != null ? style.fillOpacity * style.opacity : style.opacity);\n } else {\n attr(svgEl, 'fill', NONE);\n }\n\n if (pathHasStroke(style, isText)) {\n var stroke = isText ? style.textStroke : style.stroke;\n stroke = stroke === 'transparent' ? NONE : stroke;\n attr(svgEl, 'stroke', stroke);\n var strokeWidth = isText ? style.textStrokeWidth : style.lineWidth;\n var strokeScale = !isText && style.strokeNoScale ? el.getLineScale() : 1;\n attr(svgEl, 'stroke-width', strokeWidth / strokeScale); // stroke then fill for text; fill then stroke for others\n\n attr(svgEl, 'paint-order', isText ? 'stroke' : 'fill');\n attr(svgEl, 'stroke-opacity', style.strokeOpacity != null ? style.strokeOpacity : style.opacity);\n var lineDash = style.lineDash;\n\n if (lineDash) {\n attr(svgEl, 'stroke-dasharray', style.lineDash.join(','));\n attr(svgEl, 'stroke-dashoffset', mathRound(style.lineDashOffset || 0));\n } else {\n attr(svgEl, 'stroke-dasharray', '');\n } // PENDING\n\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 } else {\n attr(svgEl, 'stroke', NONE);\n }\n}\n/***************************************************\n * PATH\n **************************************************/\n\n\nfunction pathDataToString(path) {\n var str = [];\n var data = path.data;\n var dataLength = path.len();\n\n for (var i = 0; i < dataLength;) {\n var cmd = data[i++];\n var cmdStr = '';\n var nData = 0;\n\n switch (cmd) {\n case CMD.M:\n cmdStr = 'M';\n nData = 2;\n break;\n\n case CMD.L:\n cmdStr = 'L';\n nData = 2;\n break;\n\n case CMD.Q:\n cmdStr = 'Q';\n nData = 4;\n break;\n\n case CMD.C:\n cmdStr = 'C';\n nData = 6;\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 var psi = data[i++];\n var clockwise = data[i++];\n var dThetaPositive = Math.abs(dTheta);\n var isCircle = isAroundZero(dThetaPositive - PI2) || (clockwise ? dTheta >= PI2 : -dTheta >= PI2); // Mapping to 0~2PI\n\n var unifiedTheta = dTheta > 0 ? dTheta % PI2 : dTheta % PI2 + PI2;\n var large = false;\n\n if (isCircle) {\n large = true;\n } else if (isAroundZero(dThetaPositive)) {\n large = false;\n } else {\n large = unifiedTheta >= PI === !!clockwise;\n }\n\n var x0 = round4(cx + rx * mathCos(theta));\n var y0 = round4(cy + ry * mathSin(theta)); // It will not draw if start point and end point are exactly the same\n // We need to shift the end point with a small value\n // FIXME A better way to draw circle ?\n\n if (isCircle) {\n if (clockwise) {\n dTheta = PI2 - 1e-4;\n } else {\n dTheta = -PI2 + 1e-4;\n }\n\n large = true;\n\n if (i === 9) {\n // Move to (x0, y0) only when CMD.A comes at the\n // first position of a shape.\n // For instance, when drawing a ring, CMD.A comes\n // after CMD.M, so it's unnecessary to move to\n // (x0, y0).\n str.push('M', x0, y0);\n }\n }\n\n var x = round4(cx + rx * mathCos(theta + dTheta));\n var y = round4(cy + ry * mathSin(theta + dTheta)); // FIXME Ellipse\n\n str.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n break;\n\n case CMD.Z:\n cmdStr = 'Z';\n break;\n\n case CMD.R:\n var x = round4(data[i++]);\n var y = round4(data[i++]);\n var w = round4(data[i++]);\n var h = round4(data[i++]);\n str.push('M', x, y, 'L', x + w, y, 'L', x + w, y + h, 'L', x, y + h, 'L', x, y);\n break;\n }\n\n cmdStr && str.push(cmdStr);\n\n for (var j = 0; j < nData; j++) {\n // PENDING With scale\n str.push(round4(data[i++]));\n }\n }\n\n return str.join(' ');\n}\n\nvar svgPath = {};\n\nsvgPath.brush = function (el) {\n var style = el.style;\n var svgEl = el.__svgEl;\n\n if (!svgEl) {\n svgEl = createElement('path');\n el.__svgEl = svgEl;\n }\n\n if (!el.path) {\n el.createPathProxy();\n }\n\n var path = el.path;\n\n if (el.__dirtyPath) {\n path.beginPath();\n path.subPixelOptimize = false;\n el.buildPath(path, el.shape);\n el.__dirtyPath = false;\n var pathStr = pathDataToString(path);\n\n if (pathStr.indexOf('NaN') < 0) {\n // Ignore illegal path, which may happen such in out-of-range\n // data in Calendar series.\n attr(svgEl, 'd', pathStr);\n }\n }\n\n bindStyle(svgEl, style, false, el);\n setTransform(svgEl, el.transform);\n\n if (style.text != null) {\n svgTextDrawRectText(el, el.getBoundingRect());\n } else {\n removeOldTextNode(el);\n }\n};\n/***************************************************\n * IMAGE\n **************************************************/\n\n\nvar svgImage = {};\n\nsvgImage.brush = function (el) {\n var style = el.style;\n var image = style.image;\n\n if (image instanceof HTMLImageElement) {\n var src = image.src;\n image = src;\n }\n\n if (!image) {\n return;\n }\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\n if (!svgEl) {\n svgEl = createElement('image');\n el.__svgEl = svgEl;\n }\n\n if (image !== el.__imageSrc) {\n attrXLink(svgEl, 'href', image); // Caching image src\n\n el.__imageSrc = image;\n }\n\n attr(svgEl, 'width', dw);\n attr(svgEl, 'height', dh);\n attr(svgEl, 'x', x);\n attr(svgEl, 'y', y);\n setTransform(svgEl, el.transform);\n\n if (style.text != null) {\n svgTextDrawRectText(el, el.getBoundingRect());\n } else {\n removeOldTextNode(el);\n }\n};\n/***************************************************\n * TEXT\n **************************************************/\n\n\nvar svgText = {};\n\nvar _tmpTextHostRect = new BoundingRect();\n\nvar _tmpTextBoxPos = {};\nvar _tmpTextTransform = [];\nvar TEXT_ALIGN_TO_ANCHRO = {\n left: 'start',\n right: 'end',\n center: 'middle',\n middle: 'middle'\n};\n/**\n * @param {module:zrender/Element} el\n * @param {Object|boolean} [hostRect] {x, y, width, height}\n * If set false, rect text is not used.\n */\n\nvar svgTextDrawRectText = function (el, hostRect) {\n var style = el.style;\n var elTransform = el.transform;\n var needTransformTextByHostEl = el instanceof Text || style.transformText;\n el.__dirty && textHelper.normalizeTextStyle(style, true);\n var text = style.text; // Convert to string\n\n text != null && (text += '');\n\n if (!textHelper.needDrawText(text, style)) {\n return;\n } // render empty text for svg if no text but need draw text.\n\n\n text == null && (text = ''); // Follow the setting in the canvas renderer, if not transform the\n // text, transform the hostRect, by which the text is located.\n\n if (!needTransformTextByHostEl && elTransform) {\n _tmpTextHostRect.copy(hostRect);\n\n _tmpTextHostRect.applyTransform(elTransform);\n\n hostRect = _tmpTextHostRect;\n }\n\n var textSvgEl = el.__textSvgEl;\n\n if (!textSvgEl) {\n textSvgEl = createElement('text');\n el.__textSvgEl = textSvgEl;\n } // style.font has been normalized by `normalizeTextStyle`.\n\n\n var textSvgElStyle = textSvgEl.style;\n var font = style.font || textContain.DEFAULT_FONT;\n var computedFont = textSvgEl.__computedFont;\n\n if (font !== textSvgEl.__styleFont) {\n textSvgElStyle.font = textSvgEl.__styleFont = font; // The computedFont might not be the orginal font if it is illegal font.\n\n computedFont = textSvgEl.__computedFont = textSvgElStyle.font;\n }\n\n var textPadding = style.textPadding;\n var textLineHeight = style.textLineHeight;\n var contentBlock = el.__textCotentBlock;\n\n if (!contentBlock || el.__dirtyText) {\n contentBlock = el.__textCotentBlock = textContain.parsePlainText(text, computedFont, textPadding, textLineHeight, style.truncate);\n }\n\n var outerHeight = contentBlock.outerHeight;\n var lineHeight = contentBlock.lineHeight;\n textHelper.getBoxPosition(_tmpTextBoxPos, el, style, hostRect);\n var baseX = _tmpTextBoxPos.baseX;\n var baseY = _tmpTextBoxPos.baseY;\n var textAlign = _tmpTextBoxPos.textAlign || 'left';\n var textVerticalAlign = _tmpTextBoxPos.textVerticalAlign;\n setTextTransform(textSvgEl, needTransformTextByHostEl, elTransform, style, hostRect, baseX, baseY);\n var boxY = textContain.adjustTextY(baseY, outerHeight, textVerticalAlign);\n var textX = baseX;\n var textY = boxY; // TODO needDrawBg\n\n if (textPadding) {\n textX = getTextXForPadding(baseX, textAlign, textPadding);\n textY += textPadding[0];\n } // `textBaseline` is set as 'middle'.\n\n\n textY += lineHeight / 2;\n bindStyle(textSvgEl, style, true, el); // FIXME\n // Add a