{"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:///./src/views/ProjectManage/Home.vue?19dc","webpack:///./src/views/Home/components/TaskList.vue?5393","webpack:///src/views/Home/components/TaskList.vue","webpack:///./src/views/Home/components/TaskList.vue?8b2a","webpack:///./src/views/Home/components/TaskList.vue","webpack:///./src/views/Home/components/TaskOverview.vue?fed8","webpack:///./src/api/home.js","webpack:///src/views/Home/components/TaskOverview.vue","webpack:///./src/views/Home/components/TaskOverview.vue?84a8","webpack:///./src/views/Home/components/TaskOverview.vue","webpack:///src/views/ProjectManage/Home.vue","webpack:///./src/views/ProjectManage/Home.vue?852a","webpack:///./src/views/ProjectManage/Home.vue","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:///./src/views/Home/components/TaskOverview.vue?2333","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:///./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:///./src/views/TaskManage/components/ProjectTaskTable.vue?0a09","webpack:///./src/views/TaskManage/components/ProjectTaskListColumns.js","webpack:///./src/views/TaskManage/TaskDetailDialog.vue?01a3","webpack:///src/views/TaskManage/TaskDetailDialog.vue","webpack:///./src/views/TaskManage/TaskDetailDialog.vue?d926","webpack:///./src/views/TaskManage/TaskDetailDialog.vue","webpack:///src/views/TaskManage/components/ProjectTaskTable.vue","webpack:///./src/views/TaskManage/components/ProjectTaskTable.vue?db38","webpack:///./src/views/TaskManage/components/ProjectTaskTable.vue","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:///./src/components/TaskResponsibilityColumnar.vue?de2f","webpack:///src/components/TaskResponsibilityColumnar.vue","webpack:///./src/components/TaskResponsibilityColumnar.vue?eeb9","webpack:///./src/components/TaskResponsibilityColumnar.vue","webpack:///./src/views/TaskManage/components/ProjectTaskTable.vue?5095","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:///./src/components/TaskOverViewPie.vue?78a8","webpack:///src/components/TaskOverViewPie.vue","webpack:///./src/components/TaskOverViewPie.vue?fd5b","webpack:///./src/components/TaskOverViewPie.vue","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:///./src/views/ProjectManage/Home.vue?fa48","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:///./src/views/Home/components/TaskList.vue?a9c4","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","_vm","_h","$createElement","_c","_self","staticClass","_v","class","activeGroud","activeProjectState","$event","taskscreening","domProps","_s","totalProjectCount","normalCount","delayCount","attrs","taskscreen","taskstatusselected","staticRenderFns","_m","taskstatusselecteds","components","ProjectTaskTable","mounted","computed","methods","watch","taskstatu","console","log","deep","immediate","component","tasktotalcounts","staticStyle","pieData","pieDataId","pie1DataTitles","pieData2","pieDataId2","pie2DataTitles","datasources","getDashBoard","param","getRequest","String","default","parm","status","pieone","TaskList","TaskOverview","datasource","toString","getDashBoards","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","newArr","oldArr","componentPos","componentLen","newPos","oldPos","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","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","formatter","setZoom","setCenter","arrySlice","Eventful","eventProcessor","_$handlers","_$eventProcessor","normalizeQuery","host","eventful","isOnce","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","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","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","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","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","columns","tasks","pagination","loading","tableRowClass","whenChangePage","scopedSlots","_u","filtered","searchText","searchedColumn","_l","RegExp","fragment","whenViewDetail","pageSize","slot","whenSearch","$$v","$set","expression","Filter","taskCtrl","visible","loadDataAsync","noFilterColumns","customRender","ellipsis","filterColumns","filterDropdown","filterIcon","sorter","moment","format","readonly","$emit","taskId","Content","showFilter","projectId","TaskDetailDialog","projectFilter","sorting","statusText","ProjectId","maxResultCount","skipCount","field","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","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","element","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","ref","getColumnar","xAxisData","data1","data2","columnarList","forEach","userName","substring","myChart","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","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","pieId","titles","pieIndex","getPie","optionone","myChartone","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","addEventListener","MOUSE_EVENT_REG","_calcOut","calculate","calculateZrXY","layerX","layerY","ex","clientX","ey","clientY","getNativeEvent","isTouch","targetTouches","changedTouches","zrDelta","button","which","attachEvent","removeEventListener","detachEvent","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","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","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","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","items","assembleOtherSeries","vals","getContentFromModel","isTSVFormat","itemSplitRegex","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","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","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","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","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","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","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","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-600dadd2.7b903c5e.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 render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"bgStyle cardContent\"},[_c('div',{staticClass:\"pageTitle\"},[_vm._v(\"项目总览\")]),_c('div',{staticClass:\"cardInfo\"},[_c('div',{staticClass:\"projectInfo\",class:{ activeGroud: _vm.activeProjectState == 0 },on:{\"click\":function($event){return _vm.taskscreening(0)}}},[_c('div',[_c('span',{staticClass:\"status\"},[_vm._v(\"全部\")]),_c('span',{staticClass:\"fontBlue\",domProps:{\"textContent\":_vm._s(_vm.totalProjectCount)}})]),_c('div',{staticClass:\"desc\"},[_vm._v(\"包含我负责的以及我参与的全部项目\")])]),_c('div',{staticClass:\"projectInfo blueInfo\",class:{ activeGroud: _vm.activeProjectState == 1 },on:{\"click\":function($event){return _vm.taskscreening(1)}}},[_c('div',[_c('span',{staticClass:\"status\"},[_vm._v(\"正常进行\")]),_c('span',{staticClass:\"fontBlue\",domProps:{\"textContent\":_vm._s(_vm.normalCount)}})]),_c('div',{staticClass:\"colorBox blue\"})]),_c('div',{staticClass:\"projectInfo pinkInfo\",class:{ activeGroud: _vm.activeProjectState == 2 },on:{\"click\":function($event){return _vm.taskscreening(2)}}},[_c('div',[_c('span',{staticClass:\"status\"},[_vm._v(\"已延期\")]),_c('span',{staticClass:\"fontPink\",domProps:{\"textContent\":_vm._s(_vm.delayCount)}})]),_c('div',{staticClass:\"colorBox pink\"})])])]),_c('TaskOverview',{attrs:{\"taskscreen\":_vm.taskscreen}}),_c('TaskList',{attrs:{\"taskstatusselecteds\":_vm.taskstatusselected}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bgStyle\"},[_vm._m(0),_c('ProjectTaskTable',{attrs:{\"projectId\":\"\",\"showFilter\":true,\"taskstatu\":_vm.taskstatusselecteds}})],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pageTitle\"},[_vm._v(\" 任务列表\"),_c('span',{staticClass:\"desc\"},[_vm._v(\"包含当前筛选项目中的全部任务\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TaskList.vue?vue&type=template&id=66cabe92&scoped=true&\"\nimport script from \"./TaskList.vue?vue&type=script&lang=js&\"\nexport * from \"./TaskList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TaskList.vue?vue&type=style&index=0&id=66cabe92&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"66cabe92\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bgStyle\"},[_c('div',{staticClass:\"pageTitle\"},[_vm._v(\"任务总览\")]),_c('div',{staticClass:\"container\"},[_c('a-row',{staticClass:\"title\"},[_c('a-col',{attrs:{\"span\":16}},[_c('div',{attrs:{\"id\":\"tasktotalcount\"}},[_vm._v(\" 任务总数:\"),_c('span',[_vm._v(_vm._s(_vm.tasktotalcounts))])])]),_c('a-col',{attrs:{\"span\":8}},[_c('h2',[_vm._v(\"任务责任人\")])])],1),_c('a-row',{staticStyle:{\"overflow\":\"auto\"}},[_c('a-col',{attrs:{\"span\":8}},[_c('TaskOverViewPie',{staticClass:\"echarts echarts-pie\",attrs:{\"pieData\":_vm.pieData,\"id\":\"pie1Dom\",\"pieId\":_vm.pieDataId,\"titles\":_vm.pie1DataTitles,\"pieIndex\":1}})],1),_c('a-col',{attrs:{\"span\":8}},[_c('TaskOverViewPie2',{staticClass:\"echarts echarts-pie\",attrs:{\"pieData\":_vm.pieData2,\"id\":\"pie2Dom\",\"pieId\":_vm.pieDataId2,\"titles\":_vm.pie2DataTitles,\"pieIndex\":2}})],1),_c('a-col',{attrs:{\"span\":8}},[_c('TaskResponsibilityColumnar',{staticClass:\"echarts echarts-bar\",attrs:{\"datasources\":_vm.datasources}})],1)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { getRequest } from \"@/utils/http\";\n\n/** 查询项目面板 任务总览 项目总览接口 */\nexport const getDashBoard = (param) =>\n getRequest(`/project-manage/project/getDashBoard`, param);\n/** 查询项目面板任务列表接口 */\nexport const getTaskBoard = (parm) =>\n getRequest(`/project-manage/task/getTaskBoard`, parm);\n","\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskOverview.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskOverview.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TaskOverview.vue?vue&type=template&id=38dfa3e0&scoped=true&\"\nimport script from \"./TaskOverview.vue?vue&type=script&lang=js&\"\nexport * from \"./TaskOverview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TaskOverview.vue?vue&type=style&index=0&id=38dfa3e0&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"38dfa3e0\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=2fe344b4&scoped=true&\"\nimport script from \"./Home.vue?vue&type=script&lang=js&\"\nexport * from \"./Home.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=2fe344b4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2fe344b4\",\n null\n \n)\n\nexport default component.exports","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;","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskOverview.vue?vue&type=style&index=0&id=38dfa3e0&scoped=true&lang=css&\"","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;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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\");","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('a-table',{staticClass:\"table\",attrs:{\"columns\":_vm.columns,\"data-source\":_vm.tasks,\"pagination\":_vm.pagination,\"rowKey\":\"id\",\"loading\":_vm.loading,\"rowClassName\":_vm.tableRowClass},on:{\"change\":_vm.whenChangePage},scopedSlots:_vm._u([{key:\"filterIcon\",fn:function(filtered){return _c('a-icon',{style:({ color: filtered ? '#108ee9' : undefined }),attrs:{\"type\":\"search\"}})}},{key:\"name\",fn:function(text, record, index, column){return [(_vm.searchText && _vm.searchedColumn === column.dataIndex)?_c('span',[_vm._l((text\n .toString()\n .split(new RegExp((\"(?<=\" + _vm.searchText + \")|(?=\" + _vm.searchText + \")\"), 'i'))),function(fragment,i){return [(fragment.toLowerCase() === _vm.searchText.toLowerCase())?_c('mark',{key:i,staticClass:\"highlight\"},[_vm._v(_vm._s(fragment))]):[_vm._v(_vm._s(fragment))]]})],2):[_vm._v(\" \"+_vm._s(text)+\" \")]]}},{key:\"operation\",fn:function(text, record){return _c('div',{},[_c('a',{on:{\"click\":function($event){return _vm.whenViewDetail(record)}}},[_vm._v(\"查看详情\")])])}},{key:\"statusText\",fn:function(text, record){return _c('div',{},[(record.status === 5 || record.status === '5')?_c('div',{staticClass:\"text-danger\"},[_vm._v(\" \"+_vm._s(text)+\" \")]):_c('div',[_vm._v(_vm._s(text))])])}},{key:\"no\",fn:function(text, record, index){return _c('div',{},[_vm._v(\" \"+_vm._s((_vm.pagination.current - 1) * _vm.pagination.pageSize + index + 1)+\" \")])}}])},[_c('a-card',{attrs:{\"slot\":\"filterDropdown\"},slot:\"filterDropdown\"},[_c('a-input',{staticClass:\"searchInput\",attrs:{\"placeholder\":\"输入关键字搜索\"},on:{\"pressEnter\":_vm.whenSearch},model:{value:(_vm.params.Filter),callback:function ($$v) {_vm.$set(_vm.params, \"Filter\", $$v)},expression:\"params.Filter\"}}),_c('hr'),_c('a-button',{staticClass:\"searchBtn\",attrs:{\"type\":\"primary\",\"icon\":\"search\",\"size\":\"small\"},on:{\"click\":_vm.whenSearch}},[_vm._v(\" 搜索 \")]),_c('a-button',{staticStyle:{\"width\":\"90px\"},attrs:{\"size\":\"small\"},on:{\"click\":function($event){_vm.whenSearch((_vm.params.Filter = null))}}},[_vm._v(\" 重置 \")])],1),_c('a-card',{attrs:{\"slot\":\"filterOfStatus\"},slot:\"filterOfStatus\"},[_c('a-radio-group',{model:{value:(_vm.params.status),callback:function ($$v) {_vm.$set(_vm.params, \"status\", $$v)},expression:\"params.status\"}},[_c('a-radio',[_vm._v(\" 全部 \")]),_c('a-radio',{attrs:{\"value\":-1}},[_vm._v(\" 已延期 \")]),_c('a-radio',{attrs:{\"value\":0}},[_vm._v(\" 未启动 \")]),_c('a-radio',{attrs:{\"value\":5}},[_vm._v(\" 进行中 \")]),_c('a-radio',{attrs:{\"value\":8}},[_vm._v(\" 待验收 \")]),_c('a-radio',{attrs:{\"value\":10}},[_vm._v(\" 已完成 \")])],1),_c('hr'),_c('a-button',{staticClass:\"searchBtn\",attrs:{\"type\":\"primary\",\"icon\":\"search\",\"size\":\"small\"},on:{\"click\":_vm.whenSearch}},[_vm._v(\" 搜索 \")]),_c('a-button',{staticStyle:{\"width\":\"90px\"},attrs:{\"size\":\"small\"},on:{\"click\":function($event){_vm.whenSearch((_vm.params.status = ''))}}},[_vm._v(\" 重置 \")])],1)],1),_c('TaskDetailDialog',{attrs:{\"taskId\":_vm.taskCtrl.id,\"visible\":_vm.taskCtrl.visible,\"readonly\":true},on:{\"cancel\":function($event){_vm.taskCtrl.visible = false},\"reloadBord\":_vm.loadDataAsync}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import moment from \"moment\";\nexport const noFilterColumns = [\n {\n title: \"序号\",\n dataIndex: \"id\",\n scopedSlots: { customRender: \"no\" },\n },\n {\n title: \"项目名称\",\n dataIndex: \"projectName\",\n ellipsis: true,\n },\n {\n title: \"计划名称\",\n dataIndex: \"planName\",\n ellipsis: true,\n },\n {\n title: \"任务名称\",\n dataIndex: \"name\",\n ellipsis: true,\n },\n {\n title: \"预计开始日期\",\n dataIndex: \"startDate\",\n },\n {\n title: \"预计结束日期\",\n dataIndex: \"endDate\",\n },\n {\n title: \"预计工期\",\n dataIndex: \"workDays\",\n },\n {\n title: \"任务状态\",\n dataIndex: \"statusText\",\n scopedSlots: { customRender: \"statusText\" },\n },\n {\n title: \"责任人\",\n dataIndex: \"ownerName\",\n },\n {\n title: \"操作\",\n dataIndex: \"operation\",\n scopedSlots: { customRender: \"operation\" },\n },\n];\nexport const filterColumns = [\n {\n title: \"序号\",\n // dataIndex: \"number\",\n align: \"center\",\n // sorter: true,\n scopedSlots: { customRender: \"no\" },\n // customRender: (t, r, index) => {\n // return parseInt(\n // `${\n // (this.pagination.current - 1) * this.pagination.pageSize + index + 1\n // }`\n // );\n // },\n },\n {\n title: \"项目名称\",\n dataIndex: \"projectName\",\n align: \"center\",\n scopedSlots: {\n filterDropdown: \"filterDropdown\",\n filterIcon: \"filterIcon\",\n customRender: \"customRender\",\n },\n ellipsis: true,\n },\n {\n title: \"计划名称\",\n dataIndex: \"planName\",\n align: \"center\",\n scopedSlots: {\n filterDropdown: \"filterDropdown\",\n filterIcon: \"filterIcon\",\n customRender: \"customRender\",\n },\n ellipsis: true,\n },\n {\n title: \"任务名称\",\n dataIndex: \"name\",\n align: \"center\",\n scopedSlots: {\n filterDropdown: \"filterDropdown\",\n filterIcon: \"filterIcon\",\n customRender: \"customRender\",\n },\n ellipsis: true,\n },\n {\n title: \"预计开始时间\",\n dataIndex: \"startDate\",\n align: \"center\",\n sorter: true,\n customRender: (text) => {\n if (!text) return \"---\";\n return moment(text).format(\"YYYY-MM-DD\");\n },\n },\n {\n title: \"预计结束时间\",\n dataIndex: \"endDate\",\n align: \"center\",\n sorter: true,\n customRender: (text) => {\n if (!text) return \"---\";\n return moment(text).format(\"YYYY-MM-DD\");\n },\n },\n {\n title: \"预计工期\",\n align: \"center\",\n dataIndex: \"workDays\",\n sorter: true,\n },\n {\n title: \"任务状态\",\n dataIndex: \"statusText\",\n align: \"center\",\n scopedSlots: { filterDropdown: \"filterOfStatus\" },\n // filters: [\n // { text: \"已结束\", value: \"2\" },\n // { text: \"已开始\", value: \"0\" },\n // { text: \"进行中\", value: \"1\" },\n // ],\n //onFilter: (value, record) => record.status.indexOf(value) === 1,\n },\n {\n title: \"责任人\",\n align: \"center\",\n dataIndex: \"ownerName\",\n customRender: (text) => {\n if (!text) return \"---\";return text; \n },\n },\n {\n title: \"操作\",\n align: \"center\",\n dataIndex: \"operation\",\n scopedSlots: { customRender: \"operation\" },\n },\n];\nexport default {\n filterColumns: filterColumns,\n noFilterColumns: noFilterColumns,\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a-modal',{attrs:{\"visible\":_vm.visible,\"title\":_vm.title,\"footer\":null,\"destroyOnClose\":true,\"readonly\":_vm.readonly,\"width\":1390},on:{\"cancel\":function($event){return _vm.$emit('cancel')}}},[_c('Content',{attrs:{\"taskId\":_vm.taskId},on:{\"triggerBorder\":_vm.loadDataAsync}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskDetailDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskDetailDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TaskDetailDialog.vue?vue&type=template&id=12a5c3e6&\"\nimport script from \"./TaskDetailDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./TaskDetailDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n \n
\n \n {{ text }}\n
\n
{{ text }}
\n \n \n \n 全部 \n 已延期 \n 未启动 \n 进行中 \n 待验收 \n 已完成 \n \n
\n \n 搜索\n \n \n 重置\n \n
\n
\n {{ (pagination.current - 1) * pagination.pageSize + index + 1 }}\n
\n \n \n \n\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectTaskTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectTaskTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProjectTaskTable.vue?vue&type=template&id=69bd6c36&scoped=true&\"\nimport script from \"./ProjectTaskTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ProjectTaskTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProjectTaskTable.vue?vue&type=style&index=0&id=69bd6c36&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"69bd6c36\",\n null\n \n)\n\nexport default component.exports","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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