{"version":3,"sources":["webpack://_N_E/./node_modules/echarts/lib/chart/boxplot.js","webpack://_N_E/./node_modules/echarts/lib/component/helper/BrushController.js","webpack://_N_E/./node_modules/echarts/lib/coord/polar/Polar.js","webpack://_N_E/./public/static/change-ic@3x.png","webpack://_N_E/./node_modules/echarts/lib/processor/dataSample.js","webpack://_N_E/./node_modules/echarts/lib/chart/boxplot/BoxplotSeries.js","webpack://_N_E/./node_modules/echarts/lib/component/toolbox/feature/Brush.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/simpleLayout.js","webpack://_N_E/./node_modules/echarts/lib/component/toolbox/feature/MagicType.js","webpack://_N_E/./node_modules/zrender/lib/vml/core.js","webpack://_N_E/./node_modules/echarts/lib/chart/sankey/SankeySeries.js","webpack://_N_E/./node_modules/echarts/lib/component/geo.js","webpack://_N_E/./node_modules/echarts/lib/coord/calendar/Calendar.js","webpack://_N_E/./node_modules/echarts/lib/component/legend.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/focusNodeAdjacencyAction.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/graphAction.js","webpack://_N_E/./public/static/more-ic-b.png","webpack://_N_E/./node_modules/echarts/lib/chart/line/poly.js","webpack://_N_E/./node_modules/core-js/internals/array-reduce.js","webpack://_N_E/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?f87a","webpack://_N_E/./node_modules/echarts/lib/chart/bar/PictorialBarSeries.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMap/visualMapAction.js","webpack://_N_E/./node_modules/echarts/lib/chart/sunburst.js","webpack://_N_E/./node_modules/echarts/lib/component/toolbox/ToolboxView.js","webpack://_N_E/./node_modules/echarts/lib/action/roamHelper.js","webpack://_N_E/./node_modules/echarts/lib/coord/parallel/Parallel.js","webpack://_N_E/./node_modules/echarts/lib/coord/polar/AxisModel.js","webpack://_N_E/./node_modules/echarts/lib/chart/treemap.js","webpack://_N_E/./node_modules/echarts/lib/component/markPoint.js","webpack://_N_E/./node_modules/echarts/lib/component/toolbox/feature/Restore.js","webpack://_N_E/./public/static/downLoad/code-hover.png","webpack://_N_E/./node_modules/zrender/lib/svg/Painter.js","webpack://_N_E/./node_modules/echarts/lib/chart/boxplot/BoxplotView.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoomSelect.js","webpack://_N_E/./node_modules/echarts/lib/component/timeline/SliderTimelineModel.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/edgeVisual.js","webpack://_N_E/./node_modules/echarts/lib/coord/parallel/AxisModel.js","webpack://_N_E/./node_modules/echarts/lib/chart/custom.js","webpack://_N_E/./public/static/change-ic@2x.png","webpack://_N_E/./public/static/vertical-slash-line.png","webpack://_N_E/./node_modules/echarts/lib/chart/bar/helper.js","webpack://_N_E/./public/static sync ^\\.\\/.*_img@3x\\.png$","webpack://_N_E/./node_modules/echarts/lib/chart/helper/whiskerBoxCommon.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoomSlider.js","webpack://_N_E/./node_modules/echarts/lib/util/animation.js","webpack://_N_E/./node_modules/echarts/lib/component/legend/scrollableLegendAction.js","webpack://_N_E/./public/static/dcd-code@3x.png","webpack://_N_E/./node_modules/zrender/lib/vml/Painter.js","webpack://_N_E/./node_modules/echarts/lib/chart/candlestick/preprocessor.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMap/VisualMapModel.js","webpack://_N_E/./node_modules/echarts/lib/coord/polar/prepareCustom.js","webpack://_N_E/./node_modules/echarts/lib/component/helper/sliderMove.js","webpack://_N_E/./node_modules/echarts/lib/chart/line.js","webpack://_N_E/./node_modules/echarts/lib/chart/tree.js","webpack://_N_E/./node_modules/echarts/lib/coord/cartesian/Axis2D.js","webpack://_N_E/./node_modules/echarts/lib/chart/boxplot/boxplotLayout.js","webpack://_N_E/./node_modules/echarts/lib/component/timeline/TimelineModel.js","webpack://_N_E/./node_modules/echarts/lib/coord/single/singleAxisHelper.js","webpack://_N_E/./node_modules/echarts/lib/component/calendar/CalendarView.js","webpack://_N_E/./node_modules/echarts/lib/component/timeline.js","webpack://_N_E/./node_modules/echarts/lib/chart/lines/linesVisual.js","webpack://_N_E/./node_modules/echarts/lib/coord/geo/geoCreator.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/forceHelper.js","webpack://_N_E/./components/links/series-detail.tsx","webpack://_N_E/./node_modules/echarts/lib/chart/line/lineAnimationDiff.js","webpack://_N_E/./node_modules/echarts/lib/component/axisPointer/SingleAxisPointer.js","webpack://_N_E/./node_modules/echarts/lib/component/legend/ScrollableLegendModel.js","webpack://_N_E/./node_modules/echarts/lib/chart/line/LineView.js","webpack://_N_E/./node_modules/zrender/lib/vml/vml.js","webpack://_N_E/./node_modules/core-js/internals/internal-metadata.js","webpack://_N_E/./node_modules/echarts/lib/component/axis/CartesianAxisView.js","webpack://_N_E/./node_modules/echarts/lib/component/parallel.js","webpack://_N_E/./node_modules/echarts/lib/component/brush/BrushModel.js","webpack://_N_E/./node_modules/echarts/lib/chart/pie/PieSeries.js","webpack://_N_E/./node_modules/echarts/lib/component/helper/brushHelper.js","webpack://_N_E/./node_modules/echarts/lib/component/angleAxis.js","webpack://_N_E/./node_modules/echarts/lib/chart/treemap/Breadcrumb.js","webpack://_N_E/./public/static/default.png","webpack://_N_E/./node_modules/echarts/lib/chart/map/mapDataStatistic.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/SymbolDraw.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMap/PiecewiseView.js","webpack://_N_E/./node_modules/echarts/lib/chart/parallel/ParallelSeries.js","webpack://_N_E/./node_modules/echarts/lib/chart/funnel/FunnelSeries.js","webpack://_N_E/./node_modules/echarts/lib/coord/geo/prepareCustom.js","webpack://_N_E/./node_modules/echarts/lib/coord/geo/Geo.js","webpack://_N_E/./node_modules/echarts/lib/component/helper/roamHelper.js","webpack://_N_E/./node_modules/echarts/lib/component/gridSimple.js","webpack://_N_E/./public/static/6@3x.png","webpack://_N_E/./public/static/dong-che-fen-logo.png","webpack://_N_E/./node_modules/echarts/lib/chart/gauge.js","webpack://_N_E/./node_modules/core-js/modules/es.object.values.js","webpack://_N_E/./node_modules/echarts/lib/data/Tree.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMap/PiecewiseModel.js","webpack://_N_E/./node_modules/echarts/lib/component/legendScroll.js","webpack://_N_E/./node_modules/echarts/lib/chart/parallel.js","webpack://_N_E/./node_modules/echarts/lib/chart/candlestick.js","webpack://_N_E/./node_modules/echarts/lib/component/timeline/TimelineAxis.js","webpack://_N_E/./node_modules/echarts/lib/chart/candlestick/candlestickLayout.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom.js","webpack://_N_E/./node_modules/echarts/lib/coord/parallel/ParallelAxis.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/EffectLine.js","webpack://_N_E/./node_modules/zrender/lib/core/arrayDiff2.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/multipleGraphEdgeHelper.js","webpack://_N_E/./node_modules/echarts/lib/component/helper/MapDraw.js","webpack://_N_E/./node_modules/echarts/lib/chart/sankey/sankeyVisual.js","webpack://_N_E/./node_modules/echarts/lib/component/legend/ScrollableLegendView.js","webpack://_N_E/./node_modules/core-js/modules/es.array.reduce.js","webpack://_N_E/./public/static/pop-btn.png","webpack://_N_E/./node_modules/echarts/lib/component/brush/visualEncoding.js","webpack://_N_E/./node_modules/echarts/lib/chart/effectScatter.js","webpack://_N_E/./node_modules/core-js/internals/string-repeat.js","webpack://_N_E/./node_modules/echarts/lib/coord/geo/fix/textCoord.js","webpack://_N_E/./node_modules/echarts/lib/chart/bar/BarSeries.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/Symbol.js","webpack://_N_E/./public/static/large-video-icon.png","webpack://_N_E/./node_modules/echarts/lib/component/axis/RadiusAxisView.js","webpack://_N_E/./node_modules/echarts/lib/chart/scatter.js","webpack://_N_E/./node_modules/echarts/lib/component/marker/MarkLineModel.js","webpack://_N_E/./node_modules/echarts/lib/chart/candlestick/CandlestickView.js","webpack://_N_E/./node_modules/echarts/lib/chart/pie/PieView.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/simpleLayoutHelper.js","webpack://_N_E/./node_modules/echarts/lib/coord/polar/polarCreator.js","webpack://_N_E/./node_modules/echarts/lib/layout/barPolar.js","webpack://_N_E/./node_modules/echarts/lib/chart/gauge/PointerPath.js","webpack://_N_E/./node_modules/echarts/lib/coord/geo/GeoModel.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/createGraphFromNodeEdge.js","webpack://_N_E/./node_modules/echarts/lib/component/toolbox/featureManager.js","webpack://_N_E/./node_modules/echarts/lib/chart/tree/TreeSeries.js","webpack://_N_E/./node_modules/echarts/lib/chart/line/LineSeries.js","webpack://_N_E/./node_modules/echarts/lib/coord/parallel/ParallelModel.js","webpack://_N_E/./node_modules/echarts/lib/chart/tree/layoutHelper.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/SliderZoomView.js","webpack://_N_E/./node_modules/echarts/lib/component/marker/MarkerModel.js","webpack://_N_E/./node_modules/echarts/lib/chart/funnel/funnelLayout.js","webpack://_N_E/./node_modules/echarts/lib/chart/themeRiver/ThemeRiverView.js","webpack://_N_E/./node_modules/echarts/lib/visual/visualSolution.js","webpack://_N_E/./lib/fetch-with-timeout.ts","webpack://_N_E/./node_modules/react-transition-group/esm/CSSTransition.js","webpack://_N_E/./pages-components/home/ad/tianmu.tsx","webpack://_N_E/./pages-components/home/ad/tonglan-1.tsx","webpack://_N_E/./pages-components/home/ad/close.ts","webpack://_N_E/./pages-components/home/ad/xuanjing.tsx","webpack://_N_E/./pages-components/home/ad/past_24.ts","webpack://_N_E/./pages-components/home/ad/popUp.tsx","webpack://_N_E/./pages-components/home/context.tsx","webpack://_N_E/./pages-components/home/ad/index.tsx","webpack://_N_E/./pages-components/home/ad/hot-news-right.tsx","webpack://_N_E/./components/toggle-image-group.tsx","webpack://_N_E/./pages-components/home/hot-news.tsx","webpack://_N_E/./components/value-card.tsx","webpack://_N_E/./pages-components/home/dong-che-fen.tsx","webpack://_N_E/./pages-components/home/type-list.tsx","webpack://_N_E/./pages-components/home/ad/tonglan-2.tsx","webpack://_N_E/./pages-components/home/ad/series.tsx","webpack://_N_E/./pages-components/home/popular-models.tsx","webpack://_N_E/./pages-components/home/popular-brands.tsx","webpack://_N_E/./pages-components/home/featured-videos.tsx","webpack://_N_E/./pages-components/home/common/car-list.tsx","webpack://_N_E/./pages-components/home/sales-leaderboard.tsx","webpack://_N_E/./components/new-car-card.tsx","webpack://_N_E/./components/new-release.tsx","webpack://_N_E/./pages-components/home/today-news.tsx","webpack://_N_E/./pages-components/home/ad/left-label.tsx","webpack://_N_E/./pages-components/home/ad/swiper.tsx","webpack://_N_E/./pages-components/home/banner.tsx","webpack://_N_E/./pages-components/home/original-column.tsx","webpack://_N_E/./pages-components/home/carAtlas.tsx","webpack://_N_E/./pages-components/home/home.tsx","webpack://_N_E/./pages/home.tsx","webpack://_N_E/./node_modules/echarts/lib/chart/pie/pieLayout.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/categoryVisual.js","webpack://_N_E/./public/static/carType.png","webpack://_N_E/./node_modules/echarts/lib/component/visualMapPiecewise.js","webpack://_N_E/./public/static/score-bg.png","webpack://_N_E/./node_modules/echarts/lib/component/polar.js","webpack://_N_E/./node_modules/echarts/lib/chart/boxplot/boxplotVisual.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/dataZoomProcessor.js","webpack://_N_E/./node_modules/echarts/lib/component/singleAxis.js","webpack://_N_E/./public/static/more-ic-b@2x.png","webpack://_N_E/./node_modules/echarts/lib/component/brush.js","webpack://_N_E/./node_modules/echarts/lib/chart/bar/BaseBarSeries.js","webpack://_N_E/./node_modules/echarts/lib/component/marker/MarkLineView.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMap/ContinuousModel.js","webpack://_N_E/./node_modules/echarts/lib/coord/single/prepareCustom.js","webpack://_N_E/./node_modules/echarts/lib/chart/sankey.js","webpack://_N_E/./node_modules/echarts/index.js","webpack://_N_E/./node_modules/echarts/lib/data/helper/linkList.js","webpack://_N_E/./node_modules/echarts/lib/coord/geo/fix/nanhai.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/InsideZoomView.js","webpack://_N_E/./node_modules/echarts/lib/chart/bar/PictorialBarView.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/SliderZoomModel.js","webpack://_N_E/./node_modules/echarts/lib/chart/sunburst/SunburstView.js","webpack://_N_E/./node_modules/echarts/lib/component/timeline/SliderTimelineView.js","webpack://_N_E/./node_modules/echarts/lib/component/timeline/timelineAction.js","webpack://_N_E/./node_modules/echarts/lib/chart/heatmap/HeatmapSeries.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/DataZoomModel.js","webpack://_N_E/./public/static/downLoad/apk-hover.png","webpack://_N_E/./node_modules/zrender/lib/svg/graphic.js","webpack://_N_E/./public/static/original-logo@3x.png","webpack://_N_E/./node_modules/echarts/lib/component/visualMap/ContinuousView.js","webpack://_N_E/./public/static/1_img@3x.png","webpack://_N_E/./node_modules/echarts/lib/component/marker/MarkAreaModel.js","webpack://_N_E/./node_modules/core-js/internals/this-number-value.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/SelectZoomModel.js","webpack://_N_E/./node_modules/echarts/lib/coord/single/singleCreator.js","webpack://_N_E/./node_modules/echarts/lib/chart/effectScatter/EffectScatterView.js","webpack://_N_E/./node_modules/echarts/lib/chart/treemap/treemapAction.js","webpack://_N_E/./node_modules/echarts/lib/chart/sunburst/sunburstAction.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/Polyline.js","webpack://_N_E/./node_modules/echarts/lib/component/legend/legendAction.js","webpack://_N_E/./node_modules/core-js/modules/es.string.match.js","webpack://_N_E/./node_modules/echarts/lib/coord/calendar/prepareCustom.js","webpack://_N_E/./node_modules/echarts/lib/coord/single/Single.js","webpack://_N_E/./node_modules/echarts/lib/chart/heatmap/HeatmapView.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/adjustEdge.js","webpack://_N_E/./node_modules/echarts/lib/coord/cartesian/AxisModel.js","webpack://_N_E/./node_modules/echarts/lib/action/geoRoam.js","webpack://_N_E/./node_modules/echarts/lib/component/helper/RoamController.js","webpack://_N_E/./node_modules/zrender/lib/svg/helper/Definable.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/SelectZoomView.js","webpack://_N_E/./public/static/more-ic-b@3x.png","webpack://_N_E/./public/static/original-column-bg@3x.png","webpack://_N_E/./node_modules/echarts/lib/coord/geo/geoJSONLoader.js","webpack://_N_E/./node_modules/echarts/lib/chart/candlestick/candlestickVisual.js","webpack://_N_E/./node_modules/echarts/lib/chart/funnel/FunnelView.js","webpack://_N_E/./node_modules/echarts/lib/chart/gauge/GaugeSeries.js","webpack://_N_E/./node_modules/echarts/lib/chart/map/MapSeries.js","webpack://_N_E/./node_modules/echarts/lib/chart/sunburst/SunburstPiece.js","webpack://_N_E/./node_modules/echarts/lib/component/toolbox/feature/SaveAsImage.js","webpack://_N_E/./node_modules/core-js/modules/es.map.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/graphHelper.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/helper.js","webpack://_N_E/./node_modules/echarts/lib/chart/themeRiver/themeRiverLayout.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMap.js","webpack://_N_E/./node_modules/dom-helpers/class/removeClass.js","webpack://_N_E/./node_modules/echarts/lib/chart/map/mapVisual.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/roams.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/treeHelper.js","webpack://_N_E/./node_modules/echarts/lib/chart/sankey/SankeyView.js","webpack://_N_E/./node_modules/echarts/lib/coord/geo/geoSourceManager.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/forceLayout.js","webpack://_N_E/./node_modules/echarts/lib/component/axis/axisSplitHelper.js","webpack://_N_E/./node_modules/dayjs/dayjs.min.js","webpack://_N_E/./node_modules/echarts/lib/coord/cartesian/Grid.js","webpack://_N_E/./node_modules/echarts/lib/chart/heatmap.js","webpack://_N_E/./node_modules/swiper/esm/components/pagination/pagination.js","webpack://_N_E/./public/static/6.png","webpack://_N_E/./node_modules/echarts/lib/component/legend/LegendView.js","webpack://_N_E/./node_modules/echarts/lib/visual/VisualMapping.js","webpack://_N_E/./node_modules/echarts/lib/chart/parallel/ParallelView.js","webpack://_N_E/./node_modules/echarts/lib/visual/visualDefault.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/categoryFilter.js","webpack://_N_E/./node_modules/echarts/lib/chart/map.js","webpack://_N_E/./node_modules/echarts/lib/chart/effectScatter/EffectScatterSeries.js","webpack://_N_E/./node_modules/echarts/lib/chart/bar/BarView.js","webpack://_N_E/./node_modules/core-js/internals/collection-strong.js","webpack://_N_E/./node_modules/echarts/lib/coord/parallel/parallelPreprocessor.js","webpack://_N_E/./node_modules/echarts/lib/chart/lines/linesLayout.js","webpack://_N_E/./node_modules/echarts/lib/component/timeline/preprocessor.js","webpack://_N_E/./node_modules/echarts/lib/coord/single/SingleAxis.js","webpack://_N_E/./node_modules/echarts/lib/coord/geo/fix/geoCoord.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/typeDefaulter.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/EffectPolyline.js","webpack://_N_E/./node_modules/echarts/lib/component/axisPointer/PolarAxisPointer.js","webpack://_N_E/./node_modules/core-js/internals/object-to-array.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/history.js","webpack://_N_E/./node_modules/echarts/lib/chart/themeRiver.js","webpack://_N_E/./node_modules/echarts/lib/coord/View.js","webpack://_N_E/./node_modules/echarts/lib/chart/tree/TreeView.js","webpack://_N_E/./node_modules/core-js/internals/collection.js","webpack://_N_E/./node_modules/echarts/lib/chart/tree/traversalHelper.js","webpack://_N_E/./node_modules/echarts/lib/data/Graph.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/LineDraw.js","webpack://_N_E/./node_modules/echarts/lib/component/helper/selectableMixin.js","webpack://_N_E/./node_modules/echarts/lib/chart/themeRiver/themeRiverVisual.js","webpack://_N_E/./node_modules/echarts/lib/chart/lines/LinesSeries.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMap/VisualMapView.js","webpack://_N_E/./node_modules/echarts/lib/action/createDataSelectAction.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMapContinuous.js","webpack://_N_E/./public/static/3_img@3x.png","webpack://_N_E/./node_modules/echarts/lib/component/geo/GeoView.js","webpack://_N_E/./node_modules/echarts/lib/component/toolbox/feature/DataView.js","webpack://_N_E/./node_modules/echarts/lib/coord/polar/PolarModel.js","webpack://_N_E/./node_modules/echarts/lib/component/helper/listComponent.js","webpack://_N_E/./node_modules/echarts/lib/component/radiusAxis.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/createView.js","webpack://_N_E/./node_modules/echarts/lib/component/graphic.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoomInside.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/LinePath.js","webpack://_N_E/./node_modules/echarts/lib/component/toolbox/feature/DataZoom.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/DataZoomView.js","webpack://_N_E/./node_modules/echarts/lib/component/markArea.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/Line.js","webpack://_N_E/./node_modules/echarts/lib/component/marker/MarkPointView.js","webpack://_N_E/./node_modules/echarts/lib/coord/calendar/CalendarModel.js","webpack://_N_E/./public/static/change-ic.png","webpack://_N_E/./node_modules/echarts/lib/chart/sankey/sankeyLayout.js","webpack://_N_E/./node_modules/core-js/internals/array-fill.js","webpack://_N_E/./public/static/downLoad/apple-store.png","webpack://_N_E/./node_modules/echarts/lib/chart/graph/GraphSeries.js","webpack://_N_E/./node_modules/echarts/lib/layout/points.js","webpack://_N_E/./public/static/ic-arrow-right-white@3x.png","webpack://_N_E/./node_modules/echarts/lib/component/axis/parallelAxisAction.js","webpack://_N_E/./node_modules/echarts/lib/coord/parallel/parallelCreator.js","webpack://_N_E/./node_modules/echarts/lib/component/legend/LegendModel.js","webpack://_N_E/./node_modules/zrender/lib/svg/core.js","webpack://_N_E/./node_modules/echarts/lib/component/marker/MarkerView.js","webpack://_N_E/./node_modules/echarts/lib/component/marker/MarkAreaView.js","webpack://_N_E/./node_modules/echarts/lib/component/toolbox/ToolboxModel.js","webpack://_N_E/./node_modules/echarts/lib/coord/cartesian/GridModel.js","webpack://_N_E/./node_modules/zrender/lib/svg/svg.js","webpack://_N_E/./node_modules/echarts/lib/component/calendar.js","webpack://_N_E/./node_modules/echarts/lib/component/legend/legendFilter.js","webpack://_N_E/./node_modules/echarts/lib/chart/treemap/treemapVisual.js","webpack://_N_E/./public/static/star-black@3x.png","webpack://_N_E/./node_modules/echarts/lib/component/marker/markerHelper.js","webpack://_N_E/./node_modules/echarts/lib/coord/polar/RadiusAxis.js","webpack://_N_E/./node_modules/echarts/lib/chart/treemap/TreemapSeries.js","webpack://_N_E/./node_modules/echarts/lib/component/timeline/TimelineView.js","webpack://_N_E/./public/static/downLoad/apk.png","webpack://_N_E/./node_modules/echarts/lib/chart/map/backwardCompat.js","webpack://_N_E/./node_modules/echarts/lib/chart/bar.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/circularLayoutHelper.js","webpack://_N_E/./node_modules/echarts/lib/component/markLine.js","webpack://_N_E/./node_modules/echarts/lib/chart/graph/GraphView.js","webpack://_N_E/./public/static/2_img@3x.png","webpack://_N_E/./node_modules/echarts/lib/chart/line/helper.js","webpack://_N_E/./node_modules/zrender/lib/svg/helper/ClippathManager.js","webpack://_N_E/./node_modules/echarts/lib/chart/treemap/treemapLayout.js","webpack://_N_E/./node_modules/echarts/lib/coord/axisModelCreator.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/dataZoomAction.js","webpack://_N_E/./components/radar-chart.tsx","webpack://_N_E/./node_modules/echarts/lib/chart/helper/LargeLineDraw.js","webpack://_N_E/./public/static/downLoad/apple-store-hover.png","webpack://_N_E/./public/static/pop-close.png","webpack://_N_E/./node_modules/echarts/lib/component/timeline/typeDefaulter.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/InsideZoomModel.js","webpack://_N_E/./node_modules/echarts/lib/chart/lines.js","webpack://_N_E/./node_modules/echarts/lib/coord/geo/fix/diaoyuIsland.js","webpack://_N_E/./node_modules/echarts/lib/chart/gauge/GaugeView.js","webpack://_N_E/./node_modules/core-js/modules/es.array.splice.js","webpack://_N_E/./node_modules/echarts/lib/chart/funnel.js","webpack://_N_E/./node_modules/echarts/lib/component/helper/interactionMutex.js","webpack://_N_E/./node_modules/echarts/lib/chart/map/MapView.js","webpack://_N_E/./node_modules/echarts/lib/chart/scatter/ScatterView.js","webpack://_N_E/./node_modules/echarts/lib/chart/parallel/parallelVisual.js","webpack://_N_E/./node_modules/zrender/lib/vml/graphic.js","webpack://_N_E/./node_modules/echarts/lib/component/brush/selector.js","webpack://_N_E/./node_modules/echarts/lib/component/marker/MarkPointModel.js","webpack://_N_E/./node_modules/echarts/lib/coord/polar/AngleAxis.js","webpack://_N_E/./node_modules/echarts/lib/chart/sunburst/SunburstSeries.js","webpack://_N_E/./node_modules/echarts/lib/coord/cartesian/prepareCustom.js","webpack://_N_E/./public/static/downLoad/download-tip.png","webpack://_N_E/./node_modules/echarts/lib/chart/pictorialBar.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMap/visualEncoding.js","webpack://_N_E/./public/static/downLoad/code.png","webpack://_N_E/./node_modules/echarts/lib/chart/graph/circularLayout.js","webpack://_N_E/./node_modules/echarts/lib/chart/themeRiver/ThemeRiverSeries.js","webpack://_N_E/./node_modules/echarts/lib/chart/lines/LinesView.js","webpack://_N_E/./node_modules/echarts/lib/component/brush/preprocessor.js","webpack://_N_E/./node_modules/echarts/lib/component/axis.js","webpack://_N_E/./node_modules/echarts/lib/chart/treemap/TreemapView.js","webpack://_N_E/./node_modules/echarts/lib/component/axis/ParallelAxisView.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js","webpack://_N_E/./node_modules/echarts/lib/component/toolbox.js","webpack://_N_E/./node_modules/zrender/lib/svg/helper/GradientManager.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMap/preprocessor.js","webpack://_N_E/./node_modules/echarts/lib/component/axis/AngleAxisView.js","webpack://_N_E/./node_modules/echarts/lib/chart/bar/barItemStyle.js","webpack://_N_E/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://_N_E/./node_modules/echarts/lib/chart/pie/labelLayout.js","webpack://_N_E/./node_modules/echarts/lib/component/brush/brushAction.js","webpack://_N_E/./public/static/pop-min.png","webpack://_N_E/./node_modules/core-js/internals/freezing.js","webpack://_N_E/./public/static/video-icon.png","webpack://_N_E/./node_modules/echarts/lib/chart/tree/treeAction.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMap/typeDefaulter.js","webpack://_N_E/./node_modules/zrender/lib/svg/helper/ShadowManager.js","webpack://_N_E/./node_modules/echarts/lib/component/axis/SingleAxisView.js","webpack://_N_E/./node_modules/echarts/lib/component/helper/BrushTargetManager.js","webpack://_N_E/./node_modules/echarts/lib/chart/candlestick/CandlestickSeries.js","webpack://_N_E/./node_modules/echarts/lib/chart/sankey/sankeyAction.js","webpack://_N_E/./node_modules/next/dist/build/polyfills/fetch/index.js","webpack://_N_E/./node_modules/echarts/lib/chart/pie.js","webpack://_N_E/./node_modules/echarts/lib/util/shape/sausage.js","webpack://_N_E/./node_modules/echarts/lib/component/brush/BrushView.js","webpack://_N_E/./public/static/arrow-ic-r@3x.png","webpack://_N_E/./node_modules/echarts/lib/chart/helper/labelHelper.js","webpack://_N_E/./node_modules/echarts/lib/component/parallelAxis.js","webpack://_N_E/./node_modules/echarts/lib/component/helper/cursorHelper.js","webpack://_N_E/./public/static/6@2x.png","webpack://_N_E/./node_modules/echarts/lib/coord/single/AxisModel.js","webpack://_N_E/./public/static/new-card-span.svg","webpack://_N_E/./node_modules/echarts/lib/coord/cartesian/Cartesian2D.js","webpack://_N_E/./node_modules/echarts/lib/chart/scatter/ScatterSeries.js","webpack://_N_E/./node_modules/echarts/lib/chart/sunburst/sunburstLayout.js","webpack://_N_E/./node_modules/echarts/lib/component/visualMap/helper.js","webpack://_N_E/./node_modules/dom-helpers/class/hasClass.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/EffectSymbol.js","webpack://_N_E/./node_modules/echarts/lib/coord/geo/geoSVGLoader.js","webpack://_N_E/./node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js","webpack://_N_E/./node_modules/dom-helpers/class/addClass.js","webpack://_N_E/./node_modules/echarts/lib/chart/tree/treeLayout.js","webpack://_N_E/./node_modules/core-js/modules/es.array.fill.js","webpack://_N_E/./node_modules/echarts/lib/coord/cartesian/Cartesian.js","webpack://_N_E/./node_modules/echarts/lib/component/dataZoom/AxisProxy.js","webpack://_N_E/./node_modules/echarts/lib/component/grid.js","webpack://_N_E/./node_modules/echarts/lib/chart/heatmap/HeatmapLayer.js","webpack://_N_E/./node_modules/isomorphic-unfetch/browser.js","webpack://_N_E/./node_modules/echarts/lib/chart/map/mapSymbolLayout.js"],"names":["echarts","boxplotVisual","boxplotLayout","registerVisual","registerLayout","__DEV__","zrUtil","Eventful","graphic","interactionMutex","DataDiffer","curry","each","map","mathMin","Math","min","mathMax","max","mathPow","pow","DIRECTION_MAP","w","e","n","s","CURSOR_MAP","ne","sw","nw","se","DEFAULT_BRUSH_OPT","brushStyle","lineWidth","stroke","fill","transformable","brushMode","removeOnClick","baseUID","BrushController","zr","call","this","_zr","group","Group","_brushType","_brushOption","_panels","_track","_dragging","_covers","_creatingCover","_creatingPanel","_enableGlobalPan","_uid","_handlers","pointerHandlers","handler","eventName","bind","createCover","controller","brushOption","cover","coverRenderers","brushType","__brushOption","updateZ","add","endCreating","creatingCover","coverRenderer","getCoverRenderer","updateCoverShape","range","z","traverse","el","z2","updateCoverAfterCreation","updateCommon","getPanelByPoint","localCursorPoint","panel","panels","transform","_transform","pn","isTargetByCursor","getPanelByCover","panelId","clearCovers","covers","originalLength","length","remove","trigger","opt","areas","clone","isEnd","getTrackEnds","track","tail","createBaseRectCover","doDrift","edgeNames","Rect","name","style","makeStyle","silent","draggable","cursor","drift","ondragend","opacity","invisible","updateBaseRect","localRange","handleSize","x","y","xa","ya","x2","y2","x2a","y2a","width","height","widtha","heighta","updateRectShape","mainEl","childAt","useStyle","attr","childOfName","globalDir","getGlobalDirection","localDirection","split","reverse","join","left","right","top","bottom","transformDirection","getTransform","h","setShape","points","xmin","ymin","xmax","ymax","pointsToRect","clipByPanel","defaults","strokeNoScale","formatRectRange","driftRect","toRectRange","fromRectRange","dx","dy","rectRange","localDelta","toLocalDelta","namePart","ind","driftPolygon","point","thisGroup","localD","transformCoordToLocal","localZero","data","clipPath","preventDefault","rawE","event","mainShapeContain","contain","updateCoverByMouse","eventParams","thisBrushOption","push","slice","p2","p1","shouldShowCover","determineBrushType","getCreatingRange","defaultBrushType","prototype","constructor","enableBrush","release","handlers","off","unmountHandlers","doDisableBrush","take","on","mountHandlers","merge","doEnableBrush","setPanels","panelOpts","mount","enableGlobalPan","position","rotation","scale","getLocalTransform","eachCover","cb","context","updateCovers","brushOptionList","oldCovers","newCovers","index","getKey","addOrUpdate","update","oldIndex","execute","id","newIndex","newBrushOption","unmount","dispose","mixin","mousedown","handleDragEnd","target","offsetX","offsetY","mousemove","getWidth","getHeight","isOutsideZrArea","currPanel","i","setCursorStyle","resetCursor","mouseup","lineX","getLineRenderer","lineY","rect","localTrack","ends","polygon","Polyline","Polygon","xyIndex","otherExtent","getLinearBrushOtherExtent","_default","module","exports","RadiusAxis","AngleAxis","Polar","cx","cy","_radiusAxis","_angleAxis","polar","type","axisPointerEnabled","dimensions","model","containPoint","coord","pointToCoord","containData","getAxis","dim","getAxes","getAxesByScale","scaleType","axes","angleAxis","radiusAxis","getAngleAxis","getRadiusAxis","getOtherAxis","axis","getBaseAxis","getTooltipAxes","baseAxis","baseAxes","otherAxes","dataToPoint","clamp","coordToPoint","dataToRadius","dataToAngle","pointToData","radiusToData","angleToData","extent","getExtent","minAngle","maxAngle","inverse","radius","sqrt","radian","atan2","PI","dir","cos","sin","getArea","radiusExtent","angleExtent","RADIAN","r0","r","startAngle","endAngle","clockwise","d2","samplers","average","frame","sum","count","isNaN","NaN","Infinity","isFinite","nearest","indexSampler","value","round","seriesType","modifyOutputEnd","reset","seriesModel","ecModel","api","getData","sampling","get","coordSys","coordinateSystem","sampler","valueAxis","size","abs","rate","setData","downSample","mapDimension","SeriesModel","seriesModelMixin","BoxplotSeries","extend","dependencies","defaultValueDimensions","defaultTooltip","defaultOption","zlevel","legendHoverLink","hoverAnimation","layout","boxWidth","itemStyle","color","borderWidth","emphasis","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","animationEasing","animationDuration","featureManager","brushLang","toolbox","brush","Brush","_brushMode","show","icon","keep","clear","title","proto","render","updateView","featureModel","isBrushed","eachComponent","mainType","brushModel","setIconStatus","getIcons","availableIcons","icons","onclick","dispatchAction","intervals","command","key","register","_simpleLayoutHelper","simpleLayout","simpleLayoutEdge","eachSeriesByType","coordDim","concat","dataIndex","hasValue","val","setItemLayout","graph","lang","magicTypeLang","magicType","MagicType","line","bar","stack","option","seriesIndex","seriesOptGenreator","seriesId","markPoint","markLine","isStack","radioTypes","newTitle","newOption","series","radio","indexOf","item","query","subType","newSeriesOpt","categoryAxis","axisType","axisIndex","queryComponents","componentIndex","boundaryGap","tiled","currentType","featureName","registerAction","payload","mergeOption","doCreateNode","env","urn","win","window","vmlInited","doc","document","canvasSupported","namespaces","zrvml","tagName","createElement","createNode","initVML","styleSheets","createStyleSheet","addRule","createGraphFromNodeEdge","encodeHTML","Model","SankeySeries","layoutInfo","levelModels","getInitialData","links","edges","nodes","levels","depth","nodeData","edgeData","wrapMethod","idx","customizeGetParent","path","parentModel","nodeDepth","getItemLayout","getGraph","getEdgeByIndex","node1","getLayout","setNodePosition","localPosition","dataItem","localX","localY","getEdgeData","formatTooltip","multipleSeries","dataType","params","getDataParams","rawDataOpt","html","source","getNodeByIndex","superCall","optionUpdated","focusNodeAdjacency","nodeValue","orient","nodeWidth","nodeGap","layoutIterations","label","fontSize","nodeAlign","borderColor","lineStyle","curveness","makeAction","method","actionInfo","selected","geoModel","geo","regions","region","isSelected","numberUtil","CoordinateSystem","Calendar","calendarModel","_model","doConvert","methodName","finder","getDimensionsInfo","getRangeInfo","_rangeInfo","getModel","getRect","_rect","getCellWidth","_sw","getCellHeight","_sh","getOrient","_orient","getFirstDayOfWeek","_firstDayOfWeek","getDateInfo","date","parseDate","getFullYear","m","getMonth","d","getDate","day","getDay","time","getTime","formatedDate","getNextNDay","Date","setDate","_lineWidth","getItemStyle","_getRangeInfo","_initRangeOption","weeks","whNames","cellSize","layoutParams","getBoxLayoutParams","cellNumbers","cellSizeSpecified","whGlobal","calendarRect","getLayoutRect","isArray","dayInfo","start","end","week","nthWeek","pointToDate","dataToRect","contentShape","center","tl","tr","br","bl","nthX","floor","nthY","_getDateByWeeksAndDay","convertToPixel","convertFromPixel","rg","test","firstDay","setMonth","tmp","reversed","allDay","startDateNum","endDateNum","dateNum","sign","fweek","lweek","rangeInfo","nthDay","create","calendarList","calendar","eachSeries","calendarSeries","legendFilter","Component","registerProcessor","PRIORITY","PROCESSOR","SERIES_FILTER","registerSubTypeDefaulter","updateCenterAndZoom","res","setCenter","setZoom","zoom","Path","vec2","fixClipWithShadow","vec2Min","vec2Max","scaleAndAdd","v2Copy","copy","v","cp0","cp1","isPointNull","p","drawSegment","ctx","segLen","allLen","smoothMin","smoothMax","smooth","smoothMonotone","connectNulls","drawMono","apply","arguments","drawNonMono","prevIdx","k","prevP","ctrlLen","bezierCurveTo","lineTo","nextIdx","nextP","ratioNextSeg","lenPrevSeg","lenNextSeg","sub","dist","getBoundingBox","smoothConstraint","ptMin","ptMax","pt","shape","buildPath","len","result","stackedOnPoints","stackedOnSmooth","bbox","stackedOnBBox","closePath","aFunction","toObject","IndexedObject","toLength","createMethod","IS_RIGHT","that","callbackfn","argumentsLength","memo","O","self","TypeError","__NEXT_P","PictorialBarSeries","symbol","symbolSize","symbolRotate","symbolPosition","symbolOffset","symbolMargin","symbolRepeat","symbolRepeatDirection","symbolClip","symbolBoundingData","symbolPatternSize","barGap","progressive","superApply","setSelected","dataColor","sunburstLayout","dataFilter","textContain","listComponentHelper","extendComponentView","toolboxModel","removeAll","itemSize","featureOpts","features","_features","featureNames","_featureNames","processFeature","makeBackground","getBoundingRect","eachChild","titleText","__title","hoverStyle","makeFont","needPutOnTop","textPosition","topOffset","textAlign","feature","oldName","featureOpt","isUserFeatureName","Feature","unusable","iconStyleModel","iconStyleEmphasisModel","titles","iconPaths","iconStr","iconName","createIcon","setStyle","text","textBorderRadius","textPadding","textFill","tooltipModel","content","formatter","formatterParams","componentType","$vars","setHoverStyle","defaultTextPosition","textBackgroundColor","createIconPaths","status","iconStatus","view","zoomLimit","previousZoom","getZoom","getCenter","zoomMin","zoomMax","fixX","originX","fixY","originY","updateTransform","matrix","layoutUtil","axisHelper","ParallelAxis","sliderMove","mathFloor","mathCeil","ceil","Parallel","parallelModel","_axesMap","createHashMap","_axesLayout","_init","restrict","layoutAxisWithoutExpand","step","layoutLength","axisCount","axisNameAvailableWidth","axisLabelShow","layoutAxisWithExpand","nameTruncateMaxWidth","axisExpandWidth","axisCollapseWidth","winInnerIndices","axisExpandWindow0Pos","axisExpandWindow","parallelAxisIndex","axisModel","getComponent","set","createScaleByModel","isCategory","onBand","_updateAxesFromSeries","_makeLayoutInfo","axisBase","layoutBase","pixelDimIndex","pAxis","pLayout","axisLength","contains","unionExtentFromData","niceScaleExtent","resize","_layoutAxes","winSize","xy","wh","layoutExtent","axisExpandCount","axisExpandable","axisExtent","setExtent","posInfo","positionTable","horizontal","vertical","rotationTable","rotate","translate","tickDirection","labelDirection","axisCoordToPoint","dataToCoord","eachActiveState","callback","axesMap","dataDimensions","axisModels","axisDim","hasActiveSet","hasAxisBrushed","activeState","values","getValues","j","lenj","getActiveState","axisLayout","applyTransform","getAxisLayout","getSlidedAxisExpandWindow","behavior","delta","pointCoord","triggerArea","useJump","ComponentModel","axisModelCreator","axisModelCommonMixin","PolarAxisModel","getCoordSysModel","polarIndex","polarId","polarAxisDefaultExtendedOption","splitNumber","getAxisType","axisLabel","treemapVisual","treemapLayout","registerPreprocessor","history","restoreLang","restore","Restore","from","uid","resetOption","util","logError","ZImage","ZText","arrayDiff","GradientManager","ClippathManager","ShadowManager","_graphic","svgPath","svgImage","image","svgText","parseInt10","parseInt","checkParentAvailable","parent","child","parentNode","insertAfter","prevSibling","nextSibling","insertBefore","appendChild","prepend","firstChild","removeChild","getTextSvgElement","displayable","__textSvgEl","getSvgElement","__svgEl","SVGPainter","root","storage","opts","zrId","_opts","svgDom","setAttribute","cssText","bgRoot","svgRoot","gradientManager","clipPathManager","shadowManager","viewport","_svgDom","_svgRoot","_backgroundRoot","_viewport","_visibleList","getType","getViewportRoot","getSvgDom","getSvgRoot","getViewportRootOffset","viewportRoot","offsetLeft","offsetTop","refresh","list","getDisplayList","_paintList","setBackgroundColor","backgroundColor","_backgroundNode","bgNode","markAllUnused","visibleList","listLen","newVisibleList","svgProxy","svgElement","__dirty","prevSvgElement","diff","removed","indices","textSvgElement","added","addWithoutUpdate","markUsed","removeUnused","_getDefs","isForceCreating","defs","getElementsByTagName","children","display","_getSize","_width","_height","viewportStyle","whIdx","cwh","plt","prb","parseFloat","stl","defaultView","getComputedStyle","innerHTML","toDataURL","encodeURIComponent","outerHTML","replace","ChartView","NORMAL_ITEM_STYLE_PATH","EMPHASIS_ITEM_STYLE_PATH","BoxplotView","oldData","_data","constDim","newIdx","symbolEl","createNormalBox","setItemGraphicEl","oldIdx","getItemGraphicEl","itemLayout","updateNormalBoxData","eachItemGraphicEl","noop","BoxPath","moveTo","isInit","transInit","hostModel","updateMethod","itemModel","getItemModel","normalItemStyleModel","getItemVisual","initBaseline","TimelineModel","dataFormatMixin","SliderTimelineModel","tooltip","interval","checkpointStyle","animation","controlStyle","showPlayBtn","showPrevBtn","showNextBtn","itemGap","playIcon","stopIcon","nextIcon","prevIcon","normalize","a","Array","symbolType","colorQuery","opacityQuery","setVisual","edge","getShallow","getVisual","node2","makeStyleMapper","AxisModel","activeIntervals","getAreaSelectStyle","setActiveIntervals","asc","axisName","areaSelectStyle","realtime","graphicUtil","getDefaultLabel","createListFromArray","getLayoutOnAxis","createClipPath","prepareCartesian2d","prepareGeo","prepareSingleAxis","preparePolar","prepareCalendar","CACHED_LABEL_STYLE_PROPERTIES","ITEM_STYLE_NORMAL_PATH","ITEM_STYLE_EMPHASIS_PATH","LABEL_NORMAL","LABEL_EMPHASIS","prepareCustoms","cartesian2d","singleAxis","prepareStyleTransition","prop","targetStyle","elOptionStyle","oldElStyle","makeRenderItem","customSeries","renderItem","prepareResult","currDataIndexInside","currItemModel","currLabelNormalModel","currLabelEmphasisModel","currVisualColor","userAPI","getZr","getDevicePixelRatio","dataIndexInside","getDimension","extra","updateCache","labelModel","applyExtraBefore","setTextStyle","autoColor","isRectText","retrieve2","getFormattedLabel","applyExtraAfter","styleEmphasis","retrieve3","visual","visualType","barLayout","currentSeriesIndices","getCurrentSeriesIndices","font","getFont","userParams","seriesName","dataInsideLength","encode","wrapEncodeDef","currDirty","getRawIndex","actionType","encodeDef","dimName","dataDimIndex","dimInfo","getDimensionInfo","isExtraCoord","coordDimIndex","createOrUpdate","elOption","animatableModel","doCreateOrUpdate","isRoot","simplyRemove","elOptionType","elOptionShape","__customGraphicType","hasOwnProperty","getPathData","__customPathData","hasOwn","__customImagePath","__customText","graphicType","pathRect","pathData","makePath","Image","Text","Error","getShapeClass","createEl","transitionProps","origin","textStroke","targetOpacity","initProps","updateProps","ignore","info","setElementHoverStyle","setAsHighDownDispatcher","updateEl","newChildren","newLen","mergeChildren","$mergeChildren","byName","diffChildrenByName","notMerge","oldChildren","processAddUpdate","processRemove","childOption","dummyModel","stylePropName","modelPropName","host","useTransform","clip","getSource","setClipPath","removeClipPath","incrementalPrepareRender","incrementalRender","setIncrementalAndHoverLayer","isGroup","incremental","useHoverLayer","filterForExposedEvent","eventType","targetEl","packedEvent","elementName","element","fixPosition","labelPositionOutside","setLabel","normalStyle","hoverLabelModel","setLabelStyle","labelFetcher","labelDataIndex","defaultText","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","keys","Object","resolve","createListSimply","getDimensionTypeByAxis","makeSeriesEncodeForAxisCoordSys","_baseAxisDim","ordinalMeta","addOrdinal","xAxisModel","yAxisModel","xAxisType","yAxisType","getOrdinalMeta","coordDims","baseAxisDimIndex","baseAxisDim","otherAxisDim","baseAxisType","otherAxisType","newOptionData","newItem","unshift","coordDimensions","otherDims","itemName","dimsDef","dimensionsCount","encodeDefaulter","createWrap","doneCallback","elExistsMap","delay","easing","isString","done","animateTo","scrollDataIndex","legendModel","setScrollDataIndex","vmlCore","VMLPainter","vmlViewport","vmlRoot","_vmlRoot","_vmlViewport","oldDelFromStorage","delFromStorage","oldAddToStorage","addToStorage","onRemove","onAdd","_firstPaint","__alreadyNotVisible","beforeBrush","brushVML","afterBrush","_getWidth","_getHeight","vmlViewportStyle","currentStyle","clientWidth","paddingLeft","paddingRight","clientHeight","paddingTop","paddingBottom","seriesItem","isObject","visualDefault","VisualMapping","visualSolution","modelUtil","mapVisual","eachVisual","linearMap","extendComponentModel","stateList","replacableOptionKeys","dataBound","layoutMode","ignoreSize","dimension","inRange","outOfRange","itemWidth","itemHeight","contentColor","inactiveColor","padding","textGap","precision","textStyle","init","_dataExtent","targetVisuals","controllerVisuals","textStyleModel","mergeDefaultAndTheme","thisOption","replaceVisualOption","resetItemSize","completeVisualOption","resetVisual","supplementVisualOption","createVisualMappings","getTargetSeriesIndices","optionSeriesIndex","seriesIndices","normalizeToArray","eachTargetSeries","getSeriesByIndex","isTargetSeries","is","formatValueText","edgeSymbols","isMinMax","textValue","toFixed","isFunction","resetExtent","getDataDimension","optDim","listDimensions","dimNames","isCalculationCoord","base","completeSingle","state","defa","stateExist","stateAbsent","optExist","optAbsent","visualData","isValidType","symbolExists","symbolSizeExists","visuals","categories","getValueState","getVisualMeta","dataToCoordSize","dataSize","dimIdx","halfSize","getBandWidth","angle","getSpanSign","handleEnds","handleIndex","span","minSpan","maxSpan","extentSpan","handleSpan","originalDistSign","extentMinSpan","realExtent","currDistSign","visualSymbol","layoutPoints","dataSample","STATISTIC","treeLayout","Axis","Axis2D","coordExtent","getAxesOnZeroOf","isHorizontal","getGlobalExtent","ret","toGlobalCoord","grid","coordToData","toLocalCoord","inherits","parsePercent","groupResult","axisList","seriesModels","groupSeriesByAxis","groupItem","bandWidth","seriesCount","boxWidthList","boxOffsetList","boundList","maxDataCount","boxWidthBound","availableWidth","boxGap","calculateBase","offset","halfWidth","cDimIdx","vDimIdx","cDim","vDims","axisDimVal","median","getPoint","end1","end2","end4","end5","addBodyEnd","layEndLine","point1","point2","endCenter","to","layoutSingleSeries","List","controlPosition","autoPlay","rewind","loop","playInterval","currentIndex","_names","_initData","setCurrentIndex","getCurrentIndex","isIndexMax","setPlayState","getPlayState","dataArr","names","idxArr","getDataItemValue","dimType","category","initData","getCategories","single","axisPosition","rectBound","positionMap","nameDirection","retrieve","labelInside","labelRotation","formatUtil","MONTH_TEXT","EN","CN","WEEK_TEXT","_tlpoints","_blpoints","_firstDayOfMonth","_firstDayPoints","rangeData","_renderDayRect","_renderLines","_renderYearText","_renderMonthText","_renderWeekText","itemRectStyleModel","sh","lineStyleModel","getLineStyle","addPoints","_getLinePointsOfOneWeek","_drawSplitline","_getEdgesPoints","rs","poyline","tmpD","_formatterLabel","formatTplSimple","nameMap","_yearTextPositionControl","textEl","margin","aligns","textVerticalAlign","yearLabel","pos","xc","yc","posPoints","yearText","_monthTextPositionControl","isCenter","align","vAlign","monthLabel","termPoints","toUpperCase","firstDayPoints","yyyy","yy","MM","M","monthText","_weekTextPositionControl","isStart","dayLabel","firstDayOfWeek","weekText","preprocessor","dataEach","hasItemOption","setItemVisual","Geo","geoSourceManager","mapDataStorage","resizeGeo","boundingCoords","leftTop","rightBottom","setBoundingRect","boxLayoutOption","viewWidth","viewHeight","aspect","aspectScale","useCenterAndSize","viewRect","setViewRect","setGeoCoords","geoCoord","addGeoCoord","geoCreator","geoList","invertLongitute","mapRecords","retrieveMap","geoIndex","mapModelGroupBySeries","getHostGeoModel","mapType","getMapType","mapSeries","nameMapList","singleMapSeries","mergeAll","getFilledRegions","originRegionArr","mapName","regionsArr","dataNameMap","load","registerCoordinateSystem","forceLayout","gravity","random","pp","initialFriction","friction","warmUp","setFixed","fixed","setUnfixed","v12","nLen","ignoreForceLayout","n1","n2","repFact","rep","SeriesDetailLink","props","className","onClick","href","as","_helper","prepareDataCoordInfo","getStackedOnPoint","newData","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","diffResult","cmd","idx1","diffData","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","diffItem","pointAdded","currentPt","nextPt","dataDimsForPoint","rawIndex","sort","b","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","current","next","stackedOnCurrent","stackedOnNext","BaseAxisPointer","viewHelper","singleAxisHelper","AxisView","XY","WH","SingleAxisPointer","makeElOption","axisPointerModel","getPointDimIndex","pixelValue","axisPointerType","elStyle","buildElStyle","pointerOption","pointerShapeBuilder","graphicKey","pointer","buildCartesianSingleLabelElOption","getHandleTransform","labelMargin","getTransformedPosition","updateHandleTransform","dimIndex","currPosition","cursorOtherValue","cursorPoint","tooltipOption","verticalAlign","subPixelOptimize","makeLineShape","shadow","makeRectShape","registerAxisPointerClass","LegendModel","_layout","mergeLayoutParam","getLayoutParams","ScrollableLegendModel","pageButtonItemGap","pageButtonGap","pageButtonPosition","pageFormatter","pageIcons","pageIconColor","pageIconInactiveColor","pageIconSize","pageTextStyle","animationDurationUpdate","extraOpt","inputPositionParams","mergeAndNormalizeLayoutParams","raw","fromPoints","SymbolDraw","SymbolClz","lineAnimationDiff","_poly","_createClipPathFromCoordSys","createGridClipPath","createPolarClipPath","isPointsSame","points1","points2","getBoundingDiff","min1","max1","min2","max2","getSmooth","turnPointsIntoStep","stepTurnAt","baseIndex","stepPoints","stepPt","middle","stepPt2","getIsIgnoreFunc","showAllSymbol","isAuto","availSize","dataLen","getSymbolSize","canShowAllSymbolForCategory","categoryDataDim","labelMap","getViewLabels","labelItem","tickValue","createLineClipPath","hasAnimation","rectShape","expandSize","lineGroup","symbolDraw","_symbolDraw","_lineGroup","areaStyleModel","mapArray","isCoordSysPolar","prevCoordSys","_coordSys","polyline","_polyline","_polygon","isAreaChart","isEmpty","valueOrigin","dataCoordInfo","valueDim","getStackedOnPoints","showSymbol","isIgnoreFunc","__temp","clipShapeForSymbol","r1","_clipShapeForSymbol","_step","_newPolygon","updateData","isIgnore","clipShape","stopAnimation","_stackedOnPoints","_points","_updateAnimation","_newPolyline","visualColor","visualMetaList","visualMeta","colorStops","stops","stop","stopLen","outerColors","minCoord","maxCoord","coordSpan","gradient","LinearGradient","getVisualGradient","lineJoin","stackedOnSeries","getCalculationInfo","getAreaStyle","_valueOrigin","highlight","queryDataIndex","setZ","stopSymbolAnimation","downplay","__points","updatedDataInfo","diffStatus","ptIdx","animators","during","registerPainter","hiddenKeys","has","defineProperty","f","FREEZING","METADATA","isExtensible","setMetadata","it","objectID","weakData","meta","REQUIRED","fastKey","getWeakData","onFreeze","AxisBuilder","cartesianAxisHelper","_axisSplitHelper","rectCoordAxisBuildSplitArea","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","axisPointerClass","oldAxisGroup","_axisGroup","gridModel","axisBuilder","getGroup","groupTransition","_splitLine","isBlank","splitLineModel","lineColors","gridRect","lineCount","ticksCoords","getTicksCoords","tickModel","tickCoord","colorIndex","Line","anid","x1","y1","_minorSplitLine","minorTicksCoords","getMinorTicksCoords","_splitArea","throttleUtil","parallelPreprocessor","_api","_throttledDispatchExpand","_dispatchExpand","checkTrigger","_mouseDownPoint","mouseDownPoint","debounceNextCall","triggerOn","DEFAULT_OUT_OF_BRUSH_COLOR","generateBrushOption","brushLink","xAxisIndex","yAxisIndex","throttleType","throttleDelay","coordInfoList","inBrush","outOfBrush","liftZ","setAreas","area","setBrushOption","getPercentWithPrecision","dataSelectableMixin","retrieveRawAttr","makeSeriesEncodeForNameBased","LegendVisualProvider","PieSeries","extendSeriesModel","legendVisualProvider","getRawData","updateSelectedMap","_createSelectableList","_defaultLabelLine","targetList","getName","valueList","percent","defaultEmphasis","labelLineNormalOpt","labelLine","labelLineEmphasisOpt","minShowLabelAngle","selectedOffset","hoverOffset","avoidLabelOverlap","percentPrecision","stillShowZeroSum","alignTo","bleedMargin","distanceToLabelLine","length2","animationType","animationTypeUpdate","BoundingRect","onIrrelevantElement","normalizeRect","makeRectPanelClipPath","localPoints","clipPointsByRect","makeLinearBrushOtherExtent","specifiedXYIndex","brushWidth","makeRectIsTargetByCursor","targetModel","wrapTreePathInfo","Breadcrumb","containerGroup","makeItemPoints","head","splice","packEventData","itemNode","eventData","componentSubType","selfType","treePathInfo","targetNode","onSelect","normalStyleModel","layoutParam","box","emptyItemWidth","totalWidth","renderList","_prepare","_renderContent","positionElement","node","textRect","getTextRect","TEXT_PADDING","lastX","availableSize","getAvailableSize","getTextColor","textFont","seriesGroups","hostGeoModel","seriesList","datas","statisticType","mapKey","dataStatistics","originalData","seriesGroup","needsDrawMap","cloneShallow","mainSeries","symbolCtor","_symbolCtor","symbolDrawProto","symbolNeedsDraw","normalizeUpdateOpt","makeSeriesScope","hoverItemStyle","cursorStyle","SymbolCtor","seriesScope","fadeOut","isPersistent","updateLayout","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","taskParams","updateIncrementalAndHover","enableAnimation","VisualMapView","createSymbol","helper","doRender","visualMapModel","itemAlign","_getItemAlign","viewData","_getViewData","endsText","showLabel","_renderEndsText","viewPieceList","piece","itemGroup","_onItemClick","_enableHoverLink","indexInModelPieceList","representValue","getRepresentValue","_createItemSymbol","visualState","renderBackground","positionGroup","pieceIndex","onHoverLink","hoverLink","batch","makeHighDownBatch","findTargetDataIndices","modelOption","getItemAlign","getPieceList","shapeParam","getControllerVisual","newKey","getSelectedMapKey","selectedMode","visualMapId","_util","visualColorAccessPath","encodeDefine","setEncodeAndDimensions","getRawIndicesByActiveState","theActiveState","parallelIndex","inactiveOpacity","activeOpacity","FunnelSeries","getSum","minSize","maxSize","gap","funnelAlign","View","_nameCoordMap","nameCoordMap","_regionsMap","regionsMap","_invertLongitute","boundingRect","getReferringComponents","containCoord","transformTo","rawTransformable","_rawTransformable","calculateTransform","decomposeTransform","_updateTransform","getRegion","getRegionByCoord","getGeoCoord","noRoam","out","updateViewOnPan","controllerHost","dirty","updateViewOnZoom","zoomDelta","zoomX","zoomY","newZoom","zoomScale","xAxis","yAxis","$","$values","stat","linkList","createDimensions","TreeNode","hostTree","viewChildren","Tree","_nodes","isRemoved","eachNode","options","order","suppressVisitSub","updateDepthAndHeight","getNodeById","getId","getAncestors","includeSelf","ancestors","getValue","setLayout","ignoreParent","isAncestorOf","isDescendantOf","getNodeByDataIndex","getNodeByName","clearLayouts","clearItemLayouts","createTree","dataRoot","beforeLink","tree","listData","dimMax","buildHierarchy","dataNode","addChild","dimensionsInfo","mainData","struct","structAttr","VisualMapModel","reformIntervals","PiecewiseModel","minOpen","maxOpen","itemSymbol","pieceList","_pieceList","mode","_mode","_determineMode","resetMethods","_resetSelected","mappingOption","mappingMethod","dataExtent","visualTypesInPieces","visualTypes","listVisualTypes","obj","pieces","exists","hasSel","findPieceIndex","dataIndices","pieceInterval","getColorVisual","curr","setStop","valueState","splitStep","close","cate","normalizeReverse","pieceListItem","closeList","infinityList","useMinMax","lg","retrieveVisuals","parallelVisual","candlestickVisual","candlestickLayout","TimelineAxis","getLabelModel","createRenderPlanner","LargeArr","Float32Array","plan","candleWidth","barMaxWidth","barMinWidth","barWidth","calculateCandleWidth","openDim","closeDim","lowestDim","highestDim","isSimpleBox","progress","pipelineContext","large","tmpIn","tmpOut","openVal","closeVal","lowestVal","highestVal","getSign","ocLow","ocHigh","ocLowPoint","ocHighPoint","lowestPoint","highestPoint","subPixelOptimizePoint","brushRect","makeBrushRect","pmin","pmax","curveUtil","EffectLine","lineData","createLine","_updateEffectSymbol","effectLineProto","effectModel","_symbolType","culling","setColor","_symbolScale","_updateEffectAnimation","period","constantSpeed","delayExpr","isDelayFunc","updateAnimationPoints","getLineLength","_period","_loop","__t","animator","animate","when","updateSymbolPosition","__p1","__cp1","__p2","t","lastPos","quadraticAt","quadraticDerivativeAt","tx","ty","undefined","__lastT","scaleY","Diff","buildValues","components","newArr","oldArr","componentPos","componentLen","newPos","oldPos","component","equals","oldLen","editLength","maxEditLength","bestPath","extractCommon","execEditLength","diagonalPath","basePath","addPath","removePath","canAdd","canRemove","pushComponent","last","commonCount","tokenize","getAutoCurvenessParams","createCurveness","appendLength","autoCurvenessParmas","curvenessList","__curvenessList","getKeyOfEdges","getOppositeKey","getEdgeMapLengthWithKey","edgeMap","__edgeMap","initCurvenessList","createEdgeMapForCurveness","oppositeEdges","isForward","getCurvenessForEdge","needReverse","autoCurvenessParams","isArrayParam","edgeArray","getEdgeFromMap","edgeIndex","totalLen","getTotalLengthBetweenNodes","curKey","parityCorrection","oppositeKey","resValue","RoamController","roamHelper","getUID","Transformable","getFixedItemStyle","areaColor","updateMapSelected","mapOrGeoModel","regionsGroup","otherRegionEl","__regions","MapDraw","updateGroup","_controller","_controllerHost","_updateGroup","_mouseDownFlag","_mapName","_initialized","_regionsGroup","_backgroundGroup","draw","fromView","isGeo","_updateBackground","targetScale","transformInfo","getTransformInfo","isFirstDraw","roamTransform","rawScale","rawPosition","itemStyleAccessPath","hoverItemStyleAccessPath","labelAccessPath","hoverLabelAccessPath","regionGroup","compoundPath","CompoundPath","segmentIgnoreThreshold","paths","dataIdx","itemStyleModel","regionModel","getRegionModel","hoverItemStyleModel","indexOfName","transformPoint","geometries","geometry","exterior","interiors","interior","hoverShowLabel","isDataNaN","useInsideStyle","textScale","highDownSilentOnTouch","_updateController","mapDraw","action","updateMapSelectHandler","removeGraphic","makeGraphic","enable","makeActionBase","setPointerChecker","getViewRectAfterRoam","minValue","maxValue","mapValueToColor","mapValueToVisual","customColor","LegendView","ScrollableLegendView","newlineDisabled","_currentIndex","_containerGroup","getContentGroup","_controllerGroup","_showController","resetInner","__rectSize","renderInner","selector","selectorPosition","me","controllerGroup","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","_pageGo","layoutInner","isFirstRender","selectorGroup","getSelectorGroup","orientIdx","hw","yx","selectorButtonGap","selectorRect","selectorPos","processMaxSize","mainRect","_layoutContentAndController","contentGroup","contentRect","controllerRect","showController","contentPos","containerPos","controllerPos","pageInfo","_getPageInfo","pageIndex","contentPosition","_updatePageInfoView","legendId","canJump","pageText","total","pageCount","containerRectSize","targetItemIndex","_findTargetItemIndex","targetItem","itemCount","pCount","pagePrevDataIndex","pageNextDataIndex","targetItemInfo","getItemInfo","winStartItemInfo","winEndItemInfo","currItemInfo","intersect","itemRect","__legendDataIndex","itemInfo","winStart","targetDataIndex","legendDataIdx","defaultIndex","$reduce","arrayMethodIsStrict","arrayMethodUsesToLength","STRICT_METHOD","USES_TO_LENGTH","1","forced","reduce","BrushTargetManager","STATE_LIST","DISPATCH_FLAG","PRIORITY_BRUSH","VISUAL","BRUSH","layoutCovers","brushTargetManager","setInputRanges","doDispatch","brushSelected","isDisposed","checkInRange","selectorsByBrushType","rangeInfoList","selectors","getSelectorsByBrushType","brushSelector","sels","selectorsByElementType","bSelector","sel","brushIndex","thisBrushSelected","brushId","brushName","linkedSeriesMap","selectedDataIndexForLink","rangeInfoBySeries","hasBrushExists","selFn","elType","bindSelector","boundingRectBuilders","visualMappings","linkOthers","brushed","stepAParallel","brushModelNotControll","controlSeries","stepAOthers","seriesBrushSelected","applyVisual","fn","getBoundingRectFromMinMax","minMax","toInteger","requireObjectCoercible","repeat","str","String","RangeError","coordsOffsetMap","coordFix","cp","getProgressive","getProgressiveThreshold","progressiveThreshold","largeThreshold","roundCap","showBackground","backgroundStyle","borderType","borderRadius","symbolProto","getScale","driftSymbol","_createSymbol","keepAspect","symbolPath","toLastFrame","getSymbolPath","setDraggable","_updateCommon","fadeIn","_seriesModel","normalStyleAccessPath","emphasisStyleAccessPath","normalLabelAccessPath","emphasisLabelAccessPath","highDownOnUpdate","fromState","toState","__symbolOriginalScale","ratio","emphasisOpt","symbolInnerColor","z2Origin","__z2Origin","useNameLabel","isAnimationEnabled","keepLabel","radiusAxisModel","axisAngle","labelRotate","layoutAxis","splitLines","Circle","mergePath","lines","areaColors","splitAreas","prevRadius","Sector","distance","SKIP_PROPS","CandlestickView","_updateDrawMode","_isLargeDraw","_renderLarge","_renderNormal","_clear","_incrementalRenderLarge","_incrementalRenderNormal","isLargeDraw","needsClip","clipArea","isNormalBoxClipped","setBoxCommon","createLarge","NormalBoxPath","__simpleBox","clipped","LargeBoxPath","__sign","largePoints","elP","elN","setLargeStyle","suffix","updateDataSelected","toggleItemSelected","midAngle","PiePiece","sector","piePieceProto","firstCreate","labelText","sectorShape","withAnimation","_updateLabel","hoverIgnore","normalIgnore","labelLayout","targetLineShape","linePoints","targetTextStyle","labelHoverModel","labelLineModel","labelLineHoverModel","inside","sectorGroup","_sectorGroup","onSectorClick","piePiece","_createClipPath","eachEdge","_axisHelper","getStackedDimension","updatePolarScale","setAxis","polarCreator","polarList","polarModel","findAxisModel","angleAxisModel","resizePolar","isDimensionStacked","getSeriesStackId","getAxisKey","lastStackCoords","barWidthAndOffset","barSeries","columnsMap","axisKey","columnsOnAxis","remainedWidth","autoWidthCount","categoryGap","stacks","stackId","maxWidth","barCategoryGap","coordSysName","barGapPercent","autoWidth","column","lastColumn","widthSum","calRadialBar","filter","getSeriesByType","isSeriesFiltered","columnLayoutInfo","columnOffset","columnWidth","barMinHeight","barMinAngle","baseDim","stacked","clampLayout","valueAxisStart","baseValue","baseCoord","radiusSpan","angleSpan","mathCos","mathSin","selectableMixin","GeoModel","_optionModelMap","optionModelMap","regionOpt","scaleLimit","categoryFilter","categoryVisual","edgeVisual","circularLayout","createView","POST_CHART_LAYOUT","Graph","directed","addNode","linkNameList","validEdges","linkCount","link","addEdge","coordSysCtor","dimensionNames","datasAttr","ctor","leaves","leavesModel","isExpand","treeDepth","expandTreeDepth","expandAndCollapse","initialTreeDepth","getRawDataItem","collapsed","realRoot","edgeShape","edgeForkPosition","roam","nodeScaleRatio","useEncodeDefaulter","hoverLayerThreshold","axisExpandCenter","axisExpandRate","axisExpandDebounce","axisExpandSlideTriggerArea","axisExpandTriggerOn","parallelAxisDefault","_initDimensions","setAxisExpand","dependentModels","parallelAxis","nextRight","hierNode","thread","nextLeft","nextAncestor","nodeInLeft","ancestor","moveSubtree","wl","wr","shift","change","modifier","prelim","defaultSeparation","defaultAncestor","pop","firstWalk","separation","siblings","subtreeW","executeShifts","midPoint","subtreeV","nodeOutRight","nodeInRight","nodeOutLeft","sumOutRight","sumInRight","sumOutLeft","sumInLeft","apportion","secondWalk","nodeX","radialCoordinate","radialCoor","getViewRect","eventTool","throttle","DataZoomView","SHOW_DATA_SHADOW_SERIES_TYPE","SliderZoomView","_displayables","_range","_handleEnds","_size","_handleWidth","_handleHeight","_location","_dataShadowInfo","dataZoomModel","_buildView","_updateView","_resetLocation","_resetInterval","barGroup","_renderBackground","_renderHandle","_renderDataShadow","_positionGroup","coordRect","_findCoordRect","ecSize","positionInfo","layoutRect","location","targetAxisModel","getFirstTargetAxisModel","otherAxisInverse","_getViewExtent","_onClickPanelClick","_prepareDataShadowInfo","otherDim","getShadowDim","otherDataExtent","getDataExtent","otherOffset","lastIsEmpty","otherShadowExtent","thisShadowExtent","areaPoints","thisCoord","stride","otherCoord","showDataShadow","eachTargetAxis","getAxisProxy","getTargetSeriesModels","thisAxis","thisDim","displaybles","handles","handleLabels","filler","getCursor","_onDragMove","ondragstart","_showDataInfo","_onDragEnd","onmouseover","onmouseout","bRect","handleColor","getPercentRange","viewExtent","_updateInterval","viewExtend","minMaxSpan","findRepresentativeAxisProxy","getMinMaxSpan","percentExtent","lastRange","nonRealtime","handleInterval","handle","handleHeight","_updateDataInfo","labelTexts","axisProxy","getAxisModel","dataInterval","calculateDataWindow","valueWindow","getDataValueWindow","_formatLabel","orderedHandleEnds","barTransform","direction","textPoint","labelFormatter","labelPrecision","getPixelPrecision","valueStr","getLabel","showOrHide","vertex","changed","_dispatchZoomAction","localPoint","dataZoomId","getTargetCoordInfo","addCommas","fillLabel","MarkerModel","_mergeOption","hostSeries","__hostSeries","newOpt","createdBySelf","markerOpt","markerModel","renderMode","getRawValue","formattedValue","_number","valueArr","isAscending","getSortedIndices","sizeExtent","getLinePoints","y0","x0","textX","textY","labelPosition","isLabelInside","labelLineLen","extendChartView","_layers","layerSeries","getLayerSeries","keyGetter","dataDiffer","_layersSeries","newLayersGroups","process","oldLayersGroups","points0","textLayout","layerGroup","rectEl","createGridClipShape","hasKeys","mappings","Creater","__hidden","createMappings","__alphaForOpacity","scope","visualTypesMap","eachItem","valueOrIndex","rawDataItem","visualMap","prepareVisualTypes","incrementalApplyVisual","timeoutPromise","ms","promise","Promise","reject","setTimeout","then","classes","forEach","c","_React$Component","CSSTransition","_this","_len","args","_key","appliedClasses","appear","enter","exit","onEnter","appearing","removeClasses","addClass","onEntering","onEntered","onExit","onExiting","onExited","getClassNames","classNames","isStringClassNames","baseClassName","activeClassName","doneClassName","_proto","phase","scrollTop","_addClass","_this$appliedClasses$","active","_this$props","Transition","defaultProps","propTypes","TianmuAd","useState","showBig","setShowBig","showSmall","setShowSmall","timer","useRef","closeBig","useEffect","sendTeaAdEvent","ad_material_id","materiel_str","ad_target_url","web_url","log_extra","ad_id","id_str","ad_req_id","JSON","parse","req_id","showed","localStorage","getItem","setItem","err","clearTimeout","removeItem","image_big","url","in","timeout","mountOnEnter","unmountOnExit","BigImage","onClose","SmallImage","onClickReplay","useAdStat","send","click","ref","handleClick","useInView","threshold","ref2","inView","adData","click_track_url_list","sendAdMonitor","requestId","ad_log_id","eventId","open","src","role","stopPropagation","ref1","sendStatRef","useLayoutEffect","applyHttpsImage","image_icon","TonglanAd","expaned","setExpaned","onMouseEnter","onMouseLeave","image_expand","isClosed","error","setClose","XuanjingAd","isShow","setIsShow","setType","documentElement","imageLeft","image_left_small","image_left_big","imageRight","image_right_small","image_right_big","image_banner","isPast","now","old","Number","PopUpAd","past","setPast","background_image","car_icon","require","sendTeaCommEvent","shrink_type","bg","getElementById","car","button","minmize","classList","handleMin","handleClose","initState","HomeStoreContext","createContext","dispatch","reducer","HomeStoreProvider","useReducer","Provider","useAdData","useContext","fetch","sendRequest","ok","createFetch","BannerAD","adInfo","setAdInfo","showPopUp","setShowPopUp","cityName","useCityName","credentials","json","catch","console","waitTime","sky_fall_banner_ad","dazzling_banner_ad","showPop","main_splash_ad","showXuanjingAd","showTianmuAd","showTonglanAd","pc_common_banner_ad","AdItem","HotNewsRightAD","hotNewsAd","right_button_banner_ad","left_ic_img","ToggleImageGroup","imgArray","setSlideIndex","show_home_live_banner_tea","room_ids","autoplay","disableOnInteraction","navigation","nextEl","prevEl","onSlideChangeTransitionStart","activeIndex","imgGroup","live_black_gif","default_svg","HotNews","hotSpot","isVisible","useVisible","hasShow","setHasShow","slideIndex","liveDatas","setLiveDatas","loaded","setLoaded","getUrl","room_id","preview_id","create_time","popularity","user_info","user_name","avatar","user_id_str","author_profile_url","live_card_img_group","cover_url","group_id","content_type","alt","prevPressed","nextPressed","switch_direction","rank","anchor_id","is_live_preview","formatNumber","formatTime","rel","renderTitle","fontWeight","unique_id_str","gid","star","star_black","quoter","quoter2","quoter3","ValueCard","mark_text","score","author_info","series_name","series_id","appearance_score","power_score","control_score","comfort_score","space_score","configuration_score","interiors_score","related_group_id","group_list","review_detail_url","car_profile_url","user_id","useMemo","radar","lineHeight","indicator","nameGap","splitArea","areaStyle","splitLine","axisLine","normal","classListValue","includes","evaluate_card_clk_position","avatar_url","starIcon","starVacantIcon","maxScore","starWidth","starHeight","srcSet","jumpTo","score_bg","logo","change_ic","change_ic2","change_ic3","DongCheFen","reviewData","indexNext","setIndexNext","arr","TypeList","param","series_type","series_type_id","classnames","renderCar","TonglanAD2","targetAD","video_down_banner_ad","PopularSeriesAd","adShowRef","car_series_id","car_series_name","showStr","track_url_list","ConditionList","nav","match","RegExp","PopularModels","setParams","setNav","carList","setCarList","newCarList","setNewCarList","tempStorage","Map","headers","body","fetchData","acc","usePopularSeriesAd","seriesIdList","adItem","newDedupArr","handleReplacePosition","onMouseOver","price_range","country_type","outter_name","brand_name","FirstRowSeriesItem","RowSeriesItemWithAD","series_status_tag","SeriesDetail","carIds","car_ids","renderCarList","getZT","showAd","setShowAd","handleMouseEnter","handleMouseLeave","PopularBrands","brands","hotBrandIds","showBrands","brand","brandId","brand_id","image_url","backgroundImage","renderBrands","SwiperCore","use","Navigation","Pagination","Autoplay","video_icon","videoTitle","column_id","FeaturedVideos","featuredVideos","articleList","list_type","item_type","key_name","program_id","watchOverflow","pagination","clickable","spaceBetween","slidesPerView","swiper","videoList","videoBig","item_rank","infoItem","infoIndex","formatDuration","marginTop","gid_str","REG_EX","CarList","hasIcon","isOrigin","regRes","exec","online_date","monthStr","price","min_price","max_price","SalesLeaderborard","sales","leftContent","rightContent","getLinkHref","new_card_span_img","vertical_slash_line_img","NewCarCard","more_ic_b_img","more_ic_b_img2","more_ic_b_img3","NewRelease","carData","setCarData","tagNow","setTagNow","containerRef","tag","onClickTag","dataset","scrollTo","data-type","tab_name","TodayNews","todayNews","hot","is_video","Label","SwiperAD","customStat","ad_picture_url","adPositionMap","second_frames_banner_ad","forth_frames_banner_ad","five_frames_banner_ad","six_frames_banner_ad","seven_frames_banner_ad","eight_frames_banner_ad","nine_frames_banner_ad","Banner","banner","showBanner","setShowBanner","BannerSwiper","swiperInstance","setSwiperInstance","bannerWithAd","React","newBanner","bulletActiveClass","bulletClass","material_url","img_url","getSwiper","bannerItem","originalColumn","program_name","logo_url","dayjs","update_time","format","episode","CarAtlas","panoramicCar","slidesPerGroup","preventClicks","allowTouchMove","currectList","seriesBig","panoramic_url","ns_cover_url","Home","newCar","atlas","originalColumnData","friendshipLinkData","carAtlasData","pcHotVideoList","dCarScoreList","onSSR","article","getInitialProps","months","month","series_list","pcHotVideo","pcHotArticle","dcarScoreData","all","hotSpotData","todayNewsData","bannerData","nice_series_list","panoramic_car","withRouter","PI2","validDataCount","unitRadian","roseType","restAngle","valueSumLargerThanMinAngle","currentAngle","paletteScope","categoriesData","getCategoriesData","categoryNameIdxMap","getColorFromPalette","itemStyleList","barPolar","borderColorQuery","globalColors","eachRawSeriesByType","defaulColor","legendSymbol","getTargetSeries","seriesModelMap","overallReset","filterData","percentRange","getDataPercentWindow","valueRange","setCalculatedRange","startValue","endValue","getMarkerPosition","clampData","progressiveChunkMode","markerHelper","LineDraw","MarkerView","markLineTransform","mlModel","mlType","axisInfo","getAxisInfo","valueDataDim","numCalculate","valueIndex","mlFrom","mlTo","dataTransform","isInifinity","ifMarkLineHasOnlyDim","fromCoord","toCoord","otherDimIndex","markLineFilter","updateSingleMarkerEndLayout","isFrom","xPx","yPx","dims","markLineModel","mlData","fromData","__from","toData","__to","markerGroupMap","renderSeries","seriesData","lineDrawMap","lineDraw","coordDimsInfos","optData","dimValueGetter","createList","updateDataVisualAndLayout","lineColor","dataModel","__keep","DEFAULT_BAR_BOUND","ContinuousModel","calculable","hoverLinkDataSize","hoverLinkOnHandle","_resetRange","auto","getSelected","oVals","getColorStopValues","iVals","iIdx","oIdx","iLen","oLen","first","stopsLen","stopValues","sankeyLayout","sankeyVisual","_echarts","_export","DATAS","MAIN_DATA","transferInjection","linkAll","linkSingle","changeInjection","cloneShallowInjection","getLinkedData","main","TRANSFERABLE_METHODS","CHANGABLE_METHODS","assert","Region","roams","InsideZoomView","allCoordIds","coordInfo","generateCoordId","coordModel","getRange","roamHandlers","coordId","containsPoint","unregister","directionInfo","getDirectionInfo","percentPoint","signal","pixelStart","pixelLength","pixel","pan","makeMover","oldX","oldY","newX","newY","scrollMove","scrollDelta","getPercentDelta","percentDelta","oldPoint","newPoint","isNumeric","BAR_BORDER_WIDTH_QUERY","LAYOUT_ATTRS","posDesc","pathForLineWidth","getSymbolMeta","symbolMeta","animationModel","output","boundingLength","zeroPx","pxSignIdx","symbolBoundingExtent","convertToCoordOnAxis","coordSysExtent","repeatCutLength","pxSign","prepareBarLength","categoryDim","categorySize","symbolScale","prepareSymbolSize","valueLineWidth","getLineScale","prepareLineWidth","unitLength","pathLen","absBoundingLength","hasEndGap","lastIndexOf","uLenWithMargin","endFix","repeatSpecified","repeatTimes","toIntTimes","sizeFix","pathPosition","bundlePosition","barRectShape","prepareLayoutInfo","createPath","createOrUpdateRepeatSymbols","isUpdate","bundle","__pictorialBundle","unit","eachPath","__pictorialAnimationIndex","__pictorialRepeatTimes","updateAttr","makeTarget","updateHoverAnimation","onMouseOut","createOrUpdateSingleSymbol","mainPath","__pictorialMainPath","createOrUpdateBarRect","barRect","__pictorialBarRect","createOrUpdateClip","__pictorialClipPath","getAnimationDelayParams","createBar","__pictorialShapeStr","getShapeStr","__pictorialSymbolMeta","removeBar","labelRect","pathes","immediateAttrs","animationAttrs","barRectHoverStyle","barPositionOutside","times","roundedTimes","cartesian","coordSysRect","pictorialShapeStr","updateBar","dataBackground","fillerColor","handleIcon","handleStyle","showDetail","zoomLock","SunburstPiece","windowOpen","virtualRoot","newRoot","getViewRoot","renderLabelForZeroData","_oldChildren","processNode","newId","oldId","newNode","oldNode","removeNode","doRenderNode","dualTravel","viewRoot","virtualPiece","_onclickEvent","_rootToNode","renderRollUp","highlightPolicy","onEmphasis","unhighlight","onNormal","_initEvents","targetFound","nodeClick","linkTarget","TimelineView","_axis","_viewRect","_timer","_currentPointer","_mainGroup","_labelGroup","timelineModel","mainGroup","_createGroup","labelGroup","_createAxis","_renderAxisLabel","_position","_doPlayStop","_clearTimer","labelPosOpt","playPosition","prevBtnPosition","nextBtnPosition","labelAlignMap","labelBaselineMap","rotationMap","mainLength","controlModel","showControl","controlSize","controlGap","sizePlusGap","xLeft","xRight","labelAlign","labelBaseline","rotateOriginX","rotateOriginY","viewBound","getBound","mainBound","labelBound","mainPosition","labelsPosition","mainBoundIdx","toBound","setOrigin","targetGroup","fromPos","boundIdx","getTicks","niceTicks","newGroup","_renderAxisLine","lineCap","_renderAxisTick","ticks","hoverStyleModel","symbolOpt","_changeTimeline","giveSymbol","labels","normalLabelModel","formattedLabel","_renderControl","playState","makeBtn","iconPath","willRotate","btn","objPath","makeIcon","rectHover","_handlePlayClick","_renderCurrentPointer","pointerModel","onCreate","_handlePointerDrag","_handlePointerDragend","pointerMoveTo","onUpdate","nextState","_pointerChangeTimeline","mousePos","_toAxisCoord","_findNearestTick","trans","axisCoord","nextIndex","noAnimation","dragging","generateCoord","preventIncremental","coordSysCreator","blurSize","pointSize","maxOpacity","minOpacity","AxisProxy","eachAxisDim","retrieveRawOption","updateRangeUse","inputRawOption","rangePropMode","_rangePropMode","rangeModeInOption","percentSpecified","valueSpecified","filterMode","minValueSpan","maxValueSpan","rangeMode","_dataIntervalByAxis","_dataInfo","_axisProxies","_autoThrottle","settledOption","doInit","_setDefaultThrottle","_resetTarget","_giveAxisProxies","axisProxies","__dzAxisProxy","autoMode","_judgeAutoMode","axisIndexName","_autoSetAxisIndex","_autoSetOrient","hasIndexSpecified","autoAxisIndex","singleAxisModel","singleAxisIndex","axisIndices","_isSeriesHasAllAxesTypeOf","axisId","seriesAxisIndex","globalOption","firstAxisModel","setRawRange","getValueRange","axisDimName","hostedBy","getRangePropMode","PathProxy","textHelper","CMD","arrayJoin","mathRound","degree","round4","isAroundZero","setTransform","svgEl","bindStyle","isText","pathHasFill","fillOpacity","pathHasStroke","textStrokeWidth","strokeOpacity","lineDash","lineDashOffset","miterLimit","createPathProxy","__dirtyPath","beginPath","pathStr","dataLength","cmdStr","nData","L","Q","C","A","rx","ry","theta","dTheta","psi","dThetaPositive","isCircle","unifiedTheta","Z","R","pathDataToString","svgTextDrawRectText","removeOldTextNode","HTMLImageElement","dw","dh","__imageSrc","setAttributeNS","attrXLink","_tmpTextHostRect","_tmpTextBoxPos","_tmpTextTransform","TEXT_ALIGN_TO_ANCHRO","hostRect","elTransform","needTransformTextByHostEl","transformText","normalizeTextStyle","needDrawText","textSvgEl","textSvgElStyle","DEFAULT_FONT","computedFont","__computedFont","__styleFont","textLineHeight","contentBlock","__textCotentBlock","__dirtyText","parsePlainText","truncate","outerHeight","getBoxPosition","baseX","baseY","identity","textRotation","textOrigin","setTextTransform","adjustTextY","getTextXForPadding","canCacheByTextString","tspanList","__tspanList","tspanOriginLen","__canCacheByTextString","__text","updateTextLocation","textLines","nTextLines","tspan","singleLineText","__zrText","createTextNode","drawRectText","ContinuousView","_shapes","_dataInterval","_useHandle","_hoverLinkDataIndices","_hovering","_renderBar","dataRangeText","_enableHoverLinkToSeries","_enableHoverLinkFromSeries","endsIndex","_applyTransform","shapes","useHandle","_createBarGroup","createPolygon","_dragHandle","textSize","handleThumbs","handleLabelPoints","_createHandle","_createIndicator","onDrift","onDragEnd","handleThumb","createHandlePoints","handleLabel","onmousemove","handleLabelPoint","indicatorLabel","indicatorLabelPoint","HOVER_LINK_OUT","_clearHoverLinkToSeries","useHoverLinkOnHandle","_doHoverLinkToSeries","forSketch","outOfRangeHandleEnds","inRangeHandleEnds","visualInRange","_createBarVisual","visualOutOfRange","barColor","barPoints","_updateHandle","forceState","convertOpacityToAlpha","_makeColorGradient","symbolSizes","_createBarPoints","handlesColor","currValue","_showIndicator","cursorValue","rangeSymbol","halfHoverLinkSize","isRange","extentMax","createIndicatorPoints","_hoverLinkFromSeriesMouseOver","_hideIndicator","_clearHoverLinkFromSeries","cursorPos","hoverOnBar","HOVER_LINK_SIZE","getHalfHoverLinkSize","hoverRange","oldBatch","newBatch","resultBatches","compressBatches","_dispatchHighDown","global","classof","Single","singles","EffectSymbol","pointsLayout","effectSymbolDraw","_updateGroupTransform","getRoamTransform","actionTypes","targetInfo","retrieveTargetInfo","originViewRoot","aboveViewRoot","resetViewRoot","_createPolyline","polylineProto","_updateCommonStl","hoverLineStyle","legendSelectActionHandler","selectedMap","isToggleSelect","legendData","isItemSelected","fixRegExpWellKnownSymbolLogic","anObject","advanceStringIndex","regExpExec","MATCH","nativeMatch","maybeCallNative","regexp","matcher","S","fullUnicode","unicode","lastIndex","matchStr","cellWidth","cellHeight","dayCount","SingleAxis","_adjustAxis","_updateAxisTransform","coordBase","extentSum","HeatmapLayer","visualMapOfThisSeries","targetSeries","_incrementalDisplayable","_renderOnCartesianAndCalendar","isGeoCoordSys","_renderOnGeo","hoverStl","coordSysType","dataDims","rawValue","inRangeVisuals","outOfRangeVisuals","hmLayer","_hmLayer","lng","lat","isInRange","dataSpan","getIsInContinuousRange","getIsInPiecewiseRange","getNormalizer","getColorMapper","img","canvas","curveTool","v1","v2","v3","v2DistSquare","distSquare","mathAbs","intersectCurveCircle","curvePoints","p0","radiusSquare","_t","nextDiff","tmp0","quadraticSubdivide","pts","pts2","fromSymbol","toSymbol","__original","originalPoints","resetRange","restoreData","gridIndex","gridId","extraOption","componentModel","pointerChecker","_opt","mousedownHandler","mousemoveHandler","mouseupHandler","mousewheelHandler","mousewheel","pinchHandler","pinch","controlType","disable","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","isDragging","isPinching","_pinching","isMiddleOrRightButtonOnMouseUpDown","_x","_y","isAvailableBehavior","gestureEvent","isTaken","shouldZoom","shouldMove","wheelDelta","absWheelDeltaDelta","factor","checkPointerAndTrigger","absDelta","pinchScale","pinchX","pinchY","behaviorToCheck","contollerEvent","settings","setting","Definable","tagNames","markLabel","domName","_zrId","_tagNames","_markLabel","_domName","nextId","getDefs","dom","addDom","removeDom","getDoms","doms","tags","getSvgProxy","parseGeoJson","makeInner","fixNanhai","fixTextCoord","fixGeoCoord","fixDiaoyuIsland","inner","mapRecord","nameProperty","parsed","specialAreas","geoJSON","message","regionName","specialArea","regionRect","union","positiveBorderColorQuery","negativeBorderColorQuery","positiveColorQuery","negativeColorQuery","performRawSeries","colorP","getColor","colorN","borderColorP","getBorderColor","borderColorN","FunnelPiece","funnelPieceProto","opacityAccessPath","funnelPiece","axisTick","offsetCenter","detail","_format","MapSeries","selectTargetList","toAppendNames","geoSource","appendValues","seriesNames","otherIndex","newLine","getTooltipPosition","showLegendSymbol","dataRangeHoverLink","NodeHighlightPolicy","SunburstPieceProto","_ecModel","getRootId","getNodeColor","fillDefaultColor","stateStyle","activeNode","policy","onHighlight","onDownplay","normalModel","labelState","getLabelAttr","labelMinAngle","labelPadding","rotateType","stateAttr","saveAsImageLang","saveAsImage","SaveAsImage","connectedBackgroundColor","excludeComponents","pixelRatio","painter","getConnectedDataURL","MouseEvent","browser","ie","navigator","msSaveOrOpenBlob","bstr","atob","u8arr","Uint8Array","charCodeAt","blob","Blob","write","$a","download","evt","bubbles","cancelable","dispatchEvent","collection","collectionStrong","getNodeGlobalScale","groupScale","groupZoom","COORDS","createNameEach","attrs","capitalNames","capitalFirst","capitalAttrs","nameObj","capital","isCoordSupported","coordType","createLinkedNodesFinder","forEachNode","forEachEdgeType","edgeIdGetter","sourceNode","existsLink","records","edgeType","absorb","processSingleNode","isNodeAbsorded","hasLink","edgeId","isLinked","themeRiverLayout","baseY0","timeDim","layerPoints","singleLayer","layerNum","pointNum","sums","temp","l","computeBaseline","baseLine","ky","layerIndex","replaceClassName","origClass","classToRemove","baseVal","colorList","ATTR","giveStore","cleanStore","store","record","dataZoomInfo","theDataZoomId","theCoordId","dataZoomInfos","newRecord","createController","controllerParams","prefix","typePriority","oneType","mergeControllerParams","getPathToRoot","validPayloadTypes","targetNodeId","viewPath","nodeDataIndex","nodeOpacityPath","hoverNodeOpacityPath","lineOpacityPath","hoverLineOpacityPath","getItemOpacity","opacityPath","fadeOutItem","opacityRatio","getGraphicEl","fadeInItem","SankeyShape","extendShape","cpx1","cpy1","cpx2","cpy2","_focusAdjacencyDisabled","sankeyView","curve","curvature","n1Layout","node1Model","dragX1","dragY1","n2Layout","node2Model","dragX2","dragY2","edgeLayout","sy","dragX","dragY","focusNodeAdjHandler","unfocusNodeAdjHandler","_dispatchUnfocus","edgeModel","edgeDataIndex","_unfocusDelayTimer","focusNodeAdj","outEdges","inEdges","unfocusNodeAdjacency","geoJSONLoader","geoSVGLoader","loaders","svg","singleSource","makeInvoker","hostKey","results","graphSeries","preservedPoints","forceModel","initLayout","nodeDataExtent","edgeDataExtent","repulsion","edgeLength","forceInstance","oldStep","stopped","axisView","axisGroup","splitAreaModel","areaColorsLen","lastSplitAreaColors","__splitAreaColors","newSplitAreaColors","cIndex","prev","u","utcOffset","year","D","toLowerCase","weekdays","g","locale","$L","utc","$u","$offset","$d","substring","UTC","$y","$M","$D","$W","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","unix","valueOf","toDate","$locale","weekStart","$set","daysInMonth","subtract","substr","meridiem","YY","YYYY","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","mm","ss","SSS","getTimezoneOffset","toJSON","toISOString","toUTCString","isDayjs","en","Ls","ifAxisCrossZero","estimateLabelUnionRect","Cartesian2D","isAxisUsedInTheGrid","Grid","_coordsMap","_coordsList","_axesList","_initCartesian","gridProto","fixAxisOnZero","onZeroRecords","otherAxisOnZeroOf","onZero","onZeroAxisIndex","canOnZeroToAxis","getOnZeroRecordKey","_updateScale","ignoreContainLabel","axesList","adjustAxes","axisExtentSum","updateAxisTransform","labelUnionRect","axesMapOnDim","getCartesian","coordList","getCartesians","_findConvertTarget","coordsList","axisPositionUsed","axesCount","createAxisCreator","addAxis","unionExtent","isCartesian2D","axesModels","findAxesModels","otherAxis","axesTypes","grids","_extends","rtl","slidesLength","$el","bullets","firstIndex","midIndex","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","_i","dynamicBulletsLength","bulletsOffset","offsetProp","classesToSelector","progressbarDirection","scaleX","paginationHTML","numberOfBullets","destroy","bulletElement","hideOnClick","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","bindModuleMethods","dynamicBulletIndex","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","_contentGroup","_backgroundEl","_selectorGroup","_isFirstRender","viewportSize","legendDrawnMap","selectMode","excludeSeriesId","eachRawSeries","getSeriesByName","legendSymbolType","_createItem","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","provider","containName","newline","_createSelector","selectorItem","emphasisLabelModel","createSelectorButton","inactiveBorderColor","symbolKeepAspect","legendModelItemStyle","itemIcon","legendGlobalTooltipModel","setSymbolStyle","legendSymbolCenter","hitRect","legendIndex","dataName","zrColor","_normalizeData","normalizers","visualHandler","visualHandlers","_doMap","normalizeVisualRange","hasSpecialVisual","originIndex","preprocessForPiecewise","categoryMap","visualArr","setVisualToOption","preprocessForSpecifiedCategory","normalized","makeApplyVisual","isNormalized","doMapCategory","returnRGBArray","fastLerp","parsedVisual","stringify","linear","piecewise","getSpecifiedVisual","doMapFixed","colorHue","makePartialColorVisualHandler","modifyHSL","colorSaturation","colorLightness","colorAlpha","modifyAlpha","makeDoMap","getter","setter","symbolCfg","doMapToArray","applyValue","sourceExtent","littleThan","addVisualHandler","isPrimary","newVisual","newVal","hasVisual","types","type1","type2","dependsOn","visualType1","visualType2","findClosestWhenOutside","possibleI","pieceValue","updatePossible","newAbs","createLinePoints","addEl","dataGroup","updateElCommon","_dataGroup","newDataIndex","oldDataIndex","inactive","legendModels","findComponents","categoryNames","filterSelf","mapSymbolLayout","mapDataStatistic","backwardCompat","createDataSelectAction","effectType","showEffectOn","rippleEffect","barItemStyle","Sausage","_eventPos","coordinateSystemType","isHorizontalOrRadial","coordSysClipArea","expandWidth","getClipArea","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","createBackground","bgLayout","bgEl","createBackgroundShape","createBackgroundEl","getBarItemStyle","elementCreator","updateStyle","removeRect","removeSector","bgGroup","_removeBackground","coordSysBoundingRect","signWidth","signHeight","signR","animateProperty","animateTarget","isRadial","fixedLineWidth","rawLayout","MAX_VALUE","getLineWidth","signX","signY","isZeroOnPolar","isPolar","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","largeDataIndices","backgroundStartPoint","__largeDataIndices","__barWidth","setLargeBackgroundStyle","largePathUpdateDataIndex","largePath","valueDimIdx","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","ii","barBaseVal","barValueVal","largePathFindDataIndex","coordLayout","redefineAll","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","InternalStateModule","setInternalState","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","iterable","getInternalState","define","previous","entry","getEntry","boundFunction","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","parallel","hasParallelSeries","seriesOpt","createParallelIfNeeded","axisOption","parallelOption","mergeAxisOptionFromParallel","isPolyline","isLarge","lineCoords","segCount","totalCoordsCount","getLineCoordsCount","getLineCoords","transferItem","itemStyleEmphasis","labelNormal","excludeLabelAttr","timelineOpt","timeline","ec2Types","compatibleEC2","geoCoordMap","EffectPolyline","_lastFrame","_lastFramePercent","effectPolylineProto","accLenArr","_offsets","_length","offsets","lastFrame","lerp","PolarAxisPointer","animationThreshold","coordValue","labelPos","innerTextLayout","getLabelPosition","buildLabelElOption","makeSectorShape","objectKeys","toIndexedObject","propertyIsEnumerable","TO_ENTRIES","entries","newSnapshot","batchItem","snapshot","themeRiverVisual","vector","v2ApplyTransform","TransformDummy","_roamTransformable","_center","_zoom","rawTransform","centerCoord","_updateCenterAndZoom","getDefaultCenter","rawRect","rawTransformMatrix","defaultCenter","roamTransformable","_rawTransform","invTransform","invert","TreeShape","parentPoint","childPoints","forkPosition","childLen","firstChildPos","lastChildPos","forkDim","tmpPoint","_oldTree","_updateViewCoordSys","updateNode","_nodeScaleRatio","_updateNodeAndLinkScale","oldMin","_min","oldMax","_max","viewCoordSys","_viewCoordSys","nodeScale","_getNodeGlobalScale","invScale","getTreeNodeStyle","sourceSymbolEl","sourceLayout","sourceOldLayout","rawX","__radialOldRawX","rawY","__radialOldRawY","targetLayout","__radialRawX","__radialRawY","rad","isLeft","rootLayout","labelRotateRadian","__edge","BezierCurve","getEdgeShape","childLayout","drawEdge","sourceEdge","radialCoor1","radialCoor2","radialCoor3","radialCoor4","isForced","redefine","InternalMetadataModule","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","Constructor","exported","fixMethod","KEY","nativeMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","eachAfter","eachBefore","enableClassCheck","generateNodeKey","_directed","_nodesMap","_edgesMap","graphProto","Node","hostGraph","Edge","isDirected","nodesMap","rawIdx","edgesMap","isInstance","getEdge","breadthFirstTraverse","startNode","__visited","queue","currentNode","otherNode","inDegree","outDegree","createGraphDataProxyMixin","hostName","LineGroup","_ctor","lineDrawProto","isPointNaN","lineNeedsDraw","oldLineData","_lineData","doAdd","newLineData","itemEl","doUpdate","isEffectObject","_clearIncremental","_incremental","clearDisplaybles","_targetList","_selectTargetMap","targetMap","select","unSelect","toggleSelected","rawData","idxMap","concatArray","Uint32Arr","Uint32Array","Float64Arr","Float64Array","compatEc2","itemOpt","coords","fromName","toName","LinesSeries","_processFlatCoordsArray","_flatCoords","flatCoords","_flatCoordsOffset","flatCoordsOffset","appendData","_getCoordsFromItemModel","startOffset","coordsOffsetAndLenStorage","coordsStorage","coordsCursor","offsetCursor","dataCount","buffer","effect","trailLength","autoPositionValues","normalizeCssArray","targetValue","visualCluster","visualObj","defaultColor","visualMapping","actionInfos","_mapDraw","dataViewLang","dataView","BLOCK_SPLITER","assembleSeriesWithCategoryAxis","tables","valueAxisDim","columns","items","trim","itemSplitRegex","parseContents","blockMetaList","blocks","block","isTSVFormat","tsv","tsvLines","header","parseTSVContents","blockMeta","hasName","parseListContents","DataView","_dom","tryMergeDataOption","original","shouldDeleteName","readOnly","optionToContent","contentToOption","textColor","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","container","getDom","viewMain","textarea","seriesGroupByCategoryAxis","otherSeries","other","groupSeries","vals","argLen","getContentFromModel","htmlOrDom","getOption","isDom","buttonContainer","buttonStyle","closeButton","refreshButton","addEventListener","newSeriesOptList","foundAxisModel","layoutBox","boxLayoutParams","viewList","positions","bbWidth","bbHeight","_nonShapeGraphicElements","graphicOption","elements","GraphicModel","parentId","_elOptionsToUpdate","newList","existList","flattenedList","_flatten","mappingResult","mappingToExists","makeIdAndName","elOptionsToUpdate","resultItem","newElOption","existElOption","exist","keyInfo","newElParentOption","parentOption","setKeyInfoToNewElOption","newElOptCopy","$action","copyLayoutParams","mergeNewElOptionToExist","existItem","hv","isSetLoc","setLayoutInfoToExist","optionList","useElOptionsToUpdate","els","targetElParent","elMap","__ecGraphicId","removeEl","existEl","existElParent","removeKey","isSet","_elMap","_lastGraphicModel","graphicModel","_updateElements","_relocate","rootGroup","textBaseline","elOptionCleaned","LOCATION_PARAMS","getCleanedElOption","__ecGraphicWidthOption","__ecGraphicHeightOption","setEventData","elOptions","apiWidth","apiHeight","isParentRoot","parentEl","__ecGraphicWidth","__ecGraphicHeight","containerInfo","boundingMode","bounding","straightLineProto","bezierCurveProto","isLine","_buildPathLine","_buildPathCurve","pointAt","_pointAtLine","_pointAtCurve","tangentAt","_tangentAtCurve","dataZoomLang","dataZoom","DataZoom","_brushController","_onBrush","_isZoomActive","back","zoomActive","dataZoomSelectActive","retrieveAxisSetting","include","makePanelOpts","xAxisDeclared","yAxisDeclared","updateZoomBtnStatus","updateBackBtnStatus","nextActive","matchOutputRanges","coordRange","setBatch","found","dzModel","findDataZoom","dataZoomOpts","toolboxOpt","dataZoomOpt","addForAxis","axisIndicesName","givenAxisIndices","forEachComponent","axisOpt","$fromToolbox","coordSysLists","coordIndex","save","markArea","symbolUtil","LinePath","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","__specifiedRotation","setLinePoints","targetShape","_createLine","lineProto","beforeUpdate","symbolFrom","symbolTo","toPos","specifiedRotation","tangent","__labelDistance","distanceX","distanceY","halfPercent","__position","__verticalAlign","__textAlign","lineLabelOriginalOpacity","visualOpacity","defaultLabelColor","baseText","rawVal","normalText","emphasisText","labelStyle","fontStyle","fontFamily","linePath","updateMarkerLayout","mpData","markPointModel","mpModel","symbolDrawMap","dataOpt","isFnSymbol","isFnSymbolSize","isFnSymbolRotate","dataParams","sizeCalculable","CalendarModel","hvIdx","groupData","isNodeDepth","resolveCollisions","nodesByBreadth","keyAttr","nodeDyAttr","relaxRightToLeft","alpha","weightedTarget","getEdgeValue","centerTarget","nodeY","weightedSource","centerSource","array","relaxLeftToRight","value1","value2","nodeRawValue","computeNodeValues","iterations","remainEdges","indegreeArr","zeroIndegrees","nextTargetNode","maxNodeDepth","isItemDepth","edgeIdx","maxDepth","nextSourceNode","remainNodes","nodeHeight","skNodeHeight","moveSinksRight","adjustNodeWithNodeAlign","kx","scaleNodeBreadths","computeNodeBreadths","buckets","prepareNodesByBreadth","minKy","nodeDy","edgeDy","initializeNodeDepth","computeNodeDepths","computeEdgeDepths","layoutSankey","toAbsoluteIndex","endPos","_multipleGraphEdgeHelper","GraphSeries","_categoriesData","fillDataTextStyle","_updateCategoriesData","categoryModel","_categoriesModels","edgeLabelModel","fakeSeriesModel","emphasisEdgeLabelModel","emphasisFakeSeriesModel","edgeGetParent","parsePath","sourceName","targetName","circular","rotateLabel","force","layoutAnimation","edgeSymbol","edgeSymbolSize","edgeLabel","isLargeRender","dimLen","stackResultDim","parallelAxisModel","coordSysList","isNameSpecified","langSelector","legend","defaultSelectorOption","_updateSelector","_updateData","hasSelected","potentialData","availableNames","isPotential","getAllNames","_availableNames","allSelect","inverseSelect","selectorLabel","selectorItemGap","createElementNS","markerModelKey","colorUtil","markAreaTransform","maModel","lt","rb","ltCoord","rbCoord","markAreaFilter","getSingleMarkerEndPoint","dimPermutations","markAreaModel","areaData","areaGroupMap","polygonGroup","allClipped","xValue","yValue","__data","ToolboxModel","showTitle","iconStyle","containLabel","filterSeries","travelTree","designatedVisual","viewRootAncestors","nodeModel","nodeLayout","isInView","thisNodeColor","nodeItemStyleModel","designatedVisualItemStyle","visualName","buildVisuals","borderColorSaturation","calculateBorderColor","calculateColor","mapping","rangeVisual","getRangeVisual","visualMin","visualMax","colorMappingBy","__drColorMappingBy","buildVisualMapping","childVisual","childVisuals","mappingType","mapIdToIndex","getValueVisualDefine","markerTypeCalculatorWithExtent","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","indicesOfNearest","coordArrValue","getPrecision","markerTypeCalculator","dataDim","dimItem","dataDimToCoordDim","baseDataDim","getMedian","hasXAndY","hasXOrY","preventUsingHoverLayer","_viewRoot","clipWindow","squareRatio","leafDepth","drillDownIcon","zoomToNodeRatio","breadcrumb","ellipsis","upperLabel","gapWidth","visualDimension","visibleMin","childrenVisibleMin","completeTreeValue","childValue","thisValue","designatedVisualModel","hasColorDefine","globalColorList","levelDefine","modelColor","setDefault","levelModel","setLayoutInfo","idIndexMap","_idIndexMap","_idIndexMapCount","mapLocation","_barGrid","largeLayout","LAYOUT","PROGRESSIVE_LAYOUT","_graphHelper","_symbolRadiansHalf","_layoutNodesBasedOn","unitAngle","radianHalf","sumRadian","symbolRadianHalf","asin","halfRemainRadian","basedOn","x12","y12","adjustEdge","FOCUS_ADJACENCY","opct","_lineDraw","_firstRender","graphView","groupNewProp","_layoutTimeout","_startForceLayoutIteration","_layouting","circularRotateLabel","modifyLabelStyle","adjacentEdge","valueStart","getValueStart","baseDataOffset","stackedOverDimension","stackedData","updateDom","__clipPaths","clipPaths","clipPathEl","getAttribute","mul","pathEl","cloneNode","_textDom","MAX_SAFE_INTEGER","retrieveValue","PATH_BORDER_WIDTH","PATH_GAP_WIDTH","PATH_UPPER_LABEL_SHOW","PATH_UPPER_LABEL_HEIGHT","ecWidth","ecHeight","seriesOption","containerWidth","containerHeight","payloadType","rootRect","viewAbovePath","rootSize","currNode","defaultSize","viewArea","currNodeValue","getUpperLabelHeight","estimateRootSize","viewRootLayout","squarify","hideChildren","thisLayout","halfGapWidth","upperLabelHeight","upperHeight","layoutOffset","layoutOffsetUpper","totalArea","initChildren","rowFixedLength","best","row","worst","treeRoot","defaultPosition","targetCenter","calculateRootPosition","prunning","clipRect","nodeInViewAbovePath","isAboveViewRoot","childClipRect","orderBy","overLeafDepth","statistic","orderedChildren","deletePoint","filterByThreshold","isLeafRoot","areaMax","areaMin","squareArea","flush","idx0WhenH","idx1WhenH","rowOtherLength","rowLen","wh1","remain","modWH","wh0","axisDefault","OrdinalMeta","AXIS_TYPES","BaseAxisModelClass","axisTypeDefaulter","extraDefaultOption","themeModel","getTheme","getDefaultOption","__ordinalMeta","createByAxisModel","linkedNodesFinder","effectedModels","RadarChart","setOption","IncrementalDisplayable","lineContain","quadraticContain","LargeLineShape","segs","quadraticCurveTo","findDataIndex","containStroke","LargeLineDraw","largeLineProto","lineEl","_setCommon","addDisplayable","__startIndex","isIncremental","disabled","linesLayout","linesVisual","PointerPath","formatLabel","parsePosition","_renderMain","axisLineModel","angleRangeSpan","prevEndAngle","axisLineWidth","showAxis","_renderTicks","_renderPointer","_renderTitle","_renderDetail","minVal","maxVal","subSplitNumber","splitLineLen","tickLen","subStep","splitLineStyle","tickLineStyle","unitX","unitY","tickLine","valueExtent","titleModel","forceRich","detailModel","textWidth","textHeight","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","HAS_SPECIES_SUPPORT","ACCESSORS","0","deleteCount","insertCount","actualDeleteCount","actualStart","funnelLayout","getStore","resourceKey","userKey","mapModel","_renderSymbols","originalDataIndex","circle","Z2_EMPHASIS_LIFT","fullData","fullIndex","highDownRecord","recordVersion","onRegionHighDown","enterRegionHighDown","toHighOrDown","extendFrom","__mapOriginalZ2","LargeSymbolDraw","_updateSymbolDraw","_getClipShape","_finished","opacityMap","itemOpacity","colorTool","RectText","Displayable","Gradient","Z2","initRootElStyle","coordsize","coordorigin","rgb2Str","append","getZIndex","setColorAndOpacity","colorArr","getColorAndAlpha","updateFillAndStroke","vmlEl","zrEl","isFill","gradientType","focus","expansion","rectWidth","rectHeight","cs1","cs2","colorAndAlphaList","colors","colorAndAlpha","color1","color2","opacity1","opacity2","focusposition","updateFillNode","dashstyle","updateStrokeNode","_vmlEl","needTransform","strokeEl","det","weight","toStatic","nPoint","xi","yi","x3","y3","sx","zIndex","removeRectText","appendRectText","ow","oh","_imageSrc","_imageWidth","_imageHeight","imageRuntimeStyle","runtimeStyle","oldRuntimeWidth","oldRuntimeHeight","sWidth","sHeight","hasCrop","vmlElStyle","hasRotation","p3","maxX","maxY","transformFilter","imageTransformPrefix","imageEl","_imageEl","cropEl","_cropEl","imageELStyle","tmpImage","onload","overflow","cropElStyle","filterStr","textMeasureEl","fontStyleCache","fontStyleCacheCount","fontEl","$override","ex","offsetWidth","tmpRect","fromTextEl","rich","parseRichText","tokens","textLine","fontString","variant","fontVariant","family","getFontStyle","calculateTextPosition","adjustTextX","textPathEl","skewEl","textVmlEl","_textVmlEl","textpathok","textVmlElStyle","string","polygonContain","linePolygonIntersect","getLineSelectors","inLineRange","layoutRange","calculateCategoryInterval","ordinalScale","ordinalExtent","tickCount","unitSpan","unitH","cache","lastAutoInterval","lastTickCount","VISUAL_PRIORITY","COMPONENT","resultVisual","createOnAllSeries","resetDefines","concreteDim","ThemeRiverSeries","fixData","rawDataLength","timeValueKeys","layData","dataList","timeValue","nameList","dimensionsDefine","lenCount","indexArr","index1","index2","getAxisTooltipData","nestestValue","minDist","nearestIdx","theValue","htmlName","htmlValue","_updateLineDraw","isSvg","getLayer","_lastZlevel","configLayer","motionBlur","_showEffect","lastFrameAlpha","_clearLayer","progressiveRender","hasEffect","_hasEffet","_isPolyline","DEFAULT_TOOLBOX_BTNS","isNew","brushComponents","brushComponentSpecifiedBtns","brushOpt","tbs","toolboxFeature","toolboxBrush","brushTypes","flag","removeDuplicate","animationUtil","PATH_LABEL_NOAMAL","PATH_LABEL_EMPHASIS","PATH_UPPERLABEL_NORMAL","PATH_UPPERLABEL_EMPHASIS","getItemStyleEmphasis","getItemStyleNormal","_storage","nodeGroup","background","_breadcrumb","_state","models","thisStorage","reRoot","rootNodeGroup","_giveContainerGroup","renderResult","_doRender","renderFinally","_doAnimation","_resetController","_renderBreadcrumb","thisTree","oldTree","lastsForAnimation","oldStorage","willInvisibleEls","renderNode","thisViewChildren","oldViewChildren","parentGroup","sameTree","thisNode","willDeleteEls","storageName","delEls","__tmWillDelete","clearStorage","duration","animationWrap","__tmNodeWidth","__tmNodeHeight","targetX","targetY","fadein","_onPan","_onZoom","_clearController","mouseX","mouseY","findTarget","_zoomToNode","thisWidth","thisHeight","thisInvisible","thisRawIndex","oldRawIndex","isParent","itemStyleNormalModel","itemStyleEmphasisModel","giveGraphic","useUpperLabel","processInvisible","visualBorderColor","emphasisBorderColor","emphasisStyle","upperLabelWidth","prepareText","isHighDownDispatcher","contentWidth","contentHeight","renderContent","upperLabelRect","labelProp","addDrillDownIcon","outerWidth","minChar","iconChar","Ctor","lasts","prepareAnimationWhenHasOld","calculateZ","__tmDepth","__tmStorageName","lastCfg","parentOldX","parentOldY","parentOldBg","prepareAnimationWhenNoOld","zInLevel","zb","brushHelper","elementList","fromAxisAreaSelect","coordSysModel","areaWidth","builderOpt","strokeContainThreshold","_refreshBrushController","extentLen","getCoverInfoList","coverInfoList","coverInfo","parallelAxisId","sectorArea","fillOrStroke","hex","toHex","splitList","getAxisLineShape","rExtent","getRadiusIdx","fixAngleOverlap","firstItem","lastItem","ticksAngles","minorTickAngles","_axisLine","rId","r0Id","Ring","_axisTick","tickAngleItem","_minorTick","tickAngles","minorTickModel","_axisLabel","rawCategoryData","commonLabelModel","triggerEvent","labelTextAlign","labelTextVerticalAlign","isLabelSilent","makeAxisEventDataBase","targetType","rawLabel","prevAngle","excludes","getBorderLineDash","thisNumberValue","nativeToFixed","fractionDigits","fractDigits","multiply","c2","divide","dataToString","log","adjustSingleSide","viewLeft","viewTop","farthestX","shiftDown","shiftUp","changeX","isDownList","lastDeltaX","labelAlignTo","deltaY","len2","deltaX","lastY","upList","downList","isPositionCenter","labelLayoutList","hasLabelRotate","minShowLabelRadian","labelDistance","labelLineLen2","leftList","rightList","leftmostX","rightmostX","targetTextWidth","isAlignToEdge","realTextWidth","truncateText","avoidOverlap","preventExtensions","hasShadow","textShadowBlur","textShadowOffsetX","textShadowOffsetY","_shadowDom","_shadowDomId","domChild","blur","textShadowColor","stdDeviation","SingleAxisView","getLineDash","COORD_CONVERTS","INCLUDE_FINDER_MAIN_TYPES","targetInfoList","_targetInfoList","foundCpts","parseFinder","targetInfoBuilders","builder","formatMinMax","includeMainTypes","setOutputRanges","coordRanges","coordConvert","__rangeOffset","diffProcessor","xyMinMax","findTargetInfo","coordSyses","rangeOffset","xyMinMaxCurr","xyMinMaxOrigin","sizeCurr","getSize","sizeOrigin","scales","getScales","getDefaultBrushType","getPanelRect","areaPanelId","targetInfoMatchers","xAxisModels","yAxisModels","gridModels","gridModelMap","xAxesHas","yAxesHas","cartesians","panelRectBuilder","geoModels","axisConvert","rangeOrCoordRange","xminymin","xmaxymax","axisNameIndex","axisDiffProcessor","refer","CandlestickSeries","color0","borderColor0","animationUpdate","default","pieLayout","dr","rCenter","unitStartX","unitStartY","unitEndX","unitEndY","arc","updateController","modelId","$from","retrieveRawValue","labelDims","IRRELEVANT_EXCLUDES","targetCoordSysModel","getComponentByElement","topTarget","Cartesian","axisX","axisY","reserved","xScale","yScale","xAxisExtent","yAxisExtent","xExtent","yExtent","isAsc","sortOrder","rootDepth","renderRollupNode","rPerLevel","rStart","rEnd","siblingAngle","realIndex","paramsSet","reals","fakeValue","layoutInput","rParam","highlightKey","__esModule","updateRipplePath","rippleGroup","effectCfg","rippleEffectColor","ripplePath","effectSymbolProto","stopEffectAnimation","startEffectAnimation","effectOffset","rippleScale","animateStyle","updateEffectAnimation","oldEffectCfg","_effectCfg","DIFFICULT_PROPS","propName","normalizeSymbolSize","_parseSVG","parseSVG","makeViewBoxTransform","originRoot","buildGraphic","field","rootMap","originRootHostKey","svgXML","ignoreViewBox","ignoreRootClip","svgWidth","svgHeight","viewBoxRect","viewBoxTransform","elRoot","plain","LargeSymbolPath","symbolProxy","softClipShape","symbolProxyShape","getContext","fillRect","restoreTransform","largeSymbolProto","startIndex","endIndex","byteOffset","extrudeShadow","_interopRequireDefault","_hasClass","_traversalHelper","_layoutHelper","sep","coorX","coorY","finalCoor","commonLayout","addToUnscopables","dimAxisMapper","_axes","_dimList","_dataCoordConvert","input","dimList","_dimName","_axisIndex","_valueWindow","_percentWindow","_minMaxSpan","_dataZoomModel","setAxisModel","isRestore","percentWindow","useOrigin","setRange","getOtherAxisModel","coordSysIndexName","foundOtherAxisModel","otherAxisModel","hasPropModeValue","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","seriesExtent","getApproximateExtent","getMin","isCategoryAxis","axisDataLen","getMax","fixExtentByAxis","calculateDataExtent","percentSpan","valueSpan","setMinMaxSpan","dataWindow","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","selectRange","setApproximateExtent","Heatmap","createCanvas","_gradientPixels","colorFunc","_getBrush","gradientInRange","_getGradient","gradientOutOfRange","globalAlpha","drawImage","imageData","getImageData","pixels","pixelLen","diffOpacity","gradientOffset","putImageData","brushCanvas","_brushCanvas","clearRect","gradientPixels","pixelsSingleState","Uint8ClampedArray","processedMapType","mapSymbolOffsets","subMapSeries"],"mappings":"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","file":"static/chunks/pages/home-c1553788c69a88d048dc.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 echarts = require(\"../echarts\");\n\nrequire(\"./boxplot/BoxplotSeries\");\n\nrequire(\"./boxplot/BoxplotView\");\n\nvar boxplotVisual = require(\"./boxplot/boxplotVisual\");\n\nvar boxplotLayout = require(\"./boxplot/boxplotLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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(boxplotVisual);\necharts.registerLayout(boxplotLayout);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 Eventful = require(\"zrender/lib/mixin/Eventful\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar interactionMutex = require(\"./interactionMutex\");\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 curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar map = zrUtil.map;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n w: [0, 0],\n e: [0, 1],\n n: [1, 0],\n s: [1, 1]\n};\nvar CURSOR_MAP = {\n w: 'ew',\n e: 'ew',\n n: 'ns',\n s: 'ns',\n ne: 'nesw',\n sw: 'nesw',\n nw: 'nwse',\n se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n brushStyle: {\n lineWidth: 2,\n stroke: 'rgba(0,0,0,0.3)',\n fill: 'rgba(0,0,0,0.1)'\n },\n transformable: true,\n brushMode: 'single',\n removeOnClick: false\n};\nvar baseUID = 0;\n/**\n * @alias module:echarts/component/helper/BrushController\n * @constructor\n * @mixin {module:zrender/mixin/Eventful}\n * @event module:echarts/component/helper/BrushController#brush\n * params:\n * areas: Array., coord relates to container group,\n * If no container specified, to global.\n * opt {\n * isEnd: boolean,\n * removeOnClick: boolean\n * }\n *\n * @param {module:zrender/zrender~ZRender} zr\n */\n\nfunction BrushController(zr) {\n Eventful.call(this);\n /**\n * @type {module:zrender/zrender~ZRender}\n * @private\n */\n\n this._zr = zr;\n /**\n * @type {module:zrender/container/Group}\n * @readOnly\n */\n\n this.group = new graphic.Group();\n /**\n * Only for drawing (after enabledBrush).\n * 'line', 'rect', 'polygon' or false\n * If passing false/null/undefined, disable brush.\n * If passing 'auto', determined by panel.defaultBrushType\n * @private\n * @type {string}\n */\n\n this._brushType;\n /**\n * Only for drawing (after enabledBrush).\n *\n * @private\n * @type {Object}\n */\n\n this._brushOption;\n /**\n * @private\n * @type {Object}\n */\n\n this._panels;\n /**\n * @private\n * @type {Array.}\n */\n\n this._track = [];\n /**\n * @private\n * @type {boolean}\n */\n\n this._dragging;\n /**\n * @private\n * @type {Array}\n */\n\n this._covers = [];\n /**\n * @private\n * @type {moudule:zrender/container/Group}\n */\n\n this._creatingCover;\n /**\n * `true` means global panel\n * @private\n * @type {module:zrender/container/Group|boolean}\n */\n\n this._creatingPanel;\n /**\n * @private\n * @type {boolean}\n */\n\n this._enableGlobalPan;\n /**\n * @private\n * @type {boolean}\n */\n\n /**\n * @private\n * @type {string}\n */\n this._uid = 'brushController_' + baseUID++;\n /**\n * @private\n * @type {Object}\n */\n\n this._handlers = {};\n each(pointerHandlers, function (handler, eventName) {\n this._handlers[eventName] = zrUtil.bind(handler, this);\n }, this);\n}\n\nBrushController.prototype = {\n constructor: BrushController,\n\n /**\n * If set to null/undefined/false, select disabled.\n * @param {Object} brushOption\n * @param {string|boolean} brushOption.brushType 'line', 'rect', 'polygon' or false\n * If passing false/null/undefined, disable brush.\n * If passing 'auto', determined by panel.defaultBrushType.\n * ('auto' can not be used in global panel)\n * @param {number} [brushOption.brushMode='single'] 'single' or 'multiple'\n * @param {boolean} [brushOption.transformable=true]\n * @param {boolean} [brushOption.removeOnClick=false]\n * @param {Object} [brushOption.brushStyle]\n * @param {number} [brushOption.brushStyle.width]\n * @param {number} [brushOption.brushStyle.lineWidth]\n * @param {string} [brushOption.brushStyle.stroke]\n * @param {string} [brushOption.brushStyle.fill]\n * @param {number} [brushOption.z]\n */\n enableBrush: function (brushOption) {\n this._brushType && doDisableBrush(this);\n brushOption.brushType && doEnableBrush(this, brushOption);\n return this;\n },\n\n /**\n * @param {Array.} panelOpts If not pass, it is global brush.\n * Each items: {\n * panelId, // mandatory.\n * clipPath, // mandatory. function.\n * isTargetByCursor, // mandatory. function.\n * defaultBrushType, // optional, only used when brushType is 'auto'.\n * getLinearBrushOtherExtent, // optional. function.\n * }\n */\n setPanels: function (panelOpts) {\n if (panelOpts && panelOpts.length) {\n var panels = this._panels = {};\n zrUtil.each(panelOpts, function (panelOpts) {\n panels[panelOpts.panelId] = zrUtil.clone(panelOpts);\n });\n } else {\n this._panels = null;\n }\n\n return this;\n },\n\n /**\n * @param {Object} [opt]\n * @return {boolean} [opt.enableGlobalPan=false]\n */\n mount: function (opt) {\n opt = opt || {};\n this._enableGlobalPan = opt.enableGlobalPan;\n var thisGroup = this.group;\n\n this._zr.add(thisGroup);\n\n thisGroup.attr({\n position: opt.position || [0, 0],\n rotation: opt.rotation || 0,\n scale: opt.scale || [1, 1]\n });\n this._transform = thisGroup.getLocalTransform();\n return this;\n },\n eachCover: function (cb, context) {\n each(this._covers, cb, context);\n },\n\n /**\n * Update covers.\n * @param {Array.} brushOptionList Like:\n * [\n * {id: 'xx', brushType: 'line', range: [23, 44], brushStyle, transformable},\n * {id: 'yy', brushType: 'rect', range: [[23, 44], [23, 54]]},\n * ...\n * ]\n * `brushType` is required in each cover info. (can not be 'auto')\n * `id` is not mandatory.\n * `brushStyle`, `transformable` is not mandatory, use DEFAULT_BRUSH_OPT by default.\n * If brushOptionList is null/undefined, all covers removed.\n */\n updateCovers: function (brushOptionList) {\n brushOptionList = zrUtil.map(brushOptionList, function (brushOption) {\n return zrUtil.merge(zrUtil.clone(DEFAULT_BRUSH_OPT), brushOption, true);\n });\n var tmpIdPrefix = '\\0-brush-index-';\n var oldCovers = this._covers;\n var newCovers = this._covers = [];\n var controller = this;\n var creatingCover = this._creatingCover;\n new DataDiffer(oldCovers, brushOptionList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n return this;\n\n function getKey(brushOption, index) {\n return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n }\n\n function oldGetKey(cover, index) {\n return getKey(cover.__brushOption, index);\n }\n\n function addOrUpdate(newIndex, oldIndex) {\n var newBrushOption = brushOptionList[newIndex]; // Consider setOption in event listener of brushSelect,\n // where updating cover when creating should be forbiden.\n\n if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n newCovers[newIndex] = oldCovers[oldIndex];\n } else {\n var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushOption, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushOption));\n updateCoverAfterCreation(controller, cover);\n }\n }\n\n function remove(oldIndex) {\n if (oldCovers[oldIndex] !== creatingCover) {\n controller.group.remove(oldCovers[oldIndex]);\n }\n }\n },\n unmount: function () {\n this.enableBrush(false); // container may 'removeAll' outside.\n\n clearCovers(this);\n\n this._zr.remove(this.group);\n\n return this;\n },\n dispose: function () {\n this.unmount();\n this.off();\n }\n};\nzrUtil.mixin(BrushController, Eventful);\n\nfunction doEnableBrush(controller, brushOption) {\n var zr = controller._zr; // Consider roam, which takes globalPan too.\n\n if (!controller._enableGlobalPan) {\n interactionMutex.take(zr, MUTEX_RESOURCE_KEY, controller._uid);\n }\n\n mountHandlers(zr, controller._handlers);\n controller._brushType = brushOption.brushType;\n controller._brushOption = zrUtil.merge(zrUtil.clone(DEFAULT_BRUSH_OPT), brushOption, true);\n}\n\nfunction doDisableBrush(controller) {\n var zr = controller._zr;\n interactionMutex.release(zr, MUTEX_RESOURCE_KEY, controller._uid);\n unmountHandlers(zr, controller._handlers);\n controller._brushType = controller._brushOption = null;\n}\n\nfunction mountHandlers(zr, handlers) {\n each(handlers, function (handler, eventName) {\n zr.on(eventName, handler);\n });\n}\n\nfunction unmountHandlers(zr, handlers) {\n each(handlers, function (handler, eventName) {\n zr.off(eventName, handler);\n });\n}\n\nfunction createCover(controller, brushOption) {\n var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n cover.__brushOption = brushOption;\n updateZ(cover, brushOption);\n controller.group.add(cover);\n return cover;\n}\n\nfunction endCreating(controller, creatingCover) {\n var coverRenderer = getCoverRenderer(creatingCover);\n\n if (coverRenderer.endCreating) {\n coverRenderer.endCreating(controller, creatingCover);\n updateZ(creatingCover, creatingCover.__brushOption);\n }\n\n return creatingCover;\n}\n\nfunction updateCoverShape(controller, cover) {\n var brushOption = cover.__brushOption;\n getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\n\nfunction updateZ(cover, brushOption) {\n var z = brushOption.z;\n z == null && (z = COVER_Z);\n cover.traverse(function (el) {\n el.z = z;\n el.z2 = z; // Consider in given container.\n });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n getCoverRenderer(cover).updateCommon(controller, cover);\n updateCoverShape(controller, cover);\n}\n\nfunction getCoverRenderer(cover) {\n return coverRenderers[cover.__brushOption.brushType];\n} // return target panel or `true` (means global panel)\n\n\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n var panels = controller._panels;\n\n if (!panels) {\n return true; // Global panel\n }\n\n var panel;\n var transform = controller._transform;\n each(panels, function (pn) {\n pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n });\n return panel;\n} // Return a panel or true\n\n\nfunction getPanelByCover(controller, cover) {\n var panels = controller._panels;\n\n if (!panels) {\n return true; // Global panel\n }\n\n var panelId = cover.__brushOption.panelId; // User may give cover without coord sys info,\n // which is then treated as global panel.\n\n return panelId != null ? panels[panelId] : true;\n}\n\nfunction clearCovers(controller) {\n var covers = controller._covers;\n var originalLength = covers.length;\n each(covers, function (cover) {\n controller.group.remove(cover);\n }, controller);\n covers.length = 0;\n return !!originalLength;\n}\n\nfunction trigger(controller, opt) {\n var areas = map(controller._covers, function (cover) {\n var brushOption = cover.__brushOption;\n var range = zrUtil.clone(brushOption.range);\n return {\n brushType: brushOption.brushType,\n panelId: brushOption.panelId,\n range: range\n };\n });\n controller.trigger('brush', areas, {\n isEnd: !!opt.isEnd,\n removeOnClick: !!opt.removeOnClick\n });\n}\n\nfunction shouldShowCover(controller) {\n var track = controller._track;\n\n if (!track.length) {\n return false;\n }\n\n var p2 = track[track.length - 1];\n var p1 = track[0];\n var dx = p2[0] - p1[0];\n var dy = p2[1] - p1[1];\n var dist = mathPow(dx * dx + dy * dy, 0.5);\n return dist > UNSELECT_THRESHOLD;\n}\n\nfunction getTrackEnds(track) {\n var tail = track.length - 1;\n tail < 0 && (tail = 0);\n return [track[0], track[tail]];\n}\n\nfunction createBaseRectCover(doDrift, controller, brushOption, edgeNames) {\n var cover = new graphic.Group();\n cover.add(new graphic.Rect({\n name: 'main',\n style: makeStyle(brushOption),\n silent: true,\n draggable: true,\n cursor: 'move',\n drift: curry(doDrift, controller, cover, 'nswe'),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n each(edgeNames, function (name) {\n cover.add(new graphic.Rect({\n name: name,\n style: {\n opacity: 0\n },\n draggable: true,\n silent: true,\n invisible: true,\n drift: curry(doDrift, controller, cover, name),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n });\n return cover;\n}\n\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n var lineWidth = brushOption.brushStyle.lineWidth || 0;\n var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n var x = localRange[0][0];\n var y = localRange[1][0];\n var xa = x - lineWidth / 2;\n var ya = y - lineWidth / 2;\n var x2 = localRange[0][1];\n var y2 = localRange[1][1];\n var x2a = x2 - handleSize + lineWidth / 2;\n var y2a = y2 - handleSize + lineWidth / 2;\n var width = x2 - x;\n var height = y2 - y;\n var widtha = width + lineWidth;\n var heighta = height + lineWidth;\n updateRectShape(controller, cover, 'main', x, y, width, height);\n\n if (brushOption.transformable) {\n updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n }\n}\n\nfunction updateCommon(controller, cover) {\n var brushOption = cover.__brushOption;\n var transformable = brushOption.transformable;\n var mainEl = cover.childAt(0);\n mainEl.useStyle(makeStyle(brushOption));\n mainEl.attr({\n silent: !transformable,\n cursor: transformable ? 'move' : 'default'\n });\n each(['w', 'e', 'n', 's', 'se', 'sw', 'ne', 'nw'], function (name) {\n var el = cover.childOfName(name);\n var globalDir = getGlobalDirection(controller, name);\n el && el.attr({\n silent: !transformable,\n invisible: !transformable,\n cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n });\n });\n}\n\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n var el = cover.childOfName(name);\n el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\n\nfunction makeStyle(brushOption) {\n return zrUtil.defaults({\n strokeNoScale: true\n }, brushOption.brushStyle);\n}\n\nfunction formatRectRange(x, y, x2, y2) {\n var min = [mathMin(x, x2), mathMin(y, y2)];\n var max = [mathMax(x, x2), mathMax(y, y2)];\n return [[min[0], max[0]], // x range\n [min[1], max[1]] // y range\n ];\n}\n\nfunction getTransform(controller) {\n return graphic.getTransform(controller.group);\n}\n\nfunction getGlobalDirection(controller, localDirection) {\n if (localDirection.length > 1) {\n localDirection = localDirection.split('');\n var globalDir = [getGlobalDirection(controller, localDirection[0]), getGlobalDirection(controller, localDirection[1])];\n (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n return globalDir.join('');\n } else {\n var map = {\n w: 'left',\n e: 'right',\n n: 'top',\n s: 'bottom'\n };\n var inverseMap = {\n left: 'w',\n right: 'e',\n top: 'n',\n bottom: 's'\n };\n var globalDir = graphic.transformDirection(map[localDirection], getTransform(controller));\n return inverseMap[globalDir];\n }\n}\n\nfunction driftRect(toRectRange, fromRectRange, controller, cover, name, dx, dy, e) {\n var brushOption = cover.__brushOption;\n var rectRange = toRectRange(brushOption.range);\n var localDelta = toLocalDelta(controller, dx, dy);\n each(name.split(''), function (namePart) {\n var ind = DIRECTION_MAP[namePart];\n rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n });\n brushOption.range = fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n updateCoverAfterCreation(controller, cover);\n trigger(controller, {\n isEnd: false\n });\n}\n\nfunction driftPolygon(controller, cover, dx, dy, e) {\n var range = cover.__brushOption.range;\n var localDelta = toLocalDelta(controller, dx, dy);\n each(range, function (point) {\n point[0] += localDelta[0];\n point[1] += localDelta[1];\n });\n updateCoverAfterCreation(controller, cover);\n trigger(controller, {\n isEnd: false\n });\n}\n\nfunction toLocalDelta(controller, dx, dy) {\n var thisGroup = controller.group;\n var localD = thisGroup.transformCoordToLocal(dx, dy);\n var localZero = thisGroup.transformCoordToLocal(0, 0);\n return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\n\nfunction clipByPanel(controller, cover, data) {\n var panel = getPanelByCover(controller, cover);\n return panel && panel !== true ? panel.clipPath(data, controller._transform) : zrUtil.clone(data);\n}\n\nfunction pointsToRect(points) {\n var xmin = mathMin(points[0][0], points[1][0]);\n var ymin = mathMin(points[0][1], points[1][1]);\n var xmax = mathMax(points[0][0], points[1][0]);\n var ymax = mathMax(points[0][1], points[1][1]);\n return {\n x: xmin,\n y: ymin,\n width: xmax - xmin,\n height: ymax - ymin\n };\n}\n\nfunction resetCursor(controller, e, localCursorPoint) {\n if ( // Check active\n !controller._brushType // resetCursor should be always called when mouse is in zr area,\n // but not called when mouse is out of zr area to avoid bad influence\n // if `mousemove`, `mouseup` are triggered from `document` event.\n || isOutsideZrArea(controller, e)) {\n return;\n }\n\n var zr = controller._zr;\n var covers = controller._covers;\n var currPanel = getPanelByPoint(controller, e, localCursorPoint); // Check whether in covers.\n\n if (!controller._dragging) {\n for (var i = 0; i < covers.length; i++) {\n var brushOption = covers[i].__brushOption;\n\n if (currPanel && (currPanel === true || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n // Use cursor style set on cover.\n return;\n }\n }\n }\n\n currPanel && zr.setCursorStyle('crosshair');\n}\n\nfunction preventDefault(e) {\n var rawE = e.event;\n rawE.preventDefault && rawE.preventDefault();\n}\n\nfunction mainShapeContain(cover, x, y) {\n return cover.childOfName('main').contain(x, y);\n}\n\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n var creatingCover = controller._creatingCover;\n var panel = controller._creatingPanel;\n var thisBrushOption = controller._brushOption;\n var eventParams;\n\n controller._track.push(localCursorPoint.slice());\n\n if (shouldShowCover(controller) || creatingCover) {\n if (panel && !creatingCover) {\n thisBrushOption.brushMode === 'single' && clearCovers(controller);\n var brushOption = zrUtil.clone(thisBrushOption);\n brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n brushOption.panelId = panel === true ? null : panel.panelId;\n creatingCover = controller._creatingCover = createCover(controller, brushOption);\n\n controller._covers.push(creatingCover);\n }\n\n if (creatingCover) {\n var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n var coverBrushOption = creatingCover.__brushOption;\n coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n\n if (isEnd) {\n endCreating(controller, creatingCover);\n coverRenderer.updateCommon(controller, creatingCover);\n }\n\n updateCoverShape(controller, creatingCover);\n eventParams = {\n isEnd: isEnd\n };\n }\n } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n // Help user to remove covers easily, only by a tiny drag, in 'single' mode.\n // But a single click do not clear covers, because user may have casual\n // clicks (for example, click on other component and do not expect covers\n // disappear).\n // Only some cover removed, trigger action, but not every click trigger action.\n if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n eventParams = {\n isEnd: isEnd,\n removeOnClick: true\n };\n }\n }\n\n return eventParams;\n}\n\nfunction determineBrushType(brushType, panel) {\n if (brushType === 'auto') {\n return panel.defaultBrushType;\n }\n\n return brushType;\n}\n\nvar pointerHandlers = {\n mousedown: function (e) {\n if (this._dragging) {\n // In case some browser do not support globalOut,\n // and release mose out side the browser.\n handleDragEnd(this, e);\n } else if (!e.target || !e.target.draggable) {\n preventDefault(e);\n var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n this._creatingCover = null;\n var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n\n if (panel) {\n this._dragging = true;\n this._track = [localCursorPoint.slice()];\n }\n }\n },\n mousemove: function (e) {\n var x = e.offsetX;\n var y = e.offsetY;\n var localCursorPoint = this.group.transformCoordToLocal(x, y);\n resetCursor(this, e, localCursorPoint);\n\n if (this._dragging) {\n preventDefault(e);\n var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n eventParams && trigger(this, eventParams);\n }\n },\n mouseup: function (e) {\n handleDragEnd(this, e);\n }\n};\n\nfunction handleDragEnd(controller, e) {\n if (controller._dragging) {\n preventDefault(e);\n var x = e.offsetX;\n var y = e.offsetY;\n var localCursorPoint = controller.group.transformCoordToLocal(x, y);\n var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\n controller._dragging = false;\n controller._track = [];\n controller._creatingCover = null; // trigger event shoule be at final, after procedure will be nested.\n\n eventParams && trigger(controller, eventParams);\n }\n}\n\nfunction isOutsideZrArea(controller, x, y) {\n var zr = controller._zr;\n return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\n}\n/**\n * key: brushType\n * @type {Object}\n */\n\n\nvar coverRenderers = {\n lineX: getLineRenderer(0),\n lineY: getLineRenderer(1),\n rect: {\n createCover: function (controller, brushOption) {\n return createBaseRectCover(curry(driftRect, function (range) {\n return range;\n }, function (range) {\n return range;\n }), controller, brushOption, ['w', 'e', 'n', 's', 'se', 'sw', 'ne', 'nw']);\n },\n getCreatingRange: function (localTrack) {\n var ends = getTrackEnds(localTrack);\n return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n updateBaseRect(controller, cover, localRange, brushOption);\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n },\n polygon: {\n createCover: function (controller, brushOption) {\n var cover = new graphic.Group(); // Do not use graphic.Polygon because graphic.Polyline do not close the\n // border of the shape when drawing, which is a better experience for user.\n\n cover.add(new graphic.Polyline({\n name: 'main',\n style: makeStyle(brushOption),\n silent: true\n }));\n return cover;\n },\n getCreatingRange: function (localTrack) {\n return localTrack;\n },\n endCreating: function (controller, cover) {\n cover.remove(cover.childAt(0)); // Use graphic.Polygon close the shape.\n\n cover.add(new graphic.Polygon({\n name: 'main',\n draggable: true,\n drift: curry(driftPolygon, controller, cover),\n ondragend: curry(trigger, controller, {\n isEnd: true\n })\n }));\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n cover.childAt(0).setShape({\n points: clipByPanel(controller, cover, localRange)\n });\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n }\n};\n\nfunction getLineRenderer(xyIndex) {\n return {\n createCover: function (controller, brushOption) {\n return createBaseRectCover(curry(driftRect, function (range) {\n var rectRange = [range, [0, 100]];\n xyIndex && rectRange.reverse();\n return rectRange;\n }, function (rectRange) {\n return rectRange[xyIndex];\n }), controller, brushOption, [['w', 'e'], ['n', 's']][xyIndex]);\n },\n getCreatingRange: function (localTrack) {\n var ends = getTrackEnds(localTrack);\n var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n return [min, max];\n },\n updateCoverShape: function (controller, cover, localRange, brushOption) {\n var otherExtent; // If brushWidth not specified, fit the panel.\n\n var panel = getPanelByCover(controller, cover);\n\n if (panel !== true && panel.getLinearBrushOtherExtent) {\n otherExtent = panel.getLinearBrushOtherExtent(xyIndex, controller._transform);\n } else {\n var zr = controller._zr;\n otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n }\n\n var rectRange = [localRange, otherExtent];\n xyIndex && rectRange.reverse();\n updateBaseRect(controller, cover, rectRange, brushOption);\n },\n updateCommon: updateCommon,\n contain: mainShapeContain\n };\n}\n\nvar _default = BrushController;\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 RadiusAxis = require(\"./RadiusAxis\");\n\nvar AngleAxis = require(\"./AngleAxis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, 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/coord/polar/Polar\n */\n\n/**\n * @alias {module:echarts/coord/polar/Polar}\n * @constructor\n * @param {string} name\n */\nvar Polar = function (name) {\n /**\n * @type {string}\n */\n this.name = name || '';\n /**\n * x of polar center\n * @type {number}\n */\n\n this.cx = 0;\n /**\n * y of polar center\n * @type {number}\n */\n\n this.cy = 0;\n /**\n * @type {module:echarts/coord/polar/RadiusAxis}\n * @private\n */\n\n this._radiusAxis = new RadiusAxis();\n /**\n * @type {module:echarts/coord/polar/AngleAxis}\n * @private\n */\n\n this._angleAxis = new AngleAxis();\n this._radiusAxis.polar = this._angleAxis.polar = this;\n};\n\nPolar.prototype = {\n type: 'polar',\n axisPointerEnabled: true,\n constructor: Polar,\n\n /**\n * @param {Array.}\n * @readOnly\n */\n dimensions: ['radius', 'angle'],\n\n /**\n * @type {module:echarts/coord/PolarModel}\n */\n model: null,\n\n /**\n * If contain coord\n * @param {Array.} point\n * @return {boolean}\n */\n containPoint: function (point) {\n var coord = this.pointToCoord(point);\n return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]);\n },\n\n /**\n * If contain data\n * @param {Array.} data\n * @return {boolean}\n */\n containData: function (data) {\n return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]);\n },\n\n /**\n * @param {string} dim\n * @return {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n */\n getAxis: function (dim) {\n return this['_' + dim + 'Axis'];\n },\n\n /**\n * @return {Array.}\n */\n getAxes: function () {\n return [this._radiusAxis, this._angleAxis];\n },\n\n /**\n * Get axes by type of scale\n * @param {string} scaleType\n * @return {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n */\n getAxesByScale: function (scaleType) {\n var axes = [];\n var angleAxis = this._angleAxis;\n var radiusAxis = this._radiusAxis;\n angleAxis.scale.type === scaleType && axes.push(angleAxis);\n radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\n return axes;\n },\n\n /**\n * @return {module:echarts/coord/polar/AngleAxis}\n */\n getAngleAxis: function () {\n return this._angleAxis;\n },\n\n /**\n * @return {module:echarts/coord/polar/RadiusAxis}\n */\n getRadiusAxis: function () {\n return this._radiusAxis;\n },\n\n /**\n * @param {module:echarts/coord/polar/Axis}\n * @return {module:echarts/coord/polar/Axis}\n */\n getOtherAxis: function (axis) {\n var angleAxis = this._angleAxis;\n return axis === angleAxis ? this._radiusAxis : angleAxis;\n },\n\n /**\n * Base axis will be used on stacking.\n *\n * @return {module:echarts/coord/polar/Axis}\n */\n getBaseAxis: function () {\n return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis();\n },\n\n /**\n * @param {string} [dim] 'radius' or 'angle' or 'auto' or null/undefined\n * @return {Object} {baseAxes: [], otherAxes: []}\n */\n getTooltipAxes: function (dim) {\n var baseAxis = dim != null && dim !== 'auto' ? this.getAxis(dim) : this.getBaseAxis();\n return {\n baseAxes: [baseAxis],\n otherAxes: [this.getOtherAxis(baseAxis)]\n };\n },\n\n /**\n * Convert a single data item to (x, y) point.\n * Parameter data is an array which the first element is radius and the second is angle\n * @param {Array.} data\n * @param {boolean} [clamp=false]\n * @return {Array.}\n */\n dataToPoint: function (data, clamp) {\n return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]);\n },\n\n /**\n * Convert a (x, y) point to data\n * @param {Array.} point\n * @param {boolean} [clamp=false]\n * @return {Array.}\n */\n pointToData: function (point, clamp) {\n var coord = this.pointToCoord(point);\n return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)];\n },\n\n /**\n * Convert a (x, y) point to (radius, angle) coord\n * @param {Array.} point\n * @return {Array.}\n */\n pointToCoord: function (point) {\n var dx = point[0] - this.cx;\n var dy = point[1] - this.cy;\n var angleAxis = this.getAngleAxis();\n var extent = angleAxis.getExtent();\n var minAngle = Math.min(extent[0], extent[1]);\n var maxAngle = Math.max(extent[0], extent[1]); // Fix fixed extent in polarCreator\n // FIXME\n\n angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360;\n var radius = Math.sqrt(dx * dx + dy * dy);\n dx /= radius;\n dy /= radius;\n var radian = Math.atan2(-dy, dx) / Math.PI * 180; // move to angleExtent\n\n var dir = radian < minAngle ? 1 : -1;\n\n while (radian < minAngle || radian > maxAngle) {\n radian += dir * 360;\n }\n\n return [radius, radian];\n },\n\n /**\n * Convert a (radius, angle) coord to (x, y) point\n * @param {Array.} coord\n * @return {Array.}\n */\n coordToPoint: function (coord) {\n var radius = coord[0];\n var radian = coord[1] / 180 * Math.PI;\n var x = Math.cos(radian) * radius + this.cx; // Inverse the y\n\n var y = -Math.sin(radian) * radius + this.cy;\n return [x, y];\n },\n\n /**\n * Get ring area of cartesian.\n * Area will have a contain function to determine if a point is in the coordinate system.\n * @return {Ring}\n */\n getArea: function () {\n var angleAxis = this.getAngleAxis();\n var radiusAxis = this.getRadiusAxis();\n var radiusExtent = radiusAxis.getExtent().slice();\n radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\n var angleExtent = angleAxis.getExtent();\n var RADIAN = Math.PI / 180;\n return {\n cx: this.cx,\n cy: this.cy,\n r0: radiusExtent[0],\n r: radiusExtent[1],\n startAngle: -angleExtent[0] * RADIAN,\n endAngle: -angleExtent[1] * RADIAN,\n clockwise: angleAxis.inverse,\n contain: function (x, y) {\n // It's a ring shape.\n // Start angle and end angle don't matter\n var dx = x - this.cx;\n var dy = y - this.cy;\n var d2 = dx * dx + dy * dy;\n var r = this.r;\n var r0 = this.r0;\n return d2 <= r * r && d2 >= r0 * r0;\n }\n };\n }\n};\nvar _default = Polar;\nmodule.exports = _default;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAJKADAAQAAAABAAAAJAAAAAAqDuP8AAADB0lEQVRYCe2YTYhNYRjH7x3TGBrTJAtJUsyUpowoC5mVUpOSEvmYjZqVhBUpiYWNzSSKDSsLacL4WiixsVFEWYyF7zFRYkFDGq7f/7rPneec3nPvnDvnGmqe+s379bz/9znPe977niaXm7b/LAP5tPEWCoUG5qyBTbAKFpRQ/0cYhvtwD27n8/kxyuyNQJrhAHyAido7HI/AnEwjQnAzvIFaTYFtmXRQiOTheCCKt/Sdhh7ogBaYDYtgA5wABRG3fjpm+MBoN/t2Yh1HBXMRvGmRPoiIhkTwaYSdMAzeBmjofctR6jVQ5s/DkpBOuQ+HeGYG6Uv9LjBH2bsF3k6VAtrnOl9SLwZaDsIqDOid8XaSRtjZJlUomdsEV70g9V4YcX27gxI4WBrNV5mpORhbBA1tobbLbMwqlNrWmeYbKRnQ0TbTO5N6myKCriEtCJ3WPc5tvIpzA/jfmb7x0Wxq6G8Db3ro8EljYK3z1NGueprShilNeOXW2es1Gn2Duq4Ds0F+9n9aI6tSmgTTjl5bideJ2jjedZH3JDrWcSB+enRRmj23ypSVZOeLy1DLlAXytxfmoR+7B+/y68e3zI/Vs+5fjZF6LlRVm8y0wq9Shn5QRj4SI8eewaUojsJnjue3quq1Oej0WhCPWKcQlCGYFWCRq+wIOk6yE91LYHYoUQ6PK+ZVKs8mOtc4gG4n+Et1WVAKpy6w7FAtmibqIz4zQ+/mH+ni3+uJwgxfdo7+CYbon584McUAOgdja3QGp+Pks6MsbYSvbvIz6guDkyfYyfztoDvMrD9xKh4XzItyQI6UW8Fv4Qvalb95AyswR9/lx2Jad2hHTndkKoNtcBQ+wXIbpL4fvI3SOAyt5lOpxG8dPARvT2nMrTSvPIbjrHKjVKGvF76DN23nOdgB7aAfOn32LoZuUEaeQNxu0DGhh4nHEWkjshIexNVTtPUAymx215TEYBf4S5FmRdMWn4FUp9R+wiNZqdRggdWMr4du0FUzD5rgPeiiHIJroH801Ov6QX7a/pEM/AYC6NYjFmXeuQAAAABJRU5ErkJggg==\"","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, 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 samplers = {\n average: function (frame) {\n var sum = 0;\n var count = 0;\n\n for (var i = 0; i < frame.length; i++) {\n if (!isNaN(frame[i])) {\n sum += frame[i];\n count++;\n }\n } // Return NaN if count is 0\n\n\n return count === 0 ? NaN : sum / count;\n },\n sum: function (frame) {\n var sum = 0;\n\n for (var i = 0; i < frame.length; i++) {\n // Ignore NaN\n sum += frame[i] || 0;\n }\n\n return sum;\n },\n max: function (frame) {\n var max = -Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] > max && (max = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(max) ? max : NaN;\n },\n min: function (frame) {\n var min = Infinity;\n\n for (var i = 0; i < frame.length; i++) {\n frame[i] < min && (min = frame[i]);\n } // NaN will cause illegal axis extent.\n\n\n return isFinite(min) ? min : NaN;\n },\n // TODO\n // Median\n nearest: function (frame) {\n return frame[0];\n }\n};\n\nvar indexSampler = function (frame, value) {\n return Math.round(frame.length / 2);\n};\n\nfunction _default(seriesType) {\n return {\n seriesType: seriesType,\n modifyOutputEnd: true,\n reset: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var sampling = seriesModel.get('sampling');\n var coordSys = seriesModel.coordinateSystem; // Only cartesian2d support down sampling\n\n if (coordSys.type === 'cartesian2d' && sampling) {\n var baseAxis = coordSys.getBaseAxis();\n var valueAxis = coordSys.getOtherAxis(baseAxis);\n var extent = baseAxis.getExtent(); // Coordinste system has been resized\n\n var size = Math.abs(extent[1] - extent[0]);\n var rate = Math.round(data.count() / size);\n\n if (rate > 1) {\n var sampler;\n\n if (typeof sampling === 'string') {\n sampler = samplers[sampling];\n } else if (typeof sampling === 'function') {\n sampler = sampling;\n }\n\n if (sampler) {\n // Only support sample the first dim mapped from value axis.\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\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\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar _whiskerBoxCommon = require(\"../helper/whiskerBoxCommon\");\n\nvar seriesModelMixin = _whiskerBoxCommon.seriesModelMixin;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 BoxplotSeries = SeriesModel.extend({\n type: 'series.boxplot',\n dependencies: ['xAxis', 'yAxis', 'grid'],\n // TODO\n // box width represents group size, so dimension should have 'size'.\n\n /**\n * @see \n * The meanings of 'min' and 'max' depend on user,\n * and echarts do not need to know it.\n * @readOnly\n */\n defaultValueDimensions: [{\n name: 'min',\n defaultTooltip: true\n }, {\n name: 'Q1',\n defaultTooltip: true\n }, {\n name: 'median',\n defaultTooltip: true\n }, {\n name: 'Q3',\n defaultTooltip: true\n }, {\n name: 'max',\n defaultTooltip: true\n }],\n\n /**\n * @type {Array.}\n * @readOnly\n */\n dimensions: null,\n\n /**\n * @override\n */\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n coordinateSystem: 'cartesian2d',\n legendHoverLink: true,\n hoverAnimation: true,\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n layout: null,\n // 'horizontal' or 'vertical'\n boxWidth: [7, 50],\n // [min, max] can be percent of band width.\n itemStyle: {\n color: '#fff',\n borderWidth: 1\n },\n emphasis: {\n itemStyle: {\n borderWidth: 2,\n shadowBlur: 5,\n shadowOffsetX: 2,\n shadowOffsetY: 2,\n shadowColor: 'rgba(0,0,0,0.4)'\n }\n },\n animationEasing: 'elasticOut',\n animationDuration: 800\n }\n});\nzrUtil.mixin(BoxplotSeries, seriesModelMixin, true);\nvar _default = BoxplotSeries;\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 featureManager = require(\"../featureManager\");\n\nvar lang = require(\"../../../lang\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 brushLang = lang.toolbox.brush;\n\nfunction Brush(model, ecModel, api) {\n this.model = model;\n this.ecModel = ecModel;\n this.api = api;\n /**\n * @private\n * @type {string}\n */\n\n this._brushType;\n /**\n * @private\n * @type {string}\n */\n\n this._brushMode;\n}\n\nBrush.defaultOption = {\n show: true,\n type: ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'],\n icon: {\n /* eslint-disable */\n rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',\n // jshint ignore:line\n polygon: 'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',\n // jshint ignore:line\n lineX: 'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',\n // jshint ignore:line\n lineY: 'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',\n // jshint ignore:line\n keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',\n // jshint ignore:line\n clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2' // jshint ignore:line\n\n /* eslint-enable */\n\n },\n // `rect`, `polygon`, `lineX`, `lineY`, `keep`, `clear`\n title: zrUtil.clone(brushLang.title)\n};\nvar proto = Brush.prototype; // proto.updateLayout = function (featureModel, ecModel, api) {\n\n/* eslint-disable */\n\nproto.render =\n/* eslint-enable */\nproto.updateView = function (featureModel, ecModel, api) {\n var brushType;\n var brushMode;\n var isBrushed;\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n brushType = brushModel.brushType;\n brushMode = brushModel.brushOption.brushMode || 'single';\n isBrushed |= brushModel.areas.length;\n });\n this._brushType = brushType;\n this._brushMode = brushMode;\n zrUtil.each(featureModel.get('type', true), function (type) {\n featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal');\n });\n};\n\nproto.getIcons = function () {\n var model = this.model;\n var availableIcons = model.get('icon', true);\n var icons = {};\n zrUtil.each(model.get('type', true), function (type) {\n if (availableIcons[type]) {\n icons[type] = availableIcons[type];\n }\n });\n return icons;\n};\n\nproto.onclick = function (ecModel, api, type) {\n var brushType = this._brushType;\n var brushMode = this._brushMode;\n\n if (type === 'clear') {\n // Trigger parallel action firstly\n api.dispatchAction({\n type: 'axisAreaSelect',\n intervals: []\n });\n api.dispatchAction({\n type: 'brush',\n command: 'clear',\n // Clear all areas of all brush components.\n areas: []\n });\n } else {\n api.dispatchAction({\n type: 'takeGlobalCursor',\n key: 'brush',\n brushOption: {\n brushType: type === 'keep' ? brushType : brushType === type ? false : type,\n brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode\n }\n });\n }\n};\n\nfeatureManager.register('brush', Brush);\nvar _default = Brush;\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 _util = require(\"zrender/lib/core/util\");\n\nvar each = _util.each;\n\nvar _simpleLayoutHelper = require(\"./simpleLayoutHelper\");\n\nvar simpleLayout = _simpleLayoutHelper.simpleLayout;\nvar simpleLayoutEdge = _simpleLayoutHelper.simpleLayoutEdge;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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, api) {\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var layout = seriesModel.get('layout');\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n var data = seriesModel.getData();\n var dimensions = [];\n each(coordSys.dimensions, function (coordDim) {\n dimensions = dimensions.concat(data.mapDimension(coordDim, true));\n });\n\n for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n var value = [];\n var hasValue = false;\n\n for (var i = 0; i < dimensions.length; i++) {\n var val = data.get(dimensions[i], dataIndex);\n\n if (!isNaN(val)) {\n hasValue = true;\n }\n\n value.push(val);\n }\n\n if (hasValue) {\n data.setItemLayout(dataIndex, coordSys.dataToPoint(value));\n } else {\n // Also {Array.}, not undefined to avoid if...else... statement\n data.setItemLayout(dataIndex, [NaN, NaN]);\n }\n }\n\n simpleLayoutEdge(data.graph, seriesModel);\n } else if (!layout || layout === 'none') {\n simpleLayout(seriesModel);\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 zrUtil = require(\"zrender/lib/core/util\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 magicTypeLang = lang.toolbox.magicType;\nvar INNER_STACK_KEYWORD = '__ec_magicType_stack__';\n\nfunction MagicType(model) {\n this.model = model;\n}\n\nMagicType.defaultOption = {\n show: true,\n type: [],\n // Icon group\n icon: {\n /* eslint-disable */\n line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z' // jshint ignore:line\n\n /* eslint-enable */\n\n },\n // `line`, `bar`, `stack`, `tiled`\n title: zrUtil.clone(magicTypeLang.title),\n option: {},\n seriesIndex: {}\n};\nvar proto = MagicType.prototype;\n\nproto.getIcons = function () {\n var model = this.model;\n var availableIcons = model.get('icon');\n var icons = {};\n zrUtil.each(model.get('type'), function (type) {\n if (availableIcons[type]) {\n icons[type] = availableIcons[type];\n }\n });\n return icons;\n};\n\nvar seriesOptGenreator = {\n 'line': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'bar') {\n return zrUtil.merge({\n id: seriesId,\n type: 'line',\n // Preserve data related option\n data: seriesModel.get('data'),\n stack: seriesModel.get('stack'),\n markPoint: seriesModel.get('markPoint'),\n markLine: seriesModel.get('markLine')\n }, model.get('option.line') || {}, true);\n }\n },\n 'bar': function (seriesType, seriesId, seriesModel, model) {\n if (seriesType === 'line') {\n return zrUtil.merge({\n id: seriesId,\n type: 'bar',\n // Preserve data related option\n data: seriesModel.get('data'),\n stack: seriesModel.get('stack'),\n markPoint: seriesModel.get('markPoint'),\n markLine: seriesModel.get('markLine')\n }, model.get('option.bar') || {}, true);\n }\n },\n 'stack': function (seriesType, seriesId, seriesModel, model) {\n var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\n\n if (seriesType === 'line' || seriesType === 'bar') {\n model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\n return zrUtil.merge({\n id: seriesId,\n stack: isStack ? '' : INNER_STACK_KEYWORD\n }, model.get('option.stack') || {}, true);\n }\n }\n};\nvar radioTypes = [['line', 'bar'], ['stack']];\n\nproto.onclick = function (ecModel, api, type) {\n var model = this.model;\n var seriesIndex = model.get('seriesIndex.' + type); // Not supported magicType\n\n if (!seriesOptGenreator[type]) {\n return;\n }\n\n var newOption = {\n series: []\n };\n\n var generateNewSeriesTypes = function (seriesModel) {\n var seriesType = seriesModel.subType;\n var seriesId = seriesModel.id;\n var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n if (newSeriesOpt) {\n // PENDING If merge original option?\n zrUtil.defaults(newSeriesOpt, seriesModel.option);\n newOption.series.push(newSeriesOpt);\n } // Modify boundaryGap\n\n\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n if (categoryAxis) {\n var axisDim = categoryAxis.dim;\n var axisType = axisDim + 'Axis';\n var axisModel = ecModel.queryComponents({\n mainType: axisType,\n index: seriesModel.get(name + 'Index'),\n id: seriesModel.get(name + 'Id')\n })[0];\n var axisIndex = axisModel.componentIndex;\n newOption[axisType] = newOption[axisType] || [];\n\n for (var i = 0; i <= axisIndex; i++) {\n newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n }\n\n newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n }\n }\n };\n\n zrUtil.each(radioTypes, function (radio) {\n if (zrUtil.indexOf(radio, type) >= 0) {\n zrUtil.each(radio, function (item) {\n model.setIconStatus(item, 'normal');\n });\n }\n });\n model.setIconStatus(type, 'emphasis');\n ecModel.eachComponent({\n mainType: 'series',\n query: seriesIndex == null ? null : {\n seriesIndex: seriesIndex\n }\n }, generateNewSeriesTypes);\n var newTitle; // Change title of stack\n\n if (type === 'stack') {\n var isStack = newOption.series && newOption.series[0] && newOption.series[0].stack === INNER_STACK_KEYWORD;\n newTitle = isStack ? zrUtil.merge({\n stack: magicTypeLang.title.tiled\n }, magicTypeLang.title) : zrUtil.clone(magicTypeLang.title);\n }\n\n api.dispatchAction({\n type: 'changeMagicType',\n currentType: type,\n newOption: newOption,\n newTitle: newTitle,\n featureName: 'magicType'\n });\n};\n\necharts.registerAction({\n type: 'changeMagicType',\n event: 'magicTypeChanged',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n ecModel.mergeOption(payload.newOption);\n});\nfeatureManager.register('magicType', MagicType);\nvar _default = MagicType;\nmodule.exports = _default;","var env = require(\"../core/env\");\n\nvar urn = 'urn:schemas-microsoft-com:vml';\nvar win = typeof window === 'undefined' ? null : window;\nvar vmlInited = false;\nvar doc = win && win.document;\n\nfunction createNode(tagName) {\n return doCreateNode(tagName);\n} // Avoid assign to an exported variable, for transforming to cjs.\n\n\nvar doCreateNode;\n\nif (doc && !env.canvasSupported) {\n try {\n !doc.namespaces.zrvml && doc.namespaces.add('zrvml', urn);\n\n doCreateNode = function (tagName) {\n return doc.createElement('');\n };\n } catch (e) {\n doCreateNode = function (tagName) {\n return doc.createElement('<' + tagName + ' xmlns=\"' + urn + '\" class=\"zrvml\">');\n };\n }\n} // From raphael\n\n\nfunction initVML() {\n if (vmlInited || !doc) {\n return;\n }\n\n vmlInited = true;\n var styleSheets = doc.styleSheets;\n\n if (styleSheets.length < 31) {\n doc.createStyleSheet().addRule('.zrvml', 'behavior:url(#default#VML)');\n } else {\n // http://msdn.microsoft.com/en-us/library/ms531194%28VS.85%29.aspx\n styleSheets[0].addRule('.zrvml', 'behavior:url(#default#VML)');\n }\n}\n\nexports.doc = doc;\nexports.createNode = createNode;\nexports.initVML = initVML;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 createGraphFromNodeEdge = require(\"../helper/createGraphFromNodeEdge\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\nvar Model = require(\"../../model/Model\");\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 SankeySeries = SeriesModel.extend({\n type: 'series.sankey',\n layoutInfo: null,\n levelModels: null,\n\n /**\n * Init a graph data structure from data in option series\n *\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, ecModel) {\n var links = option.edges || option.links;\n var nodes = option.data || option.nodes;\n var levels = option.levels;\n var levelModels = this.levelModels = {};\n\n for (var i = 0; i < levels.length; i++) {\n if (levels[i].depth != null && levels[i].depth >= 0) {\n levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\n } else {}\n }\n\n if (nodes && links) {\n var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\n return graph.data;\n }\n\n function beforeLink(nodeData, edgeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n model.customizeGetParent(function (path) {\n var parentModel = this.parentModel;\n var nodeDepth = parentModel.getData().getItemLayout(idx).depth;\n var levelModel = parentModel.levelModels[nodeDepth];\n return levelModel || this.parentModel;\n });\n return model;\n });\n edgeData.wrapMethod('getItemModel', function (model, idx) {\n model.customizeGetParent(function (path) {\n var parentModel = this.parentModel;\n var edge = parentModel.getGraph().getEdgeByIndex(idx);\n var depth = edge.node1.getLayout().depth;\n var levelModel = parentModel.levelModels[depth];\n return levelModel || this.parentModel;\n });\n return model;\n });\n }\n },\n setNodePosition: function (dataIndex, localPosition) {\n var dataItem = this.option.data[dataIndex];\n dataItem.localX = localPosition[0];\n dataItem.localY = localPosition[1];\n },\n\n /**\n * Return the graphic data structure\n *\n * @return {module:echarts/data/Graph} graphic data structure\n */\n getGraph: function () {\n return this.getData().graph;\n },\n\n /**\n * Get edge data of graphic data structure\n *\n * @return {module:echarts/data/List} data structure of list\n */\n getEdgeData: function () {\n return this.getGraph().edgeData;\n },\n\n /**\n * @override\n */\n formatTooltip: function (dataIndex, multipleSeries, dataType) {\n // dataType === 'node' or empty do not show tooltip by default\n if (dataType === 'edge') {\n var params = this.getDataParams(dataIndex, dataType);\n var rawDataOpt = params.data;\n var html = rawDataOpt.source + ' -- ' + rawDataOpt.target;\n\n if (params.value) {\n html += ' : ' + params.value;\n }\n\n return encodeHTML(html);\n } else if (dataType === 'node') {\n var node = this.getGraph().getNodeByIndex(dataIndex);\n var value = node.getLayout().value;\n var name = this.getDataParams(dataIndex, dataType).data.name;\n\n if (value) {\n var html = name + ' : ' + value;\n }\n\n return encodeHTML(html);\n }\n\n return SankeySeries.superCall(this, 'formatTooltip', dataIndex, multipleSeries);\n },\n optionUpdated: function () {\n var option = this.option;\n\n if (option.focusNodeAdjacency === true) {\n option.focusNodeAdjacency = 'allEdges';\n }\n },\n // Override Series.getDataParams()\n getDataParams: function (dataIndex, dataType) {\n var params = SankeySeries.superCall(this, 'getDataParams', dataIndex, dataType);\n\n if (params.value == null && dataType === 'node') {\n var node = this.getGraph().getNodeByIndex(dataIndex);\n var nodeValue = node.getLayout().value;\n params.value = nodeValue;\n }\n\n return params;\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n layout: null,\n // The position of the whole view\n left: '5%',\n top: '5%',\n right: '20%',\n bottom: '5%',\n // Value can be 'vertical'\n orient: 'horizontal',\n // The dx of the node\n nodeWidth: 20,\n // The vertical distance between two nodes\n nodeGap: 8,\n // Control if the node can move or not\n draggable: true,\n // Value can be 'inEdges', 'outEdges', 'allEdges', true (the same as 'allEdges').\n focusNodeAdjacency: false,\n // The number of iterations to change the position of the node\n layoutIterations: 32,\n label: {\n show: true,\n position: 'right',\n color: '#000',\n fontSize: 12\n },\n levels: [],\n // Value can be 'left' or 'right'\n nodeAlign: 'justify',\n itemStyle: {\n borderWidth: 1,\n borderColor: '#333'\n },\n lineStyle: {\n color: '#314656',\n opacity: 0.2,\n curveness: 0.5\n },\n emphasis: {\n label: {\n show: true\n },\n lineStyle: {\n opacity: 0.5\n }\n },\n animationEasing: 'linear',\n animationDuration: 1000\n }\n});\nvar _default = SankeySeries;\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\nrequire(\"../coord/geo/GeoModel\");\n\nrequire(\"../coord/geo/geoCreator\");\n\nrequire(\"./geo/GeoView\");\n\nrequire(\"../action/geoRoam\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 makeAction(method, actionInfo) {\n actionInfo.update = 'updateView';\n echarts.registerAction(actionInfo, function (payload, ecModel) {\n var selected = {};\n ecModel.eachComponent({\n mainType: 'geo',\n query: payload\n }, function (geoModel) {\n geoModel[method](payload.name);\n var geo = geoModel.coordinateSystem;\n zrUtil.each(geo.regions, function (region) {\n selected[region.name] = geoModel.isSelected(region.name) || false;\n });\n });\n return {\n selected: selected,\n name: payload.name\n };\n });\n}\n\nmakeAction('toggleSelected', {\n type: 'geoToggleSelect',\n event: 'geoselectchanged'\n});\nmakeAction('select', {\n type: 'geoSelect',\n event: 'geoselected'\n});\nmakeAction('unSelect', {\n type: 'geoUnSelect',\n event: 'geounselected'\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 layout = require(\"../../util/layout\");\n\nvar numberUtil = require(\"../../util/number\");\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*/\n// (24*60*60*1000)\nvar PROXIMATE_ONE_DAY = 86400000;\n/**\n * Calendar\n *\n * @constructor\n *\n * @param {Object} calendarModel calendarModel\n * @param {Object} ecModel ecModel\n * @param {Object} api api\n */\n\nfunction Calendar(calendarModel, ecModel, api) {\n this._model = calendarModel;\n}\n\nCalendar.prototype = {\n constructor: Calendar,\n type: 'calendar',\n dimensions: ['time', 'value'],\n // Required in createListFromData\n getDimensionsInfo: function () {\n return [{\n name: 'time',\n type: 'time'\n }, 'value'];\n },\n getRangeInfo: function () {\n return this._rangeInfo;\n },\n getModel: function () {\n return this._model;\n },\n getRect: function () {\n return this._rect;\n },\n getCellWidth: function () {\n return this._sw;\n },\n getCellHeight: function () {\n return this._sh;\n },\n getOrient: function () {\n return this._orient;\n },\n\n /**\n * getFirstDayOfWeek\n *\n * @example\n * 0 : start at Sunday\n * 1 : start at Monday\n *\n * @return {number}\n */\n getFirstDayOfWeek: function () {\n return this._firstDayOfWeek;\n },\n\n /**\n * get date info\n *\n * @param {string|number} date date\n * @return {Object}\n * {\n * y: string, local full year, eg., '1940',\n * m: string, local month, from '01' ot '12',\n * d: string, local date, from '01' to '31' (if exists),\n * day: It is not date.getDay(). It is the location of the cell in a week, from 0 to 6,\n * time: timestamp,\n * formatedDate: string, yyyy-MM-dd,\n * date: original date object.\n * }\n */\n getDateInfo: function (date) {\n date = numberUtil.parseDate(date);\n var y = date.getFullYear();\n var m = date.getMonth() + 1;\n m = m < 10 ? '0' + m : m;\n var d = date.getDate();\n d = d < 10 ? '0' + d : d;\n var day = date.getDay();\n day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\n return {\n y: y,\n m: m,\n d: d,\n day: day,\n time: date.getTime(),\n formatedDate: y + '-' + m + '-' + d,\n date: date\n };\n },\n getNextNDay: function (date, n) {\n n = n || 0;\n\n if (n === 0) {\n return this.getDateInfo(date);\n }\n\n date = new Date(this.getDateInfo(date).time);\n date.setDate(date.getDate() + n);\n return this.getDateInfo(date);\n },\n update: function (ecModel, api) {\n this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\n this._orient = this._model.get('orient');\n this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\n this._rangeInfo = this._getRangeInfo(this._initRangeOption());\n var weeks = this._rangeInfo.weeks || 1;\n var whNames = ['width', 'height'];\n\n var cellSize = this._model.get('cellSize').slice();\n\n var layoutParams = this._model.getBoxLayoutParams();\n\n var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\n zrUtil.each([0, 1], function (idx) {\n if (cellSizeSpecified(cellSize, idx)) {\n layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\n }\n });\n var whGlobal = {\n width: api.getWidth(),\n height: api.getHeight()\n };\n var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal);\n zrUtil.each([0, 1], function (idx) {\n if (!cellSizeSpecified(cellSize, idx)) {\n cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\n }\n });\n\n function cellSizeSpecified(cellSize, idx) {\n return cellSize[idx] != null && cellSize[idx] !== 'auto';\n }\n\n this._sw = cellSize[0];\n this._sh = cellSize[1];\n },\n\n /**\n * Convert a time data(time, value) item to (x, y) point.\n *\n * @override\n * @param {Array|number} data data\n * @param {boolean} [clamp=true] out of range\n * @return {Array} point\n */\n dataToPoint: function (data, clamp) {\n zrUtil.isArray(data) && (data = data[0]);\n clamp == null && (clamp = true);\n var dayInfo = this.getDateInfo(data);\n var range = this._rangeInfo;\n var date = dayInfo.formatedDate; // if not in range return [NaN, NaN]\n\n if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\n return [NaN, NaN];\n }\n\n var week = dayInfo.day;\n\n var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\n\n if (this._orient === 'vertical') {\n return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2];\n }\n\n return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2];\n },\n\n /**\n * Convert a (x, y) point to time data\n *\n * @override\n * @param {string} point point\n * @return {string} data\n */\n pointToData: function (point) {\n var date = this.pointToDate(point);\n return date && date.time;\n },\n\n /**\n * Convert a time date item to (x, y) four point.\n *\n * @param {Array} data date[0] is date\n * @param {boolean} [clamp=true] out of range\n * @return {Object} point\n */\n dataToRect: function (data, clamp) {\n var point = this.dataToPoint(data, clamp);\n return {\n contentShape: {\n x: point[0] - (this._sw - this._lineWidth) / 2,\n y: point[1] - (this._sh - this._lineWidth) / 2,\n width: this._sw - this._lineWidth,\n height: this._sh - this._lineWidth\n },\n center: point,\n tl: [point[0] - this._sw / 2, point[1] - this._sh / 2],\n tr: [point[0] + this._sw / 2, point[1] - this._sh / 2],\n br: [point[0] + this._sw / 2, point[1] + this._sh / 2],\n bl: [point[0] - this._sw / 2, point[1] + this._sh / 2]\n };\n },\n\n /**\n * Convert a (x, y) point to time date\n *\n * @param {Array} point point\n * @return {Object} date\n */\n pointToDate: function (point) {\n var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\n var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\n var range = this._rangeInfo.range;\n\n if (this._orient === 'vertical') {\n return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\n }\n\n return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\n },\n\n /**\n * @inheritDoc\n */\n convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),\n\n /**\n * @inheritDoc\n */\n convertFromPixel: zrUtil.curry(doConvert, 'pointToData'),\n\n /**\n * initRange\n *\n * @private\n * @return {Array} [start, end]\n */\n _initRangeOption: function () {\n var range = this._model.get('range');\n\n var rg = range;\n\n if (zrUtil.isArray(rg) && rg.length === 1) {\n rg = rg[0];\n }\n\n if (/^\\d{4}$/.test(rg)) {\n range = [rg + '-01-01', rg + '-12-31'];\n }\n\n if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rg)) {\n var start = this.getDateInfo(rg);\n var firstDay = start.date;\n firstDay.setMonth(firstDay.getMonth() + 1);\n var end = this.getNextNDay(firstDay, -1);\n range = [start.formatedDate, end.formatedDate];\n }\n\n if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rg)) {\n range = [rg, rg];\n }\n\n var tmp = this._getRangeInfo(range);\n\n if (tmp.start.time > tmp.end.time) {\n range.reverse();\n }\n\n return range;\n },\n\n /**\n * range info\n *\n * @private\n * @param {Array} range range ['2017-01-01', '2017-07-08']\n * If range[0] > range[1], they will not be reversed.\n * @return {Object} obj\n */\n _getRangeInfo: function (range) {\n range = [this.getDateInfo(range[0]), this.getDateInfo(range[1])];\n var reversed;\n\n if (range[0].time > range[1].time) {\n reversed = true;\n range.reverse();\n }\n\n var allDay = Math.floor(range[1].time / PROXIMATE_ONE_DAY) - Math.floor(range[0].time / PROXIMATE_ONE_DAY) + 1; // Consider case1 (#11677 #10430):\n // Set the system timezone as \"UK\", set the range to `['2016-07-01', '2016-12-31']`\n // Consider case2:\n // Firstly set system timezone as \"Time Zone: America/Toronto\",\n // ```\n // var first = new Date(1478412000000 - 3600 * 1000 * 2.5);\n // var second = new Date(1478412000000);\n // var allDays = Math.floor(second / ONE_DAY) - Math.floor(first / ONE_DAY) + 1;\n // ```\n // will get wrong result because of DST. So we should fix it.\n\n var date = new Date(range[0].time);\n var startDateNum = date.getDate();\n var endDateNum = range[1].date.getDate();\n date.setDate(startDateNum + allDay - 1); // The bias can not over a month, so just compare date.\n\n var dateNum = date.getDate();\n\n if (dateNum !== endDateNum) {\n var sign = date.getTime() - range[1].time > 0 ? 1 : -1;\n\n while ((dateNum = date.getDate()) !== endDateNum && (date.getTime() - range[1].time) * sign > 0) {\n allDay -= sign;\n date.setDate(dateNum - sign);\n }\n }\n\n var weeks = Math.floor((allDay + range[0].day + 6) / 7);\n var nthWeek = reversed ? -weeks + 1 : weeks - 1;\n reversed && range.reverse();\n return {\n range: [range[0].formatedDate, range[1].formatedDate],\n start: range[0],\n end: range[1],\n allDay: allDay,\n weeks: weeks,\n // From 0.\n nthWeek: nthWeek,\n fweek: range[0].day,\n lweek: range[1].day\n };\n },\n\n /**\n * get date by nthWeeks and week day in range\n *\n * @private\n * @param {number} nthWeek the week\n * @param {number} day the week day\n * @param {Array} range [d1, d2]\n * @return {Object}\n */\n _getDateByWeeksAndDay: function (nthWeek, day, range) {\n var rangeInfo = this._getRangeInfo(range);\n\n if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) {\n return false;\n }\n\n var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\n var date = new Date(rangeInfo.start.time);\n date.setDate(rangeInfo.start.d + nthDay);\n return this.getDateInfo(date);\n }\n};\nCalendar.dimensions = Calendar.prototype.dimensions;\nCalendar.getDimensionsInfo = Calendar.prototype.getDimensionsInfo;\n\nCalendar.create = function (ecModel, api) {\n var calendarList = [];\n ecModel.eachComponent('calendar', function (calendarModel) {\n var calendar = new Calendar(calendarModel, ecModel, api);\n calendarList.push(calendar);\n calendarModel.coordinateSystem = calendar;\n });\n ecModel.eachSeries(function (calendarSeries) {\n if (calendarSeries.get('coordinateSystem') === 'calendar') {\n // Inject coordinate system\n calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\n }\n });\n return calendarList;\n};\n\nfunction doConvert(methodName, ecModel, finder, value) {\n var calendarModel = finder.calendarModel;\n var seriesModel = finder.seriesModel;\n var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null;\n return coordSys === this ? coordSys[methodName](value) : null;\n}\n\nCoordinateSystem.register('calendar', Calendar);\nvar _default = Calendar;\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(\"./legend/LegendModel\");\n\nrequire(\"./legend/legendAction\");\n\nrequire(\"./legend/LegendView\");\n\nvar legendFilter = require(\"./legend/legendFilter\");\n\nvar Component = require(\"../model/Component\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Do not contain scrollable legend, for sake of file size.\n// Series Filter\necharts.registerProcessor(echarts.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\nComponent.registerSubTypeDefaulter('legend', function () {\n // Default 'plain' when no type specified.\n return 'plain';\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @payload\n * @property {number} [seriesIndex]\n * @property {string} [seriesId]\n * @property {string} [seriesName]\n * @property {number} [dataIndex]\n */\necharts.registerAction({\n type: 'focusNodeAdjacency',\n event: 'focusNodeAdjacency',\n update: 'series:focusNodeAdjacency'\n}, function () {});\n/**\n * @payload\n * @property {number} [seriesIndex]\n * @property {string} [seriesId]\n * @property {string} [seriesName]\n */\n\necharts.registerAction({\n type: 'unfocusNodeAdjacency',\n event: 'unfocusNodeAdjacency',\n update: 'series:unfocusNodeAdjacency'\n}, function () {});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar _roamHelper = require(\"../../action/roamHelper\");\n\nvar updateCenterAndZoom = _roamHelper.updateCenterAndZoom;\n\nrequire(\"../helper/focusNodeAdjacencyAction\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 actionInfo = {\n type: 'graphRoam',\n event: 'graphRoam',\n update: 'none'\n};\n/**\n * @payload\n * @property {string} name Series name\n * @property {number} [dx]\n * @property {number} [dy]\n * @property {number} [zoom]\n * @property {number} [originX]\n * @property {number} [originY]\n */\n\necharts.registerAction(actionInfo, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'series',\n query: payload\n }, function (seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n var res = updateCenterAndZoom(coordSys, payload);\n seriesModel.setCenter && seriesModel.setCenter(res.center);\n seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n });\n});","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAADKADAAQAAAABAAAADAAAAAATDPpdAAAAf0lEQVQoFWNgoCtQUNaOUFDWDG9oaGDCZTEjsoSxsTHr23ff1zAwMvwTFuQMO3v27G9keRAbRQNIgJAmDKtBpgoLcYYw/GdgAtsGMgUJsCCx0Zn/gfb/RxfEsAHqpNUgxSB/4NUAVvz++yqQIlyeRjEAFKQqKlra+IIVRQNNOABNWi/6KUzSQAAAAABJRU5ErkJggg==\"","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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\nvar vec2 = require(\"zrender/lib/core/vector\");\n\nvar fixClipWithShadow = require(\"zrender/lib/graphic/helper/fixClipWithShadow\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Poly path support NaN point\nvar vec2Min = vec2.min;\nvar vec2Max = vec2.max;\nvar scaleAndAdd = vec2.scaleAndAdd;\nvar v2Copy = vec2.copy; // Temporary variable\n\nvar v = [];\nvar cp0 = [];\nvar cp1 = [];\n\nfunction isPointNull(p) {\n return isNaN(p[0]) || isNaN(p[1]);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\n // if (smoothMonotone == null) {\n // if (isMono(points, 'x')) {\n // return drawMono(ctx, points, start, segLen, allLen,\n // dir, smoothMin, smoothMax, smooth, 'x', connectNulls);\n // }\n // else if (isMono(points, 'y')) {\n // return drawMono(ctx, points, start, segLen, allLen,\n // dir, smoothMin, smoothMax, smooth, 'y', connectNulls);\n // }\n // else {\n // return drawNonMono.apply(this, arguments);\n // }\n // }\n // else if (smoothMonotone !== 'none' && isMono(points, smoothMonotone)) {\n // return drawMono.apply(this, arguments);\n // }\n // else {\n // return drawNonMono.apply(this, arguments);\n // }\n if (smoothMonotone === 'none' || !smoothMonotone) {\n return drawNonMono.apply(this, arguments);\n } else {\n return drawMono.apply(this, arguments);\n }\n}\n/**\n * Check if points is in monotone.\n *\n * @param {number[][]} points Array of points which is in [x, y] form\n * @param {string} smoothMonotone 'x', 'y', or 'none', stating for which\n * dimension that is checking.\n * If is 'none', `drawNonMono` should be\n * called.\n * If is undefined, either being monotone\n * in 'x' or 'y' will call `drawMono`.\n */\n// function isMono(points, smoothMonotone) {\n// if (points.length <= 1) {\n// return true;\n// }\n// var dim = smoothMonotone === 'x' ? 0 : 1;\n// var last = points[0][dim];\n// var lastDiff = 0;\n// for (var i = 1; i < points.length; ++i) {\n// var diff = points[i][dim] - last;\n// if (!isNaN(diff) && !isNaN(lastDiff)\n// && diff !== 0 && lastDiff !== 0\n// && ((diff >= 0) !== (lastDiff >= 0))\n// ) {\n// return false;\n// }\n// if (!isNaN(diff) && diff !== 0) {\n// lastDiff = diff;\n// last = points[i][dim];\n// }\n// }\n// return true;\n// }\n\n/**\n * Draw smoothed line in monotone, in which only vertical or horizontal bezier\n * control points will be used. This should be used when points are monotone\n * either in x or y dimension.\n */\n\n\nfunction drawMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\n var prevIdx = 0;\n var idx = start;\n\n for (var k = 0; k < segLen; k++) {\n var p = points[idx];\n\n if (idx >= allLen || idx < 0) {\n break;\n }\n\n if (isPointNull(p)) {\n if (connectNulls) {\n idx += dir;\n continue;\n }\n\n break;\n }\n\n if (idx === start) {\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\n } else {\n if (smooth > 0) {\n var prevP = points[prevIdx];\n var dim = smoothMonotone === 'y' ? 1 : 0; // Length of control point to p, either in x or y, but not both\n\n var ctrlLen = (p[dim] - prevP[dim]) * smooth;\n v2Copy(cp0, prevP);\n cp0[dim] = prevP[dim] + ctrlLen;\n v2Copy(cp1, p);\n cp1[dim] = p[dim] - ctrlLen;\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]);\n } else {\n ctx.lineTo(p[0], p[1]);\n }\n }\n\n prevIdx = idx;\n idx += dir;\n }\n\n return k;\n}\n/**\n * Draw smoothed line in non-monotone, in may cause undesired curve in extreme\n * situations. This should be used when points are non-monotone neither in x or\n * y dimension.\n */\n\n\nfunction drawNonMono(ctx, points, start, segLen, allLen, dir, smoothMin, smoothMax, smooth, smoothMonotone, connectNulls) {\n var prevIdx = 0;\n var idx = start;\n\n for (var k = 0; k < segLen; k++) {\n var p = points[idx];\n\n if (idx >= allLen || idx < 0) {\n break;\n }\n\n if (isPointNull(p)) {\n if (connectNulls) {\n idx += dir;\n continue;\n }\n\n break;\n }\n\n if (idx === start) {\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](p[0], p[1]);\n v2Copy(cp0, p);\n } else {\n if (smooth > 0) {\n var nextIdx = idx + dir;\n var nextP = points[nextIdx];\n\n if (connectNulls) {\n // Find next point not null\n while (nextP && isPointNull(points[nextIdx])) {\n nextIdx += dir;\n nextP = points[nextIdx];\n }\n }\n\n var ratioNextSeg = 0.5;\n var prevP = points[prevIdx];\n var nextP = points[nextIdx]; // Last point\n\n if (!nextP || isPointNull(nextP)) {\n v2Copy(cp1, p);\n } else {\n // If next data is null in not connect case\n if (isPointNull(nextP) && !connectNulls) {\n nextP = p;\n }\n\n vec2.sub(v, nextP, prevP);\n var lenPrevSeg;\n var lenNextSeg;\n\n if (smoothMonotone === 'x' || smoothMonotone === 'y') {\n var dim = smoothMonotone === 'x' ? 0 : 1;\n lenPrevSeg = Math.abs(p[dim] - prevP[dim]);\n lenNextSeg = Math.abs(p[dim] - nextP[dim]);\n } else {\n lenPrevSeg = vec2.dist(p, prevP);\n lenNextSeg = vec2.dist(p, nextP);\n } // Use ratio of seg length\n\n\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n scaleAndAdd(cp1, p, v, -smooth * (1 - ratioNextSeg));\n } // Smooth constraint\n\n\n vec2Min(cp0, cp0, smoothMax);\n vec2Max(cp0, cp0, smoothMin);\n vec2Min(cp1, cp1, smoothMax);\n vec2Max(cp1, cp1, smoothMin);\n ctx.bezierCurveTo(cp0[0], cp0[1], cp1[0], cp1[1], p[0], p[1]); // cp0 of next segment\n\n scaleAndAdd(cp0, p, v, smooth * ratioNextSeg);\n } else {\n ctx.lineTo(p[0], p[1]);\n }\n }\n\n prevIdx = idx;\n idx += dir;\n }\n\n return k;\n}\n\nfunction getBoundingBox(points, smoothConstraint) {\n var ptMin = [Infinity, Infinity];\n var ptMax = [-Infinity, -Infinity];\n\n if (smoothConstraint) {\n for (var i = 0; i < points.length; i++) {\n var pt = points[i];\n\n if (pt[0] < ptMin[0]) {\n ptMin[0] = pt[0];\n }\n\n if (pt[1] < ptMin[1]) {\n ptMin[1] = pt[1];\n }\n\n if (pt[0] > ptMax[0]) {\n ptMax[0] = pt[0];\n }\n\n if (pt[1] > ptMax[1]) {\n ptMax[1] = pt[1];\n }\n }\n }\n\n return {\n min: smoothConstraint ? ptMin : ptMax,\n max: smoothConstraint ? ptMax : ptMin\n };\n}\n\nvar Polyline = Path.extend({\n type: 'ec-polyline',\n shape: {\n points: [],\n smooth: 0,\n smoothConstraint: true,\n smoothMonotone: null,\n connectNulls: false\n },\n style: {\n fill: null,\n stroke: '#000'\n },\n brush: fixClipWithShadow(Path.prototype.brush),\n buildPath: function (ctx, shape) {\n var points = shape.points;\n var i = 0;\n var len = points.length;\n var result = getBoundingBox(points, shape.smoothConstraint);\n\n if (shape.connectNulls) {\n // Must remove first and last null values avoid draw error in polygon\n for (; len > 0; len--) {\n if (!isPointNull(points[len - 1])) {\n break;\n }\n }\n\n for (; i < len; i++) {\n if (!isPointNull(points[i])) {\n break;\n }\n }\n }\n\n while (i < len) {\n i += drawSegment(ctx, points, i, len, len, 1, result.min, result.max, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n }\n }\n});\nvar Polygon = Path.extend({\n type: 'ec-polygon',\n shape: {\n points: [],\n // Offset between stacked base points and points\n stackedOnPoints: [],\n smooth: 0,\n stackedOnSmooth: 0,\n smoothConstraint: true,\n smoothMonotone: null,\n connectNulls: false\n },\n brush: fixClipWithShadow(Path.prototype.brush),\n buildPath: function (ctx, shape) {\n var points = shape.points;\n var stackedOnPoints = shape.stackedOnPoints;\n var i = 0;\n var len = points.length;\n var smoothMonotone = shape.smoothMonotone;\n var bbox = getBoundingBox(points, shape.smoothConstraint);\n var stackedOnBBox = getBoundingBox(stackedOnPoints, shape.smoothConstraint);\n\n if (shape.connectNulls) {\n // Must remove first and last null values avoid draw error in polygon\n for (; len > 0; len--) {\n if (!isPointNull(points[len - 1])) {\n break;\n }\n }\n\n for (; i < len; i++) {\n if (!isPointNull(points[i])) {\n break;\n }\n }\n }\n\n while (i < len) {\n var k = drawSegment(ctx, points, i, len, len, 1, bbox.min, bbox.max, shape.smooth, smoothMonotone, shape.connectNulls);\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, stackedOnBBox.min, stackedOnBBox.max, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n i += k + 1;\n ctx.closePath();\n }\n }\n});\nexports.Polyline = Polyline;\nexports.Polygon = Polygon;","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/home\",\n function () {\n return require(\"private-next-pages/home.tsx\");\n }\n ]);\n ","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\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 PictorialBarSeries = BaseBarSeries.extend({\n type: 'series.pictorialBar',\n dependencies: ['grid'],\n defaultOption: {\n symbol: 'circle',\n // Customized bar shape\n symbolSize: null,\n // Can be ['100%', '100%'], null means auto.\n symbolRotate: null,\n symbolPosition: null,\n // 'start' or 'end' or 'center', null means auto.\n symbolOffset: null,\n symbolMargin: null,\n // start margin and end margin. Can be a number or a percent string.\n // Auto margin by default.\n symbolRepeat: false,\n // false/null/undefined, means no repeat.\n // Can be true, means auto calculate repeat times and cut by data.\n // Can be a number, specifies repeat times, and do not cut by data.\n // Can be 'fixed', means auto calculate repeat times but do not cut by data.\n symbolRepeatDirection: 'end',\n // 'end' means from 'start' to 'end'.\n symbolClip: false,\n symbolBoundingData: null,\n // Can be 60 or -40 or [-40, 60]\n symbolPatternSize: 400,\n // 400 * 400 px\n barGap: '-100%',\n // In most case, overlap is needed.\n // z can be set in data item, which is z2 actually.\n // Disable progressive\n progressive: 0,\n hoverAnimation: false // Open only when needed.\n\n },\n getInitialData: function (option) {\n // Disable stack.\n option.stack = null;\n return PictorialBarSeries.superApply(this, 'getInitialData', arguments);\n }\n});\nvar _default = PictorialBarSeries;\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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 actionInfo = {\n type: 'selectDataRange',\n event: 'dataRangeSelected',\n // FIXME use updateView appears wrong\n update: 'update'\n};\necharts.registerAction(actionInfo, function (payload, ecModel) {\n ecModel.eachComponent({\n mainType: 'visualMap',\n query: payload\n }, function (model) {\n model.setSelected(payload.selected);\n });\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nrequire(\"./sunburst/SunburstSeries\");\n\nrequire(\"./sunburst/SunburstView\");\n\nrequire(\"./sunburst/sunburstAction\");\n\nvar dataColor = require(\"../visual/dataColor\");\n\nvar sunburstLayout = require(\"./sunburst/sunburstLayout\");\n\nvar dataFilter = require(\"../processor/dataFilter\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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(zrUtil.curry(dataColor, 'sunburst'));\necharts.registerLayout(zrUtil.curry(sunburstLayout, 'sunburst'));\necharts.registerProcessor(zrUtil.curry(dataFilter, 'sunburst'));","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 textContain = require(\"zrender/lib/contain/text\");\n\nvar featureManager = require(\"./featureManager\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Model = require(\"../../model/Model\");\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\n\nvar listComponentHelper = require(\"../helper/listComponent\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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.extendComponentView({\n type: 'toolbox',\n render: function (toolboxModel, ecModel, api, payload) {\n var group = this.group;\n group.removeAll();\n\n if (!toolboxModel.get('show')) {\n return;\n }\n\n var itemSize = +toolboxModel.get('itemSize');\n var featureOpts = toolboxModel.get('feature') || {};\n var features = this._features || (this._features = {});\n var featureNames = [];\n zrUtil.each(featureOpts, function (opt, name) {\n featureNames.push(name);\n });\n new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute(); // Keep for diff.\n\n this._featureNames = featureNames;\n\n function processFeature(newIndex, oldIndex) {\n var featureName = featureNames[newIndex];\n var oldName = featureNames[oldIndex];\n var featureOpt = featureOpts[featureName];\n var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n var feature; // FIX#11236, merge feature title from MagicType newOption. TODO: consider seriesIndex ?\n\n if (payload && payload.newTitle != null && payload.featureName === featureName) {\n featureOpt.title = payload.newTitle;\n }\n\n if (featureName && !oldName) {\n // Create\n if (isUserFeatureName(featureName)) {\n feature = {\n model: featureModel,\n onclick: featureModel.option.onclick,\n featureName: featureName\n };\n } else {\n var Feature = featureManager.get(featureName);\n\n if (!Feature) {\n return;\n }\n\n feature = new Feature(featureModel, ecModel, api);\n }\n\n features[featureName] = feature;\n } else {\n feature = features[oldName]; // If feature does not exsit.\n\n if (!feature) {\n return;\n }\n\n feature.model = featureModel;\n feature.ecModel = ecModel;\n feature.api = api;\n }\n\n if (!featureName && oldName) {\n feature.dispose && feature.dispose(ecModel, api);\n return;\n }\n\n if (!featureModel.get('show') || feature.unusable) {\n feature.remove && feature.remove(ecModel, api);\n return;\n }\n\n createIconPaths(featureModel, feature, featureName);\n\n featureModel.setIconStatus = function (iconName, status) {\n var option = this.option;\n var iconPaths = this.iconPaths;\n option.iconStatus = option.iconStatus || {};\n option.iconStatus[iconName] = status; // FIXME\n\n iconPaths[iconName] && iconPaths[iconName].trigger(status);\n };\n\n if (feature.render) {\n feature.render(featureModel, ecModel, api, payload);\n }\n }\n\n function createIconPaths(featureModel, feature, featureName) {\n var iconStyleModel = featureModel.getModel('iconStyle');\n var iconStyleEmphasisModel = featureModel.getModel('emphasis.iconStyle'); // If one feature has mutiple icon. they are orginaized as\n // {\n // icon: {\n // foo: '',\n // bar: ''\n // },\n // title: {\n // foo: '',\n // bar: ''\n // }\n // }\n\n var icons = feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n var titles = featureModel.get('title') || {};\n\n if (typeof icons === 'string') {\n var icon = icons;\n var title = titles;\n icons = {};\n titles = {};\n icons[featureName] = icon;\n titles[featureName] = title;\n }\n\n var iconPaths = featureModel.iconPaths = {};\n zrUtil.each(icons, function (iconStr, iconName) {\n var path = graphic.createIcon(iconStr, {}, {\n x: -itemSize / 2,\n y: -itemSize / 2,\n width: itemSize,\n height: itemSize\n });\n path.setStyle(iconStyleModel.getItemStyle());\n path.hoverStyle = iconStyleEmphasisModel.getItemStyle(); // Text position calculation\n\n path.setStyle({\n text: titles[iconName],\n textAlign: iconStyleEmphasisModel.get('textAlign'),\n textBorderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\n textPadding: iconStyleEmphasisModel.get('textPadding'),\n textFill: null\n });\n var tooltipModel = toolboxModel.getModel('tooltip');\n\n if (tooltipModel && tooltipModel.get('show')) {\n path.attr('tooltip', zrUtil.extend({\n content: titles[iconName],\n formatter: tooltipModel.get('formatter', true) || function () {\n return titles[iconName];\n },\n formatterParams: {\n componentType: 'toolbox',\n name: iconName,\n title: titles[iconName],\n $vars: ['name', 'title']\n },\n position: tooltipModel.get('position', true) || 'bottom'\n }, tooltipModel.option));\n }\n\n graphic.setHoverStyle(path);\n\n if (toolboxModel.get('showTitle')) {\n path.__title = titles[iconName];\n path.on('mouseover', function () {\n // Should not reuse above hoverStyle, which might be modified.\n var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n var defaultTextPosition = toolboxModel.get('orient') === 'vertical' ? toolboxModel.get('right') == null ? 'right' : 'left' : toolboxModel.get('bottom') == null ? 'bottom' : 'top';\n path.setStyle({\n textFill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000',\n textBackgroundColor: iconStyleEmphasisModel.get('textBackgroundColor'),\n textPosition: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\n });\n }).on('mouseout', function () {\n path.setStyle({\n textFill: null,\n textBackgroundColor: null\n });\n });\n }\n\n path.trigger(featureModel.get('iconStatus.' + iconName) || 'normal');\n group.add(path);\n path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n iconPaths[iconName] = path;\n });\n }\n\n listComponentHelper.layout(group, toolboxModel, api); // Render background after group is layout\n // FIXME\n\n group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel)); // Adjust icon title positions to avoid them out of screen\n\n group.eachChild(function (icon) {\n var titleText = icon.__title;\n var hoverStyle = icon.hoverStyle; // May be background element\n\n if (hoverStyle && titleText) {\n var rect = textContain.getBoundingRect(titleText, textContain.makeFont(hoverStyle));\n var offsetX = icon.position[0] + group.position[0];\n var offsetY = icon.position[1] + group.position[1] + itemSize;\n var needPutOnTop = false;\n\n if (offsetY + rect.height > api.getHeight()) {\n hoverStyle.textPosition = 'top';\n needPutOnTop = true;\n }\n\n var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8;\n\n if (offsetX + rect.width / 2 > api.getWidth()) {\n hoverStyle.textPosition = ['100%', topOffset];\n hoverStyle.textAlign = 'right';\n } else if (offsetX - rect.width / 2 < 0) {\n hoverStyle.textPosition = [0, topOffset];\n hoverStyle.textAlign = 'left';\n }\n }\n });\n },\n updateView: function (toolboxModel, ecModel, api, payload) {\n zrUtil.each(this._features, function (feature) {\n feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n });\n },\n // updateLayout: function (toolboxModel, ecModel, api, payload) {\n // zrUtil.each(this._features, function (feature) {\n // feature.updateLayout && feature.updateLayout(feature.model, ecModel, api, payload);\n // });\n // },\n remove: function (ecModel, api) {\n zrUtil.each(this._features, function (feature) {\n feature.remove && feature.remove(ecModel, api);\n });\n this.group.removeAll();\n },\n dispose: function (ecModel, api) {\n zrUtil.each(this._features, function (feature) {\n feature.dispose && feature.dispose(ecModel, api);\n });\n }\n});\n\nfunction isUserFeatureName(featureName) {\n return featureName.indexOf('my') === 0;\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 * @param {module:echarts/coord/View} view\n * @param {Object} payload\n * @param {Object} [zoomLimit]\n */\nfunction updateCenterAndZoom(view, payload, zoomLimit) {\n var previousZoom = view.getZoom();\n var center = view.getCenter();\n var zoom = payload.zoom;\n var point = view.dataToPoint(center);\n\n if (payload.dx != null && payload.dy != null) {\n point[0] -= payload.dx;\n point[1] -= payload.dy;\n var center = view.pointToData(point);\n view.setCenter(center);\n }\n\n if (zoom != null) {\n if (zoomLimit) {\n var zoomMin = zoomLimit.min || 0;\n var zoomMax = zoomLimit.max || Infinity;\n zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\n } // Zoom on given point(originX, originY)\n\n\n view.scale[0] *= zoom;\n view.scale[1] *= zoom;\n var position = view.position;\n var fixX = (payload.originX - position[0]) * (zoom - 1);\n var fixY = (payload.originY - position[1]) * (zoom - 1);\n position[0] -= fixX;\n position[1] -= fixY;\n view.updateTransform(); // Get the new center\n\n var center = view.pointToData(point);\n view.setCenter(center);\n view.setZoom(zoom * previousZoom);\n }\n\n return {\n center: view.getCenter(),\n zoom: view.getZoom()\n };\n}\n\nexports.updateCenterAndZoom = updateCenterAndZoom;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 matrix = require(\"zrender/lib/core/matrix\");\n\nvar layoutUtil = require(\"../../util/layout\");\n\nvar axisHelper = require(\"../../coord/axisHelper\");\n\nvar ParallelAxis = require(\"./ParallelAxis\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar sliderMove = require(\"../../component/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*/\n\n/**\n * Parallel Coordinates\n * \n */\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar round = numberUtil.round;\nvar PI = Math.PI;\n\nfunction Parallel(parallelModel, ecModel, api) {\n /**\n * key: dimension\n * @type {Object.}\n * @private\n */\n this._axesMap = zrUtil.createHashMap();\n /**\n * key: dimension\n * value: {position: [], rotation, }\n * @type {Object.}\n * @private\n */\n\n this._axesLayout = {};\n /**\n * Always follow axis order.\n * @type {Array.}\n * @readOnly\n */\n\n this.dimensions = parallelModel.dimensions;\n /**\n * @type {module:zrender/core/BoundingRect}\n */\n\n this._rect;\n /**\n * @type {module:echarts/coord/parallel/ParallelModel}\n */\n\n this._model = parallelModel;\n\n this._init(parallelModel, ecModel, api);\n}\n\nParallel.prototype = {\n type: 'parallel',\n constructor: Parallel,\n\n /**\n * Initialize cartesian coordinate systems\n * @private\n */\n _init: function (parallelModel, ecModel, api) {\n var dimensions = parallelModel.dimensions;\n var parallelAxisIndex = parallelModel.parallelAxisIndex;\n each(dimensions, function (dim, idx) {\n var axisIndex = parallelAxisIndex[idx];\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n\n var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\n\n var isCategory = axis.type === 'category';\n axis.onBand = isCategory && axisModel.get('boundaryGap');\n axis.inverse = axisModel.get('inverse'); // Injection\n\n axisModel.axis = axis;\n axis.model = axisModel;\n axis.coordinateSystem = axisModel.coordinateSystem = this;\n }, this);\n },\n\n /**\n * Update axis scale after data processed\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\n update: function (ecModel, api) {\n this._updateAxesFromSeries(this._model, ecModel);\n },\n\n /**\n * @override\n */\n containPoint: function (point) {\n var layoutInfo = this._makeLayoutInfo();\n\n var axisBase = layoutInfo.axisBase;\n var layoutBase = layoutInfo.layoutBase;\n var pixelDimIndex = layoutInfo.pixelDimIndex;\n var pAxis = point[1 - pixelDimIndex];\n var pLayout = point[pixelDimIndex];\n return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength;\n },\n getModel: function () {\n return this._model;\n },\n\n /**\n * Update properties from series\n * @private\n */\n _updateAxesFromSeries: function (parallelModel, ecModel) {\n ecModel.eachSeries(function (seriesModel) {\n if (!parallelModel.contains(seriesModel, ecModel)) {\n return;\n }\n\n var data = seriesModel.getData();\n each(this.dimensions, function (dim) {\n var axis = this._axesMap.get(dim);\n\n axis.scale.unionExtentFromData(data, data.mapDimension(dim));\n axisHelper.niceScaleExtent(axis.scale, axis.model);\n }, this);\n }, this);\n },\n\n /**\n * Resize the parallel coordinate system.\n * @param {module:echarts/coord/parallel/ParallelModel} parallelModel\n * @param {module:echarts/ExtensionAPI} api\n */\n resize: function (parallelModel, api) {\n this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n\n this._layoutAxes();\n },\n\n /**\n * @return {module:zrender/core/BoundingRect}\n */\n getRect: function () {\n return this._rect;\n },\n\n /**\n * @private\n */\n _makeLayoutInfo: function () {\n var parallelModel = this._model;\n var rect = this._rect;\n var xy = ['x', 'y'];\n var wh = ['width', 'height'];\n var layout = parallelModel.get('layout');\n var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\n var layoutLength = rect[wh[pixelDimIndex]];\n var layoutExtent = [0, layoutLength];\n var axisCount = this.dimensions.length;\n var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent);\n var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\n var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0; // `axisExpandWindow` is According to the coordinates of [0, axisExpandLength],\n // for sake of consider the case that axisCollapseWidth is 0 (when screen is narrow),\n // where collapsed axes should be overlapped.\n\n var axisExpandWindow = parallelModel.get('axisExpandWindow');\n var winSize;\n\n if (!axisExpandWindow) {\n winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\n var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2);\n axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n } else {\n winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n }\n\n var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount); // Avoid axisCollapseWidth is too small.\n\n axisCollapseWidth < 3 && (axisCollapseWidth = 0); // Find the first and last indices > ewin[0] and < ewin[1].\n\n var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1]; // Pos in ec coordinates.\n\n var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\n return {\n layout: layout,\n pixelDimIndex: pixelDimIndex,\n layoutBase: rect[xy[pixelDimIndex]],\n layoutLength: layoutLength,\n axisBase: rect[xy[1 - pixelDimIndex]],\n axisLength: rect[wh[1 - pixelDimIndex]],\n axisExpandable: axisExpandable,\n axisExpandWidth: axisExpandWidth,\n axisCollapseWidth: axisCollapseWidth,\n axisExpandWindow: axisExpandWindow,\n axisCount: axisCount,\n winInnerIndices: winInnerIndices,\n axisExpandWindow0Pos: axisExpandWindow0Pos\n };\n },\n\n /**\n * @private\n */\n _layoutAxes: function () {\n var rect = this._rect;\n var axes = this._axesMap;\n var dimensions = this.dimensions;\n\n var layoutInfo = this._makeLayoutInfo();\n\n var layout = layoutInfo.layout;\n axes.each(function (axis) {\n var axisExtent = [0, layoutInfo.axisLength];\n var idx = axis.inverse ? 1 : 0;\n axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\n });\n each(dimensions, function (dim, idx) {\n var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\n var positionTable = {\n horizontal: {\n x: posInfo.position,\n y: layoutInfo.axisLength\n },\n vertical: {\n x: 0,\n y: posInfo.position\n }\n };\n var rotationTable = {\n horizontal: PI / 2,\n vertical: 0\n };\n var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y];\n var rotation = rotationTable[layout];\n var transform = matrix.create();\n matrix.rotate(transform, transform, rotation);\n matrix.translate(transform, transform, position); // TODO\n // tick等排布信息。\n // TODO\n // 根据axis order 更新 dimensions顺序。\n\n this._axesLayout[dim] = {\n position: position,\n rotation: rotation,\n transform: transform,\n axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\n axisLabelShow: posInfo.axisLabelShow,\n nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\n tickDirection: 1,\n labelDirection: 1\n };\n }, this);\n },\n\n /**\n * Get axis by dim.\n * @param {string} dim\n * @return {module:echarts/coord/parallel/ParallelAxis} [description]\n */\n getAxis: function (dim) {\n return this._axesMap.get(dim);\n },\n\n /**\n * Convert a dim value of a single item of series data to Point.\n * @param {*} value\n * @param {string} dim\n * @return {Array}\n */\n dataToPoint: function (value, dim) {\n return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\n },\n\n /**\n * Travel data for one time, get activeState of each data item.\n * @param {module:echarts/data/List} data\n * @param {Functio} cb param: {string} activeState 'active' or 'inactive' or 'normal'\n * {number} dataIndex\n * @param {number} [start=0] the start dataIndex that travel from.\n * @param {number} [end=data.count()] the next dataIndex of the last dataIndex will be travel.\n */\n eachActiveState: function (data, callback, start, end) {\n start == null && (start = 0);\n end == null && (end = data.count());\n var axesMap = this._axesMap;\n var dimensions = this.dimensions;\n var dataDimensions = [];\n var axisModels = [];\n zrUtil.each(dimensions, function (axisDim) {\n dataDimensions.push(data.mapDimension(axisDim));\n axisModels.push(axesMap.get(axisDim).model);\n });\n var hasActiveSet = this.hasAxisBrushed();\n\n for (var dataIndex = start; dataIndex < end; dataIndex++) {\n var activeState;\n\n if (!hasActiveSet) {\n activeState = 'normal';\n } else {\n activeState = 'active';\n var values = data.getValues(dataDimensions, dataIndex);\n\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n var state = axisModels[j].getActiveState(values[j]);\n\n if (state === 'inactive') {\n activeState = 'inactive';\n break;\n }\n }\n }\n\n callback(activeState, dataIndex);\n }\n },\n\n /**\n * Whether has any activeSet.\n * @return {boolean}\n */\n hasAxisBrushed: function () {\n var dimensions = this.dimensions;\n var axesMap = this._axesMap;\n var hasActiveSet = false;\n\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\n hasActiveSet = true;\n }\n }\n\n return hasActiveSet;\n },\n\n /**\n * Convert coords of each axis to Point.\n * Return point. For example: [10, 20]\n * @param {Array.} coords\n * @param {string} dim\n * @return {Array.}\n */\n axisCoordToPoint: function (coord, dim) {\n var axisLayout = this._axesLayout[dim];\n return graphic.applyTransform([coord, 0], axisLayout.transform);\n },\n\n /**\n * Get axis layout.\n */\n getAxisLayout: function (dim) {\n return zrUtil.clone(this._axesLayout[dim]);\n },\n\n /**\n * @param {Array.} point\n * @return {Object} {axisExpandWindow, delta, behavior: 'jump' | 'slide' | 'none'}.\n */\n getSlidedAxisExpandWindow: function (point) {\n var layoutInfo = this._makeLayoutInfo();\n\n var pixelDimIndex = layoutInfo.pixelDimIndex;\n var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\n var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)]; // Out of the area of coordinate system.\n\n if (!this.containPoint(point)) {\n return {\n behavior: 'none',\n axisExpandWindow: axisExpandWindow\n };\n } // Conver the point from global to expand coordinates.\n\n\n var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos; // For dragging operation convenience, the window should not be\n // slided when mouse is the center area of the window.\n\n var delta;\n var behavior = 'slide';\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n\n var triggerArea = this._model.get('axisExpandSlideTriggerArea'); // But consider touch device, jump is necessary.\n\n\n var useJump = triggerArea[0] != null;\n\n if (axisCollapseWidth) {\n if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\n behavior = 'jump';\n delta = pointCoord - winSize * triggerArea[2];\n } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\n behavior = 'jump';\n delta = pointCoord - winSize * (1 - triggerArea[2]);\n } else {\n (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0);\n }\n\n delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\n delta ? sliderMove(delta, axisExpandWindow, extent, 'all') // Avoid nonsense triger on mousemove.\n : behavior = 'none';\n } // When screen is too narrow, make it visible and slidable, although it is hard to interact.\n else {\n var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n var pos = extent[1] * pointCoord / winSize;\n axisExpandWindow = [mathMax(0, pos - winSize / 2)];\n axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize);\n axisExpandWindow[0] = axisExpandWindow[1] - winSize;\n }\n\n return {\n axisExpandWindow: axisExpandWindow,\n behavior: behavior\n };\n }\n};\n\nfunction restrict(len, extent) {\n return mathMin(mathMax(len, extent[0]), extent[1]);\n}\n\nfunction layoutAxisWithoutExpand(axisIndex, layoutInfo) {\n var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\n return {\n position: step * axisIndex,\n axisNameAvailableWidth: step,\n axisLabelShow: true\n };\n}\n\nfunction layoutAxisWithExpand(axisIndex, layoutInfo) {\n var layoutLength = layoutInfo.layoutLength;\n var axisExpandWidth = layoutInfo.axisExpandWidth;\n var axisCount = layoutInfo.axisCount;\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n var winInnerIndices = layoutInfo.winInnerIndices;\n var position;\n var axisNameAvailableWidth = axisCollapseWidth;\n var axisLabelShow = false;\n var nameTruncateMaxWidth;\n\n if (axisIndex < winInnerIndices[0]) {\n position = axisIndex * axisCollapseWidth;\n nameTruncateMaxWidth = axisCollapseWidth;\n } else if (axisIndex <= winInnerIndices[1]) {\n position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\n axisNameAvailableWidth = axisExpandWidth;\n axisLabelShow = true;\n } else {\n position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\n nameTruncateMaxWidth = axisCollapseWidth;\n }\n\n return {\n position: position,\n axisNameAvailableWidth: axisNameAvailableWidth,\n axisLabelShow: axisLabelShow,\n nameTruncateMaxWidth: nameTruncateMaxWidth\n };\n}\n\nvar _default = Parallel;\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 ComponentModel = require(\"../../model/Component\");\n\nvar axisModelCreator = require(\"../axisModelCreator\");\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 PolarAxisModel = ComponentModel.extend({\n type: 'polarAxis',\n\n /**\n * @type {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n */\n axis: null,\n\n /**\n * @override\n */\n getCoordSysModel: function () {\n return this.ecModel.queryComponents({\n mainType: 'polar',\n index: this.option.polarIndex,\n id: this.option.polarId\n })[0];\n }\n});\nzrUtil.merge(PolarAxisModel.prototype, axisModelCommonMixin);\nvar polarAxisDefaultExtendedOption = {\n angle: {\n // polarIndex: 0,\n // polarId: '',\n startAngle: 90,\n clockwise: true,\n splitNumber: 12,\n axisLabel: {\n rotate: false\n }\n },\n radius: {\n // polarIndex: 0,\n // polarId: '',\n splitNumber: 5\n }\n};\n\nfunction getAxisType(axisDim, option) {\n // Default axis with data is category axis\n return option.type || (option.data ? 'category' : 'value');\n}\n\naxisModelCreator('angle', PolarAxisModel, getAxisType, polarAxisDefaultExtendedOption.angle);\naxisModelCreator('radius', PolarAxisModel, getAxisType, polarAxisDefaultExtendedOption.radius);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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(\"./treemap/TreemapSeries\");\n\nrequire(\"./treemap/TreemapView\");\n\nrequire(\"./treemap/treemapAction\");\n\nvar treemapVisual = require(\"./treemap/treemapVisual\");\n\nvar treemapLayout = require(\"./treemap/treemapLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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(treemapVisual);\necharts.registerLayout(treemapLayout);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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(\"./marker/MarkPointModel\");\n\nrequire(\"./marker/MarkPointView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// HINT Markpoint can't be used too much\necharts.registerPreprocessor(function (opt) {\n // Make sure markPoint component is enabled\n opt.markPoint = opt.markPoint || {};\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 history = require(\"../../dataZoom/history\");\n\nvar lang = require(\"../../../lang\");\n\nvar featureManager = require(\"../featureManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 restoreLang = lang.toolbox.restore;\n\nfunction Restore(model) {\n this.model = model;\n}\n\nRestore.defaultOption = {\n show: true,\n\n /* eslint-disable */\n icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n\n /* eslint-enable */\n title: restoreLang.title\n};\nvar proto = Restore.prototype;\n\nproto.onclick = function (ecModel, api, type) {\n history.clear(ecModel);\n api.dispatchAction({\n type: 'restore',\n from: this.uid\n });\n};\n\nfeatureManager.register('restore', Restore);\necharts.registerAction({\n type: 'restore',\n event: 'restore',\n update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n ecModel.resetOption('recreate');\n});\nvar _default = Restore;\nmodule.exports = _default;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABIBAMAAACnw650AAAAHlBMVEUAAAD/zTL/zzL/zTP/0DX/zzL/zjX/zTX/zTP/zTJafra0AAAACXRSTlMAZn/mKKM/XPCVNvoHAAAAuElEQVRIx2MY9sBREAk4MDCwIPNFoIokZyIBAQYGRmT+xIFSNBXqSlGYokCoQCRCEZzFCFMkAJMaUEVJSkoJyIrYlJTUMBRpzpypgKyIaebMSUNCEQ7fDfJowZeeBnFGIJCDRwLAFQQFQCmChZgBOBXQTxHhRNcJVEQw+VrSW1EjLCNgZnOEIhDALDAGUlEhNCPgUwQH6L4jpAgMSFdUCE2Z1I87RHrCpwgOBo0iLDnYARZOI6AQAwAw7cBN/KNxFQAAAABJRU5ErkJggg==\"","var _core = require(\"./core\");\n\nvar createElement = _core.createElement;\n\nvar util = require(\"../core/util\");\n\nvar logError = require(\"../core/log\");\n\nvar Path = require(\"../graphic/Path\");\n\nvar ZImage = require(\"../graphic/Image\");\n\nvar ZText = require(\"../graphic/Text\");\n\nvar arrayDiff = require(\"../core/arrayDiff2\");\n\nvar GradientManager = require(\"./helper/GradientManager\");\n\nvar ClippathManager = require(\"./helper/ClippathManager\");\n\nvar ShadowManager = require(\"./helper/ShadowManager\");\n\nvar _graphic = require(\"./graphic\");\n\nvar svgPath = _graphic.path;\nvar svgImage = _graphic.image;\nvar svgText = _graphic.text;\n\n/**\n * SVG Painter\n * @module zrender/svg/Painter\n */\nfunction parseInt10(val) {\n return parseInt(val, 10);\n}\n\nfunction getSvgProxy(el) {\n if (el instanceof Path) {\n return svgPath;\n } else if (el instanceof ZImage) {\n return svgImage;\n } else if (el instanceof ZText) {\n return svgText;\n } else {\n return svgPath;\n }\n}\n\nfunction checkParentAvailable(parent, child) {\n return child && parent && child.parentNode !== parent;\n}\n\nfunction insertAfter(parent, child, prevSibling) {\n if (checkParentAvailable(parent, child) && prevSibling) {\n var nextSibling = prevSibling.nextSibling;\n nextSibling ? parent.insertBefore(child, nextSibling) : parent.appendChild(child);\n }\n}\n\nfunction prepend(parent, child) {\n if (checkParentAvailable(parent, child)) {\n var firstChild = parent.firstChild;\n firstChild ? parent.insertBefore(child, firstChild) : parent.appendChild(child);\n }\n} // function append(parent, child) {\n// if (checkParentAvailable(parent, child)) {\n// parent.appendChild(child);\n// }\n// }\n\n\nfunction remove(parent, child) {\n if (child && parent && child.parentNode === parent) {\n parent.removeChild(child);\n }\n}\n\nfunction getTextSvgElement(displayable) {\n return displayable.__textSvgEl;\n}\n\nfunction getSvgElement(displayable) {\n return displayable.__svgEl;\n}\n/**\n * @alias module:zrender/svg/Painter\n * @constructor\n * @param {HTMLElement} root 绘图容器\n * @param {module:zrender/Storage} storage\n * @param {Object} opts\n */\n\n\nvar SVGPainter = function (root, storage, opts, zrId) {\n this.root = root;\n this.storage = storage;\n this._opts = opts = util.extend({}, opts || {});\n var svgDom = createElement('svg');\n svgDom.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svgDom.setAttribute('version', '1.1');\n svgDom.setAttribute('baseProfile', 'full');\n svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\n var bgRoot = createElement('g');\n svgDom.appendChild(bgRoot);\n var svgRoot = createElement('g');\n svgDom.appendChild(svgRoot);\n this.gradientManager = new GradientManager(zrId, svgRoot);\n this.clipPathManager = new ClippathManager(zrId, svgRoot);\n this.shadowManager = new ShadowManager(zrId, svgRoot);\n var viewport = document.createElement('div');\n viewport.style.cssText = 'overflow:hidden;position:relative';\n this._svgDom = svgDom;\n this._svgRoot = svgRoot;\n this._backgroundRoot = bgRoot;\n this._viewport = viewport;\n root.appendChild(viewport);\n viewport.appendChild(svgDom);\n this.resize(opts.width, opts.height);\n this._visibleList = [];\n};\n\nSVGPainter.prototype = {\n constructor: SVGPainter,\n getType: function () {\n return 'svg';\n },\n getViewportRoot: function () {\n return this._viewport;\n },\n getSvgDom: function () {\n return this._svgDom;\n },\n getSvgRoot: function () {\n return this._svgRoot;\n },\n getViewportRootOffset: function () {\n var viewportRoot = this.getViewportRoot();\n\n if (viewportRoot) {\n return {\n offsetLeft: viewportRoot.offsetLeft || 0,\n offsetTop: viewportRoot.offsetTop || 0\n };\n }\n },\n refresh: function () {\n var list = this.storage.getDisplayList(true);\n\n this._paintList(list);\n },\n setBackgroundColor: function (backgroundColor) {\n // TODO gradient\n // Insert a bg rect instead of setting background to viewport.\n // Otherwise, the exported SVG don't have background.\n if (this._backgroundRoot && this._backgroundNode) {\n this._backgroundRoot.removeChild(this._backgroundNode);\n }\n\n var bgNode = createElement('rect');\n bgNode.setAttribute('width', this.getWidth());\n bgNode.setAttribute('height', this.getHeight());\n bgNode.setAttribute('x', 0);\n bgNode.setAttribute('y', 0);\n bgNode.setAttribute('id', 0);\n bgNode.style.fill = backgroundColor;\n\n this._backgroundRoot.appendChild(bgNode);\n\n this._backgroundNode = bgNode;\n },\n _paintList: function (list) {\n this.gradientManager.markAllUnused();\n this.clipPathManager.markAllUnused();\n this.shadowManager.markAllUnused();\n var svgRoot = this._svgRoot;\n var visibleList = this._visibleList;\n var listLen = list.length;\n var newVisibleList = [];\n var i;\n\n for (i = 0; i < listLen; i++) {\n var displayable = list[i];\n var svgProxy = getSvgProxy(displayable);\n var svgElement = getSvgElement(displayable) || getTextSvgElement(displayable);\n\n if (!displayable.invisible) {\n if (displayable.__dirty) {\n svgProxy && svgProxy.brush(displayable); // Update clipPath\n\n this.clipPathManager.update(displayable); // Update gradient and shadow\n\n if (displayable.style) {\n this.gradientManager.update(displayable.style.fill);\n this.gradientManager.update(displayable.style.stroke);\n this.shadowManager.update(svgElement, displayable);\n }\n\n displayable.__dirty = false;\n }\n\n newVisibleList.push(displayable);\n }\n }\n\n var diff = arrayDiff(visibleList, newVisibleList);\n var prevSvgElement; // First do remove, in case element moved to the head and do remove\n // after add\n\n for (i = 0; i < diff.length; i++) {\n var item = diff[i];\n\n if (item.removed) {\n for (var k = 0; k < item.count; k++) {\n var displayable = visibleList[item.indices[k]];\n var svgElement = getSvgElement(displayable);\n var textSvgElement = getTextSvgElement(displayable);\n remove(svgRoot, svgElement);\n remove(svgRoot, textSvgElement);\n }\n }\n }\n\n for (i = 0; i < diff.length; i++) {\n var item = diff[i];\n\n if (item.added) {\n for (var k = 0; k < item.count; k++) {\n var displayable = newVisibleList[item.indices[k]];\n var svgElement = getSvgElement(displayable);\n var textSvgElement = getTextSvgElement(displayable);\n prevSvgElement ? insertAfter(svgRoot, svgElement, prevSvgElement) : prepend(svgRoot, svgElement);\n\n if (svgElement) {\n insertAfter(svgRoot, textSvgElement, svgElement);\n } else if (prevSvgElement) {\n insertAfter(svgRoot, textSvgElement, prevSvgElement);\n } else {\n prepend(svgRoot, textSvgElement);\n } // Insert text\n\n\n insertAfter(svgRoot, textSvgElement, svgElement);\n prevSvgElement = textSvgElement || svgElement || prevSvgElement; // zrender.Text only create textSvgElement.\n\n this.gradientManager.addWithoutUpdate(svgElement || textSvgElement, displayable);\n this.shadowManager.addWithoutUpdate(svgElement || textSvgElement, displayable);\n this.clipPathManager.markUsed(displayable);\n }\n } else if (!item.removed) {\n for (var k = 0; k < item.count; k++) {\n var displayable = newVisibleList[item.indices[k]];\n var svgElement = getSvgElement(displayable);\n var textSvgElement = getTextSvgElement(displayable);\n var svgElement = getSvgElement(displayable);\n var textSvgElement = getTextSvgElement(displayable);\n this.gradientManager.markUsed(displayable);\n this.gradientManager.addWithoutUpdate(svgElement || textSvgElement, displayable);\n this.shadowManager.markUsed(displayable);\n this.shadowManager.addWithoutUpdate(svgElement || textSvgElement, displayable);\n this.clipPathManager.markUsed(displayable);\n\n if (textSvgElement) {\n // Insert text.\n insertAfter(svgRoot, textSvgElement, svgElement);\n }\n\n prevSvgElement = svgElement || textSvgElement || prevSvgElement;\n }\n }\n }\n\n this.gradientManager.removeUnused();\n this.clipPathManager.removeUnused();\n this.shadowManager.removeUnused();\n this._visibleList = newVisibleList;\n },\n _getDefs: function (isForceCreating) {\n var svgRoot = this._svgDom;\n var defs = svgRoot.getElementsByTagName('defs');\n\n if (defs.length === 0) {\n // Not exist\n if (isForceCreating) {\n var defs = svgRoot.insertBefore(createElement('defs'), // Create new tag\n svgRoot.firstChild // Insert in the front of svg\n );\n\n if (!defs.contains) {\n // IE doesn't support contains method\n defs.contains = function (el) {\n var children = defs.children;\n\n if (!children) {\n return false;\n }\n\n for (var i = children.length - 1; i >= 0; --i) {\n if (children[i] === el) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n return defs;\n } else {\n return null;\n }\n } else {\n return defs[0];\n }\n },\n resize: function (width, height) {\n var viewport = this._viewport; // FIXME Why ?\n\n viewport.style.display = 'none'; // Save input w/h\n\n var opts = this._opts;\n width != null && (opts.width = width);\n height != null && (opts.height = height);\n width = this._getSize(0);\n height = this._getSize(1);\n viewport.style.display = '';\n\n if (this._width !== width || this._height !== height) {\n this._width = width;\n this._height = height;\n var viewportStyle = viewport.style;\n viewportStyle.width = width + 'px';\n viewportStyle.height = height + 'px';\n var svgRoot = this._svgDom; // Set width by 'svgRoot.width = width' is invalid\n\n svgRoot.setAttribute('width', width);\n svgRoot.setAttribute('height', height);\n }\n\n if (this._backgroundNode) {\n this._backgroundNode.setAttribute('width', width);\n\n this._backgroundNode.setAttribute('height', height);\n }\n },\n\n /**\n * 获取绘图区域宽度\n */\n getWidth: function () {\n return this._width;\n },\n\n /**\n * 获取绘图区域高度\n */\n getHeight: function () {\n return this._height;\n },\n _getSize: function (whIdx) {\n var opts = this._opts;\n var wh = ['width', 'height'][whIdx];\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\n\n if (opts[wh] != null && opts[wh] !== 'auto') {\n return parseFloat(opts[wh]);\n }\n\n var root = this.root; // IE8 does not support getComputedStyle, but it use VML.\n\n var stl = document.defaultView.getComputedStyle(root);\n return (root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh])) - (parseInt10(stl[plt]) || 0) - (parseInt10(stl[prb]) || 0) | 0;\n },\n dispose: function () {\n this.root.innerHTML = '';\n this._svgRoot = this._backgroundRoot = this._svgDom = this._backgroundNode = this._viewport = this.storage = null;\n },\n clear: function () {\n if (this._viewport) {\n this.root.removeChild(this._viewport);\n }\n },\n toDataURL: function () {\n this.refresh();\n var html = encodeURIComponent(this._svgDom.outerHTML.replace(/>\\n\\r<'));\n return 'data:image/svg+xml;charset=UTF-8,' + html;\n }\n}; // Not supported methods\n\nfunction createMethodNotSupport(method) {\n return function () {\n logError('In SVG mode painter not support method \"' + method + '\"');\n };\n} // Unsuppoted methods\n\n\nutil.each(['getLayer', 'insertLayer', 'eachLayer', 'eachBuiltinLayer', 'eachOtherLayer', 'getLayers', 'modLayer', 'delLayer', 'clearLayer', 'pathToImage'], function (name) {\n SVGPainter.prototype[name] = createMethodNotSupport(name);\n});\nvar _default = SVGPainter;\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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// Update common properties\nvar NORMAL_ITEM_STYLE_PATH = ['itemStyle'];\nvar EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];\nvar BoxplotView = ChartView.extend({\n type: 'boxplot',\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var group = this.group;\n var oldData = this._data; // 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 var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var itemLayout = data.getItemLayout(newIdx);\n var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\n data.setItemGraphicEl(newIdx, symbolEl);\n group.add(symbolEl);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n if (!data.hasValue(newIdx)) {\n group.remove(symbolEl);\n return;\n }\n\n var itemLayout = data.getItemLayout(newIdx);\n\n if (!symbolEl) {\n symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\n } else {\n updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\n }\n\n group.add(symbolEl);\n data.setItemGraphicEl(newIdx, symbolEl);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n },\n remove: function (ecModel) {\n var group = this.group;\n var data = this._data;\n this._data = null;\n data && data.eachItemGraphicEl(function (el) {\n el && group.remove(el);\n });\n },\n dispose: zrUtil.noop\n});\nvar BoxPath = Path.extend({\n type: 'boxplotBoxPath',\n shape: {},\n buildPath: function (ctx, shape) {\n var ends = shape.points;\n var i = 0;\n ctx.moveTo(ends[i][0], ends[i][1]);\n i++;\n\n for (; i < 4; i++) {\n ctx.lineTo(ends[i][0], ends[i][1]);\n }\n\n ctx.closePath();\n\n for (; i < ends.length; i++) {\n ctx.moveTo(ends[i][0], ends[i][1]);\n i++;\n ctx.lineTo(ends[i][0], ends[i][1]);\n }\n }\n});\n\nfunction createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\n var ends = itemLayout.ends;\n var el = new BoxPath({\n shape: {\n points: isInit ? transInit(ends, constDim, itemLayout) : ends\n }\n });\n updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\n return el;\n}\n\nfunction updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\n var seriesModel = data.hostModel;\n var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\n updateMethod(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, dataIndex);\n var itemModel = data.getItemModel(dataIndex);\n var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);\n var borderColor = data.getItemVisual(dataIndex, 'color'); // Exclude borderColor.\n\n var itemStyle = normalItemStyleModel.getItemStyle(['borderColor']);\n itemStyle.stroke = borderColor;\n itemStyle.strokeNoScale = true;\n el.useStyle(itemStyle);\n el.z2 = 100;\n var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();\n graphic.setHoverStyle(el, hoverStyle);\n}\n\nfunction transInit(points, dim, itemLayout) {\n return zrUtil.map(points, function (point) {\n point = point.slice();\n point[dim] = itemLayout.initBaseline;\n return point;\n });\n}\n\nvar _default = BoxplotView;\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(\"./dataZoom/typeDefaulter\");\n\nrequire(\"./dataZoom/DataZoomModel\");\n\nrequire(\"./dataZoom/DataZoomView\");\n\nrequire(\"./dataZoom/SelectZoomModel\");\n\nrequire(\"./dataZoom/SelectZoomView\");\n\nrequire(\"./dataZoom/dataZoomProcessor\");\n\nrequire(\"./dataZoom/dataZoomAction\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 TimelineModel = require(\"./TimelineModel\");\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 SliderTimelineModel = TimelineModel.extend({\n type: 'timeline.slider',\n\n /**\n * @protected\n */\n defaultOption: {\n backgroundColor: 'rgba(0,0,0,0)',\n // 时间轴背景颜色\n borderColor: '#ccc',\n // 时间轴边框颜色\n borderWidth: 0,\n // 时间轴边框线宽,单位px,默认为0(无边框)\n orient: 'horizontal',\n // 'vertical'\n inverse: false,\n tooltip: {\n // boolean or Object\n trigger: 'item' // data item may also have tootip attr.\n\n },\n symbol: 'emptyCircle',\n symbolSize: 10,\n lineStyle: {\n show: true,\n width: 2,\n color: '#304654'\n },\n label: {\n // 文本标签\n position: 'auto',\n // auto left right top bottom\n // When using number, label position is not\n // restricted by viewRect.\n // positive: right/bottom, negative: left/top\n show: true,\n interval: 'auto',\n rotate: 0,\n // formatter: null,\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: '#304654'\n },\n itemStyle: {\n color: '#304654',\n borderWidth: 1\n },\n checkpointStyle: {\n symbol: 'circle',\n symbolSize: 13,\n color: '#c23531',\n borderWidth: 5,\n borderColor: 'rgba(194,53,49, 0.5)',\n animation: true,\n animationDuration: 300,\n animationEasing: 'quinticInOut'\n },\n controlStyle: {\n show: true,\n showPlayBtn: true,\n showPrevBtn: true,\n showNextBtn: true,\n itemSize: 22,\n itemGap: 12,\n position: 'left',\n // 'left' 'right' 'top' 'bottom'\n playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z',\n // jshint ignore:line\n stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z',\n // jshint ignore:line\n nextIcon: 'path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z',\n // jshint ignore:line\n prevIcon: 'path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z',\n // jshint ignore:line\n color: '#304654',\n borderColor: '#304654',\n borderWidth: 1\n },\n emphasis: {\n label: {\n show: true,\n // 其余属性默认使用全局文本样式,详见TEXTSTYLE\n color: '#c23531'\n },\n itemStyle: {\n color: '#c23531'\n },\n controlStyle: {\n color: '#c23531',\n borderColor: '#c23531',\n borderWidth: 2\n }\n },\n data: []\n }\n});\nzrUtil.mixin(SliderTimelineModel, dataFormatMixin);\nvar _default = SliderTimelineModel;\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 normalize(a) {\n if (!(a instanceof Array)) {\n a = [a, a];\n }\n\n return a;\n}\n\nfunction _default(ecModel) {\n ecModel.eachSeriesByType('graph', function (seriesModel) {\n var graph = seriesModel.getGraph();\n var edgeData = seriesModel.getEdgeData();\n var symbolType = normalize(seriesModel.get('edgeSymbol'));\n var symbolSize = normalize(seriesModel.get('edgeSymbolSize'));\n var colorQuery = 'lineStyle.color'.split('.');\n var opacityQuery = 'lineStyle.opacity'.split('.');\n edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\n edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\n edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n edgeData.setVisual('color', seriesModel.get(colorQuery));\n edgeData.setVisual('opacity', seriesModel.get(opacityQuery));\n edgeData.each(function (idx) {\n var itemModel = edgeData.getItemModel(idx);\n var edge = graph.getEdgeByIndex(idx);\n var symbolType = normalize(itemModel.getShallow('symbol', true));\n var symbolSize = normalize(itemModel.getShallow('symbolSize', true)); // Edge visual must after node visual\n\n var color = itemModel.get(colorQuery);\n var opacity = itemModel.get(opacityQuery);\n\n switch (color) {\n case 'source':\n color = edge.node1.getVisual('color');\n break;\n\n case 'target':\n color = edge.node2.getVisual('color');\n break;\n }\n\n symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\n symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\n symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\n symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\n edge.setVisual('color', color);\n edge.setVisual('opacity', opacity);\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 ComponentModel = require(\"../../model/Component\");\n\nvar makeStyleMapper = require(\"../../model/mixin/makeStyleMapper\");\n\nvar axisModelCreator = require(\"../axisModelCreator\");\n\nvar numberUtil = require(\"../../util/number\");\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 AxisModel = ComponentModel.extend({\n type: 'baseParallelAxis',\n\n /**\n * @type {module:echarts/coord/parallel/Axis}\n */\n axis: null,\n\n /**\n * @type {Array.}\n * @readOnly\n */\n activeIntervals: [],\n\n /**\n * @return {Object}\n */\n getAreaSelectStyle: function () {\n return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity']])(this.getModel('areaSelectStyle'));\n },\n\n /**\n * The code of this feature is put on AxisModel but not ParallelAxis,\n * because axisModel can be alive after echarts updating but instance of\n * ParallelAxis having been disposed. this._activeInterval should be kept\n * when action dispatched (i.e. legend click).\n *\n * @param {Array.>} intervals interval.length === 0\n * means set all active.\n * @public\n */\n setActiveIntervals: function (intervals) {\n var activeIntervals = this.activeIntervals = zrUtil.clone(intervals); // Normalize\n\n if (activeIntervals) {\n for (var i = activeIntervals.length - 1; i >= 0; i--) {\n numberUtil.asc(activeIntervals[i]);\n }\n }\n },\n\n /**\n * @param {number|string} [value] When attempting to detect 'no activeIntervals set',\n * value can not be input.\n * @return {string} 'normal': no activeIntervals set,\n * 'active',\n * 'inactive'.\n * @public\n */\n getActiveState: function (value) {\n var activeIntervals = this.activeIntervals;\n\n if (!activeIntervals.length) {\n return 'normal';\n }\n\n if (value == null || isNaN(value)) {\n return 'inactive';\n } // Simple optimization\n\n\n if (activeIntervals.length === 1) {\n var interval = activeIntervals[0];\n\n if (interval[0] <= value && value <= interval[1]) {\n return 'active';\n }\n } else {\n for (var i = 0, len = activeIntervals.length; i < len; i++) {\n if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\n return 'active';\n }\n }\n }\n\n return 'inactive';\n }\n});\nvar defaultOption = {\n type: 'value',\n\n /**\n * @type {Array.}\n */\n dim: null,\n // 0, 1, 2, ...\n // parallelIndex: null,\n areaSelectStyle: {\n width: 20,\n borderWidth: 1,\n borderColor: 'rgba(160,197,232)',\n color: 'rgba(160,197,232)',\n opacity: 0.3\n },\n realtime: true,\n // Whether realtime update view when select.\n z: 10\n};\nzrUtil.merge(AxisModel.prototype, axisModelCommonMixin);\n\nfunction getAxisType(axisName, option) {\n return option.type || (option.data ? 'category' : 'value');\n}\n\naxisModelCreator('parallel', AxisModel, getAxisType, defaultOption);\nvar _default = AxisModel;\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 graphicUtil = require(\"../util/graphic\");\n\nvar _labelHelper = require(\"./helper/labelHelper\");\n\nvar getDefaultLabel = _labelHelper.getDefaultLabel;\n\nvar createListFromArray = require(\"./helper/createListFromArray\");\n\nvar _barGrid = require(\"../layout/barGrid\");\n\nvar getLayoutOnAxis = _barGrid.getLayoutOnAxis;\n\nvar DataDiffer = require(\"../data/DataDiffer\");\n\nvar SeriesModel = require(\"../model/Series\");\n\nvar Model = require(\"../model/Model\");\n\nvar ChartView = require(\"../view/Chart\");\n\nvar _createClipPathFromCoordSys = require(\"./helper/createClipPathFromCoordSys\");\n\nvar createClipPath = _createClipPathFromCoordSys.createClipPath;\n\nvar prepareCartesian2d = require(\"../coord/cartesian/prepareCustom\");\n\nvar prepareGeo = require(\"../coord/geo/prepareCustom\");\n\nvar prepareSingleAxis = require(\"../coord/single/prepareCustom\");\n\nvar preparePolar = require(\"../coord/polar/prepareCustom\");\n\nvar prepareCalendar = require(\"../coord/calendar/prepareCustom\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 CACHED_LABEL_STYLE_PROPERTIES = graphicUtil.CACHED_LABEL_STYLE_PROPERTIES;\nvar ITEM_STYLE_NORMAL_PATH = ['itemStyle'];\nvar ITEM_STYLE_EMPHASIS_PATH = ['emphasis', 'itemStyle'];\nvar LABEL_NORMAL = ['label'];\nvar LABEL_EMPHASIS = ['emphasis', 'label']; // Use prefix to avoid index to be the same as el.name,\n// which will cause weird udpate animation.\n\nvar GROUP_DIFF_PREFIX = 'e\\0\\0';\n/**\n * To reduce total package size of each coordinate systems, the modules `prepareCustom`\n * of each coordinate systems are not required by each coordinate systems directly, but\n * required by the module `custom`.\n *\n * prepareInfoForCustomSeries {Function}: optional\n * @return {Object} {coordSys: {...}, api: {\n * coord: function (data, clamp) {}, // return point in global.\n * size: function (dataSize, dataItem) {} // return size of each axis in coordSys.\n * }}\n */\n\nvar prepareCustoms = {\n cartesian2d: prepareCartesian2d,\n geo: prepareGeo,\n singleAxis: prepareSingleAxis,\n polar: preparePolar,\n calendar: prepareCalendar\n}; // ------\n// Model\n// ------\n\nSeriesModel.extend({\n type: 'series.custom',\n dependencies: ['grid', 'polar', 'geo', 'singleAxis', 'calendar'],\n defaultOption: {\n coordinateSystem: 'cartesian2d',\n // Can be set as 'none'\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n useTransform: true,\n // Custom series will not clip by default.\n // Some case will use custom series to draw label\n // For example https://echarts.apache.org/examples/en/editor.html?c=custom-gantt-flight\n // Only works on polar and cartesian2d coordinate system.\n clip: false // Cartesian coordinate system\n // xAxisIndex: 0,\n // yAxisIndex: 0,\n // Polar coordinate system\n // polarIndex: 0,\n // Geo coordinate system\n // geoIndex: 0,\n // label: {}\n // itemStyle: {}\n\n },\n\n /**\n * @override\n */\n getInitialData: function (option, ecModel) {\n return createListFromArray(this.getSource(), this);\n },\n\n /**\n * @override\n */\n getDataParams: function (dataIndex, dataType, el) {\n var params = SeriesModel.prototype.getDataParams.apply(this, arguments);\n el && (params.info = el.info);\n return params;\n }\n}); // -----\n// View\n// -----\n\nChartView.extend({\n type: 'custom',\n\n /**\n * @private\n * @type {module:echarts/data/List}\n */\n _data: null,\n\n /**\n * @override\n */\n render: function (customSeries, ecModel, api, payload) {\n var oldData = this._data;\n var data = customSeries.getData();\n var group = this.group;\n var renderItem = makeRenderItem(customSeries, data, ecModel, api); // By default, merge mode is applied. In most cases, custom series is\n // used in the scenario that data amount is not large but graphic elements\n // is complicated, where merge mode is probably necessary for optimization.\n // For example, reuse graphic elements and only update the transform when\n // roam or data zoom according to `actionType`.\n\n data.diff(oldData).add(function (newIdx) {\n createOrUpdate(null, newIdx, renderItem(newIdx, payload), customSeries, group, data);\n }).update(function (newIdx, oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n createOrUpdate(el, newIdx, renderItem(newIdx, payload), customSeries, group, data);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute(); // Do clipping\n\n var clipPath = customSeries.get('clip', true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null;\n\n if (clipPath) {\n group.setClipPath(clipPath);\n } else {\n group.removeClipPath();\n }\n\n this._data = data;\n },\n incrementalPrepareRender: function (customSeries, ecModel, api) {\n this.group.removeAll();\n this._data = null;\n },\n incrementalRender: function (params, customSeries, ecModel, api, payload) {\n var data = customSeries.getData();\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n\n function setIncrementalAndHoverLayer(el) {\n if (!el.isGroup) {\n el.incremental = true;\n el.useHoverLayer = true;\n }\n }\n\n for (var idx = params.start; idx < params.end; idx++) {\n var el = createOrUpdate(null, idx, renderItem(idx, payload), customSeries, this.group, data);\n el.traverse(setIncrementalAndHoverLayer);\n }\n },\n\n /**\n * @override\n */\n dispose: zrUtil.noop,\n\n /**\n * @override\n */\n filterForExposedEvent: function (eventType, query, targetEl, packedEvent) {\n var elementName = query.element;\n\n if (elementName == null || targetEl.name === elementName) {\n return true;\n } // Enable to give a name on a group made by `renderItem`, and listen\n // events that triggerd by its descendents.\n\n\n while ((targetEl = targetEl.parent) && targetEl !== this.group) {\n if (targetEl.name === elementName) {\n return true;\n }\n }\n\n return false;\n }\n});\n\nfunction createEl(elOption) {\n var graphicType = elOption.type;\n var el; // Those graphic elements are not shapes. They should not be\n // overwritten by users, so do them first.\n\n if (graphicType === 'path') {\n var shape = elOption.shape; // Using pathRect brings convenience to users sacle svg path.\n\n var pathRect = shape.width != null && shape.height != null ? {\n x: shape.x || 0,\n y: shape.y || 0,\n width: shape.width,\n height: shape.height\n } : null;\n var pathData = getPathData(shape); // Path is also used for icon, so layout 'center' by default.\n\n el = graphicUtil.makePath(pathData, null, pathRect, shape.layout || 'center');\n el.__customPathData = pathData;\n } else if (graphicType === 'image') {\n el = new graphicUtil.Image({});\n el.__customImagePath = elOption.style.image;\n } else if (graphicType === 'text') {\n el = new graphicUtil.Text({});\n el.__customText = elOption.style.text;\n } else if (graphicType === 'group') {\n el = new graphicUtil.Group();\n } else if (graphicType === 'compoundPath') {\n throw new Error('\"compoundPath\" is not supported yet.');\n } else {\n var Clz = graphicUtil.getShapeClass(graphicType);\n el = new Clz();\n }\n\n el.__customGraphicType = graphicType;\n el.name = elOption.name;\n return el;\n}\n\nfunction updateEl(el, dataIndex, elOption, animatableModel, data, isInit, isRoot) {\n var transitionProps = {};\n var elOptionStyle = elOption.style || {};\n elOption.shape && (transitionProps.shape = zrUtil.clone(elOption.shape));\n elOption.position && (transitionProps.position = elOption.position.slice());\n elOption.scale && (transitionProps.scale = elOption.scale.slice());\n elOption.origin && (transitionProps.origin = elOption.origin.slice());\n elOption.rotation && (transitionProps.rotation = elOption.rotation);\n\n if (el.type === 'image' && elOption.style) {\n var targetStyle = transitionProps.style = {};\n zrUtil.each(['x', 'y', 'width', 'height'], function (prop) {\n prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit);\n });\n }\n\n if (el.type === 'text' && elOption.style) {\n var targetStyle = transitionProps.style = {};\n zrUtil.each(['x', 'y'], function (prop) {\n prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit);\n }); // Compatible with previous: both support\n // textFill and fill, textStroke and stroke in 'text' element.\n\n !elOptionStyle.hasOwnProperty('textFill') && elOptionStyle.fill && (elOptionStyle.textFill = elOptionStyle.fill);\n !elOptionStyle.hasOwnProperty('textStroke') && elOptionStyle.stroke && (elOptionStyle.textStroke = elOptionStyle.stroke);\n }\n\n if (el.type !== 'group') {\n el.useStyle(elOptionStyle); // Init animation.\n\n if (isInit) {\n el.style.opacity = 0;\n var targetOpacity = elOptionStyle.opacity;\n targetOpacity == null && (targetOpacity = 1);\n graphicUtil.initProps(el, {\n style: {\n opacity: targetOpacity\n }\n }, animatableModel, dataIndex);\n }\n }\n\n if (isInit) {\n el.attr(transitionProps);\n } else {\n graphicUtil.updateProps(el, transitionProps, animatableModel, dataIndex);\n } // Merge by default.\n // z2 must not be null/undefined, otherwise sort error may occur.\n\n\n elOption.hasOwnProperty('z2') && el.attr('z2', elOption.z2 || 0);\n elOption.hasOwnProperty('silent') && el.attr('silent', elOption.silent);\n elOption.hasOwnProperty('invisible') && el.attr('invisible', elOption.invisible);\n elOption.hasOwnProperty('ignore') && el.attr('ignore', elOption.ignore); // `elOption.info` enables user to mount some info on\n // elements and use them in event handlers.\n // Update them only when user specified, otherwise, remain.\n\n elOption.hasOwnProperty('info') && el.attr('info', elOption.info); // If `elOption.styleEmphasis` is `false`, remove hover style. The\n // logic is ensured by `graphicUtil.setElementHoverStyle`.\n\n var styleEmphasis = elOption.styleEmphasis; // hoverStyle should always be set here, because if the hover style\n // may already be changed, where the inner cache should be reset.\n\n graphicUtil.setElementHoverStyle(el, styleEmphasis);\n\n if (isRoot) {\n graphicUtil.setAsHighDownDispatcher(el, styleEmphasis !== false);\n }\n}\n\nfunction prepareStyleTransition(prop, targetStyle, elOptionStyle, oldElStyle, isInit) {\n if (elOptionStyle[prop] != null && !isInit) {\n targetStyle[prop] = elOptionStyle[prop];\n elOptionStyle[prop] = oldElStyle[prop];\n }\n}\n\nfunction makeRenderItem(customSeries, data, ecModel, api) {\n var renderItem = customSeries.get('renderItem');\n var coordSys = customSeries.coordinateSystem;\n var prepareResult = {};\n\n if (coordSys) {\n prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms() : prepareCustoms[coordSys.type](coordSys);\n }\n\n var userAPI = zrUtil.defaults({\n getWidth: api.getWidth,\n getHeight: api.getHeight,\n getZr: api.getZr,\n getDevicePixelRatio: api.getDevicePixelRatio,\n value: value,\n style: style,\n styleEmphasis: styleEmphasis,\n visual: visual,\n barLayout: barLayout,\n currentSeriesIndices: currentSeriesIndices,\n font: font\n }, prepareResult.api || {});\n var userParams = {\n // The life cycle of context: current round of rendering.\n // The global life cycle is probably not necessary, because\n // user can store global status by themselves.\n context: {},\n seriesId: customSeries.id,\n seriesName: customSeries.name,\n seriesIndex: customSeries.seriesIndex,\n coordSys: prepareResult.coordSys,\n dataInsideLength: data.count(),\n encode: wrapEncodeDef(customSeries.getData())\n }; // Do not support call `api` asynchronously without dataIndexInside input.\n\n var currDataIndexInside;\n var currDirty = true;\n var currItemModel;\n var currLabelNormalModel;\n var currLabelEmphasisModel;\n var currVisualColor;\n return function (dataIndexInside, payload) {\n currDataIndexInside = dataIndexInside;\n currDirty = true;\n return renderItem && renderItem(zrUtil.defaults({\n dataIndexInside: dataIndexInside,\n dataIndex: data.getRawIndex(dataIndexInside),\n // Can be used for optimization when zoom or roam.\n actionType: payload ? payload.type : null\n }, userParams), userAPI);\n }; // Do not update cache until api called.\n\n function updateCache(dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n\n if (currDirty) {\n currItemModel = data.getItemModel(dataIndexInside);\n currLabelNormalModel = currItemModel.getModel(LABEL_NORMAL);\n currLabelEmphasisModel = currItemModel.getModel(LABEL_EMPHASIS);\n currVisualColor = data.getItemVisual(dataIndexInside, 'color');\n currDirty = false;\n }\n }\n /**\n * @public\n * @param {number|string} dim\n * @param {number} [dataIndexInside=currDataIndexInside]\n * @return {number|string} value\n */\n\n\n function value(dim, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n return data.get(data.getDimension(dim || 0), dataIndexInside);\n }\n /**\n * By default, `visual` is applied to style (to support visualMap).\n * `visual.color` is applied at `fill`. If user want apply visual.color on `stroke`,\n * it can be implemented as:\n * `api.style({stroke: api.visual('color'), fill: null})`;\n * @public\n * @param {Object} [extra]\n * @param {number} [dataIndexInside=currDataIndexInside]\n */\n\n\n function style(extra, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n updateCache(dataIndexInside);\n var itemStyle = currItemModel.getModel(ITEM_STYLE_NORMAL_PATH).getItemStyle();\n currVisualColor != null && (itemStyle.fill = currVisualColor);\n var opacity = data.getItemVisual(dataIndexInside, 'opacity');\n opacity != null && (itemStyle.opacity = opacity);\n var labelModel = extra ? applyExtraBefore(extra, currLabelNormalModel) : currLabelNormalModel;\n graphicUtil.setTextStyle(itemStyle, labelModel, null, {\n autoColor: currVisualColor,\n isRectText: true\n });\n itemStyle.text = labelModel.getShallow('show') ? zrUtil.retrieve2(customSeries.getFormattedLabel(dataIndexInside, 'normal'), getDefaultLabel(data, dataIndexInside)) : null;\n extra && applyExtraAfter(itemStyle, extra);\n return itemStyle;\n }\n /**\n * @public\n * @param {Object} [extra]\n * @param {number} [dataIndexInside=currDataIndexInside]\n */\n\n\n function styleEmphasis(extra, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n updateCache(dataIndexInside);\n var itemStyle = currItemModel.getModel(ITEM_STYLE_EMPHASIS_PATH).getItemStyle();\n var labelModel = extra ? applyExtraBefore(extra, currLabelEmphasisModel) : currLabelEmphasisModel;\n graphicUtil.setTextStyle(itemStyle, labelModel, null, {\n isRectText: true\n }, true);\n itemStyle.text = labelModel.getShallow('show') ? zrUtil.retrieve3(customSeries.getFormattedLabel(dataIndexInside, 'emphasis'), customSeries.getFormattedLabel(dataIndexInside, 'normal'), getDefaultLabel(data, dataIndexInside)) : null;\n extra && applyExtraAfter(itemStyle, extra);\n return itemStyle;\n }\n /**\n * @public\n * @param {string} visualType\n * @param {number} [dataIndexInside=currDataIndexInside]\n */\n\n\n function visual(visualType, dataIndexInside) {\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n return data.getItemVisual(dataIndexInside, visualType);\n }\n /**\n * @public\n * @param {number} opt.count Positive interger.\n * @param {number} [opt.barWidth]\n * @param {number} [opt.barMaxWidth]\n * @param {number} [opt.barMinWidth]\n * @param {number} [opt.barGap]\n * @param {number} [opt.barCategoryGap]\n * @return {Object} {width, offset, offsetCenter} is not support, return undefined.\n */\n\n\n function barLayout(opt) {\n if (coordSys.getBaseAxis) {\n var baseAxis = coordSys.getBaseAxis();\n return getLayoutOnAxis(zrUtil.defaults({\n axis: baseAxis\n }, opt), api);\n }\n }\n /**\n * @public\n * @return {Array.}\n */\n\n\n function currentSeriesIndices() {\n return ecModel.getCurrentSeriesIndices();\n }\n /**\n * @public\n * @param {Object} opt\n * @param {string} [opt.fontStyle]\n * @param {number} [opt.fontWeight]\n * @param {number} [opt.fontSize]\n * @param {string} [opt.fontFamily]\n * @return {string} font string\n */\n\n\n function font(opt) {\n return graphicUtil.getFont(opt, ecModel);\n }\n}\n\nfunction wrapEncodeDef(data) {\n var encodeDef = {};\n zrUtil.each(data.dimensions, function (dimName, dataDimIndex) {\n var dimInfo = data.getDimensionInfo(dimName);\n\n if (!dimInfo.isExtraCoord) {\n var coordDim = dimInfo.coordDim;\n var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\n dataDims[dimInfo.coordDimIndex] = dataDimIndex;\n }\n });\n return encodeDef;\n}\n\nfunction createOrUpdate(el, dataIndex, elOption, animatableModel, group, data) {\n el = doCreateOrUpdate(el, dataIndex, elOption, animatableModel, group, data, true);\n el && data.setItemGraphicEl(dataIndex, el);\n return el;\n}\n\nfunction doCreateOrUpdate(el, dataIndex, elOption, animatableModel, group, data, isRoot) {\n // [Rule]\n // By default, follow merge mode.\n // (It probably brings benifit for performance in some cases of large data, where\n // user program can be optimized to that only updated props needed to be re-calculated,\n // or according to `actionType` some calculation can be skipped.)\n // If `renderItem` returns `null`/`undefined`/`false`, remove the previous el if existing.\n // (It seems that violate the \"merge\" principle, but most of users probably intuitively\n // regard \"return;\" as \"show nothing element whatever\", so make a exception to meet the\n // most cases.)\n var simplyRemove = !elOption; // `null`/`undefined`/`false`\n\n elOption = elOption || {};\n var elOptionType = elOption.type;\n var elOptionShape = elOption.shape;\n var elOptionStyle = elOption.style;\n\n if (el && (simplyRemove // || elOption.$merge === false\n // If `elOptionType` is `null`, follow the merge principle.\n || elOptionType != null && elOptionType !== el.__customGraphicType || elOptionType === 'path' && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== el.__customPathData || elOptionType === 'image' && hasOwn(elOptionStyle, 'image') && elOptionStyle.image !== el.__customImagePath // FIXME test and remove this restriction?\n || elOptionType === 'text' && hasOwn(elOptionShape, 'text') && elOptionStyle.text !== el.__customText)) {\n group.remove(el);\n el = null;\n } // `elOption.type` is undefined when `renderItem` returns nothing.\n\n\n if (simplyRemove) {\n return;\n }\n\n var isInit = !el;\n !el && (el = createEl(elOption));\n updateEl(el, dataIndex, elOption, animatableModel, data, isInit, isRoot);\n\n if (elOptionType === 'group') {\n mergeChildren(el, dataIndex, elOption, animatableModel, data);\n } // Always add whatever already added to ensure sequence.\n\n\n group.add(el);\n return el;\n} // Usage:\n// (1) By default, `elOption.$mergeChildren` is `'byIndex'`, which indicates that\n// the existing children will not be removed, and enables the feature that\n// update some of the props of some of the children simply by construct\n// the returned children of `renderItem` like:\n// `var children = group.children = []; children[3] = {opacity: 0.5};`\n// (2) If `elOption.$mergeChildren` is `'byName'`, add/update/remove children\n// by child.name. But that might be lower performance.\n// (3) If `elOption.$mergeChildren` is `false`, the existing children will be\n// replaced totally.\n// (4) If `!elOption.children`, following the \"merge\" principle, nothing will happen.\n//\n// For implementation simpleness, do not provide a direct way to remove sinlge\n// child (otherwise the total indicies of the children array have to be modified).\n// User can remove a single child by set its `ignore` as `true` or replace\n// it by another element, where its `$merge` can be set as `true` if necessary.\n\n\nfunction mergeChildren(el, dataIndex, elOption, animatableModel, data) {\n var newChildren = elOption.children;\n var newLen = newChildren ? newChildren.length : 0;\n var mergeChildren = elOption.$mergeChildren; // `diffChildrenByName` has been deprecated.\n\n var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\n var notMerge = mergeChildren === false; // For better performance on roam update, only enter if necessary.\n\n if (!newLen && !byName && !notMerge) {\n return;\n }\n\n if (byName) {\n diffGroupChildren({\n oldChildren: el.children() || [],\n newChildren: newChildren || [],\n dataIndex: dataIndex,\n animatableModel: animatableModel,\n group: el,\n data: data\n });\n return;\n }\n\n notMerge && el.removeAll(); // Mapping children of a group simply by index, which\n // might be better performance.\n\n var index = 0;\n\n for (; index < newLen; index++) {\n newChildren[index] && doCreateOrUpdate(el.childAt(index), dataIndex, newChildren[index], animatableModel, el, data);\n }\n}\n\nfunction diffGroupChildren(context) {\n new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();\n}\n\nfunction getKey(item, idx) {\n var name = item && item.name;\n return name != null ? name : GROUP_DIFF_PREFIX + idx;\n}\n\nfunction processAddUpdate(newIndex, oldIndex) {\n var context = this.context;\n var childOption = newIndex != null ? context.newChildren[newIndex] : null;\n var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\n doCreateOrUpdate(child, context.dataIndex, childOption, context.animatableModel, context.group, context.data);\n} // `graphic#applyDefaultTextStyle` will cache\n// textFill, textStroke, textStrokeWidth.\n// We have to do this trick.\n\n\nfunction applyExtraBefore(extra, model) {\n var dummyModel = new Model({}, model);\n zrUtil.each(CACHED_LABEL_STYLE_PROPERTIES, function (stylePropName, modelPropName) {\n if (extra.hasOwnProperty(stylePropName)) {\n dummyModel.option[modelPropName] = extra[stylePropName];\n }\n });\n return dummyModel;\n}\n\nfunction applyExtraAfter(itemStyle, extra) {\n for (var key in extra) {\n if (extra.hasOwnProperty(key) || !CACHED_LABEL_STYLE_PROPERTIES.hasOwnProperty(key)) {\n itemStyle[key] = extra[key];\n }\n }\n}\n\nfunction processRemove(oldIndex) {\n var context = this.context;\n var child = context.oldChildren[oldIndex];\n child && context.group.remove(child);\n}\n\nfunction getPathData(shape) {\n // \"d\" follows the SVG convention.\n return shape && (shape.pathData || shape.d);\n}\n\nfunction hasOwnPathData(shape) {\n return shape && (shape.hasOwnProperty('pathData') || shape.hasOwnProperty('d'));\n}\n\nfunction hasOwn(host, prop) {\n return host && host.hasOwnProperty(prop);\n}","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAGAAAAADiNXWtAAAB30lEQVRIDd2VvytFYRjH73X9KmJgYLhKtygZTCYTE6VIBsPFYrIw2swUf4AfZRD/AaNFFhsLV24GSYlBFLmOz/d4X52n3OvQnTz16XmfX+85Pe95n5NI/GsJgqAKxmEbzuARnuASdmD4zw2geBQu4Cc5JmEo9oNIroClyK6nrOegC+qhGfpgHq7Ay4J/CI4eaPS20QSWXcULehYqTELEIFYNevgbSBYhBTl4gO5IeiKBQ22RaPN+EyxhkDsGryDZ+lThmaW+ynDqQH3PZ78CMRfUqmVRyZpSIvpaJOp50baYoohBjdqVB4laFL59ZSRnxK3Xk8nke8Qfa0mNWjRKci+cYhdMIUF955IuEyiXwca6RJL6cu1Z9n14udXwFfl0/ea/PkxfWESnnf/GxHmqLocuVVZrE4xpUFcJ9yDJmDIcU/I6mTHBmAa1E67+xJTg9FfbxYNrFnUm6QeD/AbQhJVMm3Qck6E7CM7Rh259gI71NZFXA3uuTpPVniuOTRdU/9sh7+wjdMk7QTwDypPcQpt5e28Q0PgNDxedBl11SQH0YxmBTqiFVhiEDfADTu2xk9Nv/p0mWTN/BZ6hlGhMr0HTd/vIlywWkJ/CFpQm6wB0QAPcQR72YZeZk0P/Y/kA2+91bJPdqegAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAABUCAYAAACoYebOAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAAqADAAQAAAABAAAAVAAAAABaS4bBAAAAKklEQVQoFWN8/vJzPQMDAxMTkAADTAZMBh/NOGoOvuBhGA0fvMFD1/ABALXrJDryDXELAAAAAElFTkSuQmCC\"","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 _labelHelper = require(\"../helper/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*/\nfunction setLabel(normalStyle, hoverStyle, itemModel, color, seriesModel, dataIndex, labelPositionOutside) {\n var labelModel = itemModel.getModel('label');\n var hoverLabelModel = itemModel.getModel('emphasis.label');\n graphic.setLabelStyle(normalStyle, hoverStyle, labelModel, hoverLabelModel, {\n labelFetcher: seriesModel,\n labelDataIndex: dataIndex,\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n isRectText: true,\n autoColor: color\n });\n fixPosition(normalStyle);\n fixPosition(hoverStyle);\n}\n\nfunction fixPosition(style, labelPositionOutside) {\n if (style.textPosition === 'outside') {\n style.textPosition = labelPositionOutside;\n }\n}\n\nexports.setLabel = setLabel;","var map = {\n\t\"./1_img@3x.png\": \"PtpI\",\n\t\"./2_img@3x.png\": \"mTdr\",\n\t\"./3_img@3x.png\": \"dHmk\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"58Uh\";","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar createListSimply = require(\"../helper/createListSimply\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _dimensionHelper = require(\"../../data/helper/dimensionHelper\");\n\nvar getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis;\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*/\nvar seriesModelMixin = {\n /**\n * @private\n * @type {string}\n */\n _baseAxisDim: null,\n\n /**\n * @override\n */\n getInitialData: function (option, ecModel) {\n // When both types of xAxis and yAxis are 'value', layout is\n // needed to be specified by user. Otherwise, layout can be\n // judged by which axis is category.\n var ordinalMeta;\n var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\n var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\n var xAxisType = xAxisModel.get('type');\n var yAxisType = yAxisModel.get('type');\n var addOrdinal; // FIXME\n // Consider time axis.\n\n if (xAxisType === 'category') {\n option.layout = 'horizontal';\n ordinalMeta = xAxisModel.getOrdinalMeta();\n addOrdinal = true;\n } else if (yAxisType === 'category') {\n option.layout = 'vertical';\n ordinalMeta = yAxisModel.getOrdinalMeta();\n addOrdinal = true;\n } else {\n option.layout = option.layout || 'horizontal';\n }\n\n var coordDims = ['x', 'y'];\n var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\n var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\n var otherAxisDim = coordDims[1 - baseAxisDimIndex];\n var axisModels = [xAxisModel, yAxisModel];\n var baseAxisType = axisModels[baseAxisDimIndex].get('type');\n var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\n var data = option.data; // ??? FIXME make a stage to perform data transfrom.\n // MUST create a new data, consider setOption({}) again.\n\n if (data && addOrdinal) {\n var newOptionData = [];\n zrUtil.each(data, function (item, index) {\n var newItem;\n\n if (item.value && zrUtil.isArray(item.value)) {\n newItem = item.value.slice();\n item.value.unshift(index);\n } else if (zrUtil.isArray(item)) {\n newItem = item.slice();\n item.unshift(index);\n } else {\n newItem = item;\n }\n\n newOptionData.push(newItem);\n });\n option.data = newOptionData;\n }\n\n var defaultValueDimensions = this.defaultValueDimensions;\n var coordDimensions = [{\n name: baseAxisDim,\n type: getDimensionTypeByAxis(baseAxisType),\n ordinalMeta: ordinalMeta,\n otherDims: {\n tooltip: false,\n itemName: 0\n },\n dimsDef: ['base']\n }, {\n name: otherAxisDim,\n type: getDimensionTypeByAxis(otherAxisType),\n dimsDef: defaultValueDimensions.slice()\n }];\n return createListSimply(this, {\n coordDimensions: coordDimensions,\n dimensionsCount: defaultValueDimensions.length + 1,\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)\n });\n },\n\n /**\n * If horizontal, base axis is x, otherwise y.\n * @override\n */\n getBaseAxis: function () {\n var dim = this._baseAxisDim;\n return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\n }\n};\nexports.seriesModelMixin = seriesModelMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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(\"./dataZoom/typeDefaulter\");\n\nrequire(\"./dataZoom/DataZoomModel\");\n\nrequire(\"./dataZoom/DataZoomView\");\n\nrequire(\"./dataZoom/SliderZoomModel\");\n\nrequire(\"./dataZoom/SliderZoomView\");\n\nrequire(\"./dataZoom/dataZoomProcessor\");\n\nrequire(\"./dataZoom/dataZoomAction\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 * @param {number} [time=500] Time in ms\n * @param {string} [easing='linear']\n * @param {number} [delay=0]\n * @param {Function} [callback]\n *\n * @example\n * // Animate position\n * animation\n * .createWrap()\n * .add(el1, {position: [10, 10]})\n * .add(el2, {shape: {width: 500}, style: {fill: 'red'}}, 400)\n * .done(function () { // done })\n * .start('cubicOut');\n */\nfunction createWrap() {\n var storage = [];\n var elExistsMap = {};\n var doneCallback;\n return {\n /**\n * Caution: a el can only be added once, otherwise 'done'\n * might not be called. This method checks this (by el.id),\n * suppresses adding and returns false when existing el found.\n *\n * @param {modele:zrender/Element} el\n * @param {Object} target\n * @param {number} [time=500]\n * @param {number} [delay=0]\n * @param {string} [easing='linear']\n * @return {boolean} Whether adding succeeded.\n *\n * @example\n * add(el, target, time, delay, easing);\n * add(el, target, time, easing);\n * add(el, target, time);\n * add(el, target);\n */\n add: function (el, target, time, delay, easing) {\n if (zrUtil.isString(delay)) {\n easing = delay;\n delay = 0;\n }\n\n if (elExistsMap[el.id]) {\n return false;\n }\n\n elExistsMap[el.id] = 1;\n storage.push({\n el: el,\n target: target,\n time: time,\n delay: delay,\n easing: easing\n });\n return true;\n },\n\n /**\n * Only execute when animation finished. Will not execute when any\n * of 'stop' or 'stopAnimation' called.\n *\n * @param {Function} callback\n */\n done: function (callback) {\n doneCallback = callback;\n return this;\n },\n\n /**\n * Will stop exist animation firstly.\n */\n start: function () {\n var count = storage.length;\n\n for (var i = 0, len = storage.length; i < len; i++) {\n var item = storage[i];\n item.el.animateTo(item.target, item.time, item.delay, item.easing, done);\n }\n\n return this;\n\n function done() {\n count--;\n\n if (!count) {\n storage.length = 0;\n elExistsMap = {};\n doneCallback && doneCallback();\n }\n }\n }\n };\n}\n\nexports.createWrap = createWrap;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @event legendScroll\n * @type {Object}\n * @property {string} type 'legendScroll'\n * @property {string} scrollDataIndex\n */\necharts.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n var scrollDataIndex = payload.scrollDataIndex;\n scrollDataIndex != null && ecModel.eachComponent({\n mainType: 'legend',\n subType: 'scroll',\n query: payload\n }, function (legendModel) {\n legendModel.setScrollDataIndex(scrollDataIndex);\n });\n});","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/dcd-code@3x-7798dc19b4c261272684645a11a3b1dd.png\";","var logError = require(\"../core/log\");\n\nvar vmlCore = require(\"./core\");\n\nvar _util = require(\"../core/util\");\n\nvar each = _util.each;\n\n/**\n * VML Painter.\n *\n * @module zrender/vml/Painter\n */\nfunction parseInt10(val) {\n return parseInt(val, 10);\n}\n/**\n * @alias module:zrender/vml/Painter\n */\n\n\nfunction VMLPainter(root, storage) {\n vmlCore.initVML();\n this.root = root;\n this.storage = storage;\n var vmlViewport = document.createElement('div');\n var vmlRoot = document.createElement('div');\n vmlViewport.style.cssText = 'display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;';\n vmlRoot.style.cssText = 'position:absolute;left:0;top:0;';\n root.appendChild(vmlViewport);\n this._vmlRoot = vmlRoot;\n this._vmlViewport = vmlViewport;\n this.resize(); // Modify storage\n\n var oldDelFromStorage = storage.delFromStorage;\n var oldAddToStorage = storage.addToStorage;\n\n storage.delFromStorage = function (el) {\n oldDelFromStorage.call(storage, el);\n\n if (el) {\n el.onRemove && el.onRemove(vmlRoot);\n }\n };\n\n storage.addToStorage = function (el) {\n // Displayable already has a vml node\n el.onAdd && el.onAdd(vmlRoot);\n oldAddToStorage.call(storage, el);\n };\n\n this._firstPaint = true;\n}\n\nVMLPainter.prototype = {\n constructor: VMLPainter,\n getType: function () {\n return 'vml';\n },\n\n /**\n * @return {HTMLDivElement}\n */\n getViewportRoot: function () {\n return this._vmlViewport;\n },\n getViewportRootOffset: function () {\n var viewportRoot = this.getViewportRoot();\n\n if (viewportRoot) {\n return {\n offsetLeft: viewportRoot.offsetLeft || 0,\n offsetTop: viewportRoot.offsetTop || 0\n };\n }\n },\n\n /**\n * 刷新\n */\n refresh: function () {\n var list = this.storage.getDisplayList(true, true);\n\n this._paintList(list);\n },\n _paintList: function (list) {\n var vmlRoot = this._vmlRoot;\n\n for (var i = 0; i < list.length; i++) {\n var el = list[i];\n\n if (el.invisible || el.ignore) {\n if (!el.__alreadyNotVisible) {\n el.onRemove(vmlRoot);\n } // Set as already invisible\n\n\n el.__alreadyNotVisible = true;\n } else {\n if (el.__alreadyNotVisible) {\n el.onAdd(vmlRoot);\n }\n\n el.__alreadyNotVisible = false;\n\n if (el.__dirty) {\n el.beforeBrush && el.beforeBrush();\n (el.brushVML || el.brush).call(el, vmlRoot);\n el.afterBrush && el.afterBrush();\n }\n }\n\n el.__dirty = false;\n }\n\n if (this._firstPaint) {\n // Detached from document at first time\n // to avoid page refreshing too many times\n // FIXME 如果每次都先 removeChild 可能会导致一些填充和描边的效果改变\n this._vmlViewport.appendChild(vmlRoot);\n\n this._firstPaint = false;\n }\n },\n resize: function (width, height) {\n var width = width == null ? this._getWidth() : width;\n var height = height == null ? this._getHeight() : height;\n\n if (this._width !== width || this._height !== height) {\n this._width = width;\n this._height = height;\n var vmlViewportStyle = this._vmlViewport.style;\n vmlViewportStyle.width = width + 'px';\n vmlViewportStyle.height = height + 'px';\n }\n },\n dispose: function () {\n this.root.innerHTML = '';\n this._vmlRoot = this._vmlViewport = this.storage = null;\n },\n getWidth: function () {\n return this._width;\n },\n getHeight: function () {\n return this._height;\n },\n clear: function () {\n if (this._vmlViewport) {\n this.root.removeChild(this._vmlViewport);\n }\n },\n _getWidth: function () {\n var root = this.root;\n var stl = root.currentStyle;\n return (root.clientWidth || parseInt10(stl.width)) - parseInt10(stl.paddingLeft) - parseInt10(stl.paddingRight) | 0;\n },\n _getHeight: function () {\n var root = this.root;\n var stl = root.currentStyle;\n return (root.clientHeight || parseInt10(stl.height)) - parseInt10(stl.paddingTop) - parseInt10(stl.paddingBottom) | 0;\n }\n}; // Not supported methods\n\nfunction createMethodNotSupport(method) {\n return function () {\n logError('In IE8.0 VML mode painter not support method \"' + method + '\"');\n };\n} // Unsupported methods\n\n\neach(['getLayer', 'insertLayer', 'eachLayer', 'eachBuiltinLayer', 'eachOtherLayer', 'getLayers', 'modLayer', 'delLayer', 'clearLayer', 'toDataURL', 'pathToImage'], function (name) {\n VMLPainter.prototype[name] = createMethodNotSupport(name);\n});\nvar _default = VMLPainter;\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 _default(option) {\n if (!option || !zrUtil.isArray(option.series)) {\n return;\n } // Translate 'k' to 'candlestick'.\n\n\n zrUtil.each(option.series, function (seriesItem) {\n if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') {\n seriesItem.type = 'candlestick';\n }\n });\n}\n\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 env = require(\"zrender/lib/core/env\");\n\nvar visualDefault = require(\"../../visual/visualDefault\");\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar visualSolution = require(\"../../visual/visualSolution\");\n\nvar modelUtil = require(\"../../util/model\");\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*/\nvar mapVisual = VisualMapping.mapVisual;\nvar eachVisual = VisualMapping.eachVisual;\nvar isArray = zrUtil.isArray;\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\nvar linearMap = numberUtil.linearMap;\nvar noop = zrUtil.noop;\nvar VisualMapModel = echarts.extendComponentModel({\n type: 'visualMap',\n dependencies: ['series'],\n\n /**\n * @readOnly\n * @type {Array.}\n */\n stateList: ['inRange', 'outOfRange'],\n\n /**\n * @readOnly\n * @type {Array.}\n */\n replacableOptionKeys: ['inRange', 'outOfRange', 'target', 'controller', 'color'],\n\n /**\n * [lowerBound, upperBound]\n *\n * @readOnly\n * @type {Array.}\n */\n dataBound: [-Infinity, Infinity],\n\n /**\n * @readOnly\n * @type {string|Object}\n */\n layoutMode: {\n type: 'box',\n ignoreSize: true\n },\n\n /**\n * @protected\n */\n defaultOption: {\n show: true,\n zlevel: 0,\n z: 4,\n seriesIndex: 'all',\n // 'all' or null/undefined: all series.\n // A number or an array of number: the specified series.\n // set min: 0, max: 200, only for campatible with ec2.\n // In fact min max should not have default value.\n min: 0,\n // min value, must specified if pieces is not specified.\n max: 200,\n // max value, must specified if pieces is not specified.\n dimension: null,\n inRange: null,\n // 'color', 'colorHue', 'colorSaturation', 'colorLightness', 'colorAlpha',\n // 'symbol', 'symbolSize'\n outOfRange: null,\n // 'color', 'colorHue', 'colorSaturation',\n // 'colorLightness', 'colorAlpha',\n // 'symbol', 'symbolSize'\n left: 0,\n // 'center' ¦ 'left' ¦ 'right' ¦ {number} (px)\n right: null,\n // The same as left.\n top: null,\n // 'top' ¦ 'bottom' ¦ 'center' ¦ {number} (px)\n bottom: 0,\n // The same as top.\n itemWidth: null,\n itemHeight: null,\n inverse: false,\n orient: 'vertical',\n // 'horizontal' ¦ 'vertical'\n backgroundColor: 'rgba(0,0,0,0)',\n borderColor: '#ccc',\n // 值域边框颜色\n contentColor: '#5793f3',\n inactiveColor: '#aaa',\n borderWidth: 0,\n // 值域边框线宽,单位px,默认为0(无边框)\n padding: 5,\n // 值域内边距,单位px,默认各方向内边距为5,\n // 接受数组分别设定上右下左边距,同css\n textGap: 10,\n //\n precision: 0,\n // 小数精度,默认为0,无小数点\n color: null,\n //颜色(deprecated,兼容ec2,顺序同pieces,不同于inRange/outOfRange)\n formatter: null,\n text: null,\n // 文本,如['高', '低'],兼容ec2,text[0]对应高值,text[1]对应低值\n textStyle: {\n color: '#333' // 值域文字颜色\n\n }\n },\n\n /**\n * @protected\n */\n init: function (option, parentModel, ecModel) {\n /**\n * @private\n * @type {Array.}\n */\n this._dataExtent;\n /**\n * @readOnly\n */\n\n this.targetVisuals = {};\n /**\n * @readOnly\n */\n\n this.controllerVisuals = {};\n /**\n * @readOnly\n */\n\n this.textStyleModel;\n /**\n * [width, height]\n * @readOnly\n * @type {Array.}\n */\n\n this.itemSize;\n this.mergeDefaultAndTheme(option, ecModel);\n },\n\n /**\n * @protected\n */\n optionUpdated: function (newOption, isInit) {\n var thisOption = this.option; // FIXME\n // necessary?\n // Disable realtime view update if canvas is not supported.\n\n if (!env.canvasSupported) {\n thisOption.realtime = false;\n }\n\n !isInit && visualSolution.replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\n this.textStyleModel = this.getModel('textStyle');\n this.resetItemSize();\n this.completeVisualOption();\n },\n\n /**\n * @protected\n */\n resetVisual: function (supplementVisualOption) {\n var stateList = this.stateList;\n supplementVisualOption = zrUtil.bind(supplementVisualOption, this);\n this.controllerVisuals = visualSolution.createVisualMappings(this.option.controller, stateList, supplementVisualOption);\n this.targetVisuals = visualSolution.createVisualMappings(this.option.target, stateList, supplementVisualOption);\n },\n\n /**\n * @protected\n * @return {Array.} An array of series indices.\n */\n getTargetSeriesIndices: function () {\n var optionSeriesIndex = this.option.seriesIndex;\n var seriesIndices = [];\n\n if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\n this.ecModel.eachSeries(function (seriesModel, index) {\n seriesIndices.push(index);\n });\n } else {\n seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex);\n }\n\n return seriesIndices;\n },\n\n /**\n * @public\n */\n eachTargetSeries: function (callback, context) {\n zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) {\n callback.call(context, this.ecModel.getSeriesByIndex(seriesIndex));\n }, this);\n },\n\n /**\n * @pubilc\n */\n isTargetSeries: function (seriesModel) {\n var is = false;\n this.eachTargetSeries(function (model) {\n model === seriesModel && (is = true);\n });\n return is;\n },\n\n /**\n * @example\n * this.formatValueText(someVal); // format single numeric value to text.\n * this.formatValueText(someVal, true); // format single category value to text.\n * this.formatValueText([min, max]); // format numeric min-max to text.\n * this.formatValueText([this.dataBound[0], max]); // using data lower bound.\n * this.formatValueText([min, this.dataBound[1]]); // using data upper bound.\n *\n * @param {number|Array.} value Real value, or this.dataBound[0 or 1].\n * @param {boolean} [isCategory=false] Only available when value is number.\n * @param {Array.} edgeSymbols Open-close symbol when value is interval.\n * @return {string}\n * @protected\n */\n formatValueText: function (value, isCategory, edgeSymbols) {\n var option = this.option;\n var precision = option.precision;\n var dataBound = this.dataBound;\n var formatter = option.formatter;\n var isMinMax;\n var textValue;\n edgeSymbols = edgeSymbols || ['<', '>'];\n\n if (zrUtil.isArray(value)) {\n value = value.slice();\n isMinMax = true;\n }\n\n textValue = isCategory ? value : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value);\n\n if (zrUtil.isString(formatter)) {\n return formatter.replace('{value}', isMinMax ? textValue[0] : textValue).replace('{value2}', isMinMax ? textValue[1] : textValue);\n } else if (zrUtil.isFunction(formatter)) {\n return isMinMax ? formatter(value[0], value[1]) : formatter(value);\n }\n\n if (isMinMax) {\n if (value[0] === dataBound[0]) {\n return edgeSymbols[0] + ' ' + textValue[1];\n } else if (value[1] === dataBound[1]) {\n return edgeSymbols[1] + ' ' + textValue[0];\n } else {\n return textValue[0] + ' - ' + textValue[1];\n }\n } else {\n // Format single value (includes category case).\n return textValue;\n }\n\n function toFixed(val) {\n return val === dataBound[0] ? 'min' : val === dataBound[1] ? 'max' : (+val).toFixed(Math.min(precision, 20));\n }\n },\n\n /**\n * @protected\n */\n resetExtent: function () {\n var thisOption = this.option; // Can not calculate data extent by data here.\n // Because series and data may be modified in processing stage.\n // So we do not support the feature \"auto min/max\".\n\n var extent = asc([thisOption.min, thisOption.max]);\n this._dataExtent = extent;\n },\n\n /**\n * @public\n * @param {module:echarts/data/List} list\n * @return {string} Concrete dimention. If return null/undefined,\n * no dimension used.\n */\n getDataDimension: function (list) {\n var optDim = this.option.dimension;\n var listDimensions = list.dimensions;\n\n if (optDim == null && !listDimensions.length) {\n return;\n }\n\n if (optDim != null) {\n return list.getDimension(optDim);\n }\n\n var dimNames = list.dimensions;\n\n for (var i = dimNames.length - 1; i >= 0; i--) {\n var dimName = dimNames[i];\n var dimInfo = list.getDimensionInfo(dimName);\n\n if (!dimInfo.isCalculationCoord) {\n return dimName;\n }\n }\n },\n\n /**\n * @public\n * @override\n */\n getExtent: function () {\n return this._dataExtent.slice();\n },\n\n /**\n * @protected\n */\n completeVisualOption: function () {\n var ecModel = this.ecModel;\n var thisOption = this.option;\n var base = {\n inRange: thisOption.inRange,\n outOfRange: thisOption.outOfRange\n };\n var target = thisOption.target || (thisOption.target = {});\n var controller = thisOption.controller || (thisOption.controller = {});\n zrUtil.merge(target, base); // Do not override\n\n zrUtil.merge(controller, base); // Do not override\n\n var isCategory = this.isCategory();\n completeSingle.call(this, target);\n completeSingle.call(this, controller);\n completeInactive.call(this, target, 'inRange', 'outOfRange'); // completeInactive.call(this, target, 'outOfRange', 'inRange');\n\n completeController.call(this, controller);\n\n function completeSingle(base) {\n // Compatible with ec2 dataRange.color.\n // The mapping order of dataRange.color is: [high value, ..., low value]\n // whereas inRange.color and outOfRange.color is [low value, ..., high value]\n // Notice: ec2 has no inverse.\n if (isArray(thisOption.color) // If there has been inRange: {symbol: ...}, adding color is a mistake.\n // So adding color only when no inRange defined.\n && !base.inRange) {\n base.inRange = {\n color: thisOption.color.slice().reverse()\n };\n } // Compatible with previous logic, always give a defautl color, otherwise\n // simple config with no inRange and outOfRange will not work.\n // Originally we use visualMap.color as the default color, but setOption at\n // the second time the default color will be erased. So we change to use\n // constant DEFAULT_COLOR.\n // If user do not want the default color, set inRange: {color: null}.\n\n\n base.inRange = base.inRange || {\n color: ecModel.get('gradientColor')\n }; // If using shortcut like: {inRange: 'symbol'}, complete default value.\n\n each(this.stateList, function (state) {\n var visualType = base[state];\n\n if (zrUtil.isString(visualType)) {\n var defa = visualDefault.get(visualType, 'active', isCategory);\n\n if (defa) {\n base[state] = {};\n base[state][visualType] = defa;\n } else {\n // Mark as not specified.\n delete base[state];\n }\n }\n }, this);\n }\n\n function completeInactive(base, stateExist, stateAbsent) {\n var optExist = base[stateExist];\n var optAbsent = base[stateAbsent];\n\n if (optExist && !optAbsent) {\n optAbsent = base[stateAbsent] = {};\n each(optExist, function (visualData, visualType) {\n if (!VisualMapping.isValidType(visualType)) {\n return;\n }\n\n var defa = visualDefault.get(visualType, 'inactive', isCategory);\n\n if (defa != null) {\n optAbsent[visualType] = defa; // Compatibable with ec2:\n // Only inactive color to rgba(0,0,0,0) can not\n // make label transparent, so use opacity also.\n\n if (visualType === 'color' && !optAbsent.hasOwnProperty('opacity') && !optAbsent.hasOwnProperty('colorAlpha')) {\n optAbsent.opacity = [0, 0];\n }\n }\n });\n }\n }\n\n function completeController(controller) {\n var symbolExists = (controller.inRange || {}).symbol || (controller.outOfRange || {}).symbol;\n var symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize;\n var inactiveColor = this.get('inactiveColor');\n each(this.stateList, function (state) {\n var itemSize = this.itemSize;\n var visuals = controller[state]; // Set inactive color for controller if no other color\n // attr (like colorAlpha) specified.\n\n if (!visuals) {\n visuals = controller[state] = {\n color: isCategory ? inactiveColor : [inactiveColor]\n };\n } // Consistent symbol and symbolSize if not specified.\n\n\n if (visuals.symbol == null) {\n visuals.symbol = symbolExists && zrUtil.clone(symbolExists) || (isCategory ? 'roundRect' : ['roundRect']);\n }\n\n if (visuals.symbolSize == null) {\n visuals.symbolSize = symbolSizeExists && zrUtil.clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\n } // Filter square and none.\n\n\n visuals.symbol = mapVisual(visuals.symbol, function (symbol) {\n return symbol === 'none' || symbol === 'square' ? 'roundRect' : symbol;\n }); // Normalize symbolSize\n\n var symbolSize = visuals.symbolSize;\n\n if (symbolSize != null) {\n var max = -Infinity; // symbolSize can be object when categories defined.\n\n eachVisual(symbolSize, function (value) {\n value > max && (max = value);\n });\n visuals.symbolSize = mapVisual(symbolSize, function (value) {\n return linearMap(value, [0, max], [0, itemSize[0]], true);\n });\n }\n }, this);\n }\n },\n\n /**\n * @protected\n */\n resetItemSize: function () {\n this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))];\n },\n\n /**\n * @public\n */\n isCategory: function () {\n return !!this.option.categories;\n },\n\n /**\n * @public\n * @abstract\n */\n setSelected: noop,\n\n /**\n * @public\n * @abstract\n * @param {*|module:echarts/data/List} valueOrData\n * @param {number} dataIndex\n * @return {string} state See this.stateList\n */\n getValueState: noop,\n\n /**\n * FIXME\n * Do not publish to thirt-part-dev temporarily\n * util the interface is stable. (Should it return\n * a function but not visual meta?)\n *\n * @pubilc\n * @abstract\n * @param {Function} getColorVisual\n * params: value, valueState\n * return: color\n * @return {Object} visualMeta\n * should includes {stops, outerColors}\n * outerColor means [colorBeyondMinValue, colorBeyondMaxValue]\n */\n getVisualMeta: noop\n});\nvar _default = VisualMapModel;\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 return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) {\n var axis = this['get' + dim + 'Axis']();\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n var method = 'dataTo' + dim;\n var result = axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis[method](val - halfSize) - axis[method](val + halfSize));\n\n if (dim === 'Angle') {\n result = result * Math.PI / 180;\n }\n\n return result;\n }, this);\n}\n\nfunction _default(coordSys) {\n var radiusAxis = coordSys.getRadiusAxis();\n var angleAxis = coordSys.getAngleAxis();\n var radius = radiusAxis.getExtent();\n radius[0] > radius[1] && radius.reverse();\n return {\n coordSys: {\n type: 'polar',\n cx: coordSys.cx,\n cy: coordSys.cy,\n r: radius[1],\n r0: radius[0]\n },\n api: {\n coord: zrUtil.bind(function (data) {\n var radius = radiusAxis.dataToRadius(data[0]);\n var angle = angleAxis.dataToAngle(data[1]);\n var coord = coordSys.coordToPoint([radius, angle]);\n coord.push(radius, angle * Math.PI / 180);\n return coord;\n }),\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}\n\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 * Calculate slider move result.\n * Usage:\n * (1) If both handle0 and handle1 are needed to be moved, set minSpan the same as\n * maxSpan and the same as `Math.abs(handleEnd[1] - handleEnds[0])`.\n * (2) If handle0 is forbidden to cross handle1, set minSpan as `0`.\n *\n * @param {number} delta Move length.\n * @param {Array.} handleEnds handleEnds[0] can be bigger then handleEnds[1].\n * handleEnds will be modified in this method.\n * @param {Array.} extent handleEnds is restricted by extent.\n * extent[0] should less or equals than extent[1].\n * @param {number|string} handleIndex Can be 'all', means that both move the two handleEnds.\n * @param {number} [minSpan] The range of dataZoom can not be smaller than that.\n * If not set, handle0 and cross handle1. If set as a non-negative\n * number (including `0`), handles will push each other when reaching\n * the minSpan.\n * @param {number} [maxSpan] The range of dataZoom can not be larger than that.\n * @return {Array.} The input handleEnds.\n */\nfunction _default(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n delta = delta || 0;\n var extentSpan = extent[1] - extent[0]; // Notice maxSpan and minSpan can be null/undefined.\n\n if (minSpan != null) {\n minSpan = restrict(minSpan, [0, extentSpan]);\n }\n\n if (maxSpan != null) {\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n }\n\n if (handleIndex === 'all') {\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n handleSpan = restrict(handleSpan, [0, extentSpan]);\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n handleIndex = 0;\n }\n\n handleEnds[0] = restrict(handleEnds[0], extent);\n handleEnds[1] = restrict(handleEnds[1], extent);\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\n handleEnds[handleIndex] += delta; // Restrict in extent.\n\n var extentMinSpan = minSpan || 0;\n var realExtent = extent.slice();\n originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent); // Expand span.\n\n var currDistSign = getSpanSign(handleEnds, handleIndex);\n\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n // If minSpan exists, 'cross' is forbidden.\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n } // Shrink span.\n\n\n var currDistSign = getSpanSign(handleEnds, handleIndex);\n\n if (maxSpan != null && currDistSign.span > maxSpan) {\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n }\n\n return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex]; // If `handleEnds[0] === handleEnds[1]`, always believe that handleEnd[0]\n // is at left of handleEnds[1] for non-cross case.\n\n return {\n span: Math.abs(dist),\n sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n };\n}\n\nfunction restrict(value, extend) {\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}\n\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(\"./line/LineSeries\");\n\nrequire(\"./line/LineView\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar layoutPoints = require(\"../layout/points\");\n\nvar dataSample = require(\"../processor/dataSample\");\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// In case developer forget to include grid component\necharts.registerVisual(visualSymbol('line', 'circle', 'line'));\necharts.registerLayout(layoutPoints('line')); // Down sample after filter\n\necharts.registerProcessor(echarts.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./tree/TreeSeries\");\n\nrequire(\"./tree/TreeView\");\n\nrequire(\"./tree/treeAction\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar treeLayout = require(\"./tree/treeLayout\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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('tree', 'circle'));\necharts.registerLayout(treeLayout);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 * 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 Axis2D = function (dim, scale, coordExtent, axisType, position) {\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 position\n * - 'top'\n * - 'bottom'\n * - 'left'\n * - 'right'\n */\n\n this.position = position || 'bottom';\n};\n\nAxis2D.prototype = {\n constructor: Axis2D,\n\n /**\n * Index of axis, can be used as key\n */\n index: 0,\n\n /**\n * Implemented in .\n * @return {Array.}\n * If not on zero of other axis, return null/undefined.\n * If no axes, return an empty array.\n */\n getAxesOnZeroOf: null,\n\n /**\n * Axis model\n * @param {module:echarts/coord/cartesian/AxisModel}\n */\n model: null,\n isHorizontal: function () {\n var position = this.position;\n return position === 'top' || position === 'bottom';\n },\n\n /**\n * Each item cooresponds to this.getExtent(), which\n * means globalExtent[0] may greater than globalExtent[1],\n * unless `asc` is input.\n *\n * @param {boolean} [asc]\n * @return {Array.}\n */\n getGlobalExtent: function (asc) {\n var ret = this.getExtent();\n ret[0] = this.toGlobalCoord(ret[0]);\n ret[1] = this.toGlobalCoord(ret[1]);\n asc && ret[0] > ret[1] && ret.reverse();\n return ret;\n },\n getOtherAxis: function () {\n this.grid.getOtherAxis();\n },\n\n /**\n * @override\n */\n pointToData: function (point, clamp) {\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n },\n\n /**\n * Transform global coord to local coord,\n * i.e. var localCoord = axis.toLocalCoord(80);\n * designate by module:echarts/coord/cartesian/Grid.\n * @type {Function}\n */\n toLocalCoord: null,\n\n /**\n * Transform global coord to local coord,\n * i.e. var globalCoord = axis.toLocalCoord(40);\n * designate by module:echarts/coord/cartesian/Grid.\n * @type {Function}\n */\n toGlobalCoord: null\n};\nzrUtil.inherits(Axis2D, Axis);\nvar _default = Axis2D;\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 _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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;\n\nfunction _default(ecModel) {\n var groupResult = groupSeriesByAxis(ecModel);\n each(groupResult, function (groupItem) {\n var seriesModels = groupItem.seriesModels;\n\n if (!seriesModels.length) {\n return;\n }\n\n calculateBase(groupItem);\n each(seriesModels, function (seriesModel, idx) {\n layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n });\n });\n}\n/**\n * Group series by axis.\n */\n\n\nfunction groupSeriesByAxis(ecModel) {\n var result = [];\n var axisList = [];\n ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n var baseAxis = seriesModel.getBaseAxis();\n var idx = zrUtil.indexOf(axisList, baseAxis);\n\n if (idx < 0) {\n idx = axisList.length;\n axisList[idx] = baseAxis;\n result[idx] = {\n axis: baseAxis,\n seriesModels: []\n };\n }\n\n result[idx].seriesModels.push(seriesModel);\n });\n return result;\n}\n/**\n * Calculate offset and box width for each series.\n */\n\n\nfunction calculateBase(groupItem) {\n var extent;\n var baseAxis = groupItem.axis;\n var seriesModels = groupItem.seriesModels;\n var seriesCount = seriesModels.length;\n var boxWidthList = groupItem.boxWidthList = [];\n var boxOffsetList = groupItem.boxOffsetList = [];\n var boundList = [];\n var bandWidth;\n\n if (baseAxis.type === 'category') {\n bandWidth = baseAxis.getBandWidth();\n } else {\n var maxDataCount = 0;\n each(seriesModels, function (seriesModel) {\n maxDataCount = Math.max(maxDataCount, seriesModel.getData().count());\n });\n extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / maxDataCount;\n }\n\n each(seriesModels, function (seriesModel) {\n var boxWidthBound = seriesModel.get('boxWidth');\n\n if (!zrUtil.isArray(boxWidthBound)) {\n boxWidthBound = [boxWidthBound, boxWidthBound];\n }\n\n boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n });\n var availableWidth = bandWidth * 0.8 - 2;\n var boxGap = availableWidth / seriesCount * 0.3;\n var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n var base = boxWidth / 2 - availableWidth / 2;\n each(seriesModels, function (seriesModel, idx) {\n boxOffsetList.push(base);\n base += boxGap + boxWidth;\n boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n });\n}\n/**\n * Calculate points location for each series.\n */\n\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n var coordSys = seriesModel.coordinateSystem;\n var data = seriesModel.getData();\n var halfWidth = boxWidth / 2;\n var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n var vDimIdx = 1 - cDimIdx;\n var coordDims = ['x', 'y'];\n var cDim = data.mapDimension(coordDims[cDimIdx]);\n var vDims = data.mapDimension(coordDims[vDimIdx], true);\n\n if (cDim == null || vDims.length < 5) {\n return;\n }\n\n for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n var axisDimVal = data.get(cDim, dataIndex);\n var median = getPoint(axisDimVal, vDims[2], dataIndex);\n var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n var ends = [];\n addBodyEnd(ends, end2, 0);\n addBodyEnd(ends, end4, 1);\n ends.push(end1, end2, end5, end4);\n layEndLine(ends, end1);\n layEndLine(ends, end5);\n layEndLine(ends, median);\n data.setItemLayout(dataIndex, {\n initBaseline: median[vDimIdx],\n ends: ends\n });\n }\n\n function getPoint(axisDimVal, dimIdx, dataIndex) {\n var val = data.get(dimIdx, dataIndex);\n var p = [];\n p[cDimIdx] = axisDimVal;\n p[vDimIdx] = val;\n var point;\n\n if (isNaN(axisDimVal) || isNaN(val)) {\n point = [NaN, NaN];\n } else {\n point = coordSys.dataToPoint(p);\n point[cDimIdx] += offset;\n }\n\n return point;\n }\n\n function addBodyEnd(ends, point, start) {\n var point1 = point.slice();\n var point2 = point.slice();\n point1[cDimIdx] += halfWidth;\n point2[cDimIdx] -= halfWidth;\n start ? ends.push(point1, point2) : ends.push(point2, point1);\n }\n\n function layEndLine(ends, endCenter) {\n var from = endCenter.slice();\n var to = endCenter.slice();\n from[cDimIdx] -= halfWidth;\n to[cDimIdx] += halfWidth;\n ends.push(from, to);\n }\n}\n\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 ComponentModel = require(\"../../model/Component\");\n\nvar List = require(\"../../data/List\");\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 TimelineModel = ComponentModel.extend({\n type: 'timeline',\n layoutMode: 'box',\n\n /**\n * @protected\n */\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 4,\n // 二级层叠\n show: true,\n axisType: 'time',\n // 模式是时间类型,支持 value, category\n realtime: true,\n left: '20%',\n top: null,\n right: '20%',\n bottom: 0,\n width: null,\n height: 40,\n padding: 5,\n controlPosition: 'left',\n // 'left' 'right' 'top' 'bottom' 'none'\n autoPlay: false,\n rewind: false,\n // 反向播放\n loop: true,\n playInterval: 2000,\n // 播放时间间隔,单位ms\n currentIndex: 0,\n itemStyle: {},\n label: {\n color: '#000'\n },\n data: []\n },\n\n /**\n * @override\n */\n init: function (option, parentModel, ecModel) {\n /**\n * @private\n * @type {module:echarts/data/List}\n */\n this._data;\n /**\n * @private\n * @type {Array.}\n */\n\n this._names;\n this.mergeDefaultAndTheme(option, ecModel);\n\n this._initData();\n },\n\n /**\n * @override\n */\n mergeOption: function (option) {\n TimelineModel.superApply(this, 'mergeOption', arguments);\n\n this._initData();\n },\n\n /**\n * @param {number} [currentIndex]\n */\n setCurrentIndex: function (currentIndex) {\n if (currentIndex == null) {\n currentIndex = this.option.currentIndex;\n }\n\n var count = this._data.count();\n\n if (this.option.loop) {\n currentIndex = (currentIndex % count + count) % count;\n } else {\n currentIndex >= count && (currentIndex = count - 1);\n currentIndex < 0 && (currentIndex = 0);\n }\n\n this.option.currentIndex = currentIndex;\n },\n\n /**\n * @return {number} currentIndex\n */\n getCurrentIndex: function () {\n return this.option.currentIndex;\n },\n\n /**\n * @return {boolean}\n */\n isIndexMax: function () {\n return this.getCurrentIndex() >= this._data.count() - 1;\n },\n\n /**\n * @param {boolean} state true: play, false: stop\n */\n setPlayState: function (state) {\n this.option.autoPlay = !!state;\n },\n\n /**\n * @return {boolean} true: play, false: stop\n */\n getPlayState: function () {\n return !!this.option.autoPlay;\n },\n\n /**\n * @private\n */\n _initData: function () {\n var thisOption = this.option;\n var dataArr = thisOption.data || [];\n var axisType = thisOption.axisType;\n var names = this._names = [];\n\n if (axisType === 'category') {\n var idxArr = [];\n zrUtil.each(dataArr, function (item, index) {\n var value = modelUtil.getDataItemValue(item);\n var newItem;\n\n if (zrUtil.isObject(item)) {\n newItem = zrUtil.clone(item);\n newItem.value = index;\n } else {\n newItem = index;\n }\n\n idxArr.push(newItem);\n\n if (!zrUtil.isString(value) && (value == null || isNaN(value))) {\n value = '';\n }\n\n names.push(value + '');\n });\n dataArr = idxArr;\n }\n\n var dimType = {\n category: 'ordinal',\n time: 'time'\n }[axisType] || 'number';\n var data = this._data = new List([{\n name: 'value',\n type: dimType\n }], this);\n data.initData(dataArr, names);\n },\n getData: function () {\n return this._data;\n },\n\n /**\n * @public\n * @return {Array.} categoreis\n */\n getCategories: function () {\n if (this.get('axisType') === 'category') {\n return this._names.slice();\n }\n }\n});\nvar _default = TimelineModel;\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 * @param {Object} opt {labelInside}\n * @return {Object} {\n * position, rotation, labelDirection, labelOffset,\n * tickDirection, labelRotate, z2\n * }\n */\nfunction layout(axisModel, opt) {\n opt = opt || {};\n var single = axisModel.coordinateSystem;\n var axis = axisModel.axis;\n var layout = {};\n var axisPosition = axis.position;\n var orient = axis.orient;\n var rect = single.getRect();\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n var positionMap = {\n horizontal: {\n top: rectBound[2],\n bottom: rectBound[3]\n },\n vertical: {\n left: rectBound[0],\n right: rectBound[1]\n }\n };\n layout.position = [orient === 'vertical' ? positionMap.vertical[axisPosition] : rectBound[0], orient === 'horizontal' ? positionMap.horizontal[axisPosition] : rectBound[3]];\n var r = {\n horizontal: 0,\n vertical: 1\n };\n layout.rotation = Math.PI / 2 * r[orient];\n var directionMap = {\n top: -1,\n bottom: 1,\n right: 1,\n left: -1\n };\n layout.labelDirection = layout.tickDirection = layout.nameDirection = directionMap[axisPosition];\n\n if (axisModel.get('axisTick.inside')) {\n layout.tickDirection = -layout.tickDirection;\n }\n\n if (zrUtil.retrieve(opt.labelInside, axisModel.get('axisLabel.inside'))) {\n layout.labelDirection = -layout.labelDirection;\n }\n\n var labelRotation = opt.rotate;\n labelRotation == null && (labelRotation = axisModel.get('axisLabel.rotate'));\n layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\n layout.z2 = 1;\n return layout;\n}\n\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\nvar formatUtil = require(\"../../util/format\");\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*/\nvar MONTH_TEXT = {\n EN: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n CN: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']\n};\nvar WEEK_TEXT = {\n EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n CN: ['日', '一', '二', '三', '四', '五', '六']\n};\n\nvar _default = echarts.extendComponentView({\n type: 'calendar',\n\n /**\n * top/left line points\n * @private\n */\n _tlpoints: null,\n\n /**\n * bottom/right line points\n * @private\n */\n _blpoints: null,\n\n /**\n * first day of month\n * @private\n */\n _firstDayOfMonth: null,\n\n /**\n * first day point of month\n * @private\n */\n _firstDayPoints: null,\n render: function (calendarModel, ecModel, api) {\n var group = this.group;\n group.removeAll();\n var coordSys = calendarModel.coordinateSystem; // range info\n\n var rangeData = coordSys.getRangeInfo();\n var orient = coordSys.getOrient();\n\n this._renderDayRect(calendarModel, rangeData, group); // _renderLines must be called prior to following function\n\n\n this._renderLines(calendarModel, rangeData, orient, group);\n\n this._renderYearText(calendarModel, rangeData, orient, group);\n\n this._renderMonthText(calendarModel, orient, group);\n\n this._renderWeekText(calendarModel, rangeData, orient, group);\n },\n // render day rect\n _renderDayRect: function (calendarModel, rangeData, group) {\n var coordSys = calendarModel.coordinateSystem;\n var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\n var sw = coordSys.getCellWidth();\n var sh = coordSys.getCellHeight();\n\n for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\n var point = coordSys.dataToRect([i], false).tl; // every rect\n\n var rect = new graphic.Rect({\n shape: {\n x: point[0],\n y: point[1],\n width: sw,\n height: sh\n },\n cursor: 'default',\n style: itemRectStyleModel\n });\n group.add(rect);\n }\n },\n // render separate line\n _renderLines: function (calendarModel, rangeData, orient, group) {\n var self = this;\n var coordSys = calendarModel.coordinateSystem;\n var lineStyleModel = calendarModel.getModel('splitLine.lineStyle').getLineStyle();\n var show = calendarModel.get('splitLine.show');\n var lineWidth = lineStyleModel.lineWidth;\n this._tlpoints = [];\n this._blpoints = [];\n this._firstDayOfMonth = [];\n this._firstDayPoints = [];\n var firstDay = rangeData.start;\n\n for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\n addPoints(firstDay.formatedDate);\n\n if (i === 0) {\n firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\n }\n\n var date = firstDay.date;\n date.setMonth(date.getMonth() + 1);\n firstDay = coordSys.getDateInfo(date);\n }\n\n addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\n\n function addPoints(date) {\n self._firstDayOfMonth.push(coordSys.getDateInfo(date));\n\n self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\n\n var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\n\n self._tlpoints.push(points[0]);\n\n self._blpoints.push(points[points.length - 1]);\n\n show && self._drawSplitline(points, lineStyleModel, group);\n } // render top/left line\n\n\n show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group); // render bottom/right line\n\n show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\n },\n // get points at both ends\n _getEdgesPoints: function (points, lineWidth, orient) {\n var rs = [points[0].slice(), points[points.length - 1].slice()];\n var idx = orient === 'horizontal' ? 0 : 1; // both ends of the line are extend half lineWidth\n\n rs[0][idx] = rs[0][idx] - lineWidth / 2;\n rs[1][idx] = rs[1][idx] + lineWidth / 2;\n return rs;\n },\n // render split line\n _drawSplitline: function (points, lineStyleModel, group) {\n var poyline = new graphic.Polyline({\n z2: 20,\n shape: {\n points: points\n },\n style: lineStyleModel\n });\n group.add(poyline);\n },\n // render month line of one week points\n _getLinePointsOfOneWeek: function (calendarModel, date, orient) {\n var coordSys = calendarModel.coordinateSystem;\n date = coordSys.getDateInfo(date);\n var points = [];\n\n for (var i = 0; i < 7; i++) {\n var tmpD = coordSys.getNextNDay(date.time, i);\n var point = coordSys.dataToRect([tmpD.time], false);\n points[2 * tmpD.day] = point.tl;\n points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\n }\n\n return points;\n },\n _formatterLabel: function (formatter, params) {\n if (typeof formatter === 'string' && formatter) {\n return formatUtil.formatTplSimple(formatter, params);\n }\n\n if (typeof formatter === 'function') {\n return formatter(params);\n }\n\n return params.nameMap;\n },\n _yearTextPositionControl: function (textEl, point, orient, position, margin) {\n point = point.slice();\n var aligns = ['center', 'bottom'];\n\n if (position === 'bottom') {\n point[1] += margin;\n aligns = ['center', 'top'];\n } else if (position === 'left') {\n point[0] -= margin;\n } else if (position === 'right') {\n point[0] += margin;\n aligns = ['center', 'top'];\n } else {\n // top\n point[1] -= margin;\n }\n\n var rotate = 0;\n\n if (position === 'left' || position === 'right') {\n rotate = Math.PI / 2;\n }\n\n return {\n rotation: rotate,\n position: point,\n style: {\n textAlign: aligns[0],\n textVerticalAlign: aligns[1]\n }\n };\n },\n // render year\n _renderYearText: function (calendarModel, rangeData, orient, group) {\n var yearLabel = calendarModel.getModel('yearLabel');\n\n if (!yearLabel.get('show')) {\n return;\n }\n\n var margin = yearLabel.get('margin');\n var pos = yearLabel.get('position');\n\n if (!pos) {\n pos = orient !== 'horizontal' ? 'top' : 'left';\n }\n\n var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\n var xc = (points[0][0] + points[1][0]) / 2;\n var yc = (points[0][1] + points[1][1]) / 2;\n var idx = orient === 'horizontal' ? 0 : 1;\n var posPoints = {\n top: [xc, points[idx][1]],\n bottom: [xc, points[1 - idx][1]],\n left: [points[1 - idx][0], yc],\n right: [points[idx][0], yc]\n };\n var name = rangeData.start.y;\n\n if (+rangeData.end.y > +rangeData.start.y) {\n name = name + '-' + rangeData.end.y;\n }\n\n var formatter = yearLabel.get('formatter');\n var params = {\n start: rangeData.start.y,\n end: rangeData.end.y,\n nameMap: name\n };\n\n var content = this._formatterLabel(formatter, params);\n\n var yearText = new graphic.Text({\n z2: 30\n });\n graphic.setTextStyle(yearText.style, yearLabel, {\n text: content\n }), yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\n group.add(yearText);\n },\n _monthTextPositionControl: function (point, isCenter, orient, position, margin) {\n var align = 'left';\n var vAlign = 'top';\n var x = point[0];\n var y = point[1];\n\n if (orient === 'horizontal') {\n y = y + margin;\n\n if (isCenter) {\n align = 'center';\n }\n\n if (position === 'start') {\n vAlign = 'bottom';\n }\n } else {\n x = x + margin;\n\n if (isCenter) {\n vAlign = 'middle';\n }\n\n if (position === 'start') {\n align = 'right';\n }\n }\n\n return {\n x: x,\n y: y,\n textAlign: align,\n textVerticalAlign: vAlign\n };\n },\n // render month and year text\n _renderMonthText: function (calendarModel, orient, group) {\n var monthLabel = calendarModel.getModel('monthLabel');\n\n if (!monthLabel.get('show')) {\n return;\n }\n\n var nameMap = monthLabel.get('nameMap');\n var margin = monthLabel.get('margin');\n var pos = monthLabel.get('position');\n var align = monthLabel.get('align');\n var termPoints = [this._tlpoints, this._blpoints];\n\n if (zrUtil.isString(nameMap)) {\n nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\n }\n\n var idx = pos === 'start' ? 0 : 1;\n var axis = orient === 'horizontal' ? 0 : 1;\n margin = pos === 'start' ? -margin : margin;\n var isCenter = align === 'center';\n\n for (var i = 0; i < termPoints[idx].length - 1; i++) {\n var tmp = termPoints[idx][i].slice();\n var firstDay = this._firstDayOfMonth[i];\n\n if (isCenter) {\n var firstDayPoints = this._firstDayPoints[i];\n tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\n }\n\n var formatter = monthLabel.get('formatter');\n var name = nameMap[+firstDay.m - 1];\n var params = {\n yyyy: firstDay.y,\n yy: (firstDay.y + '').slice(2),\n MM: firstDay.m,\n M: +firstDay.m,\n nameMap: name\n };\n\n var content = this._formatterLabel(formatter, params);\n\n var monthText = new graphic.Text({\n z2: 30\n });\n zrUtil.extend(graphic.setTextStyle(monthText.style, monthLabel, {\n text: content\n }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin));\n group.add(monthText);\n }\n },\n _weekTextPositionControl: function (point, orient, position, margin, cellSize) {\n var align = 'center';\n var vAlign = 'middle';\n var x = point[0];\n var y = point[1];\n var isStart = position === 'start';\n\n if (orient === 'horizontal') {\n x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\n align = isStart ? 'right' : 'left';\n } else {\n y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\n vAlign = isStart ? 'bottom' : 'top';\n }\n\n return {\n x: x,\n y: y,\n textAlign: align,\n textVerticalAlign: vAlign\n };\n },\n // render weeks\n _renderWeekText: function (calendarModel, rangeData, orient, group) {\n var dayLabel = calendarModel.getModel('dayLabel');\n\n if (!dayLabel.get('show')) {\n return;\n }\n\n var coordSys = calendarModel.coordinateSystem;\n var pos = dayLabel.get('position');\n var nameMap = dayLabel.get('nameMap');\n var margin = dayLabel.get('margin');\n var firstDayOfWeek = coordSys.getFirstDayOfWeek();\n\n if (zrUtil.isString(nameMap)) {\n nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\n }\n\n var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time;\n var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\n margin = numberUtil.parsePercent(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\n\n if (pos === 'start') {\n start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\n margin = -margin;\n }\n\n for (var i = 0; i < 7; i++) {\n var tmpD = coordSys.getNextNDay(start, i);\n var point = coordSys.dataToRect([tmpD.time], false).center;\n var day = i;\n day = Math.abs((i + firstDayOfWeek) % 7);\n var weekText = new graphic.Text({\n z2: 30\n });\n zrUtil.extend(graphic.setTextStyle(weekText.style, dayLabel, {\n text: nameMap[day]\n }), this._weekTextPositionControl(point, orient, pos, margin, cellSize));\n group.add(weekText);\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(\"./timeline/preprocessor\");\n\nrequire(\"./timeline/typeDefaulter\");\n\nrequire(\"./timeline/timelineAction\");\n\nrequire(\"./timeline/SliderTimelineModel\");\n\nrequire(\"./timeline/SliderTimelineView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, 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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 normalize(a) {\n if (!(a instanceof Array)) {\n a = [a, a];\n }\n\n return a;\n}\n\nvar opacityQuery = 'lineStyle.opacity'.split('.');\nvar _default = {\n seriesType: 'lines',\n reset: function (seriesModel, ecModel, api) {\n var symbolType = normalize(seriesModel.get('symbol'));\n var symbolSize = normalize(seriesModel.get('symbolSize'));\n var data = seriesModel.getData();\n data.setVisual('fromSymbol', symbolType && symbolType[0]);\n data.setVisual('toSymbol', symbolType && symbolType[1]);\n data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n data.setVisual('opacity', seriesModel.get(opacityQuery));\n\n function dataEach(data, idx) {\n var itemModel = data.getItemModel(idx);\n var symbolType = normalize(itemModel.getShallow('symbol', true));\n var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n var opacity = itemModel.get(opacityQuery);\n symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\n symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\n symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\n symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\n data.setItemVisual(idx, 'opacity', opacity);\n }\n\n return {\n dataEach: data.hasItemOption ? dataEach : null\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 Geo = require(\"./Geo\");\n\nvar layout = require(\"../../util/layout\");\n\nvar numberUtil = require(\"../../util/number\");\n\nvar geoSourceManager = require(\"./geoSourceManager\");\n\nvar mapDataStorage = require(\"./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*/\n\n/**\n * Resize method bound to the geo\n * @param {module:echarts/coord/geo/GeoModel|module:echarts/chart/map/MapModel} geoModel\n * @param {module:echarts/ExtensionAPI} api\n */\nfunction resizeGeo(geoModel, api) {\n var boundingCoords = geoModel.get('boundingCoords');\n\n if (boundingCoords != null) {\n var leftTop = boundingCoords[0];\n var rightBottom = boundingCoords[1];\n\n if (isNaN(leftTop[0]) || isNaN(leftTop[1]) || isNaN(rightBottom[0]) || isNaN(rightBottom[1])) {} else {\n this.setBoundingRect(leftTop[0], leftTop[1], rightBottom[0] - leftTop[0], rightBottom[1] - leftTop[1]);\n }\n }\n\n var rect = this.getBoundingRect();\n var boxLayoutOption;\n var center = geoModel.get('layoutCenter');\n var size = geoModel.get('layoutSize');\n var viewWidth = api.getWidth();\n var viewHeight = api.getHeight();\n var aspect = rect.width / rect.height * this.aspectScale;\n var useCenterAndSize = false;\n\n if (center && size) {\n center = [numberUtil.parsePercent(center[0], viewWidth), numberUtil.parsePercent(center[1], viewHeight)];\n size = numberUtil.parsePercent(size, Math.min(viewWidth, viewHeight));\n\n if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\n useCenterAndSize = true;\n } else {}\n }\n\n var viewRect;\n\n if (useCenterAndSize) {\n var viewRect = {};\n\n if (aspect > 1) {\n // Width is same with size\n viewRect.width = size;\n viewRect.height = size / aspect;\n } else {\n viewRect.height = size;\n viewRect.width = size * aspect;\n }\n\n viewRect.y = center[1] - viewRect.height / 2;\n viewRect.x = center[0] - viewRect.width / 2;\n } else {\n // Use left/top/width/height\n boxLayoutOption = geoModel.getBoxLayoutParams(); // 0.75 rate\n\n boxLayoutOption.aspect = aspect;\n viewRect = layout.getLayoutRect(boxLayoutOption, {\n width: viewWidth,\n height: viewHeight\n });\n }\n\n this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\n this.setCenter(geoModel.get('center'));\n this.setZoom(geoModel.get('zoom'));\n}\n/**\n * @param {module:echarts/coord/Geo} geo\n * @param {module:echarts/model/Model} model\n * @inner\n */\n\n\nfunction setGeoCoords(geo, model) {\n zrUtil.each(model.get('geoCoord'), function (geoCoord, name) {\n geo.addGeoCoord(name, geoCoord);\n });\n}\n\nvar geoCreator = {\n // For deciding which dimensions to use when creating list data\n dimensions: Geo.prototype.dimensions,\n create: function (ecModel, api) {\n var geoList = []; // FIXME Create each time may be slow\n\n ecModel.eachComponent('geo', function (geoModel, idx) {\n var name = geoModel.get('map');\n var aspectScale = geoModel.get('aspectScale');\n var invertLongitute = true;\n var mapRecords = mapDataStorage.retrieveMap(name);\n\n if (mapRecords && mapRecords[0] && mapRecords[0].type === 'svg') {\n aspectScale == null && (aspectScale = 1);\n invertLongitute = false;\n } else {\n aspectScale == null && (aspectScale = 0.75);\n }\n\n var geo = new Geo(name + idx, name, geoModel.get('nameMap'), invertLongitute);\n geo.aspectScale = aspectScale;\n geo.zoomLimit = geoModel.get('scaleLimit');\n geoList.push(geo);\n setGeoCoords(geo, geoModel);\n geoModel.coordinateSystem = geo;\n geo.model = geoModel; // Inject resize method\n\n geo.resize = resizeGeo;\n geo.resize(geoModel, api);\n });\n ecModel.eachSeries(function (seriesModel) {\n var coordSys = seriesModel.get('coordinateSystem');\n\n if (coordSys === 'geo') {\n var geoIndex = seriesModel.get('geoIndex') || 0;\n seriesModel.coordinateSystem = geoList[geoIndex];\n }\n }); // If has map series\n\n var mapModelGroupBySeries = {};\n ecModel.eachSeriesByType('map', function (seriesModel) {\n if (!seriesModel.getHostGeoModel()) {\n var mapType = seriesModel.getMapType();\n mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\n mapModelGroupBySeries[mapType].push(seriesModel);\n }\n });\n zrUtil.each(mapModelGroupBySeries, function (mapSeries, mapType) {\n var nameMapList = zrUtil.map(mapSeries, function (singleMapSeries) {\n return singleMapSeries.get('nameMap');\n });\n var geo = new Geo(mapType, mapType, zrUtil.mergeAll(nameMapList));\n geo.zoomLimit = zrUtil.retrieve.apply(null, zrUtil.map(mapSeries, function (singleMapSeries) {\n return singleMapSeries.get('scaleLimit');\n }));\n geoList.push(geo); // Inject resize method\n\n geo.resize = resizeGeo;\n geo.aspectScale = mapSeries[0].get('aspectScale');\n geo.resize(mapSeries[0], api);\n zrUtil.each(mapSeries, function (singleMapSeries) {\n singleMapSeries.coordinateSystem = geo;\n setGeoCoords(geo, singleMapSeries);\n });\n });\n return geoList;\n },\n\n /**\n * Fill given regions array\n * @param {Array.} originRegionArr\n * @param {string} mapName\n * @param {Object} [nameMap]\n * @return {Array}\n */\n getFilledRegions: function (originRegionArr, mapName, nameMap) {\n // Not use the original\n var regionsArr = (originRegionArr || []).slice();\n var dataNameMap = zrUtil.createHashMap();\n\n for (var i = 0; i < regionsArr.length; i++) {\n dataNameMap.set(regionsArr[i].name, regionsArr[i]);\n }\n\n var source = geoSourceManager.load(mapName, nameMap);\n zrUtil.each(source.regions, function (region) {\n var name = region.name;\n !dataNameMap.get(name) && regionsArr.push({\n name: name\n });\n });\n return regionsArr;\n }\n};\necharts.registerCoordinateSystem('geo', geoCreator);\nvar _default = geoCreator;\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*/\n\n/*\n* A third-party license is embeded for some of the code in this file:\n* Some formulas were originally copied from \"d3.js\" with some\n* modifications made for this project.\n* (See more details in the comment of the method \"step\" 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 scaleAndAdd = vec2.scaleAndAdd; // function adjacentNode(n, e) {\n// return e.n1 === n ? e.n2 : e.n1;\n// }\n\nfunction forceLayout(nodes, edges, opts) {\n var rect = opts.rect;\n var width = rect.width;\n var height = rect.height;\n var center = [rect.x + width / 2, rect.y + height / 2]; // var scale = opts.scale || 1;\n\n var gravity = opts.gravity == null ? 0.1 : opts.gravity; // for (var i = 0; i < edges.length; i++) {\n // var e = edges[i];\n // var n1 = e.n1;\n // var n2 = e.n2;\n // n1.edges = n1.edges || [];\n // n2.edges = n2.edges || [];\n // n1.edges.push(e);\n // n2.edges.push(e);\n // }\n // Init position\n\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n\n if (!n.p) {\n n.p = vec2.create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\n }\n\n n.pp = vec2.clone(n.p);\n n.edges = null;\n } // Formula in 'Graph Drawing by Force-directed Placement'\n // var k = scale * Math.sqrt(width * height / nodes.length);\n // var k2 = k * k;\n\n\n var initialFriction = opts.friction == null ? 0.6 : opts.friction;\n var friction = initialFriction;\n return {\n warmUp: function () {\n friction = initialFriction * 0.8;\n },\n setFixed: function (idx) {\n nodes[idx].fixed = true;\n },\n setUnfixed: function (idx) {\n nodes[idx].fixed = false;\n },\n\n /**\n * Some formulas were originally copied from \"d3.js\"\n * https://github.com/d3/d3/blob/b516d77fb8566b576088e73410437494717ada26/src/layout/force.js\n * with some modifications made for this project.\n * See the license statement at the head of this file.\n */\n step: function (cb) {\n var v12 = [];\n var nLen = nodes.length;\n\n for (var i = 0; i < edges.length; i++) {\n var e = edges[i];\n\n if (e.ignoreForceLayout) {\n continue;\n }\n\n var n1 = e.n1;\n var n2 = e.n2;\n vec2.sub(v12, n2.p, n1.p);\n var d = vec2.len(v12) - e.d;\n var w = n2.w / (n1.w + n2.w);\n\n if (isNaN(w)) {\n w = 0;\n }\n\n vec2.normalize(v12, v12);\n !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction);\n !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction);\n } // Gravity\n\n\n for (var i = 0; i < nLen; i++) {\n var n = nodes[i];\n\n if (!n.fixed) {\n vec2.sub(v12, center, n.p); // var d = vec2.len(v12);\n // vec2.scale(v12, v12, 1 / d);\n // var gravityFactor = gravity;\n\n scaleAndAdd(n.p, n.p, v12, gravity * friction);\n }\n } // Repulsive\n // PENDING\n\n\n for (var i = 0; i < nLen; i++) {\n var n1 = nodes[i];\n\n for (var j = i + 1; j < nLen; j++) {\n var n2 = nodes[j];\n vec2.sub(v12, n2.p, n1.p);\n var d = vec2.len(v12);\n\n if (d === 0) {\n // Random repulse\n vec2.set(v12, Math.random() - 0.5, Math.random() - 0.5);\n d = 1;\n }\n\n var repFact = (n1.rep + n2.rep) / d / d;\n !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact);\n !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact);\n }\n }\n\n var v = [];\n\n for (var i = 0; i < nLen; i++) {\n var n = nodes[i];\n\n if (!n.fixed) {\n vec2.sub(v, n.p, n.pp);\n scaleAndAdd(n.p, n.p, v, friction);\n vec2.copy(n.pp, n.p);\n }\n }\n\n friction = friction * 0.992;\n cb && cb(nodes, edges, friction < 0.01);\n }\n };\n}\n\nexports.forceLayout = forceLayout;","import * as React from 'react'\nimport Link from 'next/link'\n\ninterface IProps {\n id: string\n className?: string\n children: React.ReactNode\n onClick?(gid: string): void\n}\n\nexport default function SeriesDetailLink(props: IProps) {\n const { id, children, className, onClick } = props\n return (\n \n {\n onClick && onClick(id)\n }}\n target=\"_blank\"\n >\n {children}\n \n \n )\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _helper = require(\"./helper\");\n\nvar prepareDataCoordInfo = _helper.prepareDataCoordInfo;\nvar getStackedOnPoint = _helper.getStackedOnPoint;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// var arrayDiff = require('zrender/src/core/arrayDiff');\n// 'zrender/src/core/arrayDiff' has been used before, but it did\n// not do well in performance when roam with fixed dataZoom window.\n// function convertToIntId(newIdList, oldIdList) {\n// // Generate int id instead of string id.\n// // Compare string maybe slow in score function of arrDiff\n// // Assume id in idList are all unique\n// var idIndicesMap = {};\n// var idx = 0;\n// for (var i = 0; i < newIdList.length; i++) {\n// idIndicesMap[newIdList[i]] = idx;\n// newIdList[i] = idx++;\n// }\n// for (var i = 0; i < oldIdList.length; i++) {\n// var oldId = oldIdList[i];\n// // Same with newIdList\n// if (idIndicesMap[oldId]) {\n// oldIdList[i] = idIndicesMap[oldId];\n// }\n// else {\n// oldIdList[i] = idx++;\n// }\n// }\n// }\nfunction diffData(oldData, newData) {\n var diffResult = [];\n newData.diff(oldData).add(function (idx) {\n diffResult.push({\n cmd: '+',\n idx: idx\n });\n }).update(function (newIdx, oldIdx) {\n diffResult.push({\n cmd: '=',\n idx: oldIdx,\n idx1: newIdx\n });\n }).remove(function (idx) {\n diffResult.push({\n cmd: '-',\n idx: idx\n });\n }).execute();\n return diffResult;\n}\n\nfunction _default(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n var diff = diffData(oldData, newData); // var newIdList = newData.mapArray(newData.getId);\n // var oldIdList = oldData.mapArray(oldData.getId);\n // convertToIntId(newIdList, oldIdList);\n // // FIXME One data ?\n // diff = arrayDiff(oldIdList, newIdList);\n\n var currPoints = [];\n var nextPoints = []; // Points for stacking base line\n\n var currStackedPoints = [];\n var nextStackedPoints = [];\n var status = [];\n var sortedIndices = [];\n var rawIndices = [];\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n\n for (var i = 0; i < diff.length; i++) {\n var diffItem = diff[i];\n var pointAdded = true; // FIXME, animation is not so perfect when dataZoom window moves fast\n // Which is in case remvoing or add more than one data in the tail or head\n\n switch (diffItem.cmd) {\n case '=':\n var currentPt = oldData.getItemLayout(diffItem.idx);\n var nextPt = newData.getItemLayout(diffItem.idx1); // If previous data is NaN, use next point directly\n\n if (isNaN(currentPt[0]) || isNaN(currentPt[1])) {\n currentPt = nextPt.slice();\n }\n\n currPoints.push(currentPt);\n nextPoints.push(nextPt);\n currStackedPoints.push(oldStackedOnPoints[diffItem.idx]);\n nextStackedPoints.push(newStackedOnPoints[diffItem.idx1]);\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\n break;\n\n case '+':\n var idx = diffItem.idx;\n currPoints.push(oldCoordSys.dataToPoint([newData.get(newDataOldCoordInfo.dataDimsForPoint[0], idx), newData.get(newDataOldCoordInfo.dataDimsForPoint[1], idx)]));\n nextPoints.push(newData.getItemLayout(idx).slice());\n currStackedPoints.push(getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, idx));\n nextStackedPoints.push(newStackedOnPoints[idx]);\n rawIndices.push(newData.getRawIndex(idx));\n break;\n\n case '-':\n var idx = diffItem.idx;\n var rawIndex = oldData.getRawIndex(idx); // Data is replaced. In the case of dynamic data queue\n // FIXME FIXME FIXME\n\n if (rawIndex !== idx) {\n currPoints.push(oldData.getItemLayout(idx));\n nextPoints.push(newCoordSys.dataToPoint([oldData.get(oldDataNewCoordInfo.dataDimsForPoint[0], idx), oldData.get(oldDataNewCoordInfo.dataDimsForPoint[1], idx)]));\n currStackedPoints.push(oldStackedOnPoints[idx]);\n nextStackedPoints.push(getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, idx));\n rawIndices.push(rawIndex);\n } else {\n pointAdded = false;\n }\n\n } // Original indices\n\n\n if (pointAdded) {\n status.push(diffItem);\n sortedIndices.push(sortedIndices.length);\n }\n } // Diff result may be crossed if all items are changed\n // Sort by data index\n\n\n sortedIndices.sort(function (a, b) {\n return rawIndices[a] - rawIndices[b];\n });\n var sortedCurrPoints = [];\n var sortedNextPoints = [];\n var sortedCurrStackedPoints = [];\n var sortedNextStackedPoints = [];\n var sortedStatus = [];\n\n for (var i = 0; i < sortedIndices.length; i++) {\n var idx = sortedIndices[i];\n sortedCurrPoints[i] = currPoints[idx];\n sortedNextPoints[i] = nextPoints[idx];\n sortedCurrStackedPoints[i] = currStackedPoints[idx];\n sortedNextStackedPoints[i] = nextStackedPoints[idx];\n sortedStatus[i] = status[idx];\n }\n\n return {\n current: sortedCurrPoints,\n next: sortedNextPoints,\n stackedOnCurrent: sortedCurrStackedPoints,\n stackedOnNext: sortedNextStackedPoints,\n status: sortedStatus\n };\n}\n\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 BaseAxisPointer = require(\"./BaseAxisPointer\");\n\nvar viewHelper = require(\"./viewHelper\");\n\nvar singleAxisHelper = require(\"../../coord/single/singleAxisHelper\");\n\nvar AxisView = require(\"../axis/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 XY = ['x', 'y'];\nvar WH = ['width', 'height'];\nvar SingleAxisPointer = BaseAxisPointer.extend({\n /**\n * @override\n */\n makeElOption: function (elOption, value, axisModel, axisPointerModel, api) {\n var axis = axisModel.axis;\n var coordSys = axis.coordinateSystem;\n var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\n var pixelValue = coordSys.dataToPoint(value)[0];\n var axisPointerType = axisPointerModel.get('type');\n\n if (axisPointerType && axisPointerType !== 'none') {\n var elStyle = viewHelper.buildElStyle(axisPointerModel);\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n pointerOption.style = elStyle;\n elOption.graphicKey = pointerOption.type;\n elOption.pointer = pointerOption;\n }\n\n var layoutInfo = singleAxisHelper.layout(axisModel);\n viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n },\n\n /**\n * @override\n */\n getHandleTransform: function (value, axisModel, axisPointerModel) {\n var layoutInfo = singleAxisHelper.layout(axisModel, {\n labelInside: false\n });\n layoutInfo.labelMargin = axisPointerModel.get('handle.margin');\n return {\n position: viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo),\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n };\n },\n\n /**\n * @override\n */\n updateHandleTransform: function (transform, delta, axisModel, axisPointerModel) {\n var axis = axisModel.axis;\n var coordSys = axis.coordinateSystem;\n var dimIndex = getPointDimIndex(axis);\n var axisExtent = getGlobalExtent(coordSys, dimIndex);\n var currPosition = transform.position;\n currPosition[dimIndex] += delta[dimIndex];\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\n cursorPoint[dimIndex] = currPosition[dimIndex];\n return {\n position: currPosition,\n rotation: transform.rotation,\n cursorPoint: cursorPoint,\n tooltipOption: {\n verticalAlign: 'middle'\n }\n };\n }\n});\nvar pointerShapeBuilder = {\n line: function (axis, pixelValue, otherExtent) {\n var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\n return {\n type: 'Line',\n subPixelOptimize: true,\n shape: targetShape\n };\n },\n shadow: function (axis, pixelValue, otherExtent) {\n var bandWidth = axis.getBandWidth();\n var span = otherExtent[1] - otherExtent[0];\n return {\n type: 'Rect',\n shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\n };\n }\n};\n\nfunction getPointDimIndex(axis) {\n return axis.isHorizontal() ? 0 : 1;\n}\n\nfunction getGlobalExtent(coordSys, dimIndex) {\n var rect = coordSys.getRect();\n return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\n}\n\nAxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\nvar _default = SingleAxisPointer;\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 LegendModel = require(\"./LegendModel\");\n\nvar _layout = require(\"../../util/layout\");\n\nvar mergeLayoutParam = _layout.mergeLayoutParam;\nvar getLayoutParams = _layout.getLayoutParams;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 ScrollableLegendModel = LegendModel.extend({\n type: 'legend.scroll',\n\n /**\n * @param {number} scrollDataIndex\n */\n setScrollDataIndex: function (scrollDataIndex) {\n this.option.scrollDataIndex = scrollDataIndex;\n },\n defaultOption: {\n scrollDataIndex: 0,\n pageButtonItemGap: 5,\n pageButtonGap: null,\n pageButtonPosition: 'end',\n // 'start' or 'end'\n pageFormatter: '{current}/{total}',\n // If null/undefined, do not show page.\n pageIcons: {\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n },\n pageIconColor: '#2f4554',\n pageIconInactiveColor: '#aaa',\n pageIconSize: 15,\n // Can be [10, 3], which represents [width, height]\n pageTextStyle: {\n color: '#333'\n },\n animationDurationUpdate: 800\n },\n\n /**\n * @override\n */\n init: function (option, parentModel, ecModel, extraOpt) {\n var inputPositionParams = getLayoutParams(option);\n ScrollableLegendModel.superCall(this, 'init', option, parentModel, ecModel, extraOpt);\n mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n },\n\n /**\n * @override\n */\n mergeOption: function (option, extraOpt) {\n ScrollableLegendModel.superCall(this, 'mergeOption', option, extraOpt);\n mergeAndNormalizeLayoutParams(this, this.option, option);\n }\n}); // Do not `ignoreSize` to enable setting {left: 10, right: 10}.\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n var orient = legendModel.getOrient();\n var ignoreSize = [1, 1];\n ignoreSize[orient.index] = 0;\n mergeLayoutParam(target, raw, {\n type: 'box',\n ignoreSize: ignoreSize\n });\n}\n\nvar _default = ScrollableLegendModel;\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 _bbox = require(\"zrender/lib/core/bbox\");\n\nvar fromPoints = _bbox.fromPoints;\n\nvar SymbolDraw = require(\"../helper/SymbolDraw\");\n\nvar SymbolClz = require(\"../helper/Symbol\");\n\nvar lineAnimationDiff = require(\"./lineAnimationDiff\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar _poly = require(\"./poly\");\n\nvar Polyline = _poly.Polyline;\nvar Polygon = _poly.Polygon;\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar _helper = require(\"./helper\");\n\nvar prepareDataCoordInfo = _helper.prepareDataCoordInfo;\nvar getStackedOnPoint = _helper.getStackedOnPoint;\n\nvar _createClipPathFromCoordSys = require(\"../helper/createClipPathFromCoordSys\");\n\nvar createGridClipPath = _createClipPathFromCoordSys.createGridClipPath;\nvar createPolarClipPath = _createClipPathFromCoordSys.createPolarClipPath;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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 step not support polar\nfunction isPointsSame(points1, points2) {\n if (points1.length !== points2.length) {\n return;\n }\n\n for (var i = 0; i < points1.length; i++) {\n var p1 = points1[i];\n var p2 = points2[i];\n\n if (p1[0] !== p2[0] || p1[1] !== p2[1]) {\n return;\n }\n }\n\n return true;\n}\n\nfunction getBoundingDiff(points1, points2) {\n var min1 = [];\n var max1 = [];\n var min2 = [];\n var max2 = [];\n fromPoints(points1, min1, max1);\n fromPoints(points2, min2, max2); // Get a max value from each corner of two boundings.\n\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n/**\n * @param {module:echarts/coord/cartesian/Cartesian2D|module:echarts/coord/polar/Polar} coordSys\n * @param {module:echarts/data/List} data\n * @param {Object} dataCoordInfo\n * @param {Array.>} points\n */\n\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n if (!dataCoordInfo.valueDim) {\n return [];\n }\n\n var points = [];\n\n for (var idx = 0, len = data.count(); idx < len; idx++) {\n points.push(getStackedOnPoint(dataCoordInfo, coordSys, data, idx));\n }\n\n return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n var baseAxis = coordSys.getBaseAxis();\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n var stepPoints = [];\n\n for (var i = 0; i < points.length - 1; i++) {\n var nextPt = points[i + 1];\n var pt = points[i];\n stepPoints.push(pt);\n var stepPt = [];\n\n switch (stepTurnAt) {\n case 'end':\n stepPt[baseIndex] = nextPt[baseIndex];\n stepPt[1 - baseIndex] = pt[1 - baseIndex]; // default is start\n\n stepPoints.push(stepPt);\n break;\n\n case 'middle':\n // default is start\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n var stepPt2 = [];\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n stepPoints.push(stepPt);\n stepPoints.push(stepPt2);\n break;\n\n default:\n stepPt[baseIndex] = pt[baseIndex];\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex]; // default is start\n\n stepPoints.push(stepPt);\n }\n } // Last points\n\n\n points[i] && stepPoints.push(points[i]);\n return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n var visualMetaList = data.getVisual('visualMeta');\n\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\n // When data.count() is 0, gradient range can not be calculated.\n return;\n }\n\n if (coordSys.type !== 'cartesian2d') {\n return;\n }\n\n var coordDim;\n var visualMeta;\n\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\n var dimIndex = visualMetaList[i].dimension;\n var dimName = data.dimensions[dimIndex];\n var dimInfo = data.getDimensionInfo(dimName);\n coordDim = dimInfo && dimInfo.coordDim; // Can only be x or y\n\n if (coordDim === 'x' || coordDim === 'y') {\n visualMeta = visualMetaList[i];\n break;\n }\n }\n\n if (!visualMeta) {\n return;\n } // If the area to be rendered is bigger than area defined by LinearGradient,\n // the canvas spec prescribes that the color of the first stop and the last\n // stop should be used. But if two stops are added at offset 0, in effect\n // browsers use the color of the second stop to render area outside\n // LinearGradient. So we can only infinitesimally extend area defined in\n // LinearGradient to render `outerColors`.\n\n\n var axis = coordSys.getAxis(coordDim); // dataToCoor mapping may not be linear, but must be monotonic.\n\n var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n return {\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n color: stop.color\n };\n });\n var stopLen = colorStops.length;\n var outerColors = visualMeta.outerColors.slice();\n\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n colorStops.reverse();\n outerColors.reverse();\n }\n\n var tinyExtent = 10; // Arbitrary value: 10px\n\n var minCoord = colorStops[0].coord - tinyExtent;\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n var coordSpan = maxCoord - minCoord;\n\n if (coordSpan < 1e-3) {\n return 'transparent';\n }\n\n zrUtil.each(colorStops, function (stop) {\n stop.offset = (stop.coord - minCoord) / coordSpan;\n });\n colorStops.push({\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n color: outerColors[1] || 'transparent'\n });\n colorStops.unshift({\n // notice colorStops.length have been changed.\n offset: stopLen ? colorStops[0].offset : 0.5,\n color: outerColors[0] || 'transparent'\n }); // zrUtil.each(colorStops, function (colorStop) {\n // // Make sure each offset has rounded px to avoid not sharp edge\n // colorStop.offset = (Math.round(colorStop.offset * (end - start) + start) - start) / (end - start);\n // });\n\n var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n gradient[coordDim] = minCoord;\n gradient[coordDim + '2'] = maxCoord;\n return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n var showAllSymbol = seriesModel.get('showAllSymbol');\n var isAuto = showAllSymbol === 'auto';\n\n if (showAllSymbol && !isAuto) {\n return;\n }\n\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n if (!categoryAxis) {\n return;\n } // Note that category label interval strategy might bring some weird effect\n // in some scenario: users may wonder why some of the symbols are not\n // displayed. So we show all symbols as possible as we can.\n\n\n if (isAuto // Simplify the logic, do not determine label overlap here.\n && canShowAllSymbolForCategory(categoryAxis, data)) {\n return;\n } // Otherwise follow the label interval strategy on category axis.\n\n\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\n var labelMap = {};\n zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n labelMap[labelItem.tickValue] = 1;\n });\n return function (dataIndex) {\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n // In mose cases, line is monotonous on category axis, and the label size\n // is close with each other. So we check the symbol size and some of the\n // label size alone with the category axis to estimate whether all symbol\n // can be shown without overlap.\n var axisExtent = categoryAxis.getExtent();\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n isNaN(availSize) && (availSize = 0); // 0/0 is NaN.\n // Sampling some points, max 5.\n\n var dataLen = data.count();\n var step = Math.max(1, Math.round(dataLen / 5));\n\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n if (SymbolClz.getSymbolSize(data, dataIndex // Only for cartesian, where `isHorizontal` exists.\n )[categoryAxis.isHorizontal() ? 1 : 0] // Empirical number\n * 1.5 > availSize) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction createLineClipPath(coordSys, hasAnimation, seriesModel) {\n if (coordSys.type === 'cartesian2d') {\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel); // Expand clip shape to avoid clipping when line value exceeds axis\n\n if (!seriesModel.get('clip', true)) {\n var rectShape = clipPath.shape;\n var expandSize = Math.max(rectShape.width, rectShape.height);\n\n if (isHorizontal) {\n rectShape.y -= expandSize;\n rectShape.height += expandSize * 2;\n } else {\n rectShape.x -= expandSize;\n rectShape.width += expandSize * 2;\n }\n }\n\n return clipPath;\n } else {\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n }\n}\n\nvar _default = ChartView.extend({\n type: 'line',\n init: function () {\n var lineGroup = new graphic.Group();\n var symbolDraw = new SymbolDraw();\n this.group.add(symbolDraw.group);\n this._symbolDraw = symbolDraw;\n this._lineGroup = lineGroup;\n },\n render: function (seriesModel, ecModel, api) {\n var coordSys = seriesModel.coordinateSystem;\n var group = this.group;\n var data = seriesModel.getData();\n var lineStyleModel = seriesModel.getModel('lineStyle');\n var areaStyleModel = seriesModel.getModel('areaStyle');\n var points = data.mapArray(data.getItemLayout);\n var isCoordSysPolar = coordSys.type === 'polar';\n var prevCoordSys = this._coordSys;\n var symbolDraw = this._symbolDraw;\n var polyline = this._polyline;\n var polygon = this._polygon;\n var lineGroup = this._lineGroup;\n var hasAnimation = seriesModel.get('animation');\n var isAreaChart = !areaStyleModel.isEmpty();\n var valueOrigin = areaStyleModel.get('origin');\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n var stackedOnPoints = getStackedOnPoints(coordSys, data, dataCoordInfo);\n var showSymbol = seriesModel.get('showSymbol');\n var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys); // Remove temporary symbols\n\n var oldData = this._data;\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\n if (el.__temp) {\n group.remove(el);\n oldData.setItemGraphicEl(idx, null);\n }\n }); // Remove previous created symbols if showSymbol changed to false\n\n if (!showSymbol) {\n symbolDraw.remove();\n }\n\n group.add(lineGroup); // FIXME step not support polar\n\n var step = !isCoordSysPolar && seriesModel.get('step');\n var clipShapeForSymbol;\n\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n clipShapeForSymbol = coordSys.getArea(); // Avoid float number rounding error for symbol on the edge of axis extent.\n // See #7913 and `test/dataZoom-clip.html`.\n\n if (clipShapeForSymbol.width != null) {\n clipShapeForSymbol.x -= 0.1;\n clipShapeForSymbol.y -= 0.1;\n clipShapeForSymbol.width += 0.2;\n clipShapeForSymbol.height += 0.2;\n } else if (clipShapeForSymbol.r0) {\n clipShapeForSymbol.r0 -= 0.5;\n clipShapeForSymbol.r1 += 0.5;\n }\n }\n\n this._clipShapeForSymbol = clipShapeForSymbol; // Initialization animation or coordinate system changed\n\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n showSymbol && symbolDraw.updateData(data, {\n isIgnore: isIgnoreFunc,\n clipShape: clipShapeForSymbol\n });\n\n if (step) {\n // TODO If stacked series is not step\n points = turnPointsIntoStep(points, coordSys, step);\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n }\n\n polyline = this._newPolyline(points, coordSys, hasAnimation);\n\n if (isAreaChart) {\n polygon = this._newPolygon(points, stackedOnPoints, coordSys, hasAnimation);\n }\n\n lineGroup.setClipPath(createLineClipPath(coordSys, true, seriesModel));\n } else {\n if (isAreaChart && !polygon) {\n // If areaStyle is added\n polygon = this._newPolygon(points, stackedOnPoints, coordSys, hasAnimation);\n } else if (polygon && !isAreaChart) {\n // If areaStyle is removed\n lineGroup.remove(polygon);\n polygon = this._polygon = null;\n } // Update clipPath\n\n\n lineGroup.setClipPath(createLineClipPath(coordSys, false, seriesModel)); // Always update, or it is wrong in the case turning on legend\n // because points are not changed\n\n showSymbol && symbolDraw.updateData(data, {\n isIgnore: isIgnoreFunc,\n clipShape: clipShapeForSymbol\n }); // Stop symbol animation and sync with line points\n // FIXME performance?\n\n data.eachItemGraphicEl(function (el) {\n el.stopAnimation(true);\n }); // In the case data zoom triggerred refreshing frequently\n // Data may not change if line has a category axis. So it should animate nothing\n\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n if (hasAnimation) {\n this._updateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n } else {\n // Not do it in update with animation\n if (step) {\n // TODO If stacked series is not step\n points = turnPointsIntoStep(points, coordSys, step);\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n }\n\n polyline.setShape({\n points: points\n });\n polygon && polygon.setShape({\n points: points,\n stackedOnPoints: stackedOnPoints\n });\n }\n }\n }\n\n var visualColor = getVisualGradient(data, coordSys) || data.getVisual('color');\n polyline.useStyle(zrUtil.defaults( // Use color in lineStyle first\n lineStyleModel.getLineStyle(), {\n fill: 'none',\n stroke: visualColor,\n lineJoin: 'bevel'\n }));\n var smooth = seriesModel.get('smooth');\n smooth = getSmooth(seriesModel.get('smooth'));\n polyline.setShape({\n smooth: smooth,\n smoothMonotone: seriesModel.get('smoothMonotone'),\n connectNulls: seriesModel.get('connectNulls')\n });\n\n if (polygon) {\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n var stackedOnSmooth = 0;\n polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n fill: visualColor,\n opacity: 0.7,\n lineJoin: 'bevel'\n }));\n\n if (stackedOnSeries) {\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n }\n\n polygon.setShape({\n smooth: smooth,\n stackedOnSmooth: stackedOnSmooth,\n smoothMonotone: seriesModel.get('smoothMonotone'),\n connectNulls: seriesModel.get('connectNulls')\n });\n }\n\n this._data = data; // Save the coordinate system for transition animation when data changed\n\n this._coordSys = coordSys;\n this._stackedOnPoints = stackedOnPoints;\n this._points = points;\n this._step = step;\n this._valueOrigin = valueOrigin;\n },\n dispose: function () {},\n highlight: function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n var symbol = data.getItemGraphicEl(dataIndex);\n\n if (!symbol) {\n // Create a temporary symbol if it is not exists\n var pt = data.getItemLayout(dataIndex);\n\n if (!pt) {\n // Null data\n return;\n } // fix #11360: should't draw symbol outside clipShapeForSymbol\n\n\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(pt[0], pt[1])) {\n return;\n }\n\n symbol = new SymbolClz(data, dataIndex);\n symbol.position = pt;\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n symbol.ignore = isNaN(pt[0]) || isNaN(pt[1]);\n symbol.__temp = true;\n data.setItemGraphicEl(dataIndex, symbol); // Stop scale animation\n\n symbol.stopSymbolAnimation(true);\n this.group.add(symbol);\n }\n\n symbol.highlight();\n } else {\n // Highlight whole series\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n }\n },\n downplay: function (seriesModel, ecModel, api, payload) {\n var data = seriesModel.getData();\n var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n if (dataIndex != null && dataIndex >= 0) {\n var symbol = data.getItemGraphicEl(dataIndex);\n\n if (symbol) {\n if (symbol.__temp) {\n data.setItemGraphicEl(dataIndex, null);\n this.group.remove(symbol);\n } else {\n symbol.downplay();\n }\n }\n } else {\n // FIXME\n // can not downplay completely.\n // Downplay whole series\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n }\n },\n\n /**\n * @param {module:zrender/container/Group} group\n * @param {Array.>} points\n * @private\n */\n _newPolyline: function (points) {\n var polyline = this._polyline; // Remove previous created polyline\n\n if (polyline) {\n this._lineGroup.remove(polyline);\n }\n\n polyline = new Polyline({\n shape: {\n points: points\n },\n silent: true,\n z2: 10\n });\n\n this._lineGroup.add(polyline);\n\n this._polyline = polyline;\n return polyline;\n },\n\n /**\n * @param {module:zrender/container/Group} group\n * @param {Array.>} stackedOnPoints\n * @param {Array.>} points\n * @private\n */\n _newPolygon: function (points, stackedOnPoints) {\n var polygon = this._polygon; // Remove previous created polygon\n\n if (polygon) {\n this._lineGroup.remove(polygon);\n }\n\n polygon = new Polygon({\n shape: {\n points: points,\n stackedOnPoints: stackedOnPoints\n },\n silent: true\n });\n\n this._lineGroup.add(polygon);\n\n this._polygon = polygon;\n return polygon;\n },\n\n /**\n * @private\n */\n // FIXME Two value axis\n _updateAnimation: function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n var polyline = this._polyline;\n var polygon = this._polygon;\n var seriesModel = data.hostModel;\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n var current = diff.current;\n var stackedOnCurrent = diff.stackedOnCurrent;\n var next = diff.next;\n var stackedOnNext = diff.stackedOnNext;\n\n if (step) {\n // TODO If stacked series is not step\n current = turnPointsIntoStep(diff.current, coordSys, step);\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n next = turnPointsIntoStep(diff.next, coordSys, step);\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n } // Don't apply animation if diff is large.\n // For better result and avoid memory explosion problems like\n // https://github.com/apache/incubator-echarts/issues/12229\n\n\n if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n polyline.setShape({\n points: next\n });\n\n if (polygon) {\n polygon.setShape({\n points: next,\n stackedOnPoints: stackedOnNext\n });\n }\n\n return;\n } // `diff.current` is subset of `current` (which should be ensured by\n // turnPointsIntoStep), so points in `__points` can be updated when\n // points in `current` are update during animation.\n\n\n polyline.shape.__points = diff.current;\n polyline.shape.points = current;\n graphic.updateProps(polyline, {\n shape: {\n points: next\n }\n }, seriesModel);\n\n if (polygon) {\n polygon.setShape({\n points: current,\n stackedOnPoints: stackedOnCurrent\n });\n graphic.updateProps(polygon, {\n shape: {\n points: next,\n stackedOnPoints: stackedOnNext\n }\n }, seriesModel);\n }\n\n var updatedDataInfo = [];\n var diffStatus = diff.status;\n\n for (var i = 0; i < diffStatus.length; i++) {\n var cmd = diffStatus[i].cmd;\n\n if (cmd === '=') {\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n if (el) {\n updatedDataInfo.push({\n el: el,\n ptIdx: i // Index of points\n\n });\n }\n }\n }\n\n if (polyline.animators && polyline.animators.length) {\n polyline.animators[0].during(function () {\n for (var i = 0; i < updatedDataInfo.length; i++) {\n var el = updatedDataInfo[i].el;\n el.attr('position', polyline.shape.__points[updatedDataInfo[i].ptIdx]);\n }\n });\n }\n },\n remove: function (ecModel) {\n var group = this.group;\n var oldData = this._data;\n\n this._lineGroup.removeAll();\n\n this._symbolDraw.remove(true); // Remove temporary created elements when highlighting\n\n\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\n if (el.__temp) {\n group.remove(el);\n oldData.setItemGraphicEl(idx, null);\n }\n });\n this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._data = null;\n }\n});\n\nmodule.exports = _default;","require(\"./graphic\");\n\nvar _zrender = require(\"../zrender\");\n\nvar registerPainter = _zrender.registerPainter;\n\nvar Painter = require(\"./Painter\");\n\nregisterPainter('vml', Painter);","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar AxisBuilder = require(\"./AxisBuilder\");\n\nvar AxisView = require(\"./AxisView\");\n\nvar cartesianAxisHelper = require(\"../../coord/cartesian/cartesianAxisHelper\");\n\nvar _axisSplitHelper = require(\"./axisSplitHelper\");\n\nvar rectCoordAxisBuildSplitArea = _axisSplitHelper.rectCoordAxisBuildSplitArea;\nvar rectCoordAxisHandleRemove = _axisSplitHelper.rectCoordAxisHandleRemove;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 = ['splitArea', 'splitLine', 'minorSplitLine'];\nvar CartesianAxisView = AxisView.extend({\n type: 'cartesianAxis',\n axisPointerClass: 'CartesianAxisPointer',\n\n /**\n * @override\n */\n render: function (axisModel, ecModel, api, payload) {\n this.group.removeAll();\n var oldAxisGroup = this._axisGroup;\n this._axisGroup = new graphic.Group();\n this.group.add(this._axisGroup);\n\n if (!axisModel.get('show')) {\n return;\n }\n\n var gridModel = axisModel.getCoordSysModel();\n var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n var axisBuilder = new AxisBuilder(axisModel, layout);\n zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n this._axisGroup.add(axisBuilder.getGroup());\n\n zrUtil.each(selfBuilderAttrs, function (name) {\n if (axisModel.get(name + '.show')) {\n this['_' + name](axisModel, gridModel);\n }\n }, this);\n graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n CartesianAxisView.superCall(this, 'render', axisModel, ecModel, api, payload);\n },\n remove: function () {\n rectCoordAxisHandleRemove(this);\n },\n\n /**\n * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n * @param {module:echarts/coord/cartesian/GridModel} gridModel\n * @private\n */\n _splitLine: function (axisModel, gridModel) {\n var axis = axisModel.axis;\n\n if (axis.scale.isBlank()) {\n return;\n }\n\n var splitLineModel = axisModel.getModel('splitLine');\n var lineStyleModel = splitLineModel.getModel('lineStyle');\n var lineColors = lineStyleModel.get('color');\n lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var lineCount = 0;\n var ticksCoords = axis.getTicksCoords({\n tickModel: splitLineModel\n });\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < ticksCoords.length; i++) {\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n var colorIndex = lineCount++ % lineColors.length;\n var tickValue = ticksCoords[i].tickValue;\n\n this._axisGroup.add(new graphic.Line({\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n subPixelOptimize: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: zrUtil.defaults({\n stroke: lineColors[colorIndex]\n }, lineStyle),\n silent: true\n }));\n }\n },\n\n /**\n * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n * @param {module:echarts/coord/cartesian/GridModel} gridModel\n * @private\n */\n _minorSplitLine: function (axisModel, gridModel) {\n var axis = axisModel.axis;\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n var gridRect = gridModel.coordinateSystem.getRect();\n var isHorizontal = axis.isHorizontal();\n var minorTicksCoords = axis.getMinorTicksCoords();\n\n if (!minorTicksCoords.length) {\n return;\n }\n\n var p1 = [];\n var p2 = [];\n var lineStyle = lineStyleModel.getLineStyle();\n\n for (var i = 0; i < minorTicksCoords.length; i++) {\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n if (isHorizontal) {\n p1[0] = tickCoord;\n p1[1] = gridRect.y;\n p2[0] = tickCoord;\n p2[1] = gridRect.y + gridRect.height;\n } else {\n p1[0] = gridRect.x;\n p1[1] = tickCoord;\n p2[0] = gridRect.x + gridRect.width;\n p2[1] = tickCoord;\n }\n\n this._axisGroup.add(new graphic.Line({\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n subPixelOptimize: true,\n shape: {\n x1: p1[0],\n y1: p1[1],\n x2: p2[0],\n y2: p2[1]\n },\n style: lineStyle,\n silent: true\n }));\n }\n }\n },\n\n /**\n * @param {module:echarts/coord/cartesian/AxisModel} axisModel\n * @param {module:echarts/coord/cartesian/GridModel} gridModel\n * @private\n */\n _splitArea: function (axisModel, gridModel) {\n rectCoordAxisBuildSplitArea(this, this._axisGroup, axisModel, gridModel);\n }\n});\nCartesianAxisView.extend({\n type: 'xAxis'\n});\nCartesianAxisView.extend({\n type: 'yAxis'\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 throttleUtil = require(\"../util/throttle\");\n\nvar parallelPreprocessor = require(\"../coord/parallel/parallelPreprocessor\");\n\nrequire(\"../coord/parallel/parallelCreator\");\n\nrequire(\"../coord/parallel/ParallelModel\");\n\nrequire(\"./parallelAxis\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 CLICK_THRESHOLD = 5; // > 4\n// Parallel view\n\necharts.extendComponentView({\n type: 'parallel',\n render: function (parallelModel, ecModel, api) {\n this._model = parallelModel;\n this._api = api;\n\n if (!this._handlers) {\n this._handlers = {};\n zrUtil.each(handlers, function (handler, eventName) {\n api.getZr().on(eventName, this._handlers[eventName] = zrUtil.bind(handler, this));\n }, this);\n }\n\n throttleUtil.createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\n },\n dispose: function (ecModel, api) {\n zrUtil.each(this._handlers, function (handler, eventName) {\n api.getZr().off(eventName, handler);\n });\n this._handlers = null;\n },\n\n /**\n * @param {Object} [opt] If null, cancle the last action triggering for debounce.\n */\n _throttledDispatchExpand: function (opt) {\n this._dispatchExpand(opt);\n },\n _dispatchExpand: function (opt) {\n opt && this._api.dispatchAction(zrUtil.extend({\n type: 'parallelAxisExpand'\n }, opt));\n }\n});\nvar handlers = {\n mousedown: function (e) {\n if (checkTrigger(this, 'click')) {\n this._mouseDownPoint = [e.offsetX, e.offsetY];\n }\n },\n mouseup: function (e) {\n var mouseDownPoint = this._mouseDownPoint;\n\n if (checkTrigger(this, 'click') && mouseDownPoint) {\n var point = [e.offsetX, e.offsetY];\n var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2);\n\n if (dist > CLICK_THRESHOLD) {\n return;\n }\n\n var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n\n result.behavior !== 'none' && this._dispatchExpand({\n axisExpandWindow: result.axisExpandWindow\n });\n }\n\n this._mouseDownPoint = null;\n },\n mousemove: function (e) {\n // Should do nothing when brushing.\n if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\n return;\n }\n\n var model = this._model;\n var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n var behavior = result.behavior;\n behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\n\n this._throttledDispatchExpand(behavior === 'none' ? null // Cancle the last trigger, in case that mouse slide out of the area quickly.\n : {\n axisExpandWindow: result.axisExpandWindow,\n // Jumping uses animation, and sliding suppresses animation.\n animation: behavior === 'jump' ? null : false\n });\n }\n};\n\nfunction checkTrigger(view, triggerOn) {\n var model = view._model;\n return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\n}\n\necharts.registerPreprocessor(parallelPreprocessor);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 visualSolution = require(\"../../visual/visualSolution\");\n\nvar Model = require(\"../../model/Model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar DEFAULT_OUT_OF_BRUSH_COLOR = ['#ddd'];\nvar BrushModel = echarts.extendComponentModel({\n type: 'brush',\n dependencies: ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'],\n\n /**\n * @protected\n */\n defaultOption: {\n // inBrush: null,\n // outOfBrush: null,\n toolbox: null,\n // Default value see preprocessor.\n brushLink: null,\n // Series indices array, broadcast using dataIndex.\n // or 'all', which means all series. 'none' or null means no series.\n seriesIndex: 'all',\n // seriesIndex array, specify series controlled by this brush component.\n geoIndex: null,\n //\n xAxisIndex: null,\n yAxisIndex: null,\n brushType: 'rect',\n // Default brushType, see BrushController.\n brushMode: 'single',\n // Default brushMode, 'single' or 'multiple'\n transformable: true,\n // Default transformable.\n brushStyle: {\n // Default brushStyle\n borderWidth: 1,\n color: 'rgba(120,140,180,0.3)',\n borderColor: 'rgba(120,140,180,0.8)'\n },\n throttleType: 'fixRate',\n // Throttle in brushSelected event. 'fixRate' or 'debounce'.\n // If null, no throttle. Valid only in the first brush component\n throttleDelay: 0,\n // Unit: ms, 0 means every event will be triggered.\n // FIXME\n // 试验效果\n removeOnClick: true,\n z: 10000\n },\n\n /**\n * @readOnly\n * @type {Array.}\n */\n areas: [],\n\n /**\n * Current activated brush type.\n * If null, brush is inactived.\n * see module:echarts/component/helper/BrushController\n * @readOnly\n * @type {string}\n */\n brushType: null,\n\n /**\n * Current brush opt.\n * see module:echarts/component/helper/BrushController\n * @readOnly\n * @type {Object}\n */\n brushOption: {},\n\n /**\n * @readOnly\n * @type {Array.}\n */\n coordInfoList: [],\n optionUpdated: function (newOption, isInit) {\n var thisOption = this.option;\n !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\n var inBrush = thisOption.inBrush = thisOption.inBrush || {}; // Always give default visual, consider setOption at the second time.\n\n thisOption.outOfBrush = thisOption.outOfBrush || {\n color: DEFAULT_OUT_OF_BRUSH_COLOR\n };\n\n if (!inBrush.hasOwnProperty('liftZ')) {\n // Bigger than the highlight z lift, otherwise it will\n // be effected by the highlight z when brush.\n inBrush.liftZ = 5;\n }\n },\n\n /**\n * If ranges is null/undefined, range state remain.\n *\n * @param {Array.} [ranges]\n */\n setAreas: function (areas) {\n // If ranges is null/undefined, range state remain.\n // This helps user to dispatchAction({type: 'brush'}) with no areas\n // set but just want to get the current brush select info from a `brush` event.\n if (!areas) {\n return;\n }\n\n this.areas = zrUtil.map(areas, function (area) {\n return generateBrushOption(this.option, area);\n }, this);\n },\n\n /**\n * see module:echarts/component/helper/BrushController\n * @param {Object} brushOption\n */\n setBrushOption: function (brushOption) {\n this.brushOption = generateBrushOption(this.option, brushOption);\n this.brushType = this.brushOption.brushType;\n }\n});\n\nfunction generateBrushOption(option, brushOption) {\n return zrUtil.merge({\n brushType: option.brushType,\n brushMode: option.brushMode,\n transformable: option.transformable,\n brushStyle: new Model(option.brushStyle).getItemStyle(),\n removeOnClick: option.removeOnClick,\n z: option.z\n }, brushOption, true);\n}\n\nvar _default = BrushModel;\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 createListSimply = require(\"../helper/createListSimply\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar _number = require(\"../../util/number\");\n\nvar getPercentWithPrecision = _number.getPercentWithPrecision;\n\nvar dataSelectableMixin = require(\"../../component/helper/selectableMixin\");\n\nvar _dataProvider = require(\"../../data/helper/dataProvider\");\n\nvar retrieveRawAttr = _dataProvider.retrieveRawAttr;\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 PieSeries = echarts.extendSeriesModel({\n type: 'series.pie',\n // Overwrite\n init: function (option) {\n PieSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n this.updateSelectedMap(this._createSelectableList());\n\n this._defaultLabelLine(option);\n },\n // Overwrite\n mergeOption: function (newOption) {\n PieSeries.superCall(this, 'mergeOption', newOption);\n this.updateSelectedMap(this._createSelectableList());\n },\n getInitialData: function (option, ecModel) {\n return createListSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n },\n _createSelectableList: function () {\n var data = this.getRawData();\n var valueDim = data.mapDimension('value');\n var targetList = [];\n\n for (var i = 0, len = data.count(); i < len; i++) {\n targetList.push({\n name: data.getName(i),\n value: data.get(valueDim, i),\n selected: retrieveRawAttr(data, i, 'selected')\n });\n }\n\n return targetList;\n },\n // Overwrite\n getDataParams: function (dataIndex) {\n var data = this.getData();\n var params = PieSeries.superCall(this, 'getDataParams', dataIndex); // FIXME toFixed?\n\n var valueList = [];\n data.each(data.mapDimension('value'), function (value) {\n valueList.push(value);\n });\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n params.$vars.push('percent');\n return params;\n },\n _defaultLabelLine: function (option) {\n // Extend labelLine emphasis\n modelUtil.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 defaultOption: {\n zlevel: 0,\n z: 2,\n legendHoverLink: true,\n hoverAnimation: true,\n // 默认全局居中\n center: ['50%', '50%'],\n radius: [0, '75%'],\n // 默认顺时针\n clockwise: true,\n startAngle: 90,\n // 最小角度改为0\n minAngle: 0,\n // If the angle of a sector less than `minShowLabelAngle`,\n // the label will not be displayed.\n minShowLabelAngle: 0,\n // 选中时扇区偏移量\n selectedOffset: 10,\n // 高亮扇区偏移量\n hoverOffset: 10,\n // If use strategy to avoid label overlapping\n avoidLabelOverlap: true,\n // 选择模式,默认关闭,可选single,multiple\n // selectedMode: false,\n // 南丁格尔玫瑰图模式,'radius'(半径) | 'area'(面积)\n // roseType: null,\n percentPrecision: 2,\n // If still show when all data zero.\n stillShowZeroSum: true,\n // cursor: null,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n width: null,\n height: null,\n label: {\n // If rotate around circle\n rotate: false,\n show: true,\n // 'outer', 'inside', 'center'\n position: 'outer',\n // 'none', 'labelLine', 'edge'. Works only when position is 'outer'\n alignTo: 'none',\n // Closest distance between label and chart edge.\n // Works only position is 'outer' and alignTo is 'edge'.\n margin: '25%',\n // Works only position is 'outer' and alignTo is not 'edge'.\n bleedMargin: 10,\n // Distance between text and label line.\n distanceToLabelLine: 5 // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n // 默认使用全局文本样式,详见TEXTSTYLE\n // distance: 当position为inner时有效,为label位置到圆心的距离与圆半径(环状图为内外半径和)的比例系数\n\n },\n // Enabled when label.normal.position is 'outer'\n labelLine: {\n show: true,\n // 引导线两段中的第一段长度\n length: 15,\n // 引导线两段中的第二段长度\n length2: 15,\n smooth: false,\n lineStyle: {\n // color: 各异,\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n borderWidth: 1\n },\n // Animation type. Valid values: expansion, scale\n animationType: 'expansion',\n // Animation type when update. Valid values: transition, expansion\n animationTypeUpdate: 'transition',\n animationEasing: 'cubicOut'\n }\n});\nzrUtil.mixin(PieSeries, dataSelectableMixin);\nvar _default = PieSeries;\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 BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar _cursorHelper = require(\"./cursorHelper\");\n\nvar onIrrelevantElement = _cursorHelper.onIrrelevantElement;\n\nvar graphicUtil = require(\"../../util/graphic\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 makeRectPanelClipPath(rect) {\n rect = normalizeRect(rect);\n return function (localPoints, transform) {\n return graphicUtil.clipPointsByRect(localPoints, rect);\n };\n}\n\nfunction makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n rect = normalizeRect(rect);\n return function (xyIndex) {\n var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n var brushWidth = idx ? rect.width : rect.height;\n var base = idx ? rect.x : rect.y;\n return [base, base + (brushWidth || 0)];\n };\n}\n\nfunction makeRectIsTargetByCursor(rect, api, targetModel) {\n rect = normalizeRect(rect);\n return function (e, localCursorPoint, transform) {\n return rect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n };\n} // Consider width/height is negative.\n\n\nfunction normalizeRect(rect) {\n return BoundingRect.create(rect);\n}\n\nexports.makeRectPanelClipPath = makeRectPanelClipPath;\nexports.makeLinearBrushOtherExtent = makeLinearBrushOtherExtent;\nexports.makeRectIsTargetByCursor = makeRectIsTargetByCursor;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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(\"../coord/polar/polarCreator\");\n\nrequire(\"./axis/AngleAxisView\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar graphic = require(\"../../util/graphic\");\n\nvar layout = require(\"../../util/layout\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _treeHelper = require(\"../helper/treeHelper\");\n\nvar wrapTreePathInfo = _treeHelper.wrapTreePathInfo;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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 TEXT_PADDING = 8;\nvar ITEM_GAP = 8;\nvar ARRAY_LENGTH = 5;\n\nfunction Breadcrumb(containerGroup) {\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n this.group = new graphic.Group();\n containerGroup.add(this.group);\n}\n\nBreadcrumb.prototype = {\n constructor: Breadcrumb,\n render: function (seriesModel, api, targetNode, onSelect) {\n var model = seriesModel.getModel('breadcrumb');\n var thisGroup = this.group;\n thisGroup.removeAll();\n\n if (!model.get('show') || !targetNode) {\n return;\n }\n\n var normalStyleModel = model.getModel('itemStyle'); // var emphasisStyleModel = model.getModel('emphasis.itemStyle');\n\n var textStyleModel = normalStyleModel.getModel('textStyle');\n var layoutParam = {\n pos: {\n left: model.get('left'),\n right: model.get('right'),\n top: model.get('top'),\n bottom: model.get('bottom')\n },\n box: {\n width: api.getWidth(),\n height: api.getHeight()\n },\n emptyItemWidth: model.get('emptyItemWidth'),\n totalWidth: 0,\n renderList: []\n };\n\n this._prepare(targetNode, layoutParam, textStyleModel);\n\n this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\n\n layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box);\n },\n\n /**\n * Prepare render list and total width\n * @private\n */\n _prepare: function (targetNode, layoutParam, textStyleModel) {\n for (var node = targetNode; node; node = node.parentNode) {\n var text = node.getModel().get('name');\n var textRect = textStyleModel.getTextRect(text);\n var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\n layoutParam.totalWidth += itemWidth + ITEM_GAP;\n layoutParam.renderList.push({\n node: node,\n text: text,\n width: itemWidth\n });\n }\n },\n\n /**\n * @private\n */\n _renderContent: function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\n // Start rendering.\n var lastX = 0;\n var emptyItemWidth = layoutParam.emptyItemWidth;\n var height = seriesModel.get('breadcrumb.height');\n var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box);\n var totalWidth = layoutParam.totalWidth;\n var renderList = layoutParam.renderList;\n\n for (var i = renderList.length - 1; i >= 0; i--) {\n var item = renderList[i];\n var itemNode = item.node;\n var itemWidth = item.width;\n var text = item.text; // Hdie text and shorten width if necessary.\n\n if (totalWidth > availableSize.width) {\n totalWidth -= itemWidth - emptyItemWidth;\n itemWidth = emptyItemWidth;\n text = null;\n }\n\n var el = new graphic.Polygon({\n shape: {\n points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\n },\n style: zrUtil.defaults(normalStyleModel.getItemStyle(), {\n lineJoin: 'bevel',\n text: text,\n textFill: textStyleModel.getTextColor(),\n textFont: textStyleModel.getFont()\n }),\n z: 10,\n onclick: zrUtil.curry(onSelect, itemNode)\n });\n this.group.add(el);\n packEventData(el, seriesModel, itemNode);\n lastX += itemWidth + ITEM_GAP;\n }\n },\n\n /**\n * @override\n */\n remove: function () {\n this.group.removeAll();\n }\n};\n\nfunction makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\n var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];\n !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\n !head && points.push([x, y + itemHeight / 2]);\n return points;\n} // Package custom mouse event.\n\n\nfunction packEventData(el, seriesModel, itemNode) {\n el.eventData = {\n componentType: 'series',\n componentSubType: 'treemap',\n componentIndex: seriesModel.componentIndex,\n seriesIndex: seriesModel.componentIndex,\n seriesName: seriesModel.name,\n seriesType: 'treemap',\n selfType: 'breadcrumb',\n // Distinguish with click event on treemap node.\n nodeData: {\n dataIndex: itemNode && itemNode.dataIndex,\n name: itemNode && itemNode.name\n },\n treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\n };\n}\n\nvar _default = Breadcrumb;\nmodule.exports = _default;","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/default-127363fed38cdea23389fd32310c6413.png\";","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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// FIXME 公用?\n\n/**\n * @param {Array.} datas\n * @param {string} statisticType 'average' 'sum'\n * @inner\n */\nfunction dataStatistics(datas, statisticType) {\n var dataNameMap = {};\n zrUtil.each(datas, function (data) {\n data.each(data.mapDimension('value'), function (value, idx) {\n // Add prefix to avoid conflict with Object.prototype.\n var mapKey = 'ec-' + data.getName(idx);\n dataNameMap[mapKey] = dataNameMap[mapKey] || [];\n\n if (!isNaN(value)) {\n dataNameMap[mapKey].push(value);\n }\n });\n });\n return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\n var mapKey = 'ec-' + datas[0].getName(idx);\n var sum = 0;\n var min = Infinity;\n var max = -Infinity;\n var len = dataNameMap[mapKey].length;\n\n for (var i = 0; i < len; i++) {\n min = Math.min(min, dataNameMap[mapKey][i]);\n max = Math.max(max, dataNameMap[mapKey][i]);\n sum += dataNameMap[mapKey][i];\n }\n\n var result;\n\n if (statisticType === 'min') {\n result = min;\n } else if (statisticType === 'max') {\n result = max;\n } else if (statisticType === 'average') {\n result = sum / len;\n } else {\n result = sum;\n }\n\n return len === 0 ? NaN : result;\n });\n}\n\nfunction _default(ecModel) {\n var seriesGroups = {};\n ecModel.eachSeriesByType('map', function (seriesModel) {\n var hostGeoModel = seriesModel.getHostGeoModel();\n var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\n (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\n });\n zrUtil.each(seriesGroups, function (seriesList, key) {\n var data = dataStatistics(zrUtil.map(seriesList, function (seriesModel) {\n return seriesModel.getData();\n }), seriesList[0].get('mapValueCalculation'));\n\n for (var i = 0; i < seriesList.length; i++) {\n seriesList[i].originalData = seriesList[i].getData();\n } // FIXME Put where?\n\n\n for (var i = 0; i < seriesList.length; i++) {\n seriesList[i].seriesGroup = seriesList;\n seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\n seriesList[i].setData(data.cloneShallow());\n seriesList[i].mainSeries = seriesList[0];\n }\n });\n}\n\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 SymbolClz = require(\"./Symbol\");\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar isObject = _util.isObject;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, 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/SymbolDraw\n */\n\n/**\n * @constructor\n * @alias module:echarts/chart/helper/SymbolDraw\n * @param {module:zrender/graphic/Group} [symbolCtor]\n */\nfunction SymbolDraw(symbolCtor) {\n this.group = new graphic.Group();\n this._symbolCtor = symbolCtor || SymbolClz;\n}\n\nvar symbolDrawProto = SymbolDraw.prototype;\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) // We do not set clipShape on group, because it will cut part of\n // the symbol element shape. We use the same clip shape here as\n // the line clip.\n && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n/**\n * Update symbols draw by new data\n * @param {module:echarts/data/List} data\n * @param {Object} [opt] Or isIgnore\n * @param {Function} [opt.isIgnore]\n * @param {Object} [opt.clipShape]\n */\n\n\nsymbolDrawProto.updateData = function (data, opt) {\n opt = normalizeUpdateOpt(opt);\n var group = this.group;\n var seriesModel = data.hostModel;\n var oldData = this._data;\n var SymbolCtor = this._symbolCtor;\n var seriesScope = makeSeriesScope(data); // There is no oldLineData only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n if (!oldData) {\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n var point = data.getItemLayout(newIdx);\n\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope);\n symbolEl.attr('position', point);\n data.setItemGraphicEl(newIdx, symbolEl);\n group.add(symbolEl);\n }\n }).update(function (newIdx, oldIdx) {\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\n var point = data.getItemLayout(newIdx);\n\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n group.remove(symbolEl);\n return;\n }\n\n if (!symbolEl) {\n symbolEl = new SymbolCtor(data, newIdx);\n symbolEl.attr('position', point);\n } else {\n symbolEl.updateData(data, newIdx, seriesScope);\n graphic.updateProps(symbolEl, {\n position: point\n }, seriesModel);\n } // Add back\n\n\n group.add(symbolEl);\n data.setItemGraphicEl(newIdx, symbolEl);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && el.fadeOut(function () {\n group.remove(el);\n });\n }).execute();\n this._data = data;\n};\n\nsymbolDrawProto.isPersistent = function () {\n return true;\n};\n\nsymbolDrawProto.updateLayout = function () {\n var data = this._data;\n\n if (data) {\n // Not use animation\n data.eachItemGraphicEl(function (el, idx) {\n var point = data.getItemLayout(idx);\n el.attr('position', point);\n });\n }\n};\n\nsymbolDrawProto.incrementalPrepareUpdate = function (data) {\n this._seriesScope = makeSeriesScope(data);\n this._data = null;\n this.group.removeAll();\n};\n/**\n * Update symbols draw by new data\n * @param {module:echarts/data/List} data\n * @param {Object} [opt] Or isIgnore\n * @param {Function} [opt.isIgnore]\n * @param {Object} [opt.clipShape]\n */\n\n\nsymbolDrawProto.incrementalUpdate = function (taskParams, data, opt) {\n opt = normalizeUpdateOpt(opt);\n\n function updateIncrementalAndHover(el) {\n if (!el.isGroup) {\n el.incremental = el.useHoverLayer = true;\n }\n }\n\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n var point = data.getItemLayout(idx);\n\n if (symbolNeedsDraw(data, point, idx, opt)) {\n var el = new this._symbolCtor(data, idx, this._seriesScope);\n el.traverse(updateIncrementalAndHover);\n el.attr('position', point);\n this.group.add(el);\n data.setItemGraphicEl(idx, el);\n }\n }\n};\n\nfunction normalizeUpdateOpt(opt) {\n if (opt != null && !isObject(opt)) {\n opt = {\n isIgnore: opt\n };\n }\n\n return opt || {};\n}\n\nsymbolDrawProto.remove = function (enableAnimation) {\n var group = this.group;\n var data = this._data; // Incremental model do not have this._data.\n\n if (data && enableAnimation) {\n data.eachItemGraphicEl(function (el) {\n el.fadeOut(function () {\n group.remove(el);\n });\n });\n } else {\n group.removeAll();\n }\n};\n\nfunction makeSeriesScope(data) {\n var seriesModel = data.hostModel;\n return {\n itemStyle: seriesModel.getModel('itemStyle').getItemStyle(['color']),\n hoverItemStyle: seriesModel.getModel('emphasis.itemStyle').getItemStyle(),\n symbolRotate: seriesModel.get('symbolRotate'),\n symbolOffset: seriesModel.get('symbolOffset'),\n hoverAnimation: seriesModel.get('hoverAnimation'),\n labelModel: seriesModel.getModel('label'),\n hoverLabelModel: seriesModel.getModel('emphasis.label'),\n cursorStyle: seriesModel.get('cursor')\n };\n}\n\nvar _default = SymbolDraw;\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 _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 echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar createListSimply = require(\"../helper/createListSimply\");\n\nvar _model = require(\"../../util/model\");\n\nvar defaultEmphasis = _model.defaultEmphasis;\n\nvar _sourceHelper = require(\"../../data/helper/sourceHelper\");\n\nvar makeSeriesEncodeForNameBased = _sourceHelper.makeSeriesEncodeForNameBased;\n\nvar LegendVisualProvider = require(\"../../visual/LegendVisualProvider\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar FunnelSeries = echarts.extendSeriesModel({\n type: 'series.funnel',\n init: function (option) {\n FunnelSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item\n // Use a function instead of direct access because data reference may changed\n\n this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this)); // Extend labelLine emphasis\n\n this._defaultLabelLine(option);\n },\n getInitialData: function (option, ecModel) {\n return createListSimply(this, {\n coordDimensions: ['value'],\n encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n });\n },\n _defaultLabelLine: function (option) {\n // Extend labelLine emphasis\n defaultEmphasis(option, 'labelLine', ['show']);\n var labelLineNormalOpt = option.labelLine;\n var labelLineEmphasisOpt = option.emphasis.labelLine; // Not show label line if `label.normal.show = false`\n\n labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n },\n // Overwrite\n getDataParams: function (dataIndex) {\n var data = this.getData();\n var params = FunnelSeries.superCall(this, 'getDataParams', dataIndex);\n var valueDim = data.mapDimension('value');\n var sum = data.getSum(valueDim); // Percent is 0 if sum is 0\n\n params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n params.$vars.push('percent');\n return params;\n },\n defaultOption: {\n zlevel: 0,\n // 一级层叠\n z: 2,\n // 二级层叠\n legendHoverLink: true,\n left: 80,\n top: 60,\n right: 80,\n bottom: 60,\n // width: {totalWidth} - left - right,\n // height: {totalHeight} - top - bottom,\n // 默认取数据最小最大值\n // min: 0,\n // max: 100,\n minSize: '0%',\n maxSize: '100%',\n sort: 'descending',\n // 'ascending', 'descending'\n orient: 'vertical',\n gap: 0,\n funnelAlign: 'center',\n label: {\n show: true,\n position: 'outer' // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调\n\n },\n labelLine: {\n show: true,\n length: 20,\n lineStyle: {\n // color: 各异,\n width: 1,\n type: 'solid'\n }\n },\n itemStyle: {\n // color: 各异,\n borderColor: '#fff',\n borderWidth: 1\n },\n emphasis: {\n label: {\n show: true\n }\n }\n }\n});\nvar _default = FunnelSeries;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction dataToCoordSize(dataSize, dataItem) {\n dataItem = dataItem || [0, 0];\n return zrUtil.map([0, 1], function (dimIdx) {\n var val = dataItem[dimIdx];\n var halfSize = dataSize[dimIdx] / 2;\n var p1 = [];\n var p2 = [];\n p1[dimIdx] = val - halfSize;\n p2[dimIdx] = val + halfSize;\n p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n }, this);\n}\n\nfunction _default(coordSys) {\n var rect = coordSys.getBoundingRect();\n return {\n coordSys: {\n type: 'geo',\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n zoom: coordSys.getZoom()\n },\n api: {\n coord: function (data) {\n // do not provide \"out\" and noRoam param,\n // Compatible with this usage:\n // echarts.util.map(item.points, api.coord)\n return coordSys.dataToPoint(data);\n },\n size: zrUtil.bind(dataToCoordSize, coordSys)\n }\n };\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar View = require(\"../View\");\n\nvar geoSourceManager = require(\"./geoSourceManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * [Geo description]\n * For backward compatibility, the orginal interface:\n * `name, map, geoJson, specialAreas, nameMap` is kept.\n *\n * @param {string|Object} name\n * @param {string} map Map type\n * Specify the positioned areas by left, top, width, height\n * @param {Object.} [nameMap]\n * Specify name alias\n * @param {boolean} [invertLongitute=true]\n */\nfunction Geo(name, map, nameMap, invertLongitute) {\n View.call(this, name);\n /**\n * Map type\n * @type {string}\n */\n\n this.map = map;\n var source = geoSourceManager.load(map, nameMap);\n this._nameCoordMap = source.nameCoordMap;\n this._regionsMap = source.regionsMap;\n this._invertLongitute = invertLongitute == null ? true : invertLongitute;\n /**\n * @readOnly\n */\n\n this.regions = source.regions;\n /**\n * @type {module:zrender/src/core/BoundingRect}\n */\n\n this._rect = source.boundingRect;\n}\n\nGeo.prototype = {\n constructor: Geo,\n type: 'geo',\n\n /**\n * @param {Array.}\n * @readOnly\n */\n dimensions: ['lng', 'lat'],\n\n /**\n * If contain given lng,lat coord\n * @param {Array.}\n * @readOnly\n */\n containCoord: function (coord) {\n var regions = this.regions;\n\n for (var i = 0; i < regions.length; i++) {\n if (regions[i].contain(coord)) {\n return true;\n }\n }\n\n return false;\n },\n\n /**\n * @override\n */\n transformTo: function (x, y, width, height) {\n var rect = this.getBoundingRect();\n var invertLongitute = this._invertLongitute;\n rect = rect.clone();\n\n if (invertLongitute) {\n // Longitute is inverted\n rect.y = -rect.y - rect.height;\n }\n\n var rawTransformable = this._rawTransformable;\n rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n rawTransformable.decomposeTransform();\n\n if (invertLongitute) {\n var scale = rawTransformable.scale;\n scale[1] = -scale[1];\n }\n\n rawTransformable.updateTransform();\n\n this._updateTransform();\n },\n\n /**\n * @param {string} name\n * @return {module:echarts/coord/geo/Region}\n */\n getRegion: function (name) {\n return this._regionsMap.get(name);\n },\n getRegionByCoord: function (coord) {\n var regions = this.regions;\n\n for (var i = 0; i < regions.length; i++) {\n if (regions[i].contain(coord)) {\n return regions[i];\n }\n }\n },\n\n /**\n * Add geoCoord for indexing by name\n * @param {string} name\n * @param {Array.} geoCoord\n */\n addGeoCoord: function (name, geoCoord) {\n this._nameCoordMap.set(name, geoCoord);\n },\n\n /**\n * Get geoCoord by name\n * @param {string} name\n * @return {Array.}\n */\n getGeoCoord: function (name) {\n return this._nameCoordMap.get(name);\n },\n\n /**\n * @override\n */\n getBoundingRect: function () {\n return this._rect;\n },\n\n /**\n * @param {string|Array.} data\n * @param {boolean} noRoam\n * @param {Array.} [out]\n * @return {Array.}\n */\n dataToPoint: function (data, noRoam, out) {\n if (typeof data === 'string') {\n // Map area name to geoCoord\n data = this.getGeoCoord(data);\n }\n\n if (data) {\n return View.prototype.dataToPoint.call(this, data, noRoam, out);\n }\n },\n\n /**\n * @override\n */\n convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),\n\n /**\n * @override\n */\n convertFromPixel: zrUtil.curry(doConvert, 'pointToData')\n};\nzrUtil.mixin(Geo, View);\n\nfunction doConvert(methodName, ecModel, finder, value) {\n var geoModel = finder.geoModel;\n var seriesModel = finder.seriesModel;\n var coordSys = geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem // For map.\n || (seriesModel.getReferringComponents('geo')[0] || {}).coordinateSystem : null;\n return coordSys === this ? coordSys[methodName](value) : null;\n}\n\nvar _default = Geo;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, 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 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});","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6/NlyAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAPKADAAQAAAABAAAAPAAAAACL3+lcAAADAElEQVRoBe1YsW4TQRDdWTtR3KBIgRYJmgBfwS8FV3RugCa+yEmK/AQNFQ00VJZ7BDQhdAREwFIUO9i37MWMsr7dPe+sPN248OzO+t7Me7vnezql5CMKiAKigCggCogCooAoIAqIAjkKQM5F1TXdbvfuZDp/kXo9KPPr+HjwPPX3XPg6tYH67yaT2ZN6rnmuvzSvL69y4WcTBjBEwoZEmAs/i7AxRpdKP1rek+YZwDyZMCd+q7nN8Op4PH5QluppeDWQNXBh7983gZVgihM/a4evr0vW48yJn0VYa/U4uDWRJGyoz5GlYJoTn0x4b6/ozI16GOw0koR5J/n+5cYnE56ab7ugIPk6o9Tvo6NXPyJaeGlu/OTGsTM9oz2OAIjHmRsfiaRHIP1htXUr+TgveuDFJ+1wZffsEb2XLo5S0w1IJsyNX/VNIky1e9X9e7K/f54qEDc+mTDV7mmVvrtVM9z4JMI5dq/V0snPX278imz1SbaWZLtnwbXuvB4OP1zeVFrxxY2P5ZPvYbLdA/NnMHj5HQutitz4WD+ZMNnumfTjXDXDjY+Ek954VHZv+vesoDos+6d1gYUwag2jw8PiHc6ryI3v1mq7k9iYavcqHKvktlFmu46ptXlbz3Hju/WSjjTVTroF3LEVoAS47/1zc+O7PSQRtvtFspNuAXdsj/jpwcGzKze3GHPj31ZcSTjH7t3CL4/ss/bjcmbx9pNqV+sYOA/h4xrGlYSpdg+BQ3FzU3uEufHrfawkTLV79QI4t7t4VRTFV5xj5MbHOhgbCefYPQSuR63KTwBQunlufLcWjhutZY7dQ2AvGvV+NBqeuXlufLcWjht3eDYzpJd1CBqKW1tt7/7lxg/10UhYKdrrnFCBmxyY836//9Nf58b3K0YJ57w99OEXGfv89XaXGz/eS2Qlx+5FoGzafxxx48d6ie7wuuyeMmq+s3OHzU7G8MmE12UnlTanvV5v4jewHjsZx/crSkYUEAVEAVFAFBAFRAFRQBQQBUQBUUAU+K/APwJ4aiHcl19fAAAAAElFTkSuQmCC\"","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/dong-che-fen-logo-9f41a9cfcfcc5d4dedc2abaf2d7f2228.png\";","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\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\");","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.github.io/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar linkList = require(\"./helper/linkList\");\n\nvar List = require(\"./List\");\n\nvar createDimensions = require(\"./helper/createDimensions\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Tree data structure\n *\n * @module echarts/data/Tree\n */\n\n/**\n * @constructor module:echarts/data/Tree~TreeNode\n * @param {string} name\n * @param {module:echarts/data/Tree} hostTree\n */\nvar TreeNode = function (name, hostTree) {\n /**\n * @type {string}\n */\n this.name = name || '';\n /**\n * Depth of node\n *\n * @type {number}\n * @readOnly\n */\n\n this.depth = 0;\n /**\n * Height of the subtree rooted at this node.\n * @type {number}\n * @readOnly\n */\n\n this.height = 0;\n /**\n * @type {module:echarts/data/Tree~TreeNode}\n * @readOnly\n */\n\n this.parentNode = null;\n /**\n * Reference to list item.\n * Do not persistent dataIndex outside,\n * besause it may be changed by list.\n * If dataIndex -1,\n * this node is logical deleted (filtered) in list.\n *\n * @type {Object}\n * @readOnly\n */\n\n this.dataIndex = -1;\n /**\n * @type {Array.}\n * @readOnly\n */\n\n this.children = [];\n /**\n * @type {Array.}\n * @pubilc\n */\n\n this.viewChildren = [];\n /**\n * @type {moduel:echarts/data/Tree}\n * @readOnly\n */\n\n this.hostTree = hostTree;\n};\n\nTreeNode.prototype = {\n constructor: TreeNode,\n\n /**\n * The node is removed.\n * @return {boolean} is removed.\n */\n isRemoved: function () {\n return this.dataIndex < 0;\n },\n\n /**\n * Travel this subtree (include this node).\n * Usage:\n * node.eachNode(function () { ... }); // preorder\n * node.eachNode('preorder', function () { ... }); // preorder\n * node.eachNode('postorder', function () { ... }); // postorder\n * node.eachNode(\n * {order: 'postorder', attr: 'viewChildren'},\n * function () { ... }\n * ); // postorder\n *\n * @param {(Object|string)} options If string, means order.\n * @param {string=} options.order 'preorder' or 'postorder'\n * @param {string=} options.attr 'children' or 'viewChildren'\n * @param {Function} cb If in preorder and return false,\n * its subtree will not be visited.\n * @param {Object} [context]\n */\n eachNode: function (options, cb, context) {\n if (typeof options === 'function') {\n context = cb;\n cb = options;\n options = null;\n }\n\n options = options || {};\n\n if (zrUtil.isString(options)) {\n options = {\n order: options\n };\n }\n\n var order = options.order || 'preorder';\n var children = this[options.attr || 'children'];\n var suppressVisitSub;\n order === 'preorder' && (suppressVisitSub = cb.call(context, this));\n\n for (var i = 0; !suppressVisitSub && i < children.length; i++) {\n children[i].eachNode(options, cb, context);\n }\n\n order === 'postorder' && cb.call(context, this);\n },\n\n /**\n * Update depth and height of this subtree.\n *\n * @param {number} depth\n */\n updateDepthAndHeight: function (depth) {\n var height = 0;\n this.depth = depth;\n\n for (var i = 0; i < this.children.length; i++) {\n var child = this.children[i];\n child.updateDepthAndHeight(depth + 1);\n\n if (child.height > height) {\n height = child.height;\n }\n }\n\n this.height = height + 1;\n },\n\n /**\n * @param {string} id\n * @return {module:echarts/data/Tree~TreeNode}\n */\n getNodeById: function (id) {\n if (this.getId() === id) {\n return this;\n }\n\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n var res = children[i].getNodeById(id);\n\n if (res) {\n return res;\n }\n }\n },\n\n /**\n * @param {module:echarts/data/Tree~TreeNode} node\n * @return {boolean}\n */\n contains: function (node) {\n if (node === this) {\n return true;\n }\n\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n var res = children[i].contains(node);\n\n if (res) {\n return res;\n }\n }\n },\n\n /**\n * @param {boolean} includeSelf Default false.\n * @return {Array.} order: [root, child, grandchild, ...]\n */\n getAncestors: function (includeSelf) {\n var ancestors = [];\n var node = includeSelf ? this : this.parentNode;\n\n while (node) {\n ancestors.push(node);\n node = node.parentNode;\n }\n\n ancestors.reverse();\n return ancestors;\n },\n\n /**\n * @param {string|Array=} [dimension='value'] Default 'value'. can be 0, 1, 2, 3\n * @return {number} Value.\n */\n getValue: function (dimension) {\n var data = this.hostTree.data;\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n },\n\n /**\n * @param {Object} layout\n * @param {boolean=} [merge=false]\n */\n setLayout: function (layout, merge) {\n this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\n },\n\n /**\n * @return {Object} layout\n */\n getLayout: function () {\n return this.hostTree.data.getItemLayout(this.dataIndex);\n },\n\n /**\n * @param {string} [path]\n * @return {module:echarts/model/Model}\n */\n getModel: function (path) {\n if (this.dataIndex < 0) {\n return;\n }\n\n var hostTree = this.hostTree;\n var itemModel = hostTree.data.getItemModel(this.dataIndex);\n return itemModel.getModel(path);\n },\n\n /**\n * @example\n * setItemVisual('color', color);\n * setItemVisual({\n * 'color': color\n * });\n */\n setVisual: function (key, value) {\n this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\n },\n\n /**\n * Get item visual\n */\n getVisual: function (key, ignoreParent) {\n return this.hostTree.data.getItemVisual(this.dataIndex, key, ignoreParent);\n },\n\n /**\n * @public\n * @return {number}\n */\n getRawIndex: function () {\n return this.hostTree.data.getRawIndex(this.dataIndex);\n },\n\n /**\n * @public\n * @return {string}\n */\n getId: function () {\n return this.hostTree.data.getId(this.dataIndex);\n },\n\n /**\n * if this is an ancestor of another node\n *\n * @public\n * @param {TreeNode} node another node\n * @return {boolean} if is ancestor\n */\n isAncestorOf: function (node) {\n var parent = node.parentNode;\n\n while (parent) {\n if (parent === this) {\n return true;\n }\n\n parent = parent.parentNode;\n }\n\n return false;\n },\n\n /**\n * if this is an descendant of another node\n *\n * @public\n * @param {TreeNode} node another node\n * @return {boolean} if is descendant\n */\n isDescendantOf: function (node) {\n return node !== this && node.isAncestorOf(this);\n }\n};\n/**\n * @constructor\n * @alias module:echarts/data/Tree\n * @param {module:echarts/model/Model} hostModel\n */\n\nfunction Tree(hostModel) {\n /**\n * @type {module:echarts/data/Tree~TreeNode}\n * @readOnly\n */\n this.root;\n /**\n * @type {module:echarts/data/List}\n * @readOnly\n */\n\n this.data;\n /**\n * Index of each item is the same as the raw index of coresponding list item.\n * @private\n * @type {Array.}, ...]\n * @private\n * @type {Array.}\n */\n\n this._pieceList = [];\n this.resetExtent();\n /**\n * 'pieces', 'categories', 'splitNumber'\n * @type {string}\n */\n\n var mode = this._mode = this._determineMode();\n\n resetMethods[this._mode].call(this);\n\n this._resetSelected(newOption, isInit);\n\n var categories = this.option.categories;\n this.resetVisual(function (mappingOption, state) {\n if (mode === 'categories') {\n mappingOption.mappingMethod = 'category';\n mappingOption.categories = zrUtil.clone(categories);\n } else {\n mappingOption.dataExtent = this.getExtent();\n mappingOption.mappingMethod = 'piecewise';\n mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n var piece = zrUtil.clone(piece);\n\n if (state !== 'inRange') {\n // FIXME\n // outOfRange do not support special visual in pieces.\n piece.visual = null;\n }\n\n return piece;\n });\n }\n });\n },\n\n /**\n * @protected\n * @override\n */\n completeVisualOption: function () {\n // Consider this case:\n // visualMap: {\n // pieces: [{symbol: 'circle', lt: 0}, {symbol: 'rect', gte: 0}]\n // }\n // where no inRange/outOfRange set but only pieces. So we should make\n // default inRange/outOfRange for this case, otherwise visuals that only\n // appear in `pieces` will not be taken into account in visual encoding.\n var option = this.option;\n var visualTypesInPieces = {};\n var visualTypes = VisualMapping.listVisualTypes();\n var isCategory = this.isCategory();\n zrUtil.each(option.pieces, function (piece) {\n zrUtil.each(visualTypes, function (visualType) {\n if (piece.hasOwnProperty(visualType)) {\n visualTypesInPieces[visualType] = 1;\n }\n });\n });\n zrUtil.each(visualTypesInPieces, function (v, visualType) {\n var exists = 0;\n zrUtil.each(this.stateList, function (state) {\n exists |= has(option, state, visualType) || has(option.target, state, visualType);\n }, this);\n !exists && zrUtil.each(this.stateList, function (state) {\n (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n });\n }, this);\n\n function has(obj, state, visualType) {\n return obj && obj[state] && (zrUtil.isObject(obj[state]) ? obj[state].hasOwnProperty(visualType) : obj[state] === visualType // e.g., inRange: 'symbol'\n );\n }\n\n VisualMapModel.prototype.completeVisualOption.apply(this, arguments);\n },\n _resetSelected: function (newOption, isInit) {\n var thisOption = this.option;\n var pieceList = this._pieceList; // Selected do not merge but all override.\n\n var selected = (isInit ? thisOption : newOption).selected || {};\n thisOption.selected = selected; // Consider 'not specified' means true.\n\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (!selected.hasOwnProperty(key)) {\n selected[key] = true;\n }\n }, this);\n\n if (thisOption.selectedMode === 'single') {\n // Ensure there is only one selected.\n var hasSel = false;\n zrUtil.each(pieceList, function (piece, index) {\n var key = this.getSelectedMapKey(piece);\n\n if (selected[key]) {\n hasSel ? selected[key] = false : hasSel = true;\n }\n }, this);\n } // thisOption.selectedMode === 'multiple', default: all selected.\n\n },\n\n /**\n * @public\n */\n getSelectedMapKey: function (piece) {\n return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n },\n\n /**\n * @public\n */\n getPieceList: function () {\n return this._pieceList;\n },\n\n /**\n * @private\n * @return {string}\n */\n _determineMode: function () {\n var option = this.option;\n return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n },\n\n /**\n * @public\n * @override\n */\n setSelected: function (selected) {\n this.option.selected = zrUtil.clone(selected);\n },\n\n /**\n * @public\n * @override\n */\n getValueState: function (value) {\n var index = VisualMapping.findPieceIndex(value, this._pieceList);\n return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n },\n\n /**\n * @public\n * @params {number} pieceIndex piece index in visualMapModel.getPieceList()\n * @return {Array.} [{seriesId, dataIndex: >}, ...]\n */\n findTargetDataIndices: function (pieceIndex) {\n var result = [];\n this.eachTargetSeries(function (seriesModel) {\n var dataIndices = [];\n var data = seriesModel.getData();\n data.each(this.getDataDimension(data), function (value, dataIndex) {\n // Should always base on model pieceList, because it is order sensitive.\n var pIdx = VisualMapping.findPieceIndex(value, this._pieceList);\n pIdx === pieceIndex && dataIndices.push(dataIndex);\n }, this);\n result.push({\n seriesId: seriesModel.id,\n dataIndex: dataIndices\n });\n }, this);\n return result;\n },\n\n /**\n * @private\n * @param {Object} piece piece.value or piece.interval is required.\n * @return {number} Can be Infinity or -Infinity\n */\n getRepresentValue: function (piece) {\n var representValue;\n\n if (this.isCategory()) {\n representValue = piece.value;\n } else {\n if (piece.value != null) {\n representValue = piece.value;\n } else {\n var pieceInterval = piece.interval || [];\n representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n }\n }\n\n return representValue;\n },\n getVisualMeta: function (getColorVisual) {\n // Do not support category. (category axis is ordinal, numerical)\n if (this.isCategory()) {\n return;\n }\n\n var stops = [];\n var outerColors = [];\n var visualMapModel = this;\n\n function setStop(interval, valueState) {\n var representValue = visualMapModel.getRepresentValue({\n interval: interval\n });\n\n if (!valueState) {\n valueState = visualMapModel.getValueState(representValue);\n }\n\n var color = getColorVisual(representValue, valueState);\n\n if (interval[0] === -Infinity) {\n outerColors[0] = color;\n } else if (interval[1] === Infinity) {\n outerColors[1] = color;\n } else {\n stops.push({\n value: interval[0],\n color: color\n }, {\n value: interval[1],\n color: color\n });\n }\n } // Suplement\n\n\n var pieceList = this._pieceList.slice();\n\n if (!pieceList.length) {\n pieceList.push({\n interval: [-Infinity, Infinity]\n });\n } else {\n var edge = pieceList[0].interval[0];\n edge !== -Infinity && pieceList.unshift({\n interval: [-Infinity, edge]\n });\n edge = pieceList[pieceList.length - 1].interval[1];\n edge !== Infinity && pieceList.push({\n interval: [edge, Infinity]\n });\n }\n\n var curr = -Infinity;\n zrUtil.each(pieceList, function (piece) {\n var interval = piece.interval;\n\n if (interval) {\n // Fulfill gap.\n interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n setStop(interval.slice());\n curr = interval[1];\n }\n }, this);\n return {\n stops: stops,\n outerColors: outerColors\n };\n }\n});\n/**\n * Key is this._mode\n * @type {Object}\n * @this {module:echarts/component/viusalMap/PiecewiseMode}\n */\n\nvar resetMethods = {\n splitNumber: function () {\n var thisOption = this.option;\n var pieceList = this._pieceList;\n var precision = Math.min(thisOption.precision, 20);\n var dataExtent = this.getExtent();\n var splitNumber = thisOption.splitNumber;\n splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n thisOption.splitNumber = splitNumber;\n var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber; // Precision auto-adaption\n\n while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n precision++;\n }\n\n thisOption.precision = precision;\n splitStep = +splitStep.toFixed(precision);\n\n if (thisOption.minOpen) {\n pieceList.push({\n interval: [-Infinity, dataExtent[0]],\n close: [0, 0]\n });\n }\n\n for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\n var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n pieceList.push({\n interval: [curr, max],\n close: [1, 1]\n });\n }\n\n if (thisOption.maxOpen) {\n pieceList.push({\n interval: [dataExtent[1], Infinity],\n close: [0, 0]\n });\n }\n\n reformIntervals(pieceList);\n zrUtil.each(pieceList, function (piece, index) {\n piece.index = index;\n piece.text = this.formatValueText(piece.interval);\n }, this);\n },\n categories: function () {\n var thisOption = this.option;\n zrUtil.each(thisOption.categories, function (cate) {\n // FIXME category模式也使用pieceList,但在visualMapping中不是使用pieceList。\n // 是否改一致。\n this._pieceList.push({\n text: this.formatValueText(cate, true),\n value: cate\n });\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, this._pieceList);\n },\n pieces: function () {\n var thisOption = this.option;\n var pieceList = this._pieceList;\n zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n if (!zrUtil.isObject(pieceListItem)) {\n pieceListItem = {\n value: pieceListItem\n };\n }\n\n var item = {\n text: '',\n index: index\n };\n\n if (pieceListItem.label != null) {\n item.text = pieceListItem.label;\n }\n\n if (pieceListItem.hasOwnProperty('value')) {\n var value = item.value = pieceListItem.value;\n item.interval = [value, value];\n item.close = [1, 1];\n } else {\n // `min` `max` is legacy option.\n // `lt` `gt` `lte` `gte` is recommanded.\n var interval = item.interval = [];\n var close = item.close = [0, 0];\n var closeList = [1, 0, 1];\n var infinityList = [-Infinity, Infinity];\n var useMinMax = [];\n\n for (var lg = 0; lg < 2; lg++) {\n var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n for (var i = 0; i < 3 && interval[lg] == null; i++) {\n interval[lg] = pieceListItem[names[i]];\n close[lg] = closeList[i];\n useMinMax[lg] = i === 2;\n }\n\n interval[lg] == null && (interval[lg] = infinityList[lg]);\n }\n\n useMinMax[0] && interval[1] === Infinity && (close[0] = 0);\n useMinMax[1] && interval[0] === -Infinity && (close[1] = 0);\n\n if (interval[0] === interval[1] && close[0] && close[1]) {\n // Consider: [{min: 5, max: 5, visual: {...}}, {min: 0, max: 5}],\n // we use value to lift the priority when min === max\n item.value = interval[0];\n }\n }\n\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n pieceList.push(item);\n }, this); // See \"Order Rule\".\n\n normalizeReverse(thisOption, pieceList); // Only pieces\n\n reformIntervals(pieceList);\n zrUtil.each(pieceList, function (piece) {\n var close = piece.close;\n var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n }, this);\n }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n var inverse = thisOption.inverse;\n\n if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n pieceList.reverse();\n }\n}\n\nvar _default = PiecewiseModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nrequire(\"./legend\");\n\nrequire(\"./legend/ScrollableLegendModel\");\n\nrequire(\"./legend/ScrollableLegendView\");\n\nrequire(\"./legend/scrollableLegendAction\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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\");","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 graphic = require(\"../../util/graphic\");\n\nvar Line = require(\"./Line\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\nvar curveUtil = require(\"zrender/lib/core/curve\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Provide effect for line\n * @module echarts/chart/helper/EffectLine\n */\n\n/**\n * @constructor\n * @extends {module:zrender/graphic/Group}\n * @alias {module:echarts/chart/helper/Line}\n */\nfunction EffectLine(lineData, idx, seriesScope) {\n graphic.Group.call(this);\n this.add(this.createLine(lineData, idx, seriesScope));\n\n this._updateEffectSymbol(lineData, idx);\n}\n\nvar effectLineProto = EffectLine.prototype;\n\neffectLineProto.createLine = function (lineData, idx, seriesScope) {\n return new Line(lineData, idx, seriesScope);\n};\n\neffectLineProto._updateEffectSymbol = function (lineData, idx) {\n var itemModel = lineData.getItemModel(idx);\n var effectModel = itemModel.getModel('effect');\n var size = effectModel.get('symbolSize');\n var symbolType = effectModel.get('symbol');\n\n if (!zrUtil.isArray(size)) {\n size = [size, size];\n }\n\n var color = effectModel.get('color') || lineData.getItemVisual(idx, 'color');\n var symbol = this.childAt(1);\n\n if (this._symbolType !== symbolType) {\n // Remove previous\n this.remove(symbol);\n symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\n symbol.z2 = 100;\n symbol.culling = true;\n this.add(symbol);\n } // Symbol may be removed if loop is false\n\n\n if (!symbol) {\n return;\n } // Shadow color is same with color in default\n\n\n symbol.setStyle('shadowColor', color);\n symbol.setStyle(effectModel.getItemStyle(['color']));\n symbol.attr('scale', size);\n symbol.setColor(color);\n symbol.attr('scale', size);\n this._symbolType = symbolType;\n this._symbolScale = size;\n\n this._updateEffectAnimation(lineData, effectModel, idx);\n};\n\neffectLineProto._updateEffectAnimation = function (lineData, effectModel, idx) {\n var symbol = this.childAt(1);\n\n if (!symbol) {\n return;\n }\n\n var self = this;\n var points = lineData.getItemLayout(idx);\n var period = effectModel.get('period') * 1000;\n var loop = effectModel.get('loop');\n var constantSpeed = effectModel.get('constantSpeed');\n var delayExpr = zrUtil.retrieve(effectModel.get('delay'), function (idx) {\n return idx / lineData.count() * period / 3;\n });\n var isDelayFunc = typeof delayExpr === 'function'; // Ignore when updating\n\n symbol.ignore = true;\n this.updateAnimationPoints(symbol, points);\n\n if (constantSpeed > 0) {\n period = this.getLineLength(symbol) / constantSpeed * 1000;\n }\n\n if (period !== this._period || loop !== this._loop) {\n symbol.stopAnimation();\n var delay = delayExpr;\n\n if (isDelayFunc) {\n delay = delayExpr(idx);\n }\n\n if (symbol.__t > 0) {\n delay = -period * symbol.__t;\n }\n\n symbol.__t = 0;\n var animator = symbol.animate('', loop).when(period, {\n __t: 1\n }).delay(delay).during(function () {\n self.updateSymbolPosition(symbol);\n });\n\n if (!loop) {\n animator.done(function () {\n self.remove(symbol);\n });\n }\n\n animator.start();\n }\n\n this._period = period;\n this._loop = loop;\n};\n\neffectLineProto.getLineLength = function (symbol) {\n // Not so accurate\n return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2);\n};\n\neffectLineProto.updateAnimationPoints = function (symbol, points) {\n symbol.__p1 = points[0];\n symbol.__p2 = points[1];\n symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];\n};\n\neffectLineProto.updateData = function (lineData, idx, seriesScope) {\n this.childAt(0).updateData(lineData, idx, seriesScope);\n\n this._updateEffectSymbol(lineData, idx);\n};\n\neffectLineProto.updateSymbolPosition = function (symbol) {\n var p1 = symbol.__p1;\n var p2 = symbol.__p2;\n var cp1 = symbol.__cp1;\n var t = symbol.__t;\n var pos = symbol.position;\n var lastPos = [pos[0], pos[1]];\n var quadraticAt = curveUtil.quadraticAt;\n var quadraticDerivativeAt = curveUtil.quadraticDerivativeAt;\n pos[0] = quadraticAt(p1[0], cp1[0], p2[0], t);\n pos[1] = quadraticAt(p1[1], cp1[1], p2[1], t); // Tangent\n\n var tx = quadraticDerivativeAt(p1[0], cp1[0], p2[0], t);\n var ty = quadraticDerivativeAt(p1[1], cp1[1], p2[1], t);\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2; // enable continuity trail for 'line', 'rect', 'roundRect' symbolType\n\n if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\n if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\n var scaleY = vec2.dist(lastPos, pos) * 1.05;\n symbol.attr('scale', [symbol.scale[0], scaleY]); // make sure the last segment render within endPoint\n\n if (t === 1) {\n pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\n pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\n }\n } else if (symbol.__lastT === 1) {\n // After first loop, symbol.__t does NOT start with 0, so connect p1 to pos directly.\n var scaleY = 2 * vec2.dist(p1, pos);\n symbol.attr('scale', [symbol.scale[0], scaleY]);\n } else {\n symbol.attr('scale', this._symbolScale);\n }\n }\n\n symbol.__lastT = symbol.__t;\n symbol.ignore = false;\n};\n\neffectLineProto.updateLayout = function (lineData, idx) {\n this.childAt(0).updateLayout(lineData, idx);\n var effectModel = lineData.getItemModel(idx).getModel('effect');\n\n this._updateEffectAnimation(lineData, effectModel, idx);\n};\n\nzrUtil.inherits(EffectLine, graphic.Group);\nvar _default = EffectLine;\nmodule.exports = _default;","// Myers' Diff Algorithm\n// Modified from https://github.com/kpdecker/jsdiff/blob/master/src/diff/base.js\nfunction Diff() {}\n\nDiff.prototype = {\n diff: function (oldArr, newArr, equals) {\n if (!equals) {\n equals = function (a, b) {\n return a === b;\n };\n }\n\n this.equals = equals;\n var self = this;\n oldArr = oldArr.slice();\n newArr = newArr.slice(); // Allow subclasses to massage the input prior to running\n\n var newLen = newArr.length;\n var oldLen = oldArr.length;\n var editLength = 1;\n var maxEditLength = newLen + oldLen;\n var bestPath = [{\n newPos: -1,\n components: []\n }]; // Seed editLength = 0, i.e. the content starts with the same values\n\n var oldPos = this.extractCommon(bestPath[0], newArr, oldArr, 0);\n\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n var indices = [];\n\n for (var i = 0; i < newArr.length; i++) {\n indices.push(i);\n } // Identity per the equality and tokenizer\n\n\n return [{\n indices: indices,\n count: newArr.length\n }];\n } // Main worker method. checks all permutations of a given edit length for acceptance.\n\n\n function execEditLength() {\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n var basePath;\n var addPath = bestPath[diagonalPath - 1];\n var removePath = bestPath[diagonalPath + 1];\n var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n\n if (addPath) {\n // No one else is going to attempt to use this value, clear it\n bestPath[diagonalPath - 1] = undefined;\n }\n\n var canAdd = addPath && addPath.newPos + 1 < newLen;\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n bestPath[diagonalPath] = undefined;\n continue;\n } // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the new string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n\n\n if (!canAdd || canRemove && addPath.newPos < removePath.newPos) {\n basePath = clonePath(removePath);\n self.pushComponent(basePath.components, undefined, true);\n } else {\n basePath = addPath; // No need to clone, we've pulled it from the list\n\n basePath.newPos++;\n self.pushComponent(basePath.components, true, undefined);\n }\n\n oldPos = self.extractCommon(basePath, newArr, oldArr, diagonalPath); // If we have hit the end of both strings, then we are done\n\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n return buildValues(self, basePath.components, newArr, oldArr);\n } else {\n // Otherwise track this path as a potential candidate and continue.\n bestPath[diagonalPath] = basePath;\n }\n }\n\n editLength++;\n }\n\n while (editLength <= maxEditLength) {\n var ret = execEditLength();\n\n if (ret) {\n return ret;\n }\n }\n },\n pushComponent: function (components, added, removed) {\n var last = components[components.length - 1];\n\n if (last && last.added === added && last.removed === removed) {\n // We need to clone here as the component clone operation is just\n // as shallow array clone\n components[components.length - 1] = {\n count: last.count + 1,\n added: added,\n removed: removed\n };\n } else {\n components.push({\n count: 1,\n added: added,\n removed: removed\n });\n }\n },\n extractCommon: function (basePath, newArr, oldArr, diagonalPath) {\n var newLen = newArr.length;\n var oldLen = oldArr.length;\n var newPos = basePath.newPos;\n var oldPos = newPos - diagonalPath;\n var commonCount = 0;\n\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n newPos++;\n oldPos++;\n commonCount++;\n }\n\n if (commonCount) {\n basePath.components.push({\n count: commonCount\n });\n }\n\n basePath.newPos = newPos;\n return oldPos;\n },\n tokenize: function (value) {\n return value.slice();\n },\n join: function (value) {\n return value.slice();\n }\n};\n\nfunction buildValues(diff, components, newArr, oldArr) {\n var componentPos = 0;\n var componentLen = components.length;\n var newPos = 0;\n var oldPos = 0;\n\n for (; componentPos < componentLen; componentPos++) {\n var component = components[componentPos];\n\n if (!component.removed) {\n var indices = [];\n\n for (var i = newPos; i < newPos + component.count; i++) {\n indices.push(i);\n }\n\n component.indices = indices;\n newPos += component.count; // Common case\n\n if (!component.added) {\n oldPos += component.count;\n }\n } else {\n var indices = [];\n\n for (var i = oldPos; i < oldPos + component.count; i++) {\n indices.push(i);\n }\n\n component.indices = indices;\n oldPos += component.count;\n }\n }\n\n return components;\n}\n\nfunction clonePath(path) {\n return {\n newPos: path.newPos,\n components: path.components.slice(0)\n };\n}\n\nvar arrayDiff = new Diff();\n\nfunction _default(oldArr, newArr, callback) {\n return arrayDiff.diff(oldArr, newArr, callback);\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar KEY_DELIMITER = '-->';\n/**\n * params handler\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @returns {*}\n */\n\nvar getAutoCurvenessParams = function (seriesModel) {\n return seriesModel.get('autoCurveness') || null;\n};\n/**\n * Generate a list of edge curvatures, 20 is the default\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param {number} appendLength\n * @return 20 => [0, -0.2, 0.2, -0.4, 0.4, -0.6, 0.6, -0.8, 0.8, -1, 1, -1.2, 1.2, -1.4, 1.4, -1.6, 1.6, -1.8, 1.8, -2]\n */\n\n\nvar createCurveness = function (seriesModel, appendLength) {\n var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);\n var length = 20;\n var curvenessList = []; // handler the function set\n\n if (typeof autoCurvenessParmas === 'number') {\n length = autoCurvenessParmas;\n } else if (zrUtil.isArray(autoCurvenessParmas)) {\n seriesModel.__curvenessList = autoCurvenessParmas;\n return;\n } // append length\n\n\n if (appendLength > length) {\n length = appendLength;\n } // make sure the length is even\n\n\n var len = length % 2 ? length + 2 : length + 3;\n curvenessList = [];\n\n for (var i = 0; i < len; i++) {\n curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));\n }\n\n seriesModel.__curvenessList = curvenessList;\n};\n/**\n * Create different cache key data in the positive and negative directions, in order to set the curvature later\n * @param {number|string|module:echarts/data/Graph.Node} n1\n * @param {number|string|module:echarts/data/Graph.Node} n2\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @returns {string} key\n */\n\n\nvar getKeyOfEdges = function (n1, n2, seriesModel) {\n var source = [n1.id, n1.dataIndex].join('.');\n var target = [n2.id, n2.dataIndex].join('.');\n return [seriesModel.uid, source, target].join(KEY_DELIMITER);\n};\n/**\n * get opposite key\n * @param {string} key\n * @returns {string}\n */\n\n\nvar getOppositeKey = function (key) {\n var keys = key.split(KEY_DELIMITER);\n return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);\n};\n/**\n * get edgeMap with key\n * @param edge\n * @param {module:echarts/model/SeriesModel} seriesModel\n */\n\n\nvar getEdgeFromMap = function (edge, seriesModel) {\n var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n return seriesModel.__edgeMap[key];\n};\n/**\n * calculate all cases total length\n * @param edge\n * @param seriesModel\n * @returns {number}\n */\n\n\nvar getTotalLengthBetweenNodes = function (edge, seriesModel) {\n var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);\n var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);\n return len + lenV;\n};\n/**\n *\n * @param key\n */\n\n\nvar getEdgeMapLengthWithKey = function (key, seriesModel) {\n var edgeMap = seriesModel.__edgeMap;\n return edgeMap[key] ? edgeMap[key].length : 0;\n};\n/**\n * Count the number of edges between the same two points, used to obtain the curvature table and the parity of the edge\n * @see /graph/GraphSeries.js@getInitialData\n * @param {module:echarts/model/SeriesModel} seriesModel\n */\n\n\nfunction initCurvenessList(seriesModel) {\n if (!getAutoCurvenessParams(seriesModel)) {\n return;\n }\n\n seriesModel.__curvenessList = [];\n seriesModel.__edgeMap = {}; // calc the array of curveness List\n\n createCurveness(seriesModel);\n}\n/**\n * set edgeMap with key\n * @param {number|string|module:echarts/data/Graph.Node} n1\n * @param {number|string|module:echarts/data/Graph.Node} n2\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param {number} index\n */\n\n\nfunction createEdgeMapForCurveness(n1, n2, seriesModel, index) {\n if (!getAutoCurvenessParams(seriesModel)) {\n return;\n }\n\n var key = getKeyOfEdges(n1, n2, seriesModel);\n var edgeMap = seriesModel.__edgeMap;\n var oppositeEdges = edgeMap[getOppositeKey(key)]; // set direction\n\n if (edgeMap[key] && !oppositeEdges) {\n edgeMap[key].isForward = true;\n } else if (oppositeEdges && edgeMap[key]) {\n oppositeEdges.isForward = true;\n edgeMap[key].isForward = false;\n }\n\n edgeMap[key] = edgeMap[key] || [];\n edgeMap[key].push(index);\n}\n/**\n * get curvature for edge\n * @param edge\n * @param {module:echarts/model/SeriesModel} seriesModel\n * @param index\n */\n\n\nfunction getCurvenessForEdge(edge, seriesModel, index, needReverse) {\n var autoCurvenessParams = getAutoCurvenessParams(seriesModel);\n var isArrayParam = zrUtil.isArray(autoCurvenessParams);\n\n if (!autoCurvenessParams) {\n return null;\n }\n\n var edgeArray = getEdgeFromMap(edge, seriesModel);\n\n if (!edgeArray) {\n return null;\n }\n\n var edgeIndex = -1;\n\n for (var i = 0; i < edgeArray.length; i++) {\n if (edgeArray[i] === index) {\n edgeIndex = i;\n break;\n }\n } // if totalLen is Longer createCurveness\n\n\n var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);\n createCurveness(seriesModel, totalLen);\n edge.lineStyle = edge.lineStyle || {}; // if is opposite edge, must set curvenss to opposite number\n\n var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n var curvenessList = seriesModel.__curvenessList; // if pass array no need parity\n\n var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;\n\n if (!edgeArray.isForward) {\n // the opposite edge show outside\n var oppositeKey = getOppositeKey(curKey);\n var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);\n var resValue = curvenessList[edgeIndex + len + parityCorrection]; // isNeedReverse, simple, force type need reverse the curveness in the junction of the forword and the opposite\n\n if (needReverse) {\n // set as array may make the parity handle with the len of opposite\n if (isArrayParam) {\n if (autoCurvenessParams && autoCurvenessParams[0] === 0) {\n return (len + parityCorrection) % 2 ? resValue : -resValue;\n } else {\n return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;\n }\n } else {\n return (len + parityCorrection) % 2 ? resValue : -resValue;\n }\n } else {\n return curvenessList[edgeIndex + len + parityCorrection];\n }\n } else {\n return curvenessList[parityCorrection + edgeIndex];\n }\n}\n\nexports.initCurvenessList = initCurvenessList;\nexports.createEdgeMapForCurveness = createEdgeMapForCurveness;\nexports.getCurvenessForEdge = getCurvenessForEdge;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar RoamController = require(\"./RoamController\");\n\nvar roamHelper = require(\"../../component/helper/roamHelper\");\n\nvar _cursorHelper = require(\"../../component/helper/cursorHelper\");\n\nvar onIrrelevantElement = _cursorHelper.onIrrelevantElement;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar geoSourceManager = require(\"../../coord/geo/geoSourceManager\");\n\nvar _component = require(\"../../util/component\");\n\nvar getUID = _component.getUID;\n\nvar Transformable = require(\"zrender/lib/mixin/Transformable\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getFixedItemStyle(model) {\n var itemStyle = model.getItemStyle();\n var areaColor = model.get('areaColor'); // If user want the color not to be changed when hover,\n // they should both set areaColor and color to be null.\n\n if (areaColor != null) {\n itemStyle.fill = areaColor;\n }\n\n return itemStyle;\n}\n\nfunction updateMapSelectHandler(mapDraw, mapOrGeoModel, regionsGroup, api, fromView) {\n regionsGroup.off('click');\n regionsGroup.off('mousedown');\n\n if (mapOrGeoModel.get('selectedMode')) {\n regionsGroup.on('mousedown', function () {\n mapDraw._mouseDownFlag = true;\n });\n regionsGroup.on('click', function (e) {\n if (!mapDraw._mouseDownFlag) {\n return;\n }\n\n mapDraw._mouseDownFlag = false;\n var el = e.target;\n\n while (!el.__regions) {\n el = el.parent;\n }\n\n if (!el) {\n return;\n }\n\n var action = {\n type: (mapOrGeoModel.mainType === 'geo' ? 'geo' : 'map') + 'ToggleSelect',\n batch: zrUtil.map(el.__regions, function (region) {\n return {\n name: region.name,\n from: fromView.uid\n };\n })\n };\n action[mapOrGeoModel.mainType + 'Id'] = mapOrGeoModel.id;\n api.dispatchAction(action);\n updateMapSelected(mapOrGeoModel, regionsGroup);\n });\n }\n}\n\nfunction updateMapSelected(mapOrGeoModel, regionsGroup) {\n // FIXME\n regionsGroup.eachChild(function (otherRegionEl) {\n zrUtil.each(otherRegionEl.__regions, function (region) {\n otherRegionEl.trigger(mapOrGeoModel.isSelected(region.name) ? 'emphasis' : 'normal');\n });\n });\n}\n/**\n * @alias module:echarts/component/helper/MapDraw\n * @param {module:echarts/ExtensionAPI} api\n * @param {boolean} updateGroup\n */\n\n\nfunction MapDraw(api, updateGroup) {\n var group = new graphic.Group();\n /**\n * @type {string}\n * @private\n */\n\n this.uid = getUID('ec_map_draw');\n /**\n * @type {module:echarts/component/helper/RoamController}\n * @private\n */\n\n this._controller = new RoamController(api.getZr());\n /**\n * @type {Object} {target, zoom, zoomLimit}\n * @private\n */\n\n this._controllerHost = {\n target: updateGroup ? group : null\n };\n /**\n * @type {module:zrender/container/Group}\n * @readOnly\n */\n\n this.group = group;\n /**\n * @type {boolean}\n * @private\n */\n\n this._updateGroup = updateGroup;\n /**\n * This flag is used to make sure that only one among\n * `pan`, `zoom`, `click` can occurs, otherwise 'selected'\n * action may be triggered when `pan`, which is unexpected.\n * @type {booelan}\n */\n\n this._mouseDownFlag;\n /**\n * @type {string}\n */\n\n this._mapName;\n /**\n * @type {boolean}\n */\n\n this._initialized;\n /**\n * @type {module:zrender/container/Group}\n */\n\n group.add(this._regionsGroup = new graphic.Group());\n /**\n * @type {module:zrender/container/Group}\n */\n\n group.add(this._backgroundGroup = new graphic.Group());\n}\n\nMapDraw.prototype = {\n constructor: MapDraw,\n draw: function (mapOrGeoModel, ecModel, api, fromView, payload) {\n var isGeo = mapOrGeoModel.mainType === 'geo'; // Map series has data. GEO model that controlled by map series\n // will be assigned with map data. Other GEO model has no data.\n\n var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\n isGeo && ecModel.eachComponent({\n mainType: 'series',\n subType: 'map'\n }, function (mapSeries) {\n if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\n data = mapSeries.getData();\n }\n });\n var geo = mapOrGeoModel.coordinateSystem;\n\n this._updateBackground(geo);\n\n var regionsGroup = this._regionsGroup;\n var group = this.group;\n var transformInfo = geo.getTransformInfo(); // No animation when first draw or in action\n\n var isFirstDraw = !regionsGroup.childAt(0) || payload;\n var targetScale;\n\n if (isFirstDraw) {\n group.transform = transformInfo.roamTransform;\n group.decomposeTransform();\n group.dirty();\n } else {\n var target = new Transformable();\n target.transform = transformInfo.roamTransform;\n target.decomposeTransform();\n var props = {\n scale: target.scale,\n position: target.position\n };\n targetScale = target.scale;\n graphic.updateProps(group, props, mapOrGeoModel);\n }\n\n var scale = transformInfo.rawScale;\n var position = transformInfo.rawPosition;\n regionsGroup.removeAll();\n var itemStyleAccessPath = ['itemStyle'];\n var hoverItemStyleAccessPath = ['emphasis', 'itemStyle'];\n var labelAccessPath = ['label'];\n var hoverLabelAccessPath = ['emphasis', 'label'];\n var nameMap = zrUtil.createHashMap();\n zrUtil.each(geo.regions, function (region) {\n // Consider in GeoJson properties.name may be duplicated, for example,\n // there is multiple region named \"United Kindom\" or \"France\" (so many\n // colonies). And it is not appropriate to merge them in geo, which\n // will make them share the same label and bring trouble in label\n // location calculation.\n var regionGroup = nameMap.get(region.name) || nameMap.set(region.name, new graphic.Group());\n var compoundPath = new graphic.CompoundPath({\n segmentIgnoreThreshold: 1,\n shape: {\n paths: []\n }\n });\n regionGroup.add(compoundPath);\n var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel;\n var itemStyleModel = regionModel.getModel(itemStyleAccessPath);\n var hoverItemStyleModel = regionModel.getModel(hoverItemStyleAccessPath);\n var itemStyle = getFixedItemStyle(itemStyleModel);\n var hoverItemStyle = getFixedItemStyle(hoverItemStyleModel);\n var labelModel = regionModel.getModel(labelAccessPath);\n var hoverLabelModel = regionModel.getModel(hoverLabelAccessPath);\n var dataIdx; // Use the itemStyle in data if has data\n\n if (data) {\n dataIdx = data.indexOfName(region.name); // Only visual color of each item will be used. It can be encoded by dataRange\n // But visual color of series is used in symbol drawing\n //\n // Visual color for each series is for the symbol draw\n\n var visualColor = data.getItemVisual(dataIdx, 'color', true);\n\n if (visualColor) {\n itemStyle.fill = visualColor;\n }\n }\n\n var transformPoint = function (point) {\n return [point[0] * scale[0] + position[0], point[1] * scale[1] + position[1]];\n };\n\n zrUtil.each(region.geometries, function (geometry) {\n if (geometry.type !== 'polygon') {\n return;\n }\n\n var points = [];\n\n for (var i = 0; i < geometry.exterior.length; ++i) {\n points.push(transformPoint(geometry.exterior[i]));\n }\n\n compoundPath.shape.paths.push(new graphic.Polygon({\n segmentIgnoreThreshold: 1,\n shape: {\n points: points\n }\n }));\n\n for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); ++i) {\n var interior = geometry.interiors[i];\n var points = [];\n\n for (var j = 0; j < interior.length; ++j) {\n points.push(transformPoint(interior[j]));\n }\n\n compoundPath.shape.paths.push(new graphic.Polygon({\n segmentIgnoreThreshold: 1,\n shape: {\n points: points\n }\n }));\n }\n });\n compoundPath.setStyle(itemStyle);\n compoundPath.style.strokeNoScale = true;\n compoundPath.culling = true; // Label\n\n var showLabel = labelModel.get('show');\n var hoverShowLabel = hoverLabelModel.get('show');\n var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n var itemLayout = data && data.getItemLayout(dataIdx); // In the following cases label will be drawn\n // 1. In map series and data value is NaN\n // 2. In geo component\n // 4. Region has no series legendSymbol, which will be add a showLabel flag in mapSymbolLayout\n\n if (isGeo || isDataNaN && (showLabel || hoverShowLabel) || itemLayout && itemLayout.showLabel) {\n var query = !isGeo ? dataIdx : region.name;\n var labelFetcher; // Consider dataIdx not found.\n\n if (!data || dataIdx >= 0) {\n labelFetcher = mapOrGeoModel;\n }\n\n var textEl = new graphic.Text({\n position: transformPoint(region.center.slice()),\n // FIXME\n // label rotation is not support yet in geo or regions of series-map\n // that has no data. The rotation will be effected by this `scale`.\n // So needed to change to RectText?\n scale: [1 / group.scale[0], 1 / group.scale[1]],\n z2: 10,\n silent: true\n });\n graphic.setLabelStyle(textEl.style, textEl.hoverStyle = {}, labelModel, hoverLabelModel, {\n labelFetcher: labelFetcher,\n labelDataIndex: query,\n defaultText: region.name,\n useInsideStyle: false\n }, {\n textAlign: 'center',\n textVerticalAlign: 'middle'\n });\n\n if (!isFirstDraw) {\n // Text animation\n var textScale = [1 / targetScale[0], 1 / targetScale[1]];\n graphic.updateProps(textEl, {\n scale: textScale\n }, mapOrGeoModel);\n }\n\n regionGroup.add(textEl);\n } // setItemGraphicEl, setHoverStyle after all polygons and labels\n // are added to the rigionGroup\n\n\n if (data) {\n data.setItemGraphicEl(dataIdx, regionGroup);\n } else {\n var regionModel = mapOrGeoModel.getRegionModel(region.name); // Package custom mouse event for geo component\n\n compoundPath.eventData = {\n componentType: 'geo',\n componentIndex: mapOrGeoModel.componentIndex,\n geoIndex: mapOrGeoModel.componentIndex,\n name: region.name,\n region: regionModel && regionModel.option || {}\n };\n }\n\n var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\n groupRegions.push(region);\n regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\n graphic.setHoverStyle(regionGroup, hoverItemStyle);\n regionsGroup.add(regionGroup);\n });\n\n this._updateController(mapOrGeoModel, ecModel, api);\n\n updateMapSelectHandler(this, mapOrGeoModel, regionsGroup, api, fromView);\n updateMapSelected(mapOrGeoModel, regionsGroup);\n },\n remove: function () {\n this._regionsGroup.removeAll();\n\n this._backgroundGroup.removeAll();\n\n this._controller.dispose();\n\n this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid);\n this._mapName = null;\n this._controllerHost = {};\n },\n _updateBackground: function (geo) {\n var mapName = geo.map;\n\n if (this._mapName !== mapName) {\n zrUtil.each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) {\n this._backgroundGroup.add(root);\n }, this);\n }\n\n this._mapName = mapName;\n },\n _updateController: function (mapOrGeoModel, ecModel, api) {\n var geo = mapOrGeoModel.coordinateSystem;\n var controller = this._controller;\n var controllerHost = this._controllerHost;\n controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n controllerHost.zoom = geo.getZoom(); // roamType is will be set default true if it is null\n\n controller.enable(mapOrGeoModel.get('roam') || false);\n var mainType = mapOrGeoModel.mainType;\n\n function makeActionBase() {\n var action = {\n type: 'geoRoam',\n componentType: mainType\n };\n action[mainType + 'Id'] = mapOrGeoModel.id;\n return action;\n }\n\n controller.off('pan').on('pan', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n dx: e.dx,\n dy: e.dy\n }));\n }, this);\n controller.off('zoom').on('zoom', function (e) {\n this._mouseDownFlag = false;\n roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n api.dispatchAction(zrUtil.extend(makeActionBase(), {\n zoom: e.scale,\n originX: e.originX,\n originY: e.originY\n }));\n\n if (this._updateGroup) {\n var scale = this.group.scale;\n\n this._regionsGroup.traverse(function (el) {\n if (el.type === 'text') {\n el.attr('scale', [1 / scale[0], 1 / scale[1]]);\n }\n });\n }\n }, this);\n controller.setPointerChecker(function (e, x, y) {\n return geo.getViewRectAfterRoam().contain(x, y) && !onIrrelevantElement(e, api, mapOrGeoModel);\n });\n }\n};\nvar _default = MapDraw;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar VisualMapping = require(\"../../visual/VisualMapping\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction _default(ecModel, payload) {\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\n var graph = seriesModel.getGraph();\n var nodes = graph.nodes;\n\n if (nodes.length) {\n var minValue = Infinity;\n var maxValue = -Infinity;\n zrUtil.each(nodes, function (node) {\n var nodeValue = node.getLayout().value;\n\n if (nodeValue < minValue) {\n minValue = nodeValue;\n }\n\n if (nodeValue > maxValue) {\n maxValue = nodeValue;\n }\n });\n zrUtil.each(nodes, function (node) {\n var mapping = new VisualMapping({\n type: 'color',\n mappingMethod: 'linear',\n dataExtent: [minValue, maxValue],\n visual: seriesModel.get('color')\n });\n var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n var customColor = node.getModel().get('itemStyle.color');\n customColor != null ? node.setVisual('color', customColor) : node.setVisual('color', mapValueToColor);\n });\n }\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar layoutUtil = require(\"../../util/layout\");\n\nvar LegendView = require(\"./LegendView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * Separate legend and scrollable legend to reduce package size.\n */\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\nvar ScrollableLegendView = LegendView.extend({\n type: 'legend.scroll',\n newlineDisabled: true,\n init: function () {\n ScrollableLegendView.superCall(this, 'init');\n /**\n * @private\n * @type {number} For `scroll`.\n */\n\n this._currentIndex = 0;\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n this.group.add(this._containerGroup = new Group());\n\n this._containerGroup.add(this.getContentGroup());\n /**\n * @private\n * @type {module:zrender/container/Group}\n */\n\n\n this.group.add(this._controllerGroup = new Group());\n /**\n *\n * @private\n */\n\n this._showController;\n },\n\n /**\n * @override\n */\n resetInner: function () {\n ScrollableLegendView.superCall(this, 'resetInner');\n\n this._controllerGroup.removeAll();\n\n this._containerGroup.removeClipPath();\n\n this._containerGroup.__rectSize = null;\n },\n\n /**\n * @override\n */\n renderInner: function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n var me = this; // Render content items.\n\n ScrollableLegendView.superCall(this, 'renderInner', itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n var controllerGroup = this._controllerGroup; // FIXME: support be 'auto' adapt to size number text length,\n // e.g., '3/12345' should not overlap with the control arrow button.\n\n var pageIconSize = legendModel.get('pageIconSize', true);\n\n if (!zrUtil.isArray(pageIconSize)) {\n pageIconSize = [pageIconSize, pageIconSize];\n }\n\n createPageButton('pagePrev', 0);\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n controllerGroup.add(new graphic.Text({\n name: 'pageText',\n style: {\n textFill: pageTextStyleModel.getTextColor(),\n font: pageTextStyleModel.getFont(),\n textVerticalAlign: 'middle',\n textAlign: 'center'\n },\n silent: true\n }));\n createPageButton('pageNext', 1);\n\n function createPageButton(name, iconIdx) {\n var pageDataIndexName = name + 'DataIndex';\n var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n // Buttons will be created in each render, so we do not need\n // to worry about avoiding using legendModel kept in scope.\n onclick: zrUtil.bind(me._pageGo, me, pageDataIndexName, legendModel, api)\n }, {\n x: -pageIconSize[0] / 2,\n y: -pageIconSize[1] / 2,\n width: pageIconSize[0],\n height: pageIconSize[1]\n });\n icon.name = name;\n controllerGroup.add(icon);\n }\n },\n\n /**\n * @override\n */\n layoutInner: function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n var selectorGroup = this.getSelectorGroup();\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n var hw = WH[1 - orientIdx];\n var yx = XY[1 - orientIdx];\n selector && layoutUtil.box( // Buttons in selectorGroup always layout horizontally\n 'horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n var selectorRect = selectorGroup.getBoundingRect();\n var selectorPos = [-selectorRect.x, -selectorRect.y];\n var processMaxSize = zrUtil.clone(maxSize);\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx);\n\n if (selector) {\n if (selectorPosition === 'end') {\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n } else {\n var offset = selectorRect[wh] + selectorButtonGap;\n selectorPos[orientIdx] -= offset;\n mainRect[xy] -= offset;\n }\n\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n selectorGroup.attr('position', selectorPos);\n }\n\n return mainRect;\n },\n _layoutContentAndController: function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx) {\n var contentGroup = this.getContentGroup();\n var containerGroup = this._containerGroup;\n var controllerGroup = this._controllerGroup; // Place items in contentGroup.\n\n layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n layoutUtil.box( // Buttons in controller are layout always horizontally.\n 'horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n var contentRect = contentGroup.getBoundingRect();\n var controllerRect = controllerGroup.getBoundingRect();\n var showController = this._showController = contentRect[wh] > maxSize[wh];\n var contentPos = [-contentRect.x, -contentRect.y]; // Remain contentPos when scroll animation perfroming.\n // If first rendering, `contentGroup.position` is [0, 0], which\n // does not make sense and may cause unexepcted animation if adopted.\n\n if (!isFirstRender) {\n contentPos[orientIdx] = contentGroup.position[orientIdx];\n } // Layout container group based on 0.\n\n\n var containerPos = [0, 0];\n var controllerPos = [-controllerRect.x, -controllerRect.y];\n var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true)); // Place containerGroup and controllerGroup and contentGroup.\n\n if (showController) {\n var pageButtonPosition = legendModel.get('pageButtonPosition', true); // controller is on the right / bottom.\n\n if (pageButtonPosition === 'end') {\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n } // controller is on the left / top.\n else {\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n }\n } // Always align controller to content as 'middle'.\n\n\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n contentGroup.attr('position', contentPos);\n containerGroup.attr('position', containerPos);\n controllerGroup.attr('position', controllerPos); // Calculate `mainRect` and set `clipPath`.\n // mainRect should not be calculated by `this.group.getBoundingRect()`\n // for sake of the overflow.\n\n var mainRect = {\n x: 0,\n y: 0\n }; // Consider content may be overflow (should be clipped).\n\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]); // `containerRect[yx] + containerPos[1 - orientIdx]` is 0.\n\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n containerGroup.__rectSize = maxSize[wh];\n\n if (showController) {\n var clipShape = {\n x: 0,\n y: 0\n };\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n clipShape[hw] = mainRect[hw];\n containerGroup.setClipPath(new graphic.Rect({\n shape: clipShape\n })); // Consider content may be larger than container, container rect\n // can not be obtained from `containerGroup.getBoundingRect()`.\n\n containerGroup.__rectSize = clipShape[wh];\n } else {\n // Do not remove or ignore controller. Keep them set as placeholders.\n controllerGroup.eachChild(function (child) {\n child.attr({\n invisible: true,\n silent: true\n });\n });\n } // Content translate animation.\n\n\n var pageInfo = this._getPageInfo(legendModel);\n\n pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n position: pageInfo.contentPosition\n }, // When switch from \"show controller\" to \"not show controller\", view should be\n // updated immediately without animation, otherwise causes weird effect.\n showController ? legendModel : false);\n\n this._updatePageInfoView(legendModel, pageInfo);\n\n return mainRect;\n },\n _pageGo: function (to, legendModel, api) {\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n scrollDataIndex != null && api.dispatchAction({\n type: 'legendScroll',\n scrollDataIndex: scrollDataIndex,\n legendId: legendModel.id\n });\n },\n _updatePageInfoView: function (legendModel, pageInfo) {\n var controllerGroup = this._controllerGroup;\n zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n var canJump = pageInfo[name + 'DataIndex'] != null;\n var icon = controllerGroup.childOfName(name);\n\n if (icon) {\n icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n icon.cursor = canJump ? 'pointer' : 'default';\n }\n });\n var pageText = controllerGroup.childOfName('pageText');\n var pageFormatter = legendModel.get('pageFormatter');\n var pageIndex = pageInfo.pageIndex;\n var current = pageIndex != null ? pageIndex + 1 : 0;\n var total = pageInfo.pageCount;\n pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current).replace('{total}', total) : pageFormatter({\n current: current,\n total: total\n }));\n },\n\n /**\n * @param {module:echarts/model/Model} legendModel\n * @return {Object} {\n * contentPosition: Array., null when data item not found.\n * pageIndex: number, null when data item not found.\n * pageCount: number, always be a number, can be 0.\n * pagePrevDataIndex: number, null when no previous page.\n * pageNextDataIndex: number, null when no next page.\n * }\n */\n _getPageInfo: function (legendModel) {\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n var contentGroup = this.getContentGroup();\n var containerRectSize = this._containerGroup.__rectSize;\n var orientIdx = legendModel.getOrient().index;\n var wh = WH[orientIdx];\n var xy = XY[orientIdx];\n\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n var children = contentGroup.children();\n var targetItem = children[targetItemIndex];\n var itemCount = children.length;\n var pCount = !itemCount ? 0 : 1;\n var result = {\n contentPosition: contentGroup.position.slice(),\n pageCount: pCount,\n pageIndex: pCount - 1,\n pagePrevDataIndex: null,\n pageNextDataIndex: null\n };\n\n if (!targetItem) {\n return result;\n }\n\n var targetItemInfo = getItemInfo(targetItem);\n result.contentPosition[orientIdx] = -targetItemInfo.s; // Strategy:\n // (1) Always align based on the left/top most item.\n // (2) It is user-friendly that the last item shown in the\n // current window is shown at the begining of next window.\n // Otherwise if half of the last item is cut by the window,\n // it will have no chance to display entirely.\n // (3) Consider that item size probably be different, we\n // have calculate pageIndex by size rather than item index,\n // and we can not get page index directly by division.\n // (4) The window is to narrow to contain more than\n // one item, we should make sure that the page can be fliped.\n\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // Half of the last item is out of the window.\n !currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || // If the current item does not intersect with the window, the new page\n // can be started at the current item or the last item.\n currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n if (winEndItemInfo.i > winStartItemInfo.i) {\n winStartItemInfo = winEndItemInfo;\n } else {\n // e.g., when page size is smaller than item size.\n winStartItemInfo = currItemInfo;\n }\n\n if (winStartItemInfo) {\n if (result.pageNextDataIndex == null) {\n result.pageNextDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n }\n }\n\n winEndItemInfo = currItemInfo;\n }\n\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n currItemInfo = getItemInfo(children[i]);\n\n if ( // If the the end item does not intersect with the window started\n // from the current item, a page can be settled.\n (!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && // e.g., when page size is smaller than item size.\n winStartItemInfo.i < winEndItemInfo.i) {\n winEndItemInfo = winStartItemInfo;\n\n if (result.pagePrevDataIndex == null) {\n result.pagePrevDataIndex = winStartItemInfo.i;\n }\n\n ++result.pageCount;\n ++result.pageIndex;\n }\n\n winStartItemInfo = currItemInfo;\n }\n\n return result;\n\n function getItemInfo(el) {\n if (el) {\n var itemRect = el.getBoundingRect();\n var start = itemRect[xy] + el.position[orientIdx];\n return {\n s: start,\n e: start + itemRect[wh],\n i: el.__legendDataIndex\n };\n }\n }\n\n function intersect(itemInfo, winStart) {\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n }\n },\n _findTargetItemIndex: function (targetDataIndex) {\n if (!this._showController) {\n return 0;\n }\n\n var index;\n var contentGroup = this.getContentGroup();\n var defaultIndex;\n contentGroup.eachChild(function (child, idx) {\n var legendDataIdx = child.__legendDataIndex; // FIXME\n // If the given targetDataIndex (from model) is illegal,\n // we use defaultIndex. But the index on the legend model and\n // action payload is still illegal. That case will not be\n // changed until some scenario requires.\n\n if (defaultIndex == null && legendDataIdx != null) {\n defaultIndex = idx;\n }\n\n if (legendDataIdx === targetDataIndex) {\n index = idx;\n }\n });\n return index != null ? index : defaultIndex;\n }\n});\nvar _default = ScrollableLegendView;\nmodule.exports = _default;","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n\n// `Array.prototype.reduce` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/pop-btn-a47e94c8dae9ca09c9b0110cc2a56007.png\";","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar BoundingRect = require(\"zrender/lib/core/BoundingRect\");\n\nvar visualSolution = require(\"../../visual/visualSolution\");\n\nvar selector = require(\"./selector\");\n\nvar throttleUtil = require(\"../../util/throttle\");\n\nvar BrushTargetManager = require(\"../helper/BrushTargetManager\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\nvar PRIORITY_BRUSH = echarts.PRIORITY.VISUAL.BRUSH;\n/**\n * Layout for visual, the priority higher than other layout, and before brush visual.\n */\n\necharts.registerLayout(PRIORITY_BRUSH, function (ecModel, api, payload) {\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n brushType: false\n });\n });\n layoutCovers(ecModel);\n});\n\nfunction layoutCovers(ecModel) {\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel) {\n var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n });\n}\n/**\n * Register the visual encoding if this modules required.\n */\n\n\necharts.registerVisual(PRIORITY_BRUSH, function (ecModel, api, payload) {\n var brushSelected = [];\n var throttleType;\n var throttleDelay;\n ecModel.eachComponent({\n mainType: 'brush'\n }, function (brushModel, brushIndex) {\n var thisBrushSelected = {\n brushId: brushModel.id,\n brushIndex: brushIndex,\n brushName: brushModel.name,\n areas: zrUtil.clone(brushModel.areas),\n selected: []\n }; // Every brush component exists in event params, convenient\n // for user to find by index.\n\n brushSelected.push(thisBrushSelected);\n var brushOption = brushModel.option;\n var brushLink = brushOption.brushLink;\n var linkedSeriesMap = [];\n var selectedDataIndexForLink = [];\n var rangeInfoBySeries = [];\n var hasBrushExists = 0;\n\n if (!brushIndex) {\n // Only the first throttle setting works.\n throttleType = brushOption.throttleType;\n throttleDelay = brushOption.throttleDelay;\n } // Add boundingRect and selectors to range.\n\n\n var areas = zrUtil.map(brushModel.areas, function (area) {\n return bindSelector(zrUtil.defaults({\n boundingRect: boundingRectBuilders[area.brushType](area)\n }, area));\n });\n var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n mappingOption.mappingMethod = 'fixed';\n });\n zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n linkedSeriesMap[seriesIndex] = 1;\n });\n\n function linkOthers(seriesIndex) {\n return brushLink === 'all' || linkedSeriesMap[seriesIndex];\n } // If no supported brush or no brush on the series,\n // all visuals should be in original state.\n\n\n function brushed(rangeInfoList) {\n return !!rangeInfoList.length;\n }\n /**\n * Logic for each series: (If the logic has to be modified one day, do it carefully!)\n *\n * ( brushed ┬ && ┬hasBrushExist ┬ && linkOthers ) => StepA: ┬record, ┬ StepB: ┬visualByRecord.\n * !brushed┘ ├hasBrushExist ┤ └nothing,┘ ├visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( !brushed && ┬hasBrushExist ┬ && linkOthers ) => StepA: nothing, StepB: ┬visualByRecord.\n * └!hasBrushExist┘ └nothing.\n * ( brushed ┬ && !linkOthers ) => StepA: nothing, StepB: ┬visualByCheck.\n * !brushed┘ └nothing.\n * ( !brushed && !linkOthers ) => StepA: nothing, StepB: nothing.\n */\n // Step A\n\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex, rangeInfoList) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n });\n\n function stepAParallel(seriesModel, seriesIndex) {\n var coordSys = seriesModel.coordinateSystem;\n hasBrushExists |= coordSys.hasAxisBrushed();\n linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n });\n }\n\n function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\n\n if (!selectorsByBrushType || brushModelNotControll(brushModel, seriesIndex)) {\n return;\n }\n\n zrUtil.each(areas, function (area) {\n selectorsByBrushType[area.brushType] && brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel) && rangeInfoList.push(area);\n hasBrushExists |= brushed(rangeInfoList);\n });\n\n if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n var data = seriesModel.getData();\n data.each(function (dataIndex) {\n if (checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex)) {\n selectedDataIndexForLink[dataIndex] = 1;\n }\n });\n }\n } // Step B\n\n\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\n var seriesBrushSelected = {\n seriesId: seriesModel.id,\n seriesIndex: seriesIndex,\n seriesName: seriesModel.name,\n dataIndex: []\n }; // Every series exists in event params, convenient\n // for user to find series by seriesIndex.\n\n thisBrushSelected.selected.push(seriesBrushSelected);\n var selectorsByBrushType = getSelectorsByBrushType(seriesModel);\n var rangeInfoList = rangeInfoBySeries[seriesIndex];\n var data = seriesModel.getData();\n var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n } : function (dataIndex) {\n return checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n }; // If no supported brush or no brush, all visuals are in original state.\n\n (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n });\n });\n dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n});\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n // This event will not be triggered when `setOpion`, otherwise dead lock may\n // triggered when do `setOption` in event listener, which we do not find\n // satisfactory way to solve yet. Some considered resolutions:\n // (a) Diff with prevoius selected data ant only trigger event when changed.\n // But store previous data and diff precisely (i.e., not only by dataIndex, but\n // also detect value changes in selected data) might bring complexity or fragility.\n // (b) Use spectial param like `silent` to suppress event triggering.\n // But such kind of volatile param may be weird in `setOption`.\n if (!payload) {\n return;\n }\n\n var zr = api.getZr();\n\n if (zr[DISPATCH_FLAG]) {\n return;\n }\n\n if (!zr[DISPATCH_METHOD]) {\n zr[DISPATCH_METHOD] = doDispatch;\n }\n\n var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n if (!api.isDisposed()) {\n var zr = api.getZr();\n zr[DISPATCH_FLAG] = true;\n api.dispatchAction({\n type: 'brushSelect',\n batch: brushSelected\n });\n zr[DISPATCH_FLAG] = false;\n }\n}\n\nfunction checkInRange(selectorsByBrushType, rangeInfoList, data, dataIndex) {\n for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n var area = rangeInfoList[i];\n\n if (selectorsByBrushType[area.brushType](dataIndex, data, area.selectors, area)) {\n return true;\n }\n }\n}\n\nfunction getSelectorsByBrushType(seriesModel) {\n var brushSelector = seriesModel.brushSelector;\n\n if (zrUtil.isString(brushSelector)) {\n var sels = [];\n zrUtil.each(selector, function (selectorsByElementType, brushType) {\n sels[brushType] = function (dataIndex, data, selectors, area) {\n var itemLayout = data.getItemLayout(dataIndex);\n return selectorsByElementType[brushSelector](itemLayout, selectors, area);\n };\n });\n return sels;\n } else if (zrUtil.isFunction(brushSelector)) {\n var bSelector = {};\n zrUtil.each(selector, function (sel, brushType) {\n bSelector[brushType] = brushSelector;\n });\n return bSelector;\n }\n\n return brushSelector;\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n var seriesIndices = brushModel.option.seriesIndex;\n return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nfunction bindSelector(area) {\n var selectors = area.selectors = {};\n zrUtil.each(selector[area.brushType], function (selFn, elType) {\n // Do not use function binding or curry for performance.\n selectors[elType] = function (itemLayout) {\n return selFn(itemLayout, selectors, area);\n };\n });\n return area;\n}\n\nvar boundingRectBuilders = {\n lineX: zrUtil.noop,\n lineY: zrUtil.noop,\n rect: function (area) {\n return getBoundingRectFromMinMax(area.range);\n },\n polygon: function (area) {\n var minMax;\n var range = area.range;\n\n for (var i = 0, len = range.length; i < len; i++) {\n minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n var rg = range[i];\n rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n }\n\n return minMax && getBoundingRectFromMinMax(minMax);\n }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}\n\nexports.layoutCovers = layoutCovers;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./effectScatter/EffectScatterSeries\");\n\nrequire(\"./effectScatter/EffectScatterView\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar layoutPoints = require(\"../layout/points\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerVisual(visualSymbol('effectScatter', 'circle'));\necharts.registerLayout(layoutPoints('effectScatter'));","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar coordsOffsetMap = {\n '南海诸岛': [32, 80],\n // 全国\n '广东': [0, -10],\n '香港': [10, 5],\n '澳门': [-10, 10],\n //'北京': [-10, 0],\n '天津': [5, 5]\n};\n\nfunction _default(mapType, region) {\n if (mapType === 'china') {\n var coordFix = coordsOffsetMap[region.name];\n\n if (coordFix) {\n var cp = region.center;\n cp[0] += coordFix[0] / 10.5;\n cp[1] += -coordFix[1] / (10.5 / 0.75);\n }\n }\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar BaseBarSeries = require(\"./BaseBarSeries\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = BaseBarSeries.extend({\n type: 'series.bar',\n dependencies: ['grid', 'polar'],\n brushSelector: 'rect',\n\n /**\n * @override\n */\n getProgressive: function () {\n // Do not support progressive in normal mode.\n return this.get('large') ? this.get('progressive') : false;\n },\n\n /**\n * @override\n */\n getProgressiveThreshold: function () {\n // Do not support progressive in normal mode.\n var progressiveThreshold = this.get('progressiveThreshold');\n var largeThreshold = this.get('largeThreshold');\n\n if (largeThreshold > progressiveThreshold) {\n progressiveThreshold = largeThreshold;\n }\n\n return progressiveThreshold;\n },\n defaultOption: {\n // If clipped\n // Only available on cartesian2d\n clip: true,\n // If use caps on two sides of bars\n // Only available on tangential polar bar\n roundCap: false,\n showBackground: false,\n backgroundStyle: {\n color: 'rgba(180, 180, 180, 0.2)',\n borderColor: null,\n borderWidth: 0,\n borderType: 'solid',\n borderRadius: 0,\n shadowBlur: 0,\n shadowColor: null,\n shadowOffsetX: 0,\n shadowOffsetY: 0,\n opacity: 1\n }\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _symbol = require(\"../../util/symbol\");\n\nvar createSymbol = _symbol.createSymbol;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _labelHelper = require(\"./labelHelper\");\n\nvar getDefaultLabel = _labelHelper.getDefaultLabel;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @module echarts/chart/helper/Symbol\n */\n\n/**\n * @constructor\n * @alias {module:echarts/chart/helper/Symbol}\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @extends {module:zrender/graphic/Group}\n */\nfunction SymbolClz(data, idx, seriesScope) {\n graphic.Group.call(this);\n this.updateData(data, idx, seriesScope);\n}\n\nvar symbolProto = SymbolClz.prototype;\n/**\n * @public\n * @static\n * @param {module:echarts/data/List} data\n * @param {number} dataIndex\n * @return {Array.} [width, height]\n */\n\nvar getSymbolSize = SymbolClz.getSymbolSize = function (data, idx) {\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\n return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n};\n\nfunction getScale(symbolSize) {\n return [symbolSize[0] / 2, symbolSize[1] / 2];\n}\n\nfunction driftSymbol(dx, dy) {\n this.parent.drift(dx, dy);\n}\n\nsymbolProto._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n // Remove paths created before\n this.removeAll();\n var color = data.getItemVisual(idx, 'color'); // var symbolPath = createSymbol(\n // symbolType, -0.5, -0.5, 1, 1, color\n // );\n // If width/height are set too small (e.g., set to 1) on ios10\n // and macOS Sierra, a circle stroke become a rect, no matter what\n // the scale is set. So we set width/height as 2. See #4150.\n\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, color, keepAspect);\n symbolPath.attr({\n z2: 100,\n culling: true,\n scale: getScale(symbolSize)\n }); // Rewrite drift method\n\n symbolPath.drift = driftSymbol;\n this._symbolType = symbolType;\n this.add(symbolPath);\n};\n/**\n * Stop animation\n * @param {boolean} toLastFrame\n */\n\n\nsymbolProto.stopSymbolAnimation = function (toLastFrame) {\n this.childAt(0).stopAnimation(toLastFrame);\n};\n/**\n * FIXME:\n * Caution: This method breaks the encapsulation of this module,\n * but it indeed brings convenience. So do not use the method\n * unless you detailedly know all the implements of `Symbol`,\n * especially animation.\n *\n * Get symbol path element.\n */\n\n\nsymbolProto.getSymbolPath = function () {\n return this.childAt(0);\n};\n/**\n * Get scale(aka, current symbol size).\n * Including the change caused by animation\n */\n\n\nsymbolProto.getScale = function () {\n return this.childAt(0).scale;\n};\n/**\n * Highlight symbol\n */\n\n\nsymbolProto.highlight = function () {\n this.childAt(0).trigger('emphasis');\n};\n/**\n * Downplay symbol\n */\n\n\nsymbolProto.downplay = function () {\n this.childAt(0).trigger('normal');\n};\n/**\n * @param {number} zlevel\n * @param {number} z\n */\n\n\nsymbolProto.setZ = function (zlevel, z) {\n var symbolPath = this.childAt(0);\n symbolPath.zlevel = zlevel;\n symbolPath.z = z;\n};\n\nsymbolProto.setDraggable = function (draggable) {\n var symbolPath = this.childAt(0);\n symbolPath.draggable = draggable;\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n};\n/**\n * Update symbol properties\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @param {Object} [seriesScope]\n * @param {Object} [seriesScope.itemStyle]\n * @param {Object} [seriesScope.hoverItemStyle]\n * @param {Object} [seriesScope.symbolRotate]\n * @param {Object} [seriesScope.symbolOffset]\n * @param {module:echarts/model/Model} [seriesScope.labelModel]\n * @param {module:echarts/model/Model} [seriesScope.hoverLabelModel]\n * @param {boolean} [seriesScope.hoverAnimation]\n * @param {Object} [seriesScope.cursorStyle]\n * @param {module:echarts/model/Model} [seriesScope.itemModel]\n * @param {string} [seriesScope.symbolInnerColor]\n * @param {Object} [seriesScope.fadeIn=false]\n */\n\n\nsymbolProto.updateData = function (data, idx, seriesScope) {\n this.silent = false;\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n var seriesModel = data.hostModel;\n var symbolSize = getSymbolSize(data, idx);\n var isInit = symbolType !== this._symbolType;\n\n if (isInit) {\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n } else {\n var symbolPath = this.childAt(0);\n symbolPath.silent = false;\n graphic.updateProps(symbolPath, {\n scale: getScale(symbolSize)\n }, seriesModel, idx);\n }\n\n this._updateCommon(data, idx, symbolSize, seriesScope);\n\n if (isInit) {\n var symbolPath = this.childAt(0);\n var fadeIn = seriesScope && seriesScope.fadeIn;\n var target = {\n scale: symbolPath.scale.slice()\n };\n fadeIn && (target.style = {\n opacity: symbolPath.style.opacity\n });\n symbolPath.scale = [0, 0];\n fadeIn && (symbolPath.style.opacity = 0);\n graphic.initProps(symbolPath, target, seriesModel, idx);\n }\n\n this._seriesModel = seriesModel;\n}; // Update common properties\n\n\nvar normalStyleAccessPath = ['itemStyle'];\nvar emphasisStyleAccessPath = ['emphasis', 'itemStyle'];\nvar normalLabelAccessPath = ['label'];\nvar emphasisLabelAccessPath = ['emphasis', 'label'];\n/**\n * @param {module:echarts/data/List} data\n * @param {number} idx\n * @param {Array.} symbolSize\n * @param {Object} [seriesScope]\n */\n\nsymbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {\n var symbolPath = this.childAt(0);\n var seriesModel = data.hostModel;\n var color = data.getItemVisual(idx, 'color'); // Reset style\n\n if (symbolPath.type !== 'image') {\n symbolPath.useStyle({\n strokeNoScale: true\n });\n } else {\n symbolPath.setStyle({\n opacity: 1,\n shadowBlur: null,\n shadowOffsetX: null,\n shadowOffsetY: null,\n shadowColor: null\n });\n }\n\n var itemStyle = seriesScope && seriesScope.itemStyle;\n var hoverItemStyle = seriesScope && seriesScope.hoverItemStyle;\n var symbolOffset = seriesScope && seriesScope.symbolOffset;\n var labelModel = seriesScope && seriesScope.labelModel;\n var hoverLabelModel = seriesScope && seriesScope.hoverLabelModel;\n var hoverAnimation = seriesScope && seriesScope.hoverAnimation;\n var cursorStyle = seriesScope && seriesScope.cursorStyle;\n\n if (!seriesScope || data.hasItemOption) {\n var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx); // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n itemStyle = itemModel.getModel(normalStyleAccessPath).getItemStyle(['color']);\n hoverItemStyle = itemModel.getModel(emphasisStyleAccessPath).getItemStyle();\n symbolOffset = itemModel.getShallow('symbolOffset');\n labelModel = itemModel.getModel(normalLabelAccessPath);\n hoverLabelModel = itemModel.getModel(emphasisLabelAccessPath);\n hoverAnimation = itemModel.getShallow('hoverAnimation');\n cursorStyle = itemModel.getShallow('cursor');\n } else {\n hoverItemStyle = zrUtil.extend({}, hoverItemStyle);\n }\n\n var elStyle = symbolPath.style;\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n if (symbolOffset) {\n symbolPath.attr('position', [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])]);\n }\n\n cursorStyle && symbolPath.attr('cursor', cursorStyle); // PENDING setColor before setStyle!!!\n\n symbolPath.setColor(color, seriesScope && seriesScope.symbolInnerColor);\n symbolPath.setStyle(itemStyle);\n var opacity = data.getItemVisual(idx, 'opacity');\n\n if (opacity != null) {\n elStyle.opacity = opacity;\n }\n\n var liftZ = data.getItemVisual(idx, 'liftZ');\n var z2Origin = symbolPath.__z2Origin;\n\n if (liftZ != null) {\n if (z2Origin == null) {\n symbolPath.__z2Origin = symbolPath.z2;\n symbolPath.z2 += liftZ;\n }\n } else if (z2Origin != null) {\n symbolPath.z2 = z2Origin;\n symbolPath.__z2Origin = null;\n }\n\n var useNameLabel = seriesScope && seriesScope.useNameLabel;\n graphic.setLabelStyle(elStyle, hoverItemStyle, labelModel, hoverLabelModel, {\n labelFetcher: seriesModel,\n labelDataIndex: idx,\n defaultText: getLabelDefaultText,\n isRectText: true,\n autoColor: color\n }); // Do not execute util needed.\n\n function getLabelDefaultText(idx, opt) {\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n }\n\n symbolPath.__symbolOriginalScale = getScale(symbolSize);\n symbolPath.hoverStyle = hoverItemStyle;\n symbolPath.highDownOnUpdate = hoverAnimation && seriesModel.isAnimationEnabled() ? highDownOnUpdate : null;\n graphic.setHoverStyle(symbolPath);\n};\n\nfunction highDownOnUpdate(fromState, toState) {\n // Do not support this hover animation util some scenario required.\n // Animation can only be supported in hover layer when using `el.incremetal`.\n if (this.incremental || this.useHoverLayer) {\n return;\n }\n\n if (toState === 'emphasis') {\n var scale = this.__symbolOriginalScale;\n var ratio = scale[1] / scale[0];\n var emphasisOpt = {\n scale: [Math.max(scale[0] * 1.1, scale[0] + 3), Math.max(scale[1] * 1.1, scale[1] + 3 * ratio)]\n }; // FIXME\n // modify it after support stop specified animation.\n // toState === fromState\n // ? (this.stopAnimation(), this.attr(emphasisOpt))\n\n this.animateTo(emphasisOpt, 400, 'elasticOut');\n } else if (toState === 'normal') {\n this.animateTo({\n scale: this.__symbolOriginalScale\n }, 400, 'elasticOut');\n }\n}\n/**\n * @param {Function} cb\n * @param {Object} [opt]\n * @param {Object} [opt.keepLabel=true]\n */\n\n\nsymbolProto.fadeOut = function (cb, opt) {\n var symbolPath = this.childAt(0); // Avoid mistaken hover when fading out\n\n this.silent = symbolPath.silent = true; // Not show text when animating\n\n !(opt && opt.keepLabel) && (symbolPath.style.text = null);\n graphic.updateProps(symbolPath, {\n style: {\n opacity: 0\n },\n scale: [0, 0]\n }, this._seriesModel, this.dataIndex, cb);\n};\n\nzrUtil.inherits(SymbolClz, graphic.Group);\nvar _default = SymbolClz;\nmodule.exports = _default;","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/large-video-icon-6af3b8944220f8667a34d1bd6676d39d.png\";","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 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/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar MarkerModel = require(\"./MarkerModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = MarkerModel.extend({\n type: 'markLine',\n defaultOption: {\n zlevel: 0,\n z: 5,\n symbol: ['circle', 'arrow'],\n symbolSize: [8, 16],\n //symbolRotate: 0,\n precision: 2,\n tooltip: {\n trigger: 'item'\n },\n label: {\n show: true,\n position: 'end',\n distance: 5\n },\n lineStyle: {\n type: 'dashed'\n },\n emphasis: {\n label: {\n show: true\n },\n lineStyle: {\n width: 3\n }\n },\n animationEasing: 'linear'\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar ChartView = require(\"../../view/Chart\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\nvar _createClipPathFromCoordSys = require(\"../helper/createClipPathFromCoordSys\");\n\nvar createClipPath = _createClipPathFromCoordSys.createClipPath;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar NORMAL_ITEM_STYLE_PATH = ['itemStyle'];\nvar EMPHASIS_ITEM_STYLE_PATH = ['emphasis', 'itemStyle'];\nvar SKIP_PROPS = ['color', 'color0', 'borderColor', 'borderColor0'];\nvar CandlestickView = ChartView.extend({\n type: 'candlestick',\n render: function (seriesModel, ecModel, api) {\n // If there is clipPath created in large mode. Remove it.\n this.group.removeClipPath();\n\n this._updateDrawMode(seriesModel);\n\n this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n },\n incrementalPrepareRender: function (seriesModel, ecModel, api) {\n this._clear();\n\n this._updateDrawMode(seriesModel);\n },\n incrementalRender: function (params, seriesModel, ecModel, api) {\n this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n },\n _updateDrawMode: function (seriesModel) {\n var isLargeDraw = seriesModel.pipelineContext.large;\n\n if (this._isLargeDraw == null || isLargeDraw ^ this._isLargeDraw) {\n this._isLargeDraw = isLargeDraw;\n\n this._clear();\n }\n },\n _renderNormal: function (seriesModel) {\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var isSimpleBox = data.getLayout('isSimpleBox');\n var needsClip = seriesModel.get('clip', true);\n var coord = seriesModel.coordinateSystem;\n var clipArea = coord.getArea && coord.getArea(); // There is no old data only when first rendering or switching from\n // stream mode to normal mode, where previous elements should be removed.\n\n if (!this._data) {\n group.removeAll();\n }\n\n data.diff(oldData).add(function (newIdx) {\n if (data.hasValue(newIdx)) {\n var el;\n var itemLayout = data.getItemLayout(newIdx);\n\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n return;\n }\n\n el = createNormalBox(itemLayout, newIdx, true);\n graphic.initProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }\n }).update(function (newIdx, oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx); // Empty data\n\n if (!data.hasValue(newIdx)) {\n group.remove(el);\n return;\n }\n\n var itemLayout = data.getItemLayout(newIdx);\n\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n group.remove(el);\n return;\n }\n\n if (!el) {\n el = createNormalBox(itemLayout, newIdx);\n } else {\n graphic.updateProps(el, {\n shape: {\n points: itemLayout.ends\n }\n }, seriesModel, newIdx);\n }\n\n setBoxCommon(el, data, newIdx, isSimpleBox);\n group.add(el);\n data.setItemGraphicEl(newIdx, el);\n }).remove(function (oldIdx) {\n var el = oldData.getItemGraphicEl(oldIdx);\n el && group.remove(el);\n }).execute();\n this._data = data;\n },\n _renderLarge: function (seriesModel) {\n this._clear();\n\n createLarge(seriesModel, this.group);\n var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n if (clipPath) {\n this.group.setClipPath(clipPath);\n } else {\n this.group.removeClipPath();\n }\n },\n _incrementalRenderNormal: function (params, seriesModel) {\n var data = seriesModel.getData();\n var isSimpleBox = data.getLayout('isSimpleBox');\n var dataIndex;\n\n while ((dataIndex = params.next()) != null) {\n var el;\n var itemLayout = data.getItemLayout(dataIndex);\n el = createNormalBox(itemLayout, dataIndex);\n setBoxCommon(el, data, dataIndex, isSimpleBox);\n el.incremental = true;\n this.group.add(el);\n }\n },\n _incrementalRenderLarge: function (params, seriesModel) {\n createLarge(seriesModel, this.group, true);\n },\n remove: function (ecModel) {\n this._clear();\n },\n _clear: function () {\n this.group.removeAll();\n this._data = null;\n },\n dispose: zrUtil.noop\n});\nvar NormalBoxPath = Path.extend({\n type: 'normalCandlestickBox',\n shape: {},\n buildPath: function (ctx, shape) {\n var ends = shape.points;\n\n if (this.__simpleBox) {\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[6][0], ends[6][1]);\n } else {\n ctx.moveTo(ends[0][0], ends[0][1]);\n ctx.lineTo(ends[1][0], ends[1][1]);\n ctx.lineTo(ends[2][0], ends[2][1]);\n ctx.lineTo(ends[3][0], ends[3][1]);\n ctx.closePath();\n ctx.moveTo(ends[4][0], ends[4][1]);\n ctx.lineTo(ends[5][0], ends[5][1]);\n ctx.moveTo(ends[6][0], ends[6][1]);\n ctx.lineTo(ends[7][0], ends[7][1]);\n }\n }\n});\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n var ends = itemLayout.ends;\n return new NormalBoxPath({\n shape: {\n points: isInit ? transInit(ends, itemLayout) : ends\n },\n z2: 100\n });\n}\n\nfunction isNormalBoxClipped(clipArea, itemLayout) {\n var clipped = true;\n\n for (var i = 0; i < itemLayout.ends.length; i++) {\n // If any point are in the region.\n if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\n clipped = false;\n break;\n }\n }\n\n return clipped;\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n var itemModel = data.getItemModel(dataIndex);\n var normalItemStyleModel = itemModel.getModel(NORMAL_ITEM_STYLE_PATH);\n var color = data.getItemVisual(dataIndex, 'color');\n var borderColor = data.getItemVisual(dataIndex, 'borderColor') || color; // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var itemStyle = normalItemStyleModel.getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.strokeNoScale = true;\n el.style.fill = color;\n el.style.stroke = borderColor;\n el.__simpleBox = isSimpleBox;\n var hoverStyle = itemModel.getModel(EMPHASIS_ITEM_STYLE_PATH).getItemStyle();\n graphic.setHoverStyle(el, hoverStyle);\n}\n\nfunction transInit(points, itemLayout) {\n return zrUtil.map(points, function (point) {\n point = point.slice();\n point[1] = itemLayout.initBaseline;\n return point;\n });\n}\n\nvar LargeBoxPath = Path.extend({\n type: 'largeCandlestickBox',\n shape: {},\n buildPath: function (ctx, shape) {\n // Drawing lines is more efficient than drawing\n // a whole line or drawing rects.\n var points = shape.points;\n\n for (var i = 0; i < points.length;) {\n if (this.__sign === points[i++]) {\n var x = points[i++];\n ctx.moveTo(x, points[i++]);\n ctx.lineTo(x, points[i++]);\n } else {\n i += 3;\n }\n }\n }\n});\n\nfunction createLarge(seriesModel, group, incremental) {\n var data = seriesModel.getData();\n var largePoints = data.getLayout('largePoints');\n var elP = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: 1\n });\n group.add(elP);\n var elN = new LargeBoxPath({\n shape: {\n points: largePoints\n },\n __sign: -1\n });\n group.add(elN);\n setLargeStyle(1, elP, seriesModel, data);\n setLargeStyle(-1, elN, seriesModel, data);\n\n if (incremental) {\n elP.incremental = true;\n elN.incremental = true;\n }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n var suffix = sign > 0 ? 'P' : 'N';\n var borderColor = data.getVisual('borderColor' + suffix) || data.getVisual('color' + suffix); // Color must be excluded.\n // Because symbol provide setColor individually to set fill and stroke\n\n var itemStyle = seriesModel.getModel(NORMAL_ITEM_STYLE_PATH).getItemStyle(SKIP_PROPS);\n el.useStyle(itemStyle);\n el.style.fill = null;\n el.style.stroke = borderColor; // No different\n // el.style.lineWidth = .5;\n}\n\nvar _default = CandlestickView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar graphic = require(\"../../util/graphic\");\n\nvar ChartView = require(\"../../view/Chart\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * @param {module:echarts/model/Series} seriesModel\n * @param {boolean} hasAnimation\n * @inner\n */\nfunction updateDataSelected(uid, seriesModel, hasAnimation, api) {\n var data = seriesModel.getData();\n var dataIndex = this.dataIndex;\n var name = data.getName(dataIndex);\n var selectedOffset = seriesModel.get('selectedOffset');\n api.dispatchAction({\n type: 'pieToggleSelect',\n from: uid,\n name: name,\n seriesId: seriesModel.id\n });\n data.each(function (idx) {\n toggleItemSelected(data.getItemGraphicEl(idx), data.getItemLayout(idx), seriesModel.isSelected(data.getName(idx)), selectedOffset, hasAnimation);\n });\n}\n/**\n * @param {module:zrender/graphic/Sector} el\n * @param {Object} layout\n * @param {boolean} isSelected\n * @param {number} selectedOffset\n * @param {boolean} hasAnimation\n * @inner\n */\n\n\nfunction toggleItemSelected(el, layout, isSelected, selectedOffset, hasAnimation) {\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\n var dx = Math.cos(midAngle);\n var dy = Math.sin(midAngle);\n var offset = isSelected ? selectedOffset : 0;\n var position = [dx * offset, dy * offset];\n hasAnimation // animateTo will stop revious animation like update transition\n ? el.animate().when(200, {\n position: position\n }).start('bounceOut') : el.attr('position', position);\n}\n/**\n * Piece of pie including Sector, Label, LabelLine\n * @constructor\n * @extends {module:zrender/graphic/Group}\n */\n\n\nfunction PiePiece(data, idx) {\n graphic.Group.call(this);\n var sector = new graphic.Sector({\n z2: 2\n });\n var polyline = new graphic.Polyline();\n var text = new graphic.Text();\n this.add(sector);\n this.add(polyline);\n this.add(text);\n this.updateData(data, idx, true);\n}\n\nvar piePieceProto = PiePiece.prototype;\n\npiePieceProto.updateData = function (data, idx, firstCreate) {\n var sector = this.childAt(0);\n var labelLine = this.childAt(1);\n var labelText = this.childAt(2);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var sectorShape = zrUtil.extend({}, layout);\n sectorShape.label = null;\n var animationTypeUpdate = seriesModel.getShallow('animationTypeUpdate');\n\n if (firstCreate) {\n sector.setShape(sectorShape);\n var animationType = seriesModel.getShallow('animationType');\n\n if (animationType === 'scale') {\n sector.shape.r = layout.r0;\n graphic.initProps(sector, {\n shape: {\n r: layout.r\n }\n }, seriesModel, idx);\n } // Expansion\n else {\n sector.shape.endAngle = layout.startAngle;\n graphic.updateProps(sector, {\n shape: {\n endAngle: layout.endAngle\n }\n }, seriesModel, idx);\n }\n } else {\n if (animationTypeUpdate === 'expansion') {\n // Sectors are set to be target shape and an overlaying clipPath is used for animation\n sector.setShape(sectorShape);\n } else {\n // Transition animation from the old shape\n graphic.updateProps(sector, {\n shape: sectorShape\n }, seriesModel, idx);\n }\n } // Update common style\n\n\n var visualColor = data.getItemVisual(idx, 'color');\n sector.useStyle(zrUtil.defaults({\n lineJoin: 'bevel',\n fill: visualColor\n }, itemModel.getModel('itemStyle').getItemStyle()));\n sector.hoverStyle = itemModel.getModel('emphasis.itemStyle').getItemStyle();\n var cursorStyle = itemModel.getShallow('cursor');\n cursorStyle && sector.attr('cursor', cursorStyle); // Toggle selected\n\n toggleItemSelected(this, data.getItemLayout(idx), seriesModel.isSelected(data.getName(idx)), seriesModel.get('selectedOffset'), seriesModel.get('animation')); // Label and text animation should be applied only for transition type animation when update\n\n var withAnimation = !firstCreate && animationTypeUpdate === 'transition';\n\n this._updateLabel(data, idx, withAnimation);\n\n this.highDownOnUpdate = !seriesModel.get('silent') ? function (fromState, toState) {\n var hasAnimation = seriesModel.isAnimationEnabled() && itemModel.get('hoverAnimation');\n\n if (toState === 'emphasis') {\n labelLine.ignore = labelLine.hoverIgnore;\n labelText.ignore = labelText.hoverIgnore; // Sector may has animation of updating data. Force to move to the last frame\n // Or it may stopped on the wrong shape\n\n if (hasAnimation) {\n sector.stopAnimation(true);\n sector.animateTo({\n shape: {\n r: layout.r + seriesModel.get('hoverOffset')\n }\n }, 300, 'elasticOut');\n }\n } else {\n labelLine.ignore = labelLine.normalIgnore;\n labelText.ignore = labelText.normalIgnore;\n\n if (hasAnimation) {\n sector.stopAnimation(true);\n sector.animateTo({\n shape: {\n r: layout.r\n }\n }, 300, 'elasticOut');\n }\n }\n } : null;\n graphic.setHoverStyle(this);\n};\n\npiePieceProto._updateLabel = function (data, idx, withAnimation) {\n var labelLine = this.childAt(1);\n var labelText = this.childAt(2);\n var seriesModel = data.hostModel;\n var itemModel = data.getItemModel(idx);\n var layout = data.getItemLayout(idx);\n var labelLayout = layout.label;\n var visualColor = data.getItemVisual(idx, 'color');\n\n if (!labelLayout || isNaN(labelLayout.x) || isNaN(labelLayout.y)) {\n labelText.ignore = labelText.normalIgnore = labelText.hoverIgnore = labelLine.ignore = labelLine.normalIgnore = labelLine.hoverIgnore = true;\n return;\n }\n\n var targetLineShape = {\n points: labelLayout.linePoints || [[labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y], [labelLayout.x, labelLayout.y]]\n };\n var targetTextStyle = {\n x: labelLayout.x,\n y: labelLayout.y\n };\n\n if (withAnimation) {\n graphic.updateProps(labelLine, {\n shape: targetLineShape\n }, seriesModel, idx);\n graphic.updateProps(labelText, {\n style: targetTextStyle\n }, seriesModel, idx);\n } else {\n labelLine.attr({\n shape: targetLineShape\n });\n labelText.attr({\n style: targetTextStyle\n });\n }\n\n labelText.attr({\n rotation: labelLayout.rotation,\n origin: [labelLayout.x, labelLayout.y],\n z2: 10\n });\n var labelModel = itemModel.getModel('label');\n var labelHoverModel = itemModel.getModel('emphasis.label');\n var labelLineModel = itemModel.getModel('labelLine');\n var labelLineHoverModel = itemModel.getModel('emphasis.labelLine');\n var visualColor = data.getItemVisual(idx, 'color');\n graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel, {\n labelFetcher: data.hostModel,\n labelDataIndex: idx,\n defaultText: labelLayout.text,\n autoColor: visualColor,\n useInsideStyle: !!labelLayout.inside\n }, {\n textAlign: labelLayout.textAlign,\n textVerticalAlign: labelLayout.verticalAlign,\n opacity: data.getItemVisual(idx, 'opacity')\n });\n labelText.ignore = labelText.normalIgnore = !labelModel.get('show');\n labelText.hoverIgnore = !labelHoverModel.get('show');\n labelLine.ignore = labelLine.normalIgnore = !labelLineModel.get('show');\n labelLine.hoverIgnore = !labelLineHoverModel.get('show'); // Default use item visual color\n\n labelLine.setStyle({\n stroke: visualColor,\n opacity: data.getItemVisual(idx, 'opacity')\n });\n labelLine.setStyle(labelLineModel.getModel('lineStyle').getLineStyle());\n labelLine.hoverStyle = labelLineHoverModel.getModel('lineStyle').getLineStyle();\n var smooth = labelLineModel.get('smooth');\n\n if (smooth && smooth === true) {\n smooth = 0.4;\n }\n\n labelLine.setShape({\n smooth: smooth\n });\n};\n\nzrUtil.inherits(PiePiece, graphic.Group); // Pie view\n\nvar PieView = ChartView.extend({\n type: 'pie',\n init: function () {\n var sectorGroup = new graphic.Group();\n this._sectorGroup = sectorGroup;\n },\n render: function (seriesModel, ecModel, api, payload) {\n if (payload && payload.from === this.uid) {\n return;\n }\n\n var data = seriesModel.getData();\n var oldData = this._data;\n var group = this.group;\n var hasAnimation = ecModel.get('animation');\n var isFirstRender = !oldData;\n var animationType = seriesModel.get('animationType');\n var animationTypeUpdate = seriesModel.get('animationTypeUpdate');\n var onSectorClick = zrUtil.curry(updateDataSelected, this.uid, seriesModel, hasAnimation, api);\n var selectedMode = seriesModel.get('selectedMode');\n data.diff(oldData).add(function (idx) {\n var piePiece = new PiePiece(data, idx); // Default expansion animation\n\n if (isFirstRender && animationType !== 'scale') {\n piePiece.eachChild(function (child) {\n child.stopAnimation(true);\n });\n }\n\n selectedMode && piePiece.on('click', onSectorClick);\n data.setItemGraphicEl(idx, piePiece);\n group.add(piePiece);\n }).update(function (newIdx, oldIdx) {\n var piePiece = oldData.getItemGraphicEl(oldIdx);\n\n if (!isFirstRender && animationTypeUpdate !== 'transition') {\n piePiece.eachChild(function (child) {\n child.stopAnimation(true);\n });\n }\n\n piePiece.updateData(data, newIdx);\n piePiece.off('click');\n selectedMode && piePiece.on('click', onSectorClick);\n group.add(piePiece);\n data.setItemGraphicEl(newIdx, piePiece);\n }).remove(function (idx) {\n var piePiece = oldData.getItemGraphicEl(idx);\n group.remove(piePiece);\n }).execute();\n\n if (hasAnimation && data.count() > 0 && (isFirstRender ? animationType !== 'scale' : animationTypeUpdate !== 'transition')) {\n var shape = data.getItemLayout(0);\n\n for (var s = 1; isNaN(shape.startAngle) && s < data.count(); ++s) {\n shape = data.getItemLayout(s);\n }\n\n var r = Math.max(api.getWidth(), api.getHeight()) / 2;\n var removeClipPath = zrUtil.bind(group.removeClipPath, group);\n group.setClipPath(this._createClipPath(shape.cx, shape.cy, r, shape.startAngle, shape.clockwise, removeClipPath, seriesModel, isFirstRender));\n } else {\n // clipPath is used in first-time animation, so remove it when otherwise. See: #8994\n group.removeClipPath();\n }\n\n this._data = data;\n },\n dispose: function () {},\n _createClipPath: function (cx, cy, r, startAngle, clockwise, cb, seriesModel, isFirstRender) {\n var clipPath = new graphic.Sector({\n shape: {\n cx: cx,\n cy: cy,\n r0: 0,\n r: r,\n startAngle: startAngle,\n endAngle: startAngle,\n clockwise: clockwise\n }\n });\n var initOrUpdate = isFirstRender ? graphic.initProps : graphic.updateProps;\n initOrUpdate(clipPath, {\n shape: {\n endAngle: startAngle + (clockwise ? 1 : -1) * Math.PI * 2\n }\n }, seriesModel, cb);\n return clipPath;\n },\n\n /**\n * @implement\n */\n containPoint: function (point, seriesModel) {\n var data = seriesModel.getData();\n var itemLayout = data.getItemLayout(0);\n\n if (itemLayout) {\n var dx = point[0] - itemLayout.cx;\n var dy = point[1] - itemLayout.cy;\n var radius = Math.sqrt(dx * dx + dy * dy);\n return radius <= itemLayout.r && radius >= itemLayout.r0;\n }\n }\n});\nvar _default = PieView;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar vec2 = require(\"zrender/lib/core/vector\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _multipleGraphEdgeHelper = require(\"../helper/multipleGraphEdgeHelper\");\n\nvar getCurvenessForEdge = _multipleGraphEdgeHelper.getCurvenessForEdge;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction simpleLayout(seriesModel) {\n var coordSys = seriesModel.coordinateSystem;\n\n if (coordSys && coordSys.type !== 'view') {\n return;\n }\n\n var graph = seriesModel.getGraph();\n graph.eachNode(function (node) {\n var model = node.getModel();\n node.setLayout([+model.get('x'), +model.get('y')]);\n });\n simpleLayoutEdge(graph, seriesModel);\n}\n\nfunction simpleLayoutEdge(graph, seriesModel) {\n graph.eachEdge(function (edge, index) {\n var curveness = zrUtil.retrieve3(edge.getModel().get('lineStyle.curveness'), -getCurvenessForEdge(edge, seriesModel, index, true), 0);\n var p1 = vec2.clone(edge.node1.getLayout());\n var p2 = vec2.clone(edge.node2.getLayout());\n var points = [p1, p2];\n\n if (+curveness) {\n points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]);\n }\n\n edge.setLayout(points);\n });\n}\n\nexports.simpleLayout = simpleLayout;\nexports.simpleLayoutEdge = simpleLayoutEdge;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar Polar = require(\"./Polar\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _axisHelper = require(\"../../coord/axisHelper\");\n\nvar createScaleByModel = _axisHelper.createScaleByModel;\nvar niceScaleExtent = _axisHelper.niceScaleExtent;\n\nvar CoordinateSystem = require(\"../../CoordinateSystem\");\n\nvar _dataStackHelper = require(\"../../data/helper/dataStackHelper\");\n\nvar getStackedDimension = _dataStackHelper.getStackedDimension;\n\nrequire(\"./PolarModel\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n// TODO Axis scale\n\n/**\n * Resize method bound to the polar\n * @param {module:echarts/coord/polar/PolarModel} polarModel\n * @param {module:echarts/ExtensionAPI} api\n */\nfunction resizePolar(polar, polarModel, api) {\n var center = polarModel.get('center');\n var width = api.getWidth();\n var height = api.getHeight();\n polar.cx = parsePercent(center[0], width);\n polar.cy = parsePercent(center[1], height);\n var radiusAxis = polar.getRadiusAxis();\n var size = Math.min(width, height) / 2;\n var radius = polarModel.get('radius');\n\n if (radius == null) {\n radius = [0, '100%'];\n } else if (!zrUtil.isArray(radius)) {\n // r0 = 0\n radius = [0, radius];\n }\n\n radius = [parsePercent(radius[0], size), parsePercent(radius[1], size)];\n radiusAxis.inverse ? radiusAxis.setExtent(radius[1], radius[0]) : radiusAxis.setExtent(radius[0], radius[1]);\n}\n/**\n * Update polar\n */\n\n\nfunction updatePolarScale(ecModel, api) {\n var polar = this;\n var angleAxis = polar.getAngleAxis();\n var radiusAxis = polar.getRadiusAxis(); // Reset scale\n\n angleAxis.scale.setExtent(Infinity, -Infinity);\n radiusAxis.scale.setExtent(Infinity, -Infinity);\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.coordinateSystem === polar) {\n var data = seriesModel.getData();\n zrUtil.each(data.mapDimension('radius', true), function (dim) {\n radiusAxis.scale.unionExtentFromData(data, getStackedDimension(data, dim));\n });\n zrUtil.each(data.mapDimension('angle', true), function (dim) {\n angleAxis.scale.unionExtentFromData(data, getStackedDimension(data, dim));\n });\n }\n });\n niceScaleExtent(angleAxis.scale, angleAxis.model);\n niceScaleExtent(radiusAxis.scale, radiusAxis.model); // Fix extent of category angle axis\n\n if (angleAxis.type === 'category' && !angleAxis.onBand) {\n var extent = angleAxis.getExtent();\n var diff = 360 / angleAxis.scale.count();\n angleAxis.inverse ? extent[1] += diff : extent[1] -= diff;\n angleAxis.setExtent(extent[0], extent[1]);\n }\n}\n/**\n * Set common axis properties\n * @param {module:echarts/coord/polar/AngleAxis|module:echarts/coord/polar/RadiusAxis}\n * @param {module:echarts/coord/polar/AxisModel}\n * @inner\n */\n\n\nfunction setAxis(axis, axisModel) {\n axis.type = axisModel.get('type');\n axis.scale = createScaleByModel(axisModel);\n axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\n axis.inverse = axisModel.get('inverse');\n\n if (axisModel.mainType === 'angleAxis') {\n axis.inverse ^= axisModel.get('clockwise');\n var startAngle = axisModel.get('startAngle');\n axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\n } // Inject axis instance\n\n\n axisModel.axis = axis;\n axis.model = axisModel;\n}\n\nvar polarCreator = {\n dimensions: Polar.prototype.dimensions,\n create: function (ecModel, api) {\n var polarList = [];\n ecModel.eachComponent('polar', function (polarModel, idx) {\n var polar = new Polar(idx); // Inject resize and update method\n\n polar.update = updatePolarScale;\n var radiusAxis = polar.getRadiusAxis();\n var angleAxis = polar.getAngleAxis();\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\n setAxis(radiusAxis, radiusAxisModel);\n setAxis(angleAxis, angleAxisModel);\n resizePolar(polar, polarModel, api);\n polarList.push(polar);\n polarModel.coordinateSystem = polar;\n polar.model = polarModel;\n }); // Inject coordinateSystem to series\n\n ecModel.eachSeries(function (seriesModel) {\n if (seriesModel.get('coordinateSystem') === 'polar') {\n var polarModel = ecModel.queryComponents({\n mainType: 'polar',\n index: seriesModel.get('polarIndex'),\n id: seriesModel.get('polarId')\n })[0];\n seriesModel.coordinateSystem = polarModel.coordinateSystem;\n }\n });\n return polarList;\n }\n};\nCoordinateSystem.register('polar', polarCreator);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar _number = require(\"../util/number\");\n\nvar parsePercent = _number.parsePercent;\n\nvar _dataStackHelper = require(\"../data/helper/dataStackHelper\");\n\nvar isDimensionStacked = _dataStackHelper.isDimensionStacked;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getSeriesStackId(seriesModel) {\n return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(polar, axis) {\n return axis.dim + polar.model.componentIndex;\n}\n/**\n * @param {string} seriesType\n * @param {module:echarts/model/Global} ecModel\n * @param {module:echarts/ExtensionAPI} api\n */\n\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n var lastStackCoords = {};\n var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n }));\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n // Check series coordinate, do layout for polar only\n if (seriesModel.coordinateSystem.type !== 'polar') {\n return;\n }\n\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var axisKey = getAxisKey(polar, baseAxis);\n var stackId = getSeriesStackId(seriesModel);\n var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\n var columnOffset = columnLayoutInfo.offset;\n var columnWidth = columnLayoutInfo.width;\n var valueAxis = polar.getOtherAxis(baseAxis);\n var cx = seriesModel.coordinateSystem.cx;\n var cy = seriesModel.coordinateSystem.cy;\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\n var barMinAngle = seriesModel.get('barMinAngle') || 0;\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n var valueDim = data.mapDimension(valueAxis.dim);\n var baseDim = data.mapDimension(baseAxis.dim);\n var stacked = isDimensionStacked(data, valueDim\n /*, baseDim*/\n );\n var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true);\n var valueAxisStart = valueAxis.dim === 'radius' ? valueAxis.dataToRadius(0) : valueAxis.dataToAngle(0);\n\n for (var idx = 0, len = data.count(); idx < len; idx++) {\n var value = data.get(valueDim, idx);\n var baseValue = data.get(baseDim, idx);\n var sign = value >= 0 ? 'p' : 'n';\n var baseCoord = valueAxisStart; // Because of the barMinHeight, we can not use the value in\n // stackResultDimension directly.\n // Only ordinal axis can be stacked.\n\n if (stacked) {\n if (!lastStackCoords[stackId][baseValue]) {\n lastStackCoords[stackId][baseValue] = {\n p: valueAxisStart,\n // Positive stack\n n: valueAxisStart // Negative stack\n\n };\n } // Should also consider #4243\n\n\n baseCoord = lastStackCoords[stackId][baseValue][sign];\n }\n\n var r0;\n var r;\n var startAngle;\n var endAngle; // radial sector\n\n if (valueAxis.dim === 'radius') {\n var radiusSpan = valueAxis.dataToRadius(value) - valueAxisStart;\n var angle = baseAxis.dataToAngle(baseValue);\n\n if (Math.abs(radiusSpan) < barMinHeight) {\n radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n }\n\n r0 = baseCoord;\n r = baseCoord + radiusSpan;\n startAngle = angle - columnOffset;\n endAngle = startAngle - columnWidth;\n stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n } // tangential sector\n else {\n var angleSpan = valueAxis.dataToAngle(value, clampLayout) - valueAxisStart;\n var radius = baseAxis.dataToRadius(baseValue);\n\n if (Math.abs(angleSpan) < barMinAngle) {\n angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n }\n\n r0 = radius + columnOffset;\n r = r0 + columnWidth;\n startAngle = baseCoord;\n endAngle = baseCoord + angleSpan; // if the previous stack is at the end of the ring,\n // add a round to differentiate it from origin\n // var extent = angleAxis.getExtent();\n // var stackCoord = angle;\n // if (stackCoord === extent[0] && value > 0) {\n // stackCoord = extent[1];\n // }\n // else if (stackCoord === extent[1] && value < 0) {\n // stackCoord = extent[0];\n // }\n\n stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n }\n\n data.setItemLayout(idx, {\n cx: cx,\n cy: cy,\n r0: r0,\n r: r,\n // Consider that positive angle is anti-clockwise,\n // while positive radian of sector is clockwise\n startAngle: -startAngle * Math.PI / 180,\n endAngle: -endAngle * Math.PI / 180\n });\n }\n }, this);\n}\n/**\n * Calculate bar width and offset for radial bar charts\n */\n\n\nfunction calRadialBar(barSeries, api) {\n // Columns info on each category axis. Key is polar name\n var columnsMap = {};\n zrUtil.each(barSeries, function (seriesModel, idx) {\n var data = seriesModel.getData();\n var polar = seriesModel.coordinateSystem;\n var baseAxis = polar.getBaseAxis();\n var axisKey = getAxisKey(polar, baseAxis);\n var axisExtent = baseAxis.getExtent();\n var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n var columnsOnAxis = columnsMap[axisKey] || {\n bandWidth: bandWidth,\n remainedWidth: bandWidth,\n autoWidthCount: 0,\n categoryGap: '20%',\n gap: '30%',\n stacks: {}\n };\n var stacks = columnsOnAxis.stacks;\n columnsMap[axisKey] = columnsOnAxis;\n var stackId = getSeriesStackId(seriesModel);\n\n if (!stacks[stackId]) {\n columnsOnAxis.autoWidthCount++;\n }\n\n stacks[stackId] = stacks[stackId] || {\n width: 0,\n maxWidth: 0\n };\n var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n var barGap = seriesModel.get('barGap');\n var barCategoryGap = seriesModel.get('barCategoryGap');\n\n if (barWidth && !stacks[stackId].width) {\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n stacks[stackId].width = barWidth;\n columnsOnAxis.remainedWidth -= barWidth;\n }\n\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n barGap != null && (columnsOnAxis.gap = barGap);\n barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n });\n var result = {};\n zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n result[coordSysName] = {};\n var stacks = columnsOnAxis.stacks;\n var bandWidth = columnsOnAxis.bandWidth;\n var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n var remainedWidth = columnsOnAxis.remainedWidth;\n var autoWidthCount = columnsOnAxis.autoWidthCount;\n var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0); // Find if any auto calculated bar exceeded maxBarWidth\n\n zrUtil.each(stacks, function (column, stack) {\n var maxWidth = column.maxWidth;\n\n if (maxWidth && maxWidth < autoWidth) {\n maxWidth = Math.min(maxWidth, remainedWidth);\n\n if (column.width) {\n maxWidth = Math.min(maxWidth, column.width);\n }\n\n remainedWidth -= maxWidth;\n column.width = maxWidth;\n autoWidthCount--;\n }\n }); // Recalculate width again\n\n autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n autoWidth = Math.max(autoWidth, 0);\n var widthSum = 0;\n var lastColumn;\n zrUtil.each(stacks, function (column, idx) {\n if (!column.width) {\n column.width = autoWidth;\n }\n\n lastColumn = column;\n widthSum += column.width * (1 + barGapPercent);\n });\n\n if (lastColumn) {\n widthSum -= lastColumn.width * barGapPercent;\n }\n\n var offset = -widthSum / 2;\n zrUtil.each(stacks, function (column, stackId) {\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\n offset: offset,\n width: column.width\n };\n offset += column.width * (1 + barGapPercent);\n });\n });\n return result;\n}\n\nvar _default = barLayoutPolar;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar Path = require(\"zrender/lib/graphic/Path\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = Path.extend({\n type: 'echartsGaugePointer',\n shape: {\n angle: 0,\n width: 10,\n r: 10,\n x: 0,\n y: 0\n },\n buildPath: function (ctx, shape) {\n var mathCos = Math.cos;\n var mathSin = Math.sin;\n var r = shape.r;\n var width = shape.width;\n var angle = shape.angle;\n var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n angle = shape.angle - Math.PI / 2;\n ctx.moveTo(x, y);\n ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n ctx.lineTo(x, y);\n return;\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar ComponentModel = require(\"../../model/Component\");\n\nvar Model = require(\"../../model/Model\");\n\nvar selectableMixin = require(\"../../component/helper/selectableMixin\");\n\nvar geoCreator = require(\"./geoCreator\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar GeoModel = ComponentModel.extend({\n type: 'geo',\n\n /**\n * @type {module:echarts/coord/geo/Geo}\n */\n coordinateSystem: null,\n layoutMode: 'box',\n init: function (option) {\n ComponentModel.prototype.init.apply(this, arguments); // Default label emphasis `show`\n\n modelUtil.defaultEmphasis(option, 'label', ['show']);\n },\n optionUpdated: function () {\n var option = this.option;\n var self = this;\n option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\n this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n if (regionOpt.name) {\n optionModelMap.set(regionOpt.name, new Model(regionOpt, self));\n }\n\n return optionModelMap;\n }, zrUtil.createHashMap());\n this.updateSelectedMap(option.regions);\n },\n defaultOption: {\n zlevel: 0,\n z: 0,\n show: true,\n left: 'center',\n top: 'center',\n // width:,\n // height:,\n // right\n // bottom\n // Aspect is width / height. Inited to be geoJson bbox aspect\n // This parameter is used for scale this aspect\n // If svg used, aspectScale is 1 by default.\n // aspectScale: 0.75,\n aspectScale: null,\n ///// Layout with center and size\n // If you wan't to put map in a fixed size box with right aspect ratio\n // This two properties may more conveninet\n // layoutCenter: [50%, 50%]\n // layoutSize: 100\n silent: false,\n // Map type\n map: '',\n // Define left-top, right-bottom coords to control view\n // For example, [ [180, 90], [-180, -90] ]\n boundingCoords: null,\n // Default on center of map\n center: null,\n zoom: 1,\n scaleLimit: null,\n // selectedMode: false\n label: {\n show: false,\n color: '#000'\n },\n itemStyle: {\n // color: 各异,\n borderWidth: 0.5,\n borderColor: '#444',\n color: '#eee'\n },\n emphasis: {\n label: {\n show: true,\n color: 'rgb(100,0,0)'\n },\n itemStyle: {\n color: 'rgba(255,215,0,0.8)'\n }\n },\n regions: []\n },\n\n /**\n * Get model of region\n * @param {string} name\n * @return {module:echarts/model/Model}\n */\n getRegionModel: function (name) {\n return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n },\n\n /**\n * Format label\n * @param {string} name Region name\n * @param {string} [status='normal'] 'normal' or 'emphasis'\n * @return {string}\n */\n getFormattedLabel: function (name, status) {\n status = status || 'normal';\n var regionModel = this.getRegionModel(name);\n var formatter = regionModel.get((status === 'normal' ? '' : status + '.') + 'label.formatter');\n var params = {\n name: name\n };\n\n if (typeof formatter === 'function') {\n params.status = status;\n return formatter(params);\n } else if (typeof formatter === 'string') {\n return formatter.replace('{a}', name != null ? name : '');\n }\n },\n setZoom: function (zoom) {\n this.option.zoom = zoom;\n },\n setCenter: function (center) {\n this.option.center = center;\n }\n});\nzrUtil.mixin(GeoModel, selectableMixin);\nvar _default = GeoModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../echarts\");\n\nrequire(\"./graph/GraphSeries\");\n\nrequire(\"./graph/GraphView\");\n\nrequire(\"./graph/graphAction\");\n\nvar categoryFilter = require(\"./graph/categoryFilter\");\n\nvar visualSymbol = require(\"../visual/symbol\");\n\nvar categoryVisual = require(\"./graph/categoryVisual\");\n\nvar edgeVisual = require(\"./graph/edgeVisual\");\n\nvar simpleLayout = require(\"./graph/simpleLayout\");\n\nvar circularLayout = require(\"./graph/circularLayout\");\n\nvar forceLayout = require(\"./graph/forceLayout\");\n\nvar createView = require(\"./graph/createView\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\necharts.registerProcessor(categoryFilter);\necharts.registerVisual(visualSymbol('graph', 'circle', null));\necharts.registerVisual(categoryVisual);\necharts.registerVisual(edgeVisual);\necharts.registerLayout(simpleLayout);\necharts.registerLayout(echarts.PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout);\necharts.registerLayout(forceLayout); // Graph view coordinate system\n\necharts.registerCoordinateSystem('graphView', {\n create: createView\n});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar 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\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar features = {};\n\nfunction register(name, ctor) {\n features[name] = ctor;\n}\n\nfunction get(name) {\n return features[name];\n}\n\nexports.register = register;\nexports.get = get;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar SeriesModel = require(\"../../model/Series\");\n\nvar Tree = require(\"../../data/Tree\");\n\nvar _format = require(\"../../util/format\");\n\nvar encodeHTML = _format.encodeHTML;\n\nvar Model = require(\"../../model/Model\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = SeriesModel.extend({\n type: 'series.tree',\n layoutInfo: null,\n // can support the position parameters 'left', 'top','right','bottom', 'width',\n // 'height' in the setOption() with 'merge' mode normal.\n layoutMode: 'box',\n\n /**\n * Init a tree data structure from data in option series\n * @param {Object} option the object used to config echarts view\n * @return {module:echarts/data/List} storage initial data\n */\n getInitialData: function (option) {\n //create an virtual root\n var root = {\n name: option.name,\n children: option.data\n };\n var leaves = option.leaves || {};\n var leavesModel = new Model(leaves, this, this.ecModel);\n var tree = Tree.createTree(root, this, beforeLink);\n\n function beforeLink(nodeData) {\n nodeData.wrapMethod('getItemModel', function (model, idx) {\n var node = tree.getNodeByDataIndex(idx);\n\n if (!node.children.length || !node.isExpand) {\n model.parentModel = leavesModel;\n }\n\n return model;\n });\n }\n\n var treeDepth = 0;\n tree.eachNode('preorder', function (node) {\n if (node.depth > treeDepth) {\n treeDepth = node.depth;\n }\n });\n var expandAndCollapse = option.expandAndCollapse;\n var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;\n tree.root.eachNode('preorder', function (node) {\n var item = node.hostTree.data.getRawDataItem(node.dataIndex); // Add item.collapsed != null, because users can collapse node original in the series.data.\n\n node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n });\n return tree.data;\n },\n\n /**\n * Make the configuration 'orient' backward compatibly, with 'horizontal = LR', 'vertical = TB'.\n * @returns {string} orient\n */\n getOrient: function () {\n var orient = this.get('orient');\n\n if (orient === 'horizontal') {\n orient = 'LR';\n } else if (orient === 'vertical') {\n orient = 'TB';\n }\n\n return orient;\n },\n setZoom: function (zoom) {\n this.option.zoom = zoom;\n },\n setCenter: function (center) {\n this.option.center = center;\n },\n\n /**\n * @override\n * @param {number} dataIndex\n */\n formatTooltip: function (dataIndex) {\n var tree = this.getData().tree;\n var realRoot = tree.root.children[0];\n var node = tree.getNodeByDataIndex(dataIndex);\n var value = node.getValue();\n var name = node.name;\n\n while (node && node !== realRoot) {\n name = node.parentNode.name + '.' + name;\n node = node.parentNode;\n }\n\n return encodeHTML(name + (isNaN(value) || value == null ? '' : ' : ' + value));\n },\n defaultOption: {\n zlevel: 0,\n z: 2,\n coordinateSystem: 'view',\n // the position of the whole view\n left: '12%',\n top: '12%',\n right: '12%',\n bottom: '12%',\n // the layout of the tree, two value can be selected, 'orthogonal' or 'radial'\n layout: 'orthogonal',\n // value can be 'polyline'\n edgeShape: 'curve',\n edgeForkPosition: '50%',\n // true | false | 'move' | 'scale', see module:component/helper/RoamController.\n roam: false,\n // Symbol size scale ratio in roam\n nodeScaleRatio: 0.4,\n // Default on center of graph\n center: null,\n zoom: 1,\n // The orient of orthoginal layout, can be setted to 'LR', 'TB', 'RL', 'BT'.\n // and the backward compatibility configuration 'horizontal = LR', 'vertical = TB'.\n orient: 'LR',\n symbol: 'emptyCircle',\n symbolSize: 7,\n expandAndCollapse: true,\n initialTreeDepth: 2,\n lineStyle: {\n color: '#ccc',\n width: 1.5,\n curveness: 0.5\n },\n itemStyle: {\n color: 'lightsteelblue',\n borderColor: '#c23531',\n borderWidth: 1.5\n },\n label: {\n show: true,\n color: '#555'\n },\n leaves: {\n label: {\n show: true\n }\n },\n animationEasing: 'linear',\n animationDuration: 700,\n animationDurationUpdate: 1000\n }\n});\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _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/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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 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 _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar echarts = require(\"../../echarts\");\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar env = require(\"zrender/lib/core/env\");\n\nvar modelUtil = require(\"../../util/model\");\n\nvar formatUtil = require(\"../../util/format\");\n\nvar dataFormatMixin = require(\"../../model/mixin/dataFormat\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar addCommas = formatUtil.addCommas;\nvar encodeHTML = formatUtil.encodeHTML;\n\nfunction fillLabel(opt) {\n modelUtil.defaultEmphasis(opt, 'label', ['show']);\n}\n\nvar MarkerModel = echarts.extendComponentModel({\n type: 'marker',\n dependencies: ['series', 'grid', 'polar', 'geo'],\n\n /**\n * @overrite\n */\n init: function (option, parentModel, ecModel) {\n this.mergeDefaultAndTheme(option, ecModel);\n\n this._mergeOption(option, ecModel, false, true);\n },\n\n /**\n * @return {boolean}\n */\n isAnimationEnabled: function () {\n if (env.node) {\n return false;\n }\n\n var hostSeries = this.__hostSeries;\n return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n },\n\n /**\n * @overrite\n */\n mergeOption: function (newOpt, ecModel) {\n this._mergeOption(newOpt, ecModel, false, false);\n },\n _mergeOption: function (newOpt, ecModel, createdBySelf, isInit) {\n var MarkerModel = this.constructor;\n var modelPropName = this.mainType + 'Model';\n\n if (!createdBySelf) {\n ecModel.eachSeries(function (seriesModel) {\n var markerOpt = seriesModel.get(this.mainType, true);\n var markerModel = seriesModel[modelPropName];\n\n if (!markerOpt || !markerOpt.data) {\n seriesModel[modelPropName] = null;\n return;\n }\n\n if (!markerModel) {\n if (isInit) {\n // Default label emphasis `position` and `show`\n fillLabel(markerOpt);\n }\n\n zrUtil.each(markerOpt.data, function (item) {\n // FIXME Overwrite fillLabel method ?\n if (item instanceof Array) {\n fillLabel(item[0]);\n fillLabel(item[1]);\n } else {\n fillLabel(item);\n }\n });\n markerModel = new MarkerModel(markerOpt, this, ecModel);\n zrUtil.extend(markerModel, {\n mainType: this.mainType,\n // Use the same series index and name\n seriesIndex: seriesModel.seriesIndex,\n name: seriesModel.name,\n createdBySelf: true\n });\n markerModel.__hostSeries = seriesModel;\n } else {\n markerModel._mergeOption(markerOpt, ecModel, true);\n }\n\n seriesModel[modelPropName] = markerModel;\n }, this);\n }\n },\n formatTooltip: function (dataIndex, multipleSeries, dataType, renderMode) {\n var data = this.getData();\n var value = this.getRawValue(dataIndex);\n var formattedValue = zrUtil.isArray(value) ? zrUtil.map(value, addCommas).join(', ') : addCommas(value);\n var name = data.getName(dataIndex);\n var html = encodeHTML(this.name);\n var newLine = renderMode === 'html' ? '
' : '\\n';\n\n if (value != null || name) {\n html += newLine;\n }\n\n if (name) {\n html += encodeHTML(name);\n\n if (value != null) {\n html += ' : ';\n }\n }\n\n if (value != null) {\n html += encodeHTML(formattedValue);\n }\n\n return html;\n },\n getData: function () {\n return this._data;\n },\n setData: function (data) {\n this._data = data;\n }\n});\nzrUtil.mixin(MarkerModel, dataFormatMixin);\nvar _default = MarkerModel;\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar _config = require(\"../../config\");\n\nvar __DEV__ = _config.__DEV__;\n\nvar layout = require(\"../../util/layout\");\n\nvar _number = require(\"../../util/number\");\n\nvar parsePercent = _number.parsePercent;\nvar linearMap = _number.linearMap;\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nfunction getViewRect(seriesModel, api) {\n return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n });\n}\n\nfunction getSortedIndices(data, sort) {\n var valueDim = data.mapDimension('value');\n var valueArr = data.mapArray(valueDim, function (val) {\n return val;\n });\n var indices = [];\n var isAscending = sort === 'ascending';\n\n for (var i = 0, len = data.count(); i < len; i++) {\n indices[i] = i;\n } // Add custom sortable function & none sortable opetion by \"options.sort\"\n\n\n if (typeof sort === 'function') {\n indices.sort(sort);\n } else if (sort !== 'none') {\n indices.sort(function (a, b) {\n return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n });\n }\n\n return indices;\n}\n\nfunction labelLayout(data) {\n data.each(function (idx) {\n var itemModel = data.getItemModel(idx);\n var labelModel = itemModel.getModel('label');\n var labelPosition = labelModel.get('position');\n var orient = itemModel.get('orient');\n var labelLineModel = itemModel.getModel('labelLine');\n var layout = data.getItemLayout(idx);\n var points = layout.points;\n var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center' || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\n var textAlign;\n var textX;\n var textY;\n var linePoints;\n\n if (isLabelInside) {\n if (labelPosition === 'insideLeft') {\n textX = (points[0][0] + points[3][0]) / 2 + 5;\n textY = (points[0][1] + points[3][1]) / 2;\n textAlign = 'left';\n } else if (labelPosition === 'insideRight') {\n textX = (points[1][0] + points[2][0]) / 2 - 5;\n textY = (points[1][1] + points[2][1]) / 2;\n textAlign = 'right';\n } else {\n textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n textAlign = 'center';\n }\n\n linePoints = [[textX, textY], [textX, textY]];\n } else {\n var x1;\n var y1;\n var x2;\n var y2;\n var labelLineLen = labelLineModel.get('length');\n\n if (labelPosition === 'left') {\n // Left side\n x1 = (points[3][0] + points[0][0]) / 2;\n y1 = (points[3][1] + points[0][1]) / 2;\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n } else if (labelPosition === 'right') {\n // Right side\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'left';\n } else if (labelPosition === 'top') {\n // Top side\n x1 = (points[3][0] + points[0][0]) / 2;\n y1 = (points[3][1] + points[0][1]) / 2;\n y2 = y1 - labelLineLen;\n textY = y2 - 5;\n textAlign = 'center';\n } else if (labelPosition === 'bottom') {\n // Bottom side\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else if (labelPosition === 'rightTop') {\n // RightTop side\n x1 = orient === 'horizontal' ? points[3][0] : points[1][0];\n y1 = orient === 'horizontal' ? points[3][1] : points[1][1];\n\n if (orient === 'horizontal') {\n y2 = y1 - labelLineLen;\n textY = y2 - 5;\n textAlign = 'center';\n } else {\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'top';\n }\n } else if (labelPosition === 'rightBottom') {\n // RightBottom side\n x1 = points[2][0];\n y1 = points[2][1];\n\n if (orient === 'horizontal') {\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else {\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'bottom';\n }\n } else if (labelPosition === 'leftTop') {\n // LeftTop side\n x1 = points[0][0];\n y1 = orient === 'horizontal' ? points[0][1] : points[1][1];\n\n if (orient === 'horizontal') {\n y2 = y1 - labelLineLen;\n textY = y2 - 5;\n textAlign = 'center';\n } else {\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n }\n } else if (labelPosition === 'leftBottom') {\n // LeftBottom side\n x1 = orient === 'horizontal' ? points[1][0] : points[3][0];\n y1 = orient === 'horizontal' ? points[1][1] : points[2][1];\n\n if (orient === 'horizontal') {\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else {\n x2 = x1 - labelLineLen;\n textX = x2 - 5;\n textAlign = 'right';\n }\n } else {\n // Right side or Bottom side\n x1 = (points[1][0] + points[2][0]) / 2;\n y1 = (points[1][1] + points[2][1]) / 2;\n\n if (orient === 'horizontal') {\n y2 = y1 + labelLineLen;\n textY = y2 + 5;\n textAlign = 'center';\n } else {\n x2 = x1 + labelLineLen;\n textX = x2 + 5;\n textAlign = 'left';\n }\n }\n\n if (orient === 'horizontal') {\n x2 = x1;\n textX = x2;\n } else {\n y2 = y1;\n textY = y2;\n }\n\n linePoints = [[x1, y1], [x2, y2]];\n }\n\n layout.label = {\n linePoints: linePoints,\n x: textX,\n y: textY,\n verticalAlign: 'middle',\n textAlign: textAlign,\n inside: isLabelInside\n };\n });\n}\n\nfunction _default(ecModel, api, payload) {\n ecModel.eachSeriesByType('funnel', function (seriesModel) {\n var data = seriesModel.getData();\n var valueDim = data.mapDimension('value');\n var sort = seriesModel.get('sort');\n var viewRect = getViewRect(seriesModel, api);\n var indices = getSortedIndices(data, sort);\n var orient = seriesModel.get('orient');\n var viewWidth = viewRect.width;\n var viewHeight = viewRect.height;\n var x = viewRect.x;\n var y = viewRect.y;\n var sizeExtent = orient === 'horizontal' ? [parsePercent(seriesModel.get('minSize'), viewHeight), parsePercent(seriesModel.get('maxSize'), viewHeight)] : [parsePercent(seriesModel.get('minSize'), viewWidth), parsePercent(seriesModel.get('maxSize'), viewWidth)];\n var dataExtent = data.getDataExtent(valueDim);\n var min = seriesModel.get('min');\n var max = seriesModel.get('max');\n\n if (min == null) {\n min = Math.min(dataExtent[0], 0);\n }\n\n if (max == null) {\n max = dataExtent[1];\n }\n\n var funnelAlign = seriesModel.get('funnelAlign');\n var gap = seriesModel.get('gap');\n var viewSize = orient === 'horizontal' ? viewWidth : viewHeight;\n var itemSize = (viewSize - gap * (data.count() - 1)) / data.count();\n\n var getLinePoints = function (idx, offset) {\n // End point index is data.count() and we assign it 0\n if (orient === 'horizontal') {\n var val = data.get(valueDim, idx) || 0;\n var itemHeight = linearMap(val, [min, max], sizeExtent, true);\n var y0;\n\n switch (funnelAlign) {\n case 'top':\n y0 = y;\n break;\n\n case 'center':\n y0 = y + (viewHeight - itemHeight) / 2;\n break;\n\n case 'bottom':\n y0 = y + (viewHeight - itemHeight);\n break;\n }\n\n return [[offset, y0], [offset, y0 + itemHeight]];\n }\n\n var val = data.get(valueDim, idx) || 0;\n var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n var x0;\n\n switch (funnelAlign) {\n case 'left':\n x0 = x;\n break;\n\n case 'center':\n x0 = x + (viewWidth - itemWidth) / 2;\n break;\n\n case 'right':\n x0 = x + viewWidth - itemWidth;\n break;\n }\n\n return [[x0, offset], [x0 + itemWidth, offset]];\n };\n\n if (sort === 'ascending') {\n // From bottom to top\n itemSize = -itemSize;\n gap = -gap;\n\n if (orient === 'horizontal') {\n x += viewWidth;\n } else {\n y += viewHeight;\n }\n\n indices = indices.reverse();\n }\n\n for (var i = 0; i < indices.length; i++) {\n var idx = indices[i];\n var nextIdx = indices[i + 1];\n var itemModel = data.getItemModel(idx);\n\n if (orient === 'horizontal') {\n var width = itemModel.get('itemStyle.width');\n\n if (width == null) {\n width = itemSize;\n } else {\n width = parsePercent(width, viewWidth);\n\n if (sort === 'ascending') {\n width = -width;\n }\n }\n\n var start = getLinePoints(idx, x);\n var end = getLinePoints(nextIdx, x + width);\n x += width + gap;\n data.setItemLayout(idx, {\n points: start.concat(end.slice().reverse())\n });\n } else {\n var height = itemModel.get('itemStyle.height');\n\n if (height == null) {\n height = itemSize;\n } else {\n height = parsePercent(height, viewHeight);\n\n if (sort === 'ascending') {\n height = -height;\n }\n }\n\n var start = orient === 'horizontal' ? getLinePoints(idx, x) : getLinePoints(idx, y);\n var end = orient === 'horizontal' ? getLinePoints(nextIdx, x + width) : getLinePoints(nextIdx, y + height);\n y += height + gap;\n data.setItemLayout(idx, {\n points: start.concat(end.slice().reverse())\n });\n }\n }\n\n labelLayout(data);\n });\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar echarts = require(\"../../echarts\");\n\nvar _poly = require(\"../line/poly\");\n\nvar Polygon = _poly.Polygon;\n\nvar graphic = require(\"../../util/graphic\");\n\nvar _util = require(\"zrender/lib/core/util\");\n\nvar bind = _util.bind;\nvar extend = _util.extend;\n\nvar DataDiffer = require(\"../../data/DataDiffer\");\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\nvar _default = echarts.extendChartView({\n type: 'themeRiver',\n init: function () {\n this._layers = [];\n },\n render: function (seriesModel, ecModel, api) {\n var data = seriesModel.getData();\n var group = this.group;\n var layerSeries = seriesModel.getLayerSeries();\n var layoutInfo = data.getLayout('layoutInfo');\n var rect = layoutInfo.rect;\n var boundaryGap = layoutInfo.boundaryGap;\n group.attr('position', [0, rect.y + boundaryGap[0]]);\n\n function keyGetter(item) {\n return item.name;\n }\n\n var dataDiffer = new DataDiffer(this._layersSeries || [], layerSeries, keyGetter, keyGetter);\n var newLayersGroups = {};\n dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute();\n\n function process(status, idx, oldIdx) {\n var oldLayersGroups = this._layers;\n\n if (status === 'remove') {\n group.remove(oldLayersGroups[idx]);\n return;\n }\n\n var points0 = [];\n var points1 = [];\n var color;\n var indices = layerSeries[idx].indices;\n\n for (var j = 0; j < indices.length; j++) {\n var layout = data.getItemLayout(indices[j]);\n var x = layout.x;\n var y0 = layout.y0;\n var y = layout.y;\n points0.push([x, y0]);\n points1.push([x, y0 + y]);\n color = data.getItemVisual(indices[j], 'color');\n }\n\n var polygon;\n var text;\n var textLayout = data.getItemLayout(indices[0]);\n var itemModel = data.getItemModel(indices[j - 1]);\n var labelModel = itemModel.getModel('label');\n var margin = labelModel.get('margin');\n\n if (status === 'add') {\n var layerGroup = newLayersGroups[idx] = new graphic.Group();\n polygon = new Polygon({\n shape: {\n points: points0,\n stackedOnPoints: points1,\n smooth: 0.4,\n stackedOnSmooth: 0.4,\n smoothConstraint: false\n },\n z2: 0\n });\n text = new graphic.Text({\n style: {\n x: textLayout.x - margin,\n y: textLayout.y0 + textLayout.y / 2\n }\n });\n layerGroup.add(polygon);\n layerGroup.add(text);\n group.add(layerGroup);\n polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n polygon.removeClipPath();\n }));\n } else {\n var layerGroup = oldLayersGroups[oldIdx];\n polygon = layerGroup.childAt(0);\n text = layerGroup.childAt(1);\n group.add(layerGroup);\n newLayersGroups[idx] = layerGroup;\n graphic.updateProps(polygon, {\n shape: {\n points: points0,\n stackedOnPoints: points1\n }\n }, seriesModel);\n graphic.updateProps(text, {\n style: {\n x: textLayout.x - margin,\n y: textLayout.y0 + textLayout.y / 2\n }\n }, seriesModel);\n }\n\n var hoverItemStyleModel = itemModel.getModel('emphasis.itemStyle');\n var itemStyleModel = itemModel.getModel('itemStyle');\n graphic.setTextStyle(text.style, labelModel, {\n text: labelModel.get('show') ? seriesModel.getFormattedLabel(indices[j - 1], 'normal') || data.getName(indices[j - 1]) : null,\n textVerticalAlign: 'middle'\n });\n polygon.setStyle(extend({\n fill: color\n }, itemStyleModel.getItemStyle(['color'])));\n graphic.setHoverStyle(polygon, hoverItemStyleModel.getItemStyle());\n }\n\n this._layersSeries = layerSeries;\n this._layers = newLayersGroups;\n },\n dispose: function () {}\n}); // add animation to the view\n\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n var rectEl = new graphic.Rect({\n shape: {\n x: rect.x - 10,\n y: rect.y - 10,\n width: 0,\n height: rect.height + 20\n }\n });\n graphic.initProps(rectEl, {\n shape: {\n width: rect.width + 20,\n height: rect.height + 20\n }\n }, seriesModel, cb);\n return rectEl;\n}\n\nmodule.exports = _default;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\nvar zrUtil = require(\"zrender/lib/core/util\");\n\nvar 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;","import fetch from 'isomorphic-unfetch'\n\ninterface IParams {\n /**\n * 超时时间\n */\n timeout?: number\n}\ntype CustomFetch = (\n input: RequestInfo,\n init?: RequestInit\n) => Promise<{\n [key: string]: any\n}>\nexport default function createFetch({ timeout = 5000 }: IParams): CustomFetch {\n return (...args) => {\n const sendRequest: () => Promise = () => {\n return timeoutPromise(timeout, fetch(...args)).then(res => {\n if (!res.ok) {\n return Promise.reject(new Error('network_error'))\n }\n return res\n })\n }\n\n return sendRequest()\n }\n}\n\n/**\n * @param ms 超时时间\n * @param promise\n */\nfunction timeoutPromise(ms: number, promise: Promise): Promise {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n reject(new Error('network_timeout'))\n }, ms)\n promise.then(resolve, reject)\n })\n}\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport * as PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/class/addClass';\nimport removeOneClass from 'dom-helpers/class/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (node, appearing) {\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n if (type === 'appear' && phase === 'done') {\n className += \" \" + this.getClassNames('enter').doneClassName;\n } // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import React, { useEffect, useState, useRef, useLayoutEffect } from 'react'\nimport { CSSTransition } from 'react-transition-group'\nimport { useInView } from 'react-intersection-observer'\n\nimport { useAdStat } from 'Components/ad'\nimport applyHttpsImage from 'lib/apply-https-img'\nimport { sendTeaAdEvent, sendAdMonitor } from 'lib/tea-analyze'\n\nimport Label from './label'\nimport { SkyFallBannerAd } from './interface'\nconst timeout = 400\n\n// 天幕广告\nexport default function TianmuAd({ data }: { data: SkyFallBannerAd }) {\n const [showBig, setShowBig] = useState(false)\n const [showSmall, setShowSmall] = useState(false)\n // 是否展示小图上的关闭按钮\n // const [showButton, setShowButton] = useState(false)\n const timer = useRef()\n function closeBig() {\n timer.current = window.setTimeout(() => {\n setShowBig(false)\n setShowSmall(true)\n }, 5000)\n }\n useEffect(() => {\n sendTeaAdEvent('ad_send_float_curtain', {\n ad_material_id: data.materiel_str,\n ad_target_url: data.web_url,\n log_extra: data.log_extra,\n ad_id: data.id_str,\n ad_req_id: JSON.parse(data.log_extra).req_id,\n })\n }, [data.id_str, data.log_extra, data.materiel_str, data.web_url])\n useEffect(() => {\n let showed = false\n // 每两次刷新首页,只在第一次展现天幕广告\n try {\n showed = !!localStorage.getItem('tianmu_ad_showed')\n localStorage.setItem('tianmu_ad_showed', '1')\n } catch (err) {}\n if (showed) {\n try {\n localStorage.removeItem('tianmu_ad_showed')\n } catch (err) {}\n return\n }\n\n setShowBig(true)\n closeBig()\n return () => {\n clearTimeout(timer.current)\n }\n }, [data.image_big.url])\n\n if (!data) return null\n return (\n <>\n {\n clearTimeout(timer.current)\n setShowSmall(true)\n }}\n >\n {\n setShowBig(false)\n setShowSmall(true)\n }}\n />\n \n \n {\n setShowBig(true)\n closeBig()\n setShowSmall(false)\n }}\n onClose={() => {\n setShowSmall(false)\n }}\n />\n \n\n \n \n )\n}\n\ninterface IBigImageProps {\n data: SkyFallBannerAd\n onClose(): void\n}\n\nfunction BigImage({ data, onClose }: IBigImageProps) {\n const { ref, handleClick } = useAdStat(\n {\n send: '',\n show: '',\n click: 'ad_click_float_curtain',\n },\n data,\n undefined,\n 4000\n )\n const [ref2, inView] = useInView({\n threshold: 0,\n })\n const adData = {\n ad_material_id: data.materiel_str,\n ad_target_url: data.web_url,\n log_extra: data.log_extra,\n ad_id: data.id_str,\n ad_req_id: JSON.parse(data.log_extra).req_id,\n }\n useEffect(() => {\n if (inView) {\n sendTeaAdEvent('ad_show_float_curtain', {\n ad_material_id: data.materiel_str,\n ad_target_url: data.web_url,\n log_extra: data.log_extra,\n ad_id: data.id_str,\n ad_req_id: JSON.parse(data.log_extra).req_id,\n })\n if (data.click_track_url_list) {\n data.click_track_url_list.forEach(url => {\n sendAdMonitor({\n url,\n requestId: data.ad_log_id,\n eventId: 'show',\n })\n })\n }\n }\n }, [inView])\n return (\n {\n handleClick()\n setTimeout(() => window.open(data.web_url, '_blank'), 50)\n }}\n >\n \n {\n e.stopPropagation()\n sendTeaAdEvent('ad_dislike_float_curtain', adData)\n onClose()\n }}\n >\n \n \n