echarts 3.6.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.
- package/README.md +1 -0
- package/dist/echarts-en.js +77756 -0
- package/dist/echarts-en.min.js +38 -0
- package/dist/echarts.common-en.js +50169 -0
- package/dist/echarts.common-en.min.js +30 -0
- package/dist/echarts.common.js +5799 -3093
- package/dist/echarts.common.min.js +14 -13
- package/dist/echarts.js +7628 -4679
- package/dist/echarts.min.js +22 -22
- package/dist/echarts.simple-en.js +34988 -0
- package/dist/echarts.simple-en.min.js +27 -0
- package/dist/echarts.simple.js +4472 -2493
- package/dist/echarts.simple.min.js +11 -9
- package/dist/extension/bmap.js +50 -11
- package/dist/extension/bmap.min.js +1 -1
- package/dist/extension/dataTool.js +10 -10
- package/extension/bmap/BMapCoordSys.js +40 -1
- package/index.blank.js +4 -0
- package/index.common.js +1 -1
- package/index.js +1 -1
- package/lib/action/createDataSelectAction.js +6 -2
- package/lib/chart/bar/BarView.js +6 -3
- package/lib/chart/bar/BaseBarSeries.js +4 -3
- package/lib/chart/bar/PictorialBarSeries.js +1 -1
- package/lib/chart/bar/PictorialBarView.js +29 -7
- package/lib/chart/bar/helper.js +14 -31
- package/lib/chart/candlestick/candlestickLayout.js +49 -6
- package/lib/chart/chord/chordCircularLayout.js +2 -2
- package/lib/chart/custom.js +135 -21
- package/lib/chart/funnel/FunnelSeries.js +0 -1
- package/lib/chart/funnel/FunnelView.js +15 -22
- package/lib/chart/funnel/funnelLayout.js +1 -1
- package/lib/chart/gauge/GaugeSeries.js +7 -12
- package/lib/chart/gauge/GaugeView.js +32 -53
- package/lib/chart/graph/GraphSeries.js +2 -1
- package/lib/chart/graph/GraphView.js +39 -45
- package/lib/chart/graph/forceHelper.js +5 -0
- package/lib/chart/graph/forceLayout.js +1 -1
- package/lib/chart/heatmap/HeatmapLayer.js +7 -0
- package/lib/chart/heatmap/HeatmapView.js +10 -9
- package/lib/chart/helper/EffectSymbol.js +3 -3
- package/lib/chart/helper/LargeSymbolDraw.js +6 -1
- package/lib/chart/helper/Line.js +40 -22
- package/lib/chart/helper/Symbol.js +20 -7
- package/lib/chart/helper/SymbolDraw.js +2 -1
- package/lib/chart/helper/labelHelper.js +0 -17
- package/lib/chart/helper/whiskerBoxCommon.js +11 -3
- package/lib/chart/line/LineSeries.js +1 -0
- package/lib/chart/line/LineView.js +14 -2
- package/lib/chart/line/poly.js +5 -0
- package/lib/chart/lines/LinesView.js +22 -7
- package/lib/chart/map/MapSeries.js +3 -7
- package/lib/chart/map/MapView.js +29 -18
- package/lib/chart/pie/PieSeries.js +20 -6
- package/lib/chart/pie/PieView.js +20 -23
- package/lib/chart/pie/labelLayout.js +3 -3
- package/lib/chart/radar/RadarView.js +16 -20
- package/lib/chart/sankey/SankeySeries.js +2 -4
- package/lib/chart/sankey/SankeyView.js +13 -29
- package/lib/chart/sankey/sankeyLayout.js +1 -1
- package/lib/chart/scatter/ScatterSeries.js +2 -1
- package/lib/chart/themeRiver/ThemeRiverSeries.js +2 -4
- package/lib/chart/themeRiver/ThemeRiverView.js +2 -5
- package/lib/chart/themeRiver/themeRiverLayout.js +1 -1
- package/lib/chart/treemap/Breadcrumb.js +1 -1
- package/lib/chart/treemap/TreemapSeries.js +28 -8
- package/lib/chart/treemap/TreemapView.js +88 -77
- package/lib/chart/treemap/treemapLayout.js +29 -13
- package/lib/component/axis/AngleAxisView.js +13 -19
- package/lib/component/axis/AxisBuilder.js +260 -186
- package/lib/component/axis/CartesianAxisView.js +15 -3
- package/lib/component/axis/ParallelAxisView.js +1 -1
- package/lib/component/axis/RadiusAxisView.js +1 -1
- package/lib/component/axis/SingleAxisView.js +8 -2
- package/lib/component/axis/cartesianAxisHelper.js +11 -15
- package/lib/component/axisPointer/AxisPointerModel.js +1 -3
- package/lib/component/axisPointer/BaseAxisPointer.js +15 -38
- package/lib/component/axisPointer/axisTrigger.js +36 -20
- package/lib/component/axisPointer/modelHelper.js +3 -4
- package/lib/component/axisPointer/viewHelper.js +4 -6
- package/lib/component/axisPointer.js +1 -14
- package/lib/component/calendar/CalendarView.js +22 -39
- package/lib/component/dataZoom/AxisProxy.js +3 -2
- package/lib/component/dataZoom/DataZoomModel.js +16 -4
- package/lib/component/dataZoom/InsideZoomView.js +5 -3
- package/lib/component/dataZoom/SliderZoomView.js +21 -32
- package/lib/component/dataZoom/roams.js +33 -9
- package/lib/component/dataZoom/typeDefaulter.js +1 -1
- package/lib/component/graphic.js +17 -5
- package/lib/component/helper/BrushTargetManager.js +1 -1
- package/lib/component/helper/MapDraw.js +26 -22
- package/lib/component/helper/RoamController.js +12 -11
- package/lib/component/helper/listComponent.js +27 -24
- package/lib/component/helper/selectableMixin.js +40 -15
- package/lib/component/legend/LegendModel.js +11 -3
- package/lib/component/legend/LegendView.js +151 -70
- package/lib/component/legend/ScrollableLegendModel.js +75 -0
- package/lib/component/legend/ScrollableLegendView.js +367 -0
- package/lib/component/legend/legendAction.js +1 -0
- package/lib/component/legend/scrollableLegendAction.js +24 -0
- package/lib/component/legend.js +8 -3
- package/lib/component/legendScroll.js +11 -0
- package/lib/component/marker/MarkAreaView.js +12 -26
- package/lib/component/marker/MarkLineView.js +5 -5
- package/lib/component/marker/MarkPointView.js +4 -4
- package/lib/component/marker/MarkerModel.js +1 -4
- package/lib/component/marker/markerHelper.js +1 -0
- package/lib/component/radar/RadarView.js +6 -3
- package/lib/component/timeline/SliderTimelineModel.js +4 -6
- package/lib/component/timeline/SliderTimelineView.js +14 -16
- package/lib/component/timeline/TimelineAxis.js +1 -1
- package/lib/component/timeline/TimelineModel.js +1 -3
- package/lib/component/title.js +9 -10
- package/lib/component/toolbox/ToolboxModel.js +2 -0
- package/lib/component/toolbox/ToolboxView.js +15 -27
- package/lib/component/toolbox/feature/Brush.js +3 -8
- package/lib/component/toolbox/feature/DataView.js +5 -5
- package/lib/component/toolbox/feature/DataZoom.js +3 -4
- package/lib/component/toolbox/feature/MagicType.js +3 -6
- package/lib/component/toolbox/feature/Restore.js +2 -1
- package/lib/component/toolbox/feature/SaveAsImage.js +23 -9
- package/lib/component/tooltip/TooltipContent.js +4 -4
- package/lib/component/tooltip/TooltipView.js +29 -6
- package/lib/component/visualMap/ContinuousModel.js +2 -2
- package/lib/component/visualMap/ContinuousView.js +12 -8
- package/lib/component/visualMap/PiecewiseModel.js +1 -2
- package/lib/component/visualMap/PiecewiseView.js +2 -2
- package/lib/component/visualMap/VisualMapModel.js +18 -12
- package/lib/coord/Axis.js +1 -1
- package/lib/coord/axisDefault.js +3 -3
- package/lib/coord/axisHelper.js +18 -1
- package/lib/coord/axisModelCommonMixin.js +12 -2
- package/lib/coord/calendar/Calendar.js +65 -21
- package/lib/coord/calendar/CalendarModel.js +6 -12
- package/lib/coord/cartesian/Cartesian2D.js +0 -14
- package/lib/coord/cartesian/Grid.js +47 -28
- package/lib/coord/geo/Geo.js +2 -18
- package/lib/coord/geo/GeoModel.js +6 -13
- package/lib/coord/geo/fix/diaoyuIsland.js +30 -0
- package/lib/coord/geo/geoCreator.js +6 -1
- package/lib/coord/polar/Polar.js +0 -13
- package/lib/coord/radar/Radar.js +1 -1
- package/lib/coord/radar/RadarModel.js +6 -2
- package/lib/data/DataDiffer.js +14 -7
- package/lib/data/Graph.js +3 -0
- package/lib/data/List.js +1 -1
- package/lib/data/Tree.js +2 -2
- package/lib/data/helper/completeDimensions.js +2 -11
- package/lib/echarts.js +33 -10
- package/lib/lang/cn.js +4 -0
- package/lib/lang/default.js +42 -0
- package/lib/lang/en.js +42 -0
- package/lib/lang.js +42 -0
- package/lib/langEN.js +42 -0
- package/lib/layout/barGrid.js +11 -3
- package/lib/layout/barPolar.js +9 -2
- package/lib/model/Model.js +2 -1
- package/lib/model/Series.js +14 -6
- package/lib/model/mixin/textStyle.js +11 -9
- package/lib/preprocessor/backwardCompat.js +5 -4
- package/lib/preprocessor/helper/compatStyle.js +157 -45
- package/lib/scale/Interval.js +10 -4
- package/lib/scale/Time.js +14 -6
- package/lib/scale/helper.js +15 -2
- package/lib/util/format.js +4 -24
- package/lib/util/graphic.js +412 -21
- package/lib/util/layout.js +28 -16
- package/lib/util/model.js +26 -11
- package/lib/util/number.js +106 -21
- package/lib/visual/VisualMapping.js +4 -4
- package/package.json +3 -3
- package/rollup.config.js +49 -0
- package/src/action/createDataSelectAction.js +6 -2
- package/src/chart/bar/BarView.js +6 -3
- package/src/chart/bar/BaseBarSeries.js +4 -3
- package/src/chart/bar/PictorialBarSeries.js +1 -1
- package/src/chart/bar/PictorialBarView.js +29 -7
- package/src/chart/bar/helper.js +13 -30
- package/src/chart/candlestick/candlestickLayout.js +49 -6
- package/src/chart/chord/chordCircularLayout.js +2 -2
- package/src/chart/custom.js +135 -21
- package/src/chart/funnel/FunnelSeries.js +0 -1
- package/src/chart/funnel/FunnelView.js +15 -22
- package/src/chart/funnel/funnelLayout.js +1 -1
- package/src/chart/gauge/GaugeSeries.js +7 -12
- package/src/chart/gauge/GaugeView.js +32 -53
- package/src/chart/graph/GraphSeries.js +2 -1
- package/src/chart/graph/GraphView.js +39 -45
- package/src/chart/graph/forceHelper.js +5 -0
- package/src/chart/graph/forceLayout.js +1 -1
- package/src/chart/heatmap/HeatmapLayer.js +7 -0
- package/src/chart/heatmap/HeatmapView.js +10 -9
- package/src/chart/helper/EffectSymbol.js +3 -3
- package/src/chart/helper/LargeSymbolDraw.js +6 -1
- package/src/chart/helper/Line.js +40 -22
- package/src/chart/helper/Symbol.js +20 -7
- package/src/chart/helper/SymbolDraw.js +2 -1
- package/src/chart/helper/labelHelper.js +0 -17
- package/src/chart/helper/whiskerBoxCommon.js +11 -4
- package/src/chart/line/LineSeries.js +1 -0
- package/src/chart/line/LineView.js +14 -2
- package/src/chart/line/poly.js +5 -0
- package/src/chart/lines/LinesView.js +22 -7
- package/src/chart/map/MapSeries.js +3 -7
- package/src/chart/map/MapView.js +29 -18
- package/src/chart/pie/PieSeries.js +20 -6
- package/src/chart/pie/PieView.js +20 -23
- package/src/chart/pie/labelLayout.js +3 -3
- package/src/chart/radar/RadarView.js +16 -20
- package/src/chart/sankey/SankeySeries.js +2 -4
- package/src/chart/sankey/SankeyView.js +13 -29
- package/src/chart/sankey/sankeyLayout.js +1 -1
- package/src/chart/scatter/ScatterSeries.js +2 -1
- package/src/chart/themeRiver/ThemeRiverSeries.js +2 -4
- package/src/chart/themeRiver/ThemeRiverView.js +2 -5
- package/src/chart/themeRiver/themeRiverLayout.js +1 -1
- package/src/chart/treemap/Breadcrumb.js +1 -1
- package/src/chart/treemap/TreemapSeries.js +28 -8
- package/src/chart/treemap/TreemapView.js +88 -77
- package/src/chart/treemap/treemapLayout.js +29 -13
- package/src/component/axis/AngleAxisView.js +13 -19
- package/src/component/axis/AxisBuilder.js +260 -186
- package/src/component/axis/CartesianAxisView.js +15 -3
- package/src/component/axis/ParallelAxisView.js +1 -1
- package/src/component/axis/RadiusAxisView.js +1 -1
- package/src/component/axis/SingleAxisView.js +8 -2
- package/src/component/axis/cartesianAxisHelper.js +11 -15
- package/src/component/axisPointer/AxisPointerModel.js +1 -3
- package/src/component/axisPointer/BaseAxisPointer.js +15 -38
- package/src/component/axisPointer/axisTrigger.js +36 -20
- package/src/component/axisPointer/modelHelper.js +3 -4
- package/src/component/axisPointer/viewHelper.js +4 -6
- package/src/component/axisPointer.js +1 -14
- package/src/component/calendar/CalendarView.js +22 -39
- package/src/component/dataZoom/AxisProxy.js +3 -2
- package/src/component/dataZoom/DataZoomModel.js +16 -4
- package/src/component/dataZoom/InsideZoomView.js +5 -3
- package/src/component/dataZoom/SliderZoomView.js +21 -32
- package/src/component/dataZoom/roams.js +33 -9
- package/src/component/dataZoom/typeDefaulter.js +1 -1
- package/src/component/graphic.js +17 -5
- package/src/component/helper/BrushTargetManager.js +1 -1
- package/src/component/helper/MapDraw.js +26 -22
- package/src/component/helper/RoamController.js +12 -11
- package/src/component/helper/listComponent.js +27 -24
- package/src/component/helper/selectableMixin.js +40 -15
- package/src/component/legend/LegendModel.js +11 -3
- package/src/component/legend/LegendView.js +151 -70
- package/src/component/legend/ScrollableLegendModel.js +76 -0
- package/src/component/legend/ScrollableLegendView.js +368 -0
- package/src/component/legend/legendAction.js +1 -0
- package/src/component/legend/scrollableLegendAction.js +25 -0
- package/src/component/legend.js +8 -3
- package/src/component/legendScroll.js +12 -0
- package/src/component/marker/MarkAreaView.js +12 -26
- package/src/component/marker/MarkLineView.js +5 -5
- package/src/component/marker/MarkPointView.js +4 -4
- package/src/component/marker/MarkerModel.js +1 -4
- package/src/component/marker/markerHelper.js +1 -0
- package/src/component/radar/RadarView.js +6 -3
- package/src/component/timeline/SliderTimelineModel.js +4 -6
- package/src/component/timeline/SliderTimelineView.js +14 -16
- package/src/component/timeline/TimelineAxis.js +1 -1
- package/src/component/timeline/TimelineModel.js +1 -3
- package/src/component/title.js +9 -10
- package/src/component/toolbox/ToolboxModel.js +2 -0
- package/src/component/toolbox/ToolboxView.js +15 -27
- package/src/component/toolbox/feature/Brush.js +3 -8
- package/src/component/toolbox/feature/DataView.js +5 -5
- package/src/component/toolbox/feature/DataZoom.js +3 -4
- package/src/component/toolbox/feature/MagicType.js +3 -6
- package/src/component/toolbox/feature/Restore.js +2 -1
- package/src/component/toolbox/feature/SaveAsImage.js +23 -10
- package/src/component/tooltip/TooltipContent.js +4 -4
- package/src/component/tooltip/TooltipView.js +29 -7
- package/src/component/visualMap/ContinuousModel.js +2 -2
- package/src/component/visualMap/ContinuousView.js +12 -8
- package/src/component/visualMap/PiecewiseModel.js +1 -2
- package/src/component/visualMap/PiecewiseView.js +2 -2
- package/src/component/visualMap/VisualMapModel.js +18 -12
- package/src/coord/Axis.js +1 -1
- package/src/coord/axisDefault.js +3 -3
- package/src/coord/axisHelper.js +18 -1
- package/src/coord/axisModelCommonMixin.js +12 -2
- package/src/coord/calendar/Calendar.js +65 -21
- package/src/coord/calendar/CalendarModel.js +6 -12
- package/src/coord/cartesian/Cartesian2D.js +0 -14
- package/src/coord/cartesian/Grid.js +47 -28
- package/src/coord/geo/Geo.js +2 -18
- package/src/coord/geo/GeoModel.js +6 -13
- package/src/coord/geo/fix/diaoyuIsland.js +30 -0
- package/src/coord/geo/geoCreator.js +6 -1
- package/src/coord/polar/Polar.js +0 -13
- package/src/coord/radar/Radar.js +1 -1
- package/src/coord/radar/RadarModel.js +6 -2
- package/src/data/DataDiffer.js +14 -7
- package/src/data/Graph.js +3 -0
- package/src/data/List.js +1 -1
- package/src/data/Tree.js +2 -2
- package/src/data/helper/completeDimensions.js +2 -11
- package/src/echarts.js +33 -10
- package/src/lang.js +43 -0
- package/src/langEN.js +43 -0
- package/src/layout/barGrid.js +11 -3
- package/src/layout/barPolar.js +9 -2
- package/src/model/Model.js +2 -1
- package/src/model/Series.js +14 -6
- package/src/model/mixin/textStyle.js +11 -9
- package/src/preprocessor/backwardCompat.js +5 -4
- package/src/preprocessor/helper/compatStyle.js +157 -45
- package/src/scale/Interval.js +10 -4
- package/src/scale/Time.js +14 -6
- package/src/scale/helper.js +15 -2
- package/src/util/format.js +4 -24
- package/src/util/graphic.js +412 -21
- package/src/util/layout.js +28 -16
- package/src/util/model.js +26 -11
- package/src/util/number.js +106 -21
- package/src/visual/VisualMapping.js +4 -4
- package/webpack.config.js +21 -7
- package/.npmignore +0 -10
|
@@ -4,73 +4,108 @@
|
|
|
4
4
|
var symbolCreator = require('../../util/symbol');
|
|
5
5
|
var graphic = require('../../util/graphic');
|
|
6
6
|
var listComponentHelper = require('../helper/listComponent');
|
|
7
|
+
var layoutUtil = require('../../util/layout');
|
|
7
8
|
|
|
8
9
|
var curry = zrUtil.curry;
|
|
10
|
+
var each = zrUtil.each;
|
|
11
|
+
var Group = graphic.Group;
|
|
9
12
|
|
|
10
|
-
|
|
11
|
-
api.dispatchAction({
|
|
12
|
-
type: 'legendToggleSelect',
|
|
13
|
-
name: name
|
|
14
|
-
});
|
|
15
|
-
}
|
|
13
|
+
module.exports = require('../../echarts').extendComponentView({
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
// If element hover will move to a hoverLayer.
|
|
19
|
-
var el = api.getZr().storage.getDisplayList()[0];
|
|
20
|
-
if (!(el && el.useHoverLayer)) {
|
|
21
|
-
seriesModel.get('legendHoverLink') && api.dispatchAction({
|
|
22
|
-
type: 'highlight',
|
|
23
|
-
seriesName: seriesModel.name,
|
|
24
|
-
name: dataName
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
}
|
|
15
|
+
type: 'legend.plain',
|
|
28
16
|
|
|
29
|
-
|
|
30
|
-
// If element hover will move to a hoverLayer.
|
|
31
|
-
var el = api.getZr().storage.getDisplayList()[0];
|
|
32
|
-
if (!(el && el.useHoverLayer)) {
|
|
33
|
-
seriesModel.get('legendHoverLink') && api.dispatchAction({
|
|
34
|
-
type: 'downplay',
|
|
35
|
-
seriesName: seriesModel.name,
|
|
36
|
-
name: dataName
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
17
|
+
newlineDisabled: false,
|
|
40
18
|
|
|
41
|
-
|
|
19
|
+
/**
|
|
20
|
+
* @override
|
|
21
|
+
*/
|
|
22
|
+
init: function () {
|
|
42
23
|
|
|
43
|
-
|
|
24
|
+
/**
|
|
25
|
+
* @private
|
|
26
|
+
* @type {module:zrender/container/Group}
|
|
27
|
+
*/
|
|
28
|
+
this.group.add(this._contentGroup = new Group());
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @private
|
|
32
|
+
* @type {module:zrender/Element}
|
|
33
|
+
*/
|
|
34
|
+
this._backgroundEl;
|
|
35
|
+
},
|
|
44
36
|
|
|
45
|
-
|
|
46
|
-
|
|
37
|
+
/**
|
|
38
|
+
* @protected
|
|
39
|
+
*/
|
|
40
|
+
getContentGroup: function () {
|
|
41
|
+
return this._contentGroup;
|
|
47
42
|
},
|
|
48
43
|
|
|
44
|
+
/**
|
|
45
|
+
* @override
|
|
46
|
+
*/
|
|
49
47
|
render: function (legendModel, ecModel, api) {
|
|
50
|
-
var group = this.group;
|
|
51
|
-
group.removeAll();
|
|
52
48
|
|
|
53
|
-
|
|
49
|
+
this.resetInner();
|
|
50
|
+
|
|
51
|
+
if (!legendModel.get('show', true)) {
|
|
54
52
|
return;
|
|
55
53
|
}
|
|
56
54
|
|
|
57
|
-
var selectMode = legendModel.get('selectedMode');
|
|
58
55
|
var itemAlign = legendModel.get('align');
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
&& legendModel.get('orient') === 'vertical'
|
|
63
|
-
|
|
56
|
+
if (!itemAlign || itemAlign === 'auto') {
|
|
57
|
+
itemAlign = (
|
|
58
|
+
legendModel.get('left') === 'right'
|
|
59
|
+
&& legendModel.get('orient') === 'vertical'
|
|
60
|
+
) ? 'right' : 'left';
|
|
64
61
|
}
|
|
65
62
|
|
|
66
|
-
|
|
63
|
+
this.renderInner(itemAlign, legendModel, ecModel, api);
|
|
64
|
+
|
|
65
|
+
// Perform layout.
|
|
66
|
+
var positionInfo = legendModel.getBoxLayoutParams();
|
|
67
|
+
var viewportSize = {width: api.getWidth(), height: api.getHeight()};
|
|
68
|
+
var padding = legendModel.get('padding');
|
|
69
|
+
|
|
70
|
+
var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);
|
|
71
|
+
var mainRect = this.layoutInner(legendModel, itemAlign, maxSize);
|
|
72
|
+
|
|
73
|
+
// Place mainGroup, based on the calculated `mainRect`.
|
|
74
|
+
var layoutRect = layoutUtil.getLayoutRect(
|
|
75
|
+
zrUtil.defaults({width: mainRect.width, height: mainRect.height}, positionInfo),
|
|
76
|
+
viewportSize,
|
|
77
|
+
padding
|
|
78
|
+
);
|
|
79
|
+
this.group.attr('position', [layoutRect.x - mainRect.x, layoutRect.y - mainRect.y]);
|
|
80
|
+
|
|
81
|
+
// Render background after group is layout.
|
|
82
|
+
this.group.add(
|
|
83
|
+
this._backgroundEl = listComponentHelper.makeBackground(mainRect, legendModel)
|
|
84
|
+
);
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* @protected
|
|
89
|
+
*/
|
|
90
|
+
resetInner: function () {
|
|
91
|
+
this.getContentGroup().removeAll();
|
|
92
|
+
this._backgroundEl && this.group.remove(this._backgroundEl);
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* @protected
|
|
97
|
+
*/
|
|
98
|
+
renderInner: function (itemAlign, legendModel, ecModel, api) {
|
|
99
|
+
var contentGroup = this.getContentGroup();
|
|
100
|
+
var legendDrawnMap = zrUtil.createHashMap();
|
|
101
|
+
var selectMode = legendModel.get('selectedMode');
|
|
67
102
|
|
|
68
|
-
|
|
103
|
+
each(legendModel.getData(), function (itemModel, dataIndex) {
|
|
69
104
|
var name = itemModel.get('name');
|
|
70
105
|
|
|
71
106
|
// Use empty string or \n as a newline string
|
|
72
|
-
if (name === '' || name === '\n') {
|
|
73
|
-
|
|
107
|
+
if (!this.newlineDisabled && (name === '' || name === '\n')) {
|
|
108
|
+
contentGroup.add(new Group({
|
|
74
109
|
newline: true
|
|
75
110
|
}));
|
|
76
111
|
return;
|
|
@@ -78,7 +113,7 @@
|
|
|
78
113
|
|
|
79
114
|
var seriesModel = ecModel.getSeriesByName(name)[0];
|
|
80
115
|
|
|
81
|
-
if (
|
|
116
|
+
if (legendDrawnMap.get(name)) {
|
|
82
117
|
// Have been drawed
|
|
83
118
|
return;
|
|
84
119
|
}
|
|
@@ -99,7 +134,7 @@
|
|
|
99
134
|
var symbolType = data.getVisual('symbol');
|
|
100
135
|
|
|
101
136
|
var itemGroup = this._createItem(
|
|
102
|
-
name, itemModel, legendModel,
|
|
137
|
+
name, dataIndex, itemModel, legendModel,
|
|
103
138
|
legendSymbolType, symbolType,
|
|
104
139
|
itemAlign, color,
|
|
105
140
|
selectMode
|
|
@@ -109,13 +144,13 @@
|
|
|
109
144
|
.on('mouseover', curry(dispatchHighlightAction, seriesModel, null, api))
|
|
110
145
|
.on('mouseout', curry(dispatchDownplayAction, seriesModel, null, api));
|
|
111
146
|
|
|
112
|
-
|
|
147
|
+
legendDrawnMap.set(name, true);
|
|
113
148
|
}
|
|
114
149
|
else {
|
|
115
150
|
// Data legend of pie, funnel
|
|
116
151
|
ecModel.eachRawSeries(function (seriesModel) {
|
|
117
152
|
// In case multiple series has same data name
|
|
118
|
-
if (
|
|
153
|
+
if (legendDrawnMap.get(name)) {
|
|
119
154
|
return;
|
|
120
155
|
}
|
|
121
156
|
if (seriesModel.legendDataProvider) {
|
|
@@ -130,7 +165,7 @@
|
|
|
130
165
|
var legendSymbolType = 'roundRect';
|
|
131
166
|
|
|
132
167
|
var itemGroup = this._createItem(
|
|
133
|
-
name, itemModel, legendModel,
|
|
168
|
+
name, dataIndex, itemModel, legendModel,
|
|
134
169
|
legendSymbolType, null,
|
|
135
170
|
itemAlign, color,
|
|
136
171
|
selectMode
|
|
@@ -141,26 +176,21 @@
|
|
|
141
176
|
.on('mouseover', curry(dispatchHighlightAction, seriesModel, name, api))
|
|
142
177
|
.on('mouseout', curry(dispatchDownplayAction, seriesModel, name, api));
|
|
143
178
|
|
|
144
|
-
|
|
179
|
+
legendDrawnMap.set(name, true);
|
|
145
180
|
}
|
|
146
181
|
}, this);
|
|
147
182
|
}
|
|
148
183
|
|
|
149
184
|
if (__DEV__) {
|
|
150
|
-
if (!
|
|
185
|
+
if (!legendDrawnMap.get(name)) {
|
|
151
186
|
console.warn(name + ' series not exists. Legend data should be same with series name or data name.');
|
|
152
187
|
}
|
|
153
188
|
}
|
|
154
189
|
}, this);
|
|
155
|
-
|
|
156
|
-
listComponentHelper.layout(group, legendModel, api);
|
|
157
|
-
// Render background after group is layout
|
|
158
|
-
// FIXME
|
|
159
|
-
listComponentHelper.addBackground(group, legendModel);
|
|
160
190
|
},
|
|
161
191
|
|
|
162
192
|
_createItem: function (
|
|
163
|
-
name, itemModel, legendModel,
|
|
193
|
+
name, dataIndex, itemModel, legendModel,
|
|
164
194
|
legendSymbolType, symbolType,
|
|
165
195
|
itemAlign, color, selectMode
|
|
166
196
|
) {
|
|
@@ -169,7 +199,7 @@
|
|
|
169
199
|
var inactiveColor = legendModel.get('inactiveColor');
|
|
170
200
|
|
|
171
201
|
var isSelected = legendModel.isSelected(name);
|
|
172
|
-
var itemGroup = new
|
|
202
|
+
var itemGroup = new Group();
|
|
173
203
|
|
|
174
204
|
var textStyleModel = itemModel.getModel('textStyle');
|
|
175
205
|
|
|
@@ -201,7 +231,6 @@
|
|
|
201
231
|
));
|
|
202
232
|
}
|
|
203
233
|
|
|
204
|
-
// Text
|
|
205
234
|
var textX = itemAlign === 'left' ? itemWidth + 5 : -5;
|
|
206
235
|
var textAlign = itemAlign;
|
|
207
236
|
|
|
@@ -214,18 +243,16 @@
|
|
|
214
243
|
content = formatter(name);
|
|
215
244
|
}
|
|
216
245
|
|
|
217
|
-
|
|
218
|
-
style: {
|
|
246
|
+
itemGroup.add(new graphic.Text({
|
|
247
|
+
style: graphic.setTextStyle({}, textStyleModel, {
|
|
219
248
|
text: content,
|
|
220
249
|
x: textX,
|
|
221
250
|
y: itemHeight / 2,
|
|
222
|
-
|
|
223
|
-
textFont: textStyleModel.getFont(),
|
|
251
|
+
textFill: isSelected ? textStyleModel.getTextColor() : inactiveColor,
|
|
224
252
|
textAlign: textAlign,
|
|
225
253
|
textVerticalAlign: 'middle'
|
|
226
|
-
}
|
|
227
|
-
});
|
|
228
|
-
itemGroup.add(text);
|
|
254
|
+
})
|
|
255
|
+
}));
|
|
229
256
|
|
|
230
257
|
// Add a invisible rect to increase the area of mouse hover
|
|
231
258
|
var hitRect = new graphic.Rect({
|
|
@@ -253,12 +280,66 @@
|
|
|
253
280
|
|
|
254
281
|
hitRect.silent = !selectMode;
|
|
255
282
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
this.group.add(itemGroup);
|
|
283
|
+
this.getContentGroup().add(itemGroup);
|
|
259
284
|
|
|
260
285
|
graphic.setHoverStyle(itemGroup);
|
|
261
286
|
|
|
287
|
+
itemGroup.__legendDataIndex = dataIndex;
|
|
288
|
+
|
|
262
289
|
return itemGroup;
|
|
290
|
+
},
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* @protected
|
|
294
|
+
*/
|
|
295
|
+
layoutInner: function (legendModel, itemAlign, maxSize) {
|
|
296
|
+
var contentGroup = this.getContentGroup();
|
|
297
|
+
|
|
298
|
+
// Place items in contentGroup.
|
|
299
|
+
layoutUtil.box(
|
|
300
|
+
legendModel.get('orient'),
|
|
301
|
+
contentGroup,
|
|
302
|
+
legendModel.get('itemGap'),
|
|
303
|
+
maxSize.width,
|
|
304
|
+
maxSize.height
|
|
305
|
+
);
|
|
306
|
+
|
|
307
|
+
var contentRect = contentGroup.getBoundingRect();
|
|
308
|
+
contentGroup.attr('position', [-contentRect.x, -contentRect.y]);
|
|
309
|
+
|
|
310
|
+
return this.group.getBoundingRect();
|
|
263
311
|
}
|
|
312
|
+
|
|
264
313
|
});
|
|
314
|
+
|
|
315
|
+
function dispatchSelectAction(name, api) {
|
|
316
|
+
api.dispatchAction({
|
|
317
|
+
type: 'legendToggleSelect',
|
|
318
|
+
name: name
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
function dispatchHighlightAction(seriesModel, dataName, api) {
|
|
323
|
+
// If element hover will move to a hoverLayer.
|
|
324
|
+
var el = api.getZr().storage.getDisplayList()[0];
|
|
325
|
+
if (!(el && el.useHoverLayer)) {
|
|
326
|
+
seriesModel.get('legendHoverLink') && api.dispatchAction({
|
|
327
|
+
type: 'highlight',
|
|
328
|
+
seriesName: seriesModel.name,
|
|
329
|
+
name: dataName
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
function dispatchDownplayAction(seriesModel, dataName, api) {
|
|
335
|
+
// If element hover will move to a hoverLayer.
|
|
336
|
+
var el = api.getZr().storage.getDisplayList()[0];
|
|
337
|
+
if (!(el && el.useHoverLayer)) {
|
|
338
|
+
seriesModel.get('legendHoverLink') && api.dispatchAction({
|
|
339
|
+
type: 'downplay',
|
|
340
|
+
seriesName: seriesModel.name,
|
|
341
|
+
name: dataName
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
var LegendModel = require('./LegendModel');
|
|
4
|
+
var layout = require('../../util/layout');
|
|
5
|
+
|
|
6
|
+
var ScrollableLegendModel = LegendModel.extend({
|
|
7
|
+
|
|
8
|
+
type: 'legend.scroll',
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @param {number} scrollDataIndex
|
|
12
|
+
*/
|
|
13
|
+
setScrollDataIndex: function (scrollDataIndex) {
|
|
14
|
+
this.option.scrollDataIndex = scrollDataIndex;
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
defaultOption: {
|
|
18
|
+
scrollDataIndex: 0,
|
|
19
|
+
pageButtonItemGap: 5,
|
|
20
|
+
pageButtonGap: null,
|
|
21
|
+
pageButtonPosition: 'end', // 'start' or 'end'
|
|
22
|
+
pageFormatter: '{current}/{total}', // If null/undefined, do not show page.
|
|
23
|
+
pageIcons: {
|
|
24
|
+
horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],
|
|
25
|
+
vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']
|
|
26
|
+
},
|
|
27
|
+
pageIconColor: '#2f4554',
|
|
28
|
+
pageIconInactiveColor: '#aaa',
|
|
29
|
+
pageIconSize: 15, // Can be [10, 3], which represents [width, height]
|
|
30
|
+
pageTextStyle: {
|
|
31
|
+
color: '#333'
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
animationDurationUpdate: 800
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @override
|
|
39
|
+
*/
|
|
40
|
+
init: function (option, parentModel, ecModel, extraOpt) {
|
|
41
|
+
var inputPositionParams = layout.getLayoutParams(option);
|
|
42
|
+
|
|
43
|
+
ScrollableLegendModel.superCall(this, 'init', option, parentModel, ecModel, extraOpt);
|
|
44
|
+
|
|
45
|
+
mergeAndNormalizeLayoutParams(this, option, inputPositionParams);
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @override
|
|
50
|
+
*/
|
|
51
|
+
mergeOption: function (option, extraOpt) {
|
|
52
|
+
ScrollableLegendModel.superCall(this, 'mergeOption', option, extraOpt);
|
|
53
|
+
|
|
54
|
+
mergeAndNormalizeLayoutParams(this, this.option, option);
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
getOrient: function () {
|
|
58
|
+
return this.get('orient') === 'vertical'
|
|
59
|
+
? {index: 1, name: 'vertical'}
|
|
60
|
+
: {index: 0, name: 'horizontal'};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// Do not `ignoreSize` to enable setting {left: 10, right: 10}.
|
|
66
|
+
function mergeAndNormalizeLayoutParams(legendModel, target, raw) {
|
|
67
|
+
var orient = legendModel.getOrient();
|
|
68
|
+
var ignoreSize = [1, 1];
|
|
69
|
+
ignoreSize[orient.index] = 0;
|
|
70
|
+
layout.mergeLayoutParam(target, raw, {
|
|
71
|
+
type: 'box', ignoreSize: ignoreSize
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
module.exports = ScrollableLegendModel;
|