echarts 4.4.0 → 4.6.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 (211) hide show
  1. package/.github/ISSUE_TEMPLATE.md +1 -1
  2. package/.github/workflows/nodejs.yml +31 -0
  3. package/CONTRIBUTING.md +2 -2
  4. package/README.md +6 -12
  5. package/dist/echarts-en.common.js +2354 -1029
  6. package/dist/echarts-en.common.min.js +1 -1
  7. package/dist/echarts-en.js +2727 -1138
  8. package/dist/echarts-en.js.map +1 -1
  9. package/dist/echarts-en.min.js +1 -1
  10. package/dist/echarts-en.simple.js +2028 -759
  11. package/dist/echarts-en.simple.min.js +1 -1
  12. package/dist/echarts.common.js +2354 -1029
  13. package/dist/echarts.common.min.js +1 -1
  14. package/dist/echarts.js +2727 -1138
  15. package/dist/echarts.js.map +1 -1
  16. package/dist/echarts.min.js +1 -1
  17. package/dist/echarts.simple.js +2028 -759
  18. package/dist/echarts.simple.min.js +1 -1
  19. package/dist/extension/dataTool.js +9 -0
  20. package/dist/extension/dataTool.js.map +1 -1
  21. package/echarts.all.js +1 -1
  22. package/lib/chart/bar/BarSeries.js +4 -1
  23. package/lib/chart/bar/BarView.js +20 -6
  24. package/lib/chart/bar/BaseBarSeries.js +5 -1
  25. package/lib/chart/candlestick/CandlestickSeries.js +1 -0
  26. package/lib/chart/candlestick/CandlestickView.js +42 -1
  27. package/lib/chart/custom.js +1 -0
  28. package/lib/chart/effectScatter/EffectScatterSeries.js +3 -1
  29. package/lib/chart/funnel/FunnelSeries.js +15 -5
  30. package/lib/chart/gauge/GaugeSeries.js +0 -9
  31. package/lib/chart/graph/GraphSeries.js +11 -4
  32. package/lib/chart/graph/GraphView.js +28 -8
  33. package/lib/chart/graph/forceHelper.js +8 -2
  34. package/lib/chart/graph/forceLayout.js +5 -2
  35. package/lib/chart/heatmap/HeatmapView.js +4 -4
  36. package/lib/chart/helper/Symbol.js +8 -0
  37. package/lib/chart/helper/createListFromArray.js +14 -8
  38. package/lib/chart/helper/whiskerBoxCommon.js +22 -16
  39. package/lib/chart/line/LineSeries.js +3 -1
  40. package/lib/chart/line/LineView.js +8 -2
  41. package/lib/chart/map/MapSeries.js +8 -1
  42. package/lib/chart/pie/PieSeries.js +27 -6
  43. package/lib/chart/pie/PieView.js +1 -1
  44. package/lib/chart/pie/labelLayout.js +102 -19
  45. package/lib/chart/pie/pieLayout.js +19 -7
  46. package/lib/chart/radar/RadarSeries.js +3 -3
  47. package/lib/chart/sankey/SankeyView.js +28 -9
  48. package/lib/chart/scatter/ScatterSeries.js +3 -1
  49. package/lib/chart/themeRiver/ThemeRiverSeries.js +3 -3
  50. package/lib/chart/tree/TreeSeries.js +15 -1
  51. package/lib/chart/tree/TreeView.js +4 -2
  52. package/lib/component/axis/AngleAxisView.js +97 -20
  53. package/lib/component/axis/AxisBuilder.js +63 -24
  54. package/lib/component/axis/CartesianAxisView.js +55 -11
  55. package/lib/component/axis/RadiusAxisView.js +36 -4
  56. package/lib/component/brush/BrushView.js +6 -0
  57. package/lib/component/brush/brushAction.js +5 -0
  58. package/lib/component/dataZoom/DataZoomModel.js +15 -1
  59. package/lib/component/dataZoom/SliderZoomView.js +4 -10
  60. package/lib/component/helper/BrushController.js +43 -25
  61. package/lib/component/legend/LegendModel.js +3 -3
  62. package/lib/component/legend/LegendView.js +17 -13
  63. package/lib/component/toolbox/ToolboxView.js +16 -7
  64. package/lib/component/toolbox/feature/MagicType.js +19 -14
  65. package/lib/coord/Axis.js +44 -12
  66. package/lib/coord/axisDefault.js +21 -2
  67. package/lib/coord/axisTickLabelBuilder.js +9 -1
  68. package/lib/coord/cartesian/Cartesian2D.js +0 -15
  69. package/lib/coord/geo/geoJSONLoader.js +1 -1
  70. package/lib/coord/polar/polarCreator.js +11 -2
  71. package/lib/coord/radar/Radar.js +3 -1
  72. package/lib/coord/radar/RadarModel.js +4 -1
  73. package/lib/data/DataDiffer.js +2 -4
  74. package/lib/data/DataDimensionInfo.js +157 -0
  75. package/lib/data/List.js +29 -23
  76. package/lib/data/Tree.js +2 -1
  77. package/lib/data/helper/completeDimensions.js +43 -32
  78. package/lib/data/helper/createDimensions.js +2 -0
  79. package/lib/data/helper/sourceHelper.js +214 -114
  80. package/lib/echarts.js +2 -2
  81. package/lib/layout/barGrid.js +136 -11
  82. package/lib/layout/barPolar.js +2 -2
  83. package/lib/model/Global.js +1 -1
  84. package/lib/model/Series.js +3 -3
  85. package/lib/model/referHelper.js +40 -12
  86. package/lib/scale/Interval.js +87 -2
  87. package/lib/scale/Log.js +9 -2
  88. package/lib/scale/helper.js +1 -43
  89. package/lib/theme/dark.js +3 -0
  90. package/lib/util/graphic.js +1 -2
  91. package/lib/util/number.js +25 -1
  92. package/lib/util/shape/sausage.js +93 -0
  93. package/lib/visual/LegendVisualProvider.js +75 -0
  94. package/lib/visual/dataColor.js +2 -12
  95. package/lib/visual/seriesColor.js +15 -7
  96. package/map/js/china.js +2 -2
  97. package/map/json/china.json +1 -1
  98. package/map/json/province/tianjin.json +1 -1
  99. package/package.json +3 -2
  100. package/src/chart/bar/BarSeries.js +5 -1
  101. package/src/chart/bar/BarView.js +24 -8
  102. package/src/chart/bar/BaseBarSeries.js +5 -1
  103. package/src/chart/candlestick/CandlestickSeries.js +2 -0
  104. package/src/chart/candlestick/CandlestickView.js +44 -1
  105. package/src/chart/custom.js +1 -0
  106. package/src/chart/effectScatter/EffectScatterSeries.js +1 -1
  107. package/src/chart/funnel/FunnelSeries.js +11 -4
  108. package/src/chart/gauge/GaugeSeries.js +0 -6
  109. package/src/chart/graph/GraphSeries.js +10 -3
  110. package/src/chart/graph/GraphView.js +26 -8
  111. package/src/chart/graph/forceHelper.js +7 -3
  112. package/src/chart/graph/forceLayout.js +6 -3
  113. package/src/chart/heatmap/HeatmapView.js +4 -4
  114. package/src/chart/helper/Symbol.js +9 -0
  115. package/src/chart/helper/createClipPathFromCoordSys.js +5 -1
  116. package/src/chart/helper/createGraphFromNodeEdge.js +1 -1
  117. package/src/chart/helper/createListFromArray.js +13 -8
  118. package/src/chart/helper/whiskerBoxCommon.js +21 -16
  119. package/src/chart/line/LineSeries.js +1 -1
  120. package/src/chart/line/LineView.js +6 -1
  121. package/src/chart/map/MapSeries.js +5 -1
  122. package/src/chart/pie/PieSeries.js +26 -5
  123. package/src/chart/pie/PieView.js +1 -1
  124. package/src/chart/pie/labelLayout.js +114 -22
  125. package/src/chart/pie/pieLayout.js +20 -7
  126. package/src/chart/radar/RadarSeries.js +5 -3
  127. package/src/chart/sankey/SankeyView.js +26 -9
  128. package/src/chart/scatter/ScatterSeries.js +1 -1
  129. package/src/chart/themeRiver/ThemeRiverSeries.js +4 -3
  130. package/src/chart/tree/TreeSeries.js +12 -1
  131. package/src/chart/tree/TreeView.js +5 -2
  132. package/src/component/axis/AngleAxisView.js +106 -19
  133. package/src/component/axis/AxisBuilder.js +78 -33
  134. package/src/component/axis/CartesianAxisView.js +58 -11
  135. package/src/component/axis/RadiusAxisView.js +37 -4
  136. package/src/component/brush/BrushView.js +6 -0
  137. package/src/component/brush/brushAction.js +6 -1
  138. package/src/component/dataZoom/DataZoomModel.js +15 -1
  139. package/src/component/dataZoom/SliderZoomView.js +4 -9
  140. package/src/component/helper/BrushController.js +50 -28
  141. package/src/component/legend/LegendModel.js +3 -3
  142. package/src/component/legend/LegendView.js +18 -12
  143. package/src/component/toolbox/ToolboxView.js +18 -5
  144. package/src/component/toolbox/feature/MagicType.js +18 -13
  145. package/src/coord/Axis.js +48 -13
  146. package/src/coord/axisDefault.js +25 -1
  147. package/src/coord/axisTickLabelBuilder.js +10 -0
  148. package/src/coord/cartesian/Cartesian2D.js +0 -13
  149. package/src/coord/geo/geoJSONLoader.js +2 -2
  150. package/src/coord/polar/polarCreator.js +16 -3
  151. package/src/coord/radar/Radar.js +3 -1
  152. package/src/coord/radar/RadarModel.js +5 -2
  153. package/src/data/DataDiffer.js +1 -4
  154. package/src/data/DataDimensionInfo.js +135 -0
  155. package/src/data/Graph.js +1 -1
  156. package/src/data/List.js +33 -20
  157. package/src/data/Tree.js +3 -1
  158. package/src/data/helper/completeDimensions.js +49 -30
  159. package/src/data/helper/createDimensions.js +2 -0
  160. package/src/data/helper/sourceHelper.js +216 -124
  161. package/src/echarts.js +2 -2
  162. package/src/layout/barGrid.js +136 -13
  163. package/src/layout/barPolar.js +3 -2
  164. package/src/model/Global.js +1 -1
  165. package/src/model/Series.js +3 -3
  166. package/src/model/referHelper.js +34 -11
  167. package/src/scale/Interval.js +84 -4
  168. package/src/scale/Log.js +9 -2
  169. package/src/scale/helper.js +1 -39
  170. package/src/theme/dark.js +3 -0
  171. package/src/util/graphic.js +1 -2
  172. package/src/util/number.js +22 -2
  173. package/src/util/shape/sausage.js +93 -0
  174. package/src/visual/LegendVisualProvider.js +55 -0
  175. package/src/visual/dataColor.js +0 -13
  176. package/src/visual/seriesColor.js +13 -7
  177. package/theme/azul.js +163 -0
  178. package/theme/bee-inspired.js +178 -0
  179. package/theme/blue.js +178 -0
  180. package/theme/caravan.js +178 -0
  181. package/theme/carp.js +163 -0
  182. package/theme/cool.js +180 -0
  183. package/theme/dark-blue.js +168 -0
  184. package/theme/dark-bold.js +168 -0
  185. package/theme/dark-digerati.js +168 -0
  186. package/theme/dark-fresh-cut.js +168 -0
  187. package/theme/dark-mushroom.js +168 -0
  188. package/theme/dark.js +69 -62
  189. package/theme/eduardo.js +178 -0
  190. package/theme/forest.js +163 -0
  191. package/theme/fresh-cut.js +163 -0
  192. package/theme/fruit.js +178 -0
  193. package/theme/gray.js +220 -0
  194. package/theme/green.js +222 -0
  195. package/theme/helianthus.js +263 -0
  196. package/theme/infographic.js +72 -57
  197. package/theme/inspired.js +163 -0
  198. package/theme/jazz.js +163 -0
  199. package/theme/london.js +163 -0
  200. package/theme/macarons.js +80 -57
  201. package/theme/macarons2.js +251 -0
  202. package/theme/mint.js +155 -0
  203. package/theme/red-velvet.js +163 -0
  204. package/theme/red.js +225 -0
  205. package/theme/roma.js +55 -22
  206. package/theme/royal.js +163 -0
  207. package/theme/sakura.js +140 -0
  208. package/theme/shine.js +52 -45
  209. package/theme/tech-blue.js +180 -0
  210. package/theme/vintage.js +37 -23
  211. package/.travis.yml +0 -16
@@ -36,6 +36,8 @@ var encodeHTML = _format.encodeHTML;
36
36
 
37
37
  var createGraphFromNodeEdge = require("../helper/createGraphFromNodeEdge");
38
38
 
39
+ var LegendVisualProvider = require("../../visual/LegendVisualProvider");
40
+
39
41
  /*
40
42
  * Licensed to the Apache Software Foundation (ASF) under one
41
43
  * or more contributor license agreements. See the NOTICE file
@@ -57,12 +59,15 @@ var createGraphFromNodeEdge = require("../helper/createGraphFromNodeEdge");
57
59
  var GraphSeries = echarts.extendSeriesModel({
58
60
  type: 'series.graph',
59
61
  init: function (option) {
60
- GraphSeries.superApply(this, 'init', arguments); // Provide data for legend select
62
+ GraphSeries.superApply(this, 'init', arguments);
63
+ var self = this;
64
+
65
+ function getCategoriesData() {
66
+ return self._categoriesData;
67
+ } // Provide data for legend select
61
68
 
62
- this.legendDataProvider = function () {
63
- return this._categoriesData;
64
- };
65
69
 
70
+ this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);
66
71
  this.fillDataTextStyle(option.edges || option.links);
67
72
 
68
73
  this._updateCategoriesData();
@@ -216,6 +221,8 @@ var GraphSeries = echarts.extendSeriesModel({
216
221
  // Node repulsion. Can be an array to represent range.
217
222
  repulsion: [0, 50],
218
223
  gravity: 0.1,
224
+ // Initial friction
225
+ friction: 0.6,
219
226
  // Edge length. Can be an array to represent range.
220
227
  edgeLength: 30,
221
228
  layoutAnimation: true
@@ -122,6 +122,7 @@ var _default = echarts.extendChartView({
122
122
  this._firstRender = true;
123
123
  },
124
124
  render: function (seriesModel, ecModel, api) {
125
+ var graphView = this;
125
126
  var coordSys = seriesModel.coordinateSystem;
126
127
  this._model = seriesModel;
127
128
  var symbolDraw = this._symbolDraw;
@@ -188,6 +189,8 @@ var _default = echarts.extendChartView({
188
189
 
189
190
  if (itemModel.get('focusNodeAdjacency')) {
190
191
  el.on('mouseover', el[FOCUS_ADJACENCY] = function () {
192
+ graphView._clearTimer();
193
+
191
194
  api.dispatchAction({
192
195
  type: 'focusNodeAdjacency',
193
196
  seriesId: seriesModel.id,
@@ -195,10 +198,7 @@ var _default = echarts.extendChartView({
195
198
  });
196
199
  });
197
200
  el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () {
198
- api.dispatchAction({
199
- type: 'unfocusNodeAdjacency',
200
- seriesId: seriesModel.id
201
- });
201
+ graphView._dispatchUnfocus(api);
202
202
  });
203
203
  }
204
204
  }, this);
@@ -209,6 +209,8 @@ var _default = echarts.extendChartView({
209
209
 
210
210
  if (edge.getModel().get('focusNodeAdjacency')) {
211
211
  el.on('mouseover', el[FOCUS_ADJACENCY] = function () {
212
+ graphView._clearTimer();
213
+
212
214
  api.dispatchAction({
213
215
  type: 'focusNodeAdjacency',
214
216
  seriesId: seriesModel.id,
@@ -216,10 +218,7 @@ var _default = echarts.extendChartView({
216
218
  });
217
219
  });
218
220
  el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () {
219
- api.dispatchAction({
220
- type: 'unfocusNodeAdjacency',
221
- seriesId: seriesModel.id
222
- });
221
+ graphView._dispatchUnfocus(api);
223
222
  });
224
223
  }
225
224
  });
@@ -264,6 +263,27 @@ var _default = echarts.extendChartView({
264
263
  dispose: function () {
265
264
  this._controller && this._controller.dispose();
266
265
  this._controllerHost = {};
266
+
267
+ this._clearTimer();
268
+ },
269
+ _dispatchUnfocus: function (api, opt) {
270
+ var self = this;
271
+
272
+ this._clearTimer();
273
+
274
+ this._unfocusDelayTimer = setTimeout(function () {
275
+ self._unfocusDelayTimer = null;
276
+ api.dispatchAction({
277
+ type: 'unfocusNodeAdjacency',
278
+ seriesId: self._model.id
279
+ });
280
+ }, 500);
281
+ },
282
+ _clearTimer: function () {
283
+ if (this._unfocusDelayTimer) {
284
+ clearTimeout(this._unfocusDelayTimer);
285
+ this._unfocusDelayTimer = null;
286
+ }
267
287
  },
268
288
  focusNodeAdjacency: function (seriesModel, ecModel, api, payload) {
269
289
  var data = this._model.getData();
@@ -83,10 +83,11 @@ function forceLayout(nodes, edges, opts) {
83
83
  // var k2 = k * k;
84
84
 
85
85
 
86
- var friction = 0.6;
86
+ var initialFriction = opts.friction == null ? 0.6 : opts.friction;
87
+ var friction = initialFriction;
87
88
  return {
88
89
  warmUp: function () {
89
- friction = 0.5;
90
+ friction = initialFriction * 0.8;
90
91
  },
91
92
  setFixed: function (idx) {
92
93
  nodes[idx].fixed = true;
@@ -107,6 +108,11 @@ function forceLayout(nodes, edges, opts) {
107
108
 
108
109
  for (var i = 0; i < edges.length; i++) {
109
110
  var e = edges[i];
111
+
112
+ if (e.ignoreForceLayout) {
113
+ continue;
114
+ }
115
+
110
116
  var n1 = e.n1;
111
117
  var n2 = e.n2;
112
118
  vec2.sub(v12, n2.p, n1.p);
@@ -122,18 +122,21 @@ function _default(ecModel) {
122
122
  d = (edgeLength[0] + edgeLength[1]) / 2;
123
123
  }
124
124
 
125
+ var edgeModel = edge.getModel();
125
126
  return {
126
127
  n1: nodes[edge.node1.dataIndex],
127
128
  n2: nodes[edge.node2.dataIndex],
128
129
  d: d,
129
- curveness: edge.getModel().get('lineStyle.curveness') || 0
130
+ curveness: edgeModel.get('lineStyle.curveness') || 0,
131
+ ignoreForceLayout: edgeModel.get('ignoreForceLayout')
130
132
  };
131
133
  });
132
134
  var coordSys = graphSeries.coordinateSystem;
133
135
  var rect = coordSys.getBoundingRect();
134
136
  var forceInstance = forceLayout(nodes, edges, {
135
137
  rect: rect,
136
- gravity: forceModel.get('gravity')
138
+ gravity: forceModel.get('gravity'),
139
+ friction: forceModel.get('friction')
137
140
  });
138
141
  var oldStep = forceInstance.step;
139
142
 
@@ -166,10 +166,10 @@ var _default = echarts.extendChartView({
166
166
  var point = coordSys.dataToPoint([data.get(dataDims[0], idx), data.get(dataDims[1], idx)]);
167
167
  rect = new graphic.Rect({
168
168
  shape: {
169
- x: point[0] - width / 2,
170
- y: point[1] - height / 2,
171
- width: width,
172
- height: height
169
+ x: Math.floor(point[0] - width / 2),
170
+ y: Math.floor(point[1] - height / 2),
171
+ width: Math.ceil(width),
172
+ height: Math.ceil(height)
173
173
  },
174
174
  style: {
175
175
  fill: data.getItemVisual(idx, 'color'),
@@ -255,6 +255,14 @@ symbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {
255
255
  symbolPath.useStyle({
256
256
  strokeNoScale: true
257
257
  });
258
+ } else {
259
+ symbolPath.setStyle({
260
+ opacity: null,
261
+ shadowBlur: null,
262
+ shadowOffsetX: null,
263
+ shadowOffsetY: null,
264
+ shadowColor: null
265
+ });
258
266
  }
259
267
 
260
268
  var itemStyle = seriesScope && seriesScope.itemStyle;
@@ -40,7 +40,7 @@ var CoordinateSystem = require("../../CoordinateSystem");
40
40
 
41
41
  var _referHelper = require("../../model/referHelper");
42
42
 
43
- var getCoordSysDefineBySeries = _referHelper.getCoordSysDefineBySeries;
43
+ var getCoordSysInfoBySeries = _referHelper.getCoordSysInfoBySeries;
44
44
 
45
45
  var Source = require("../../data/Source");
46
46
 
@@ -48,6 +48,10 @@ var _dataStackHelper = require("../../data/helper/dataStackHelper");
48
48
 
49
49
  var enableDataStack = _dataStackHelper.enableDataStack;
50
50
 
51
+ var _sourceHelper = require("../../data/helper/sourceHelper");
52
+
53
+ var makeSeriesEncodeForAxisCoordSys = _sourceHelper.makeSeriesEncodeForAxisCoordSys;
54
+
51
55
  /*
52
56
  * Licensed to the Apache Software Foundation (ASF) under one
53
57
  * or more contributor license agreements. See the NOTICE file
@@ -72,6 +76,7 @@ var enableDataStack = _dataStackHelper.enableDataStack;
72
76
  * @param {module:echarts/model/Series} seriesModel
73
77
  * @param {Object} [opt]
74
78
  * @param {string} [opt.generateCoord]
79
+ * @param {boolean} [opt.useEncodeDefaulter]
75
80
  */
76
81
  function createListFromArray(source, seriesModel, opt) {
77
82
  opt = opt || {};
@@ -82,15 +87,15 @@ function createListFromArray(source, seriesModel, opt) {
82
87
 
83
88
  var coordSysName = seriesModel.get('coordinateSystem');
84
89
  var registeredCoordSys = CoordinateSystem.get(coordSysName);
85
- var coordSysDefine = getCoordSysDefineBySeries(seriesModel);
90
+ var coordSysInfo = getCoordSysInfoBySeries(seriesModel);
86
91
  var coordSysDimDefs;
87
92
 
88
- if (coordSysDefine) {
89
- coordSysDimDefs = zrUtil.map(coordSysDefine.coordSysDims, function (dim) {
93
+ if (coordSysInfo) {
94
+ coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {
90
95
  var dimInfo = {
91
96
  name: dim
92
97
  };
93
- var axisModel = coordSysDefine.axisMap.get(dim);
98
+ var axisModel = coordSysInfo.axisMap.get(dim);
94
99
 
95
100
  if (axisModel) {
96
101
  var axisType = axisModel.get('type');
@@ -108,13 +113,14 @@ function createListFromArray(source, seriesModel, opt) {
108
113
 
109
114
  var dimInfoList = createDimensions(source, {
110
115
  coordDimensions: coordSysDimDefs,
111
- generateCoord: opt.generateCoord
116
+ generateCoord: opt.generateCoord,
117
+ encodeDefaulter: opt.useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null
112
118
  });
113
119
  var firstCategoryDimIndex;
114
120
  var hasNameEncode;
115
- coordSysDefine && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {
121
+ coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {
116
122
  var coordDim = dimInfo.coordDim;
117
- var categoryAxisModel = coordSysDefine.categoryAxisMap.get(coordDim);
123
+ var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);
118
124
 
119
125
  if (categoryAxisModel) {
120
126
  if (firstCategoryDimIndex == null) {
@@ -26,6 +26,10 @@ var _dimensionHelper = require("../../data/helper/dimensionHelper");
26
26
 
27
27
  var getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis;
28
28
 
29
+ var _sourceHelper = require("../../data/helper/sourceHelper");
30
+
31
+ var makeSeriesEncodeForAxisCoordSys = _sourceHelper.makeSeriesEncodeForAxisCoordSys;
32
+
29
33
  /*
30
34
  * Licensed to the Apache Software Foundation (ASF) under one
31
35
  * or more contributor license agreements. See the NOTICE file
@@ -64,7 +68,7 @@ var seriesModelMixin = {
64
68
  var xAxisType = xAxisModel.get('type');
65
69
  var yAxisType = yAxisModel.get('type');
66
70
  var addOrdinal; // FIXME
67
- // 考虑时间轴
71
+ // Consider time axis.
68
72
 
69
73
  if (xAxisType === 'category') {
70
74
  option.layout = 'horizontal';
@@ -109,22 +113,24 @@ var seriesModelMixin = {
109
113
  }
110
114
 
111
115
  var defaultValueDimensions = this.defaultValueDimensions;
116
+ var coordDimensions = [{
117
+ name: baseAxisDim,
118
+ type: getDimensionTypeByAxis(baseAxisType),
119
+ ordinalMeta: ordinalMeta,
120
+ otherDims: {
121
+ tooltip: false,
122
+ itemName: 0
123
+ },
124
+ dimsDef: ['base']
125
+ }, {
126
+ name: otherAxisDim,
127
+ type: getDimensionTypeByAxis(otherAxisType),
128
+ dimsDef: defaultValueDimensions.slice()
129
+ }];
112
130
  return createListSimply(this, {
113
- coordDimensions: [{
114
- name: baseAxisDim,
115
- type: getDimensionTypeByAxis(baseAxisType),
116
- ordinalMeta: ordinalMeta,
117
- otherDims: {
118
- tooltip: false,
119
- itemName: 0
120
- },
121
- dimsDef: ['base']
122
- }, {
123
- name: otherAxisDim,
124
- type: getDimensionTypeByAxis(otherAxisType),
125
- dimsDef: defaultValueDimensions.slice()
126
- }],
127
- dimensionsCount: defaultValueDimensions.length + 1
131
+ coordDimensions: coordDimensions,
132
+ dimensionsCount: defaultValueDimensions.length + 1,
133
+ encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)
128
134
  });
129
135
  },
130
136
 
@@ -48,7 +48,9 @@ var _default = SeriesModel.extend({
48
48
  type: 'series.line',
49
49
  dependencies: ['grid', 'polar'],
50
50
  getInitialData: function (option, ecModel) {
51
- return createListFromArray(this.getSource(), this);
51
+ return createListFromArray(this.getSource(), this, {
52
+ useEncodeDefaulter: true
53
+ });
52
54
  },
53
55
  defaultOption: {
54
56
  zlevel: 0,
@@ -368,7 +368,7 @@ var _default = ChartView.extend({
368
368
  var step = !isCoordSysPolar && seriesModel.get('step');
369
369
  var clipShapeForSymbol;
370
370
 
371
- if (coordSys && coordSys.getArea) {
371
+ if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {
372
372
  clipShapeForSymbol = coordSys.getArea(); // Avoid float number rounding error for symbol on the edge of axis extent.
373
373
  // See #7913 and `test/dataZoom-clip.html`.
374
374
 
@@ -381,8 +381,9 @@ var _default = ChartView.extend({
381
381
  clipShapeForSymbol.r0 -= 0.5;
382
382
  clipShapeForSymbol.r1 += 0.5;
383
383
  }
384
- } // Initialization animation or coordinate system changed
384
+ }
385
385
 
386
+ this._clipShapeForSymbol = clipShapeForSymbol; // Initialization animation or coordinate system changed
386
387
 
387
388
  if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {
388
389
  showSymbol && symbolDraw.updateData(data, {
@@ -509,6 +510,11 @@ var _default = ChartView.extend({
509
510
  if (!pt) {
510
511
  // Null data
511
512
  return;
513
+ } // fix #11360: should't draw symbol outside clipShapeForSymbol
514
+
515
+
516
+ if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(pt[0], pt[1])) {
517
+ return;
512
518
  }
513
519
 
514
520
  symbol = new SymbolClz(data, dataIndex);
@@ -37,6 +37,10 @@ var retrieveRawAttr = _dataProvider.retrieveRawAttr;
37
37
 
38
38
  var geoSourceManager = require("../../coord/geo/geoSourceManager");
39
39
 
40
+ var _sourceHelper = require("../../data/helper/sourceHelper");
41
+
42
+ var makeSeriesEncodeForNameBased = _sourceHelper.makeSeriesEncodeForNameBased;
43
+
40
44
  /*
41
45
  * Licensed to the Apache Software Foundation (ASF) under one
42
46
  * or more contributor license agreements. See the NOTICE file
@@ -72,7 +76,10 @@ var MapSeries = SeriesModel.extend({
72
76
  */
73
77
  seriesGroup: [],
74
78
  getInitialData: function (option) {
75
- var data = createListSimply(this, ['value']);
79
+ var data = createListSimply(this, {
80
+ coordDimensions: ['value'],
81
+ encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)
82
+ });
76
83
  var valueDim = data.mapDimension('value');
77
84
  var dataNameMap = zrUtil.createHashMap();
78
85
  var selectTargetList = [];
@@ -36,6 +36,12 @@ var _dataProvider = require("../../data/helper/dataProvider");
36
36
 
37
37
  var retrieveRawAttr = _dataProvider.retrieveRawAttr;
38
38
 
39
+ var _sourceHelper = require("../../data/helper/sourceHelper");
40
+
41
+ var makeSeriesEncodeForNameBased = _sourceHelper.makeSeriesEncodeForNameBased;
42
+
43
+ var LegendVisualProvider = require("../../visual/LegendVisualProvider");
44
+
39
45
  /*
40
46
  * Licensed to the Apache Software Foundation (ASF) under one
41
47
  * or more contributor license agreements. See the NOTICE file
@@ -61,10 +67,7 @@ var PieSeries = echarts.extendSeriesModel({
61
67
  PieSeries.superApply(this, 'init', arguments); // Enable legend selection for each data item
62
68
  // Use a function instead of direct access because data reference may changed
63
69
 
64
- this.legendDataProvider = function () {
65
- return this.getRawData();
66
- };
67
-
70
+ this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));
68
71
  this.updateSelectedMap(this._createSelectableList());
69
72
 
70
73
  this._defaultLabelLine(option);
@@ -75,7 +78,10 @@ var PieSeries = echarts.extendSeriesModel({
75
78
  this.updateSelectedMap(this._createSelectableList());
76
79
  },
77
80
  getInitialData: function (option, ecModel) {
78
- return createListSimply(this, ['value']);
81
+ return createListSimply(this, {
82
+ coordDimensions: ['value'],
83
+ encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)
84
+ });
79
85
  },
80
86
  _createSelectableList: function () {
81
87
  var data = this.getRawData();
@@ -144,12 +150,27 @@ var PieSeries = echarts.extendSeriesModel({
144
150
  // If still show when all data zero.
145
151
  stillShowZeroSum: true,
146
152
  // cursor: null,
153
+ left: 0,
154
+ top: 0,
155
+ right: 0,
156
+ bottom: 0,
157
+ width: null,
158
+ height: null,
147
159
  label: {
148
160
  // If rotate around circle
149
161
  rotate: false,
150
162
  show: true,
151
163
  // 'outer', 'inside', 'center'
152
- position: 'outer' // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调
164
+ position: 'outer',
165
+ // 'none', 'labelLine', 'edge'. Works only when position is 'outer'
166
+ alignTo: 'none',
167
+ // Closest distance between label and chart edge.
168
+ // Works only position is 'outer' and alignTo is 'edge'.
169
+ margin: '25%',
170
+ // Works only position is 'outer' and alignTo is not 'edge'.
171
+ bleedMargin: 10,
172
+ // Distance between text and label line.
173
+ distanceToLabelLine: 5 // formatter: 标签文本格式器,同Tooltip.formatter,不支持异步回调
153
174
  // 默认使用全局文本样式,详见TEXTSTYLE
154
175
  // distance: 当position为inner时有效,为label位置到圆心的距离与圆半径(环状图为内外半径和)的比例系数
155
176
 
@@ -242,7 +242,7 @@ piePieceProto._updateLabel = function (data, idx, withAnimation) {
242
242
  graphic.setLabelStyle(labelText.style, labelText.hoverStyle = {}, labelModel, labelHoverModel, {
243
243
  labelFetcher: data.hostModel,
244
244
  labelDataIndex: idx,
245
- defaultText: data.getName(idx),
245
+ defaultText: labelLayout.text,
246
246
  autoColor: visualColor,
247
247
  useInsideStyle: !!labelLayout.inside
248
248
  }, {