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.
- package/LICENSE +21 -18
- package/dist/echarts.common.js +10072 -9330
- package/dist/echarts.common.min.js +13 -13
- package/dist/echarts.js +13084 -11412
- package/dist/echarts.min.js +22 -21
- package/dist/echarts.simple.js +9454 -8889
- package/dist/echarts.simple.min.js +9 -10
- package/index.js +1 -0
- package/lib/chart/bar/BarView.js +141 -49
- package/lib/chart/bar/BaseBarSeries.js +2 -6
- package/lib/chart/bar.js +1 -0
- package/lib/chart/boxplot/BoxplotSeries.js +1 -1
- package/lib/chart/boxplot/boxplotLayout.js +23 -7
- package/lib/chart/candlestick/CandlestickSeries.js +1 -21
- package/lib/chart/candlestick/candlestickLayout.js +23 -7
- package/lib/chart/custom.js +442 -0
- package/lib/chart/graph/categoryVisual.js +3 -2
- package/lib/chart/heatmap/HeatmapView.js +75 -73
- package/lib/chart/helper/Symbol.js +8 -31
- package/lib/chart/helper/createListFromArray.js +15 -10
- package/lib/chart/helper/labelHelper.js +48 -0
- package/lib/chart/helper/whiskerBoxCommon.js +25 -44
- package/lib/chart/map/mapDataStatistic.js +9 -8
- package/lib/chart/pie/pieLayout.js +25 -17
- package/lib/chart/radar/RadarSeries.js +1 -1
- package/lib/chart/scatter/ScatterSeries.js +2 -3
- package/lib/chart/themeRiver/ThemeRiverSeries.js +6 -5
- package/lib/chart/themeRiver/themeRiverVisual.js +1 -1
- package/lib/chart/treemap/TreemapSeries.js +3 -3
- package/lib/component/axisPointer/BaseAxisPointer.js +7 -6
- package/lib/component/axisPointer/axisTrigger.js +62 -51
- package/lib/component/axisPointer.js +1 -2
- package/lib/component/calendar/CalendarView.js +5 -5
- package/lib/component/dataZoom/AxisProxy.js +76 -13
- package/lib/component/dataZoom/DataZoomModel.js +21 -5
- package/lib/component/dataZoom/InsideZoomModel.js +4 -1
- package/lib/component/dataZoom/InsideZoomView.js +16 -26
- package/lib/component/dataZoom/SliderZoomView.js +63 -26
- package/lib/component/dataZoom/roams.js +8 -3
- package/lib/component/graphic.js +13 -12
- package/lib/component/helper/BrushTargetManager.js +5 -5
- package/lib/component/helper/MapDraw.js +3 -3
- package/lib/component/helper/RoamController.js +43 -20
- package/lib/component/helper/brushHelper.js +2 -13
- package/lib/component/helper/selectableMixin.js +7 -7
- package/lib/component/helper/sliderMove.js +65 -36
- package/lib/component/legend/LegendView.js +6 -6
- package/lib/component/legend/legendAction.js +1 -1
- package/lib/component/marker/MarkAreaView.js +3 -6
- package/lib/component/marker/MarkLineView.js +3 -5
- package/lib/component/marker/MarkPointView.js +3 -5
- package/lib/component/marker/MarkerView.js +10 -12
- package/lib/component/polar.js +5 -0
- package/lib/component/timeline/SliderTimelineView.js +1 -1
- package/lib/component/toolbox/feature/DataZoom.js +14 -1
- package/lib/component/tooltip/TooltipView.js +3 -3
- package/lib/component/visualMap/ContinuousView.js +6 -4
- package/lib/coord/Axis.js +34 -2
- package/lib/coord/axisDefault.js +2 -1
- package/lib/coord/axisHelper.js +6 -25
- package/lib/coord/axisModelCommonMixin.js +1 -1
- package/lib/coord/calendar/Calendar.js +14 -17
- package/lib/coord/calendar/prepareCustom.js +31 -0
- package/lib/coord/cartesian/Axis2D.js +0 -12
- package/lib/coord/cartesian/Cartesian2D.js +1 -0
- package/lib/coord/cartesian/Grid.js +5 -2
- package/lib/coord/cartesian/prepareCustom.js +36 -0
- package/lib/coord/geo/Geo.js +9 -14
- package/lib/coord/geo/GeoModel.js +5 -5
- package/lib/coord/geo/geoCreator.js +3 -3
- package/lib/coord/geo/prepareCustom.js +36 -0
- package/lib/coord/parallel/Parallel.js +12 -11
- package/lib/coord/polar/Polar.js +2 -1
- package/lib/coord/polar/prepareCustom.js +53 -0
- package/lib/coord/single/Single.js +9 -8
- package/lib/coord/single/SingleAxis.js +0 -27
- package/lib/coord/single/prepareCustom.js +33 -0
- package/lib/data/DataDiffer.js +2 -1
- package/lib/data/Graph.js +11 -7
- package/lib/data/List.js +58 -19
- package/lib/data/helper/completeDimensions.js +184 -23
- package/lib/echarts.js +38 -33
- package/lib/helper.js +1 -8
- package/lib/layout/barGrid.js +87 -18
- package/lib/layout/barPolar.js +286 -0
- package/lib/layout/points.js +22 -16
- package/lib/model/Global.js +34 -31
- package/lib/model/Series.js +41 -29
- package/lib/model/mixin/colorPalette.js +2 -1
- package/lib/model/mixin/textStyle.js +7 -13
- package/lib/scale/Interval.js +21 -14
- package/lib/scale/Log.js +5 -7
- package/lib/scale/Time.js +13 -7
- package/lib/scale/helper.js +5 -1
- package/lib/util/format.js +12 -0
- package/lib/util/graphic.js +53 -1
- package/lib/util/model.js +63 -7
- package/map/js/world.js +1 -1
- package/map/json/world.json +1 -1
- package/package.json +3 -3
- package/src/chart/bar/BarView.js +141 -49
- package/src/chart/bar/BaseBarSeries.js +2 -6
- package/src/chart/bar.js +1 -0
- package/src/chart/boxplot/BoxplotSeries.js +1 -1
- package/src/chart/boxplot/boxplotLayout.js +23 -7
- package/src/chart/candlestick/CandlestickSeries.js +1 -21
- package/src/chart/candlestick/candlestickLayout.js +23 -7
- package/src/chart/custom.js +442 -0
- package/src/chart/graph/categoryVisual.js +3 -2
- package/src/chart/heatmap/HeatmapView.js +75 -73
- package/src/chart/helper/Symbol.js +8 -31
- package/src/chart/helper/createListFromArray.js +15 -10
- package/src/chart/helper/labelHelper.js +49 -0
- package/src/chart/helper/whiskerBoxCommon.js +25 -44
- package/src/chart/map/mapDataStatistic.js +9 -8
- package/src/chart/pie/pieLayout.js +25 -17
- package/src/chart/radar/RadarSeries.js +1 -1
- package/src/chart/scatter/ScatterSeries.js +2 -3
- package/src/chart/themeRiver/ThemeRiverSeries.js +6 -5
- package/src/chart/themeRiver/themeRiverVisual.js +1 -1
- package/src/chart/treemap/TreemapSeries.js +3 -3
- package/src/component/axisPointer/BaseAxisPointer.js +7 -6
- package/src/component/axisPointer/axisTrigger.js +62 -51
- package/src/component/axisPointer.js +1 -2
- package/src/component/calendar/CalendarView.js +5 -5
- package/src/component/dataZoom/AxisProxy.js +76 -13
- package/src/component/dataZoom/DataZoomModel.js +21 -5
- package/src/component/dataZoom/InsideZoomModel.js +4 -1
- package/src/component/dataZoom/InsideZoomView.js +16 -26
- package/src/component/dataZoom/SliderZoomView.js +63 -26
- package/src/component/dataZoom/roams.js +8 -3
- package/src/component/graphic.js +13 -12
- package/src/component/helper/BrushTargetManager.js +5 -5
- package/src/component/helper/MapDraw.js +3 -3
- package/src/component/helper/RoamController.js +43 -20
- package/src/component/helper/brushHelper.js +2 -13
- package/src/component/helper/selectableMixin.js +7 -7
- package/src/component/helper/sliderMove.js +65 -36
- package/src/component/legend/LegendView.js +6 -6
- package/src/component/legend/legendAction.js +1 -1
- package/src/component/marker/MarkAreaView.js +3 -6
- package/src/component/marker/MarkLineView.js +3 -5
- package/src/component/marker/MarkPointView.js +3 -5
- package/src/component/marker/MarkerView.js +10 -12
- package/src/component/polar.js +5 -0
- package/src/component/timeline/SliderTimelineView.js +1 -1
- package/src/component/toolbox/feature/DataZoom.js +14 -1
- package/src/component/tooltip/TooltipView.js +3 -3
- package/src/component/visualMap/ContinuousView.js +6 -4
- package/src/coord/Axis.js +34 -2
- package/src/coord/axisDefault.js +2 -1
- package/src/coord/axisHelper.js +6 -25
- package/src/coord/axisModelCommonMixin.js +1 -1
- package/src/coord/calendar/Calendar.js +14 -17
- package/src/coord/calendar/prepareCustom.js +32 -0
- package/src/coord/cartesian/Axis2D.js +0 -12
- package/src/coord/cartesian/Cartesian2D.js +1 -0
- package/src/coord/cartesian/Grid.js +5 -2
- package/src/coord/cartesian/prepareCustom.js +37 -0
- package/src/coord/geo/Geo.js +9 -14
- package/src/coord/geo/GeoModel.js +5 -5
- package/src/coord/geo/geoCreator.js +3 -3
- package/src/coord/geo/prepareCustom.js +37 -0
- package/src/coord/parallel/Parallel.js +12 -11
- package/src/coord/polar/Polar.js +2 -1
- package/src/coord/polar/prepareCustom.js +54 -0
- package/src/coord/single/Single.js +9 -8
- package/src/coord/single/SingleAxis.js +0 -27
- package/src/coord/single/prepareCustom.js +34 -0
- package/src/data/DataDiffer.js +2 -1
- package/src/data/Graph.js +11 -7
- package/src/data/List.js +58 -19
- package/src/data/helper/completeDimensions.js +184 -23
- package/src/echarts.js +38 -33
- package/src/helper.js +1 -8
- package/src/layout/barGrid.js +87 -18
- package/src/layout/barPolar.js +287 -0
- package/src/layout/points.js +22 -16
- package/src/model/Global.js +34 -31
- package/src/model/Series.js +41 -29
- package/src/model/mixin/colorPalette.js +2 -1
- package/src/model/mixin/textStyle.js +7 -13
- package/src/scale/Interval.js +21 -14
- package/src/scale/Log.js +5 -7
- package/src/scale/Time.js +13 -7
- package/src/scale/helper.js +5 -1
- package/src/util/format.js +12 -0
- package/src/util/graphic.js +53 -1
- package/src/util/model.js +63 -7
- package/src/coord/cartesian/axisLabelInterval.js +0 -26
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
? 'right' : 'left';
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
var legendDrawedMap =
|
|
66
|
+
var legendDrawedMap = zrUtil.createHashMap();
|
|
67
67
|
|
|
68
68
|
zrUtil.each(legendModel.getData(), function (itemModel) {
|
|
69
69
|
var name = itemModel.get('name');
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
|
|
79
79
|
var seriesModel = ecModel.getSeriesByName(name)[0];
|
|
80
80
|
|
|
81
|
-
if (legendDrawedMap
|
|
81
|
+
if (legendDrawedMap.get(name)) {
|
|
82
82
|
// Have been drawed
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
@@ -109,13 +109,13 @@
|
|
|
109
109
|
.on('mouseover', curry(dispatchHighlightAction, seriesModel, null, api))
|
|
110
110
|
.on('mouseout', curry(dispatchDownplayAction, seriesModel, null, api));
|
|
111
111
|
|
|
112
|
-
legendDrawedMap
|
|
112
|
+
legendDrawedMap.set(name, true);
|
|
113
113
|
}
|
|
114
114
|
else {
|
|
115
115
|
// Data legend of pie, funnel
|
|
116
116
|
ecModel.eachRawSeries(function (seriesModel) {
|
|
117
117
|
// In case multiple series has same data name
|
|
118
|
-
if (legendDrawedMap
|
|
118
|
+
if (legendDrawedMap.get(name)) {
|
|
119
119
|
return;
|
|
120
120
|
}
|
|
121
121
|
if (seriesModel.legendDataProvider) {
|
|
@@ -141,13 +141,13 @@
|
|
|
141
141
|
.on('mouseover', curry(dispatchHighlightAction, seriesModel, name, api))
|
|
142
142
|
.on('mouseout', curry(dispatchDownplayAction, seriesModel, name, api));
|
|
143
143
|
|
|
144
|
-
legendDrawedMap
|
|
144
|
+
legendDrawedMap.set(name, true);
|
|
145
145
|
}
|
|
146
146
|
}, this);
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
if (__DEV__) {
|
|
150
|
-
if (!legendDrawedMap
|
|
150
|
+
if (!legendDrawedMap.get(name)) {
|
|
151
151
|
console.warn(name + ' series not exists. Legend data should be same with series name or data name.');
|
|
152
152
|
}
|
|
153
153
|
}
|
|
@@ -155,12 +155,9 @@
|
|
|
155
155
|
var seriesData = seriesModel.getData();
|
|
156
156
|
|
|
157
157
|
var areaGroupMap = this.markerGroupMap;
|
|
158
|
-
var polygonGroup = areaGroupMap
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
group: new graphic.Group()
|
|
162
|
-
};
|
|
163
|
-
}
|
|
158
|
+
var polygonGroup = areaGroupMap.get(seriesName)
|
|
159
|
+
|| areaGroupMap.set(seriesName, {group: new graphic.Group()});
|
|
160
|
+
|
|
164
161
|
this.group.add(polygonGroup.group);
|
|
165
162
|
polygonGroup.__keep = true;
|
|
166
163
|
|
|
@@ -200,7 +200,7 @@
|
|
|
200
200
|
]);
|
|
201
201
|
});
|
|
202
202
|
|
|
203
|
-
this.markerGroupMap
|
|
203
|
+
this.markerGroupMap.get(seriesModel.name).updateLayout();
|
|
204
204
|
|
|
205
205
|
}
|
|
206
206
|
}, this);
|
|
@@ -212,10 +212,8 @@
|
|
|
212
212
|
var seriesData = seriesModel.getData();
|
|
213
213
|
|
|
214
214
|
var lineDrawMap = this.markerGroupMap;
|
|
215
|
-
var lineDraw = lineDrawMap
|
|
216
|
-
|
|
217
|
-
lineDraw = lineDrawMap[seriesName] = new LineDraw();
|
|
218
|
-
}
|
|
215
|
+
var lineDraw = lineDrawMap.get(seriesName)
|
|
216
|
+
|| lineDrawMap.set(seriesName, new LineDraw());
|
|
219
217
|
this.group.add(lineDraw.group);
|
|
220
218
|
|
|
221
219
|
var mlData = createList(coordSys, seriesModel, mlModel);
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
var mpModel = seriesModel.markPointModel;
|
|
54
54
|
if (mpModel) {
|
|
55
55
|
updateMarkerLayout(mpModel.getData(), seriesModel, api);
|
|
56
|
-
this.markerGroupMap
|
|
56
|
+
this.markerGroupMap.get(seriesModel.name).updateLayout(mpModel);
|
|
57
57
|
}
|
|
58
58
|
}, this);
|
|
59
59
|
},
|
|
@@ -64,10 +64,8 @@
|
|
|
64
64
|
var seriesData = seriesModel.getData();
|
|
65
65
|
|
|
66
66
|
var symbolDrawMap = this.markerGroupMap;
|
|
67
|
-
var symbolDraw = symbolDrawMap
|
|
68
|
-
|
|
69
|
-
symbolDraw = symbolDrawMap[seriesName] = new SymbolDraw();
|
|
70
|
-
}
|
|
67
|
+
var symbolDraw = symbolDrawMap.get(seriesName)
|
|
68
|
+
|| symbolDrawMap.set(seriesName, new SymbolDraw());
|
|
71
69
|
|
|
72
70
|
var mpData = createList(coordSys, seriesModel, mpModel);
|
|
73
71
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
var zrUtil = require('zrender/lib/core/util');
|
|
4
|
+
|
|
3
5
|
module.exports = require('../../echarts').extendComponentView({
|
|
4
6
|
|
|
5
7
|
type: 'marker',
|
|
@@ -8,18 +10,16 @@
|
|
|
8
10
|
/**
|
|
9
11
|
* Markline grouped by series
|
|
10
12
|
* @private
|
|
11
|
-
* @type {
|
|
13
|
+
* @type {module:zrender/core/util.HashMap}
|
|
12
14
|
*/
|
|
13
|
-
this.markerGroupMap =
|
|
15
|
+
this.markerGroupMap = zrUtil.createHashMap();
|
|
14
16
|
},
|
|
15
17
|
|
|
16
18
|
render: function (markerModel, ecModel, api) {
|
|
17
19
|
var markerGroupMap = this.markerGroupMap;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
}
|
|
20
|
+
markerGroupMap.each(function (item) {
|
|
21
|
+
item.__keep = false;
|
|
22
|
+
});
|
|
23
23
|
|
|
24
24
|
var markerModelKey = this.type + 'Model';
|
|
25
25
|
ecModel.eachSeries(function (seriesModel) {
|
|
@@ -27,11 +27,9 @@
|
|
|
27
27
|
markerModel && this.renderSeries(seriesModel, markerModel, ecModel, api);
|
|
28
28
|
}, this);
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
}
|
|
30
|
+
markerGroupMap.each(function (item) {
|
|
31
|
+
!item.__keep && this.group.remove(item.group);
|
|
32
|
+
}, this);
|
|
35
33
|
},
|
|
36
34
|
|
|
37
35
|
renderSeries: function () {}
|
package/lib/component/polar.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
var zrUtil = require('zrender/lib/core/util');
|
|
5
|
+
|
|
4
6
|
require('../coord/polar/polarCreator');
|
|
5
7
|
require('./angleAxis');
|
|
6
8
|
require('./radiusAxis');
|
|
@@ -8,6 +10,9 @@
|
|
|
8
10
|
|
|
9
11
|
require('./axisPointer/PolarAxisPointer');
|
|
10
12
|
|
|
13
|
+
// For reducing size of echarts.min, barLayoutPolar is required by polar.
|
|
14
|
+
require('../echarts').registerLayout(zrUtil.curry(require('../layout/barPolar'), 'bar'));
|
|
15
|
+
|
|
11
16
|
// Polar view
|
|
12
17
|
require('../echarts').extendComponentView({
|
|
13
18
|
type: 'polar'
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
var BrushController = require('../../helper/BrushController');
|
|
6
6
|
var BrushTargetManager = require('../../helper/BrushTargetManager');
|
|
7
7
|
var history = require('../../dataZoom/history');
|
|
8
|
+
var sliderMove = require('../../helper/sliderMove');
|
|
8
9
|
|
|
9
10
|
var each = zrUtil.each;
|
|
10
11
|
|
|
@@ -122,7 +123,19 @@
|
|
|
122
123
|
this._dispatchZoomAction(snapshot);
|
|
123
124
|
|
|
124
125
|
function setBatch(dimName, coordSys, minMax) {
|
|
125
|
-
var
|
|
126
|
+
var axis = coordSys.getAxis(dimName);
|
|
127
|
+
var axisModel = axis.model;
|
|
128
|
+
var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);
|
|
129
|
+
|
|
130
|
+
// Restrict range.
|
|
131
|
+
var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();
|
|
132
|
+
if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {
|
|
133
|
+
minMax = sliderMove(
|
|
134
|
+
0, minMax.slice(), axis.scale.getExtent(), 0,
|
|
135
|
+
minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
|
|
126
139
|
dataZoomModel && (snapshot[dataZoomModel.id] = {
|
|
127
140
|
dataZoomId: dataZoomModel.id,
|
|
128
141
|
startValue: minMax[0],
|
|
@@ -613,13 +613,13 @@
|
|
|
613
613
|
var contentNotChanged = !!lastCoordSys
|
|
614
614
|
&& lastCoordSys.length === dataByCoordSys.length;
|
|
615
615
|
|
|
616
|
-
each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {
|
|
616
|
+
contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {
|
|
617
617
|
var lastDataByAxis = lastItemCoordSys.dataByAxis || {};
|
|
618
618
|
var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};
|
|
619
619
|
var thisDataByAxis = thisItemCoordSys.dataByAxis || [];
|
|
620
620
|
contentNotChanged &= lastDataByAxis.length === thisDataByAxis.length;
|
|
621
621
|
|
|
622
|
-
each(lastDataByAxis, function (lastItem, indexAxis) {
|
|
622
|
+
contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {
|
|
623
623
|
var thisItem = thisDataByAxis[indexAxis] || {};
|
|
624
624
|
var lastIndices = lastItem.seriesDataIndices || [];
|
|
625
625
|
var newIndices = thisItem.seriesDataIndices || [];
|
|
@@ -630,7 +630,7 @@
|
|
|
630
630
|
&& lastItem.axisId === thisItem.axisId
|
|
631
631
|
&& lastIndices.length === newIndices.length;
|
|
632
632
|
|
|
633
|
-
each(lastIndices, function (lastIdxItem, j) {
|
|
633
|
+
contentNotChanged && each(lastIndices, function (lastIdxItem, j) {
|
|
634
634
|
var newIdxItem = newIndices[j];
|
|
635
635
|
contentNotChanged &=
|
|
636
636
|
lastIdxItem.seriesIndex === newIdxItem.seriesIndex
|
|
@@ -355,16 +355,18 @@
|
|
|
355
355
|
delta = delta || 0;
|
|
356
356
|
var visualMapModel = this.visualMapModel;
|
|
357
357
|
var handleEnds = this._handleEnds;
|
|
358
|
+
var sizeExtent = [0, visualMapModel.itemSize[1]];
|
|
358
359
|
|
|
359
360
|
sliderMove(
|
|
360
361
|
delta,
|
|
361
362
|
handleEnds,
|
|
362
|
-
|
|
363
|
-
handleIndex
|
|
364
|
-
|
|
363
|
+
sizeExtent,
|
|
364
|
+
handleIndex,
|
|
365
|
+
// cross is forbiden
|
|
366
|
+
0
|
|
365
367
|
);
|
|
368
|
+
|
|
366
369
|
var dataExtent = visualMapModel.getExtent();
|
|
367
|
-
var sizeExtent = [0, visualMapModel.itemSize[1]];
|
|
368
370
|
// Update data interval.
|
|
369
371
|
this._dataInterval = [
|
|
370
372
|
linearMap(handleEnds[0], sizeExtent, dataExtent, true),
|
package/lib/coord/Axis.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var numberUtil = require('../util/number');
|
|
4
4
|
var linearMap = numberUtil.linearMap;
|
|
5
5
|
var zrUtil = require('zrender/lib/core/util');
|
|
6
|
+
var axisHelper = require('./axisHelper');
|
|
6
7
|
|
|
7
8
|
function fixExtentWithBands(extent, nTick) {
|
|
8
9
|
var size = extent[1] - extent[0];
|
|
@@ -47,6 +48,12 @@
|
|
|
47
48
|
* @type {boolean}
|
|
48
49
|
*/
|
|
49
50
|
this.onBand = false;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* @private
|
|
54
|
+
* @type {number}
|
|
55
|
+
*/
|
|
56
|
+
this._labelInterval;
|
|
50
57
|
};
|
|
51
58
|
|
|
52
59
|
Axis.prototype = {
|
|
@@ -79,8 +86,7 @@
|
|
|
79
86
|
* @return {Array.<number>}
|
|
80
87
|
*/
|
|
81
88
|
getExtent: function () {
|
|
82
|
-
|
|
83
|
-
return ret;
|
|
89
|
+
return this._extent.slice();
|
|
84
90
|
},
|
|
85
91
|
|
|
86
92
|
/**
|
|
@@ -224,6 +230,32 @@
|
|
|
224
230
|
var size = Math.abs(axisExtent[1] - axisExtent[0]);
|
|
225
231
|
|
|
226
232
|
return Math.abs(size) / len;
|
|
233
|
+
},
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Get interval of the axis label.
|
|
237
|
+
* @return {number}
|
|
238
|
+
*/
|
|
239
|
+
getLabelInterval: function () {
|
|
240
|
+
var labelInterval = this._labelInterval;
|
|
241
|
+
if (!labelInterval) {
|
|
242
|
+
var axisModel = this.model;
|
|
243
|
+
var labelModel = axisModel.getModel('axisLabel');
|
|
244
|
+
var interval = labelModel.get('interval');
|
|
245
|
+
if (!(this.type === 'category' && interval === 'auto')) {
|
|
246
|
+
labelInterval = interval === 'auto' ? 0 : interval;
|
|
247
|
+
}
|
|
248
|
+
else if (this.isHorizontal){
|
|
249
|
+
labelInterval = axisHelper.getAxisLabelInterval(
|
|
250
|
+
zrUtil.map(this.scale.getTicks(), this.dataToCoord, this),
|
|
251
|
+
axisModel.getFormattedLabels(),
|
|
252
|
+
labelModel.getModel('textStyle').getFont(),
|
|
253
|
+
this.isHorizontal()
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
this._labelInterval = labelInterval;
|
|
257
|
+
}
|
|
258
|
+
return labelInterval;
|
|
227
259
|
}
|
|
228
260
|
|
|
229
261
|
};
|
package/lib/coord/axisDefault.js
CHANGED
package/lib/coord/axisHelper.js
CHANGED
|
@@ -114,31 +114,12 @@
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
scale.setExtent(extent[0], extent[1]);
|
|
117
|
-
scale.niceExtent(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
// minInterval is 1, calculated interval is 0.2, so increase it to be 1. In this way we can get
|
|
124
|
-
// an integer axis.
|
|
125
|
-
var minInterval = model.get('minInterval');
|
|
126
|
-
if (isFinite(minInterval) && !fixMin && !fixMax && scale.type === 'interval') {
|
|
127
|
-
var interval = scale.getInterval();
|
|
128
|
-
var intervalScale = Math.max(Math.abs(interval), minInterval) / interval;
|
|
129
|
-
// while (interval < minInterval) {
|
|
130
|
-
// var quantity = numberUtil.quantity(interval);
|
|
131
|
-
// interval = quantity * 10;
|
|
132
|
-
// scaleQuantity *= 10;
|
|
133
|
-
// }
|
|
134
|
-
extent = scale.getExtent();
|
|
135
|
-
var origin = (extent[1] + extent[0]) / 2;
|
|
136
|
-
scale.setExtent(
|
|
137
|
-
intervalScale * (extent[0] - origin) + origin,
|
|
138
|
-
intervalScale * (extent[1] - origin) + origin
|
|
139
|
-
);
|
|
140
|
-
scale.niceExtent(splitNumber);
|
|
141
|
-
}
|
|
117
|
+
scale.niceExtent({
|
|
118
|
+
splitNumber: splitNumber,
|
|
119
|
+
fixMin: fixMin,
|
|
120
|
+
fixMax: fixMax,
|
|
121
|
+
minInterval: scale.type === 'interval' ? model.get('minInterval') : null
|
|
122
|
+
});
|
|
142
123
|
|
|
143
124
|
// If some one specified the min, max. And the default calculated interval
|
|
144
125
|
// is not good enough. He can specify the interval. It is often appeared
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
return [{name: 'time', type: 'time'}];
|
|
35
35
|
},
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
getRangeInfo: function () {
|
|
38
38
|
return this._rangeInfo;
|
|
39
39
|
},
|
|
40
40
|
|
|
@@ -160,18 +160,20 @@
|
|
|
160
160
|
* Convert a time data(time, value) item to (x, y) point.
|
|
161
161
|
*
|
|
162
162
|
* @override
|
|
163
|
-
* @param {Array} data
|
|
164
|
-
* @param {boolean}
|
|
165
|
-
* @return {Array}
|
|
163
|
+
* @param {Array|number} data data
|
|
164
|
+
* @param {boolean} [clamp=true] out of range
|
|
165
|
+
* @return {Array} point
|
|
166
166
|
*/
|
|
167
|
-
dataToPoint: function (data,
|
|
167
|
+
dataToPoint: function (data, clamp) {
|
|
168
|
+
zrUtil.isArray(data) && (data = data[0]);
|
|
169
|
+
clamp == null && (clamp = true);
|
|
168
170
|
|
|
169
|
-
var dayInfo = this.getDateInfo(data
|
|
171
|
+
var dayInfo = this.getDateInfo(data);
|
|
170
172
|
var range = this._rangeInfo;
|
|
171
173
|
var date = dayInfo.formatedDate;
|
|
172
174
|
|
|
173
175
|
// if not in range return [NaN, NaN]
|
|
174
|
-
if (
|
|
176
|
+
if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time <= range.end.time)) {
|
|
175
177
|
return [NaN, NaN];
|
|
176
178
|
}
|
|
177
179
|
|
|
@@ -211,12 +213,11 @@
|
|
|
211
213
|
* Convert a time date item to (x, y) four point.
|
|
212
214
|
*
|
|
213
215
|
* @param {Array} data date[0] is date
|
|
214
|
-
* @param {boolean}
|
|
216
|
+
* @param {boolean} [clamp=true] out of range
|
|
215
217
|
* @return {Object} point
|
|
216
218
|
*/
|
|
217
|
-
dataToRect: function (data,
|
|
218
|
-
|
|
219
|
-
var point = this.dataToPoint(data, noClip);
|
|
219
|
+
dataToRect: function (data, clamp) {
|
|
220
|
+
var point = this.dataToPoint(data, clamp);
|
|
220
221
|
|
|
221
222
|
return {
|
|
222
223
|
contentShape: {
|
|
@@ -270,16 +271,12 @@
|
|
|
270
271
|
},
|
|
271
272
|
|
|
272
273
|
/**
|
|
273
|
-
* @
|
|
274
|
-
* @implements
|
|
275
|
-
* see {module:echarts/CoodinateSystem}
|
|
274
|
+
* @inheritDoc
|
|
276
275
|
*/
|
|
277
276
|
convertToPixel: zrUtil.curry(doConvert, 'dataToPoint'),
|
|
278
277
|
|
|
279
278
|
/**
|
|
280
|
-
* @
|
|
281
|
-
* @implements
|
|
282
|
-
* see {module:echarts/CoodinateSystem}
|
|
279
|
+
* @inheritDoc
|
|
283
280
|
*/
|
|
284
281
|
convertFromPixel: zrUtil.curry(doConvert, 'pointToData'),
|
|
285
282
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
var zrUtil = require('zrender/lib/core/util');
|
|
4
|
+
|
|
5
|
+
function prepareCustom(coordSys) {
|
|
6
|
+
var rect = coordSys.getRect();
|
|
7
|
+
var rangeInfo = coordSys.getRangeInfo();
|
|
8
|
+
|
|
9
|
+
return {
|
|
10
|
+
coordSys: {
|
|
11
|
+
type: 'calendar',
|
|
12
|
+
x: rect.x,
|
|
13
|
+
y: rect.y,
|
|
14
|
+
width: rect.width,
|
|
15
|
+
height: rect.height,
|
|
16
|
+
cellWidth: coordSys.getCellWidth(),
|
|
17
|
+
cellHeight: coordSys.getCellHeight(),
|
|
18
|
+
rangeInfo: {
|
|
19
|
+
start: rangeInfo.start,
|
|
20
|
+
end: rangeInfo.end,
|
|
21
|
+
weeks: rangeInfo.weeks,
|
|
22
|
+
dayCount: rangeInfo.allDay
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
api: {
|
|
26
|
+
coord: zrUtil.bind(coordSys.dataToPoint, coordSys)
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = prepareCustom;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var zrUtil = require('zrender/lib/core/util');
|
|
4
4
|
var Axis = require('../Axis');
|
|
5
|
-
var axisLabelInterval = require('./axisLabelInterval');
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* Extend axis 2d
|
|
@@ -81,17 +80,6 @@
|
|
|
81
80
|
this.grid.getOtherAxis();
|
|
82
81
|
},
|
|
83
82
|
|
|
84
|
-
/**
|
|
85
|
-
* @return {number}
|
|
86
|
-
*/
|
|
87
|
-
getLabelInterval: function () {
|
|
88
|
-
var labelInterval = this._labelInterval;
|
|
89
|
-
if (!labelInterval) {
|
|
90
|
-
labelInterval = this._labelInterval = axisLabelInterval(this);
|
|
91
|
-
}
|
|
92
|
-
return labelInterval;
|
|
93
|
-
},
|
|
94
|
-
|
|
95
83
|
/**
|
|
96
84
|
* If label is ignored.
|
|
97
85
|
* Automatically used when axis is category and label can not be all shown
|
|
@@ -100,7 +100,9 @@ var factory = exports;
|
|
|
100
100
|
for (var idx in axes) {
|
|
101
101
|
if (axes.hasOwnProperty(idx)) {
|
|
102
102
|
var axis = axes[idx];
|
|
103
|
-
if (axis && (
|
|
103
|
+
if (axis && (
|
|
104
|
+
axis.type === 'category' || axis.type === 'time' || !ifAxisCrossZero(axis)
|
|
105
|
+
)) {
|
|
104
106
|
return true;
|
|
105
107
|
}
|
|
106
108
|
}
|
|
@@ -555,7 +557,8 @@ var factory = exports;
|
|
|
555
557
|
ecModel.eachComponent('grid', function (gridModel, idx) {
|
|
556
558
|
var grid = new Grid(gridModel, ecModel, api);
|
|
557
559
|
grid.name = 'grid_' + idx;
|
|
558
|
-
|
|
560
|
+
// Postpone `resize` to `update`.
|
|
561
|
+
// grid.resize(gridModel, api);
|
|
559
562
|
|
|
560
563
|
gridModel.coordinateSystem = grid;
|
|
561
564
|
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
var zrUtil = require('zrender/lib/core/util');
|
|
4
|
+
|
|
5
|
+
function dataToCoordSize(dataSize, dataItem) {
|
|
6
|
+
// dataItem is necessary in log axis.
|
|
7
|
+
dataItem = dataItem || [0, 0];
|
|
8
|
+
return zrUtil.map(['x', 'y'], function (dim, dimIdx) {
|
|
9
|
+
var axis = this.getAxis(dim);
|
|
10
|
+
var val = dataItem[dimIdx];
|
|
11
|
+
var halfSize = dataSize[dimIdx] / 2;
|
|
12
|
+
return axis.type === 'category'
|
|
13
|
+
? axis.getBandWidth()
|
|
14
|
+
: Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));
|
|
15
|
+
}, this);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function prepareCustom(coordSys) {
|
|
19
|
+
var rect = coordSys.grid.getRect();
|
|
20
|
+
return {
|
|
21
|
+
coordSys: {
|
|
22
|
+
// The name exposed to user is always 'cartesian2d' but not 'grid'.
|
|
23
|
+
type: 'cartesian2d',
|
|
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;
|