{"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/@babel/runtime-corejs2/node_modules/core-js/library/modules/core.is-iterable.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/@babel/runtime-corejs2/node_modules/core-js/library/fn/array/is-array.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/@babel/runtime-corejs2/helpers/arrayWithHoles.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/@arsenal/arsenal/modules/getQuery.js","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/nonIterableRest.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/core-js/internals/same-value.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/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.array.is-array.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/@arsenal/arsenal/node_modules/core-js/modules/_same-value.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/./node_modules/@babel/runtime-corejs2/helpers/iterableToArray.js","webpack://_N_E/./public/static/1_img@3x.png","webpack://_N_E/./node_modules/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-detect.js","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/@babel/runtime-corejs2/node_modules/core-js/library/fn/array/from.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/@babel/runtime-corejs2/node_modules/core-js/library/modules/es6.array.from.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/@arsenal/arsenal/node_modules/core-js/modules/es6.regexp.search.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/@babel/runtime-corejs2/core-js/array/from.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/./public/static/left-ic.png","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/./lib/zt-util.ts","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/./node_modules/core-js/modules/es.string.search.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/@babel/runtime-corejs2/node_modules/core-js/library/fn/is-iterable.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/./public/static/star@3x.png","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/@babel/runtime-corejs2/node_modules/core-js/library/modules/_iter-call.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/@babel/runtime-corejs2/core-js/array/is-array.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/@babel/runtime-corejs2/node_modules/core-js/library/modules/_create-property.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/@babel/runtime-corejs2/node_modules/core-js/library/modules/_is-array-iter.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/./components/stars.tsx","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/@babel/runtime-corejs2/core-js/is-iterable.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/@babel/runtime-corejs2/helpers/toArray.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","classof","ITERATOR","Iterators","isIterable","it","O","Object","undefined","hasOwnProperty","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","self","TypeError","Array","__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","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","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","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","objectID","weakData","meta","REQUIRED","fastKey","getWeakData","onFreeze","_Array$isArray","arr","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","_interopRequireDefault","default","_toArray2","getQuery","search","location","substr","queries","forEach","c","_c$split","_c$split2","decodeURIComponent","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","__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","$export","S","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","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","_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","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","_Array$from","_isIterable","iter","toString","SAFE_CLOSING","riter","skipClosing","safe","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","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","isSame","startOf","endOf","isAfter","isBefore","$g","unix","valueOf","toDate","$locale","weekStart","$set","daysInMonth","subtract","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","isArrayIter","createProperty","getIterFn","F","arrayLike","iterator","aLen","mapfn","mapping","iterFn","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","sameValue","defined","SEARCH","$search","previousLastIndex","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","_sessionStorage","sessionStorage","appendLabel","paramZT","zt","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","nativeSearch","searcher","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","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","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","$defineProperty","createDesc","object","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","pieLayout","ArrayProto","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","Stars","marginRight","stars","intersection","ele","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","_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","arrayWithHoles","iterableToArray","nonIterableRest","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-31a024e7b1bf6222a554.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;","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\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\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","require('../../modules/es6.array.is-array');\nmodule.exports = require('../../modules/_core').Array.isArray;\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","var _Array$isArray = require(\"../core-js/array/is-array\");\n\nfunction _arrayWithHoles(arr) {\n if (_Array$isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _toArray2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/toArray\"));\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.regexp.search\");\n\nfunction getQuery(name, search) {\n if (search === void 0) {\n search = typeof window !== 'undefined' && window.location && window.location.search.substr(1);\n }\n\n var queries = {};\n search && search.split('&').forEach(function (c) {\n if (c === '') {\n return;\n }\n\n var _c$split = c.split('='),\n _c$split2 = (0, _toArray2.default)(_c$split),\n key = _c$split2[0],\n values = _c$split2.slice(1);\n\n queries[decodeURIComponent(key)] = decodeURIComponent(values.join('='));\n });\n return name ? queries[name] : queries;\n}\n\ngetQuery.default = getQuery;\nvar _default = getQuery;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nmodule.exports = _nonIterableRest;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\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// });","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* 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