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
@@ -49,7 +49,7 @@
49
49
  * @param {Object} opt Standard axis parameters.
50
50
  * @param {Array.<number>} opt.position [x, y]
51
51
  * @param {number} opt.rotation by radian
52
- * @param {number} [opt.nameDirection=1] 1 or -1 Used when nameLocation is 'middle'.
52
+ * @param {number} [opt.nameDirection=1] 1 or -1 Used when nameLocation is 'middle' or 'center'.
53
53
  * @param {number} [opt.tickDirection=1] 1 or -1
54
54
  * @param {number} [opt.labelDirection=1] 1 or -1
55
55
  * @param {number} [opt.labelOffset=0] Usefull when onZero.
@@ -171,173 +171,14 @@
171
171
  /**
172
172
  * @private
173
173
  */
174
- axisTick: function () {
174
+ axisTickLabel: function () {
175
175
  var axisModel = this.axisModel;
176
- var axis = axisModel.axis;
177
-
178
- if (!axisModel.get('axisTick.show') || axis.scale.isBlank()) {
179
- return;
180
- }
181
-
182
- var tickModel = axisModel.getModel('axisTick');
183
176
  var opt = this.opt;
184
177
 
185
- var lineStyleModel = tickModel.getModel('lineStyle');
186
- var tickLen = tickModel.get('length');
187
-
188
- var tickInterval = getInterval(tickModel, opt.labelInterval);
189
- var ticksCoords = axis.getTicksCoords(tickModel.get('alignWithLabel'));
190
- var ticks = axis.scale.getTicks();
191
-
192
- var pt1 = [];
193
- var pt2 = [];
194
- var matrix = this._transform;
195
-
196
- for (var i = 0; i < ticksCoords.length; i++) {
197
- // Only ordinal scale support tick interval
198
- if (ifIgnoreOnTick(axis, i, tickInterval)) {
199
- continue;
200
- }
201
-
202
- var tickCoord = ticksCoords[i];
203
-
204
- pt1[0] = tickCoord;
205
- pt1[1] = 0;
206
- pt2[0] = tickCoord;
207
- pt2[1] = opt.tickDirection * tickLen;
208
-
209
- if (matrix) {
210
- v2ApplyTransform(pt1, pt1, matrix);
211
- v2ApplyTransform(pt2, pt2, matrix);
212
- }
213
- // Tick line, Not use group transform to have better line draw
214
- this.group.add(new graphic.Line(graphic.subPixelOptimizeLine({
215
-
216
- // Id for animation
217
- anid: 'tick_' + ticks[i],
218
-
219
- shape: {
220
- x1: pt1[0],
221
- y1: pt1[1],
222
- x2: pt2[0],
223
- y2: pt2[1]
224
- },
225
- style: zrUtil.defaults(
226
- lineStyleModel.getLineStyle(),
227
- {
228
- stroke: axisModel.get('axisLine.lineStyle.color')
229
- }
230
- ),
231
- z2: 2,
232
- silent: true
233
- })));
234
- }
235
- },
236
-
237
- /**
238
- * @param {module:echarts/coord/cartesian/AxisModel} axisModel
239
- * @param {module:echarts/coord/cartesian/GridModel} gridModel
240
- * @private
241
- */
242
- axisLabel: function () {
243
- var opt = this.opt;
244
- var axisModel = this.axisModel;
245
- var axis = axisModel.axis;
246
- var show = retrieve(opt.axisLabelShow, axisModel.get('axisLabel.show'));
247
-
248
- if (!show || axis.scale.isBlank()) {
249
- return;
250
- }
251
-
252
- var labelModel = axisModel.getModel('axisLabel');
253
- var labelMargin = labelModel.get('margin');
254
- var ticks = axis.scale.getTicks();
255
- var labels = axisModel.getFormattedLabels();
256
-
257
- // Special label rotate.
258
- var labelRotation = (
259
- retrieve(opt.labelRotate, labelModel.get('rotate')) || 0
260
- ) * PI / 180;
261
-
262
- var labelLayout = innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);
263
- var categoryData = axisModel.get('data');
264
-
265
- var textEls = [];
266
- var silent = isSilent(axisModel);
267
- var triggerEvent = axisModel.get('triggerEvent');
268
-
269
- zrUtil.each(ticks, function (tickVal, index) {
270
- if (ifIgnoreOnTick(axis, index, opt.labelInterval)) {
271
- return;
272
- }
273
-
274
- var itemLabelModel = labelModel;
275
- if (categoryData && categoryData[tickVal] && categoryData[tickVal].textStyle) {
276
- itemLabelModel = new Model(
277
- categoryData[tickVal].textStyle, labelModel, axisModel.ecModel
278
- );
279
- }
280
-
281
- var textColor = itemLabelModel.getTextColor()
282
- || axisModel.get('axisLine.lineStyle.color');
283
-
284
- var tickCoord = axis.dataToCoord(tickVal);
285
- var pos = [
286
- tickCoord,
287
- opt.labelOffset + opt.labelDirection * labelMargin
288
- ];
289
- var labelStr = axis.scale.getLabel(tickVal);
290
-
291
- var textEl = new graphic.Text({
292
- // Id for animation
293
- anid: 'label_' + tickVal,
294
- position: pos,
295
- rotation: labelLayout.rotation,
296
- silent: silent,
297
- z2: 10
298
- });
299
-
300
- graphic.setTextStyle(textEl.style, itemLabelModel, {
301
- text: labels[index],
302
- textAlign: itemLabelModel.getShallow('align', true)
303
- || labelLayout.textAlign,
304
- textVerticalAlign: itemLabelModel.getShallow('verticalAlign', true)
305
- || itemLabelModel.getShallow('baseline', true)
306
- || labelLayout.textVerticalAlign,
307
- textFill: typeof textColor === 'function'
308
- ? textColor(
309
- // (1) In category axis with data zoom, tick is not the original
310
- // index of axis.data. So tick should not be exposed to user
311
- // in category axis.
312
- // (2) Compatible with previous version, which always returns labelStr.
313
- // But in interval scale labelStr is like '223,445', which maked
314
- // user repalce ','. So we modify it to return original val but remain
315
- // it as 'string' to avoid error in replacing.
316
- axis.type === 'category' ? labelStr : axis.type === 'value' ? tickVal + '' : tickVal,
317
- index
318
- )
319
- : textColor
320
- });
321
-
322
- // Pack data for mouse event
323
- if (triggerEvent) {
324
- textEl.eventData = makeAxisEventDataBase(axisModel);
325
- textEl.eventData.targetType = 'axisLabel';
326
- textEl.eventData.value = labelStr;
327
- }
328
-
329
- // FIXME
330
- this._dumbGroup.add(textEl);
331
- textEl.updateTransform();
332
-
333
- textEls.push(textEl);
334
- this.group.add(textEl);
335
-
336
- textEl.decomposeTransform();
178
+ var tickEls = buildAxisTick(this, axisModel, opt);
179
+ var labelEls = buildAxisLabel(this, axisModel, opt);
337
180
 
338
- }, this);
339
-
340
- fixMinMaxLabelShow(axisModel, textEls);
181
+ fixMinMaxLabelShow(axisModel, labelEls, tickEls);
341
182
  },
342
183
 
343
184
  /**
@@ -366,7 +207,7 @@
366
207
  ? extent[1] + gapSignal * gap
367
208
  : (extent[0] + extent[1]) / 2, // 'middle'
368
209
  // Reuse labelOffset.
369
- nameLocation === 'middle' ? opt.labelOffset + nameDirection * gap : 0
210
+ isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0
370
211
  ];
371
212
 
372
213
  var labelLayout;
@@ -378,7 +219,7 @@
378
219
 
379
220
  var axisNameAvailableWidth;
380
221
 
381
- if (nameLocation === 'middle') {
222
+ if (isNameLocationCenter(nameLocation)) {
382
223
  labelLayout = innerTextLayout(
383
224
  opt.rotation,
384
225
  nameRotation != null ? nameRotation : opt.rotation, // Adapt to axis.
@@ -559,32 +400,64 @@
559
400
  );
560
401
  }
561
402
 
562
- function fixMinMaxLabelShow(axisModel, textEls) {
403
+ function fixMinMaxLabelShow(axisModel, labelEls, tickEls) {
563
404
  // If min or max are user set, we need to check
564
405
  // If the tick on min(max) are overlap on their neighbour tick
565
406
  // If they are overlapped, we need to hide the min(max) tick label
566
407
  var showMinLabel = axisModel.get('axisLabel.showMinLabel');
567
408
  var showMaxLabel = axisModel.get('axisLabel.showMaxLabel');
568
- var firstLabel = textEls[0];
569
- var nextLabel = textEls[1];
570
- var lastLabel = textEls[textEls.length - 1];
571
- var prevLabel = textEls[textEls.length - 2];
409
+
410
+ // FIXME
411
+ // Have not consider onBand yet, where tick els is more than label els.
412
+
413
+ labelEls = labelEls || [];
414
+ tickEls = tickEls || [];
415
+
416
+ var firstLabel = labelEls[0];
417
+ var nextLabel = labelEls[1];
418
+ var lastLabel = labelEls[labelEls.length - 1];
419
+ var prevLabel = labelEls[labelEls.length - 2];
420
+
421
+ var firstTick = tickEls[0];
422
+ var nextTick = tickEls[1];
423
+ var lastTick = tickEls[tickEls.length - 1];
424
+ var prevTick = tickEls[tickEls.length - 2];
572
425
 
573
426
  if (showMinLabel === false) {
574
- firstLabel.ignore = true;
427
+ ignoreEl(firstLabel);
428
+ ignoreEl(firstTick);
575
429
  }
576
- else if (axisModel.getMin() != null && isTwoLabelOverlapped(firstLabel, nextLabel)) {
577
- showMinLabel ? (nextLabel.ignore = true) : (firstLabel.ignore = true);
430
+ else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {
431
+ if (showMinLabel) {
432
+ ignoreEl(nextLabel);
433
+ ignoreEl(nextTick);
434
+ }
435
+ else {
436
+ ignoreEl(firstLabel);
437
+ ignoreEl(firstTick);
438
+ }
578
439
  }
579
440
 
580
441
  if (showMaxLabel === false) {
581
- lastLabel.ignore = true;
442
+ ignoreEl(lastLabel);
443
+ ignoreEl(lastTick);
582
444
  }
583
- else if (axisModel.getMax() != null && isTwoLabelOverlapped(prevLabel, lastLabel)) {
584
- showMaxLabel ? (prevLabel.ignore = true) : (lastLabel.ignore = true);
445
+ else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {
446
+ if (showMaxLabel) {
447
+ ignoreEl(prevLabel);
448
+ ignoreEl(prevTick);
449
+ }
450
+ else {
451
+ ignoreEl(lastLabel);
452
+ ignoreEl(lastTick);
453
+ }
585
454
  }
586
455
  }
587
456
 
457
+ function ignoreEl(el) {
458
+ el && (el.ignore = true);
459
+ }
460
+
588
461
  function isTwoLabelOverlapped(current, next, labelLayout) {
589
462
  // current and next has the same rotation.
590
463
  var firstRect = current && current.getBoundingRect().clone();
@@ -605,11 +478,28 @@
605
478
  return firstRect.intersect(nextRect);
606
479
  }
607
480
 
481
+ function isNameLocationCenter(nameLocation) {
482
+ return nameLocation === 'middle' || nameLocation === 'center';
483
+ }
608
484
 
609
485
  /**
610
486
  * @static
611
487
  */
612
- var ifIgnoreOnTick = AxisBuilder.ifIgnoreOnTick = function (axis, i, interval) {
488
+ var ifIgnoreOnTick = AxisBuilder.ifIgnoreOnTick = function (
489
+ axis,
490
+ i,
491
+ interval,
492
+ ticksCnt,
493
+ showMinLabel,
494
+ showMaxLabel
495
+ ) {
496
+ if (i === 0 && showMinLabel || i === ticksCnt - 1 && showMaxLabel) {
497
+ return false;
498
+ }
499
+
500
+ // FIXME
501
+ // Have not consider label overlap (if label is too long) yet.
502
+
613
503
  var rawTick;
614
504
  var scale = axis.scale;
615
505
  return scale.type === 'ordinal'
@@ -634,5 +524,186 @@
634
524
  return interval;
635
525
  };
636
526
 
527
+ function buildAxisTick(axisBuilder, axisModel, opt) {
528
+ var axis = axisModel.axis;
529
+
530
+ if (!axisModel.get('axisTick.show') || axis.scale.isBlank()) {
531
+ return;
532
+ }
533
+
534
+ var tickModel = axisModel.getModel('axisTick');
535
+
536
+ var lineStyleModel = tickModel.getModel('lineStyle');
537
+ var tickLen = tickModel.get('length');
538
+
539
+ var tickInterval = getInterval(tickModel, opt.labelInterval);
540
+ var ticksCoords = axis.getTicksCoords(tickModel.get('alignWithLabel'));
541
+ // FIXME
542
+ // Corresponds to ticksCoords ?
543
+ var ticks = axis.scale.getTicks();
544
+
545
+ var showMinLabel = axisModel.get('axisLabel.showMinLabel');
546
+ var showMaxLabel = axisModel.get('axisLabel.showMaxLabel');
547
+
548
+ var pt1 = [];
549
+ var pt2 = [];
550
+ var matrix = axisBuilder._transform;
551
+
552
+ var tickEls = [];
553
+
554
+ var ticksCnt = ticksCoords.length;
555
+ for (var i = 0; i < ticksCnt; i++) {
556
+ // Only ordinal scale support tick interval
557
+ if (ifIgnoreOnTick(
558
+ axis, i, tickInterval, ticksCnt,
559
+ showMinLabel, showMaxLabel
560
+ )) {
561
+ continue;
562
+ }
563
+
564
+ var tickCoord = ticksCoords[i];
565
+
566
+ pt1[0] = tickCoord;
567
+ pt1[1] = 0;
568
+ pt2[0] = tickCoord;
569
+ pt2[1] = opt.tickDirection * tickLen;
570
+
571
+ if (matrix) {
572
+ v2ApplyTransform(pt1, pt1, matrix);
573
+ v2ApplyTransform(pt2, pt2, matrix);
574
+ }
575
+ // Tick line, Not use group transform to have better line draw
576
+ var tickEl = new graphic.Line(graphic.subPixelOptimizeLine({
577
+ // Id for animation
578
+ anid: 'tick_' + ticks[i],
579
+
580
+ shape: {
581
+ x1: pt1[0],
582
+ y1: pt1[1],
583
+ x2: pt2[0],
584
+ y2: pt2[1]
585
+ },
586
+ style: zrUtil.defaults(
587
+ lineStyleModel.getLineStyle(),
588
+ {
589
+ stroke: axisModel.get('axisLine.lineStyle.color')
590
+ }
591
+ ),
592
+ z2: 2,
593
+ silent: true
594
+ }));
595
+ axisBuilder.group.add(tickEl);
596
+ tickEls.push(tickEl);
597
+ }
598
+
599
+ return tickEls;
600
+ }
601
+
602
+ function buildAxisLabel(axisBuilder, axisModel, opt) {
603
+ var axis = axisModel.axis;
604
+ var show = retrieve(opt.axisLabelShow, axisModel.get('axisLabel.show'));
605
+
606
+ if (!show || axis.scale.isBlank()) {
607
+ return;
608
+ }
609
+
610
+ var labelModel = axisModel.getModel('axisLabel');
611
+ var labelMargin = labelModel.get('margin');
612
+ var ticks = axis.scale.getTicks();
613
+ var labels = axisModel.getFormattedLabels();
614
+
615
+ // Special label rotate.
616
+ var labelRotation = (
617
+ retrieve(opt.labelRotate, labelModel.get('rotate')) || 0
618
+ ) * PI / 180;
619
+
620
+ var labelLayout = innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);
621
+ var categoryData = axisModel.get('data');
622
+
623
+ var labelEls = [];
624
+ var silent = isSilent(axisModel);
625
+ var triggerEvent = axisModel.get('triggerEvent');
626
+
627
+ var showMinLabel = axisModel.get('axisLabel.showMinLabel');
628
+ var showMaxLabel = axisModel.get('axisLabel.showMaxLabel');
629
+
630
+ zrUtil.each(ticks, function (tickVal, index) {
631
+ if (ifIgnoreOnTick(
632
+ axis, index, opt.labelInterval, ticks.length,
633
+ showMinLabel, showMaxLabel
634
+ )) {
635
+ return;
636
+ }
637
+
638
+ var itemLabelModel = labelModel;
639
+ if (categoryData && categoryData[tickVal] && categoryData[tickVal].textStyle) {
640
+ itemLabelModel = new Model(
641
+ categoryData[tickVal].textStyle, labelModel, axisModel.ecModel
642
+ );
643
+ }
644
+
645
+ var textColor = itemLabelModel.getTextColor()
646
+ || axisModel.get('axisLine.lineStyle.color');
647
+
648
+ var tickCoord = axis.dataToCoord(tickVal);
649
+ var pos = [
650
+ tickCoord,
651
+ opt.labelOffset + opt.labelDirection * labelMargin
652
+ ];
653
+ var labelStr = axis.scale.getLabel(tickVal);
654
+
655
+ var textEl = new graphic.Text({
656
+ // Id for animation
657
+ anid: 'label_' + tickVal,
658
+ position: pos,
659
+ rotation: labelLayout.rotation,
660
+ silent: silent,
661
+ z2: 10
662
+ });
663
+
664
+ graphic.setTextStyle(textEl.style, itemLabelModel, {
665
+ text: labels[index],
666
+ textAlign: itemLabelModel.getShallow('align', true)
667
+ || labelLayout.textAlign,
668
+ textVerticalAlign: itemLabelModel.getShallow('verticalAlign', true)
669
+ || itemLabelModel.getShallow('baseline', true)
670
+ || labelLayout.textVerticalAlign,
671
+ textFill: typeof textColor === 'function'
672
+ ? textColor(
673
+ // (1) In category axis with data zoom, tick is not the original
674
+ // index of axis.data. So tick should not be exposed to user
675
+ // in category axis.
676
+ // (2) Compatible with previous version, which always returns labelStr.
677
+ // But in interval scale labelStr is like '223,445', which maked
678
+ // user repalce ','. So we modify it to return original val but remain
679
+ // it as 'string' to avoid error in replacing.
680
+ axis.type === 'category' ? labelStr : axis.type === 'value' ? tickVal + '' : tickVal,
681
+ index
682
+ )
683
+ : textColor
684
+ });
685
+
686
+ // Pack data for mouse event
687
+ if (triggerEvent) {
688
+ textEl.eventData = makeAxisEventDataBase(axisModel);
689
+ textEl.eventData.targetType = 'axisLabel';
690
+ textEl.eventData.value = labelStr;
691
+ }
692
+
693
+ // FIXME
694
+ axisBuilder._dumbGroup.add(textEl);
695
+ textEl.updateTransform();
696
+
697
+ labelEls.push(textEl);
698
+ axisBuilder.group.add(textEl);
699
+
700
+ textEl.decomposeTransform();
701
+
702
+ });
703
+
704
+ return labelEls;
705
+ }
706
+
707
+
637
708
  module.exports = AxisBuilder;
638
709
 
@@ -9,7 +9,7 @@
9
9
  var getInterval = AxisBuilder.getInterval;
10
10
 
11
11
  var axisBuilderAttrs = [
12
- 'axisLine', 'axisLabel', 'axisTick', 'axisName'
12
+ 'axisLine', 'axisTickLabel', 'axisName'
13
13
  ];
14
14
  var selfBuilderAttrs = [
15
15
  'splitArea', 'splitLine'
@@ -97,13 +97,19 @@
97
97
  );
98
98
  var ticks = axis.scale.getTicks();
99
99
 
100
+ var showMinLabel = axisModel.get('axisLabel.showMinLabel');
101
+ var showMaxLabel = axisModel.get('axisLabel.showMaxLabel');
102
+
100
103
  var p1 = [];
101
104
  var p2 = [];
102
105
  // Simple optimization
103
106
  // Batching the lines if color are the same
104
107
  var lineStyle = lineStyleModel.getLineStyle();
105
108
  for (var i = 0; i < ticksCoords.length; i++) {
106
- if (ifIgnoreOnTick(axis, i, lineInterval)) {
109
+ if (ifIgnoreOnTick(
110
+ axis, i, lineInterval, ticksCoords.length,
111
+ showMinLabel, showMaxLabel
112
+ )) {
107
113
  continue;
108
114
  }
109
115
 
@@ -174,8 +180,14 @@
174
180
  var areaStyle = areaStyleModel.getAreaStyle();
175
181
  areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];
176
182
 
183
+ var showMinLabel = axisModel.get('axisLabel.showMinLabel');
184
+ var showMaxLabel = axisModel.get('axisLabel.showMaxLabel');
185
+
177
186
  for (var i = 1; i < ticksCoords.length; i++) {
178
- if (ifIgnoreOnTick(axis, i, areaInterval)) {
187
+ if (ifIgnoreOnTick(
188
+ axis, i, areaInterval, ticksCoords.length,
189
+ showMinLabel, showMaxLabel
190
+ )) {
179
191
  continue;
180
192
  }
181
193
 
@@ -6,7 +6,7 @@
6
6
  var brushHelper = require('../helper/brushHelper');
7
7
  var graphic = require('../../util/graphic');
8
8
 
9
- var elementList = ['axisLine', 'axisLabel', 'axisTick', 'axisName'];
9
+ var elementList = ['axisLine', 'axisTickLabel', 'axisName'];
10
10
 
11
11
  var AxisView = require('../../echarts').extendComponentView({
12
12
 
@@ -6,7 +6,7 @@
6
6
  var AxisBuilder = require('./AxisBuilder');
7
7
 
8
8
  var axisBuilderAttrs = [
9
- 'axisLine', 'axisLabel', 'axisTick', 'axisName'
9
+ 'axisLine', 'axisTickLabel', 'axisName'
10
10
  ];
11
11
  var selfBuilderAttrs = [
12
12
  'splitLine', 'splitArea'
@@ -8,7 +8,7 @@
8
8
  var ifIgnoreOnTick = AxisBuilder.ifIgnoreOnTick;
9
9
 
10
10
  var axisBuilderAttrs = [
11
- 'axisLine', 'axisLabel', 'axisTick', 'axisName'
11
+ 'axisLine', 'axisTickLabel', 'axisName'
12
12
  ];
13
13
 
14
14
  var selfBuilderAttr = 'splitLine';
@@ -66,8 +66,14 @@
66
66
  var p1 = [];
67
67
  var p2 = [];
68
68
 
69
+ var showMinLabel = axisModel.get('axisLabel.showMinLabel');
70
+ var showMaxLabel = axisModel.get('axisLabel.showMaxLabel');
71
+
69
72
  for (var i = 0; i < ticksCoords.length; ++i) {
70
- if (ifIgnoreOnTick(axis, i, lineInterval)) {
73
+ if (ifIgnoreOnTick(
74
+ axis, i, lineInterval, ticksCoords.length,
75
+ showMinLabel, showMaxLabel
76
+ )) {
71
77
  continue;
72
78
  }
73
79
  var tickCoord = axis.toGlobalCoord(ticksCoords[i]);
@@ -113,7 +113,9 @@
113
113
 
114
114
 
115
115
  function mousedown(e) {
116
- if (e.target && e.target.draggable) {
116
+ if (eventTool.notLeftMouse(e)
117
+ || (e.target && e.target.draggable)
118
+ ) {
117
119
  return;
118
120
  }
119
121
 
@@ -130,15 +132,12 @@
130
132
  }
131
133
 
132
134
  function mousemove(e) {
133
- if (!checkKeyBinding(this, 'moveOnMouseMove', e) || !this._dragging) {
134
- return;
135
- }
136
-
137
- if (e.gestureEvent === 'pinch') {
138
- return;
139
- }
140
-
141
- if (interactionMutex.isTaken(this._zr, 'globalPan')) {
135
+ if (eventTool.notLeftMouse(e)
136
+ || !checkKeyBinding(this, 'moveOnMouseMove', e)
137
+ || !this._dragging
138
+ || e.gestureEvent === 'pinch'
139
+ || interactionMutex.isTaken(this._zr, 'globalPan')
140
+ ) {
142
141
  return;
143
142
  }
144
143
 
@@ -160,7 +159,9 @@
160
159
  }
161
160
 
162
161
  function mouseup(e) {
163
- this._dragging = false;
162
+ if (!eventTool.notLeftMouse(e)) {
163
+ this._dragging = false;
164
+ }
164
165
  }
165
166
 
166
167
  function mousewheel(e) {
@@ -221,7 +221,7 @@
221
221
  )
222
222
  );
223
223
 
224
- polygon.hoverStyle = itemModel.getModel('itemStyle.normal').getItemStyle();
224
+ polygon.hoverStyle = itemModel.getModel('itemStyle.emphasis').getItemStyle();
225
225
 
226
226
  graphic.setLabelStyle(
227
227
  polygon.style, polygon.hoverStyle, labelModel, labelHoverModel,
@@ -5,7 +5,7 @@
5
5
  var graphic = require('../../util/graphic');
6
6
 
7
7
  var axisBuilderAttrs = [
8
- 'axisLine', 'axisLabel', 'axisTick', 'axisName'
8
+ 'axisLine', 'axisTickLabel', 'axisName'
9
9
  ];
10
10
 
11
11
  module.exports = require('../../echarts').extendComponentView({
@@ -3,6 +3,7 @@
3
3
 
4
4
  var featureManager = require('../featureManager');
5
5
  var zrUtil = require('zrender/lib/core/util');
6
+ var lang = require('../../../lang').toolbox.brush;
6
7
 
7
8
  function Brush(model, ecModel, api) {
8
9
  this.model = model;
@@ -33,14 +34,8 @@
33
34
  keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z', // jshint ignore:line
34
35
  clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2' // jshint ignore:line
35
36
  },
36
- title: {
37
- rect: '矩形选择',
38
- polygon: '圈选',
39
- lineX: '横向选择',
40
- lineY: '纵向选择',
41
- keep: '保持选择',
42
- clear: '清除选择'
43
- }
37
+ // `rect`, `polygon`, `lineX`, `lineY`, `keep`, `clear`
38
+ title: zrUtil.clone(lang.title)
44
39
  };
45
40
 
46
41
  var proto = Brush.prototype;