{"version":3,"sources":["webpack:///./node_modules/echarts/lib/chart/parallel/ParallelSeries.js","webpack:///./node_modules/echarts/lib/component/visualMap/PiecewiseView.js","webpack:///./node_modules/echarts/lib/component/tooltip.js","webpack:///./node_modules/echarts/lib/chart/funnel/FunnelSeries.js","webpack:///./node_modules/echarts/lib/coord/geo/prepareCustom.js","webpack:///./node_modules/echarts/lib/coord/geo/Geo.js","webpack:///./node_modules/echarts/lib/coord/cartesian/cartesianAxisHelper.js","webpack:///./node_modules/echarts/lib/component/gridSimple.js","webpack:///./node_modules/echarts/lib/component/helper/roamHelper.js","webpack:///./node_modules/echarts/lib/component/dataset.js","webpack:///./node_modules/zrender/lib/core/timsort.js","webpack:///./node_modules/zrender/lib/contain/polygon.js","webpack:///./node_modules/zrender/lib/animation/Animator.js","webpack:///./node_modules/echarts/lib/data/Tree.js","webpack:///./node_modules/echarts/lib/component/visualMap/PiecewiseModel.js","webpack:///./node_modules/echarts/lib/component/tooltip/TooltipContent.js","webpack:///./node_modules/echarts/lib/chart/gauge.js","webpack:///./node_modules/echarts/lib/chart/parallel.js","webpack:///./node_modules/echarts/lib/chart/candlestick.js","webpack:///./node_modules/echarts/lib/component/timeline/TimelineAxis.js","webpack:///./node_modules/echarts/lib/chart/candlestick/candlestickLayout.js","webpack:///./node_modules/echarts/lib/component/dataZoom.js","webpack:///./node_modules/zrender/lib/core/GestureMgr.js","webpack:///./node_modules/echarts/lib/component/legendScroll.js","webpack:///./node_modules/zrender/lib/core/arrayDiff2.js","webpack:///./node_modules/echarts/lib/component/helper/MapDraw.js","webpack:///./node_modules/zrender/lib/mixin/Transformable.js","webpack:///./node_modules/zrender/lib/graphic/Image.js","webpack:///./node_modules/echarts/lib/chart/sankey/sankeyVisual.js","webpack:///./node_modules/echarts/lib/component/legend/ScrollableLegendView.js","webpack:///./node_modules/echarts/lib/coord/parallel/ParallelAxis.js","webpack:///./node_modules/echarts/lib/data/helper/sourceHelper.js","webpack:///./node_modules/echarts/lib/chart/helper/EffectLine.js","webpack:///./node_modules/echarts/lib/component/brush/visualEncoding.js","webpack:///./node_modules/echarts/lib/chart/effectScatter.js","webpack:///./node_modules/echarts/lib/component/axisPointer/findPointFromSeries.js","webpack:///./node_modules/echarts/lib/chart/helper/Symbol.js","webpack:///./node_modules/echarts/lib/chart/radar/RadarView.js","webpack:///./node_modules/echarts/lib/component/axis/RadiusAxisView.js","webpack:///./node_modules/echarts/lib/helper.js","webpack:///./node_modules/echarts/lib/chart/scatter.js","webpack:///./node_modules/zrender/lib/core/matrix.js","webpack:///./node_modules/echarts/lib/coord/radar/RadarModel.js","webpack:///./src/apps/open/components/DialogBodys/InputForm.vue?ec25","webpack:///./src/apps/open/components/DialogBodys/InputForm.vue","webpack:///./src/apps/open/components/DialogBodys/InputForm.vue?7639","webpack:///./src/apps/open/components/DialogBodys/InputForm.vue?bb02","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:///./static/images/open/eye_close.svg","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:///./src/apps/open/components/DialogBodys/EmailAdmin.vue?e331","webpack:///./node_modules/echarts/lib/component/marker/MarkerModel.js","webpack:///./node_modules/echarts/lib/chart/funnel/funnelLayout.js","webpack:///./node_modules/echarts/lib/chart/themeRiver/ThemeRiverView.js","webpack:///./node_modules/echarts/lib/preprocessor/helper/compatStyle.js","webpack:///./node_modules/echarts/lib/model/mixin/makeStyleMapper.js","webpack:///./node_modules/echarts/lib/chart/pie/pieLayout.js","webpack:///./node_modules/echarts/lib/chart/graph/categoryVisual.js","webpack:///./node_modules/echarts/lib/lang.js","webpack:///./node_modules/echarts/lib/component/visualMapPiecewise.js","webpack:///./node_modules/echarts/lib/data/helper/dataProvider.js","webpack:///./node_modules/zrender/lib/graphic/Style.js","webpack:///./node_modules/echarts/lib/visual/visualSolution.js","webpack:///./node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js","webpack:///./node_modules/zrender/lib/config.js","webpack:///./node_modules/echarts/lib/component/singleAxis.js","webpack:///./node_modules/echarts/lib/component/brush.js","webpack:///./node_modules/echarts/lib/data/helper/dimensionHelper.js","webpack:///./node_modules/echarts/lib/component/polar.js","webpack:///./node_modules/echarts/lib/chart/boxplot/boxplotVisual.js","webpack:///./node_modules/echarts/lib/chart/bar/BaseBarSeries.js","webpack:///./node_modules/zrender/lib/tool/parseSVG.js","webpack:///./node_modules/echarts/lib/component/visualMap/ContinuousModel.js","webpack:///./node_modules/echarts/lib/coord/single/prepareCustom.js","webpack:///./node_modules/echarts/lib/component/marker/MarkLineView.js","webpack:///./node_modules/zrender/lib/animation/Animation.js","webpack:///./node_modules/echarts/lib/chart/sankey.js","webpack:///./node_modules/echarts/index.js","webpack:///./node_modules/echarts/lib/data/helper/linkList.js","webpack:///./node_modules/echarts/lib/coord/geo/fix/nanhai.js","webpack:///./static/images/open/question.png","webpack:///./node_modules/echarts/lib/component/dataZoom/InsideZoomView.js","webpack:///./src/apps/open/layout/AdminLayout.vue?27f9","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:///./static/images/open/eye_open.svg","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:///./src/apps/open/views/devCenter/weboffice/Info.vue?5c4d","webpack:///./src/apps/open/views/devCenter/weboffice/ApiUsage.vue?4149","webpack:///./src/apps/open/views/devCenter/weboffice/ApiUsage.vue","webpack:///./src/apps/open/views/devCenter/weboffice/ApiTool.vue","webpack:///./src/apps/open/views/devCenter/weboffice/ApiUsage.vue?8a69","webpack:///./src/apps/open/views/devCenter/weboffice/ApiUsage.vue?f5f0","webpack:///./src/apps/open/views/devCenter/weboffice/ApiTool.vue?62b7","webpack:///./src/apps/open/views/devCenter/weboffice/ApiTool.vue?aecd","webpack:///./src/apps/open/views/devCenter/weboffice/ApiTool.vue?4dcf","webpack:///./src/apps/open/views/devCenter/weboffice/Info.vue","webpack:///./src/apps/open/views/devCenter/weboffice/Info.vue?4ffd","webpack:///./src/apps/open/views/devCenter/weboffice/Info.vue?caa4","webpack:///./node_modules/zrender/lib/core/vector.js","webpack:///./node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js","webpack:///./node_modules/zrender/lib/tool/color.js","webpack:///./node_modules/zrender/lib/graphic/Gradient.js","webpack:///./node_modules/echarts/lib/component/tooltip/TooltipView.js","webpack:///./node_modules/echarts/lib/model/Model.js","webpack:///./node_modules/echarts/lib/coord/single/singleCreator.js","webpack:///./node_modules/echarts/lib/component/marker/MarkAreaModel.js","webpack:///./node_modules/echarts/lib/chart/treemap/treemapAction.js","webpack:///./node_modules/zrender/lib/animation/Clip.js","webpack:///./node_modules/echarts/lib/chart/sunburst/sunburstAction.js","webpack:///./node_modules/echarts/lib/chart/helper/Polyline.js","webpack:///./node_modules/zrender/lib/graphic/shape/Ring.js","webpack:///./node_modules/echarts/lib/component/legend/legendAction.js","webpack:///./node_modules/echarts/lib/coord/calendar/prepareCustom.js","webpack:///./node_modules/echarts/lib/chart/effectScatter/EffectScatterView.js","webpack:///./node_modules/echarts/lib/chart/heatmap/HeatmapView.js","webpack:///./node_modules/echarts/lib/chart/graph/adjustEdge.js","webpack:///./node_modules/zrender/lib/graphic/LinearGradient.js","webpack:///./node_modules/echarts/lib/component/axisPointer/AxisPointerModel.js","webpack:///./node_modules/echarts/lib/coord/cartesian/AxisModel.js","webpack:///./node_modules/zrender/lib/core/log.js","webpack:///./node_modules/echarts/lib/action/geoRoam.js","webpack:///./node_modules/echarts/lib/component/helper/RoamController.js","webpack:///./node_modules/zrender/lib/core/curve.js","webpack:///./node_modules/echarts/lib/component/axisPointer/CartesianAxisPointer.js","webpack:///./node_modules/zrender/lib/graphic/shape/Sector.js","webpack:///./node_modules/zrender/lib/svg/helper/Definable.js","webpack:///./node_modules/echarts/lib/component/dataZoom/SelectZoomView.js","webpack:///./node_modules/echarts/lib/coord/single/Single.js","webpack:///./node_modules/echarts/lib/coord/geo/geoJSONLoader.js","webpack:///./node_modules/echarts/lib/chart/candlestick/candlestickVisual.js","webpack:///./node_modules/echarts/lib/chart/funnel/FunnelView.js","webpack:///./node_modules/echarts/lib/chart/gauge/GaugeSeries.js","webpack:///./node_modules/echarts/lib/config.js","webpack:///./node_modules/echarts/lib/chart/map/MapSeries.js","webpack:///./node_modules/echarts/lib/chart/sunburst/SunburstPiece.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js","webpack:///./node_modules/echarts/lib/model/Series.js","webpack:///./node_modules/zrender/lib/graphic/helper/poly.js","webpack:///./node_modules/echarts/lib/component/dataZoom/helper.js","webpack:///./node_modules/echarts/lib/chart/themeRiver/themeRiverLayout.js","webpack:///./node_modules/echarts/lib/chart/graph/graphHelper.js","webpack:///./node_modules/echarts/lib/component/visualMap.js","webpack:///./node_modules/echarts/lib/chart/map/mapVisual.js","webpack:///./node_modules/echarts/lib/model/mixin/itemStyle.js","webpack:///./node_modules/echarts/lib/component/radar.js","webpack:///./node_modules/echarts/lib/component/dataZoom/roams.js","webpack:///./node_modules/echarts/lib/chart/helper/treeHelper.js","webpack:///./node_modules/echarts/lib/data/DataDimensionInfo.js","webpack:///./node_modules/zrender/lib/graphic/helper/roundRect.js","webpack:///./node_modules/echarts/lib/chart/graph/forceLayout.js","webpack:///./node_modules/echarts/lib/coord/cartesian/Grid.js","webpack:///./node_modules/echarts/lib/chart/sankey/SankeyView.js","webpack:///./node_modules/echarts/lib/coord/geo/geoSourceManager.js","webpack:///./node_modules/echarts/lib/chart/heatmap.js","webpack:///./node_modules/zrender/lib/Layer.js","webpack:///./node_modules/zrender/lib/graphic/helper/image.js","webpack:///./node_modules/echarts/lib/component/legend/LegendView.js","webpack:///./src/apps/open/views/devCenter/weboffice/ApiTool.vue?84e0","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/echarts/lib/component/axis/AxisView.js","webpack:///./node_modules/echarts/lib/component/timeline/preprocessor.js","webpack:///./node_modules/echarts/lib/coord/single/SingleAxis.js","webpack:///./node_modules/echarts/lib/chart/graph/categoryFilter.js","webpack:///./node_modules/echarts/lib/chart/map.js","webpack:///./node_modules/echarts/lib/chart/effectScatter/EffectScatterSeries.js","webpack:///./node_modules/echarts/lib/chart/bar/BarView.js","webpack:///./node_modules/zrender/lib/contain/quadratic.js","webpack:///./node_modules/echarts/lib/component/dataZoom/typeDefaulter.js","webpack:///./node_modules/echarts/lib/coord/axisHelper.js","webpack:///./node_modules/zrender/lib/zrender.js","webpack:///./node_modules/echarts/lib/stream/Scheduler.js","webpack:///./node_modules/echarts/lib/chart/helper/EffectPolyline.js","webpack:///./node_modules/echarts/lib/component/axisPointer/PolarAxisPointer.js","webpack:///./node_modules/echarts/lib/coord/geo/fix/geoCoord.js","webpack:///./node_modules/echarts/lib/component/radar/RadarView.js","webpack:///./node_modules/echarts/lib/chart/themeRiver.js","webpack:///./node_modules/echarts/lib/model/Component.js","webpack:///./node_modules/echarts/lib/coord/View.js","webpack:///./node_modules/echarts/lib/chart/tree/TreeView.js","webpack:///./node_modules/zrender/lib/core/util.js","webpack:///./node_modules/echarts/lib/chart/tree/traversalHelper.js","webpack:///./node_modules/echarts/lib/component/dataZoom/history.js","webpack:///./node_modules/echarts/lib/component/helper/selectableMixin.js","webpack:///./node_modules/echarts/lib/coord/axisDefault.js","webpack:///./node_modules/echarts/lib/chart/themeRiver/themeRiverVisual.js","webpack:///./node_modules/echarts/lib/chart/lines/LinesSeries.js","webpack:///./node_modules/echarts/lib/component/visualMap/VisualMapView.js","webpack:///./node_modules/echarts/lib/data/Graph.js","webpack:///./node_modules/echarts/lib/chart/helper/LineDraw.js","webpack:///./node_modules/echarts/lib/component/visualMapContinuous.js","webpack:///./node_modules/zrender/lib/animation/easing.js","webpack:///./node_modules/echarts/lib/component/geo/GeoView.js","webpack:///./node_modules/echarts/lib/component/toolbox/feature/DataView.js","webpack:///./node_modules/zrender/lib/graphic/Text.js","webpack:///./node_modules/echarts/lib/action/createDataSelectAction.js","webpack:///./node_modules/echarts/lib/coord/radar/IndicatorAxis.js","webpack:///./node_modules/echarts/lib/chart/radar/backwardCompat.js","webpack:///./node_modules/echarts/lib/coord/polar/PolarModel.js","webpack:///./node_modules/echarts/lib/component/helper/listComponent.js","webpack:///./node_modules/echarts/lib/component/radiusAxis.js","webpack:///./src/apps/open/services/weboffice.ts","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:///./src/apps/open/views/devCenter/weboffice/Info.vue?681e","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/vue-json-pretty/vue-json-pretty.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:///./src/apps/open/layout/AdminLayout.vue?9cd7","webpack:///./src/apps/open/layout/AdminLayout.vue","webpack:///./src/apps/open/layout/AdminLayout.vue?065a","webpack:///./src/apps/open/layout/AdminLayout.vue?c776","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:///./src/apps/open/components/DialogBodys/EmailAdmin.vue?6d78","webpack:///./src/apps/open/services/email_admin.ts","webpack:///./src/apps/open/components/DialogBodys/EmailAdmin.vue","webpack:///./src/apps/open/components/DialogBodys/EmailAdmin.vue?d818","webpack:///./src/apps/open/components/DialogBodys/EmailAdmin.vue?e4af","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","Model","linkList","List","createDimensions","TreeNode","hostTree","depth","parentNode","children","viewChildren","Tree","hostModel","levelOptions","leavesOption","root","_nodes","levelModels","levelDefine","leavesModel","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","levelModel","getLevelModel","isExpand","getLeavesModel","setVisual","setItemVisual","getVisual","ignoreParent","getItemVisual","isAncestorOf","parent","isDescendantOf","getNodeByDataIndex","rawIndex","getNodeByName","nodes","count","clearLayouts","clearItemLayouts","createTree","dataRoot","treeOptions","beforeLink","tree","levels","leaves","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","env","formatUtil","toCamelCase","vendors","gCssText","assembleTransition","duration","transitionCurve","transitionText","vendorPrefix","assembleFont","cssText","fontSize","round","assembleCssText","tooltipModel","transitionDuration","backgroundColor","padding","canvasSupported","toHex","borderName","camelCase","normalizeCssArray","TooltipContent","container","wxa","el","document","createElement","zr","_zr","getZr","_x","getWidth","_y","getHeight","appendChild","_container","_show","_hideTimeout","onmouseenter","_enterable","clearTimeout","_inContent","onmousemove","e","window","handler","normalizeEvent","dispatch","onmouseleave","hideLater","_hideDelay","stl","currentStyle","defaultView","getComputedStyle","domStyle","display","innerHTML","pointerEvents","setContent","content","setEnterable","enterable","getSize","clientWidth","clientHeight","moveTo","viewportRootOffset","painter","getViewportRootOffset","offsetLeft","offsetTop","hide","setTimeout","isShow","getOuterSize","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","parallelVisual","registerVisual","preprocessor","candlestickVisual","candlestickLayout","registerLayout","Axis","TimelineAxis","coordExtent","axisType","model","getLabelModel","isHorizontal","inherits","_graphic","subPixelOptimize","createRenderPlanner","parsePercent","retrieve2","LargeArr","Float32Array","seriesType","plan","reset","candleWidth","calculateCandleWidth","cDimIdx","vDimIdx","coordDims","cDim","vDims","openDim","closeDim","lowestDim","highestDim","isSimpleBox","progress","pipelineContext","large","largeProgress","normalProgress","next","axisDimVal","openVal","closeVal","lowestVal","highestVal","ocLow","ocHigh","ocLowPoint","getPoint","ocHighPoint","lowestPoint","highestPoint","ends","addBodyEnd","subPixelOptimizePoint","sign","getSign","initBaseline","brushRect","makeBrushRect","NaN","point","point1","point2","pmin","pmax","tmpIn","tmpOut","extent","baseAxis","getBaseAxis","bandWidth","getBandWidth","barMaxWidth","barMinWidth","barWidth","GestureMgr","_track","dist","pointPair","sqrt","center","recognize","_doTrack","_recognize","clear","touches","trackItem","touch","clientToLocal","zrX","zrY","eventName","recognizers","gestureInfo","pinch","track","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","Diff","buildValues","diff","components","newArr","oldArr","componentPos","componentLen","newPos","oldPos","component","removed","added","clonePath","equals","newLen","oldLen","editLength","maxEditLength","bestPath","extractCommon","execEditLength","diagonalPath","basePath","addPath","removePath","undefined","canAdd","canRemove","pushComponent","last","commonCount","tokenize","arrayDiff","RoamController","roamHelper","_cursorHelper","onIrrelevantElement","_component","getUID","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","_roamTransformable","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","setItemGraphicEl","eventData","componentType","componentIndex","geoIndex","groupRegions","highDownSilentOnTouch","setHoverStyle","_updateController","remove","dispose","removeGraphic","mapName","makeGraphic","controller","enable","makeActionBase","originX","originY","traverse","setPointerChecker","getViewRectAfterRoam","matrix","vector","mIdentity","identity","isNotAroundZero","Transformable","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","updateProps","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","childAt","_symbolType","setColor","_updateEffectAnimation","period","constantSpeed","delayExpr","isDelayFunc","ignore","updateAnimationPoints","getLineLength","_period","stopAnimation","__t","animate","updateSymbolPosition","__p1","__cp1","__p2","updateData","cp1","quadraticAt","quadraticDerivativeAt","tx","ty","updateLayout","visualSolution","throttleUtil","BrushTargetManager","STATE_LIST","DISPATCH_METHOD","DISPATCH_FLAG","PRIORITY_BRUSH","PRIORITY","VISUAL","BRUSH","throttleType","throttleDelay","brushSelected","doDispatch","fn","createOrUpdate","isDisposed","checkInRange","selectorsByBrushType","rangeInfoList","area","brushType","selectors","getSelectorsByBrushType","brushSelector","sels","selectorsByElementType","isFunction","bSelector","sel","brushModelNotControll","brushModel","seriesIndex","seriesIndices","indexOf","bindSelector","selFn","elType","setBrushOption","brushOption","brushTargetManager","setInputRanges","areas","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","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","symbolRotate","symbolOffset","hoverAnimation","cursorStyle","hasItemOption","getShallow","elStyle","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","_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","_vm","_h","$createElement","_c","_self","ref","attrs","form","rules","_b","placeholder","$$v","$set","expression","inputProps","staticRenderFns","input","$refs","validate","then","valid","submit","$on","onOk","default","componentName","coordsOffsetMap","mapType","coordFix","cp","BaseBarSeries","getProgressive","getProgressiveThreshold","progressiveThreshold","largeThreshold","roundCap","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","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","simpleLayout","simpleLayoutEdge","eachEdge","curveness","node1","node2","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","baseValue","baseCoord","radiusSpan","dataToRadius","angle","dataToAngle","angleSpan","barSeries","columnsMap","axisExtent","columnsOnAxis","remainedWidth","autoWidthCount","categoryGap","stacks","maxWidth","barGap","barCategoryGap","coordSysName","barGapPercent","autoWidth","column","stack","lastColumn","widthSum","mathCos","mathSin","selectableMixin","geoCreator","GeoModel","layoutMode","getFilledRegions","_optionModelMap","reduce","optionModelMap","regionOpt","updateSelectedMap","aspectScale","boundingCoords","scaleLimit","getFormattedLabel","status","formatter","setZoom","setCenter","arrySlice","Eventful","eventProcessor","_$handlers","_$eventProcessor","normalizeQuery","host","eventful","isOnce","h","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","scaleY","isEllipse","features","ctor","_format","encodeHTML","layoutInfo","treeOption","nodeData","wrapMethod","treeDepth","expandAndCollapse","expandTreeDepth","initialTreeDepth","getRawDataItem","collapsed","formatTooltip","realRoot","roam","nodeScaleRatio","animationDuration","animationDurationUpdate","numberUtil","scaleHelper","IntervalScale","intervalScaleProto","mathCeil","ceil","mathFloor","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","bisect","TimeScale","stepLvl","_stepLvl","date","Date","formatTime","getSetting","getFullYear","getMonth","getDate","minInterval","maxInterval","_interval","fixMin","fixMax","approxTickNum","span","approxInterval","scaleLevelsLen","scaleLevels","level","yearSpan","yearStep","nice","timezoneOffset","getTimezoneOffset","fixExtent","_niceExtent","parseDate","useUTC","useEncodeDefaulter","step","smoothMonotone","showSymbol","showAllSymbol","connectNulls","sampling","hoverLayerThreshold","Component","parallelAxisIndex","axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandRate","axisExpandDebounce","axisExpandSlideTriggerArea","axisExpandTriggerOn","parallelAxisDefault","mergeOption","_initDimensions","setAxisExpand","axisModels","dependentModels","parallelAxis","wx","getSystemInfoSync","browser","os","svgSupported","touchEventsSupported","domSupported","worker","navigator","detect","userAgent","ua","firefox","match","ie","weChat","test","version","SVGRect","pointerEventsSupported","hierNode","defaultAncestor","ancestor","prelim","modifier","change","shift","thread","pop","firstWalk","separation","siblings","subtreeW","executeShifts","midPoint","apportion","secondWalk","nodeX","defaultSeparation","radialCoordinate","radialCoor","getViewRect","getBoxLayoutParams","subtreeV","nodeOutRight","nodeInRight","nodeOutLeft","nodeInLeft","sumOutRight","sumInRight","sumOutLeft","sumInLeft","nextRight","nextLeft","moveSubtree","nextAncestor","wl","wr","pathTool","colorTool","Image","Ring","BezierCurve","Arc","LinearGradient","RadialGradient","IncrementalDisplayable","subPixelOptimizeUtil","EMPTY_OBJ","Z2_EMPHASIS_LIFT","CACHED_LABEL_STYLE_PROPERTIES","textBorderColor","textBorderWidth","EMPHASIS","NORMAL","_highlightNextDigit","_highlightKeyMap","_customShapeMap","extendShape","extendPath","pathData","extendFromString","registerShape","ShapeClass","getShapeClass","makePath","createFromString","centerGraphic","resizePath","makeImage","imageUrl","img","pathRect","subPixelOptimizeLine","param","subPixelOptimizeRect","hasFillOrStroke","fillOrStroke","liftedColorMap","liftedColorCount","liftColor","liftedColor","lift","cacheElementStl","__hoverStlDirty","__hoverStl","normalStyle","__cachedNormalStl","__cachedNormalZ2","singleEnterEmphasis","hoverStl","__highlighted","isGroup","elTarget","targetStyle","addHover","rollbackDefaultTextStyle","extendFrom","setDefaultHoverFillStroke","applyDefaultTextStyle","prop","singleEnterNormal","highlighted","removeHover","normalStl","normalZ2","traverseUpdate","updater","commonParam","__highDownOnUpdate","setElementHoverStyle","onElementMouseOver","shouldSilent","__highByOuter","onElementMouseOut","onElementEmphasisEvent","highlightDigit","onElementNormalEvent","__highDownSilentOnTouch","zrByTouch","setAsHighDownDispatcher","asDispatcher","disable","__highDownDispatcher","isHighDownDispatcher","getHighlightDigit","highlightKey","emphasisStyle","normalModel","emphasisModel","normalSpecified","emphasisSpecified","baseText","showNormal","showEmphasis","normalStyleText","emphasisStyleText","setTextStyle","modifyLabelStyle","normalStyleProps","emphasisStyleProps","textStyle","specifiedTextStyle","isEmphasis","setTextStyleCommon","setText","defaultColor","textPosition","getTextPosition","textOffset","textRotation","textDistance","richResult","globalTextStyle","richItemNames","getRichItemNames","richTextStyle","setTokenTextStyle","rich","forceRich","richItemNameMap","isBlock","getAutoColor","textStroke","textStrokeWidth","insideRollbackOpt","fontStyle","fontWeight","fontFamily","textLineHeight","textWidth","textHeight","textTag","disableBox","textBackgroundColor","textPadding","textBorderRadius","textBoxShadowColor","textBoxShadowBlur","textBoxShadowOffsetX","textBoxShadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","insideRollback","useInsideStyleCache","useAutoColorCache","gTextStyleModel","trim","animateOrSetProps","isUpdate","animatableModel","animationEnabled","postfix","animationDelay","getAnimationDelayParams","getTransform","mat","transformDirection","direction","hBase","vBase","vertex","groupTransition","g1","g2","elMap1","getElMap","anid","oldEl","newProp","getAnimatableProps","g","elMap","clipPointsByRect","clipRectByRect","targetRect","iconStr","linePolygonIntersect","a1x","a1y","a2x","a2y","lineLineIntersect","b1x","b1y","b2x","b2y","mx","my","nx","ny","nmCrossProduct","crossProduct2d","nearZero","b1a1x","b1a1y","q","eventTool","throttle","DataZoomView","sliderMove","linearMap","asc","DEFAULT_LOCATION_EDGE_GAP","DEFAULT_FRAME_BORDER_WIDTH","DEFAULT_FILLER_SIZE","HORIZONTAL","VERTICAL","LABEL_GAP","SHOW_DATA_SHADOW_SERIES_TYPE","SliderZoomView","_displayables","_orient","_range","_handleEnds","_size","_handleWidth","_handleHeight","_location","_dragging","_dataShadowInfo","dataZoomModel","_buildView","_updateView","_resetLocation","_resetInterval","barGroup","_renderBackground","_renderHandle","_renderDataShadow","_positionGroup","coordRect","_findCoordRect","ecSize","positionInfo","layoutParams","getLayoutParams","layoutRect","location","targetAxisModel","getFirstTargetAxisModel","otherAxisInverse","_getViewExtent","_onClickPanelClick","info","_prepareDataShadowInfo","series","otherDim","getShadowDim","otherDataExtent","getDataExtent","otherOffset","lastIsEmpty","otherShadowExtent","thisShadowExtent","areaPoints","thisCoord","stride","otherCoord","showDataShadow","eachTargetAxis","dimNames","seriesModels","getAxisProxy","getTargetSeriesModels","thisAxis","getOtherDim","thisDim","displaybles","handles","handleLabels","filler","getCursor","_onDragMove","ondragstart","_showDataInfo","ondragend","_onDragEnd","onmouseover","onmouseout","lineWidth","handleIndex","bRect","handleColor","getPercentRange","viewExtent","_updateInterval","delta","handleEnds","viewExtend","minMaxSpan","findRepresentativeAxisProxy","getMinMaxSpan","percentExtent","minSpan","maxSpan","lastRange","nonRealtime","handleInterval","handle","handleHeight","_updateDataInfo","labelTexts","axisProxy","getAxisModel","dataInterval","calculateDataWindow","end","valueWindow","getDataValueWindow","_formatLabel","orderedHandleEnds","setLabel","barTransform","textPoint","labelFormatter","labelPrecision","getPixelPrecision","valueStr","showOrHide","changed","realtime","_dispatchZoomAction","localPoint","offsetX","offsetY","dataZoomId","getTargetCoordInfo","coordInfoList","Graph","edges","directed","addNode","linkNameList","validEdges","linkCount","link","addEdge","coordSysCtor","dimensionNames","edgeData","datas","datasAttr","IndicatorAxis","getScaleExtent","LogScale","Radar","radarModel","_indicatorAxes","indicatorModel","indicatorAxis","resize","getIndicatorAxes","indicatorIndex","coordToPoint","pointToData","closestAxis","radian","minRadianDiff","closestAxisIdx","coordToData","viewWidth","viewHeight","viewSize","indicatorAxes","radarSeries","increaseInterval","exp10","pow","log","LN10","f","rawExtent","fixedMin","fixedMax","getInterval","setInterval","nicedSplitNumber","halfSplitNumber","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","getRawValue","formattedValue","html","getSortedIndices","valueArr","mapArray","isAscending","textX","textY","labelPosition","isLabelInside","labelLineLen","viewRect","sizeExtent","getLinePoints","offY","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","toArr","toObj","isTheme","axes","axisName","axisOpt","axisPointer","parallel","parallelOpt","calendar","calendarOpt","radarOpt","geoOpt","regionObj","timeline","timelineOpt","toolbox","toolboxOpt","feature","featureOpt","properties","excludes","includes","PI2","RADIAN","minAngle","validDataCount","unitRadian","roseType","stillShowZeroSum","restAngle","valueSumLargerThanMinAngle","currentAngle","dir","paletteScope","categoriesData","getCategoriesData","categoryNameIdxMap","getColorFromPalette","itemStyleList","category","legend","all","title","keep","dataView","lang","dataZoom","back","magicType","line","bar","tiled","restore","saveAsImage","typeNames","pie","scatter","effectScatter","treemap","boxplot","candlestick","heatmap","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","aria","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","middle","allData","partialData","isDataItemOption","DefaultDataProvider","dimSize","seriesDataToSource","_source","_offset","_dimSize","methods","providerMethods","providerProto","pure","persistent","getItem","appendData","appendDataSimply","countSimply","getItemSimply","col","dims","newCol","oldCol","clean","rawValueGetters","arrayRows","getRawValueSimply","objectRows","keyedColumns","original","typedArray","defaultDimValueGetters","getDimValueSimply","converDataValue","_dimensionInfos","_rawData","dimInfo","parseAndCollect","retrieveRawValue","getProvider","getDimensionInfo","retrieveRawAttr","fixShadow","_constant","ContextCachedBy","STYLE_COMMON_PROPS","createLinearGradient","global","canvasGradient","createRadialGradient","fillOpacity","strokeOpacity","lineDashOffset","textRect","transformText","textOrigin","truncate","blend","prevStyle","notCheckCache","__attrCachedBy","STYLE_BIND","fillStyle","strokeStyle","globalAlpha","globalCompositeOperation","hasStroke","getLineScale","hasFill","otherStyle","overwrite","newStyle","getGradient","colorStops","addColorStop","styleProto","hasKeys","supplementVisualOption","mappings","createMappings","visualData","isValidType","__hidden","__alphaForOpacity","Creater","replaceVisualOption","keys","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","split","makeViewBoxTransform","ignoreViewBox","elRoot","ignoreRootClip","xmlNode","parentGroup","defineParsers","def","nodeParsers","_parseText","_textX","_textY","textContent","inheritStyle","circle","ellipse","parsePoints","gradient","_parseGradientColorStops","stopColor","__inheritedStyle","pointsString","attributesMap","defs","onlyInlineStyle","zrStyle","isTextEl","parseTransformAttribute","parseStyleAttribute","svgAttrName","attrValue","elFillProp","elStrokeProp","getPaint","elPropName","textBaseline","urlRegex","str","urlMatch","url","transformRegex","transformOps","console","warn","styleRegex","styleRegResult","styleList","exec","viewBoxScale","viewBoxPosition","parseSVG","DEFAULT_BAR_BOUND","ContinuousModel","calculable","hoverLinkDataSize","hoverLinkOnHandle","_resetRange","resetItemSize","auto","getSelected","oVals","getColorStopValues","iVals","iIdx","oIdx","iLen","oLen","first","stopsLen","stopValues","getAxis","markerHelper","LineDraw","MarkerView","markLineTransform","mlModel","mlType","axisInfo","getAxisInfo","valueDataDim","numCalculate","valueIndex","baseIndex","mlFrom","mlTo","dataTransform","isInifinity","ifMarkLineHasOnlyDim","fromCoord","toCoord","otherDimIndex","containData","markLineFilter","dataFilter","updateSingleMarkerEndLayout","isFrom","xPx","yPx","markLineModel","fromData","__from","toData","__to","markerGroupMap","renderSeries","seriesData","lineDrawMap","lineDraw","updateDataVisualAndLayout","lineColor","dataModel","__keep","coordDimsInfos","optData","dimValueGetter","util","_event","Dispatcher","requestAnimationFrame","Animation","stage","_clips","_running","_time","_pausedTime","_pauseStart","addAnimator","clips","removeAnimator","_update","getTime","deferredEvents","deferredClips","_needsRemove","fire","_startLoop","isFinished","sankeyLayout","sankeyVisual","_echarts","_export","DATAS","MAIN_DATA","main","linkAll","TRANSFERABLE_METHODS","transferInjection","cloneShallowInjection","CHANGABLE_METHODS","changeInjection","dataType","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","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","open","targetNode","treeRoot","transformPath","vMag","vRatio","u","vAngle","acos","processArc","fa","psiDeg","xp","yp","lambda","cxp","cyp","commandReg","numberReg","createPathProxyFromString","prevCmd","cpx","cpy","subpathX","subpathY","cmdList","cmdText","cmdStr","charAt","pLen","ctlPtx","ctlPty","createPathOptions","pathProxy","pathEls","pathList","pathEl","createPathProxy","__dirtyPath","pathBundle","TimelineView","_axis","_viewRect","_timer","_currentPointer","_mainGroup","_labelGroup","timelineModel","mainGroup","_createGroup","labelGroup","_createAxis","_renderAxisLabel","_position","_doPlayStop","_clearTimer","labelPosOpt","horizontal","vertical","playPosition","prevBtnPosition","nextBtnPosition","labelAlignMap","labelBaselineMap","rotationMap","mainLength","controlModel","showControl","controlSize","controlGap","sizePlusGap","labelRotation","controlPosition","showPlayBtn","showPrevBtn","showNextBtn","xLeft","xRight","labelAlign","labelBaseline","rotateOriginX","rotateOriginY","viewBound","getBound","mainBound","labelBound","mainPosition","labelsPosition","mainBoundIdx","toBound","setOrigin","targetGroup","fromPos","boundIdx","newGroup","_renderAxisLine","lineCap","_renderAxisTick","tickCoord","hoverStyleModel","symbolOpt","_changeTimeline","giveSymbol","labels","getViewLabels","labelItem","tickValue","normalLabelModel","formattedLabel","_renderControl","playState","getPlayState","makeBtn","iconPath","willRotate","btn","makeIcon","_handlePlayClick","_renderCurrentPointer","currentIndex","getCurrentIndex","pointerModel","onCreate","pointer","_handlePointerDrag","_handlePointerDragend","pointerMoveTo","onUpdate","nextState","_pointerChangeTimeline","mousePos","_toAxisCoord","_findNearestTick","handleFrame","trans","axisCoord","nextIndex","objPath","noAnimation","DataZoomModel","SliderZoomModel","dataBackground","areaStyle","fillerColor","handleIcon","handleSize","handleStyle","showDetail","zoomLock","RADIAN_EPSILON","_trim","domain","clamp","subDomain","subRange","returnStr","arr","getPrecision","getPrecisionSafe","toString","eIndex","dotIndex","pixelExtent","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","remainder","NEGATIVE_INFINITY","maxId","MAX_SAFE_INTEGER","remRadian","pi2","isRadianAroundZero","TIME_REG","hour","toUpperCase","UTC","quantity","quantityExponent","exp","nf","exponent","quantile","ascArr","H","littleThan","currClose","_dataProvider","getTooltipMarker","formatTpl","getTooltipRenderMode","DIMENSION_LABEL_REG","rawValue","rawDataIndex","renderModeOption","renderMode","isSeries","componentSubType","marker","labelProp","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","pathToDataUrl","getDataURL","excludeComponents","excludesComponentViews","view","__viewId","getType","toDataURL","getConnectedDataURL","groupId","MAX_NUMBER","connectedGroups","canvasList","instances","chart","canvas","getBoundingClientRect","targetCanvas","createCanvas","connectedBackgroundColor","refreshImmediately","containPixel","models","defaultMainType","dataIndexInside","indexOfRawIndex","getViewOfComponentModel","componentModel","getViewOfSeriesModel","prepareAndUpdate","coordSysMgr","restoreData","clearColorPalette","setBackgroundColor","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","lineHeight","getBoxPosition","baseX","baseY","setTextTransform","boxY","adjustTextY","getTextXForPadding","canCacheByTextString","tspanList","__tspanList","tspanOriginLen","__canCacheByTextString","__text","updateTextLocation","textLines","nTextLines","tspan","singleLineText","__zrText","createTextNode","removeChild","breadcrumbs","scopedSlots","_u","_l","tab","staticClass","class","active","activeTab","$event","_v","_s","proxy","jumpDevDoc","_e","tabs","app_name","showUpdateNameDialog","app_id","switchAppKey","app_key","staticStyle","showResetAppKeyDialog","gateway","showCallbackUrlDialog","showEmailAdminDialog","function_id","slot","onSelectPeriodChange","cTimePickerOptions","onSelectDateChange","periodOptions","columns","onPick","dateRange","disabledDate","subtract","orderList","loading","$route","setDate","setMonth","createChart","div","getElementById","textColor","maskColor","format","curEnterprise","developer_id","resp","files","max_online_files","pages","users","optionData","$store","getters","EPosition","_m","apiType","apiList","apiUrl","WEBOFFICE_API_DOC_URL","apiParams","required","message","request","responseURL","statusText","API_TYPE_LIST","API_LIST","QUERY","BODY","values","find","_w_appid","$nextTick","clearValidate","forEach","response","Button","VueJsonPretty","routeName","showAction","hideAppKey","newValue","oldValue","$message","$dialog","body","EmailAdmin","bodyProps","is_wwo","InputForm","setCallbackUrl","buttons","callbackUrl","urlParams","dialogBody","resetAppKey","success","maxlength","updateName","appName","AdminLayout","ApiUsage","ApiTool","scaleAndAdd","lenSquare","lengthSquare","dot","distance","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","newLine","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","roamTransform","lng","lat","isInRange","getNormalizer","getColorMapper","curveTool","_graphHelper","v3","v2DistSquare","intersectCurveCircle","curvePoints","radiusSquare","_t","nextDiff","tmp0","quadraticSubdivide","pts","pts2","fromSymbol","toSymbol","__original","originalPoints","globalCoord","AxisPointerModel","snap","triggerTooltip","shadowStyle","axisModelCreator","AxisModel","gridIndex","gridId","getAxisType","extraOption","logError","_roamHelper","updateCenterAndZoom","seriesGroup","interactionMutex","pointerChecker","_opt","mousedownHandler","mousedown","mousemoveHandler","mousemove","mouseupHandler","mouseup","mousewheelHandler","mousewheel","pinchHandler","controlType","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","isDragging","isPinching","_pinching","isMiddleOrRightButtonOnMouseUpDown","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","parsed","regionName","specialArea","regionRect","positiveBorderColorQuery","negativeBorderColorQuery","positiveColorQuery","negativeColorQuery","performRawSeries","isLargeRender","colorP","getColor","colorN","borderColorP","getBorderColor","borderColorN","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","getLabelAttr","labelMinAngle","labelPadding","rotateType","stateAttr","visualMetaList","getRootId","activeNode","policy","featureManager","saveAsImageLang","SaveAsImage","unusable","proto","MouseEvent","msSaveOrOpenBlob","bstr","atob","u8arr","Uint8Array","charCodeAt","blob","Blob","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","multipleSeries","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","n1","n2","ignoreForceLayout","forceInstance","gravity","friction","oldStep","getNodeByIndex","stopped","ifAxisCrossZero","estimateLabelUnionRect","Cartesian2D","Axis2D","isAxisUsedInTheGrid","Grid","_coordsMap","_coordsList","_axesMap","_axesList","_initCartesian","gridProto","fixAxisOnZero","axesMap","otherAxisDim","onZeroRecords","otherAxes","onZeroAxisIndex","canOnZeroToAxis","getOnZeroRecordKey","updateAxisTransform","axisExtentSum","_updateScale","ignoreContainLabel","gridRect","axesList","adjustAxes","labelUnionRect","axesMapOnDim","coordList","getCartesians","_findConvertTarget","xAxisModel","yAxisModel","coordsList","axisPositionUsed","axesCount","createAxisCreator","addAxis","isCartesian2D","axesModels","findAxesModels","otherAxis","axesTypes","grids","nodeOpacityPath","lineOpacityPath","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","_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","_fourPointsTransform","buildTransformer","isDomLevel2","addEventListener","MOUSE_EVENT_REG","EVENT_SAVED_PROP","_calcOut","calculate","calculateZrXY","layerX","layerY","ex","clientX","ey","clientY","saved","transformer","preparePointerTransformer","prepareCoordMarkers","propLR","propTB","idxLR","idxTB","oldSrcCoords","srcCoords","useOld","destCoords","ii","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","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","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","axisPointerModelHelper","_axisPointer","fixValue","updateAxisPointer","disposeAxisPointer","axisView","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","isClipped","elementCreator","updateStyle","removeRect","removeSector","cartesian2d","coordSysBoundingRect","signWidth","signHeight","animateProperty","animateTarget","isRadial","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","isPolar","getBarItemStyle","labelPositionOutside","rawLayout","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","__largeDataIndices","__barWidth","largePathUpdateDataIndex","largePath","largePathFindDataIndex","valueDimIdx","largeDataIndices","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","barBaseVal","barValueVal","_curve","containStroke","registerSubTypeDefaulter","_barGrid","prepareLayoutBarSeries","makeColumnLayout","retrieveColumnLayout","axisDataLen","scaleType","originalExtent","getCategories","setBlank","isBaseAxisAndHasBarSeries","barSeriesModels","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","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","getViewportRoot","_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","_center","_zoom","setBoundingRect","setViewRect","rawTransform","centerCoord","_updateCenterAndZoom","getDefaultCenter","rawRect","getCenter","rawTransformMatrix","defaultCenter","roamTransformable","_rawTransform","_layoutHelper","_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","__edge","getEdgeShape","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","ownerDocument","value1","retrieve3","value2","Function","primitiveKey","HashMap","isArr","thisMap","visit","concatArray","newArray","eachAfter","eachBefore","newSnapshot","snapshot","_targetList","_selectTargetMap","targetMap","select","unSelect","toggleSelected","nameRotate","nameTruncate","ellipsis","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","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","RegExp","parseTSVContents","tsv","tsvLines","header","parseListContents","hasName","parseContents","blockMetaList","blocks","blockMeta","DataView","tryMergeDataOption","readOnly","optionToContent","contentToOption","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","viewMain","textarea","htmlOrDom","buttonContainer","buttonStyle","closeButton","refreshButton","newSeriesOptList","renderText","getStroke","actionInfos","polarOptArr","polarNotRadar","polarOpt","polarIndex","radarIndex","foundAxisModel","layoutBox","boxLayoutParams","resourceName","getWebofficeList","Get","getWebofficeById","applyWeboffice","Post","resetWebofficeKey","Put","updateWebofficeInfo","updateWebofficeCallback","statistics","appid","positions","bbWidth","bbHeight","BrushController","history","dataZoomLang","DATA_ZOOM_ID_BASE","DataZoom","_brushController","_onBrush","mount","_isZoomActive","featureModel","updateZoomBtnStatus","updateBackBtnStatus","handlers","unmount","nextActive","dataZoomSelectActive","retrieveAxisSetting","setIconStatus","zoomActive","include","setPanels","makePanelOpts","xAxisDeclared","yAxisDeclared","enableBrush","brushStyle","updateCovers","matchOutputRanges","coordRange","setBatch","findDataZoom","found","dzModel","dataZoomOpts","dataZoomOpt","addForAxis","axisIndicesName","givenAxisIndices","forEachComponent","$fromToolbox","SHADOW_PROPS","coordSysLists","coordIndex","LinePath","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","setLinePoints","updateSymbolAndLabelBeforeLineUpdate","lineGroup","symbolFrom","symbolTo","pointAt","toPos","tangent","tangentAt","__position","halfPercent","__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","hasCallback","seriesSymbol","seriesSymbolSize","itemSymbolType","itemSymbolSize","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","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","nodeY","weightedSource","PLAIN_TEXT","WILL_BE_RESTORED","markerRich","startId","endId","updateMarkerLayout","markPointModel","mpModel","symbolDrawMap","symbolDraw","isFnSymbol","isFnSymbolSize","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","tickModel","getTickModel","minorTickModel","minorTicks","getMinorTicks","minorTicksGroup","getRotate","langSelector","defaultSelectorOption","LegendModel","_updateSelector","_updateData","hasSelected","potentialData","availableNames","isPotential","getAllNames","_availableNames","allSelect","inverseSelect","borderRadius","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","__data","ToolboxModel","featureName","Feature","showTitle","iconStyle","containLabel","_zrender","ITEM_STYLE_NORMAL","seriesItemStyleModel","levelItemStyles","travelTree","designatedVisual","viewRootAncestors","nodeModel","nodeLayout","isInView","thisNodeColor","nodeItemStyleModel","levelItemStyle","visuals","buildVisuals","borderColorSaturation","calculateColor","calculateBorderColor","buildVisualMapping","childVisual","visualName","getValueVisualDefine","rangeVisual","getRangeVisual","visualMin","visualMax","colorMappingBy","__drColorMappingBy","childVisuals","mappingType","mapIdToIndex","hasXOrY","hasXAndY","markerTypeCalculatorWithExtent","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","markerTypeCalculator","average","baseDataDim","dataDimToCoordDim","RadiusAxis","radiusToData","_treeHelper","_viewRoot","clipWindow","squareRatio","leafDepth","drillDownIcon","zoomToNodeRatio","emptyItemWidth","upperLabel","gapWidth","visualDimension","visibleMin","childrenVisibleMin","completeTreeValue","setDefault","setLayoutInfo","idIndexMap","_idIndexMap","_idIndexMapCount","childValue","thisValue","globalColorList","hasColorDefine","modelColor","level0","mapLocation","largeLayout","_symbolRadiansHalf","basedOn","_layoutNodesBasedOn","x12","y12","unitAngle","radianHalf","sumRadian","symbolRadianHalf","halfRemainRadian","_a","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","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","valuePair","pointsOffset","idxOffset","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","drawBackground","propItem","styleProp","ctxProp","textStrokeWidthPrev","strokeWidthChanged","strokeChanged","getFill","strokeText","fillText","parseRichText","drawRichText","contentWidth","lineTop","token","tokens","tokenCount","usedWidth","lineXLeft","lineXRight","placeToken","tokenStyle","isLineHolder","setCtx","isPlainBg","originalGlobalAlpha","onBgImageLoaded","PointerPath","parsePosition","formatLabel","GaugeView","posInfo","_renderMain","axisLineModel","angleRangeSpan","prevEndAngle","axisLineWidth","showAxis","_renderTicks","_renderPointer","_renderTitle","_renderDetail","minVal","maxVal","subSplitNumber","splitLineLen","tickLen","subStep","splitLineStyle","tickLineStyle","tickLine","valueExtent","detailModel","linesLayout","linesVisual","vmlCore","comma","imageTransformPrefix","Z2","ZLEVEL_BASE","Z_BASE","initRootElStyle","coordsize","coordorigin","encodeHtmlAttribute","String","rgb2Str","append","getZIndex","setColorAndOpacity","getColorAndAlpha","updateFillNode","zrEl","gradientType","focus","expansion","cs1","cs2","colorAndAlphaList","colorAndAlpha","color1","color2","opacity1","opacity2","focusposition","updateStrokeNode","dashstyle","updateFillAndStroke","vmlEl","isFill","createNode","nPoint","brushVML","vmlRoot","_vmlEl","needTransform","strokeEl","weight","zIndex","removeRectText","onRemove","onAdd","appendRectText","isImage","ow","oh","_imageSrc","_imageWidth","_imageHeight","imageRuntimeStyle","runtimeStyle","oldRuntimeWidth","oldRuntimeHeight","sw","sh","hasCrop","doc","vmlElStyle","hasRotation","transformFilter","imageEl","_imageEl","cropEl","_cropEl","imageELStyle","tmpImage","overflow","cropElStyle","filterStr","textMeasureEl","DEFAULT_STYLE_NORMAL","fontStyleCache","fontStyleCacheCount","MAX_FONT_CACHE_SIZE","fontEl","getFontStyle","fontString","variant","fontVariant","family","offsetWidth","fromTextEl","textLine","textPathEl","skewEl","textVmlEl","_textVmlEl","textpathok","textVmlElStyle","string","polygonContain","getLineSelectors","xyIndex","inLineRange","layoutRange","showContent","alwaysShowContent","displayMode","confine","showDelay","hideDelay","extraCssText","crossStyle","AngleAxis","angleToData","ordinalScale","ordinalExtent","unitSpan","unitH","maxH","cache","lastAutoInterval","lastTickCount","percentPrecision","borderType","VISUAL_PRIORITY","resultVisual","visualMeta","concreteDim","opacityMap","itemOpacity","LargeSymbolDraw","_updateSymbolDraw","_getClipShape","_finished","someVectorAt","isTangent","DATA_NAME_INDEX","ThemeRiverSeries","fixData","rawDataLength","layData","dataList","largestLayer","timeValue","keyIndex","lenCount","indexArr","index1","index2","nestestValue","nearestIdx","theValue","htmlName","htmlValue","_updateLineDraw","isSvg","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","bgEl","background","thisWidth","thisHeight","thisInvisible","thisRawIndex","oldRawIndex","isParent","itemStyleNormalModel","itemStyleEmphasisModel","giveGraphic","bg","renderContent","useUpperLabel","visualBorderColor","emphasisBorderColor","upperLabelWidth","prepareText","contentHeight","__tmWillVisible","upperLabelRect","iconChar","minChar","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","selfBuilderAttr","SingleAxisView","Animatable","animators","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","updateController","modelId","$from","getDataWithEncodedVisual","dataWithEncodedVisual","IRRELEVANT_EXCLUDES","targetCoordSysModel","topTarget","colorAll","labelDims","_subPixelOptimize","subPixelOptimizeOutputShape","EFFECT_RIPPLE_NUMBER","updateRipplePath","rippleGroup","effectCfg","rippleEffectColor","ripplePath","effectSymbolProto","stopEffectAnimation","startEffectAnimation","effectOffset","rippleScale","updateEffectAnimation","oldEffectCfg","_effectCfg","DIFFICULT_PROPS","_parseSVG","originRoot","buildGraphic","field","rootMap","originRootHostKey","svgXML","svgWidth","svgHeight","BOOST_SIZE_THRESHOLD","LargeSymbolPath","symbolProxy","softClipShape","symbolProxyShape","canBoost","largeSymbolProto","endIndex","byteOffset","extrudeShadow","_traversalHelper","sep","commonLayout","coorX","coorY","finalCoor","QUERY_REG","_timelineOptions","_mediaList","_mediaDefault","_currentMediaIndices","_optionBackup","_newBaseOption","parseRawOption","rawOption","mediaDefault","timelineOptions","mediaList","media","singleMedia","preProcess","applyMediaQuery","realMap","aspectratio","applicatable","matched","operator","realAttr","real","expect","indicesEquals","indices1","indices2","oldOption","newCptOpt","oldCptOpt","oldOptionBackup","newParsedOption","isRecreate","optionBackup","Draggable","_dragStart","_drag","_dragEnd","draggingTarget","_draggingTarget","dispatchToElement","dropTarget","lastDropTarget","_dropTarget","rootDepth","renderRollupNode","rPerLevel","rStart","rEnd","siblingAngle","isAsc","sortOrder","axisTrigger","collect","realIndex","paramsSet","reals","fakeValue","layoutInput","rParam","pathContain","pathProxyForDraw","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","_fillGradient","_strokeGradient","ctxLineDash","shapeCfg","needsUpdateRect","rectWithStroke","_rectWithStroke","lineScale","dirtyPath","__clipTarget","Sub","defaultShape","thisShape","Cartesian","getAxesByScale","axisX","axisY","xScale","yScale","xAxisExtent","yAxisExtent","xExtent","yExtent","_dimName","_axisIndex","_valueWindow","_percentWindow","_dataExtent","_minMaxSpan","_dataZoomModel","calculateDataExtent","seriesExtent","fixExtentByAxis","isCategoryAxis","setAxisModel","isRestore","percentWindow","useOrigin","setMinMaxSpan","percentSpan","valueSpan","getOtherAxisModel","coordSysIndexName","foundOtherAxisModel","isCartesian","otherAxisModel","hasPropModeValue","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","dataWindow","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","originalLarge","originalProgressive","axesInfo","seriesInvolved","coordSysMap","collectAxesInfo","collectSeriesInfo","globalAxisPointerModel","linksOption","linkGroups","coordSysKey","makeKey","axesInfoInCoordSys","baseTooltipModel","saveTooltipAxisInfo","triggerAxis","cross","tooltipAxes","fromTooltip","axisPointerShow","isHandleTrigger","makeAxisPointerModel","involveSeries","groupIndex","getLinkGroupIndex","linkGroup","mapper","tooltipAxisPointerModel","volatileOption","labelOption","tooltipAxisPointerLabelShow","seriesTooltipTrigger","seriesTooltipShow","seriesDataCount","linkOption","checkPropInLink","linkPropValue","axisPropValue","GRADIENT_LEVELS","Heatmap","_gradientPixels","colorFunc","_getBrush","gradientInRange","_getGradient","gradientOutOfRange","imageData","getImageData","pixels","pixelLen","diffOpacity","gradientOffset","putImageData","brushCanvas","_brushCanvas","gradientPixels","pixelsSingleState","Uint8ClampedArray","TOUCH_CLICK_DELAY","globalEventSupported","localNativeListenerNames","mouseHandlerNames","touchHandlerNames","pointerEventNameMap","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","mouse","globalNativeListenerNames","eventNameFix","isPointerFromTouch","pointerType","setTouchTimer","touching","touchTimer","markTouch","normalizeGlobalEvent","instance","FakeGlobalEvent","isLocalEl","isLocal","painterRoot","currentTarget","fakeGlobalEventProto","stopImmediatePropagation","localDOMHandlers","_mayPointerCapture","downPoint","togglePointerCapture","mouseout","_pointerCapturing","zrEventControl","toElement","relatedTarget","zrIsToLocalDOM","touchstart","_lastTouchMoment","processGesture","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","domHandlers","nativeEventName","mountSingleDOMEventListener","mountGlobalDOMEventListeners","nativeEventListener","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","isPointerCapturing","globalHandlerScope","_globalHandlerScope","DOMHandlerScope","HandlerDomProxy","_localHandlerScope","handlerDomProxyProto","setCursor","processedMapType","mapSymbolOffsets","subMapSeries","dimAxisMapper","_axes","_dimList","_dataCoordConvert","dimList","SankeySeries","localPosition","rawDataOpt","layoutIterations","makeAction","PROXIMATE_ONE_DAY","Calendar","calendarModel","_rangeInfo","_sw","_sh","getFirstDayOfWeek","_firstDayOfWeek","getDateInfo","day","getDay","formatedDate","getNextNDay","_lineWidth","_getRangeInfo","_initRangeOption","whNames","cellNumbers","cellSizeSpecified","whGlobal","calendarRect","dayInfo","week","nthWeek","pointToDate","tl","tr","br","bl","nthX","nthY","_getDateByWeeksAndDay","reversed","startDateNum","endDateNum","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","_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","defineProperty","configurable","enumerable","__esModule","__e","Symbol","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","beforeCreate","_injectStyles","esModule","__g","P","W","_","virtual","U","TypeError","writable","propertyIsEnumerable","copyright","SimpleText","VueCheckbox","VueRadio","BracketsLeft","BracketsRight","deep","showLength","Boolean","showDoubleQuotes","selectableType","showSelectController","showLine","selectOnClickNode","pathSelectable","highlightMouseoverNode","highlightSelectedNode","collapsedOnClickBrackets","parentData","currentDeep","currentKey","visible","isMouseover","currentCheckboxVal","computed","$emit","lastKey","notLastKey","selectable","isMultiple","isSingle","propsError","handleValueChange","findIndex","handleClick","_uid","handleItemClick","handleItemChange","handleMouseover","handleMouseout","keyFormatter","errorCaptured","watch","immediate","showComma","parentDataType","textFormatter","currentPath","mixins","closedBracketsGenerator","bracketsFormatter","lengthGenerator","dataVisible","toggleBrackets","assign","valueOf","getOwnPropertySymbols","_i","O","entries","contentWindow","defineProperties","documentElement","getPrototypeOf","return","getIteratorMethod","callee","directives","rawName","domProps","checked","_q","mouseover","locals","btoa","sources","sourceRoot","unescape","encodeURIComponent","JSON","refs","parts","querySelector","css","sourceMap","styleSheet","childNodes","ssrId","DEBUG","PictorialBarSeries","sunburstLayout","previousZoom","fixX","fixY","cubic","quadratic","swapExtrema","windingCubic","nRoots","y0_","y1_","nExtrema","windingQuadratic","y_","windingArc","containPath","isStroke","_axesLayout","restrict","layoutAxisWithoutExpand","layoutLength","axisCount","axisNameAvailableWidth","axisLabelShow","layoutAxisWithExpand","nameTruncateMaxWidth","axisCollapseWidth","winInnerIndices","axisExpandWindow0Pos","axisExpandWindow","_updateAxesFromSeries","_makeLayoutInfo","axisBase","layoutBase","pixelDimIndex","pAxis","pLayout","_layoutAxes","winSize","layoutExtent","positionTable","rotationTable","axisCoordToPoint","dataDimensions","hasActiveSet","lenj","getActiveState","getSlidedAxisExpandWindow","behavior","pointCoord","triggerArea","useJump","PolarAxisModel","polarId","polarAxisDefaultExtendedOption","treemapVisual","treemapLayout","listComponentHelper","toolboxModel","featureOpts","_features","featureNames","_featureNames","processFeature","titleText","__title","needPutOnTop","topOffset","oldName","isUserFeatureName","createIconPaths","iconName","iconPaths","iconStatus","iconStyleModel","iconStyleEmphasisModel","titles","defaultTextPosition","parseInt10","checkParentAvailable","insertAfter","prevSibling","prepend","SVGPainter","_opts","gradientManager","clipPathManager","shadowManager","viewport","_viewport","_visibleList","createMethodNotSupport","viewportRoot","_paintList","visibleList","listLen","newVisibleList","prevSvgElement","textSvgElement","_getDefs","_getSize","_width","_height","viewportStyle","whIdx","cwh","plt","prb","outerHTML","repeat","createPattern","moveAnimation","propsEqual","lastProp","lastProps","newProps","updateLabelShowHide","labelEl","getHandleTransProps","updateMandatoryProps","_group","_lastGraphicKey","_handle","_lastValue","_lastStatus","_payloadInfo","_axisModel","_axisPointerModel","_moveAnimation","determineAnimation","doUpdateProps","updatePointerEl","updateLabelEl","createPointerEl","createLabelEl","useSnap","pointerEl","handleModel","onmousedown","_onHandleDragMove","_onHandleDragEnd","includeStyles","_moveHandleToValue","_doDispatchAxisPointer","payloadInfo","doClear","buildLabel","xDimIndex","BoxplotView","constDim","updateNormalBoxData","BoxPath","TimelineModel","SliderTimelineModel","checkpointStyle","playIcon","stopIcon","nextIcon","prevIcon","idStart","colorQuery","opacityQuery","restoreLang","Restore","prepareCartesian2d","prepareGeo","prepareSingleAxis","preparePolar","prepareCalendar","ITEM_STYLE_NORMAL_PATH","ITEM_STYLE_EMPHASIS_PATH","LABEL_NORMAL","LABEL_EMPHASIS","GROUP_DIFF_PREFIX","prepareCustoms","getPathData","__customPathData","__customImagePath","__customText","__customGraphicType","updateEl","isRoot","transitionProps","prepareStyleTransition","targetOpacity","styleEmphasis","oldElStyle","makeRenderItem","customSeries","prepareResult","currDataIndexInside","currItemModel","currLabelNormalModel","currLabelEmphasisModel","currVisualColor","userAPI","barLayout","currentSeriesIndices","userParams","dataInsideLength","wrapEncodeDef","currDirty","updateCache","applyExtraBefore","applyExtraAfter","doCreateOrUpdate","simplyRemove","elOptionType","elOptionShape","hasOwnPathData","hasOwn","mergeChildren","$mergeChildren","byName","diffChildrenByName","diffGroupChildren","processAddUpdate","processRemove","childOption","dummyModel","stylePropName","useTransform","setIncrementalAndHoverLayer","elementName","makeCategoryLabels","makeRealNumberLabels","makeCategoryTicks","makeCategoryLabelsActually","labelCategoryInterval","numericLabelInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","tickCategoryInterval","ticksCache","optionTickInterval","labelsResult","autoInterval","fetchAutoCategoryIntervalCalculationParams","axisRotate","unitW","maxW","axisExtend0","axisExtend1","categoryInterval","onlyTick","startTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tVal","DUMMY_COMPONENT_NAME_PREFIX","subOpts","subOptName","newCptOptions","cptOption","idMap","existCpt","idNum","batchA","batchB","mapA","mapB","makeMap","mapToArray","sourceBatch","otherMap","otherDataIndices","isData","innerUniqueIndex","hostObj","parsedKey","queryType","queryParam","_setting","_isBlank","childCount","_doAdd","addBefore","includeChildren","tmpMat","extremity","xDim","yDim","_baseAxisDim","addOrdinal","xAxisType","yAxisType","baseAxisDimIndex","baseAxisType","otherAxisType","newOptionData","newItem","getNearestColorPalette","paletteNum","colorIdx","colorNameMap","scopeFields","defaultColorPalette","layeredColorPalette","colorPalette","doneCallback","elExistsMap","fixPosition","textWidthCache","textWidthCacheCounter","TEXT_CACHE_MAX","STYLE_REG","measureText","getRichTextRect","getPlainTextRect","halfHeight","adjustTextPositionOnRect","dummyStyle","prepareTruncateOptions","truncateSingleLine","maxIterations","cnCharWidth","ascCharWidth","ellipsisWidth","subLength","estimateLength","charCode","getLineHeight","truncOuterHeight","truncOuterWidth","matchedIndex","pushTokens","substring","stlPadding","truncateWidth","truncateHeight","tokenHeight","tokenWidth","tokenWidthNotSpecified","percentWidth","bgImg","paddingW","remianTruncWidth","isEmptyStr","strs","tokensLen","renderPlanner","Chart","renderTaskPlan","renderTaskReset","toggleHighlight","chartProto","elSetState","progressMethodMap","forceFirstProgress","VMLPainter","vmlViewport","_vmlRoot","_vmlViewport","_firstPaint","__alreadyNotVisible","_getWidth","_getHeight","vmlViewportStyle","paddingLeft","paddingRight","paddingTop","paddingBottom","seriesItem","replacableOptionKeys","dataBound","contentColor","getTargetSeriesIndices","optionSeriesIndex","isMinMax","optDim","listDimensions","isCalculationCoord","completeSingle","defa","completeInactive","stateExist","stateAbsent","optExist","optAbsent","completeController","symbolExists","symbolSizeExists","modelHelper","illegalPoint","isIllegalPoint","inputAxesInfo","shouldHide","outputFinder","showValueMap","updaters","showPointer","showTooltip","coordSysContainsPoint","inputAxisInfo","findInputAxisInfo","processOnAxis","linkTriggers","tarAxisInfo","tarKey","srcAxisInfo","srcKey","srcValItem","makeMapperParam","updateModelActually","dispatchTooltipActually","dispatchHighDownActually","dontSnap","buildPayloadsBySeries","payloadBatch","snapToValue","seriesNestestValue","coordSysItem","coordSysId","coordSysIndex","coordSysMainType","outputAxesInfo","valItem","highDownKey","lastHighlights","newHighlights","toHighlight","toDownplay","setScrollDataIndex","rawGeoJson","rawSpecialAreas","parsers","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","layerList","zi","useTimer","now","firstEl","dTime","prevElClipPaths","currentLayer","forcePaint","insertLayer","layersMap","prevLayer","prevDom","eachLayer","getLayers","updatePrevLayer","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","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","lineAnimationDiff","isPointsSame","points2","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","_splitAreaColors","areaColorsLen","lastSplitAreaColors","newSplitAreaColors","cIndex","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","emails","email","emailRules","refInFor","curActionType","curActionIdx","setCurAction","delCurItem","cancelEdit","editCurItem","addEmailForm","addEmail","submitEmailConf","axios","isSubscribe","curInputEmail","delIdxRecords","updateRecords","preEditEmail","preEditIdx","isAddConfig","fetchEmailList","resultData","object","handledEmails","is_subscribed","initPreEditData","initCurAction","indexVal","isNewAddEmail","findEmailAccIdx","$confirm","confirmButtonText","cancelButtonText","appendEmails","developerIdParam","companyEmail","updateIdxRecords","updateValueRecords","append_emails","delete_index","modify_index","modify_emails","userInfo","developer","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","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","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-761f05ec.9214a660.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 bind = zrUtil.bind;\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(bind(this.getData, this), 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 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 * 设置动画关键帧\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 * 开始执行动画\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 * 停止动画\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 * 设置动画延迟开始的时间\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 * 添加动画结束的回调\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 Model = require(\"../model/Model\");\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 var levelModel = this.getLevelModel();\n var leavesModel;\n\n if (!levelModel && (this.children.length === 0 || this.children.length !== 0 && this.isExpand === false)) {\n leavesModel = this.getLeavesModel();\n }\n\n return itemModel.getModel(path, (levelModel || leavesModel || hostTree.hostModel).getModel(path));\n },\n\n /**\n * @return {module:echarts/model/Model}\n */\n getLevelModel: function () {\n return (this.hostTree.levelModels || [])[this.depth];\n },\n\n /**\n * @return {module:echarts/model/Model}\n */\n getLeavesModel: function () {\n return this.hostTree.leavesModel;\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 * @param {Array.} levelOptions\n * @param {Object} leavesOption\n */\n\nfunction Tree(hostModel, levelOptions, leavesOption) {\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.} treeOptions.levels\n * @param {Array.} treeOptions.leaves\n * @return module:echarts/data/Tree\n */\n\nTree.createTree = function (dataRoot, hostModel, treeOptions, beforeLink) {\n var tree = new Tree(hostModel, treeOptions.levels, treeOptions.leaves);\n var listData = [];\n var dimMax = 1;\n buildHierarchy(dataRoot);\n\n function buildHierarchy(dataNode, parentNode) {\n var value = dataNode.value;\n dimMax = Math.max(dimMax, zrUtil.isArray(value) ? value.length : 1);\n listData.push(dataNode);\n var node = new TreeNode(dataNode.name, tree);\n parentNode ? addChild(node, parentNode) : tree.root = node;\n\n tree._nodes.push(node);\n\n var children = dataNode.children;\n\n if (children) {\n for (var i = 0; i < children.length; i++) {\n buildHierarchy(children[i], node);\n }\n }\n }\n\n tree.root.updateDepthAndHeight(0);\n var dimensionsInfo = createDimensions(listData, {\n coordDimensions: ['value'],\n dimensionsCount: dimMax\n });\n var list = new List(dimensionsInfo, hostModel);\n list.initData(listData);\n linkList({\n mainData: list,\n struct: tree,\n structAttr: 'tree'\n });\n tree.update();\n beforeLink && beforeLink(list);\n return tree;\n};\n/**\n * It is needed to consider the mess of 'list', 'hostModel' when creating a TreeNote,\n * so this function is not ready and not necessary to be public.\n *\n * @param {(module:echarts/data/Tree~TreeNode|Object)} child\n */\n\n\nfunction addChild(child, node) {\n var children = node.children;\n\n if (child.parentNode === node) {\n return;\n }\n\n children.push(child);\n child.parentNode = node;\n}\n\nvar _default = Tree;\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 zrUtil = require(\"zrender/lib/core/util\");\n\nvar VisualMapModel = require(\"./VisualMapModel\");\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar visualDefault = require(\"../../visual/visualDefault\");\n\nvar _number = require(\"../../util/number\");\n\nvar reformIntervals = _number.reformIntervals;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 PiecewiseModel = VisualMapModel.extend({\n type: 'visualMap.piecewise',\n\n /**\n * Order Rule:\n *\n * option.categories / option.pieces / option.text / option.selected:\n * If !option.inverse,\n * Order when vertical: ['top', ..., 'bottom'].\n * Order when horizontal: ['left', ..., 'right'].\n * If option.inverse, the meaning of\n * the order should be reversed.\n *\n * this._pieceList:\n * The order is always [low, ..., high].\n *\n * Mapping from location to low-high:\n * If !option.inverse\n * When vertical, top is high.\n * When horizontal, right is high.\n * If option.inverse, reverse.\n */\n\n /**\n * @protected\n */\n defaultOption: {\n selected: null,\n // Object. If not specified, means selected.\n // When pieces and splitNumber: {'0': true, '5': true}\n // When categories: {'cate1': false, 'cate3': true}\n // When selected === false, means all unselected.\n minOpen: false,\n // Whether include values that smaller than `min`.\n maxOpen: false,\n // Whether include values that bigger than `max`.\n align: 'auto',\n // 'auto', 'left', 'right'\n itemWidth: 20,\n // When put the controller vertically, it is the length of\n // horizontal side of each item. Otherwise, vertical side.\n itemHeight: 14,\n // When put the controller vertically, it is the length of\n // vertical side of each item. Otherwise, horizontal side.\n itemSymbol: 'roundRect',\n pieceList: null,\n // Each item is Object, with some of those attrs:\n // {min, max, lt, gt, lte, gte, value,\n // color, colorSaturation, colorAlpha, opacity,\n // symbol, symbolSize}, which customize the range or visual\n // coding of the certain piece. Besides, see \"Order Rule\".\n categories: null,\n // category names, like: ['some1', 'some2', 'some3'].\n // Attr min/max are ignored when categories set. See \"Order Rule\"\n splitNumber: 5,\n // If set to 5, auto split five pieces equally.\n // If set to 0 and component type not set, component type will be\n // determined as \"continuous\". (It is less reasonable but for ec2\n // compatibility, see echarts/component/visualMap/typeDefaulter)\n selectedMode: 'multiple',\n // Can be 'multiple' or 'single'.\n itemGap: 10,\n // The gap between two items, in px.\n hoverLink: true,\n // Enable hover highlight.\n showLabel: null // By default, when text is used, label will hide (the logic\n // is remained for compatibility reason)\n\n },\n\n /**\n * @override\n */\n optionUpdated: function (newOption, isInit) {\n PiecewiseModel.superApply(this, 'optionUpdated', arguments);\n /**\n * The order is always [low, ..., high].\n * [{text: string, interval: 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 var index = 0;\n\n if (thisOption.minOpen) {\n pieceList.push({\n index: index++,\n interval: [-Infinity, dataExtent[0]],\n close: [0, 0]\n });\n }\n\n for (var curr = dataExtent[0], len = index + splitNumber; index < len; curr += splitStep) {\n var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n pieceList.push({\n index: index++,\n interval: [curr, max],\n close: [1, 1]\n });\n }\n\n if (thisOption.maxOpen) {\n pieceList.push({\n index: index++,\n interval: [dataExtent[1], Infinity],\n close: [0, 0]\n });\n }\n\n reformIntervals(pieceList);\n zrUtil.each(pieceList, function (piece) {\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 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 fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\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}\n/**\n * @alias module:echarts/component/tooltip/TooltipContent\n * @constructor\n */\n\n\nfunction TooltipContent(container, api) {\n if (env.wxa) {\n return null;\n }\n\n var el = document.createElement('div');\n var zr = this._zr = api.getZr();\n this.el = el;\n this._x = api.getWidth() / 2;\n this._y = api.getHeight() / 2;\n container.appendChild(el);\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 eventUtil.normalizeEvent(container, 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 () {\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 } // Hide the tooltip\n // PENDING\n // this.hide();\n\n },\n show: function (tooltipModel) {\n clearTimeout(this._hideTimeout);\n var el = this.el;\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:' + this._x + 'px;top:' + this._y + 'px;' + (tooltipModel.get('extraCssText') || '');\n el.style.display = el.innerHTML ? 'block' : 'none'; // If mouse occsionally move over the tooltip, a mouseout event will be\n // triggered by canvas, and cuase some unexpectable result like dragging\n // stop, \"unfocusAdjacency\". Here `pointer-events: none` is used to solve\n // it. Although it is not suppored 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 (x, y) {\n // 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 var zr = this._zr;\n var viewportRootOffset;\n\n if (zr && zr.painter && (viewportRootOffset = zr.painter.getViewportRootOffset())) {\n x += viewportRootOffset.offsetLeft;\n y += viewportRootOffset.offsetTop;\n }\n\n var style = this.el.style;\n style.left = x + 'px';\n style.top = y + 'px';\n this._x = x;\n this._y = y;\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 mutiple 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 getOuterSize: function () {\n var width = this.el.clientWidth;\n var height = this.el.clientHeight; // Consider browser compatibility.\n // IE8 does not support getComputedStyle.\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n var stl = document.defaultView.getComputedStyle(this.el);\n\n if (stl) {\n width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n }\n }\n\n return {\n width: width,\n height: height\n };\n }\n};\nvar _default = TooltipContent;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nrequire(\"./gauge/GaugeSeries\");\n\nrequire(\"./gauge/GaugeView\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"../component/parallel\");\n\nrequire(\"./parallel/ParallelSeries\");\n\nrequire(\"./parallel/ParallelView\");\n\nvar parallelVisual = require(\"./parallel/parallelVisual\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(parallelVisual);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./candlestick/CandlestickSeries\");\n\nrequire(\"./candlestick/CandlestickView\");\n\nvar preprocessor = require(\"./candlestick/preprocessor\");\n\nvar candlestickVisual = require(\"./candlestick/candlestickVisual\");\n\nvar candlestickLayout = require(\"./candlestick/candlestickLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerPreprocessor(preprocessor);\necharts.registerVisual(candlestickVisual);\necharts.registerLayout(candlestickLayout);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Axis = require(\"../../coord/Axis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Extend axis 2d\n * @constructor module:echarts/coord/cartesian/Axis2D\n * @extends {module:echarts/coord/cartesian/Axis}\n * @param {string} dim\n * @param {*} scale\n * @param {Array.} coordExtent\n * @param {string} axisType\n * @param {string} position\n */\nvar TimelineAxis = function (dim, scale, coordExtent, axisType) {\n Axis.call(this, dim, scale, coordExtent);\n /**\n * Axis type\n * - 'category'\n * - 'value'\n * - 'time'\n * - 'log'\n * @type {string}\n */\n\n this.type = axisType || 'value';\n /**\n * Axis model\n * @param {module:echarts/component/TimelineModel}\n */\n\n this.model = null;\n};\n\nTimelineAxis.prototype = {\n constructor: TimelineAxis,\n\n /**\n * @override\n */\n getLabelModel: function () {\n return this.model.getModel('label');\n },\n\n /**\n * @override\n */\n isHorizontal: function () {\n return this.model.get('orient') === 'horizontal';\n }\n};\nzrUtil.inherits(TimelineAxis, Axis);\nvar _default = TimelineAxis;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _graphic = require(\"../../util/graphic\");\n\nvar subPixelOptimize = _graphic.subPixelOptimize;\n\nvar createRenderPlanner = require(\"../helper/createRenderPlanner\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar retrieve2 = _util.retrieve2;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Float32Array */\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar _default = {\n seriesType: 'candlestick',\n plan: createRenderPlanner(),\n reset: function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var candleWidth = calculateCandleWidth(seriesModel, data);\n var cDimIdx = 0;\n var vDimIdx = 1;\n var coordDims = ['x', 'y'];\n var cDim = data.mapDimension(coordDims[cDimIdx]);\n var vDims = data.mapDimension(coordDims[vDimIdx], true);\n var openDim = vDims[0];\n var closeDim = vDims[1];\n var lowestDim = vDims[2];\n var highestDim = vDims[3];\n data.setLayout({\n candleWidth: candleWidth,\n // The value is experimented visually.\n isSimpleBox: candleWidth <= 1.3\n });\n\n if (cDim == null || vDims.length < 4) {\n return;\n }\n\n return {\n progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n };\n\n function normalProgress(params, data) {\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = data.get(cDim, dataIndex);\n var openVal = data.get(openDim, dataIndex);\n var closeVal = data.get(closeDim, dataIndex);\n var lowestVal = data.get(lowestDim, dataIndex);\n var highestVal = data.get(highestDim, dataIndex);\n var ocLow = Math.min(openVal, closeVal);\n var ocHigh = Math.max(openVal, closeVal);\n var ocLowPoint = getPoint(ocLow, axisDimVal);\n var ocHighPoint = getPoint(ocHigh, axisDimVal);\n var lowestPoint = getPoint(lowestVal, axisDimVal);\n var highestPoint = getPoint(highestVal, axisDimVal);\n var ends = [];\n addBodyEnd(ends, ocHighPoint, 0);\n addBodyEnd(ends, ocLowPoint, 1);\n ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n data.setItemLayout(dataIndex, {\n sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\n initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n // open point.\n ends: ends,\n brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n });\n }\n\n function getPoint(val, axisDimVal) {\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n var pmin = getPoint(lowestVal, axisDimVal);\n var pmax = getPoint(highestVal, axisDimVal);\n pmin[cDimIdx] -= candleWidth / 2;\n pmax[cDimIdx] -= candleWidth / 2;\n return {\n x: pmin[0],\n y: pmin[1],\n width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n };\n }\n\n function subPixelOptimizePoint(point) {\n point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n return point;\n }\n }\n\n function largeProgress(params, data) {\n // Structure: [sign, x, yhigh, ylow, sign, x, yhigh, ylow, ...]\n var points = new LargeArr(params.count * 4);\n var offset = 0;\n var point;\n var tmpIn = [];\n var tmpOut = [];\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var axisDimVal = data.get(cDim, dataIndex);\n var openVal = data.get(openDim, dataIndex);\n var closeVal = data.get(closeDim, dataIndex);\n var lowestVal = data.get(lowestDim, dataIndex);\n var highestVal = data.get(highestDim, dataIndex);\n\n if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n points[offset++] = NaN;\n offset += 3;\n continue;\n }\n\n points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\n tmpIn[cDimIdx] = axisDimVal;\n tmpIn[vDimIdx] = lowestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[0] : NaN;\n points[offset++] = point ? point[1] : NaN;\n tmpIn[vDimIdx] = highestVal;\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n points[offset++] = point ? point[1] : NaN;\n }\n\n data.setLayout('largePoints', points);\n }\n }\n};\n\nfunction getSign(data, dataIndex, openVal, closeVal, closeDim) {\n var sign;\n\n if (openVal > closeVal) {\n sign = -1;\n } else if (openVal < closeVal) {\n sign = 1;\n } else {\n sign = dataIndex > 0 // If close === open, compare with close of last record\n ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : // No record of previous, set to be positive\n 1;\n }\n\n return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n var baseAxis = seriesModel.getBaseAxis();\n var extent;\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n var barWidth = seriesModel.get('barWidth');\n return barWidth != null ? parsePercent(barWidth, bandWidth) // Put max outer to ensure bar visible in spite of overlap.\n : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nrequire(\"./dataZoomSlider\");\n\nrequire(\"./dataZoomInside\");","var eventUtil = require(\"./event\");\n\n/**\n * Only implements needed gestures for mobile.\n */\nvar GestureMgr = function () {\n /**\n * @private\n * @type {Array.}\n */\n this._track = [];\n};\n\nGestureMgr.prototype = {\n constructor: GestureMgr,\n recognize: function (event, target, root) {\n this._doTrack(event, target, root);\n\n return this._recognize(event);\n },\n clear: function () {\n this._track.length = 0;\n return this;\n },\n _doTrack: function (event, target, root) {\n var touches = event.touches;\n\n if (!touches) {\n return;\n }\n\n var trackItem = {\n points: [],\n touches: [],\n target: target,\n event: event\n };\n\n for (var i = 0, len = touches.length; i < len; i++) {\n var touch = touches[i];\n var pos = eventUtil.clientToLocal(root, touch, {});\n trackItem.points.push([pos.zrX, pos.zrY]);\n trackItem.touches.push(touch);\n }\n\n this._track.push(trackItem);\n },\n _recognize: function (event) {\n for (var eventName in recognizers) {\n if (recognizers.hasOwnProperty(eventName)) {\n var gestureInfo = recognizers[eventName](this._track, event);\n\n if (gestureInfo) {\n return gestureInfo;\n }\n }\n }\n }\n};\n\nfunction dist(pointPair) {\n var dx = pointPair[1][0] - pointPair[0][0];\n var dy = pointPair[1][1] - pointPair[0][1];\n return Math.sqrt(dx * dx + dy * dy);\n}\n\nfunction center(pointPair) {\n return [(pointPair[0][0] + pointPair[1][0]) / 2, (pointPair[0][1] + pointPair[1][1]) / 2];\n}\n\nvar recognizers = {\n pinch: function (track, event) {\n var trackLen = track.length;\n\n if (!trackLen) {\n return;\n }\n\n var pinchEnd = (track[trackLen - 1] || {}).points;\n var pinchPre = (track[trackLen - 2] || {}).points || pinchEnd;\n\n if (pinchPre && pinchPre.length > 1 && pinchEnd && pinchEnd.length > 1) {\n var pinchScale = dist(pinchEnd) / dist(pinchPre);\n !isFinite(pinchScale) && (pinchScale = 1);\n event.pinchScale = pinchScale;\n var pinchCenter = center(pinchEnd);\n event.pinchX = pinchCenter[0];\n event.pinchY = pinchCenter[1];\n return {\n type: 'pinch',\n target: track[0].target,\n event: event\n };\n }\n } // Only pinch currently.\n\n};\nvar _default = GestureMgr;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nrequire(\"./legend\");\n\nrequire(\"./legend/ScrollableLegendModel\");\n\nrequire(\"./legend/ScrollableLegendView\");\n\nrequire(\"./legend/scrollableLegendAction\");","// Myers' Diff Algorithm\n// Modified from https://github.com/kpdecker/jsdiff/blob/master/src/diff/base.js\nfunction Diff() {}\n\nDiff.prototype = {\n diff: function (oldArr, newArr, equals) {\n if (!equals) {\n equals = function (a, b) {\n return a === b;\n };\n }\n\n this.equals = equals;\n var self = this;\n oldArr = oldArr.slice();\n newArr = newArr.slice(); // Allow subclasses to massage the input prior to running\n\n var newLen = newArr.length;\n var oldLen = oldArr.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newArr, oldArr, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n var indices = [];\n\n for (var i = 0; i < newArr.length; i++) {\n indices.push(i);\n } // Identity per the equality and tokenizer\n\n\n return [{\n indices: indices,\n count: newArr.length\n }];\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath;\n var addPath = bestPath[diagonalPath - 1];\n var removePath = bestPath[diagonalPath + 1];\n var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen;\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n oldPos = self.extractCommon(basePath, newArr, oldArr, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n return buildValues(self, basePath.components, newArr, oldArr);\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n }\n\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n },\n pushComponent: function (components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n extractCommon: function (basePath, newArr, oldArr, diagonalPath) {\n var newLen = newArr.length;\n var oldLen = oldArr.length;\n var newPos = basePath.newPos;\n var oldPos = newPos - diagonalPath;\n var commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n tokenize: function (value) {\n return value.slice();\n },\n join: function (value) {\n return value.slice();\n }\n};\n\nfunction buildValues(diff, components, newArr, oldArr) {\n var componentPos = 0;\n var componentLen = components.length;\n var newPos = 0;\n var oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n var indices = [];\n\n for (var i = newPos; i < newPos + component.count; i++) {\n indices.push(i);\n }\n\n component.indices = indices;\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n var indices = [];\n\n for (var i = oldPos; i < oldPos + component.count; i++) {\n indices.push(i);\n }\n\n component.indices = indices;\n oldPos += component.count;\n }\n }\n\n return components;\n}\n\nfunction clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n}\n\nvar arrayDiff = new Diff();\n\nfunction _default(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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\n if (geo._roamTransformable.transform) {\n group.transform = geo._roamTransformable.transform.slice();\n group.decomposeTransform();\n }\n\n var scale = geo._rawTransformable.scale;\n var position = geo._rawTransformable.position;\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 regionGroup.add(textEl);\n } // setItemGraphicEl, setHoverStyle after all polygons and labels\n // are added to the rigionGroup\n\n\n if (data) {\n data.setItemGraphicEl(dataIdx, regionGroup);\n } else {\n var regionModel = mapOrGeoModel.getRegionModel(region.name); // Package custom mouse event for geo component\n\n compoundPath.eventData = {\n componentType: 'geo',\n componentIndex: mapOrGeoModel.componentIndex,\n geoIndex: mapOrGeoModel.componentIndex,\n name: region.name,\n region: regionModel && regionModel.option || {}\n };\n }\n\n var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\n groupRegions.push(region);\n regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\n graphic.setHoverStyle(regionGroup, hoverItemStyle);\n regionsGroup.add(regionGroup);\n });\n\n this._updateController(mapOrGeoModel, ecModel, api);\n\n updateMapSelectHandler(this, mapOrGeoModel, regionsGroup, api, fromView);\n updateMapSelected(mapOrGeoModel, regionsGroup);\n },\n remove: function () {\n this._regionsGroup.removeAll();\n\n this._backgroundGroup.removeAll();\n\n this._controller.dispose();\n\n this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid);\n this._mapName = null;\n this._controllerHost = {};\n },\n _updateBackground: function (geo) {\n var mapName = geo.map;\n\n if (this._mapName !== mapName) {\n zrUtil.each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) {\n this._backgroundGroup.add(root);\n }, this);\n }\n\n this._mapName = mapName;\n },\n _updateController: function (mapOrGeoModel, ecModel, api) {\n var geo = mapOrGeoModel.coordinateSystem;\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n controllerHost.zoom = geo.getZoom(); // roamType is will be set default true if it is null\n\n controller.enable(mapOrGeoModel.get('roam') || false);\n var mainType = mapOrGeoModel.mainType;\n\n function makeActionBase() {\n var action = {\n type: 'geoRoam',\n componentType: mainType\n };\n action[mainType + 'Id'] = mapOrGeoModel.id;\n return action;\n }\n\n controller.off('pan').on('pan', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n dx: e.dx,\n dy: e.dy\n }));\n }, this);\n controller.off('zoom').on('zoom', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY\n }));\n\n if (this._updateGroup) {\n var scale = this.group.scale;\n\n this._regionsGroup.traverse(function (el) {\n if (el.type === 'text') {\n el.attr('scale', [1 / scale[0], 1 / scale[1]]);\n }\n });\n }\n }, this);\n controller.setPointerChecker(function (e, x, y) {\n return geo.getViewRectAfterRoam().contain(x, y) && !onIrrelevantElement(e, api, mapOrGeoModel);\n });\n }\n};\nvar _default = MapDraw;\nmodule.exports = _default;","var matrix = require(\"../core/matrix\");\n\nvar vector = require(\"../core/vector\");\n\n/**\n * 提供变换扩展\n * @module zrender/mixin/Transformable\n * @author pissang (https://www.github.com/pissang)\n */\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\n\nfunction isNotAroundZero(val) {\n return val > EPSILON || val < -EPSILON;\n}\n/**\n * @alias module:zrender/mixin/Transformable\n * @constructor\n */\n\n\nvar Transformable = function (opts) {\n opts = opts || {}; // If there are no given position, rotation, scale\n\n if (!opts.position) {\n /**\n * 平移\n * @type {Array.}\n * @default [0, 0]\n */\n this.position = [0, 0];\n }\n\n if (opts.rotation == null) {\n /**\n * 旋转\n * @type {Array.}\n * @default 0\n */\n this.rotation = 0;\n }\n\n if (!opts.scale) {\n /**\n * 缩放\n * @type {Array.}\n * @default [1, 1]\n */\n this.scale = [1, 1];\n }\n /**\n * 旋转和缩放的原点\n * @type {Array.}\n * @default null\n */\n\n\n this.origin = this.origin || null;\n};\n\nvar transformableProto = Transformable.prototype;\ntransformableProto.transform = null;\n/**\n * 判断是否需要有坐标变换\n * 如果有坐标变换, 则从position, rotation, scale以及父节点的transform计算出自身的transform矩阵\n */\n\ntransformableProto.needLocalTransform = function () {\n return isNotAroundZero(this.rotation) || isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1]) || isNotAroundZero(this.scale[0] - 1) || isNotAroundZero(this.scale[1] - 1);\n};\n\nvar scaleTmp = [];\n\ntransformableProto.updateTransform = function () {\n var parent = this.parent;\n var parentHasTransform = parent && parent.transform;\n var needLocalTransform = this.needLocalTransform();\n var m = this.transform;\n\n if (!(needLocalTransform || parentHasTransform)) {\n m && mIdentity(m);\n return;\n }\n\n m = m || matrix.create();\n\n if (needLocalTransform) {\n this.getLocalTransform(m);\n } else {\n mIdentity(m);\n } // 应用父节点变换\n\n\n if (parentHasTransform) {\n if (needLocalTransform) {\n matrix.mul(m, parent.transform, m);\n } else {\n matrix.copy(m, parent.transform);\n }\n } // 保存这个变换矩阵\n\n\n this.transform = m;\n var globalScaleRatio = this.globalScaleRatio;\n\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\n this.getGlobalScale(scaleTmp);\n var relX = scaleTmp[0] < 0 ? -1 : 1;\n var relY = scaleTmp[1] < 0 ? -1 : 1;\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n m[0] *= sx;\n m[1] *= sx;\n m[2] *= sy;\n m[3] *= sy;\n }\n\n this.invTransform = this.invTransform || matrix.create();\n matrix.invert(this.invTransform, m);\n};\n\ntransformableProto.getLocalTransform = function (m) {\n return Transformable.getLocalTransform(this, m);\n};\n/**\n * 将自己的transform应用到context上\n * @param {CanvasRenderingContext2D} ctx\n */\n\n\ntransformableProto.setTransform = function (ctx) {\n var m = this.transform;\n var dpr = ctx.dpr || 1;\n\n if (m) {\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n } else {\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n }\n};\n\ntransformableProto.restoreTransform = function (ctx) {\n var dpr = ctx.dpr || 1;\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n};\n\nvar tmpTransform = [];\nvar originTransform = matrix.create();\n\ntransformableProto.setLocalTransform = function (m) {\n if (!m) {\n // TODO return or set identity?\n return;\n }\n\n var sx = m[0] * m[0] + m[1] * m[1];\n var sy = m[2] * m[2] + m[3] * m[3];\n var position = this.position;\n var scale = this.scale;\n\n if (isNotAroundZero(sx - 1)) {\n sx = Math.sqrt(sx);\n }\n\n if (isNotAroundZero(sy - 1)) {\n sy = Math.sqrt(sy);\n }\n\n if (m[0] < 0) {\n sx = -sx;\n }\n\n if (m[3] < 0) {\n sy = -sy;\n }\n\n position[0] = m[4];\n position[1] = m[5];\n scale[0] = sx;\n scale[1] = sy;\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n};\n/**\n * 分解`transform`矩阵到`position`, `rotation`, `scale`\n */\n\n\ntransformableProto.decomposeTransform = function () {\n if (!this.transform) {\n return;\n }\n\n var parent = this.parent;\n var m = this.transform;\n\n if (parent && parent.transform) {\n // Get local transform and decompose them to position, scale, rotation\n matrix.mul(tmpTransform, parent.invTransform, m);\n m = tmpTransform;\n }\n\n var origin = this.origin;\n\n if (origin && (origin[0] || origin[1])) {\n originTransform[4] = origin[0];\n originTransform[5] = origin[1];\n matrix.mul(tmpTransform, m, originTransform);\n tmpTransform[4] -= origin[0];\n tmpTransform[5] -= origin[1];\n m = tmpTransform;\n }\n\n this.setLocalTransform(m);\n};\n/**\n * Get global scale\n * @return {Array.}\n */\n\n\ntransformableProto.getGlobalScale = function (out) {\n var m = this.transform;\n out = out || [];\n\n if (!m) {\n out[0] = 1;\n out[1] = 1;\n return out;\n }\n\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n\n if (m[0] < 0) {\n out[0] = -out[0];\n }\n\n if (m[3] < 0) {\n out[1] = -out[1];\n }\n\n return out;\n};\n/**\n * 变换坐标位置到 shape 的局部坐标空间\n * @method\n * @param {number} x\n * @param {number} y\n * @return {Array.}\n */\n\n\ntransformableProto.transformCoordToLocal = function (x, y) {\n var v2 = [x, y];\n var invTransform = this.invTransform;\n\n if (invTransform) {\n vector.applyTransform(v2, v2, invTransform);\n }\n\n return v2;\n};\n/**\n * 变换局部坐标位置到全局坐标空间\n * @method\n * @param {number} x\n * @param {number} y\n * @return {Array.}\n */\n\n\ntransformableProto.transformCoordToGlobal = function (x, y) {\n var v2 = [x, y];\n var transform = this.transform;\n\n if (transform) {\n vector.applyTransform(v2, v2, transform);\n }\n\n return v2;\n};\n/**\n * @static\n * @param {Object} target\n * @param {Array.} target.origin\n * @param {number} target.rotation\n * @param {Array.} target.position\n * @param {Array.} [m]\n */\n\n\nTransformable.getLocalTransform = function (target, m) {\n m = m || [];\n mIdentity(m);\n var origin = target.origin;\n var scale = target.scale || [1, 1];\n var rotation = target.rotation || 0;\n var position = target.position || [0, 0];\n\n if (origin) {\n // Translate to origin\n m[4] -= origin[0];\n m[5] -= origin[1];\n }\n\n matrix.scale(m, m, scale);\n\n if (rotation) {\n matrix.rotate(m, m, rotation);\n }\n\n if (origin) {\n // Translate back from origin\n m[4] += origin[0];\n m[5] += origin[1];\n }\n\n m[4] += position[0];\n m[5] += position[1];\n return m;\n};\n\nvar _default = Transformable;\nmodule.exports = _default;","var Displayable = require(\"./Displayable\");\n\nvar BoundingRect = require(\"../core/BoundingRect\");\n\nvar zrUtil = require(\"../core/util\");\n\nvar imageHelper = require(\"./helper/image\");\n\n/**\n * @alias zrender/graphic/Image\n * @extends module:zrender/graphic/Displayable\n * @constructor\n * @param {Object} opts\n */\nfunction ZImage(opts) {\n Displayable.call(this, opts);\n}\n\nZImage.prototype = {\n constructor: ZImage,\n type: 'image',\n brush: function (ctx, prevEl) {\n var style = this.style;\n var src = style.image; // Must bind each time\n\n style.bind(ctx, this, prevEl);\n var image = this._image = imageHelper.createOrUpdateImage(src, this._image, this, this.onload);\n\n if (!image || !imageHelper.isImageReady(image)) {\n return;\n } // 图片已经加载完成\n // if (image.nodeName.toUpperCase() == 'IMG') {\n // if (!image.complete) {\n // return;\n // }\n // }\n // Else is canvas\n\n\n var x = style.x || 0;\n var y = style.y || 0;\n var width = style.width;\n var height = style.height;\n var aspect = image.width / image.height;\n\n if (width == null && height != null) {\n // Keep image/height ratio\n width = height * aspect;\n } else if (height == null && width != null) {\n height = width / aspect;\n } else if (width == null && height == null) {\n width = image.width;\n height = image.height;\n } // 设置transform\n\n\n this.setTransform(ctx);\n\n if (style.sWidth && style.sHeight) {\n var sx = style.sx || 0;\n var sy = style.sy || 0;\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n } else if (style.sx && style.sy) {\n var sx = style.sx;\n var sy = style.sy;\n var sWidth = width - sx;\n var sHeight = height - sy;\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n } else {\n ctx.drawImage(image, x, y, width, height);\n } // Draw rect text\n\n\n if (style.text != null) {\n // Only restore transform when needs draw text.\n this.restoreTransform(ctx);\n this.drawRectText(ctx, this.getBoundingRect());\n }\n },\n getBoundingRect: function () {\n var style = this.style;\n\n if (!this._rect) {\n this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0);\n }\n\n return this._rect;\n }\n};\nzrUtil.inherits(ZImage, Displayable);\nvar _default = ZImage;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel, payload) {\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\n var graph = seriesModel.getGraph();\n var nodes = graph.nodes;\n\n if (nodes.length) {\n var minValue = Infinity;\n var maxValue = -Infinity;\n zrUtil.each(nodes, function (node) {\n var nodeValue = node.getLayout().value;\n\n if (nodeValue < minValue) {\n minValue = nodeValue;\n }\n\n if (nodeValue > maxValue) {\n maxValue = nodeValue;\n }\n });\n zrUtil.each(nodes, function (node) {\n var mapping = new VisualMapping({\n type: 'color',\n mappingMethod: 'linear',\n dataExtent: [minValue, maxValue],\n visual: seriesModel.get('color')\n });\n var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n var customColor = node.getModel().get('itemStyle.color');\n customColor != null ? node.setVisual('color', customColor) : node.setVisual('color', mapValueToColor);\n });\n }\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar layoutUtil = require(\"../../util/layout\");\n\nvar LegendView = require(\"./LegendView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Separate legend and scrollable legend to reduce package size.\n */\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\nvar ScrollableLegendView = LegendView.extend({\n type: 'legend.scroll',\n newlineDisabled: true,\n init: function () {\n ScrollableLegendView.superCall(this, 'init');\n /**\n * @private\n * @type {number} For `scroll`.\n */\n\n this._currentIndex = 0;\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n this.group.add(this._containerGroup = new Group());\n\n this._containerGroup.add(this.getContentGroup());\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n\n this.group.add(this._controllerGroup = new Group());\n /**\n *\n * @private\n */\n\n this._showController;\n },\n\n /**\n * @override\n */\n resetInner: function () {\n ScrollableLegendView.superCall(this, 'resetInner');\n\n this._controllerGroup.removeAll();\n\n this._containerGroup.removeClipPath();\n\n this._containerGroup.__rectSize = null;\n },\n\n /**\n * @override\n */\n renderInner: function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var me = this; // Render content items.\n\n ScrollableLegendView.superCall(this, 'renderInner', itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n var controllerGroup = this._controllerGroup; // FIXME: support be 'auto' adapt to size number text length,\n // e.g., '3/12345' should not overlap with the control arrow button.\n\n var pageIconSize = legendModel.get('pageIconSize', true);\n\n if (!zrUtil.isArray(pageIconSize)) {\n pageIconSize = [pageIconSize, pageIconSize];\n }\n\n createPageButton('pagePrev', 0);\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n controllerGroup.add(new graphic.Text({\n name: 'pageText',\n style: {\n textFill: pageTextStyleModel.getTextColor(),\n font: pageTextStyleModel.getFont(),\n textVerticalAlign: 'middle',\n textAlign: 'center'\n },\n silent: true\n }));\n createPageButton('pageNext', 1);\n\n function createPageButton(name, iconIdx) {\n var pageDataIndexName = name + 'DataIndex';\n var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n // Buttons will be created in each render, so we do not need\n // to worry about avoiding using legendModel kept in scope.\n onclick: zrUtil.bind(me._pageGo, me, pageDataIndexName, legendModel, api)\n }, {\n x: -pageIconSize[0] / 2,\n y: -pageIconSize[1] / 2,\n width: pageIconSize[0],\n height: pageIconSize[1]\n });\n icon.name = name;\n controllerGroup.add(icon);\n }\n },\n\n /**\n * @override\n */\n layoutInner: function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n var hw = WH[1 - orientIdx];\n var yx = XY[1 - orientIdx];\n selector && layoutUtil.box( // Buttons in selectorGroup always layout horizontally\n 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var processMaxSize = zrUtil.clone(maxSize);\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx);\n\n if (selector) {\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n } else {\n var offset = selectorRect[wh] + selectorButtonGap;\n selectorPos[orientIdx] -= offset;\n mainRect[xy] -= offset;\n }\n\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n selectorGroup.attr('position', selectorPos);\n }\n\n return mainRect;\n },\n _layoutContentAndController: function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx) {\n var contentGroup = this.getContentGroup();\n var containerGroup = this._containerGroup;\n var controllerGroup = this._controllerGroup; // Place items in contentGroup.\n\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n layoutUtil.box( // Buttons in controller are layout always horizontally.\n 'horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n var contentRect = contentGroup.getBoundingRect();\n var controllerRect = controllerGroup.getBoundingRect();\n var showController = this._showController = contentRect[wh] > maxSize[wh];\n var contentPos = [-contentRect.x, -contentRect.y]; // Remain contentPos when scroll animation perfroming.\n // If first rendering, `contentGroup.position` is [0, 0], which\n // does not make sense and may cause unexepcted animation if adopted.\n\n if (!isFirstRender) {\n contentPos[orientIdx] = contentGroup.position[orientIdx];\n } // Layout container group based on 0.\n\n\n var containerPos = [0, 0];\n var controllerPos = [-controllerRect.x, -controllerRect.y];\n var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true)); // Place containerGroup and controllerGroup and contentGroup.\n\n if (showController) {\n var pageButtonPosition = legendModel.get('pageButtonPosition', true); // controller is on the right / bottom.\n\n if (pageButtonPosition === 'end') {\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n } // controller is on the left / top.\n else {\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n }\n } // Always align controller to content as 'middle'.\n\n\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n contentGroup.attr('position', contentPos);\n containerGroup.attr('position', containerPos);\n controllerGroup.attr('position', controllerPos); // Calculate `mainRect` and set `clipPath`.\n // mainRect should not be calculated by `this.group.getBoundingRect()`\n // for sake of the overflow.\n\n var mainRect = {\n x: 0,\n y: 0\n }; // Consider content may be overflow (should be clipped).\n\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]); // `containerRect[yx] + containerPos[1 - orientIdx]` is 0.\n\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n containerGroup.__rectSize = maxSize[wh];\n\n if (showController) {\n var clipShape = {\n x: 0,\n y: 0\n };\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n clipShape[hw] = mainRect[hw];\n containerGroup.setClipPath(new graphic.Rect({\n shape: clipShape\n })); // Consider content may be larger than container, container rect\n // can not be obtained from `containerGroup.getBoundingRect()`.\n\n containerGroup.__rectSize = clipShape[wh];\n } else {\n // Do not remove or ignore controller. Keep them set as placeholders.\n controllerGroup.eachChild(function (child) {\n child.attr({\n invisible: true,\n silent: true\n });\n });\n } // Content translate animation.\n\n\n var pageInfo = this._getPageInfo(legendModel);\n\n pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n position: pageInfo.contentPosition\n }, // When switch from \"show controller\" to \"not show controller\", view should be\n // updated immediately without animation, otherwise causes weird effect.\n showController ? legendModel : false);\n\n this._updatePageInfoView(legendModel, pageInfo);\n\n return mainRect;\n },\n _pageGo: function (to, legendModel, api) {\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n scrollDataIndex != null && api.dispatchAction({\n type: 'legendScroll',\n scrollDataIndex: scrollDataIndex,\n legendId: legendModel.id\n });\n },\n _updatePageInfoView: function (legendModel, pageInfo) {\n var controllerGroup = this._controllerGroup;\n zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n var canJump = pageInfo[name + 'DataIndex'] != null;\n var icon = controllerGroup.childOfName(name);\n\n if (icon) {\n icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n icon.cursor = canJump ? 'pointer' : 'default';\n }\n });\n var pageText = controllerGroup.childOfName('pageText');\n var pageFormatter = legendModel.get('pageFormatter');\n var pageIndex = pageInfo.pageIndex;\n var current = pageIndex != null ? pageIndex + 1 : 0;\n var total = pageInfo.pageCount;\n pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current).replace('{total}', total) : pageFormatter({\n current: current,\n total: total\n }));\n },\n\n /**\n * @param {module:echarts/model/Model} legendModel\n * @return {Object} {\n * contentPosition: Array., null when data item not found.\n * pageIndex: number, null when data item not found.\n * pageCount: number, always be a number, can be 0.\n * pagePrevDataIndex: number, null when no previous page.\n * pageNextDataIndex: number, null when no next page.\n * }\n */\n _getPageInfo: function (legendModel) {\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n var contentGroup = this.getContentGroup();\n var containerRectSize = this._containerGroup.__rectSize;\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n var children = contentGroup.children();\n var targetItem = children[targetItemIndex];\n var itemCount = children.length;\n var pCount = !itemCount ? 0 : 1;\n var result = {\n contentPosition: contentGroup.position.slice(),\n pageCount: pCount,\n pageIndex: pCount - 1,\n pagePrevDataIndex: null,\n pageNextDataIndex: null\n };\n\n if (!targetItem) {\n return result;\n }\n\n var targetItemInfo = getItemInfo(targetItem);\n result.contentPosition[orientIdx] = -targetItemInfo.s; // Strategy:\n // (1) Always align based on the left/top most item.\n // (2) It is user-friendly that the last item shown in the\n // current window is shown at the begining of next window.\n // Otherwise if half of the last item is cut by the window,\n // it will have no chance to display entirely.\n // (3) Consider that item size probably be different, we\n // have calculate pageIndex by size rather than item index,\n // and we can not get page index directly by division.\n // (4) The window is to narrow to contain more than\n // one item, we should make sure that the page can be fliped.\n\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // Half of the last item is out of the window.\n !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || // If the current item does not intersect with the window, the new page\n // can be started at the current item or the last item.\n currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n if (winEndItemInfo.i > winStartItemInfo.i) {\n winStartItemInfo = winEndItemInfo;\n } else {\n // e.g., when page size is smaller than item size.\n winStartItemInfo = currItemInfo;\n }\n\n if (winStartItemInfo) {\n if (result.pageNextDataIndex == null) {\n result.pageNextDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n }\n }\n\n winEndItemInfo = currItemInfo;\n }\n\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // If the the end item does not intersect with the window started\n // from the current item, a page can be settled.\n (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && // e.g., when page size is smaller than item size.\n winStartItemInfo.i < winEndItemInfo.i) {\n winEndItemInfo = winStartItemInfo;\n\n if (result.pagePrevDataIndex == null) {\n result.pagePrevDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n ++result.pageIndex;\n }\n\n winStartItemInfo = currItemInfo;\n }\n\n return result;\n\n function getItemInfo(el) {\n if (el) {\n var itemRect = el.getBoundingRect();\n var start = itemRect[xy] + el.position[orientIdx];\n return {\n s: start,\n e: start + itemRect[wh],\n i: el.__legendDataIndex\n };\n }\n }\n\n function intersect(itemInfo, winStart) {\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n }\n },\n _findTargetItemIndex: function (targetDataIndex) {\n var index;\n var contentGroup = this.getContentGroup();\n var defaultIndex;\n\n if (this._showController) {\n contentGroup.eachChild(function (child, idx) {\n var legendDataIdx = child.__legendDataIndex; // FIXME\n // If the given targetDataIndex (from model) is illegal,\n // we use defualtIndex. 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 }\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\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 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;\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 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\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/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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: null,\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 symbolRotate = seriesScope && seriesScope.symbolRotate;\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 symbolRotate = itemModel.getShallow('symbolRotate');\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 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 symbolPath.attr({\n style: {\n strokeNoScale: true\n },\n z2: 100,\n scale: [symbolSize[0] / 2, symbolSize[1] / 2]\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;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-form',{ref:\"form\",attrs:{\"model\":_vm.form}},[_c('el-form-item',{attrs:{\"rules\":_vm.rules,\"prop\":\"input\"}},[_c('el-input',_vm._b({attrs:{\"placeholder\":_vm.placeholder},model:{value:(_vm.form.input),callback:function ($$v) {_vm.$set(_vm.form, \"input\", $$v)},expression:\"form.input\"}},'el-input',_vm.inputProps,false))],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { ElForm } from 'element-ui/types/form'\n\n@Component({\n componentName: 'InputFormDialogBody'\n})\nexport default class InputFormDialogBody extends Vue {\n @Prop({\n default: ''\n })\n value?: string\n\n @Prop()\n rules!: any\n\n @Prop()\n placeholder?: string\n\n @Prop()\n inputProps?: any\n\n @Prop()\n submit!: Function\n\n $refs!: {\n form: ElForm\n }\n\n form = {\n input: this.value\n }\n\n onOk () {\n this.$refs.form.validate().then((valid: boolean) => {\n if (valid) {\n this.submit(this.form.input)\n }\n })\n }\n\n mounted () {\n this.$on('onOk', this.onOk)\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputForm.vue?vue&type=template&id=35c976b0&\"\nimport script from \"./InputForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputForm.vue?vue&type=script&lang=ts&\"\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* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, 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 }\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;","module.exports = __webpack_public_path__ + \"img/eye_close.ec816e26.svg\";","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar 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 },\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(null, 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 = itemModel.get('hoverAnimation') && seriesModel.isAnimationEnabled() ? function (fromState, toState) {\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 sector.stopAnimation(true);\n sector.animateTo({\n shape: {\n r: layout.r + seriesModel.get('hoverOffset')\n }\n }, 300, 'elasticOut');\n } else {\n labelLine.ignore = labelLine.normalIgnore;\n labelText.ignore = labelText.normalIgnore;\n sector.stopAnimation(true);\n sector.animateTo({\n shape: {\n r: layout.r\n }\n }, 300, 'elasticOut');\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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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);\n}\n\nfunction simpleLayoutEdge(graph) {\n graph.eachEdge(function (edge) {\n var curveness = edge.getModel().get('lineStyle.curveness') || 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.getExtent()[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\n if (isNaN(value)) {\n continue;\n }\n\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 var regionModel = this.getRegionModel(name);\n var formatter = regionModel.get('label' + (status === 'normal' ? '.' : status + '.') + '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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 treeOption = {};\n treeOption.leaves = leaves;\n var tree = Tree.createTree(root, this, treeOption, beforeLink);\n\n function beforeLink(nodeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n var node = tree.getNodeByDataIndex(idx);\n var leavesModel = node.getLeavesModel();\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 // 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)`\n * @param {module:echarts/model/Model} [opt.labelDataIndex] Fetch text by\n * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex)`\n * @param {module:echarts/model/Model} [opt.labelDimIndex] Fetch text by\n * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex)`\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; // 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);\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) : 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 if 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 if 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);\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 } // PENDING\n\n\n var center = Math.round((rawExtent[0] + rawExtent[1]) / 2 / interval) * interval;\n var halfSplitNumber = Math.round(splitNumber / 2);\n scale.setExtent(numberUtil.round(center - halfSplitNumber * interval), numberUtil.round(center + (splitNumber - halfSplitNumber) * interval));\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});","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailAdmin.vue?vue&type=style&index=0&id=31563574&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailAdmin.vue?vue&type=style&index=0&id=31563574&lang=scss&scoped=true&\"","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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) {\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\n if (value != null || name) {\n html += '
';\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 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 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 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 === 'rightTop') {\n // RightTop side\n x1 = points[1][0];\n y1 = points[1][1];\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'top';\n } else if (labelPosition === 'rightBottom') {\n // RightBottom side\n x1 = points[2][0];\n y1 = points[2][1];\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'bottom';\n } else if (labelPosition === 'leftTop') {\n // LeftTop side\n x1 = points[0][0];\n y1 = points[1][1];\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else if (labelPosition === 'leftBottom') {\n // LeftBottom side\n x1 = points[3][0];\n y1 = points[2][1];\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else {\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 }\n\n var y2 = y1;\n linePoints = [[x1, y1], [x2, y2]];\n textY = 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 sizeExtent = [parsePercent(seriesModel.get('minSize'), viewRect.width), parsePercent(seriesModel.get('maxSize'), viewRect.width)];\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 itemHeight = (viewRect.height - gap * (data.count() - 1)) / data.count();\n var y = viewRect.y;\n\n var getLinePoints = function (idx, offY) {\n // End point index is data.count() and we assign it 0\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 = viewRect.x;\n break;\n\n case 'center':\n x0 = viewRect.x + (viewRect.width - itemWidth) / 2;\n break;\n\n case 'right':\n x0 = viewRect.x + viewRect.width - itemWidth;\n break;\n }\n\n return [[x0, offY], [x0 + itemWidth, offY]];\n };\n\n if (sort === 'ascending') {\n // From bottom to top\n itemHeight = -itemHeight;\n gap = -gap;\n y += viewRect.height;\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 var height = itemModel.get('itemStyle.height');\n\n if (height == null) {\n height = itemHeight;\n } else {\n height = parsePercent(height, viewRect.height);\n\n if (sort === 'ascending') {\n height = -height;\n }\n }\n\n var start = getLinePoints(idx, y);\n var end = getLinePoints(nextIdx, y + height);\n y += height + gap;\n data.setItemLayout(idx, {\n points: start.concat(end.slice().reverse())\n });\n }\n\n 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 'fromSymbolSize': fromData.getItemVisual(idx, 'symbolSize'),\n 'fromSymbol': fromData.getItemVisual(idx, 'symbol'),\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 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 * 动画主类, 调度和管理所有动画控制器\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 * 添加 clip\n * @param {module:zrender/animation/Clip} clip\n */\n addClip: function (clip) {\n this._clips.push(clip);\n },\n\n /**\n * 添加 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 * 删除动画片段\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 * 删除动画片段\n * @param {module:zrender/animation/Animator} animator\n */\n removeAnimator: function (animator) {\n var clips = animator.getClips();\n\n for (var i = 0; i < clips.length; i++) {\n this.removeClip(clips[i]);\n }\n\n animator.animation = null;\n },\n _update: function () {\n var time = new Date().getTime() - this._pausedTime;\n\n var delta = time - this._time;\n var clips = this._clips;\n var len = clips.length;\n var deferredEvents = [];\n var deferredClips = [];\n\n for (var i = 0; i < len; i++) {\n var clip = clips[i];\n var e = clip.step(time, delta); // Throw out the events need to be called after\n // stage.update, like destroy\n\n if (e) {\n deferredEvents.push(e);\n deferredClips.push(clip);\n }\n } // Remove the finished clip\n\n\n for (var i = 0; i < len;) {\n if (clips[i]._needsRemove) {\n clips[i] = clips[len - 1];\n clips.pop();\n len--;\n } else {\n i++;\n }\n }\n\n len = deferredEvents.length;\n\n for (var i = 0; i < len; i++) {\n deferredClips[i].fire(deferredEvents[i]);\n }\n\n this._time = time;\n this.onframe(delta); // 'frame' should be triggered before stage, because upper application\n // depends on the sequence (e.g., echarts-stream and finish\n // event judge)\n\n this.trigger('frame', delta);\n\n if (this.stage.update) {\n this.stage.update();\n }\n },\n _startLoop: function () {\n var self = this;\n this._running = true;\n\n function step() {\n if (self._running) {\n requestAnimationFrame(step);\n !self._paused && self._update();\n }\n }\n\n requestAnimationFrame(step);\n },\n\n /**\n * Start animation.\n */\n start: function () {\n this._time = new Date().getTime();\n this._pausedTime = 0;\n\n this._startLoop();\n },\n\n /**\n * Stop animation.\n */\n stop: function () {\n this._running = false;\n },\n\n /**\n * Pause animation.\n */\n pause: function () {\n if (!this._paused) {\n this._pauseStart = new Date().getTime();\n this._paused = true;\n }\n },\n\n /**\n * Resume animation.\n */\n resume: function () {\n if (this._paused) {\n this._pausedTime += new Date().getTime() - this._pauseStart;\n this._paused = false;\n }\n },\n\n /**\n * Clear animation.\n */\n clear: function () {\n this._clips = [];\n },\n\n /**\n * Whether animation finished.\n */\n isFinished: function () {\n return !this._clips.length;\n },\n\n /**\n * Creat animator for a target, whose props can be animated.\n *\n * @param {Object} target\n * @param {Object} options\n * @param {boolean} [options.loop=false] Whether loop animation.\n * @param {Function} [options.getter=null] Get value from target.\n * @param {Function} [options.setter=null] Set value to target.\n * @return {module:zrender/animation/Animation~Animator}\n */\n // TODO Gap\n animate: function (target, options) {\n options = options || {};\n var animator = new Animator(target, options.loop, options.getter, options.setter);\n this.addAnimator(animator);\n return animator;\n }\n};\nutil.mixin(Animation, Dispatcher);\nvar _default = Animation;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./sankey/SankeySeries\");\n\nrequire(\"./sankey/SankeyView\");\n\nrequire(\"./sankey/sankeyAction\");\n\nvar sankeyLayout = require(\"./sankey/sankeyLayout\");\n\nvar sankeyVisual = require(\"./sankey/sankeyVisual\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerLayout(sankeyLayout);\necharts.registerVisual(sankeyVisual);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _echarts = require(\"./lib/echarts\");\n\n(function () {\n for (var key in _echarts) {\n if (_echarts == null || !_echarts.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;\n exports[key] = _echarts[key];\n }\n})();\n\nvar _export = require(\"./lib/export\");\n\n(function () {\n for (var key in _export) {\n if (_export == null || !_export.hasOwnProperty(key) || key === 'default' || key === '__esModule') return;\n exports[key] = _export[key];\n }\n})();\n\nrequire(\"./lib/component/dataset\");\n\nrequire(\"./lib/chart/line\");\n\nrequire(\"./lib/chart/bar\");\n\nrequire(\"./lib/chart/pie\");\n\nrequire(\"./lib/chart/scatter\");\n\nrequire(\"./lib/chart/radar\");\n\nrequire(\"./lib/chart/map\");\n\nrequire(\"./lib/chart/tree\");\n\nrequire(\"./lib/chart/treemap\");\n\nrequire(\"./lib/chart/graph\");\n\nrequire(\"./lib/chart/gauge\");\n\nrequire(\"./lib/chart/funnel\");\n\nrequire(\"./lib/chart/parallel\");\n\nrequire(\"./lib/chart/sankey\");\n\nrequire(\"./lib/chart/boxplot\");\n\nrequire(\"./lib/chart/candlestick\");\n\nrequire(\"./lib/chart/effectScatter\");\n\nrequire(\"./lib/chart/lines\");\n\nrequire(\"./lib/chart/heatmap\");\n\nrequire(\"./lib/chart/pictorialBar\");\n\nrequire(\"./lib/chart/themeRiver\");\n\nrequire(\"./lib/chart/sunburst\");\n\nrequire(\"./lib/chart/custom\");\n\nrequire(\"./lib/component/grid\");\n\nrequire(\"./lib/component/polar\");\n\nrequire(\"./lib/component/geo\");\n\nrequire(\"./lib/component/singleAxis\");\n\nrequire(\"./lib/component/parallel\");\n\nrequire(\"./lib/component/calendar\");\n\nrequire(\"./lib/component/graphic\");\n\nrequire(\"./lib/component/toolbox\");\n\nrequire(\"./lib/component/tooltip\");\n\nrequire(\"./lib/component/axisPointer\");\n\nrequire(\"./lib/component/brush\");\n\nrequire(\"./lib/component/title\");\n\nrequire(\"./lib/component/timeline\");\n\nrequire(\"./lib/component/markPoint\");\n\nrequire(\"./lib/component/markLine\");\n\nrequire(\"./lib/component/markArea\");\n\nrequire(\"./lib/component/legendScroll\");\n\nrequire(\"./lib/component/legend\");\n\nrequire(\"./lib/component/dataZoom\");\n\nrequire(\"./lib/component/dataZoomInside\");\n\nrequire(\"./lib/component/dataZoomSlider\");\n\nrequire(\"./lib/component/visualMap\");\n\nrequire(\"./lib/component/visualMapContinuous\");\n\nrequire(\"./lib/component/visualMapPiecewise\");\n\nrequire(\"zrender/lib/vml/vml\");\n\nrequire(\"zrender/lib/svg/svg\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Link lists and struct (graph or tree)\n */\nvar each = zrUtil.each;\nvar DATAS = '\\0__link_datas';\nvar MAIN_DATA = '\\0__link_mainData'; // Caution:\n// In most case, either list or its shallow clones (see list.cloneShallow)\n// is active in echarts process. So considering heap memory consumption,\n// we do not clone tree or graph, but share them among list and its shallow clones.\n// But in some rare case, we have to keep old list (like do animation in chart). So\n// please take care that both the old list and the new list share the same tree/graph.\n\n/**\n * @param {Object} opt\n * @param {module:echarts/data/List} opt.mainData\n * @param {Object} [opt.struct] For example, instance of Graph or Tree.\n * @param {string} [opt.structAttr] designation: list[structAttr] = struct;\n * @param {Object} [opt.datas] {dataType: data},\n * like: {node: nodeList, edge: edgeList}.\n * Should contain mainData.\n * @param {Object} [opt.datasAttr] {dataType: attr},\n * designation: struct[datasAttr[dataType]] = list;\n */\n\nfunction linkList(opt) {\n var mainData = opt.mainData;\n var datas = opt.datas;\n\n if (!datas) {\n datas = {\n main: mainData\n };\n opt.datasAttr = {\n main: 'data'\n };\n }\n\n opt.datas = opt.mainData = null;\n linkAll(mainData, datas, opt); // Porxy data original methods.\n\n each(datas, function (data) {\n each(mainData.TRANSFERABLE_METHODS, function (methodName) {\n data.wrapMethod(methodName, zrUtil.curry(transferInjection, opt));\n });\n }); // Beyond transfer, additional features should be added to `cloneShallow`.\n\n mainData.wrapMethod('cloneShallow', zrUtil.curry(cloneShallowInjection, opt)); // Only mainData trigger change, because struct.update may trigger\n // another changable methods, which may bring about dead lock.\n\n each(mainData.CHANGABLE_METHODS, function (methodName) {\n mainData.wrapMethod(methodName, zrUtil.curry(changeInjection, opt));\n }); // Make sure datas contains mainData.\n\n zrUtil.assert(datas[mainData.dataType] === mainData);\n}\n\nfunction transferInjection(opt, res) {\n if (isMainData(this)) {\n // Transfer datas to new main data.\n var datas = zrUtil.extend({}, this[DATAS]);\n datas[this.dataType] = res;\n linkAll(res, datas, opt);\n } else {\n // Modify the reference in main data to point newData.\n linkSingle(res, this.dataType, this[MAIN_DATA], opt);\n }\n\n return res;\n}\n\nfunction changeInjection(opt, res) {\n opt.struct && opt.struct.update(this);\n return res;\n}\n\nfunction cloneShallowInjection(opt, res) {\n // cloneShallow, which brings about some fragilities, may be inappropriate\n // to be exposed as an API. So for implementation simplicity we can make\n // the restriction that cloneShallow of not-mainData should not be invoked\n // outside, but only be invoked here.\n each(res[DATAS], function (data, dataType) {\n data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\n });\n return res;\n}\n/**\n * Supplement method to List.\n *\n * @public\n * @param {string} [dataType] If not specified, return mainData.\n * @return {module:echarts/data/List}\n */\n\n\nfunction getLinkedData(dataType) {\n var mainData = this[MAIN_DATA];\n return dataType == null || mainData == null ? mainData : mainData[DATAS][dataType];\n}\n\nfunction isMainData(data) {\n return data[MAIN_DATA] === data;\n}\n\nfunction linkAll(mainData, datas, opt) {\n mainData[DATAS] = {};\n each(datas, function (data, dataType) {\n linkSingle(data, dataType, mainData, opt);\n });\n}\n\nfunction linkSingle(data, dataType, mainData, opt) {\n mainData[DATAS][dataType] = data;\n data[MAIN_DATA] = mainData;\n data.dataType = dataType;\n\n if (opt.struct) {\n data[opt.structAttr] = opt.struct;\n opt.struct[opt.datasAttr[dataType]] = data;\n } // Supplement method.\n\n\n data.getLinkedData = getLinkedData;\n}\n\nvar _default = linkList;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Region = require(\"../Region\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Fix for 南海诸岛\nvar geoCoord = [126, 25];\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\n\nfor (var i = 0; i < points.length; i++) {\n for (var k = 0; k < points[i].length; k++) {\n points[i][k][0] /= 10.5;\n points[i][k][1] /= -10.5 / 0.75;\n points[i][k][0] += geoCoord[0];\n points[i][k][1] += geoCoord[1];\n }\n}\n\nfunction _default(mapType, regions) {\n if (mapType === 'china') {\n regions.push(new Region('南海诸岛', zrUtil.map(points, function (exterior) {\n return {\n type: 'polygon',\n exterior: exterior\n };\n }), geoCoord));\n }\n}\n\nmodule.exports = _default;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACcUlEQVQ4T62VP2gTYRjGn/eStBQrklJoiQV1EtFR6SLWxdVGUCc3aTOUZiiaXGzu8t1d0rurSCcpbVE6lCIupouLg7TgUNBFEXXRIljapaVaiKbJvXKa1MuZP4K98Xuf7/d9D8/7vUeo8w3PzIR6N7aigDTI4LMAIhXZOoFeAs7SRm9XfjYW2/NvJ/+CqplXGHQXhE/MeAyJVoLlzi+urhTYPQqHLxDhOhgnCHxbz6SeeBn7QCGE5FCHxeAoSBoy1MRyvdtX1xR9cgDszBEoL3FBFkI4bm0fqGr2JMD9xQJHLSu13QxWrcmyGW7roDxAq3ommdgHVmzaewXu98OSlnUktMfnUOY2p8ivJibGN72HyaYZDhVplcBJ1z65AfRsbL8DSTf9NtOGfRkOzxPwHUAZQBeYRwyRmvdCK/YfbPaGT5GqmdeYaNhQ5Ute0Z1cridQkj6CyDBU2XJrqmbrDvhWkNv6hBjbqoVaz4h5llTNXnDAy9mMPOcVCGFHGBzThCwAsFsbz2aPSeXgmsMYyAl5xatPa9aQBBogRbPes0SDWSX5oVUQaWFeJKLnIJwxVPltDdCwT5LDSy7wa4APR4QY2W0EHB0dbQ93951n8DQBr/WMfNWvFeJ+Z5m+rf8TUNHsNYCDBH7YHT6Ui8fjP5oBW1pWNPsziBOGKj9q5CJdtdwolNoE7WmAFgw18aIhsBpKo7ZpFZC/ruiVtmnW2O4mtx+lUuApwIvZTOpevYNqGvt3w/6aMHWfnqJbp5nxRgIv6pnUDT/wr6dXFTQbDkKYx3d22jenpsYKNe+40XBwRQc+vv7c9IAGrNfK//wCfgKOEHQYS1UZmwAAAABJRU5ErkJggg==\"","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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;","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminLayout.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdminLayout.vue?vue&type=style&index=0&lang=scss&\"","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 window.open(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 icon = graphic.makePath(timelineModel.get(objPath).replace(/^path:\\/\\//, ''), zrUtil.clone(opts || {}), new BoundingRect(rect[0], rect[1], rect[2], rect[3]), 'center');\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;","module.exports = __webpack_public_path__ + \"img/eye_open.b749d906.svg\";","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar 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.6.0';\nvar dependencies = {\n zrender: '4.2.0'\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.pathToDataUrl();\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 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 = 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 targetCanvas.width = width;\n targetCanvas.height = height;\n var zr = zrender.init(targetCanvas); // Background between the charts\n\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 } 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