echarts 4.0.4 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (918) hide show
  1. package/.jshintrc-dist +1 -1
  2. package/KEYS +74 -0
  3. package/LICENSE +223 -29
  4. package/NOTICE +5 -0
  5. package/README.md +8 -1
  6. package/build/addHeader.js +113 -0
  7. package/build/amd2common.js +19 -0
  8. package/build/build.js +19 -0
  9. package/build/config.js +25 -1
  10. package/build/mangleString.js +19 -0
  11. package/build/optimize.js +19 -0
  12. package/build/pre-publish.js +26 -3
  13. package/build/preamble.js +20 -0
  14. package/build/rollup-plugin-ec-lang.js +20 -0
  15. package/build/rollup-plugin-ec-remove-dev.js +19 -0
  16. package/dist/echarts-en.common.js +5624 -1049
  17. package/dist/echarts-en.common.min.js +21 -1
  18. package/dist/echarts-en.js +10720 -1979
  19. package/dist/echarts-en.js.map +1 -1
  20. package/dist/echarts-en.min.js +21 -1
  21. package/dist/echarts-en.simple.js +3835 -869
  22. package/dist/echarts-en.simple.min.js +21 -1
  23. package/dist/echarts.common.js +5624 -1049
  24. package/dist/echarts.common.min.js +21 -1
  25. package/dist/echarts.js +10720 -1979
  26. package/dist/echarts.js.map +1 -1
  27. package/dist/echarts.min.js +21 -1
  28. package/dist/echarts.simple.js +3835 -869
  29. package/dist/echarts.simple.min.js +21 -1
  30. package/dist/extension/bmap.js +76 -0
  31. package/dist/extension/bmap.js.map +1 -1
  32. package/dist/extension/bmap.min.js +20 -0
  33. package/dist/extension/dataTool.js +95 -0
  34. package/dist/extension/dataTool.js.map +1 -1
  35. package/dist/extension/dataTool.min.js +20 -0
  36. package/echarts.all.js +19 -0
  37. package/echarts.blank.js +19 -0
  38. package/echarts.common.js +19 -0
  39. package/echarts.simple.js +19 -0
  40. package/extension/bmap/BMapCoordSys.js +19 -0
  41. package/extension/bmap/BMapModel.js +18 -0
  42. package/extension/bmap/BMapView.js +18 -0
  43. package/extension/bmap/bmap.js +19 -0
  44. package/extension/dataTool/gexf.js +18 -0
  45. package/extension/dataTool/index.js +19 -0
  46. package/extension/dataTool/prepareBoxplotData.js +19 -0
  47. package/extension/dataTool/quantile.js +19 -0
  48. package/extension/echarts.js +19 -0
  49. package/extension/webpack.config.js +19 -0
  50. package/extension-src/bmap/BMapCoordSys.js +19 -0
  51. package/extension-src/bmap/BMapModel.js +19 -0
  52. package/extension-src/bmap/BMapView.js +19 -0
  53. package/extension-src/bmap/bmap.js +19 -0
  54. package/extension-src/dataTool/gexf.js +19 -0
  55. package/extension-src/dataTool/index.js +19 -0
  56. package/extension-src/dataTool/prepareBoxplotData.js +19 -0
  57. package/extension-src/dataTool/quantile.js +19 -0
  58. package/index.common.js +19 -0
  59. package/index.js +19 -0
  60. package/index.simple.js +19 -0
  61. package/lib/CoordinateSystem.js +18 -0
  62. package/lib/ExtensionAPI.js +18 -0
  63. package/lib/action/createDataSelectAction.js +18 -0
  64. package/lib/action/geoRoam.js +19 -0
  65. package/lib/action/roamHelper.js +19 -0
  66. package/lib/chart/bar/BarSeries.js +42 -1
  67. package/lib/chart/bar/BarView.js +112 -14
  68. package/lib/chart/bar/BaseBarSeries.js +22 -0
  69. package/lib/chart/bar/PictorialBarSeries.js +18 -0
  70. package/lib/chart/bar/PictorialBarView.js +19 -0
  71. package/lib/chart/bar/barItemStyle.js +18 -0
  72. package/lib/chart/bar/helper.js +18 -0
  73. package/lib/chart/bar.js +28 -7
  74. package/lib/chart/boxplot/BoxplotSeries.js +35 -1
  75. package/lib/chart/boxplot/BoxplotView.js +128 -21
  76. package/lib/chart/boxplot/boxplotLayout.js +70 -63
  77. package/lib/chart/boxplot/boxplotVisual.js +18 -0
  78. package/lib/chart/boxplot.js +18 -0
  79. package/lib/chart/candlestick/CandlestickSeries.js +38 -4
  80. package/lib/chart/candlestick/CandlestickView.js +236 -22
  81. package/lib/chart/candlestick/candlestickLayout.js +143 -83
  82. package/lib/chart/candlestick/candlestickVisual.js +59 -14
  83. package/lib/chart/candlestick/preprocessor.js +18 -0
  84. package/lib/chart/candlestick.js +18 -0
  85. package/lib/chart/chord/ChordSeries.js +18 -0
  86. package/lib/chart/chord/ChordView.js +18 -0
  87. package/lib/chart/chord/Ribbon.js +18 -0
  88. package/lib/chart/chord/chordCircularLayout.js +19 -0
  89. package/lib/chart/chord.js +18 -0
  90. package/lib/chart/custom.js +18 -0
  91. package/lib/chart/effectScatter/EffectScatterSeries.js +18 -0
  92. package/lib/chart/effectScatter/EffectScatterView.js +18 -0
  93. package/lib/chart/effectScatter.js +18 -0
  94. package/lib/chart/funnel/FunnelSeries.js +19 -0
  95. package/lib/chart/funnel/FunnelView.js +19 -0
  96. package/lib/chart/funnel/funnelLayout.js +18 -0
  97. package/lib/chart/funnel.js +18 -0
  98. package/lib/chart/gauge/GaugeSeries.js +18 -0
  99. package/lib/chart/gauge/GaugeView.js +18 -0
  100. package/lib/chart/gauge/PointerPath.js +18 -0
  101. package/lib/chart/graph/GraphSeries.js +25 -1
  102. package/lib/chart/graph/GraphView.js +18 -0
  103. package/lib/chart/graph/adjustEdge.js +18 -0
  104. package/lib/chart/graph/backwardCompat.js +18 -0
  105. package/lib/chart/graph/categoryFilter.js +18 -0
  106. package/lib/chart/graph/categoryVisual.js +18 -0
  107. package/lib/chart/graph/circularLayout.js +18 -0
  108. package/lib/chart/graph/circularLayoutHelper.js +18 -0
  109. package/lib/chart/graph/createView.js +18 -0
  110. package/lib/chart/graph/edgeVisual.js +18 -0
  111. package/lib/chart/graph/forceHelper.js +18 -0
  112. package/lib/chart/graph/forceLayout.js +18 -0
  113. package/lib/chart/graph/graphAction.js +19 -0
  114. package/lib/chart/graph/simpleLayout.js +18 -0
  115. package/lib/chart/graph/simpleLayoutHelper.js +18 -0
  116. package/lib/chart/graph.js +18 -0
  117. package/lib/chart/heatmap/HeatmapLayer.js +19 -0
  118. package/lib/chart/heatmap/HeatmapSeries.js +18 -0
  119. package/lib/chart/heatmap/HeatmapView.js +18 -0
  120. package/lib/chart/helper/EffectLine.js +19 -0
  121. package/lib/chart/helper/EffectPolyline.js +19 -0
  122. package/lib/chart/helper/EffectSymbol.js +19 -0
  123. package/lib/chart/helper/LargeLineDraw.js +18 -0
  124. package/lib/chart/helper/LargeSymbolDraw.js +18 -0
  125. package/lib/chart/helper/Line.js +31 -13
  126. package/lib/chart/helper/LineDraw.js +26 -1
  127. package/lib/chart/helper/LinePath.js +19 -0
  128. package/lib/chart/helper/Polyline.js +19 -0
  129. package/lib/chart/helper/Symbol.js +53 -12
  130. package/lib/chart/helper/SymbolDraw.js +22 -2
  131. package/lib/chart/helper/createGraphFromNodeEdge.js +27 -3
  132. package/lib/chart/helper/createGraphFromNodeMatrix.js +19 -0
  133. package/lib/chart/helper/createListFromArray.js +19 -0
  134. package/lib/chart/helper/createListSimply.js +19 -0
  135. package/lib/chart/helper/createRenderPlanner.js +21 -2
  136. package/lib/chart/helper/labelHelper.js +19 -0
  137. package/lib/chart/helper/treeHelper.js +18 -0
  138. package/lib/chart/helper/whiskerBoxCommon.js +20 -27
  139. package/lib/chart/line/LineSeries.js +25 -10
  140. package/lib/chart/line/LineView.js +122 -41
  141. package/lib/chart/line/helper.js +39 -4
  142. package/lib/chart/line/lineAnimationDiff.js +18 -0
  143. package/lib/chart/line/poly.js +62 -36
  144. package/lib/chart/line.js +18 -0
  145. package/lib/chart/lines/LinesSeries.js +25 -4
  146. package/lib/chart/lines/LinesView.js +20 -1
  147. package/lib/chart/lines/linesLayout.js +19 -1
  148. package/lib/chart/lines/linesVisual.js +18 -0
  149. package/lib/chart/lines.js +18 -0
  150. package/lib/chart/map/MapSeries.js +18 -0
  151. package/lib/chart/map/MapView.js +18 -0
  152. package/lib/chart/map/backwardCompat.js +18 -0
  153. package/lib/chart/map/mapDataStatistic.js +18 -0
  154. package/lib/chart/map/mapSymbolLayout.js +18 -0
  155. package/lib/chart/map/mapVisual.js +18 -0
  156. package/lib/chart/map.js +18 -0
  157. package/lib/chart/parallel/ParallelSeries.js +20 -7
  158. package/lib/chart/parallel/ParallelView.js +86 -55
  159. package/lib/chart/parallel/parallelVisual.js +38 -15
  160. package/lib/chart/parallel.js +18 -0
  161. package/lib/chart/pictorialBar.js +18 -0
  162. package/lib/chart/pie/PieSeries.js +19 -0
  163. package/lib/chart/pie/PieView.js +19 -0
  164. package/lib/chart/pie/labelLayout.js +18 -0
  165. package/lib/chart/pie/pieLayout.js +18 -0
  166. package/lib/chart/pie.js +18 -0
  167. package/lib/chart/radar/RadarSeries.js +19 -0
  168. package/lib/chart/radar/RadarView.js +18 -0
  169. package/lib/chart/radar/backwardCompat.js +18 -0
  170. package/lib/chart/radar/radarLayout.js +19 -1
  171. package/lib/chart/radar.js +18 -0
  172. package/lib/chart/sankey/SankeySeries.js +26 -0
  173. package/lib/chart/sankey/SankeyView.js +62 -10
  174. package/lib/chart/sankey/sankeyAction.js +34 -0
  175. package/lib/chart/sankey/sankeyLayout.js +68 -19
  176. package/lib/chart/sankey/sankeyVisual.js +49 -19
  177. package/lib/chart/sankey.js +20 -0
  178. package/lib/chart/scatter/ScatterSeries.js +20 -2
  179. package/lib/chart/scatter/ScatterView.js +18 -0
  180. package/lib/chart/scatter.js +18 -0
  181. package/lib/chart/sunburst/SunburstPiece.js +24 -0
  182. package/lib/chart/sunburst/SunburstSeries.js +18 -0
  183. package/lib/chart/sunburst/SunburstView.js +27 -9
  184. package/lib/chart/sunburst/sunburstAction.js +19 -0
  185. package/lib/chart/sunburst/sunburstLayout.js +18 -0
  186. package/lib/chart/sunburst.js +18 -0
  187. package/lib/chart/themeRiver/ThemeRiverSeries.js +19 -1
  188. package/lib/chart/themeRiver/ThemeRiverView.js +19 -0
  189. package/lib/chart/themeRiver/themeRiverLayout.js +19 -0
  190. package/lib/chart/themeRiver/themeRiverVisual.js +19 -0
  191. package/lib/chart/themeRiver.js +18 -0
  192. package/lib/chart/tree/TreeSeries.js +40 -3
  193. package/lib/chart/tree/TreeView.js +32 -6
  194. package/lib/chart/tree/layoutHelper.js +19 -0
  195. package/lib/chart/tree/traversalHelper.js +19 -0
  196. package/lib/chart/tree/treeAction.js +18 -0
  197. package/lib/chart/tree/treeLayout.js +137 -0
  198. package/lib/chart/tree.js +20 -5
  199. package/lib/chart/treemap/Breadcrumb.js +19 -0
  200. package/lib/chart/treemap/TreemapSeries.js +18 -0
  201. package/lib/chart/treemap/TreemapView.js +18 -0
  202. package/lib/chart/treemap/helper.js +18 -0
  203. package/lib/chart/treemap/treemapAction.js +19 -0
  204. package/lib/chart/treemap/treemapLayout.js +18 -0
  205. package/lib/chart/treemap/treemapVisual.js +18 -0
  206. package/lib/chart/treemap.js +18 -0
  207. package/lib/component/axis/AngleAxisView.js +59 -27
  208. package/lib/component/axis/AxisBuilder.js +39 -69
  209. package/lib/component/axis/AxisView.js +19 -0
  210. package/lib/component/axis/CartesianAxisView.js +71 -39
  211. package/lib/component/axis/ParallelAxisView.js +18 -0
  212. package/lib/component/axis/RadiusAxisView.js +26 -4
  213. package/lib/component/axis/SingleAxisView.js +25 -14
  214. package/lib/component/axis/parallelAxisAction.js +19 -0
  215. package/lib/component/axisPointer/AxisPointerModel.js +18 -0
  216. package/lib/component/axisPointer/AxisPointerView.js +18 -0
  217. package/lib/component/axisPointer/BaseAxisPointer.js +19 -0
  218. package/lib/component/axisPointer/CartesianAxisPointer.js +20 -2
  219. package/lib/component/axisPointer/PolarAxisPointer.js +19 -1
  220. package/lib/component/axisPointer/SingleAxisPointer.js +19 -1
  221. package/lib/component/axisPointer/axisTrigger.js +18 -0
  222. package/lib/component/axisPointer/findPointFromSeries.js +19 -0
  223. package/lib/component/axisPointer/globalListener.js +19 -0
  224. package/lib/component/axisPointer/modelHelper.js +18 -0
  225. package/lib/component/axisPointer/viewHelper.js +20 -0
  226. package/lib/component/axisPointer.js +18 -0
  227. package/lib/component/brush/BrushModel.js +25 -1
  228. package/lib/component/brush/BrushView.js +18 -0
  229. package/lib/component/brush/brushAction.js +19 -0
  230. package/lib/component/brush/preprocessor.js +18 -0
  231. package/lib/component/brush/selector.js +18 -0
  232. package/lib/component/brush/visualEncoding.js +18 -0
  233. package/lib/component/brush.js +19 -0
  234. package/lib/component/calendar/CalendarView.js +18 -0
  235. package/lib/component/dataZoom/AxisProxy.js +18 -0
  236. package/lib/component/dataZoom/DataZoomModel.js +18 -0
  237. package/lib/component/dataZoom/DataZoomView.js +18 -0
  238. package/lib/component/dataZoom/InsideZoomModel.js +18 -0
  239. package/lib/component/dataZoom/InsideZoomView.js +36 -13
  240. package/lib/component/dataZoom/SelectZoomModel.js +18 -0
  241. package/lib/component/dataZoom/SelectZoomView.js +18 -0
  242. package/lib/component/dataZoom/SliderZoomModel.js +18 -0
  243. package/lib/component/dataZoom/SliderZoomView.js +29 -6
  244. package/lib/component/dataZoom/dataZoomAction.js +18 -0
  245. package/lib/component/dataZoom/dataZoomProcessor.js +23 -1
  246. package/lib/component/dataZoom/helper.js +18 -0
  247. package/lib/component/dataZoom/history.js +18 -0
  248. package/lib/component/dataZoom/roams.js +19 -18
  249. package/lib/component/dataZoom/typeDefaulter.js +18 -0
  250. package/lib/component/dataset.js +56 -3
  251. package/lib/component/geo/GeoView.js +18 -0
  252. package/lib/component/geo.js +18 -0
  253. package/lib/component/graphic.js +18 -0
  254. package/lib/component/gridSimple.js +18 -0
  255. package/lib/component/helper/BrushController.js +18 -0
  256. package/lib/component/helper/BrushTargetManager.js +18 -0
  257. package/lib/component/helper/MapDraw.js +18 -0
  258. package/lib/component/helper/RoamController.js +19 -0
  259. package/lib/component/helper/brushHelper.js +18 -0
  260. package/lib/component/helper/cursorHelper.js +18 -0
  261. package/lib/component/helper/interactionMutex.js +18 -0
  262. package/lib/component/helper/listComponent.js +19 -0
  263. package/lib/component/helper/roamHelper.js +19 -0
  264. package/lib/component/helper/selectableMixin.js +19 -0
  265. package/lib/component/helper/sliderMove.js +19 -0
  266. package/lib/component/legend/LegendModel.js +19 -0
  267. package/lib/component/legend/LegendView.js +41 -12
  268. package/lib/component/legend/ScrollableLegendModel.js +19 -0
  269. package/lib/component/legend/ScrollableLegendView.js +19 -0
  270. package/lib/component/legend/legendAction.js +18 -0
  271. package/lib/component/legend/legendFilter.js +18 -0
  272. package/lib/component/legend/scrollableLegendAction.js +19 -0
  273. package/lib/component/legend.js +18 -0
  274. package/lib/component/markArea.js +18 -0
  275. package/lib/component/markLine.js +18 -0
  276. package/lib/component/markPoint.js +18 -0
  277. package/lib/component/marker/MarkAreaModel.js +18 -0
  278. package/lib/component/marker/MarkAreaView.js +20 -2
  279. package/lib/component/marker/MarkLineModel.js +18 -0
  280. package/lib/component/marker/MarkLineView.js +20 -2
  281. package/lib/component/marker/MarkPointModel.js +18 -0
  282. package/lib/component/marker/MarkPointView.js +18 -0
  283. package/lib/component/marker/MarkerModel.js +19 -1
  284. package/lib/component/marker/MarkerView.js +18 -0
  285. package/lib/component/marker/markerHelper.js +25 -1
  286. package/lib/component/parallel.js +18 -0
  287. package/lib/component/polar.js +18 -0
  288. package/lib/component/radar/RadarView.js +22 -4
  289. package/lib/component/singleAxis.js +18 -0
  290. package/lib/component/timeline/SliderTimelineModel.js +18 -0
  291. package/lib/component/timeline/SliderTimelineView.js +41 -31
  292. package/lib/component/timeline/TimelineAxis.js +24 -35
  293. package/lib/component/timeline/TimelineModel.js +18 -0
  294. package/lib/component/timeline/TimelineView.js +18 -0
  295. package/lib/component/timeline/preprocessor.js +18 -0
  296. package/lib/component/timeline/timelineAction.js +18 -0
  297. package/lib/component/timeline/typeDefaulter.js +18 -0
  298. package/lib/component/timeline.js +19 -0
  299. package/lib/component/title.js +19 -0
  300. package/lib/component/toolbox/ToolboxModel.js +20 -2
  301. package/lib/component/toolbox/ToolboxView.js +18 -0
  302. package/lib/component/toolbox/feature/Brush.js +18 -0
  303. package/lib/component/toolbox/feature/DataView.js +18 -0
  304. package/lib/component/toolbox/feature/DataZoom.js +22 -1
  305. package/lib/component/toolbox/feature/MagicType.js +18 -0
  306. package/lib/component/toolbox/feature/Restore.js +18 -0
  307. package/lib/component/toolbox/feature/SaveAsImage.js +18 -0
  308. package/lib/component/toolbox/featureManager.js +18 -0
  309. package/lib/component/tooltip/TooltipContent.js +18 -0
  310. package/lib/component/tooltip/TooltipModel.js +18 -0
  311. package/lib/component/tooltip/TooltipView.js +19 -1
  312. package/lib/component/tooltip.js +18 -0
  313. package/lib/component/visualMap/ContinuousModel.js +18 -0
  314. package/lib/component/visualMap/ContinuousView.js +18 -0
  315. package/lib/component/visualMap/PiecewiseModel.js +19 -0
  316. package/lib/component/visualMap/PiecewiseView.js +18 -0
  317. package/lib/component/visualMap/VisualMapModel.js +18 -0
  318. package/lib/component/visualMap/VisualMapView.js +18 -0
  319. package/lib/component/visualMap/helper.js +19 -0
  320. package/lib/component/visualMap/preprocessor.js +18 -0
  321. package/lib/component/visualMap/typeDefaulter.js +18 -0
  322. package/lib/component/visualMap/visualEncoding.js +21 -1
  323. package/lib/component/visualMap/visualMapAction.js +18 -0
  324. package/lib/component/visualMapContinuous.js +19 -0
  325. package/lib/component/visualMapPiecewise.js +19 -0
  326. package/lib/config.js +18 -0
  327. package/lib/coord/Axis.js +164 -85
  328. package/lib/coord/View.js +19 -0
  329. package/lib/coord/axisDefault.js +52 -42
  330. package/lib/coord/axisHelper.js +120 -85
  331. package/lib/coord/axisModelCommonMixin.js +18 -8
  332. package/lib/coord/axisModelCreator.js +26 -3
  333. package/lib/coord/axisTickLabelBuilder.js +350 -0
  334. package/lib/coord/calendar/Calendar.js +19 -1
  335. package/lib/coord/calendar/CalendarModel.js +19 -0
  336. package/lib/coord/calendar/prepareCustom.js +18 -0
  337. package/lib/coord/cartesian/Axis2D.js +24 -16
  338. package/lib/coord/cartesian/AxisModel.js +18 -0
  339. package/lib/coord/cartesian/Cartesian.js +19 -0
  340. package/lib/coord/cartesian/Cartesian2D.js +26 -4
  341. package/lib/coord/cartesian/Grid.js +71 -79
  342. package/lib/coord/cartesian/GridModel.js +18 -0
  343. package/lib/{component/axis → coord/cartesian}/cartesianAxisHelper.js +29 -9
  344. package/lib/coord/cartesian/prepareCustom.js +18 -0
  345. package/lib/coord/geo/Geo.js +18 -0
  346. package/lib/coord/geo/GeoModel.js +18 -0
  347. package/lib/coord/geo/Region.js +19 -0
  348. package/lib/coord/geo/fix/diaoyuIsland.js +18 -0
  349. package/lib/coord/geo/fix/geoCoord.js +18 -0
  350. package/lib/coord/geo/fix/nanhai.js +18 -0
  351. package/lib/coord/geo/fix/textCoord.js +18 -0
  352. package/lib/coord/geo/geoCreator.js +19 -0
  353. package/lib/coord/geo/parseGeoJson.js +19 -0
  354. package/lib/coord/geo/prepareCustom.js +18 -0
  355. package/lib/coord/parallel/AxisModel.js +31 -4
  356. package/lib/coord/parallel/Parallel.js +35 -12
  357. package/lib/coord/parallel/ParallelAxis.js +19 -0
  358. package/lib/coord/parallel/ParallelModel.js +18 -0
  359. package/lib/coord/parallel/parallelCreator.js +19 -0
  360. package/lib/coord/parallel/parallelPreprocessor.js +18 -0
  361. package/lib/coord/polar/AngleAxis.js +18 -0
  362. package/lib/coord/polar/AxisModel.js +18 -0
  363. package/lib/coord/polar/Polar.js +19 -0
  364. package/lib/coord/polar/PolarModel.js +18 -0
  365. package/lib/coord/polar/RadiusAxis.js +18 -0
  366. package/lib/coord/polar/polarCreator.js +24 -3
  367. package/lib/coord/polar/prepareCustom.js +18 -0
  368. package/lib/coord/radar/IndicatorAxis.js +18 -0
  369. package/lib/coord/radar/Radar.js +18 -0
  370. package/lib/coord/radar/RadarModel.js +18 -0
  371. package/lib/coord/single/AxisModel.js +18 -0
  372. package/lib/coord/single/Single.js +19 -0
  373. package/lib/coord/single/SingleAxis.js +19 -5
  374. package/lib/coord/single/prepareCustom.js +18 -0
  375. package/lib/{component/axis → coord/single}/singleAxisHelper.js +20 -2
  376. package/lib/coord/single/singleCreator.js +19 -0
  377. package/lib/data/DataDiffer.js +18 -0
  378. package/lib/data/Graph.js +19 -0
  379. package/lib/data/List.js +184 -121
  380. package/lib/data/OrdinalMeta.js +19 -0
  381. package/lib/data/Source.js +19 -0
  382. package/lib/data/Tree.js +19 -0
  383. package/lib/data/helper/completeDimensions.js +26 -2
  384. package/lib/data/helper/createDimensions.js +19 -0
  385. package/lib/data/helper/dataProvider.js +22 -4
  386. package/lib/data/helper/dataStackHelper.js +50 -5
  387. package/lib/data/helper/dimensionHelper.js +26 -1
  388. package/lib/data/helper/linkList.js +19 -0
  389. package/lib/data/helper/sourceHelper.js +19 -0
  390. package/lib/data/helper/sourceType.js +18 -0
  391. package/lib/echarts.js +38 -16
  392. package/lib/export.js +19 -0
  393. package/lib/helper.js +21 -1
  394. package/lib/lang.js +18 -0
  395. package/lib/langEN.js +18 -0
  396. package/lib/langFI.js +18 -0
  397. package/lib/langTH.js +18 -0
  398. package/lib/layout/barGrid.js +139 -22
  399. package/lib/layout/barPolar.js +21 -1
  400. package/lib/layout/points.js +30 -7
  401. package/lib/loading/default.js +18 -0
  402. package/lib/model/Component.js +19 -0
  403. package/lib/model/Global.js +19 -1
  404. package/lib/model/Model.js +19 -0
  405. package/lib/model/OptionManager.js +19 -0
  406. package/lib/model/Series.js +21 -2
  407. package/lib/model/globalDefault.js +18 -0
  408. package/lib/model/mixin/areaStyle.js +18 -0
  409. package/lib/model/mixin/boxLayout.js +18 -0
  410. package/lib/model/mixin/colorPalette.js +19 -0
  411. package/lib/model/mixin/dataFormat.js +20 -1
  412. package/lib/model/mixin/itemStyle.js +18 -0
  413. package/lib/model/mixin/lineStyle.js +18 -0
  414. package/lib/model/mixin/makeStyleMapper.js +18 -0
  415. package/lib/model/mixin/textStyle.js +18 -0
  416. package/lib/model/referHelper.js +19 -0
  417. package/lib/preprocessor/backwardCompat.js +18 -0
  418. package/lib/preprocessor/helper/compatStyle.js +20 -0
  419. package/lib/processor/dataFilter.js +18 -0
  420. package/lib/processor/dataSample.js +27 -5
  421. package/lib/processor/dataStack.js +18 -0
  422. package/lib/scale/Interval.js +19 -14
  423. package/lib/scale/Log.js +19 -0
  424. package/lib/scale/Ordinal.js +26 -1
  425. package/lib/scale/Scale.js +26 -15
  426. package/lib/scale/Time.js +18 -0
  427. package/lib/scale/helper.js +19 -0
  428. package/lib/stream/Scheduler.js +110 -37
  429. package/lib/stream/task.js +104 -11
  430. package/lib/theme/dark.js +18 -0
  431. package/lib/theme/light.js +18 -0
  432. package/lib/util/KDTree.js +19 -0
  433. package/lib/util/animation.js +19 -0
  434. package/lib/util/array/nest.js +19 -0
  435. package/lib/util/clazz.js +18 -0
  436. package/lib/util/component.js +19 -0
  437. package/lib/util/format.js +30 -1
  438. package/lib/util/graphic.js +19 -0
  439. package/lib/util/layout.js +18 -0
  440. package/lib/util/model.js +19 -0
  441. package/lib/util/number.js +18 -0
  442. package/lib/util/quickSelect.js +19 -0
  443. package/lib/util/symbol.js +18 -0
  444. package/lib/util/throttle.js +26 -1
  445. package/lib/view/Chart.js +20 -2
  446. package/lib/view/Component.js +18 -0
  447. package/lib/visual/VisualMapping.js +28 -0
  448. package/lib/visual/aria.js +18 -0
  449. package/lib/visual/dataColor.js +18 -0
  450. package/lib/visual/seriesColor.js +18 -0
  451. package/lib/visual/symbol.js +28 -2
  452. package/lib/visual/visualDefault.js +19 -0
  453. package/lib/visual/visualSolution.js +22 -1
  454. package/licenses/LICENSE-d3 +27 -0
  455. package/licenses/LICENSE-zrender +29 -0
  456. package/map/js/china-contour.js +19 -0
  457. package/map/js/china.js +19 -0
  458. package/map/js/province/anhui.js +19 -0
  459. package/map/js/province/aomen.js +19 -0
  460. package/map/js/province/beijing.js +19 -0
  461. package/map/js/province/chongqing.js +19 -0
  462. package/map/js/province/fujian.js +19 -0
  463. package/map/js/province/gansu.js +19 -0
  464. package/map/js/province/guangdong.js +19 -0
  465. package/map/js/province/guangxi.js +19 -0
  466. package/map/js/province/guizhou.js +19 -0
  467. package/map/js/province/hainan.js +19 -0
  468. package/map/js/province/hebei.js +19 -0
  469. package/map/js/province/heilongjiang.js +19 -0
  470. package/map/js/province/henan.js +19 -0
  471. package/map/js/province/hubei.js +19 -0
  472. package/map/js/province/hunan.js +19 -0
  473. package/map/js/province/jiangsu.js +19 -0
  474. package/map/js/province/jiangxi.js +19 -0
  475. package/map/js/province/jilin.js +19 -0
  476. package/map/js/province/liaoning.js +19 -0
  477. package/map/js/province/neimenggu.js +19 -0
  478. package/map/js/province/ningxia.js +19 -0
  479. package/map/js/province/qinghai.js +19 -0
  480. package/map/js/province/shandong.js +19 -0
  481. package/map/js/province/shanghai.js +19 -0
  482. package/map/js/province/shanxi.js +19 -0
  483. package/map/js/province/shanxi1.js +19 -0
  484. package/map/js/province/sichuan.js +19 -0
  485. package/map/js/province/taiwan.js +19 -0
  486. package/map/js/province/tianjin.js +19 -0
  487. package/map/js/province/xianggang.js +19 -0
  488. package/map/js/province/xinjiang.js +19 -0
  489. package/map/js/province/xizang.js +19 -0
  490. package/map/js/province/yunnan.js +19 -0
  491. package/map/js/province/zhejiang.js +19 -0
  492. package/map/js/world.js +19 -0
  493. package/package.json +3 -3
  494. package/src/CoordinateSystem.js +19 -0
  495. package/src/ExtensionAPI.js +19 -0
  496. package/src/action/createDataSelectAction.js +19 -0
  497. package/src/action/geoRoam.js +19 -0
  498. package/src/action/roamHelper.js +19 -0
  499. package/src/chart/bar/BarSeries.js +44 -1
  500. package/src/chart/bar/BarView.js +120 -16
  501. package/src/chart/bar/BaseBarSeries.js +24 -0
  502. package/src/chart/bar/PictorialBarSeries.js +19 -0
  503. package/src/chart/bar/PictorialBarView.js +19 -0
  504. package/src/chart/bar/barItemStyle.js +19 -0
  505. package/src/chart/bar/helper.js +20 -1
  506. package/src/chart/bar.js +28 -7
  507. package/src/chart/boxplot/BoxplotSeries.js +26 -1
  508. package/src/chart/boxplot/BoxplotView.js +152 -21
  509. package/src/chart/boxplot/boxplotLayout.js +75 -71
  510. package/src/chart/boxplot/boxplotVisual.js +19 -0
  511. package/src/chart/boxplot.js +19 -0
  512. package/src/chart/candlestick/CandlestickSeries.js +35 -4
  513. package/src/chart/candlestick/CandlestickView.js +272 -24
  514. package/src/chart/candlestick/candlestickLayout.js +151 -97
  515. package/src/chart/candlestick/candlestickVisual.js +66 -17
  516. package/src/chart/candlestick/preprocessor.js +19 -0
  517. package/src/chart/candlestick.js +19 -0
  518. package/src/chart/chord/ChordSeries.js +19 -0
  519. package/src/chart/chord/ChordView.js +19 -0
  520. package/src/chart/chord/Ribbon.js +19 -0
  521. package/src/chart/chord/chordCircularLayout.js +19 -0
  522. package/src/chart/chord.js +19 -0
  523. package/src/chart/custom.js +19 -0
  524. package/src/chart/effectScatter/EffectScatterSeries.js +19 -0
  525. package/src/chart/effectScatter/EffectScatterView.js +19 -0
  526. package/src/chart/effectScatter.js +19 -0
  527. package/src/chart/funnel/FunnelSeries.js +19 -0
  528. package/src/chart/funnel/FunnelView.js +19 -0
  529. package/src/chart/funnel/funnelLayout.js +19 -0
  530. package/src/chart/funnel.js +19 -0
  531. package/src/chart/gauge/GaugeSeries.js +19 -0
  532. package/src/chart/gauge/GaugeView.js +19 -0
  533. package/src/chart/gauge/PointerPath.js +19 -0
  534. package/src/chart/gauge.js +19 -0
  535. package/src/chart/graph/GraphSeries.js +27 -0
  536. package/src/chart/graph/GraphView.js +19 -0
  537. package/src/chart/graph/adjustEdge.js +19 -0
  538. package/src/chart/graph/backwardCompat.js +19 -0
  539. package/src/chart/graph/categoryFilter.js +19 -0
  540. package/src/chart/graph/categoryVisual.js +19 -0
  541. package/src/chart/graph/circularLayout.js +19 -0
  542. package/src/chart/graph/circularLayoutHelper.js +19 -0
  543. package/src/chart/graph/createView.js +19 -0
  544. package/src/chart/graph/edgeVisual.js +19 -0
  545. package/src/chart/graph/forceHelper.js +19 -0
  546. package/src/chart/graph/forceLayout.js +19 -0
  547. package/src/chart/graph/graphAction.js +19 -0
  548. package/src/chart/graph/simpleLayout.js +19 -0
  549. package/src/chart/graph/simpleLayoutHelper.js +19 -0
  550. package/src/chart/graph.js +19 -0
  551. package/src/chart/heatmap/HeatmapLayer.js +19 -0
  552. package/src/chart/heatmap/HeatmapSeries.js +19 -0
  553. package/src/chart/heatmap/HeatmapView.js +19 -0
  554. package/src/chart/heatmap.js +19 -0
  555. package/src/chart/helper/EffectLine.js +19 -0
  556. package/src/chart/helper/EffectPolyline.js +19 -0
  557. package/src/chart/helper/EffectSymbol.js +19 -0
  558. package/src/chart/helper/LargeLineDraw.js +20 -0
  559. package/src/chart/helper/LargeSymbolDraw.js +19 -0
  560. package/src/chart/helper/Line.js +38 -16
  561. package/src/chart/helper/LineDraw.js +27 -0
  562. package/src/chart/helper/LinePath.js +19 -0
  563. package/src/chart/helper/Polyline.js +19 -0
  564. package/src/chart/helper/Symbol.js +60 -14
  565. package/src/chart/helper/SymbolDraw.js +23 -2
  566. package/src/chart/helper/createGraphFromNodeEdge.js +29 -6
  567. package/src/chart/helper/createGraphFromNodeMatrix.js +19 -0
  568. package/src/chart/helper/createListFromArray.js +19 -0
  569. package/src/chart/helper/createListSimply.js +19 -0
  570. package/src/chart/helper/createRenderPlanner.js +21 -2
  571. package/src/chart/helper/labelHelper.js +19 -0
  572. package/src/chart/helper/treeHelper.js +19 -0
  573. package/src/chart/helper/whiskerBoxCommon.js +19 -32
  574. package/src/chart/line/LineSeries.js +28 -10
  575. package/src/chart/line/LineView.js +127 -38
  576. package/src/chart/line/helper.js +31 -5
  577. package/src/chart/line/lineAnimationDiff.js +19 -0
  578. package/src/chart/line/poly.js +64 -39
  579. package/src/chart/line.js +19 -0
  580. package/src/chart/lines/LinesSeries.js +27 -4
  581. package/src/chart/lines/LinesView.js +21 -1
  582. package/src/chart/lines/linesLayout.js +20 -1
  583. package/src/chart/lines/linesVisual.js +19 -0
  584. package/src/chart/lines.js +19 -0
  585. package/src/chart/map/MapSeries.js +19 -0
  586. package/src/chart/map/MapView.js +19 -0
  587. package/src/chart/map/backwardCompat.js +19 -0
  588. package/src/chart/map/mapDataStatistic.js +19 -0
  589. package/src/chart/map/mapSymbolLayout.js +19 -0
  590. package/src/chart/map/mapVisual.js +19 -0
  591. package/src/chart/map.js +19 -0
  592. package/src/chart/parallel/ParallelSeries.js +21 -7
  593. package/src/chart/parallel/ParallelView.js +90 -58
  594. package/src/chart/parallel/parallelVisual.js +39 -14
  595. package/src/chart/parallel.js +19 -0
  596. package/src/chart/pictorialBar.js +19 -0
  597. package/src/chart/pie/PieSeries.js +19 -0
  598. package/src/chart/pie/PieView.js +19 -0
  599. package/src/chart/pie/labelLayout.js +19 -0
  600. package/src/chart/pie/pieLayout.js +19 -0
  601. package/src/chart/pie.js +19 -0
  602. package/src/chart/radar/RadarSeries.js +19 -0
  603. package/src/chart/radar/RadarView.js +19 -0
  604. package/src/chart/radar/backwardCompat.js +19 -0
  605. package/src/chart/radar/radarLayout.js +20 -1
  606. package/src/chart/radar.js +19 -0
  607. package/src/chart/sankey/SankeySeries.js +28 -0
  608. package/src/chart/sankey/SankeyView.js +62 -11
  609. package/src/chart/sankey/sankeyAction.js +31 -0
  610. package/src/chart/sankey/sankeyLayout.js +71 -17
  611. package/src/chart/sankey/sankeyVisual.js +49 -25
  612. package/src/chart/sankey.js +20 -0
  613. package/src/chart/scatter/ScatterSeries.js +21 -2
  614. package/src/chart/scatter/ScatterView.js +19 -0
  615. package/src/chart/scatter.js +19 -0
  616. package/src/chart/sunburst/SunburstPiece.js +24 -0
  617. package/src/chart/sunburst/SunburstSeries.js +19 -0
  618. package/src/chart/sunburst/SunburstView.js +28 -9
  619. package/src/chart/sunburst/sunburstAction.js +19 -0
  620. package/src/chart/sunburst/sunburstLayout.js +19 -0
  621. package/src/chart/sunburst.js +19 -0
  622. package/src/chart/themeRiver/ThemeRiverSeries.js +19 -1
  623. package/src/chart/themeRiver/ThemeRiverView.js +19 -0
  624. package/src/chart/themeRiver/themeRiverLayout.js +19 -0
  625. package/src/chart/themeRiver/themeRiverVisual.js +19 -0
  626. package/src/chart/themeRiver.js +19 -0
  627. package/src/chart/tree/TreeSeries.js +38 -2
  628. package/src/chart/tree/TreeView.js +31 -5
  629. package/src/chart/tree/layoutHelper.js +19 -0
  630. package/src/chart/tree/traversalHelper.js +19 -0
  631. package/src/chart/tree/treeAction.js +19 -0
  632. package/src/chart/tree/treeLayout.js +128 -0
  633. package/src/chart/tree.js +21 -4
  634. package/src/chart/treemap/Breadcrumb.js +19 -0
  635. package/src/chart/treemap/TreemapSeries.js +19 -0
  636. package/src/chart/treemap/TreemapView.js +19 -0
  637. package/src/chart/treemap/helper.js +19 -0
  638. package/src/chart/treemap/treemapAction.js +19 -0
  639. package/src/chart/treemap/treemapLayout.js +19 -0
  640. package/src/chart/treemap/treemapVisual.js +19 -0
  641. package/src/chart/treemap.js +19 -0
  642. package/src/component/angleAxis.js +19 -0
  643. package/src/component/axis/AngleAxisView.js +62 -25
  644. package/src/component/axis/AxisBuilder.js +43 -88
  645. package/src/component/axis/AxisView.js +19 -0
  646. package/src/component/axis/CartesianAxisView.js +69 -54
  647. package/src/component/axis/ParallelAxisView.js +19 -0
  648. package/src/component/axis/RadiusAxisView.js +26 -4
  649. package/src/component/axis/SingleAxisView.js +26 -18
  650. package/src/component/axis/parallelAxisAction.js +19 -0
  651. package/src/component/axis.js +19 -0
  652. package/src/component/axisPointer/AxisPointerModel.js +19 -0
  653. package/src/component/axisPointer/AxisPointerView.js +19 -0
  654. package/src/component/axisPointer/BaseAxisPointer.js +19 -0
  655. package/src/component/axisPointer/CartesianAxisPointer.js +21 -2
  656. package/src/component/axisPointer/PolarAxisPointer.js +20 -1
  657. package/src/component/axisPointer/SingleAxisPointer.js +20 -1
  658. package/src/component/axisPointer/axisTrigger.js +19 -0
  659. package/src/component/axisPointer/findPointFromSeries.js +19 -0
  660. package/src/component/axisPointer/globalListener.js +19 -0
  661. package/src/component/axisPointer/modelHelper.js +19 -0
  662. package/src/component/axisPointer/viewHelper.js +20 -0
  663. package/src/component/axisPointer.js +19 -0
  664. package/src/component/brush/BrushModel.js +26 -1
  665. package/src/component/brush/BrushView.js +19 -0
  666. package/src/component/brush/brushAction.js +19 -0
  667. package/src/component/brush/preprocessor.js +19 -0
  668. package/src/component/brush/selector.js +19 -0
  669. package/src/component/brush/visualEncoding.js +19 -0
  670. package/src/component/brush.js +19 -0
  671. package/src/component/calendar/CalendarView.js +19 -0
  672. package/src/component/calendar.js +19 -0
  673. package/src/component/dataZoom/AxisProxy.js +19 -0
  674. package/src/component/dataZoom/DataZoomModel.js +19 -0
  675. package/src/component/dataZoom/DataZoomView.js +19 -0
  676. package/src/component/dataZoom/InsideZoomModel.js +19 -0
  677. package/src/component/dataZoom/InsideZoomView.js +37 -10
  678. package/src/component/dataZoom/SelectZoomModel.js +19 -0
  679. package/src/component/dataZoom/SelectZoomView.js +19 -0
  680. package/src/component/dataZoom/SliderZoomModel.js +19 -0
  681. package/src/component/dataZoom/SliderZoomView.js +30 -5
  682. package/src/component/dataZoom/dataZoomAction.js +19 -0
  683. package/src/component/dataZoom/dataZoomProcessor.js +24 -1
  684. package/src/component/dataZoom/helper.js +19 -0
  685. package/src/component/dataZoom/history.js +19 -0
  686. package/src/component/dataZoom/roams.js +20 -15
  687. package/src/component/dataZoom/typeDefaulter.js +19 -0
  688. package/src/component/dataZoom.js +19 -0
  689. package/src/component/dataZoomInside.js +19 -0
  690. package/src/component/dataZoomSelect.js +19 -0
  691. package/src/component/dataset.js +63 -3
  692. package/src/component/geo/GeoView.js +19 -0
  693. package/src/component/geo.js +19 -0
  694. package/src/component/graphic.js +19 -0
  695. package/src/component/grid.js +19 -0
  696. package/src/component/gridSimple.js +19 -0
  697. package/src/component/helper/BrushController.js +19 -0
  698. package/src/component/helper/BrushTargetManager.js +19 -0
  699. package/src/component/helper/MapDraw.js +19 -0
  700. package/src/component/helper/RoamController.js +19 -0
  701. package/src/component/helper/brushHelper.js +19 -0
  702. package/src/component/helper/cursorHelper.js +19 -0
  703. package/src/component/helper/interactionMutex.js +19 -0
  704. package/src/component/helper/listComponent.js +19 -0
  705. package/src/component/helper/roamHelper.js +19 -0
  706. package/src/component/helper/selectableMixin.js +19 -0
  707. package/src/component/helper/sliderMove.js +19 -0
  708. package/src/component/legend/LegendModel.js +19 -0
  709. package/src/component/legend/LegendView.js +51 -13
  710. package/src/component/legend/ScrollableLegendModel.js +19 -0
  711. package/src/component/legend/ScrollableLegendView.js +19 -0
  712. package/src/component/legend/legendAction.js +19 -0
  713. package/src/component/legend/legendFilter.js +19 -0
  714. package/src/component/legend/scrollableLegendAction.js +19 -0
  715. package/src/component/legend.js +19 -0
  716. package/src/component/legendScroll.js +19 -0
  717. package/src/component/markArea.js +19 -0
  718. package/src/component/markLine.js +19 -0
  719. package/src/component/markPoint.js +19 -0
  720. package/src/component/marker/MarkAreaModel.js +19 -0
  721. package/src/component/marker/MarkAreaView.js +22 -3
  722. package/src/component/marker/MarkLineModel.js +19 -0
  723. package/src/component/marker/MarkLineView.js +22 -3
  724. package/src/component/marker/MarkPointModel.js +19 -0
  725. package/src/component/marker/MarkPointView.js +19 -0
  726. package/src/component/marker/MarkerModel.js +20 -1
  727. package/src/component/marker/MarkerView.js +19 -0
  728. package/src/component/marker/markerHelper.js +24 -1
  729. package/src/component/parallel.js +19 -0
  730. package/src/component/parallelAxis.js +19 -0
  731. package/src/component/polar.js +19 -0
  732. package/src/component/radar/RadarView.js +23 -4
  733. package/src/component/radar.js +19 -0
  734. package/src/component/radiusAxis.js +19 -0
  735. package/src/component/singleAxis.js +19 -0
  736. package/src/component/timeline/SliderTimelineModel.js +19 -0
  737. package/src/component/timeline/SliderTimelineView.js +40 -31
  738. package/src/component/timeline/TimelineAxis.js +25 -43
  739. package/src/component/timeline/TimelineModel.js +19 -0
  740. package/src/component/timeline/TimelineView.js +19 -0
  741. package/src/component/timeline/preprocessor.js +19 -0
  742. package/src/component/timeline/timelineAction.js +19 -0
  743. package/src/component/timeline/typeDefaulter.js +19 -0
  744. package/src/component/timeline.js +19 -0
  745. package/src/component/title.js +19 -0
  746. package/src/component/toolbox/ToolboxModel.js +21 -2
  747. package/src/component/toolbox/ToolboxView.js +19 -0
  748. package/src/component/toolbox/feature/Brush.js +19 -0
  749. package/src/component/toolbox/feature/DataView.js +19 -0
  750. package/src/component/toolbox/feature/DataZoom.js +22 -0
  751. package/src/component/toolbox/feature/MagicType.js +19 -0
  752. package/src/component/toolbox/feature/Restore.js +19 -0
  753. package/src/component/toolbox/feature/SaveAsImage.js +19 -0
  754. package/src/component/toolbox/featureManager.js +19 -0
  755. package/src/component/toolbox.js +19 -0
  756. package/src/component/tooltip/TooltipContent.js +19 -0
  757. package/src/component/tooltip/TooltipModel.js +19 -0
  758. package/src/component/tooltip/TooltipView.js +20 -1
  759. package/src/component/tooltip.js +19 -0
  760. package/src/component/visualMap/ContinuousModel.js +19 -0
  761. package/src/component/visualMap/ContinuousView.js +19 -0
  762. package/src/component/visualMap/PiecewiseModel.js +19 -0
  763. package/src/component/visualMap/PiecewiseView.js +19 -0
  764. package/src/component/visualMap/VisualMapModel.js +19 -0
  765. package/src/component/visualMap/VisualMapView.js +19 -0
  766. package/src/component/visualMap/helper.js +19 -0
  767. package/src/component/visualMap/preprocessor.js +19 -0
  768. package/src/component/visualMap/typeDefaulter.js +19 -0
  769. package/src/component/visualMap/visualEncoding.js +23 -1
  770. package/src/component/visualMap/visualMapAction.js +19 -0
  771. package/src/component/visualMap.js +19 -0
  772. package/src/component/visualMapContinuous.js +19 -0
  773. package/src/component/visualMapPiecewise.js +19 -0
  774. package/src/config.js +19 -0
  775. package/src/coord/Axis.js +157 -98
  776. package/src/coord/View.js +19 -0
  777. package/src/coord/axisDefault.js +68 -41
  778. package/src/coord/axisHelper.js +127 -86
  779. package/src/coord/axisModelCommonMixin.js +19 -11
  780. package/src/coord/axisModelCreator.js +25 -2
  781. package/src/coord/axisTickLabelBuilder.js +369 -0
  782. package/src/coord/calendar/Calendar.js +23 -1
  783. package/src/coord/calendar/CalendarModel.js +19 -0
  784. package/src/coord/calendar/prepareCustom.js +19 -0
  785. package/src/coord/cartesian/Axis2D.js +25 -18
  786. package/src/coord/cartesian/AxisModel.js +19 -0
  787. package/src/coord/cartesian/Cartesian.js +19 -0
  788. package/src/coord/cartesian/Cartesian2D.js +27 -4
  789. package/src/coord/cartesian/Grid.js +65 -76
  790. package/src/coord/cartesian/GridModel.js +19 -0
  791. package/src/{component/axis → coord/cartesian}/cartesianAxisHelper.js +28 -9
  792. package/src/coord/cartesian/prepareCustom.js +19 -0
  793. package/src/coord/geo/Geo.js +19 -0
  794. package/src/coord/geo/GeoModel.js +19 -0
  795. package/src/coord/geo/Region.js +19 -0
  796. package/src/coord/geo/fix/diaoyuIsland.js +19 -0
  797. package/src/coord/geo/fix/geoCoord.js +19 -0
  798. package/src/coord/geo/fix/nanhai.js +19 -0
  799. package/src/coord/geo/fix/textCoord.js +19 -0
  800. package/src/coord/geo/geoCreator.js +19 -0
  801. package/src/coord/geo/parseGeoJson.js +19 -0
  802. package/src/coord/geo/prepareCustom.js +19 -0
  803. package/src/coord/parallel/AxisModel.js +32 -3
  804. package/src/coord/parallel/Parallel.js +38 -12
  805. package/src/coord/parallel/ParallelAxis.js +19 -0
  806. package/src/coord/parallel/ParallelModel.js +19 -0
  807. package/src/coord/parallel/parallelCreator.js +19 -0
  808. package/src/coord/parallel/parallelPreprocessor.js +19 -0
  809. package/src/coord/polar/AngleAxis.js +19 -0
  810. package/src/coord/polar/AxisModel.js +19 -0
  811. package/src/coord/polar/Polar.js +19 -0
  812. package/src/coord/polar/PolarModel.js +19 -0
  813. package/src/coord/polar/RadiusAxis.js +19 -0
  814. package/src/coord/polar/polarCreator.js +26 -3
  815. package/src/coord/polar/prepareCustom.js +19 -0
  816. package/src/coord/radar/IndicatorAxis.js +19 -0
  817. package/src/coord/radar/Radar.js +19 -0
  818. package/src/coord/radar/RadarModel.js +19 -0
  819. package/src/coord/single/AxisModel.js +19 -0
  820. package/src/coord/single/Single.js +19 -0
  821. package/src/coord/single/SingleAxis.js +19 -5
  822. package/src/coord/single/prepareCustom.js +19 -0
  823. package/src/{component/axis → coord/single}/singleAxisHelper.js +21 -4
  824. package/src/coord/single/singleCreator.js +19 -0
  825. package/src/data/DataDiffer.js +19 -0
  826. package/src/data/Graph.js +20 -1
  827. package/src/data/List.js +163 -87
  828. package/src/data/OrdinalMeta.js +19 -0
  829. package/src/data/Source.js +19 -0
  830. package/src/data/Tree.js +19 -0
  831. package/src/data/helper/completeDimensions.js +24 -2
  832. package/src/data/helper/createDimensions.js +19 -0
  833. package/src/data/helper/dataProvider.js +23 -4
  834. package/src/data/helper/dataStackHelper.js +46 -9
  835. package/src/data/helper/dimensionHelper.js +26 -1
  836. package/src/data/helper/linkList.js +19 -0
  837. package/src/data/helper/sourceHelper.js +19 -0
  838. package/src/data/helper/sourceType.js +19 -0
  839. package/src/echarts.js +37 -20
  840. package/src/export.js +19 -0
  841. package/src/helper.js +26 -2
  842. package/src/lang.js +19 -0
  843. package/src/langEN.js +19 -0
  844. package/src/langFI.js +19 -0
  845. package/src/langTH.js +19 -0
  846. package/src/layout/barGrid.js +135 -23
  847. package/src/layout/barPolar.js +20 -1
  848. package/src/layout/points.js +27 -7
  849. package/src/loading/default.js +19 -0
  850. package/src/model/Component.js +19 -0
  851. package/src/model/Global.js +19 -2
  852. package/src/model/Model.js +19 -0
  853. package/src/model/OptionManager.js +19 -0
  854. package/src/model/Series.js +21 -2
  855. package/src/model/globalDefault.js +19 -0
  856. package/src/model/mixin/areaStyle.js +19 -0
  857. package/src/model/mixin/boxLayout.js +19 -0
  858. package/src/model/mixin/colorPalette.js +19 -0
  859. package/src/model/mixin/dataFormat.js +20 -1
  860. package/src/model/mixin/itemStyle.js +19 -0
  861. package/src/model/mixin/lineStyle.js +19 -0
  862. package/src/model/mixin/makeStyleMapper.js +19 -0
  863. package/src/model/mixin/textStyle.js +19 -0
  864. package/src/model/referHelper.js +19 -0
  865. package/src/preprocessor/backwardCompat.js +19 -0
  866. package/src/preprocessor/helper/compatStyle.js +22 -0
  867. package/src/processor/dataFilter.js +19 -0
  868. package/src/processor/dataSample.js +29 -3
  869. package/src/processor/dataStack.js +19 -0
  870. package/src/scale/Interval.js +19 -12
  871. package/src/scale/Log.js +19 -0
  872. package/src/scale/Ordinal.js +27 -1
  873. package/src/scale/Scale.js +26 -12
  874. package/src/scale/Time.js +19 -0
  875. package/src/scale/helper.js +19 -0
  876. package/src/stream/Scheduler.js +110 -34
  877. package/src/stream/task.js +105 -11
  878. package/src/theme/dark.js +19 -0
  879. package/src/theme/light.js +19 -0
  880. package/src/util/KDTree.js +19 -0
  881. package/src/util/animation.js +19 -0
  882. package/src/util/array/nest.js +19 -0
  883. package/src/util/clazz.js +19 -0
  884. package/src/util/component.js +19 -0
  885. package/src/util/format.js +34 -6
  886. package/src/util/graphic.js +19 -0
  887. package/src/util/layout.js +19 -0
  888. package/src/util/model.js +20 -0
  889. package/src/util/number.js +19 -0
  890. package/src/util/quickSelect.js +19 -0
  891. package/src/util/symbol.js +19 -0
  892. package/src/util/throttle.js +27 -0
  893. package/src/view/Chart.js +21 -2
  894. package/src/view/Component.js +19 -0
  895. package/src/visual/VisualMapping.js +29 -0
  896. package/src/visual/aria.js +19 -0
  897. package/src/visual/dataColor.js +19 -0
  898. package/src/visual/seriesColor.js +19 -0
  899. package/src/visual/symbol.js +34 -2
  900. package/src/visual/visualDefault.js +19 -0
  901. package/src/visual/visualSolution.js +21 -1
  902. package/theme/dark.js +19 -0
  903. package/theme/infographic.js +19 -0
  904. package/theme/macarons.js +19 -0
  905. package/theme/roma.js +19 -0
  906. package/theme/shine.js +19 -0
  907. package/theme/vintage.js +19 -0
  908. package/build/rollup-plugin-ec-dev.js +0 -38
  909. package/lib/chart/helper/WhiskerBoxDraw.js +0 -222
  910. package/lib/chart/tree/commonLayout.js +0 -108
  911. package/lib/chart/tree/orthogonalLayout.js +0 -9
  912. package/lib/chart/tree/radialLayout.js +0 -9
  913. package/lib/component/dataset/DatasetModel.js +0 -29
  914. package/src/chart/helper/WhiskerBoxDraw.js +0 -233
  915. package/src/chart/tree/commonLayout.js +0 -96
  916. package/src/chart/tree/orthogonalLayout.js +0 -7
  917. package/src/chart/tree/radialLayout.js +0 -7
  918. package/src/component/dataset/DatasetModel.js +0 -31
@@ -1,97 +1,98 @@
1
1
  var zrUtil = require("zrender/lib/core/util");
2
2
 
3
+ /*
4
+ * Licensed to the Apache Software Foundation (ASF) under one
5
+ * or more contributor license agreements. See the NOTICE file
6
+ * distributed with this work for additional information
7
+ * regarding copyright ownership. The ASF licenses this file
8
+ * to you under the Apache License, Version 2.0 (the
9
+ * "License"); you may not use this file except in compliance
10
+ * with the License. You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing,
15
+ * software distributed under the License is distributed on an
16
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17
+ * KIND, either express or implied. See the License for the
18
+ * specific language governing permissions and limitations
19
+ * under the License.
20
+ */
3
21
  var defaultOption = {
4
22
  show: true,
5
23
  zlevel: 0,
6
- // 一级层叠
7
24
  z: 0,
8
- // 二级层叠
9
- // 反向坐标轴
25
+ // Inverse the axis.
10
26
  inverse: false,
11
- // 坐标轴名字,默认为空
27
+ // Axis name displayed.
12
28
  name: '',
13
- // 坐标轴名字位置,支持'start' | 'middle' | 'end'
29
+ // 'start' | 'middle' | 'end'
14
30
  nameLocation: 'end',
15
- // 坐标轴名字旋转,degree
31
+ // By degree. By defualt auto rotate by nameLocation.
16
32
  nameRotate: null,
17
- // Adapt to axis rotate, when nameLocation is 'middle'.
18
33
  nameTruncate: {
19
34
  maxWidth: null,
20
35
  ellipsis: '...',
21
36
  placeholder: '.'
22
37
  },
23
- // 坐标轴文字样式,默认取全局样式
38
+ // Use global text style by default.
24
39
  nameTextStyle: {},
25
- // 文字与轴线距离
40
+ // The gap between axisName and axisLine.
26
41
  nameGap: 15,
42
+ // Default `false` to support tooltip.
27
43
  silent: false,
28
- // Default false to support tooltip.
44
+ // Default `false` to avoid legacy user event listener fail.
29
45
  triggerEvent: false,
30
- // Default false to avoid legacy user event listener fail.
31
46
  tooltip: {
32
47
  show: false
33
48
  },
34
49
  axisPointer: {},
35
- // 坐标轴线
36
50
  axisLine: {
37
- // 默认显示,属性show控制显示与否
38
51
  show: true,
39
52
  onZero: true,
40
53
  onZeroAxisIndex: null,
41
- // 属性lineStyle控制线条样式
42
54
  lineStyle: {
43
55
  color: '#333',
44
56
  width: 1,
45
57
  type: 'solid'
46
58
  },
47
- // 坐标轴两端的箭头
59
+ // The arrow at both ends the the axis.
48
60
  symbol: ['none', 'none'],
49
61
  symbolSize: [10, 15]
50
62
  },
51
- // 坐标轴小标记
52
63
  axisTick: {
53
- // 属性show控制显示与否,默认显示
54
64
  show: true,
55
- // 控制小标记是否在grid
65
+ // Whether axisTick is inside the grid or outside the grid.
56
66
  inside: false,
57
- // 属性length控制线长
67
+ // The length of axisTick.
58
68
  length: 5,
59
- // 属性lineStyle控制线条样式
60
69
  lineStyle: {
61
70
  width: 1
62
71
  }
63
72
  },
64
- // 坐标轴文本标签,详见axis.axisLabel
65
73
  axisLabel: {
66
74
  show: true,
67
- // 控制文本标签是否在grid
75
+ // Whether axisLabel is inside the grid or outside the grid.
68
76
  inside: false,
69
77
  rotate: 0,
78
+ // true | false | null/undefined (auto)
70
79
  showMinLabel: null,
71
- // true | false | null (auto)
80
+ // true | false | null/undefined (auto)
72
81
  showMaxLabel: null,
73
- // true | false | null (auto)
74
82
  margin: 8,
75
83
  // formatter: null,
76
- // 其余属性默认使用全局文本样式,详见TEXTSTYLE
77
84
  fontSize: 12
78
85
  },
79
- // 分隔线
80
86
  splitLine: {
81
- // 默认显示,属性show控制显示与否
82
87
  show: true,
83
- // 属性lineStyle(详见lineStyle)控制线条样式
84
88
  lineStyle: {
85
89
  color: ['#ccc'],
86
90
  width: 1,
87
91
  type: 'solid'
88
92
  }
89
93
  },
90
- // 分隔区域
91
94
  splitArea: {
92
- // 默认不显示,属性show控制显示与否
93
95
  show: false,
94
- // 属性areaStyle(详见areaStyle)控制区域样式
95
96
  areaStyle: {
96
97
  color: ['rgba(250,250,250,0.3)', 'rgba(200,200,200,0.3)']
97
98
  }
@@ -99,7 +100,7 @@ var defaultOption = {
99
100
  };
100
101
  var axisDefault = {};
101
102
  axisDefault.categoryAxis = zrUtil.merge({
102
- // 类目起始和结束两端空白策略
103
+ // The gap at both ends of the axis. For categoryAxis, boolean.
103
104
  boundaryGap: true,
104
105
  // Set false to faster category collection.
105
106
  // Only usefull in the case like: category is
@@ -115,39 +116,48 @@ axisDefault.categoryAxis = zrUtil.merge({
115
116
  splitLine: {
116
117
  show: false
117
118
  },
118
- // 坐标轴小标记
119
119
  axisTick: {
120
120
  // If tick is align with label when boundaryGap is true
121
121
  alignWithLabel: false,
122
122
  interval: 'auto'
123
123
  },
124
- // 坐标轴文本标签,详见axis.axisLabel
125
124
  axisLabel: {
126
125
  interval: 'auto'
127
126
  }
128
127
  }, defaultOption);
129
128
  axisDefault.valueAxis = zrUtil.merge({
130
- // 数值起始和结束两端空白策略
129
+ // The gap at both ends of the axis. For value axis, [GAP, GAP], where
130
+ // `GAP` can be an absolute pixel number (like `35`), or percent (like `'30%'`)
131
131
  boundaryGap: [0, 0],
132
132
  // TODO
133
133
  // min/max: [30, datamin, 60] or [20, datamin] or [datamin, 60]
134
- // 最小值, 设置成 'dataMin' 则从数据中计算最小值
134
+ // Min value of the axis. can be:
135
+ // + a number
136
+ // + 'dataMin': use the min value in data.
137
+ // + null/undefined: auto decide min value (consider pretty look and boundaryGap).
135
138
  // min: null,
136
- // 最大值,设置成 'dataMax' 则从数据中计算最大值
139
+ // Max value of the axis. can be:
140
+ // + a number
141
+ // + 'dataMax': use the max value in data.
142
+ // + null/undefined: auto decide max value (consider pretty look and boundaryGap).
137
143
  // max: null,
138
144
  // Readonly prop, specifies start value of the range when using data zoom.
139
145
  // rangeStart: null
140
146
  // Readonly prop, specifies end value of the range when using data zoom.
141
147
  // rangeEnd: null
142
- // 脱离0值比例,放大聚焦到最终_min,_max区间
148
+ // Optional value can be:
149
+ // + `false`: always include value 0.
150
+ // + `true`: the extent do not consider value 0.
143
151
  // scale: false,
144
- // 分割段数,默认为5
145
- splitNumber: 5 // Minimum interval
152
+ // AxisTick and axisLabel and splitLine are caculated based on splitNumber.
153
+ splitNumber: 5 // Interval specifies the span of the ticks is mandatorily.
154
+ // interval: null
155
+ // Specify min interval when auto calculate tick interval.
146
156
  // minInterval: null
157
+ // Specify max interval when auto calculate tick interval.
147
158
  // maxInterval: null
148
159
 
149
- }, defaultOption); // FIXME
150
-
160
+ }, defaultOption);
151
161
  axisDefault.timeAxis = zrUtil.defaults({
152
162
  scale: true,
153
163
  min: 'dataMin',
@@ -4,8 +4,6 @@ var __DEV__ = _config.__DEV__;
4
4
 
5
5
  var zrUtil = require("zrender/lib/core/util");
6
6
 
7
- var textContain = require("zrender/lib/contain/text");
8
-
9
7
  var OrdinalScale = require("../scale/Ordinal");
10
8
 
11
9
  var IntervalScale = require("../scale/Interval");
@@ -16,12 +14,35 @@ var numberUtil = require("../util/number");
16
14
 
17
15
  var _barGrid = require("../layout/barGrid");
18
16
 
19
- var calBarWidthAndOffset = _barGrid.calBarWidthAndOffset;
17
+ var prepareLayoutBarSeries = _barGrid.prepareLayoutBarSeries;
18
+ var makeColumnLayout = _barGrid.makeColumnLayout;
19
+ var retrieveColumnLayout = _barGrid.retrieveColumnLayout;
20
+
21
+ var BoundingRect = require("zrender/lib/core/BoundingRect");
20
22
 
21
23
  require("../scale/Time");
22
24
 
23
25
  require("../scale/Log");
24
26
 
27
+ /*
28
+ * Licensed to the Apache Software Foundation (ASF) under one
29
+ * or more contributor license agreements. See the NOTICE file
30
+ * distributed with this work for additional information
31
+ * regarding copyright ownership. The ASF licenses this file
32
+ * to you under the Apache License, Version 2.0 (the
33
+ * "License"); you may not use this file except in compliance
34
+ * with the License. You may obtain a copy of the License at
35
+ *
36
+ * http://www.apache.org/licenses/LICENSE-2.0
37
+ *
38
+ * Unless required by applicable law or agreed to in writing,
39
+ * software distributed under the License is distributed on an
40
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
41
+ * KIND, either express or implied. See the License for the
42
+ * specific language governing permissions and limitations
43
+ * under the License.
44
+ */
45
+
25
46
  /**
26
47
  * Get axis scale extent before niced.
27
48
  * Item of returned array can only be number (including Infinity and NaN).
@@ -96,7 +117,7 @@ function getScaleExtent(scale, model) {
96
117
 
97
118
  (min == null || !isFinite(min)) && (min = NaN);
98
119
  (max == null || !isFinite(max)) && (max = NaN);
99
- scale.setBlank(zrUtil.eqNaN(min) || zrUtil.eqNaN(max)); // Evaluate if axis needs cross zero
120
+ scale.setBlank(zrUtil.eqNaN(min) || zrUtil.eqNaN(max) || scaleType === 'ordinal' && !scale.getOrdinalMeta().categories.length); // Evaluate if axis needs cross zero
100
121
 
101
122
  if (model.getNeedCrossZero()) {
102
123
  // Axis is over zero and min is not set
@@ -112,7 +133,7 @@ function getScaleExtent(scale, model) {
112
133
  // is base axis
113
134
  // FIXME
114
135
  // (1) Consider support value axis, where below zero and axis `onZero` should be handled properly.
115
- // (2) Refactor the logic with `barGrid`. Is it not need to `calBarWidthAndOffset` twice with different extent?
136
+ // (2) Refactor the logic with `barGrid`. Is it not need to `makeBarWidthAndOffsetInfo` twice with different extent?
116
137
  // Should not depend on series type `bar`?
117
138
  // (3) Fix that might overlap when using dataZoom.
118
139
  // (4) Consider other chart types using `barGrid`?
@@ -124,18 +145,17 @@ function getScaleExtent(scale, model) {
124
145
  if (ecModel && scaleType === 'time'
125
146
  /*|| scaleType === 'interval' */
126
147
  ) {
127
- var barSeriesModels = [];
148
+ var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);
128
149
  var isBaseAxisAndHasBarSeries;
129
- ecModel.eachSeriesByType('bar', function (seriesModel) {
130
- if (seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d') {
131
- barSeriesModels.push(seriesModel);
132
- isBaseAxisAndHasBarSeries |= seriesModel.getBaseAxis() === model.axis;
133
- }
150
+ zrUtil.each(barSeriesModels, function (seriesModel) {
151
+ isBaseAxisAndHasBarSeries |= seriesModel.getBaseAxis() === model.axis;
134
152
  });
135
153
 
136
154
  if (isBaseAxisAndHasBarSeries) {
137
- // Adjust axis min and max to account for overflow
138
- var adjustedScale = adjustScaleForOverflow(min, max, model, barSeriesModels);
155
+ // Calculate placement of bars on axis
156
+ var barWidthAndOffset = makeColumnLayout(barSeriesModels); // Adjust axis min and max to account for overflow
157
+
158
+ var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);
139
159
  min = adjustedScale.min;
140
160
  max = adjustedScale.max;
141
161
  }
@@ -144,15 +164,12 @@ function getScaleExtent(scale, model) {
144
164
  return [min, max];
145
165
  }
146
166
 
147
- function adjustScaleForOverflow(min, max, model, barSeriesModels) {
167
+ function adjustScaleForOverflow(min, max, model, barWidthAndOffset) {
148
168
  // Get Axis Length
149
169
  var axisExtent = model.axis.getExtent();
150
- var axisLength = axisExtent[1] - axisExtent[0]; // Calculate placement of bars on axis
151
-
152
- var barWidthAndOffset = calBarWidthAndOffset(barSeriesModels); // Get bars on current base axis and calculate min and max overflow
170
+ var axisLength = axisExtent[1] - axisExtent[0]; // Get bars on current base axis and calculate min and max overflow
153
171
 
154
- var baseAxisKey = model.axis.dim + model.axis.index;
155
- var barsOnCurrentAxis = barWidthAndOffset[baseAxisKey];
172
+ var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);
156
173
 
157
174
  if (barsOnCurrentAxis === undefined) {
158
175
  return {
@@ -251,98 +268,116 @@ function ifAxisCrossZero(axis) {
251
268
  return !(min > 0 && max > 0 || min < 0 && max < 0);
252
269
  }
253
270
  /**
254
- * @param {Array.<number>} tickCoords In axis self coordinate.
255
- * @param {Array.<string>} labels
256
- * @param {string} font
257
- * @param {number} axisRotate 0: towards right horizontally, clock-wise is negative.
258
- * @param {number} [labelRotate=0] 0: towards right horizontally, clock-wise is negative.
259
- * @return {number}
271
+ * @param {module:echarts/coord/Axis} axis
272
+ * @return {Function} Label formatter function.
273
+ * param: {number} tickValue,
274
+ * param: {number} idx, the index in all ticks.
275
+ * If category axis, this param is not requied.
276
+ * return: {string} label string.
260
277
  */
261
278
 
262
279
 
263
- function getAxisLabelInterval(tickCoords, labels, font, axisRotate, labelRotate) {
264
- var textSpaceTakenRect;
265
- var autoLabelInterval = 0;
266
- var accumulatedLabelInterval = 0;
267
- var rotation = (axisRotate - labelRotate) / 180 * Math.PI;
268
- var step = 1;
280
+ function makeLabelFormatter(axis) {
281
+ var labelFormatter = axis.getLabelModel().get('formatter');
282
+ var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;
269
283
 
270
- if (labels.length > 40) {
271
- // Simple optimization for large amount of labels
272
- step = Math.floor(labels.length / 40);
273
- }
274
-
275
- for (var i = 0; i < tickCoords.length; i += step) {
276
- var tickCoord = tickCoords[i]; // Not precise, do not consider align and vertical align
277
- // and each distance from axis line yet.
278
-
279
- var rect = textContain.getBoundingRect(labels[i], font, 'center', 'top');
280
- rect.x += tickCoord * Math.cos(rotation);
281
- rect.y += tickCoord * Math.sin(rotation); // Magic number
282
-
283
- rect.width *= 1.3;
284
- rect.height *= 1.3;
284
+ if (typeof labelFormatter === 'string') {
285
+ labelFormatter = function (tpl) {
286
+ return function (val) {
287
+ return tpl.replace('{value}', val != null ? val : '');
288
+ };
289
+ }(labelFormatter); // Consider empty array
285
290
 
286
- if (!textSpaceTakenRect) {
287
- textSpaceTakenRect = rect.clone();
288
- } // There is no space for current label;
289
- else if (textSpaceTakenRect.intersect(rect)) {
290
- accumulatedLabelInterval++;
291
- autoLabelInterval = Math.max(autoLabelInterval, accumulatedLabelInterval);
292
- } else {
293
- textSpaceTakenRect.union(rect); // Reset
294
291
 
295
- accumulatedLabelInterval = 0;
292
+ return labelFormatter;
293
+ } else if (typeof labelFormatter === 'function') {
294
+ return function (tickValue, idx) {
295
+ // The original intention of `idx` is "the index of the tick in all ticks".
296
+ // But the previous implementation of category axis do not consider the
297
+ // `axisLabel.interval`, which cause that, for example, the `interval` is
298
+ // `1`, then the ticks "name5", "name7", "name9" are displayed, where the
299
+ // corresponding `idx` are `0`, `2`, `4`, but not `0`, `1`, `2`. So we keep
300
+ // the definition here for back compatibility.
301
+ if (categoryTickStart != null) {
302
+ idx = tickValue - categoryTickStart;
296
303
  }
297
- }
298
304
 
299
- if (autoLabelInterval === 0 && step > 1) {
300
- return step;
305
+ return labelFormatter(getAxisRawValue(axis, tickValue), idx);
306
+ };
307
+ } else {
308
+ return function (tick) {
309
+ return axis.scale.getLabel(tick);
310
+ };
301
311
  }
312
+ }
302
313
 
303
- return (autoLabelInterval + 1) * step - 1;
314
+ function getAxisRawValue(axis, value) {
315
+ // In category axis with data zoom, tick is not the original
316
+ // index of axis.data. So tick should not be exposed to user
317
+ // in category axis.
318
+ return axis.type === 'category' ? axis.scale.getLabel(value) : value;
304
319
  }
305
320
  /**
306
- * @param {Object} axis
307
- * @param {Function} labelFormatter
308
- * @return {Array.<string>}
321
+ * @param {module:echarts/coord/Axis} axis
322
+ * @return {module:zrender/core/BoundingRect} Be null/undefined if no labels.
309
323
  */
310
324
 
311
325
 
312
- function getFormattedLabels(axis, labelFormatter) {
326
+ function estimateLabelUnionRect(axis) {
327
+ var axisModel = axis.model;
313
328
  var scale = axis.scale;
314
- var labels = scale.getTicksLabels();
315
- var ticks = scale.getTicks();
316
329
 
317
- if (typeof labelFormatter === 'string') {
318
- labelFormatter = function (tpl) {
319
- return function (val) {
320
- return tpl.replace('{value}', val != null ? val : '');
321
- };
322
- }(labelFormatter); // Consider empty array
330
+ if (!axisModel.get('axisLabel.show') || scale.isBlank()) {
331
+ return;
332
+ }
323
333
 
334
+ var isCategory = axis.type === 'category';
335
+ var realNumberScaleTicks;
336
+ var tickCount;
337
+ var categoryScaleExtent = scale.getExtent(); // Optimize for large category data, avoid call `getTicks()`.
324
338
 
325
- return zrUtil.map(labels, labelFormatter);
326
- } else if (typeof labelFormatter === 'function') {
327
- return zrUtil.map(ticks, function (tick, idx) {
328
- return labelFormatter(getAxisRawValue(axis, tick), idx);
329
- }, this);
339
+ if (isCategory) {
340
+ tickCount = scale.count();
330
341
  } else {
331
- return labels;
342
+ realNumberScaleTicks = scale.getTicks();
343
+ tickCount = realNumberScaleTicks.length;
332
344
  }
345
+
346
+ var axisLabelModel = axis.getLabelModel();
347
+ var labelFormatter = makeLabelFormatter(axis);
348
+ var rect;
349
+ var step = 1; // Simple optimization for large amount of labels
350
+
351
+ if (tickCount > 40) {
352
+ step = Math.ceil(tickCount / 40);
353
+ }
354
+
355
+ for (var i = 0; i < tickCount; i += step) {
356
+ var tickValue = realNumberScaleTicks ? realNumberScaleTicks[i] : categoryScaleExtent[0] + i;
357
+ var label = labelFormatter(tickValue);
358
+ var unrotatedSingleRect = axisLabelModel.getTextRect(label);
359
+ var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);
360
+ rect ? rect.union(singleRect) : rect = singleRect;
361
+ }
362
+
363
+ return rect;
333
364
  }
334
365
 
335
- function getAxisRawValue(axis, value) {
336
- // In category axis with data zoom, tick is not the original
337
- // index of axis.data. So tick should not be exposed to user
338
- // in category axis.
339
- return axis.type === 'category' ? axis.scale.getLabel(value) : value;
366
+ function rotateTextRect(textRect, rotate) {
367
+ var rotateRadians = rotate * Math.PI / 180;
368
+ var boundingBox = textRect.plain();
369
+ var beforeWidth = boundingBox.width;
370
+ var beforeHeight = boundingBox.height;
371
+ var afterWidth = beforeWidth * Math.cos(rotateRadians) + beforeHeight * Math.sin(rotateRadians);
372
+ var afterHeight = beforeWidth * Math.sin(rotateRadians) + beforeHeight * Math.cos(rotateRadians);
373
+ var rotatedRect = new BoundingRect(boundingBox.x, boundingBox.y, afterWidth, afterHeight);
374
+ return rotatedRect;
340
375
  }
341
376
 
342
377
  exports.getScaleExtent = getScaleExtent;
343
378
  exports.niceScaleExtent = niceScaleExtent;
344
379
  exports.createScaleByModel = createScaleByModel;
345
380
  exports.ifAxisCrossZero = ifAxisCrossZero;
346
- exports.getAxisLabelInterval = getAxisLabelInterval;
347
- exports.getFormattedLabels = getFormattedLabels;
348
- exports.getAxisRawValue = getAxisRawValue;
381
+ exports.makeLabelFormatter = makeLabelFormatter;
382
+ exports.getAxisRawValue = getAxisRawValue;
383
+ exports.estimateLabelUnionRect = estimateLabelUnionRect;
@@ -2,15 +2,25 @@ var zrUtil = require("zrender/lib/core/util");
2
2
 
3
3
  var axisHelper = require("./axisHelper");
4
4
 
5
+ /*
6
+ * Licensed to the Apache Software Foundation (ASF) under one
7
+ * or more contributor license agreements. See the NOTICE file
8
+ * distributed with this work for additional information
9
+ * regarding copyright ownership. The ASF licenses this file
10
+ * to you under the Apache License, Version 2.0 (the
11
+ * "License"); you may not use this file except in compliance
12
+ * with the License. You may obtain a copy of the License at
13
+ *
14
+ * http://www.apache.org/licenses/LICENSE-2.0
15
+ *
16
+ * Unless required by applicable law or agreed to in writing,
17
+ * software distributed under the License is distributed on an
18
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19
+ * KIND, either express or implied. See the License for the
20
+ * specific language governing permissions and limitations
21
+ * under the License.
22
+ */
5
23
  var _default = {
6
- /**
7
- * Format labels
8
- * @return {Array.<string>}
9
- */
10
- getFormattedLabels: function () {
11
- return axisHelper.getFormattedLabels(this.axis, this.get('axisLabel.formatter'));
12
- },
13
-
14
24
  /**
15
25
  * @param {boolean} origin
16
26
  * @return {number|string} min value or 'dataMin' or null/undefined (means auto) or NaN
@@ -11,6 +11,24 @@ var mergeLayoutParam = _layout.mergeLayoutParam;
11
11
 
12
12
  var OrdinalMeta = require("../data/OrdinalMeta");
13
13
 
14
+ /*
15
+ * Licensed to the Apache Software Foundation (ASF) under one
16
+ * or more contributor license agreements. See the NOTICE file
17
+ * distributed with this work for additional information
18
+ * regarding copyright ownership. The ASF licenses this file
19
+ * to you under the Apache License, Version 2.0 (the
20
+ * "License"); you may not use this file except in compliance
21
+ * with the License. You may obtain a copy of the License at
22
+ *
23
+ * http://www.apache.org/licenses/LICENSE-2.0
24
+ *
25
+ * Unless required by applicable law or agreed to in writing,
26
+ * software distributed under the License is distributed on an
27
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
28
+ * KIND, either express or implied. See the License for the
29
+ * specific language governing permissions and limitations
30
+ * under the License.
31
+ */
14
32
  // FIXME axisType is fixed ?
15
33
  var AXIS_TYPES = ['value', 'category', 'time', 'log'];
16
34
  /**
@@ -56,10 +74,15 @@ function _default(axisName, BaseAxisModelClass, axisTypeDefaulter, extraDefaultO
56
74
  * Should not be called before all of 'getInitailData' finished.
57
75
  * Because categories are collected during initializing data.
58
76
  */
59
- getCategories: function () {
60
- // FIXME
77
+ getCategories: function (rawData) {
78
+ var option = this.option; // FIXME
61
79
  // warning if called before all of 'getInitailData' finished.
62
- if (this.option.type === 'category') {
80
+
81
+ if (option.type === 'category') {
82
+ if (rawData) {
83
+ return option.data;
84
+ }
85
+
63
86
  return this.__ordinalMeta.categories;
64
87
  }
65
88
  },