echarts 3.7.1 → 3.7.2

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 (94) hide show
  1. package/dist/echarts-en.js +77756 -0
  2. package/dist/echarts-en.min.js +38 -0
  3. package/dist/echarts.common-en.js +50169 -0
  4. package/dist/echarts.common-en.min.js +30 -0
  5. package/dist/echarts.common.js +1408 -1186
  6. package/dist/echarts.common.min.js +14 -14
  7. package/dist/echarts.js +1572 -1278
  8. package/dist/echarts.min.js +22 -22
  9. package/dist/echarts.simple-en.js +34988 -0
  10. package/dist/echarts.simple-en.min.js +27 -0
  11. package/dist/echarts.simple.js +1152 -994
  12. package/dist/echarts.simple.min.js +11 -11
  13. package/index.blank.js +4 -0
  14. package/lib/chart/bar/BaseBarSeries.js +3 -3
  15. package/lib/chart/candlestick/candlestickLayout.js +26 -1
  16. package/lib/chart/graph/forceHelper.js +5 -0
  17. package/lib/chart/graph/forceLayout.js +0 -1
  18. package/lib/chart/helper/whiskerBoxCommon.js +6 -1
  19. package/lib/chart/line/LineView.js +14 -2
  20. package/lib/chart/lines/LinesView.js +22 -7
  21. package/lib/chart/pie/PieSeries.js +3 -1
  22. package/lib/chart/pie/PieView.js +1 -1
  23. package/lib/chart/treemap/TreemapView.js +5 -28
  24. package/lib/component/axis/AxisBuilder.js +249 -178
  25. package/lib/component/axis/CartesianAxisView.js +15 -3
  26. package/lib/component/axis/ParallelAxisView.js +1 -1
  27. package/lib/component/axis/RadiusAxisView.js +1 -1
  28. package/lib/component/axis/SingleAxisView.js +8 -2
  29. package/lib/component/helper/RoamController.js +12 -11
  30. package/lib/component/marker/MarkAreaView.js +1 -1
  31. package/lib/component/radar/RadarView.js +1 -1
  32. package/lib/component/toolbox/feature/Brush.js +3 -8
  33. package/lib/component/toolbox/feature/DataView.js +3 -3
  34. package/lib/component/toolbox/feature/DataZoom.js +3 -4
  35. package/lib/component/toolbox/feature/MagicType.js +3 -6
  36. package/lib/component/toolbox/feature/Restore.js +2 -1
  37. package/lib/component/toolbox/feature/SaveAsImage.js +23 -9
  38. package/lib/component/visualMap/ContinuousModel.js +2 -2
  39. package/lib/component/visualMap/ContinuousView.js +3 -3
  40. package/lib/component/visualMap/PiecewiseModel.js +0 -1
  41. package/lib/component/visualMap/VisualMapModel.js +17 -11
  42. package/lib/coord/calendar/Calendar.js +64 -20
  43. package/lib/echarts.js +5 -4
  44. package/lib/lang/cn.js +4 -0
  45. package/lib/lang/default.js +42 -0
  46. package/lib/lang/en.js +42 -0
  47. package/lib/lang.js +42 -0
  48. package/lib/langEN.js +42 -0
  49. package/lib/preprocessor/helper/compatStyle.js +24 -23
  50. package/lib/scale/Time.js +4 -4
  51. package/lib/util/graphic.js +5 -5
  52. package/lib/util/number.js +42 -21
  53. package/lib/visual/VisualMapping.js +3 -3
  54. package/package.json +3 -3
  55. package/rollup.config.js +49 -0
  56. package/src/chart/bar/BaseBarSeries.js +3 -3
  57. package/src/chart/candlestick/candlestickLayout.js +26 -1
  58. package/src/chart/graph/forceHelper.js +5 -0
  59. package/src/chart/graph/forceLayout.js +0 -1
  60. package/src/chart/helper/whiskerBoxCommon.js +6 -2
  61. package/src/chart/line/LineView.js +14 -2
  62. package/src/chart/lines/LinesView.js +22 -7
  63. package/src/chart/pie/PieSeries.js +3 -1
  64. package/src/chart/pie/PieView.js +1 -1
  65. package/src/chart/treemap/TreemapView.js +5 -28
  66. package/src/component/axis/AxisBuilder.js +249 -178
  67. package/src/component/axis/CartesianAxisView.js +15 -3
  68. package/src/component/axis/ParallelAxisView.js +1 -1
  69. package/src/component/axis/RadiusAxisView.js +1 -1
  70. package/src/component/axis/SingleAxisView.js +8 -2
  71. package/src/component/helper/RoamController.js +12 -11
  72. package/src/component/marker/MarkAreaView.js +1 -1
  73. package/src/component/radar/RadarView.js +1 -1
  74. package/src/component/toolbox/feature/Brush.js +3 -8
  75. package/src/component/toolbox/feature/DataView.js +3 -3
  76. package/src/component/toolbox/feature/DataZoom.js +3 -4
  77. package/src/component/toolbox/feature/MagicType.js +3 -6
  78. package/src/component/toolbox/feature/Restore.js +2 -1
  79. package/src/component/toolbox/feature/SaveAsImage.js +23 -10
  80. package/src/component/visualMap/ContinuousModel.js +2 -2
  81. package/src/component/visualMap/ContinuousView.js +3 -3
  82. package/src/component/visualMap/PiecewiseModel.js +0 -1
  83. package/src/component/visualMap/VisualMapModel.js +17 -11
  84. package/src/coord/calendar/Calendar.js +64 -20
  85. package/src/echarts.js +5 -4
  86. package/src/lang.js +43 -0
  87. package/src/langEN.js +43 -0
  88. package/src/preprocessor/helper/compatStyle.js +24 -23
  89. package/src/scale/Time.js +4 -4
  90. package/src/util/graphic.js +5 -5
  91. package/src/util/number.js +42 -21
  92. package/src/visual/VisualMapping.js +3 -3
  93. package/webpack.config.js +21 -7
  94. package/.npmignore +0 -10
@@ -6,7 +6,7 @@ define(function (require) {
6
6
 
7
7
  var zrUtil = require('zrender/core/util');
8
8
  var eventTool = require('zrender/core/event');
9
-
9
+ var lang = require('../../../lang').toolbox.dataView;
10
10
 
11
11
  var BLOCK_SPLITER = new Array(60).join('-');
12
12
  var ITEM_SPLITER = '\t';
@@ -277,8 +277,8 @@ define(function (require) {
277
277
  contentToOption: null,
278
278
 
279
279
  icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',
280
- title: '数据视图',
281
- lang: ['数据视图', '关闭', '刷新'],
280
+ title: zrUtil.clone(lang.title),
281
+ lang: zrUtil.clone(lang.lang),
282
282
  backgroundColor: '#fff',
283
283
  textColor: '#000',
284
284
  textareaColor: '#fff',
@@ -6,6 +6,7 @@ define(function(require) {
6
6
  var BrushTargetManager = require('../../helper/BrushTargetManager');
7
7
  var history = require('../../dataZoom/history');
8
8
  var sliderMove = require('../../helper/sliderMove');
9
+ var lang = require('../../../lang').toolbox.dataZoom;
9
10
 
10
11
  var each = zrUtil.each;
11
12
 
@@ -39,10 +40,8 @@ define(function(require) {
39
40
  zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',
40
41
  back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'
41
42
  },
42
- title: {
43
- zoom: '区域缩放',
44
- back: '区域缩放还原'
45
- }
43
+ // `zoom`, `back`
44
+ title: zrUtil.clone(lang.title)
46
45
  };
47
46
 
48
47
  var proto = DataZoom.prototype;
@@ -2,6 +2,7 @@ define(function(require) {
2
2
  'use strict';
3
3
 
4
4
  var zrUtil = require('zrender/core/util');
5
+ var lang = require('../../../lang').toolbox.magicType;
5
6
 
6
7
  function MagicType(model) {
7
8
  this.model = model;
@@ -17,12 +18,8 @@ define(function(require) {
17
18
  stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z', // jshint ignore:line
18
19
  tiled: 'M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z'
19
20
  },
20
- title: {
21
- line: '切换为折线图',
22
- bar: '切换为柱状图',
23
- stack: '切换为堆叠',
24
- tiled: '切换为平铺'
25
- },
21
+ // `line`, `bar`, `stack`, `tiled`
22
+ title: zrUtil.clone(lang.title),
26
23
  option: {},
27
24
  seriesIndex: {}
28
25
  };
@@ -2,6 +2,7 @@ define(function(require) {
2
2
  'use strict';
3
3
 
4
4
  var history = require('../../dataZoom/history');
5
+ var lang = require('../../../lang').toolbox.restore;
5
6
 
6
7
  function Restore(model) {
7
8
  this.model = model;
@@ -10,7 +11,7 @@ define(function(require) {
10
11
  Restore.defaultOption = {
11
12
  show: true,
12
13
  icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',
13
- title: '还原'
14
+ title: lang.title
14
15
  };
15
16
 
16
17
  var proto = Restore.prototype;
@@ -1,6 +1,7 @@
1
1
  define(function (require) {
2
2
 
3
3
  var env = require('zrender/core/env');
4
+ var lang = require('../../../lang').toolbox.saveAsImage;
4
5
 
5
6
  function SaveAsImage (model) {
6
7
  this.model = model;
@@ -9,14 +10,14 @@ define(function (require) {
9
10
  SaveAsImage.defaultOption = {
10
11
  show: true,
11
12
  icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',
12
- title: '保存为图片',
13
+ title: lang.title,
13
14
  type: 'png',
14
15
  // Default use option.backgroundColor
15
16
  // backgroundColor: '#fff',
16
17
  name: '',
17
18
  excludeComponents: ['toolbox'],
18
19
  pixelRatio: 1,
19
- lang: ['右键另存为图片']
20
+ lang: lang.lang.slice()
20
21
  };
21
22
 
22
23
  SaveAsImage.prototype.unusable = !env.canvasSupported;
@@ -49,13 +50,25 @@ define(function (require) {
49
50
  }
50
51
  // IE
51
52
  else {
52
- var lang = model.get('lang');
53
- var html = ''
54
- + '<body style="margin:0;">'
55
- + '<img src="' + url + '" style="max-width:100%;" title="' + ((lang && lang[0]) || '') + '" />'
56
- + '</body>';
57
- var tab = window.open();
58
- tab.document.write(html);
53
+ if (window.navigator.msSaveOrOpenBlob) {
54
+ var bstr = atob(url.split(',')[1]);
55
+ var n = bstr.length;
56
+ var u8arr = new Uint8Array(n);
57
+ while(n--) {
58
+ u8arr[n] = bstr.charCodeAt(n);
59
+ }
60
+ var blob = new Blob([u8arr]);
61
+ window.navigator.msSaveOrOpenBlob(blob, title + '.' + type);
62
+ }
63
+ else {
64
+ var lang = model.get('lang');
65
+ var html = '' +
66
+ '<body style="margin:0;">' +
67
+ '<img src="' + url + '" style="max-width:100%;" title="' + ((lang && lang[0]) || '') + '" />' +
68
+ '</body>';
69
+ var tab = window.open();
70
+ tab.document.write(html);
71
+ }
59
72
  }
60
73
  };
61
74
 
@@ -64,4 +77,4 @@ define(function (require) {
64
77
  );
65
78
 
66
79
  return SaveAsImage;
67
- });
80
+ });
@@ -29,7 +29,8 @@ define(function(require) {
29
29
  itemWidth: null, // The length of the other side.
30
30
  hoverLink: true, // Enable hover highlight.
31
31
  hoverLinkDataSize: null,// The size of hovered data.
32
- hoverLinkOnHandle: true // Whether trigger hoverLink when hover handle.
32
+ hoverLinkOnHandle: null // Whether trigger hoverLink when hover handle.
33
+ // If not specified, follow the value of `realtime`.
33
34
  },
34
35
 
35
36
  /**
@@ -38,7 +39,6 @@ define(function(require) {
38
39
  optionUpdated: function (newOption, isInit) {
39
40
  ContinuousModel.superApply(this, 'optionUpdated', arguments);
40
41
 
41
- this.resetTargetSeries();
42
42
  this.resetExtent();
43
43
 
44
44
  this.resetVisual(function (mappingOption) {
@@ -606,7 +606,6 @@ define(function(require) {
606
606
  // For hover link show when hover handle, which might be
607
607
  // below or upper than sizeExtent.
608
608
  pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);
609
-
610
609
  self._doHoverLinkToSeries(
611
610
  pos[1],
612
611
  0 <= pos[0] && pos[0] <= itemSize[0]
@@ -693,6 +692,7 @@ define(function(require) {
693
692
  }
694
693
 
695
694
  var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);
695
+
696
696
  this._dispatchHighDown('downplay', helper.convertDataIndex(resultBatches[0]));
697
697
  this._dispatchHighDown('highlight', helper.convertDataIndex(resultBatches[1]));
698
698
  },
@@ -739,7 +739,6 @@ define(function(require) {
739
739
  this._hideIndicator();
740
740
 
741
741
  var indices = this._hoverLinkDataIndices;
742
-
743
742
  this._dispatchHighDown('downplay', helper.convertDataIndex(indices));
744
743
 
745
744
  indices.length = 0;
@@ -837,7 +836,8 @@ define(function(require) {
837
836
  }
838
837
 
839
838
  function useHoverLinkOnHandle(visualMapModel) {
840
- return !visualMapModel.get('realtime') && visualMapModel.get('hoverLinkOnHandle');
839
+ var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');
840
+ return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);
841
841
  }
842
842
 
843
843
  function getCursor(orient) {
@@ -81,7 +81,6 @@ define(function(require) {
81
81
  */
82
82
  this._pieceList = [];
83
83
 
84
- this.resetTargetSeries();
85
84
  this.resetExtent();
86
85
 
87
86
  /**
@@ -64,7 +64,8 @@ define(function(require) {
64
64
  zlevel: 0,
65
65
  z: 4,
66
66
 
67
- seriesIndex: null, // 所控制的series indices,默认所有有value的series.
67
+ seriesIndex: 'all', // 'all' or null/undefined: all series.
68
+ // A number or an array of number: the specified series.
68
69
 
69
70
  // set min: 0, max: 200, only for campatible with ec2.
70
71
  // In fact min max should not have default value.
@@ -181,26 +182,31 @@ define(function(require) {
181
182
  );
182
183
  },
183
184
 
184
-
185
185
  /**
186
186
  * @protected
187
+ * @return {Array.<number>} An array of series indices.
187
188
  */
188
- resetTargetSeries: function () {
189
- var thisOption = this.option;
190
- var allSeriesIndex = thisOption.seriesIndex == null;
191
- thisOption.seriesIndex = allSeriesIndex
192
- ? [] : modelUtil.normalizeToArray(thisOption.seriesIndex);
189
+ getTargetSeriesIndices: function () {
190
+ var optionSeriesIndex = this.option.seriesIndex;
191
+ var seriesIndices = [];
192
+
193
+ if (optionSeriesIndex == null || optionSeriesIndex === 'all') {
194
+ this.ecModel.eachSeries(function (seriesModel, index) {
195
+ seriesIndices.push(index);
196
+ });
197
+ }
198
+ else {
199
+ seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex);
200
+ }
193
201
 
194
- allSeriesIndex && this.ecModel.eachSeries(function (seriesModel, index) {
195
- thisOption.seriesIndex.push(index);
196
- });
202
+ return seriesIndices;
197
203
  },
198
204
 
199
205
  /**
200
206
  * @public
201
207
  */
202
208
  eachTargetSeries: function (callback, context) {
203
- zrUtil.each(this.option.seriesIndex, function (seriesIndex) {
209
+ zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) {
204
210
  callback.call(context, this.ecModel.getSeriesByIndex(seriesIndex));
205
211
  }, this);
206
212
  },
@@ -7,7 +7,7 @@ define(function (require) {
7
7
  var zrUtil = require('zrender/core/util');
8
8
 
9
9
  // (24*60*60*1000)
10
- var ONE_DAY = 86400000;
10
+ var PROXIMATE_ONE_DAY = 86400000;
11
11
 
12
12
  /**
13
13
  * Calendar
@@ -76,7 +76,16 @@ define(function (require) {
76
76
  * get date info
77
77
  *
78
78
  * @param {string|number} date date
79
- * @return {Object} info
79
+ * @return {Object}
80
+ * {
81
+ * y: string, local full year, eg., '1940',
82
+ * m: string, local month, from '01' ot '12',
83
+ * d: string, local date, from '01' to '31' (if exists),
84
+ * day: It is not date.getDay(). It is the location of the cell in a week, from 0 to 6,
85
+ * time: timestamp,
86
+ * formatedDate: string, yyyy-MM-dd,
87
+ * date: original date object.
88
+ * }
80
89
  */
81
90
  getDateInfo: function (date) {
82
91
 
@@ -111,9 +120,10 @@ define(function (require) {
111
120
  return this.getDateInfo(date);
112
121
  }
113
122
 
114
- var time = this.getDateInfo(date).time;
123
+ date = new Date(this.getDateInfo(date).time);
124
+ date.setDate(date.getDate() + n);
115
125
 
116
- return this.getDateInfo(time + ONE_DAY * n);
126
+ return this.getDateInfo(date);
117
127
  },
118
128
 
119
129
  update: function (ecModel, api) {
@@ -179,18 +189,18 @@ define(function (require) {
179
189
  }
180
190
 
181
191
  var week = dayInfo.day;
182
- var nthWeek = this._getRangeInfo([range.start.time, date]).weeks;
192
+ var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;
183
193
 
184
194
  if (this._orient === 'vertical') {
185
195
  return [
186
196
  this._rect.x + week * this._sw + this._sw / 2,
187
- this._rect.y + (nthWeek - 1) * this._sh + this._sh / 2
197
+ this._rect.y + nthWeek * this._sh + this._sh / 2
188
198
  ];
189
199
 
190
200
  }
191
201
 
192
202
  return [
193
- this._rect.x + (nthWeek - 1) * this._sw + this._sw / 2,
203
+ this._rect.x + nthWeek * this._sw + this._sw / 2,
194
204
  this._rect.y + week * this._sh + this._sh / 2
195
205
  ];
196
206
 
@@ -328,25 +338,60 @@ define(function (require) {
328
338
  *
329
339
  * @private
330
340
  * @param {Array} range range ['2017-01-01', '2017-07-08']
341
+ * If range[0] > range[1], they will not be reversed.
331
342
  * @return {Object} obj
332
343
  */
333
344
  _getRangeInfo: function (range) {
345
+ range = [
346
+ this.getDateInfo(range[0]),
347
+ this.getDateInfo(range[1])
348
+ ];
334
349
 
335
- var start = this.getDateInfo(range[0]);
336
- var end = this.getDateInfo(range[1]);
350
+ var reversed;
351
+ if (range[0].time > range[1].time) {
352
+ reversed = true;
353
+ range.reverse();
354
+ }
337
355
 
338
- var allDay = Math.floor(end.time / ONE_DAY) - Math.floor(start.time / ONE_DAY) + 1;
356
+ var allDay = Math.floor(range[1].time / PROXIMATE_ONE_DAY)
357
+ - Math.floor(range[0].time / PROXIMATE_ONE_DAY) + 1;
358
+
359
+ // Consider case:
360
+ // Firstly set system timezone as "Time Zone: America/Toronto",
361
+ // ```
362
+ // var first = new Date(1478412000000 - 3600 * 1000 * 2.5);
363
+ // var second = new Date(1478412000000);
364
+ // var allDays = Math.floor(second / ONE_DAY) - Math.floor(first / ONE_DAY) + 1;
365
+ // ```
366
+ // will get wrong result because of DST. So we should fix it.
367
+ var date = new Date(range[0].time);
368
+ var startDateNum = date.getDate();
369
+ var endDateNum = range[1].date.getDate();
370
+ date.setDate(startDateNum + allDay - 1);
371
+ // The bias can not over a month, so just compare date.
372
+ if (date.getDate() !== endDateNum) {
373
+ var sign = date.getTime() - range[1].time > 0 ? 1 : -1;
374
+ while (date.getDate() !== endDateNum && (date.getTime() - range[1].time) * sign > 0) {
375
+ allDay -= sign;
376
+ date.setDate(startDateNum + allDay - 1);
377
+ }
378
+ }
379
+
380
+ var weeks = Math.floor((allDay + range[0].day + 6) / 7);
381
+ var nthWeek = reversed ? -weeks + 1: weeks - 1;
339
382
 
340
- var weeks = Math.floor((allDay + start.day + 6) / 7);
383
+ reversed && range.reverse();
341
384
 
342
385
  return {
343
- range: [start.formatedDate, end.formatedDate],
344
- start: start,
345
- end: end,
386
+ range: [range[0].formatedDate, range[1].formatedDate],
387
+ start: range[0],
388
+ end: range[1],
346
389
  allDay: allDay,
347
390
  weeks: weeks,
348
- fweek: start.day,
349
- lweek: end.day
391
+ // From 0.
392
+ nthWeek: nthWeek,
393
+ fweek: range[0].day,
394
+ lweek: range[1].day
350
395
  };
351
396
  },
352
397
 
@@ -370,11 +415,10 @@ define(function (require) {
370
415
  }
371
416
 
372
417
  var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;
418
+ var date = new Date(rangeInfo.start.time);
419
+ date.setDate(rangeInfo.start.d + nthDay);
373
420
 
374
- var time = rangeInfo.start.time + nthDay * ONE_DAY;
375
-
376
- return this.getDateInfo(time);
377
-
421
+ return this.getDateInfo(date);
378
422
  }
379
423
  };
380
424
 
package/src/echarts.js CHANGED
@@ -44,12 +44,13 @@ define(function (require) {
44
44
  var modelUtil = require('./util/model');
45
45
  var throttle = require('./util/throttle');
46
46
 
47
- var zrender = require('zrender');
47
+ var zrender = require('zrender/zrender');
48
48
  var zrUtil = require('zrender/core/util');
49
49
  var colorTool = require('zrender/tool/color');
50
50
  var Eventful = require('zrender/mixin/Eventful');
51
51
  var timsort = require('zrender/core/timsort');
52
52
 
53
+
53
54
  var each = zrUtil.each;
54
55
  var parseClassType = ComponentModel.parseClassType;
55
56
 
@@ -75,6 +76,7 @@ define(function (require) {
75
76
  var OPTION_UPDATED = '__optionUpdated';
76
77
  var ACTION_REG = /^[a-zA-Z0-9_]+$/;
77
78
 
79
+
78
80
  function createRegisterEventWithLowercaseName(method) {
79
81
  return function (eventName, handler, context) {
80
82
  // Event name is all lowercase
@@ -1524,9 +1526,9 @@ define(function (require) {
1524
1526
  /**
1525
1527
  * @type {number}
1526
1528
  */
1527
- version: '3.7.1',
1529
+ version: '3.7.2',
1528
1530
  dependencies: {
1529
- zrender: '3.6.1'
1531
+ zrender: '3.6.2'
1530
1532
  }
1531
1533
  };
1532
1534
 
@@ -1958,7 +1960,6 @@ define(function (require) {
1958
1960
  update: 'downplay'
1959
1961
  }, zrUtil.noop);
1960
1962
 
1961
-
1962
1963
  // --------
1963
1964
  // Exports
1964
1965
  // --------
package/src/lang.js ADDED
@@ -0,0 +1,43 @@
1
+ define(function(require) {
2
+
3
+ return {
4
+ toolbox: {
5
+ brush: {
6
+ title: {
7
+ rect: '矩形选择',
8
+ polygon: '圈选',
9
+ lineX: '横向选择',
10
+ lineY: '纵向选择',
11
+ keep: '保持选择',
12
+ clear: '清除选择'
13
+ }
14
+ },
15
+ dataView: {
16
+ title: '数据视图',
17
+ lang: ['数据视图', '关闭', '刷新']
18
+ },
19
+ dataZoom: {
20
+ title: {
21
+ zoom: '区域缩放',
22
+ back: '区域缩放还原'
23
+ }
24
+ },
25
+ magicType: {
26
+ title: {
27
+ line: '切换为折线图',
28
+ bar: '切换为柱状图',
29
+ stack: '切换为堆叠',
30
+ tiled: '切换为平铺'
31
+ }
32
+ },
33
+ restore: {
34
+ title: '还原'
35
+ },
36
+ saveAsImage: {
37
+ title: '保存为图片',
38
+ lang: ['右键另存为图片']
39
+ }
40
+ }
41
+ };
42
+
43
+ });
package/src/langEN.js ADDED
@@ -0,0 +1,43 @@
1
+ define(function(require) {
2
+
3
+ return {
4
+ toolbox: {
5
+ brush: {
6
+ title: {
7
+ rect: 'Box Select',
8
+ polygon: 'Lasso Select',
9
+ lineX: 'Horizontally Select',
10
+ lineY: 'Vertically Select',
11
+ keep: 'Keep Selections',
12
+ clear: 'Clear Selections'
13
+ }
14
+ },
15
+ dataView: {
16
+ title: 'Data View',
17
+ lang: ['Data View', 'Close', 'Refresh']
18
+ },
19
+ dataZoom: {
20
+ title: {
21
+ zoom: 'Zoom',
22
+ back: 'Zoom Reset'
23
+ }
24
+ },
25
+ magicType: {
26
+ title: {
27
+ line: 'Switch to Line Chart',
28
+ bar: 'Switch to Bar Chart',
29
+ stack: 'Stack',
30
+ tiled: 'Tile'
31
+ }
32
+ },
33
+ restore: {
34
+ title: 'Restore'
35
+ },
36
+ saveAsImage: {
37
+ title: 'Save as Image',
38
+ lang: ['Right Click to Save Image']
39
+ }
40
+ }
41
+ };
42
+
43
+ });
@@ -97,30 +97,31 @@ define(function (require) {
97
97
  compatItemStyle(data[i]);
98
98
  compatLabelTextStyle(data[i] && data[i].label);
99
99
  }
100
- // mark point data
101
- var markPoint = seriesOpt.markPoint;
102
- if (markPoint && markPoint.data) {
103
- var mpData = markPoint.data;
104
- for (var i = 0; i < mpData.length; i++) {
105
- compatItemStyle(mpData[i]);
106
- compatLabelTextStyle(mpData[i] && mpData[i].label);
107
- }
100
+ }
101
+
102
+ // mark point data
103
+ var markPoint = seriesOpt.markPoint;
104
+ if (markPoint && markPoint.data) {
105
+ var mpData = markPoint.data;
106
+ for (var i = 0; i < mpData.length; i++) {
107
+ compatItemStyle(mpData[i]);
108
+ compatLabelTextStyle(mpData[i] && mpData[i].label);
108
109
  }
109
- // mark line data
110
- var markLine = seriesOpt.markLine;
111
- if (markLine && markLine.data) {
112
- var mlData = markLine.data;
113
- for (var i = 0; i < mlData.length; i++) {
114
- if (zrUtil.isArray(mlData[i])) {
115
- compatItemStyle(mlData[i][0]);
116
- compatLabelTextStyle(mlData[i][0] && mlData[i][0].label);
117
- compatItemStyle(mlData[i][1]);
118
- compatLabelTextStyle(mlData[i][1] && mlData[i][1].label);
119
- }
120
- else {
121
- compatItemStyle(mlData[i]);
122
- compatLabelTextStyle(mlData[i] && mlData[i].label);
123
- }
110
+ }
111
+ // mark line data
112
+ var markLine = seriesOpt.markLine;
113
+ if (markLine && markLine.data) {
114
+ var mlData = markLine.data;
115
+ for (var i = 0; i < mlData.length; i++) {
116
+ if (zrUtil.isArray(mlData[i])) {
117
+ compatItemStyle(mlData[i][0]);
118
+ compatLabelTextStyle(mlData[i][0] && mlData[i][0].label);
119
+ compatItemStyle(mlData[i][1]);
120
+ compatLabelTextStyle(mlData[i][1] && mlData[i][1].label);
121
+ }
122
+ else {
123
+ compatItemStyle(mlData[i]);
124
+ compatLabelTextStyle(mlData[i] && mlData[i].label);
124
125
  }
125
126
  }
126
127
  }
package/src/scale/Time.js CHANGED
@@ -77,7 +77,7 @@ define(function (require) {
77
77
  // If there are no data and extent are [Infinity, -Infinity]
78
78
  if (extent[1] === -Infinity && extent[0] === Infinity) {
79
79
  var d = new Date();
80
- extent[1] = new Date(d.getFullYear(), d.getMonth(), d.getDate());
80
+ extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());
81
81
  extent[0] = extent[1] - ONE_DAY;
82
82
  }
83
83
 
@@ -98,8 +98,6 @@ define(function (require) {
98
98
  * @override
99
99
  */
100
100
  niceTicks: function (approxTickNum, minInterval, maxInterval) {
101
- var timezoneOffset = this.getSetting('useUTC')
102
- ? 0 : numberUtil.getTimezoneOffset() * 60 * 1000;
103
101
  approxTickNum = approxTickNum || 10;
104
102
 
105
103
  var extent = this._extent;
@@ -129,9 +127,11 @@ define(function (require) {
129
127
  interval *= yearStep;
130
128
  }
131
129
 
130
+ var timezoneOffset = this.getSetting('useUTC')
131
+ ? 0 : (new Date(+extent[0] || +extent[1])).getTimezoneOffset() * 60 * 1000;
132
132
  var niceExtent = [
133
133
  Math.round(mathCeil((extent[0] - timezoneOffset) / interval) * interval + timezoneOffset),
134
- Math.round(mathFloor((extent[1] - timezoneOffset)/ interval) * interval + timezoneOffset)
134
+ Math.round(mathFloor((extent[1] - timezoneOffset) / interval) * interval + timezoneOffset)
135
135
  ];
136
136
 
137
137
  scaleHelper.fixExtent(niceExtent, extent);