echarts 3.5.4 → 3.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 (190) hide show
  1. package/LICENSE +21 -18
  2. package/dist/echarts.common.js +10072 -9330
  3. package/dist/echarts.common.min.js +13 -13
  4. package/dist/echarts.js +13084 -11412
  5. package/dist/echarts.min.js +22 -21
  6. package/dist/echarts.simple.js +9454 -8889
  7. package/dist/echarts.simple.min.js +9 -10
  8. package/index.js +1 -0
  9. package/lib/chart/bar/BarView.js +141 -49
  10. package/lib/chart/bar/BaseBarSeries.js +2 -6
  11. package/lib/chart/bar.js +1 -0
  12. package/lib/chart/boxplot/BoxplotSeries.js +1 -1
  13. package/lib/chart/boxplot/boxplotLayout.js +23 -7
  14. package/lib/chart/candlestick/CandlestickSeries.js +1 -21
  15. package/lib/chart/candlestick/candlestickLayout.js +23 -7
  16. package/lib/chart/custom.js +442 -0
  17. package/lib/chart/graph/categoryVisual.js +3 -2
  18. package/lib/chart/heatmap/HeatmapView.js +75 -73
  19. package/lib/chart/helper/Symbol.js +8 -31
  20. package/lib/chart/helper/createListFromArray.js +15 -10
  21. package/lib/chart/helper/labelHelper.js +48 -0
  22. package/lib/chart/helper/whiskerBoxCommon.js +25 -44
  23. package/lib/chart/map/mapDataStatistic.js +9 -8
  24. package/lib/chart/pie/pieLayout.js +25 -17
  25. package/lib/chart/radar/RadarSeries.js +1 -1
  26. package/lib/chart/scatter/ScatterSeries.js +2 -3
  27. package/lib/chart/themeRiver/ThemeRiverSeries.js +6 -5
  28. package/lib/chart/themeRiver/themeRiverVisual.js +1 -1
  29. package/lib/chart/treemap/TreemapSeries.js +3 -3
  30. package/lib/component/axisPointer/BaseAxisPointer.js +7 -6
  31. package/lib/component/axisPointer/axisTrigger.js +62 -51
  32. package/lib/component/axisPointer.js +1 -2
  33. package/lib/component/calendar/CalendarView.js +5 -5
  34. package/lib/component/dataZoom/AxisProxy.js +76 -13
  35. package/lib/component/dataZoom/DataZoomModel.js +21 -5
  36. package/lib/component/dataZoom/InsideZoomModel.js +4 -1
  37. package/lib/component/dataZoom/InsideZoomView.js +16 -26
  38. package/lib/component/dataZoom/SliderZoomView.js +63 -26
  39. package/lib/component/dataZoom/roams.js +8 -3
  40. package/lib/component/graphic.js +13 -12
  41. package/lib/component/helper/BrushTargetManager.js +5 -5
  42. package/lib/component/helper/MapDraw.js +3 -3
  43. package/lib/component/helper/RoamController.js +43 -20
  44. package/lib/component/helper/brushHelper.js +2 -13
  45. package/lib/component/helper/selectableMixin.js +7 -7
  46. package/lib/component/helper/sliderMove.js +65 -36
  47. package/lib/component/legend/LegendView.js +6 -6
  48. package/lib/component/legend/legendAction.js +1 -1
  49. package/lib/component/marker/MarkAreaView.js +3 -6
  50. package/lib/component/marker/MarkLineView.js +3 -5
  51. package/lib/component/marker/MarkPointView.js +3 -5
  52. package/lib/component/marker/MarkerView.js +10 -12
  53. package/lib/component/polar.js +5 -0
  54. package/lib/component/timeline/SliderTimelineView.js +1 -1
  55. package/lib/component/toolbox/feature/DataZoom.js +14 -1
  56. package/lib/component/tooltip/TooltipView.js +3 -3
  57. package/lib/component/visualMap/ContinuousView.js +6 -4
  58. package/lib/coord/Axis.js +34 -2
  59. package/lib/coord/axisDefault.js +2 -1
  60. package/lib/coord/axisHelper.js +6 -25
  61. package/lib/coord/axisModelCommonMixin.js +1 -1
  62. package/lib/coord/calendar/Calendar.js +14 -17
  63. package/lib/coord/calendar/prepareCustom.js +31 -0
  64. package/lib/coord/cartesian/Axis2D.js +0 -12
  65. package/lib/coord/cartesian/Cartesian2D.js +1 -0
  66. package/lib/coord/cartesian/Grid.js +5 -2
  67. package/lib/coord/cartesian/prepareCustom.js +36 -0
  68. package/lib/coord/geo/Geo.js +9 -14
  69. package/lib/coord/geo/GeoModel.js +5 -5
  70. package/lib/coord/geo/geoCreator.js +3 -3
  71. package/lib/coord/geo/prepareCustom.js +36 -0
  72. package/lib/coord/parallel/Parallel.js +12 -11
  73. package/lib/coord/polar/Polar.js +2 -1
  74. package/lib/coord/polar/prepareCustom.js +53 -0
  75. package/lib/coord/single/Single.js +9 -8
  76. package/lib/coord/single/SingleAxis.js +0 -27
  77. package/lib/coord/single/prepareCustom.js +33 -0
  78. package/lib/data/DataDiffer.js +2 -1
  79. package/lib/data/Graph.js +11 -7
  80. package/lib/data/List.js +58 -19
  81. package/lib/data/helper/completeDimensions.js +184 -23
  82. package/lib/echarts.js +38 -33
  83. package/lib/helper.js +1 -8
  84. package/lib/layout/barGrid.js +87 -18
  85. package/lib/layout/barPolar.js +286 -0
  86. package/lib/layout/points.js +22 -16
  87. package/lib/model/Global.js +34 -31
  88. package/lib/model/Series.js +41 -29
  89. package/lib/model/mixin/colorPalette.js +2 -1
  90. package/lib/model/mixin/textStyle.js +7 -13
  91. package/lib/scale/Interval.js +21 -14
  92. package/lib/scale/Log.js +5 -7
  93. package/lib/scale/Time.js +13 -7
  94. package/lib/scale/helper.js +5 -1
  95. package/lib/util/format.js +12 -0
  96. package/lib/util/graphic.js +53 -1
  97. package/lib/util/model.js +63 -7
  98. package/map/js/world.js +1 -1
  99. package/map/json/world.json +1 -1
  100. package/package.json +3 -3
  101. package/src/chart/bar/BarView.js +141 -49
  102. package/src/chart/bar/BaseBarSeries.js +2 -6
  103. package/src/chart/bar.js +1 -0
  104. package/src/chart/boxplot/BoxplotSeries.js +1 -1
  105. package/src/chart/boxplot/boxplotLayout.js +23 -7
  106. package/src/chart/candlestick/CandlestickSeries.js +1 -21
  107. package/src/chart/candlestick/candlestickLayout.js +23 -7
  108. package/src/chart/custom.js +442 -0
  109. package/src/chart/graph/categoryVisual.js +3 -2
  110. package/src/chart/heatmap/HeatmapView.js +75 -73
  111. package/src/chart/helper/Symbol.js +8 -31
  112. package/src/chart/helper/createListFromArray.js +15 -10
  113. package/src/chart/helper/labelHelper.js +49 -0
  114. package/src/chart/helper/whiskerBoxCommon.js +25 -44
  115. package/src/chart/map/mapDataStatistic.js +9 -8
  116. package/src/chart/pie/pieLayout.js +25 -17
  117. package/src/chart/radar/RadarSeries.js +1 -1
  118. package/src/chart/scatter/ScatterSeries.js +2 -3
  119. package/src/chart/themeRiver/ThemeRiverSeries.js +6 -5
  120. package/src/chart/themeRiver/themeRiverVisual.js +1 -1
  121. package/src/chart/treemap/TreemapSeries.js +3 -3
  122. package/src/component/axisPointer/BaseAxisPointer.js +7 -6
  123. package/src/component/axisPointer/axisTrigger.js +62 -51
  124. package/src/component/axisPointer.js +1 -2
  125. package/src/component/calendar/CalendarView.js +5 -5
  126. package/src/component/dataZoom/AxisProxy.js +76 -13
  127. package/src/component/dataZoom/DataZoomModel.js +21 -5
  128. package/src/component/dataZoom/InsideZoomModel.js +4 -1
  129. package/src/component/dataZoom/InsideZoomView.js +16 -26
  130. package/src/component/dataZoom/SliderZoomView.js +63 -26
  131. package/src/component/dataZoom/roams.js +8 -3
  132. package/src/component/graphic.js +13 -12
  133. package/src/component/helper/BrushTargetManager.js +5 -5
  134. package/src/component/helper/MapDraw.js +3 -3
  135. package/src/component/helper/RoamController.js +43 -20
  136. package/src/component/helper/brushHelper.js +2 -13
  137. package/src/component/helper/selectableMixin.js +7 -7
  138. package/src/component/helper/sliderMove.js +65 -36
  139. package/src/component/legend/LegendView.js +6 -6
  140. package/src/component/legend/legendAction.js +1 -1
  141. package/src/component/marker/MarkAreaView.js +3 -6
  142. package/src/component/marker/MarkLineView.js +3 -5
  143. package/src/component/marker/MarkPointView.js +3 -5
  144. package/src/component/marker/MarkerView.js +10 -12
  145. package/src/component/polar.js +5 -0
  146. package/src/component/timeline/SliderTimelineView.js +1 -1
  147. package/src/component/toolbox/feature/DataZoom.js +14 -1
  148. package/src/component/tooltip/TooltipView.js +3 -3
  149. package/src/component/visualMap/ContinuousView.js +6 -4
  150. package/src/coord/Axis.js +34 -2
  151. package/src/coord/axisDefault.js +2 -1
  152. package/src/coord/axisHelper.js +6 -25
  153. package/src/coord/axisModelCommonMixin.js +1 -1
  154. package/src/coord/calendar/Calendar.js +14 -17
  155. package/src/coord/calendar/prepareCustom.js +32 -0
  156. package/src/coord/cartesian/Axis2D.js +0 -12
  157. package/src/coord/cartesian/Cartesian2D.js +1 -0
  158. package/src/coord/cartesian/Grid.js +5 -2
  159. package/src/coord/cartesian/prepareCustom.js +37 -0
  160. package/src/coord/geo/Geo.js +9 -14
  161. package/src/coord/geo/GeoModel.js +5 -5
  162. package/src/coord/geo/geoCreator.js +3 -3
  163. package/src/coord/geo/prepareCustom.js +37 -0
  164. package/src/coord/parallel/Parallel.js +12 -11
  165. package/src/coord/polar/Polar.js +2 -1
  166. package/src/coord/polar/prepareCustom.js +54 -0
  167. package/src/coord/single/Single.js +9 -8
  168. package/src/coord/single/SingleAxis.js +0 -27
  169. package/src/coord/single/prepareCustom.js +34 -0
  170. package/src/data/DataDiffer.js +2 -1
  171. package/src/data/Graph.js +11 -7
  172. package/src/data/List.js +58 -19
  173. package/src/data/helper/completeDimensions.js +184 -23
  174. package/src/echarts.js +38 -33
  175. package/src/helper.js +1 -8
  176. package/src/layout/barGrid.js +87 -18
  177. package/src/layout/barPolar.js +287 -0
  178. package/src/layout/points.js +22 -16
  179. package/src/model/Global.js +34 -31
  180. package/src/model/Series.js +41 -29
  181. package/src/model/mixin/colorPalette.js +2 -1
  182. package/src/model/mixin/textStyle.js +7 -13
  183. package/src/scale/Interval.js +21 -14
  184. package/src/scale/Log.js +5 -7
  185. package/src/scale/Time.js +13 -7
  186. package/src/scale/helper.js +5 -1
  187. package/src/util/format.js +12 -0
  188. package/src/util/graphic.js +53 -1
  189. package/src/util/model.js +63 -7
  190. package/src/coord/cartesian/axisLabelInterval.js +0 -26
@@ -36,7 +36,7 @@
36
36
  */
37
37
  this.map = map;
38
38
 
39
- this._nameCoordMap = {};
39
+ this._nameCoordMap = zrUtil.createHashMap();
40
40
 
41
41
  this.loadGeoJson(geoJson, specialAreas, nameMap);
42
42
  }
@@ -85,14 +85,14 @@
85
85
  specialAreas = specialAreas || {};
86
86
  nameMap = nameMap || {};
87
87
  var regions = this.regions;
88
- var regionsMap = {};
88
+ var regionsMap = zrUtil.createHashMap();
89
89
  for (var i = 0; i < regions.length; i++) {
90
90
  var regionName = regions[i].name;
91
91
  // Try use the alias in nameMap
92
- regionName = nameMap[regionName] || regionName;
92
+ regionName = nameMap.hasOwnProperty(regionName) ? nameMap[regionName] : regionName;
93
93
  regions[i].name = regionName;
94
94
 
95
- regionsMap[regionName] = regions[i];
95
+ regionsMap.set(regionName, regions[i]);
96
96
  // Add geoJson
97
97
  this.addGeoCoord(regionName, regions[i].center);
98
98
 
@@ -144,7 +144,7 @@
144
144
  * @return {module:echarts/coord/geo/Region}
145
145
  */
146
146
  getRegion: function (name) {
147
- return this._regionsMap[name];
147
+ return this._regionsMap.get(name);
148
148
  },
149
149
 
150
150
  getRegionByCoord: function (coord) {
@@ -162,7 +162,7 @@
162
162
  * @param {Array.<number>} geoCoord
163
163
  */
164
164
  addGeoCoord: function (name, geoCoord) {
165
- this._nameCoordMap[name] = geoCoord;
165
+ this._nameCoordMap.set(name, geoCoord);
166
166
  },
167
167
 
168
168
  /**
@@ -171,7 +171,7 @@
171
171
  * @return {Array.<number>}
172
172
  */
173
173
  getGeoCoord: function (name) {
174
- return this._nameCoordMap[name];
174
+ return this._nameCoordMap.get(name);
175
175
  },
176
176
 
177
177
  // Overwrite
@@ -208,7 +208,6 @@
208
208
  }, this);
209
209
  },
210
210
 
211
- // Overwrite
212
211
  /**
213
212
  * @param {string|Array.<number>} data
214
213
  * @return {Array.<number>}
@@ -224,16 +223,12 @@
224
223
  },
225
224
 
226
225
  /**
227
- * @override
228
- * @implements
229
- * see {module:echarts/CoodinateSystem}
226
+ * @inheritDoc
230
227
  */
231
228
  convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),
232
229
 
233
230
  /**
234
- * @override
235
- * @implements
236
- * see {module:echarts/CoodinateSystem}
231
+ * @inheritDoc
237
232
  */
238
233
  convertFromPixel: zrUtil.curry(doConvert, 'pointToData')
239
234
 
@@ -35,12 +35,12 @@
35
35
 
36
36
  option.regions = geoCreator.getFilledRegions(option.regions, option.map);
37
37
 
38
- this._optionModelMap = zrUtil.reduce(option.regions || [], function (obj, regionOpt) {
38
+ this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {
39
39
  if (regionOpt.name) {
40
- obj[regionOpt.name] = new Model(regionOpt, self);
40
+ optionModelMap.set(regionOpt.name, new Model(regionOpt, self));
41
41
  }
42
- return obj;
43
- }, {});
42
+ return optionModelMap;
43
+ }, zrUtil.createHashMap());
44
44
 
45
45
  this.updateSelectedMap(option.regions);
46
46
  },
@@ -128,7 +128,7 @@
128
128
  * @return {module:echarts/model/Model}
129
129
  */
130
130
  getRegionModel: function (name) {
131
- return this._optionModelMap[name] || new Model(null, this, this.ecModel);
131
+ return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);
132
132
  },
133
133
 
134
134
  /**
@@ -260,15 +260,15 @@
260
260
  return originRegionArr;
261
261
  }
262
262
 
263
- var dataNameMap = {};
263
+ var dataNameMap = zrUtil.createHashMap();
264
264
  var features = geoJson.features;
265
265
  for (var i = 0; i < regionsArr.length; i++) {
266
- dataNameMap[regionsArr[i].name] = regionsArr[i];
266
+ dataNameMap.set(regionsArr[i].name, regionsArr[i]);
267
267
  }
268
268
 
269
269
  for (var i = 0; i < features.length; i++) {
270
270
  var name = features[i].properties.name;
271
- if (!dataNameMap[name]) {
271
+ if (!dataNameMap.get(name)) {
272
272
  regionsArr.push({
273
273
  name: name
274
274
  });
@@ -0,0 +1,36 @@
1
+
2
+
3
+ var zrUtil = require('zrender/lib/core/util');
4
+
5
+ function dataToCoordSize(dataSize, dataItem) {
6
+ dataItem = dataItem || [0, 0];
7
+ return zrUtil.map([0, 1], function (dimIdx) {
8
+ var val = dataItem[dimIdx];
9
+ var halfSize = dataSize[dimIdx] / 2;
10
+ var p1 = [];
11
+ var p2 = [];
12
+ p1[dimIdx] = val - halfSize;
13
+ p2[dimIdx] = val + halfSize;
14
+ p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];
15
+ return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);
16
+ }, this);
17
+ }
18
+
19
+ function prepareCustom(coordSys) {
20
+ var rect = coordSys.getBoundingRect();
21
+ return {
22
+ coordSys: {
23
+ type: 'geo',
24
+ x: rect.x,
25
+ y: rect.y,
26
+ width: rect.width,
27
+ height: rect.height
28
+ },
29
+ api: {
30
+ coord: zrUtil.bind(coordSys.dataToPoint, coordSys),
31
+ size: zrUtil.bind(dataToCoordSize, coordSys)
32
+ }
33
+ };
34
+ }
35
+
36
+ module.exports = prepareCustom;
@@ -29,7 +29,7 @@
29
29
  * @type {Object.<string, module:echarts/coord/parallel/Axis>}
30
30
  * @private
31
31
  */
32
- this._axesMap = {};
32
+ this._axesMap = zrUtil.createHashMap();
33
33
 
34
34
  /**
35
35
  * key: dimension
@@ -79,13 +79,13 @@
79
79
  var axisIndex = parallelAxisIndex[idx];
80
80
  var axisModel = ecModel.getComponent('parallelAxis', axisIndex);
81
81
 
82
- var axis = this._axesMap[dim] = new ParallelAxis(
82
+ var axis = this._axesMap.set(dim, new ParallelAxis(
83
83
  dim,
84
84
  axisHelper.createScaleByModel(axisModel),
85
85
  [0, 0],
86
86
  axisModel.get('type'),
87
87
  axisIndex
88
- );
88
+ ));
89
89
 
90
90
  var isCategory = axis.type === 'category';
91
91
  axis.onBand = isCategory && axisModel.get('boundaryGap');
@@ -139,7 +139,7 @@
139
139
  var data = seriesModel.getData();
140
140
 
141
141
  each(this.dimensions, function (dim) {
142
- var axis = this._axesMap[dim];
142
+ var axis = this._axesMap.get(dim);
143
143
  axis.scale.unionExtentFromData(data, dim);
144
144
  axisHelper.niceScaleExtent(axis.scale, axis.model);
145
145
  }, this);
@@ -249,7 +249,7 @@
249
249
  var layoutInfo = this._makeLayoutInfo();
250
250
  var layout = layoutInfo.layout;
251
251
 
252
- each(axes, function (axis) {
252
+ axes.each(function (axis) {
253
253
  var axisExtent = [0, layoutInfo.axisLength];
254
254
  var idx = axis.inverse ? 1 : 0;
255
255
  axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);
@@ -299,7 +299,8 @@
299
299
  axisLabelShow: posInfo.axisLabelShow,
300
300
  nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,
301
301
  tickDirection: 1,
302
- labelDirection: 1
302
+ labelDirection: 1,
303
+ labelInterval: axes.get(dim).getLabelInterval()
303
304
  };
304
305
  }, this);
305
306
  },
@@ -310,7 +311,7 @@
310
311
  * @return {module:echarts/coord/parallel/ParallelAxis} [description]
311
312
  */
312
313
  getAxis: function (dim) {
313
- return this._axesMap[dim];
314
+ return this._axesMap.get(dim);
314
315
  },
315
316
 
316
317
  /**
@@ -321,7 +322,7 @@
321
322
  */
322
323
  dataToPoint: function (value, dim) {
323
324
  return this.axisCoordToPoint(
324
- this._axesMap[dim].dataToCoord(value),
325
+ this._axesMap.get(dim).dataToCoord(value),
325
326
  dim
326
327
  );
327
328
  },
@@ -349,7 +350,7 @@
349
350
  activeState = 'active';
350
351
  for (var j = 0, lenj = dimensions.length; j < lenj; j++) {
351
352
  var dimName = dimensions[j];
352
- var state = axesMap[dimName].model.getActiveState(values[j], j);
353
+ var state = axesMap.get(dimName).model.getActiveState(values[j], j);
353
354
 
354
355
  if (state === 'inactive') {
355
356
  activeState = 'inactive';
@@ -372,7 +373,7 @@
372
373
  var hasActiveSet = false;
373
374
 
374
375
  for (var j = 0, lenj = dimensions.length; j < lenj; j++) {
375
- if (axesMap[dimensions[j]].model.getActiveState() !== 'normal') {
376
+ if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {
376
377
  hasActiveSet = true;
377
378
  }
378
379
  }
@@ -443,7 +444,7 @@
443
444
  }
444
445
  delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;
445
446
  delta
446
- ? sliderMove(delta, axisExpandWindow, extent, 'rigid')
447
+ ? sliderMove(delta, axisExpandWindow, extent, 'all')
447
448
  // Avoid nonsense triger on mousemove.
448
449
  : (behavior = 'none');
449
450
  }
@@ -173,7 +173,7 @@
173
173
  dataToPoints: function (data) {
174
174
  return data.mapArray(this.dimensions, function (radius, angle) {
175
175
  return this.dataToPoint([radius, angle]);
176
- }, this);
176
+ }, true, this);
177
177
  },
178
178
 
179
179
  /**
@@ -251,6 +251,7 @@
251
251
 
252
252
  return [x, y];
253
253
  }
254
+
254
255
  };
255
256
 
256
257
  module.exports = Polar;
@@ -0,0 +1,53 @@
1
+
2
+
3
+ var zrUtil = require('zrender/lib/core/util');
4
+
5
+ function dataToCoordSize(dataSize, dataItem) {
6
+ // dataItem is necessary in log axis.
7
+ return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) {
8
+ var axis = this['get' + dim + 'Axis']();
9
+ var val = dataItem[dimIdx];
10
+ var halfSize = dataSize[dimIdx] / 2;
11
+ var method = 'dataTo' + dim;
12
+
13
+ var result = axis.type === 'category'
14
+ ? axis.getBandWidth()
15
+ : Math.abs(axis[method](val - halfSize) - axis[method](val + halfSize));
16
+
17
+ if (dim === 'Angle') {
18
+ result = result * Math.PI / 180;
19
+ }
20
+
21
+ return result;
22
+
23
+ }, this);
24
+ }
25
+
26
+ function prepareCustom(coordSys) {
27
+ var radiusAxis = coordSys.getRadiusAxis();
28
+ var angleAxis = coordSys.getAngleAxis();
29
+ var radius = radiusAxis.getExtent();
30
+ radius[0] > radius[1] && radius.reverse();
31
+
32
+ return {
33
+ coordSys: {
34
+ type: 'polar',
35
+ cx: coordSys.cx,
36
+ cy: coordSys.cy,
37
+ r: radius[1],
38
+ r0: radius[0]
39
+ },
40
+ api: {
41
+ coord: zrUtil.bind(function (data) {
42
+ var radius = radiusAxis.dataToRadius(data[0]);
43
+ var angle = angleAxis.dataToAngle(data[1]);
44
+ var coord = coordSys.coordToPoint([radius, angle]);
45
+ coord.push(radius, angle * Math.PI / 180);
46
+ return coord;
47
+ }),
48
+ size: zrUtil.bind(dataToCoordSize, coordSys)
49
+ }
50
+ };
51
+ }
52
+
53
+ module.exports = prepareCustom;
@@ -167,19 +167,19 @@
167
167
  var extentSum = axisExtent[0] + axisExtent[1];
168
168
  var isHorizontal = axis.isHorizontal();
169
169
 
170
- axis.toGlobalCoord = isHorizontal ?
171
- function (coord) {
170
+ axis.toGlobalCoord = isHorizontal
171
+ ? function (coord) {
172
172
  return coord + coordBase;
173
- } :
174
- function (coord) {
173
+ }
174
+ : function (coord) {
175
175
  return extentSum - coord + coordBase;
176
176
  };
177
177
 
178
- axis.toLocalCoord = isHorizontal ?
179
- function (coord) {
178
+ axis.toLocalCoord = isHorizontal
179
+ ? function (coord) {
180
180
  return coord - coordBase;
181
- } :
182
- function (coord) {
181
+ }
182
+ : function (coord) {
183
183
  return extentSum - coord + coordBase;
184
184
  };
185
185
  },
@@ -267,6 +267,7 @@
267
267
  pt[1 - idx] = idx === 0 ? (rect.y + rect.height / 2) : (rect.x + rect.width / 2);
268
268
  return pt;
269
269
  }
270
+
270
271
  };
271
272
 
272
273
  module.exports = Single;
@@ -2,7 +2,6 @@
2
2
 
3
3
  var zrUtil = require('zrender/lib/core/util');
4
4
  var Axis = require('../Axis');
5
- var axisHelper = require('../axisHelper');
6
5
 
7
6
  /**
8
7
  * @constructor module:echarts/coord/single/SingleAxis
@@ -72,32 +71,6 @@
72
71
 
73
72
  },
74
73
 
75
- /**
76
- * Get interval of the axis label.
77
- * @return {number}
78
- */
79
- getLabelInterval: function () {
80
- var labelInterval = this._labelInterval;
81
- if (!labelInterval) {
82
- var axisModel = this.model;
83
- var labelModel = axisModel.getModel('axisLabel');
84
- var interval = labelModel.get('interval');
85
- if (!(this.type === 'category' && interval === 'auto')) {
86
-
87
- labelInterval = this._labelInterval = interval === 'auto' ? 0 : interval;
88
- return labelInterval;
89
- }
90
- labelInterval = this._labelInterval =
91
- axisHelper.getAxisLabelInterval(
92
- zrUtil.map(this.scale.getTicks(), this.dataToCoord, this),
93
- axisModel.getFormattedLabels(),
94
- labelModel.getModel('textStyle').getFont(),
95
- this.isHorizontal()
96
- );
97
- }
98
- return labelInterval;
99
- },
100
-
101
74
  /**
102
75
  * @override
103
76
  */
@@ -0,0 +1,33 @@
1
+
2
+
3
+ var zrUtil = require('zrender/lib/core/util');
4
+
5
+ function dataToCoordSize(dataSize, dataItem) {
6
+ // dataItem is necessary in log axis.
7
+ var axis = this.getAxis();
8
+ var val = dataItem instanceof Array ? dataItem[0] : dataItem;
9
+ var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;
10
+ return axis.type === 'category'
11
+ ? axis.getBandWidth()
12
+ : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));
13
+ }
14
+
15
+ function prepareCustom(coordSys) {
16
+ var rect = coordSys.getRect();
17
+
18
+ return {
19
+ coordSys: {
20
+ type: 'singleAxis',
21
+ x: rect.x,
22
+ y: rect.y,
23
+ width: rect.width,
24
+ height: rect.height
25
+ },
26
+ api: {
27
+ coord: zrUtil.bind(coordSys.dataToPoint, coordSys),
28
+ size: zrUtil.bind(dataToCoordSize, coordSys)
29
+ }
30
+ };
31
+ }
32
+
33
+ module.exports = prepareCustom;
@@ -105,7 +105,8 @@
105
105
 
106
106
  function initIndexMap(arr, map, keyArr, keyGetter) {
107
107
  for (var i = 0; i < arr.length; i++) {
108
- var key = keyGetter(arr[i], i);
108
+ // Add prefix to avoid conflict with Object.prototype.
109
+ var key = '_ec_' + keyGetter(arr[i], i);
109
110
  var existence = map[key];
110
111
  if (existence == null) {
111
112
  keyArr.push(key);
package/lib/data/Graph.js CHANGED
@@ -9,6 +9,10 @@
9
9
 
10
10
  var zrUtil = require('zrender/lib/core/util');
11
11
 
12
+ // id may be function name of Object, add a prefix to avoid this problem.
13
+ function generateNodeKey (id) {
14
+ return '_EC_' + id;
15
+ }
12
16
  /**
13
17
  * @alias module:echarts/data/Graph
14
18
  * @constructor
@@ -82,7 +86,7 @@
82
86
 
83
87
  var nodesMap = this._nodesMap;
84
88
 
85
- if (nodesMap[id]) {
89
+ if (nodesMap[generateNodeKey(id)]) {
86
90
  return;
87
91
  }
88
92
 
@@ -91,7 +95,7 @@
91
95
 
92
96
  this.nodes.push(node);
93
97
 
94
- nodesMap[id] = node;
98
+ nodesMap[generateNodeKey(id)] = node;
95
99
  return node;
96
100
  };
97
101
 
@@ -110,7 +114,7 @@
110
114
  * @return {module:echarts/data/Graph.Node}
111
115
  */
112
116
  graphProto.getNodeById = function (id) {
113
- return this._nodesMap[id];
117
+ return this._nodesMap[generateNodeKey(id)];
114
118
  };
115
119
 
116
120
  /**
@@ -133,10 +137,10 @@
133
137
  }
134
138
 
135
139
  if (!(n1 instanceof Node)) {
136
- n1 = nodesMap[n1];
140
+ n1 = nodesMap[generateNodeKey(n1)];
137
141
  }
138
142
  if (!(n2 instanceof Node)) {
139
- n2 = nodesMap[n2];
143
+ n2 = nodesMap[generateNodeKey(n2)];
140
144
  }
141
145
  if (!n1 || !n2) {
142
146
  return;
@@ -243,7 +247,7 @@
243
247
  cb, startNode, direction, context
244
248
  ) {
245
249
  if (!(startNode instanceof Node)) {
246
- startNode = this._nodesMap[startNode];
250
+ startNode = this._nodesMap[generateNodeKey(startNode)];
247
251
  }
248
252
  if (!startNode) {
249
253
  return;
@@ -270,7 +274,7 @@
270
274
  var otherNode = e.node1 === currentNode
271
275
  ? e.node2 : e.node1;
272
276
  if (!otherNode.__visited) {
273
- if (cb.call(otherNode, otherNode, currentNode)) {
277
+ if (cb.call(context, otherNode, currentNode)) {
274
278
  // Stop traversing
275
279
  return;
276
280
  }