echarts 4.5.0 → 4.9.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/.DS_Store +0 -0
- package/.gitattributes +3 -0
- package/.github/pull_request_template.md +66 -0
- package/.github/workflows/nodejs.yml +15 -3
- package/.huskyrc +5 -0
- package/CONTRIBUTING.md +16 -160
- package/NOTICE +1 -1
- package/README.md +3 -3
- package/asset/.DS_Store +0 -0
- package/build/.DS_Store +0 -0
- package/dist/echarts-en.common.js +3072 -1261
- package/dist/echarts-en.common.min.js +1 -1
- package/dist/echarts-en.js +4339 -1685
- package/dist/echarts-en.js.map +1 -1
- package/dist/echarts-en.min.js +1 -1
- package/dist/echarts-en.simple.js +2496 -1011
- package/dist/echarts-en.simple.min.js +1 -1
- package/dist/echarts.common.js +3046 -1261
- package/dist/echarts.common.min.js +1 -1
- package/dist/echarts.js +4313 -1685
- package/dist/echarts.js.map +1 -1
- package/dist/echarts.min.js +1 -1
- package/dist/echarts.simple.js +2470 -1011
- package/dist/echarts.simple.min.js +1 -1
- package/dist/extension/bmap.js +33 -11
- package/dist/extension/bmap.js.map +1 -1
- package/dist/extension/bmap.min.js +1 -1
- package/dist/extension/dataTool.js.map +1 -1
- package/extension/.DS_Store +0 -0
- package/extension/bmap/BMapCoordSys.js +14 -4
- package/extension/bmap/BMapModel.js +4 -0
- package/extension/bmap/BMapView.js +18 -10
- package/extension-src/bmap/BMapCoordSys.js +14 -4
- package/extension-src/bmap/BMapModel.js +6 -1
- package/extension-src/bmap/BMapView.js +16 -9
- package/lib/chart/bar/BarSeries.js +14 -1
- package/lib/chart/bar/BarView.js +196 -18
- package/lib/chart/bar/BaseBarSeries.js +3 -1
- package/lib/chart/bar/PictorialBarSeries.js +1 -1
- package/lib/chart/candlestick/candlestickVisual.js +1 -1
- package/lib/chart/effectScatter/EffectScatterSeries.js +3 -1
- package/lib/chart/funnel/FunnelSeries.js +14 -5
- package/lib/chart/funnel/funnelLayout.js +162 -46
- package/lib/chart/gauge/GaugeSeries.js +0 -2
- package/lib/chart/graph/GraphSeries.js +23 -7
- package/lib/chart/graph/GraphView.js +30 -12
- package/lib/chart/graph/circularLayoutHelper.js +8 -2
- package/lib/chart/graph/forceLayout.js +6 -1
- package/lib/chart/graph/simpleLayout.js +1 -1
- package/lib/chart/graph/simpleLayoutHelper.js +10 -4
- package/lib/chart/heatmap/HeatmapView.js +4 -4
- package/lib/chart/helper/EffectLine.js +23 -1
- package/lib/chart/helper/EffectSymbol.js +2 -1
- package/lib/chart/helper/Line.js +129 -42
- package/lib/chart/helper/LineDraw.js +5 -1
- package/lib/chart/helper/Symbol.js +2 -3
- package/lib/chart/helper/createClipPathFromCoordSys.js +4 -1
- package/lib/chart/helper/createListFromArray.js +14 -8
- package/lib/chart/helper/createRenderPlanner.js +6 -3
- package/lib/chart/helper/multipleGraphEdgeHelper.js +258 -0
- package/lib/chart/helper/whiskerBoxCommon.js +22 -16
- package/lib/chart/line/LineSeries.js +3 -1
- package/lib/chart/line/LineView.js +41 -2
- package/lib/chart/lines/LinesSeries.js +0 -2
- package/lib/chart/map/MapSeries.js +14 -5
- package/lib/chart/pie/PieSeries.js +27 -6
- package/lib/chart/pie/PieView.js +22 -15
- package/lib/chart/pie/labelLayout.js +102 -19
- package/lib/chart/pie/pieLayout.js +19 -7
- package/lib/chart/radar/RadarSeries.js +27 -6
- package/lib/chart/radar/RadarView.js +3 -1
- package/lib/chart/sankey/SankeySeries.js +13 -1
- package/lib/chart/sankey/SankeyView.js +70 -32
- package/lib/chart/sankey/sankeyLayout.js +22 -3
- package/lib/chart/scatter/ScatterSeries.js +3 -1
- package/lib/chart/sunburst/SunburstPiece.js +5 -1
- package/lib/chart/sunburst/SunburstSeries.js +29 -12
- package/lib/chart/sunburst/SunburstView.js +5 -1
- package/lib/chart/themeRiver/ThemeRiverSeries.js +24 -33
- package/lib/chart/tree/TreeSeries.js +20 -3
- package/lib/chart/tree/TreeView.js +149 -23
- package/lib/chart/treemap/TreemapSeries.js +25 -4
- package/lib/chart/treemap/TreemapView.js +80 -38
- package/lib/chart/treemap/treemapLayout.js +1 -1
- package/lib/chart/treemap/treemapVisual.js +9 -15
- package/lib/component/axis/AngleAxisView.js +64 -7
- package/lib/component/axis/AxisBuilder.js +62 -24
- package/lib/component/axis/CartesianAxisView.js +52 -85
- package/lib/component/axis/RadiusAxisView.js +36 -4
- package/lib/component/axis/SingleAxisView.js +21 -6
- package/lib/component/axis/axisSplitHelper.js +132 -0
- package/lib/component/axisPointer/axisTrigger.js +1 -1
- package/lib/component/brush/BrushView.js +11 -1
- package/lib/component/brush/visualEncoding.js +13 -2
- package/lib/component/dataZoom/SliderZoomView.js +4 -10
- package/lib/component/helper/BrushController.js +33 -43
- package/lib/component/helper/MapDraw.js +30 -4
- package/lib/component/legend/LegendModel.js +3 -3
- package/lib/component/legend/LegendView.js +17 -13
- package/lib/component/legend/ScrollableLegendView.js +18 -18
- package/lib/component/marker/MarkAreaView.js +53 -15
- package/lib/component/marker/MarkLineModel.js +2 -1
- package/lib/component/marker/MarkLineView.js +3 -0
- package/lib/component/marker/MarkPointView.js +8 -1
- package/lib/component/marker/MarkerModel.js +3 -2
- package/lib/component/marker/markerHelper.js +7 -4
- package/lib/component/timeline/SliderTimelineView.js +7 -1
- package/lib/component/title.js +6 -2
- package/lib/component/toolbox/ToolboxView.js +5 -1
- package/lib/component/toolbox/feature/DataView.js +23 -8
- package/lib/component/toolbox/feature/DataZoom.js +6 -6
- package/lib/component/toolbox/feature/MagicType.js +20 -14
- package/lib/component/toolbox/feature/SaveAsImage.js +4 -2
- package/lib/component/tooltip/TooltipContent.js +101 -30
- package/lib/component/tooltip/TooltipRichContent.js +56 -8
- package/lib/component/tooltip/TooltipView.js +11 -12
- package/lib/component/visualMap/PiecewiseModel.js +3 -6
- package/lib/component/visualMap/VisualMapModel.js +1 -1
- package/lib/coord/Axis.js +30 -2
- package/lib/coord/View.js +9 -0
- package/lib/coord/axisDefault.js +22 -3
- package/lib/coord/axisHelper.js +24 -18
- package/lib/coord/calendar/Calendar.js +8 -4
- package/lib/coord/geo/GeoModel.js +2 -1
- package/lib/coord/geo/geoJSONLoader.js +3 -2
- package/lib/coord/geo/geoSourceManager.js +3 -2
- package/lib/coord/geo/parseGeoJson.js +3 -2
- package/lib/coord/radar/Radar.js +5 -5
- package/lib/data/DataDimensionInfo.js +157 -0
- package/lib/data/Graph.js +1 -6
- package/lib/data/List.js +26 -20
- package/lib/data/Tree.js +5 -42
- package/lib/data/helper/completeDimensions.js +43 -32
- package/lib/data/helper/createDimensions.js +2 -0
- package/lib/data/helper/sourceHelper.js +214 -114
- package/lib/echarts.js +57 -34
- package/lib/langEN.js +26 -0
- package/lib/layout/barGrid.js +19 -13
- package/lib/layout/barPolar.js +1 -6
- package/lib/loading/default.js +43 -27
- package/lib/model/Series.js +4 -4
- package/lib/model/referHelper.js +40 -12
- package/lib/processor/dataSample.js +1 -1
- package/lib/scale/Interval.js +87 -2
- package/lib/scale/Log.js +9 -2
- package/lib/scale/helper.js +1 -43
- package/lib/stream/Scheduler.js +10 -2
- package/lib/theme/dark.js +3 -0
- package/lib/util/format.js +19 -2
- package/lib/util/graphic.js +14 -12
- package/lib/visual/LegendVisualProvider.js +75 -0
- package/lib/visual/VisualMapping.js +1 -1
- package/lib/visual/dataColor.js +2 -12
- package/lib/visual/seriesColor.js +15 -7
- package/lib/visual/symbol.js +12 -2
- package/map/.DS_Store +0 -0
- package/map/js/.DS_Store +0 -0
- package/map/js/china.js +1 -1
- package/map/js/province/.DS_Store +0 -0
- package/map/js/province/chongqing.js +1 -1
- package/map/js/province/gansu.js +2 -2
- package/map/js/province/tianjin.js +1 -28
- package/map/json/.DS_Store +0 -0
- package/map/json/china.json +1 -1
- package/map/json/province/chongqing.json +1 -1
- package/map/json/province/tianjin.json +1 -1
- package/package.json +12 -6
- package/src/.DS_Store +0 -0
- package/src/chart/.DS_Store +0 -0
- package/src/chart/bar/BarSeries.js +15 -1
- package/src/chart/bar/BarView.js +198 -17
- package/src/chart/bar/BaseBarSeries.js +1 -1
- package/src/chart/bar/PictorialBarSeries.js +2 -2
- package/src/chart/candlestick/candlestickVisual.js +1 -1
- package/src/chart/effectScatter/EffectScatterSeries.js +1 -1
- package/src/chart/funnel/FunnelSeries.js +11 -4
- package/src/chart/funnel/funnelLayout.js +179 -53
- package/src/chart/gauge/GaugeSeries.js +0 -1
- package/src/chart/graph/GraphSeries.js +19 -7
- package/src/chart/graph/GraphView.js +28 -10
- package/src/chart/graph/circularLayoutHelper.js +8 -2
- package/src/chart/graph/forceLayout.js +7 -1
- package/src/chart/graph/simpleLayout.js +1 -1
- package/src/chart/graph/simpleLayoutHelper.js +12 -5
- package/src/chart/heatmap/HeatmapView.js +4 -4
- package/src/chart/helper/EffectLine.js +23 -1
- package/src/chart/helper/EffectSymbol.js +2 -1
- package/src/chart/helper/Line.js +122 -37
- package/src/chart/helper/LineDraw.js +5 -1
- package/src/chart/helper/Symbol.js +4 -4
- package/src/chart/helper/createClipPathFromCoordSys.js +4 -0
- package/src/chart/helper/createGraphFromNodeEdge.js +2 -1
- package/src/chart/helper/createListFromArray.js +13 -8
- package/src/chart/helper/createRenderPlanner.js +5 -2
- package/src/chart/helper/multipleGraphEdgeHelper.js +229 -0
- package/src/chart/helper/whiskerBoxCommon.js +21 -16
- package/src/chart/line/LineSeries.js +1 -1
- package/src/chart/line/LineView.js +45 -1
- package/src/chart/lines/LinesSeries.js +1 -3
- package/src/chart/map/MapSeries.js +11 -5
- package/src/chart/pie/PieSeries.js +26 -5
- package/src/chart/pie/PieView.js +20 -15
- package/src/chart/pie/labelLayout.js +114 -22
- package/src/chart/pie/pieLayout.js +20 -7
- package/src/chart/radar/RadarSeries.js +31 -6
- package/src/chart/radar/RadarView.js +4 -2
- package/src/chart/sankey/SankeySeries.js +12 -1
- package/src/chart/sankey/SankeyView.js +75 -30
- package/src/chart/sankey/sankeyLayout.js +25 -5
- package/src/chart/scatter/ScatterSeries.js +1 -1
- package/src/chart/sunburst/SunburstPiece.js +7 -1
- package/src/chart/sunburst/SunburstSeries.js +28 -15
- package/src/chart/sunburst/SunburstView.js +2 -1
- package/src/chart/themeRiver/ThemeRiverSeries.js +25 -30
- package/src/chart/tree/TreeSeries.js +19 -6
- package/src/chart/tree/TreeView.js +156 -23
- package/src/chart/treemap/TreemapSeries.js +23 -5
- package/src/chart/treemap/TreemapView.js +77 -41
- package/src/chart/treemap/treemapLayout.js +2 -2
- package/src/chart/treemap/treemapVisual.js +8 -25
- package/src/component/axis/AngleAxisView.js +75 -7
- package/src/component/axis/AxisBuilder.js +77 -32
- package/src/component/axis/CartesianAxisView.js +47 -83
- package/src/component/axis/RadiusAxisView.js +37 -4
- package/src/component/axis/SingleAxisView.js +21 -4
- package/src/component/axis/axisSplitHelper.js +114 -0
- package/src/component/axisPointer/axisTrigger.js +1 -1
- package/src/component/brush/BrushView.js +8 -1
- package/src/component/brush/visualEncoding.js +6 -3
- package/src/component/dataZoom/SliderZoomView.js +4 -9
- package/src/component/helper/BrushController.js +40 -47
- package/src/component/helper/MapDraw.js +27 -4
- package/src/component/legend/LegendModel.js +3 -3
- package/src/component/legend/LegendView.js +18 -12
- package/src/component/legend/ScrollableLegendView.js +18 -16
- package/src/component/marker/MarkAreaView.js +53 -15
- package/src/component/marker/MarkLineModel.js +2 -1
- package/src/component/marker/MarkLineView.js +3 -1
- package/src/component/marker/MarkPointView.js +7 -1
- package/src/component/marker/MarkerModel.js +3 -2
- package/src/component/marker/markerHelper.js +8 -5
- package/src/component/timeline/SliderTimelineView.js +9 -6
- package/src/component/title.js +4 -3
- package/src/component/toolbox/.DS_Store +0 -0
- package/src/component/toolbox/ToolboxView.js +5 -0
- package/src/component/toolbox/feature/DataView.js +20 -8
- package/src/component/toolbox/feature/DataZoom.js +6 -6
- package/src/component/toolbox/feature/MagicType.js +19 -13
- package/src/component/toolbox/feature/SaveAsImage.js +4 -2
- package/src/component/tooltip/TooltipContent.js +94 -28
- package/src/component/tooltip/TooltipRichContent.js +52 -9
- package/src/component/tooltip/TooltipView.js +14 -12
- package/src/component/visualMap/PiecewiseModel.js +5 -9
- package/src/component/visualMap/VisualMapModel.js +1 -1
- package/src/coord/Axis.js +29 -2
- package/src/coord/View.js +10 -1
- package/src/coord/axisDefault.js +26 -2
- package/src/coord/axisHelper.js +30 -21
- package/src/coord/calendar/Calendar.js +12 -5
- package/src/coord/geo/GeoModel.js +3 -6
- package/src/coord/geo/geoJSONLoader.js +3 -2
- package/src/coord/geo/geoSourceManager.js +3 -2
- package/src/coord/geo/parseGeoJson.js +3 -2
- package/src/coord/radar/Radar.js +6 -8
- package/src/data/DataDimensionInfo.js +135 -0
- package/src/data/Graph.js +0 -5
- package/src/data/List.js +30 -17
- package/src/data/Tree.js +6 -39
- package/src/data/helper/completeDimensions.js +49 -30
- package/src/data/helper/createDimensions.js +2 -0
- package/src/data/helper/sourceHelper.js +216 -124
- package/src/echarts.js +60 -36
- package/src/langEN.js +26 -0
- package/src/layout/barGrid.js +22 -10
- package/src/layout/barPolar.js +4 -6
- package/src/loading/default.js +46 -34
- package/src/model/.DS_Store +0 -0
- package/src/model/Series.js +4 -4
- package/src/model/referHelper.js +34 -11
- package/src/preprocessor/.DS_Store +0 -0
- package/src/processor/dataSample.js +1 -1
- package/src/scale/Interval.js +84 -4
- package/src/scale/Log.js +9 -2
- package/src/scale/helper.js +1 -39
- package/src/stream/Scheduler.js +9 -1
- package/src/theme/dark.js +3 -0
- package/src/util/.DS_Store +0 -0
- package/src/util/format.js +17 -1
- package/src/util/graphic.js +13 -11
- package/src/visual/LegendVisualProvider.js +55 -0
- package/src/visual/VisualMapping.js +1 -1
- package/src/visual/dataColor.js +0 -13
- package/src/visual/seriesColor.js +13 -7
- package/src/visual/symbol.js +11 -2
- package/theme/.DS_Store +0 -0
- package/theme/azul.js +163 -0
- package/theme/bee-inspired.js +178 -0
- package/theme/blue.js +178 -0
- package/theme/caravan.js +178 -0
- package/theme/carp.js +163 -0
- package/theme/cool.js +180 -0
- package/theme/dark-blue.js +168 -0
- package/theme/dark-bold.js +168 -0
- package/theme/dark-digerati.js +168 -0
- package/theme/dark-fresh-cut.js +168 -0
- package/theme/dark-mushroom.js +168 -0
- package/theme/dark.js +69 -62
- package/theme/eduardo.js +178 -0
- package/theme/forest.js +163 -0
- package/theme/fresh-cut.js +163 -0
- package/theme/fruit.js +178 -0
- package/theme/gray.js +220 -0
- package/theme/green.js +222 -0
- package/theme/helianthus.js +263 -0
- package/theme/infographic.js +72 -57
- package/theme/inspired.js +163 -0
- package/theme/jazz.js +163 -0
- package/theme/london.js +163 -0
- package/theme/macarons.js +80 -57
- package/theme/macarons2.js +251 -0
- package/theme/mint.js +155 -0
- package/theme/red-velvet.js +163 -0
- package/theme/red.js +225 -0
- package/theme/roma.js +55 -22
- package/theme/royal.js +163 -0
- package/theme/sakura.js +140 -0
- package/theme/shine.js +52 -45
- package/theme/tech-blue.js +180 -0
- package/theme/vintage.js +37 -23
package/src/chart/helper/Line.js
CHANGED
|
@@ -37,22 +37,29 @@ function makeSymbolTypeKey(symbolCategory) {
|
|
|
37
37
|
* @inner
|
|
38
38
|
*/
|
|
39
39
|
function createSymbol(name, lineData, idx) {
|
|
40
|
-
var color = lineData.getItemVisual(idx, 'color');
|
|
41
40
|
var symbolType = lineData.getItemVisual(idx, name);
|
|
42
|
-
var symbolSize = lineData.getItemVisual(idx, name + 'Size');
|
|
43
41
|
|
|
44
42
|
if (!symbolType || symbolType === 'none') {
|
|
45
43
|
return;
|
|
46
44
|
}
|
|
47
45
|
|
|
46
|
+
var color = lineData.getItemVisual(idx, 'color');
|
|
47
|
+
var symbolSize = lineData.getItemVisual(idx, name + 'Size');
|
|
48
|
+
var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');
|
|
49
|
+
|
|
48
50
|
if (!zrUtil.isArray(symbolSize)) {
|
|
49
51
|
symbolSize = [symbolSize, symbolSize];
|
|
50
52
|
}
|
|
53
|
+
|
|
51
54
|
var symbolPath = symbolUtil.createSymbol(
|
|
52
55
|
symbolType, -symbolSize[0] / 2, -symbolSize[1] / 2,
|
|
53
56
|
symbolSize[0], symbolSize[1], color
|
|
54
57
|
);
|
|
55
58
|
|
|
59
|
+
// rotate by default if symbolRotate is not specified or NaN
|
|
60
|
+
symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate)
|
|
61
|
+
? void 0
|
|
62
|
+
: +symbolRotate * Math.PI / 180 || 0;
|
|
56
63
|
symbolPath.name = name;
|
|
57
64
|
|
|
58
65
|
return symbolPath;
|
|
@@ -120,18 +127,38 @@ function updateSymbolAndLabelBeforeLineUpdate() {
|
|
|
120
127
|
|
|
121
128
|
if (symbolFrom) {
|
|
122
129
|
symbolFrom.attr('position', fromPos);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
130
|
+
// Fix #12388
|
|
131
|
+
// when symbol is set to be 'arrow' in markLine,
|
|
132
|
+
// symbolRotate value will be ignored, and compulsively use tangent angle.
|
|
133
|
+
// rotate by default if symbol rotation is not specified
|
|
134
|
+
var specifiedRotation = symbolFrom.__specifiedRotation;
|
|
135
|
+
if (specifiedRotation == null) {
|
|
136
|
+
var tangent = line.tangentAt(0);
|
|
137
|
+
symbolFrom.attr('rotation', Math.PI / 2 - Math.atan2(
|
|
138
|
+
tangent[1], tangent[0]
|
|
139
|
+
));
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
symbolFrom.attr('rotation', specifiedRotation);
|
|
143
|
+
}
|
|
127
144
|
symbolFrom.attr('scale', [invScale * percent, invScale * percent]);
|
|
128
145
|
}
|
|
129
146
|
if (symbolTo) {
|
|
130
147
|
symbolTo.attr('position', toPos);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
148
|
+
// Fix #12388
|
|
149
|
+
// when symbol is set to be 'arrow' in markLine,
|
|
150
|
+
// symbolRotate value will be ignored, and compulsively use tangent angle.
|
|
151
|
+
// rotate by default if symbol rotation is not specified
|
|
152
|
+
var specifiedRotation = symbolTo.__specifiedRotation;
|
|
153
|
+
if (specifiedRotation == null) {
|
|
154
|
+
var tangent = line.tangentAt(1);
|
|
155
|
+
symbolTo.attr('rotation', -Math.PI / 2 - Math.atan2(
|
|
156
|
+
tangent[1], tangent[0]
|
|
157
|
+
));
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
symbolTo.attr('rotation', specifiedRotation);
|
|
161
|
+
}
|
|
135
162
|
symbolTo.attr('scale', [invScale * percent, invScale * percent]);
|
|
136
163
|
}
|
|
137
164
|
|
|
@@ -141,39 +168,90 @@ function updateSymbolAndLabelBeforeLineUpdate() {
|
|
|
141
168
|
var textPosition;
|
|
142
169
|
var textAlign;
|
|
143
170
|
var textVerticalAlign;
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
171
|
+
var textOrigin;
|
|
172
|
+
|
|
173
|
+
var distance = label.__labelDistance;
|
|
174
|
+
var distanceX = distance[0] * invScale;
|
|
175
|
+
var distanceY = distance[1] * invScale;
|
|
176
|
+
var halfPercent = percent / 2;
|
|
177
|
+
var tangent = line.tangentAt(halfPercent);
|
|
178
|
+
var n = [tangent[1], -tangent[0]];
|
|
179
|
+
var cp = line.pointAt(halfPercent);
|
|
180
|
+
if (n[1] > 0) {
|
|
181
|
+
n[0] = -n[0];
|
|
182
|
+
n[1] = -n[1];
|
|
151
183
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
var tangent = line.tangentAt(halfPercent);
|
|
156
|
-
var n = [tangent[1], -tangent[0]];
|
|
157
|
-
var cp = line.pointAt(halfPercent);
|
|
158
|
-
if (n[1] > 0) {
|
|
159
|
-
n[0] = -n[0];
|
|
160
|
-
n[1] = -n[1];
|
|
161
|
-
}
|
|
162
|
-
textPosition = [cp[0] + n[0] * distance, cp[1] + n[1] * distance];
|
|
163
|
-
textAlign = 'center';
|
|
164
|
-
textVerticalAlign = 'bottom';
|
|
184
|
+
var dir = tangent[0] < 0 ? -1 : 1;
|
|
185
|
+
|
|
186
|
+
if (label.__position !== 'start' && label.__position !== 'end') {
|
|
165
187
|
var rotation = -Math.atan2(tangent[1], tangent[0]);
|
|
166
188
|
if (toPos[0] < fromPos[0]) {
|
|
167
189
|
rotation = Math.PI + rotation;
|
|
168
190
|
}
|
|
169
191
|
label.attr('rotation', rotation);
|
|
170
192
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
193
|
+
|
|
194
|
+
var dy;
|
|
195
|
+
switch (label.__position) {
|
|
196
|
+
case 'insideStartTop':
|
|
197
|
+
case 'insideMiddleTop':
|
|
198
|
+
case 'insideEndTop':
|
|
199
|
+
case 'middle':
|
|
200
|
+
dy = -distanceY;
|
|
201
|
+
textVerticalAlign = 'bottom';
|
|
202
|
+
break;
|
|
203
|
+
|
|
204
|
+
case 'insideStartBottom':
|
|
205
|
+
case 'insideMiddleBottom':
|
|
206
|
+
case 'insideEndBottom':
|
|
207
|
+
dy = distanceY;
|
|
208
|
+
textVerticalAlign = 'top';
|
|
209
|
+
break;
|
|
210
|
+
|
|
211
|
+
default:
|
|
212
|
+
dy = 0;
|
|
213
|
+
textVerticalAlign = 'middle';
|
|
176
214
|
}
|
|
215
|
+
|
|
216
|
+
switch (label.__position) {
|
|
217
|
+
case 'end':
|
|
218
|
+
textPosition = [d[0] * distanceX + toPos[0], d[1] * distanceY + toPos[1]];
|
|
219
|
+
textAlign = d[0] > 0.8 ? 'left' : (d[0] < -0.8 ? 'right' : 'center');
|
|
220
|
+
textVerticalAlign = d[1] > 0.8 ? 'top' : (d[1] < -0.8 ? 'bottom' : 'middle');
|
|
221
|
+
break;
|
|
222
|
+
|
|
223
|
+
case 'start':
|
|
224
|
+
textPosition = [-d[0] * distanceX + fromPos[0], -d[1] * distanceY + fromPos[1]];
|
|
225
|
+
textAlign = d[0] > 0.8 ? 'right' : (d[0] < -0.8 ? 'left' : 'center');
|
|
226
|
+
textVerticalAlign = d[1] > 0.8 ? 'bottom' : (d[1] < -0.8 ? 'top' : 'middle');
|
|
227
|
+
break;
|
|
228
|
+
|
|
229
|
+
case 'insideStartTop':
|
|
230
|
+
case 'insideStart':
|
|
231
|
+
case 'insideStartBottom':
|
|
232
|
+
textPosition = [distanceX * dir + fromPos[0], fromPos[1] + dy];
|
|
233
|
+
textAlign = tangent[0] < 0 ? 'right' : 'left';
|
|
234
|
+
textOrigin = [-distanceX * dir, -dy];
|
|
235
|
+
break;
|
|
236
|
+
|
|
237
|
+
case 'insideMiddleTop':
|
|
238
|
+
case 'insideMiddle':
|
|
239
|
+
case 'insideMiddleBottom':
|
|
240
|
+
case 'middle':
|
|
241
|
+
textPosition = [cp[0], cp[1] + dy];
|
|
242
|
+
textAlign = 'center';
|
|
243
|
+
textOrigin = [0, -dy];
|
|
244
|
+
break;
|
|
245
|
+
|
|
246
|
+
case 'insideEndTop':
|
|
247
|
+
case 'insideEnd':
|
|
248
|
+
case 'insideEndBottom':
|
|
249
|
+
textPosition = [-distanceX * dir + toPos[0], toPos[1] + dy];
|
|
250
|
+
textAlign = tangent[0] >= 0 ? 'right' : 'left';
|
|
251
|
+
textOrigin = [distanceX * dir, -dy];
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
|
|
177
255
|
label.attr({
|
|
178
256
|
style: {
|
|
179
257
|
// Use the user specified text align and baseline first
|
|
@@ -181,7 +259,8 @@ function updateSymbolAndLabelBeforeLineUpdate() {
|
|
|
181
259
|
textAlign: label.__textAlign || textAlign
|
|
182
260
|
},
|
|
183
261
|
position: textPosition,
|
|
184
|
-
scale: [invScale, invScale]
|
|
262
|
+
scale: [invScale, invScale],
|
|
263
|
+
origin: textOrigin
|
|
185
264
|
});
|
|
186
265
|
}
|
|
187
266
|
}
|
|
@@ -357,6 +436,12 @@ lineProto._updateCommonStl = function (lineData, idx, seriesScope) {
|
|
|
357
436
|
label.__verticalAlign = labelStyle.textVerticalAlign;
|
|
358
437
|
// 'start', 'middle', 'end'
|
|
359
438
|
label.__position = labelModel.get('position') || 'middle';
|
|
439
|
+
|
|
440
|
+
var distance = labelModel.get('distance');
|
|
441
|
+
if (!zrUtil.isArray(distance)) {
|
|
442
|
+
distance = [distance, distance];
|
|
443
|
+
}
|
|
444
|
+
label.__labelDistance = distance;
|
|
360
445
|
}
|
|
361
446
|
|
|
362
447
|
if (emphasisText != null) {
|
|
@@ -403,4 +488,4 @@ lineProto.setLinePoints = function (points) {
|
|
|
403
488
|
|
|
404
489
|
zrUtil.inherits(Line, graphic.Group);
|
|
405
490
|
|
|
406
|
-
export default Line;
|
|
491
|
+
export default Line;
|
|
@@ -123,9 +123,13 @@ lineDrawProto.incrementalPrepareUpdate = function (lineData) {
|
|
|
123
123
|
this.group.removeAll();
|
|
124
124
|
};
|
|
125
125
|
|
|
126
|
+
function isEffectObject(el) {
|
|
127
|
+
return el.animators && el.animators.length > 0;
|
|
128
|
+
}
|
|
129
|
+
|
|
126
130
|
lineDrawProto.incrementalUpdate = function (taskParams, lineData) {
|
|
127
131
|
function updateIncrementalAndHover(el) {
|
|
128
|
-
if (!el.isGroup) {
|
|
132
|
+
if (!el.isGroup && !isEffectObject(el)) {
|
|
129
133
|
el.incremental = el.useHoverLayer = true;
|
|
130
134
|
}
|
|
131
135
|
}
|
|
@@ -238,7 +238,7 @@ symbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {
|
|
|
238
238
|
}
|
|
239
239
|
else {
|
|
240
240
|
symbolPath.setStyle({
|
|
241
|
-
opacity:
|
|
241
|
+
opacity: 1,
|
|
242
242
|
shadowBlur: null,
|
|
243
243
|
shadowOffsetX: null,
|
|
244
244
|
shadowOffsetY: null,
|
|
@@ -248,7 +248,6 @@ symbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {
|
|
|
248
248
|
|
|
249
249
|
var itemStyle = seriesScope && seriesScope.itemStyle;
|
|
250
250
|
var hoverItemStyle = seriesScope && seriesScope.hoverItemStyle;
|
|
251
|
-
var symbolRotate = seriesScope && seriesScope.symbolRotate;
|
|
252
251
|
var symbolOffset = seriesScope && seriesScope.symbolOffset;
|
|
253
252
|
var labelModel = seriesScope && seriesScope.labelModel;
|
|
254
253
|
var hoverLabelModel = seriesScope && seriesScope.hoverLabelModel;
|
|
@@ -264,7 +263,6 @@ symbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {
|
|
|
264
263
|
itemStyle = itemModel.getModel(normalStyleAccessPath).getItemStyle(['color']);
|
|
265
264
|
hoverItemStyle = itemModel.getModel(emphasisStyleAccessPath).getItemStyle();
|
|
266
265
|
|
|
267
|
-
symbolRotate = itemModel.getShallow('symbolRotate');
|
|
268
266
|
symbolOffset = itemModel.getShallow('symbolOffset');
|
|
269
267
|
|
|
270
268
|
labelModel = itemModel.getModel(normalLabelAccessPath);
|
|
@@ -278,6 +276,8 @@ symbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {
|
|
|
278
276
|
|
|
279
277
|
var elStyle = symbolPath.style;
|
|
280
278
|
|
|
279
|
+
var symbolRotate = data.getItemVisual(idx, 'symbolRotate');
|
|
280
|
+
|
|
281
281
|
symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);
|
|
282
282
|
|
|
283
283
|
if (symbolOffset) {
|
|
@@ -394,4 +394,4 @@ symbolProto.fadeOut = function (cb, opt) {
|
|
|
394
394
|
|
|
395
395
|
zrUtil.inherits(SymbolClz, graphic.Group);
|
|
396
396
|
|
|
397
|
-
export default SymbolClz;
|
|
397
|
+
export default SymbolClz;
|
|
@@ -35,6 +35,10 @@ function createGridClipPath(cartesian, hasAnimation, seriesModel) {
|
|
|
35
35
|
width += lineWidth;
|
|
36
36
|
height += lineWidth;
|
|
37
37
|
|
|
38
|
+
// fix: https://github.com/apache/incubator-echarts/issues/11369
|
|
39
|
+
x = Math.floor(x);
|
|
40
|
+
width = Math.round(width);
|
|
41
|
+
|
|
38
42
|
var clipPath = new graphic.Rect({
|
|
39
43
|
shape: {
|
|
40
44
|
x: x,
|
|
@@ -39,10 +39,12 @@ export default function (nodes, edges, seriesModel, directed, beforeLink) {
|
|
|
39
39
|
var linkNameList = [];
|
|
40
40
|
var validEdges = [];
|
|
41
41
|
var linkCount = 0;
|
|
42
|
+
|
|
42
43
|
for (var i = 0; i < edges.length; i++) {
|
|
43
44
|
var link = edges[i];
|
|
44
45
|
var source = link.source;
|
|
45
46
|
var target = link.target;
|
|
47
|
+
|
|
46
48
|
// addEdge may fail when source or target not exists
|
|
47
49
|
if (graph.addEdge(source, target, linkCount)) {
|
|
48
50
|
validEdges.push(link);
|
|
@@ -89,6 +91,5 @@ export default function (nodes, edges, seriesModel, directed, beforeLink) {
|
|
|
89
91
|
|
|
90
92
|
// Update dataIndex of nodes and edges because invalid edge may be removed
|
|
91
93
|
graph.update();
|
|
92
|
-
|
|
93
94
|
return graph;
|
|
94
95
|
}
|
|
@@ -24,15 +24,17 @@ import {SOURCE_FORMAT_ORIGINAL} from '../../data/helper/sourceType';
|
|
|
24
24
|
import {getDimensionTypeByAxis} from '../../data/helper/dimensionHelper';
|
|
25
25
|
import {getDataItemValue} from '../../util/model';
|
|
26
26
|
import CoordinateSystem from '../../CoordinateSystem';
|
|
27
|
-
import {
|
|
27
|
+
import {getCoordSysInfoBySeries} from '../../model/referHelper';
|
|
28
28
|
import Source from '../../data/Source';
|
|
29
29
|
import {enableDataStack} from '../../data/helper/dataStackHelper';
|
|
30
|
+
import {makeSeriesEncodeForAxisCoordSys} from '../../data/helper/sourceHelper';
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
33
|
* @param {module:echarts/data/Source|Array} source Or raw data.
|
|
33
34
|
* @param {module:echarts/model/Series} seriesModel
|
|
34
35
|
* @param {Object} [opt]
|
|
35
36
|
* @param {string} [opt.generateCoord]
|
|
37
|
+
* @param {boolean} [opt.useEncodeDefaulter]
|
|
36
38
|
*/
|
|
37
39
|
function createListFromArray(source, seriesModel, opt) {
|
|
38
40
|
opt = opt || {};
|
|
@@ -44,14 +46,14 @@ function createListFromArray(source, seriesModel, opt) {
|
|
|
44
46
|
var coordSysName = seriesModel.get('coordinateSystem');
|
|
45
47
|
var registeredCoordSys = CoordinateSystem.get(coordSysName);
|
|
46
48
|
|
|
47
|
-
var
|
|
49
|
+
var coordSysInfo = getCoordSysInfoBySeries(seriesModel);
|
|
48
50
|
|
|
49
51
|
var coordSysDimDefs;
|
|
50
52
|
|
|
51
|
-
if (
|
|
52
|
-
coordSysDimDefs = zrUtil.map(
|
|
53
|
+
if (coordSysInfo) {
|
|
54
|
+
coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {
|
|
53
55
|
var dimInfo = {name: dim};
|
|
54
|
-
var axisModel =
|
|
56
|
+
var axisModel = coordSysInfo.axisMap.get(dim);
|
|
55
57
|
if (axisModel) {
|
|
56
58
|
var axisType = axisModel.get('type');
|
|
57
59
|
dimInfo.type = getDimensionTypeByAxis(axisType);
|
|
@@ -72,14 +74,17 @@ function createListFromArray(source, seriesModel, opt) {
|
|
|
72
74
|
|
|
73
75
|
var dimInfoList = createDimensions(source, {
|
|
74
76
|
coordDimensions: coordSysDimDefs,
|
|
75
|
-
generateCoord: opt.generateCoord
|
|
77
|
+
generateCoord: opt.generateCoord,
|
|
78
|
+
encodeDefaulter: opt.useEncodeDefaulter
|
|
79
|
+
? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel)
|
|
80
|
+
: null
|
|
76
81
|
});
|
|
77
82
|
|
|
78
83
|
var firstCategoryDimIndex;
|
|
79
84
|
var hasNameEncode;
|
|
80
|
-
|
|
85
|
+
coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {
|
|
81
86
|
var coordDim = dimInfo.coordDim;
|
|
82
|
-
var categoryAxisModel =
|
|
87
|
+
var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);
|
|
83
88
|
if (categoryAxisModel) {
|
|
84
89
|
if (firstCategoryDimIndex == null) {
|
|
85
90
|
firstCategoryDimIndex = dimIndex;
|
|
@@ -32,8 +32,11 @@ export default function () {
|
|
|
32
32
|
var originalLarge = fields.large;
|
|
33
33
|
var originalProgressive = fields.progressiveRender;
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
// FIXME: if the planner works on a filtered series, `pipelineContext` does not
|
|
36
|
+
// exists. See #11611 . Probably we need to modify this structure, see the comment
|
|
37
|
+
// on `performRawSeries` in `Schedular.js`.
|
|
38
|
+
var large = fields.large = pipelineContext && pipelineContext.large;
|
|
39
|
+
var progressive = fields.progressiveRender = pipelineContext && pipelineContext.progressiveRender;
|
|
37
40
|
|
|
38
41
|
return !!((originalLarge ^ large) || (originalProgressive ^ progressive)) && 'reset';
|
|
39
42
|
};
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import * as zrUtil from 'zrender/src/core/util';
|
|
21
|
+
|
|
22
|
+
var KEY_DELIMITER = '-->';
|
|
23
|
+
/**
|
|
24
|
+
* params handler
|
|
25
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
26
|
+
* @returns {*}
|
|
27
|
+
*/
|
|
28
|
+
var getAutoCurvenessParams = function (seriesModel) {
|
|
29
|
+
return seriesModel.get('autoCurveness') || null;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Generate a list of edge curvatures, 20 is the default
|
|
34
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
35
|
+
* @param {number} appendLength
|
|
36
|
+
* @return 20 => [0, -0.2, 0.2, -0.4, 0.4, -0.6, 0.6, -0.8, 0.8, -1, 1, -1.2, 1.2, -1.4, 1.4, -1.6, 1.6, -1.8, 1.8, -2]
|
|
37
|
+
*/
|
|
38
|
+
var createCurveness = function (seriesModel, appendLength) {
|
|
39
|
+
var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);
|
|
40
|
+
var length = 20;
|
|
41
|
+
var curvenessList = [];
|
|
42
|
+
|
|
43
|
+
// handler the function set
|
|
44
|
+
if (typeof autoCurvenessParmas === 'number') {
|
|
45
|
+
length = autoCurvenessParmas;
|
|
46
|
+
}
|
|
47
|
+
else if (zrUtil.isArray(autoCurvenessParmas)) {
|
|
48
|
+
seriesModel.__curvenessList = autoCurvenessParmas;
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// append length
|
|
53
|
+
if (appendLength > length) {
|
|
54
|
+
length = appendLength;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// make sure the length is even
|
|
58
|
+
var len = length % 2 ? length + 2 : length + 3;
|
|
59
|
+
curvenessList = [];
|
|
60
|
+
|
|
61
|
+
for (var i = 0; i < len; i++) {
|
|
62
|
+
curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));
|
|
63
|
+
}
|
|
64
|
+
seriesModel.__curvenessList = curvenessList;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Create different cache key data in the positive and negative directions, in order to set the curvature later
|
|
69
|
+
* @param {number|string|module:echarts/data/Graph.Node} n1
|
|
70
|
+
* @param {number|string|module:echarts/data/Graph.Node} n2
|
|
71
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
72
|
+
* @returns {string} key
|
|
73
|
+
*/
|
|
74
|
+
var getKeyOfEdges = function (n1, n2, seriesModel) {
|
|
75
|
+
var source = [n1.id, n1.dataIndex].join('.');
|
|
76
|
+
var target = [n2.id, n2.dataIndex].join('.');
|
|
77
|
+
return [seriesModel.uid, source, target].join(KEY_DELIMITER);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* get opposite key
|
|
82
|
+
* @param {string} key
|
|
83
|
+
* @returns {string}
|
|
84
|
+
*/
|
|
85
|
+
var getOppositeKey = function (key) {
|
|
86
|
+
var keys = key.split(KEY_DELIMITER);
|
|
87
|
+
return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* get edgeMap with key
|
|
92
|
+
* @param edge
|
|
93
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
94
|
+
*/
|
|
95
|
+
var getEdgeFromMap = function (edge, seriesModel) {
|
|
96
|
+
var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);
|
|
97
|
+
return seriesModel.__edgeMap[key];
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* calculate all cases total length
|
|
102
|
+
* @param edge
|
|
103
|
+
* @param seriesModel
|
|
104
|
+
* @returns {number}
|
|
105
|
+
*/
|
|
106
|
+
var getTotalLengthBetweenNodes = function (edge, seriesModel) {
|
|
107
|
+
var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);
|
|
108
|
+
var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);
|
|
109
|
+
|
|
110
|
+
return len + lenV;
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
*
|
|
115
|
+
* @param key
|
|
116
|
+
*/
|
|
117
|
+
var getEdgeMapLengthWithKey = function (key, seriesModel) {
|
|
118
|
+
var edgeMap = seriesModel.__edgeMap;
|
|
119
|
+
return edgeMap[key] ? edgeMap[key].length : 0;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Count the number of edges between the same two points, used to obtain the curvature table and the parity of the edge
|
|
124
|
+
* @see /graph/GraphSeries.js@getInitialData
|
|
125
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
126
|
+
*/
|
|
127
|
+
export function initCurvenessList(seriesModel) {
|
|
128
|
+
if (!getAutoCurvenessParams(seriesModel)) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
seriesModel.__curvenessList = [];
|
|
133
|
+
seriesModel.__edgeMap = {};
|
|
134
|
+
// calc the array of curveness List
|
|
135
|
+
createCurveness(seriesModel);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* set edgeMap with key
|
|
140
|
+
* @param {number|string|module:echarts/data/Graph.Node} n1
|
|
141
|
+
* @param {number|string|module:echarts/data/Graph.Node} n2
|
|
142
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
143
|
+
* @param {number} index
|
|
144
|
+
*/
|
|
145
|
+
export function createEdgeMapForCurveness(n1, n2, seriesModel, index) {
|
|
146
|
+
if (!getAutoCurvenessParams(seriesModel)) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
var key = getKeyOfEdges(n1, n2, seriesModel);
|
|
151
|
+
var edgeMap = seriesModel.__edgeMap;
|
|
152
|
+
var oppositeEdges = edgeMap[getOppositeKey(key)];
|
|
153
|
+
// set direction
|
|
154
|
+
if (edgeMap[key] && !oppositeEdges) {
|
|
155
|
+
edgeMap[key].isForward = true;
|
|
156
|
+
}
|
|
157
|
+
else if (oppositeEdges && edgeMap[key]) {
|
|
158
|
+
oppositeEdges.isForward = true;
|
|
159
|
+
edgeMap[key].isForward = false;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
edgeMap[key] = edgeMap[key] || [];
|
|
163
|
+
edgeMap[key].push(index);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* get curvature for edge
|
|
168
|
+
* @param edge
|
|
169
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
170
|
+
* @param index
|
|
171
|
+
*/
|
|
172
|
+
export function getCurvenessForEdge(edge, seriesModel, index, needReverse) {
|
|
173
|
+
var autoCurvenessParams = getAutoCurvenessParams(seriesModel);
|
|
174
|
+
var isArrayParam = zrUtil.isArray(autoCurvenessParams);
|
|
175
|
+
if (!autoCurvenessParams) {
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
var edgeArray = getEdgeFromMap(edge, seriesModel);
|
|
180
|
+
if (!edgeArray) {
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
var edgeIndex = -1;
|
|
185
|
+
for (var i = 0; i < edgeArray.length; i++) {
|
|
186
|
+
if (edgeArray[i] === index) {
|
|
187
|
+
edgeIndex = i;
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// if totalLen is Longer createCurveness
|
|
192
|
+
var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);
|
|
193
|
+
createCurveness(seriesModel, totalLen);
|
|
194
|
+
|
|
195
|
+
edge.lineStyle = edge.lineStyle || {};
|
|
196
|
+
// if is opposite edge, must set curvenss to opposite number
|
|
197
|
+
var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);
|
|
198
|
+
var curvenessList = seriesModel.__curvenessList;
|
|
199
|
+
// if pass array no need parity
|
|
200
|
+
var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;
|
|
201
|
+
|
|
202
|
+
if (!edgeArray.isForward) {
|
|
203
|
+
// the opposite edge show outside
|
|
204
|
+
var oppositeKey = getOppositeKey(curKey);
|
|
205
|
+
var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);
|
|
206
|
+
var resValue = curvenessList[edgeIndex + len + parityCorrection];
|
|
207
|
+
// isNeedReverse, simple, force type need reverse the curveness in the junction of the forword and the opposite
|
|
208
|
+
if (needReverse) {
|
|
209
|
+
// set as array may make the parity handle with the len of opposite
|
|
210
|
+
if (isArrayParam) {
|
|
211
|
+
if (autoCurvenessParams && autoCurvenessParams[0] === 0) {
|
|
212
|
+
return (len + parityCorrection) % 2 ? resValue : -resValue;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
return (len + parityCorrection) % 2 ? resValue : -resValue;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
return curvenessList[edgeIndex + len + parityCorrection];
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
return curvenessList[parityCorrection + edgeIndex];
|
|
228
|
+
}
|
|
229
|
+
}
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
import createListSimply from '../helper/createListSimply';
|
|
22
22
|
import * as zrUtil from 'zrender/src/core/util';
|
|
23
23
|
import {getDimensionTypeByAxis} from '../../data/helper/dimensionHelper';
|
|
24
|
+
import {makeSeriesEncodeForAxisCoordSys} from '../../data/helper/sourceHelper';
|
|
24
25
|
|
|
25
26
|
export var seriesModelMixin = {
|
|
26
27
|
|
|
@@ -47,7 +48,7 @@ export var seriesModelMixin = {
|
|
|
47
48
|
var addOrdinal;
|
|
48
49
|
|
|
49
50
|
// FIXME
|
|
50
|
-
//
|
|
51
|
+
// Consider time axis.
|
|
51
52
|
|
|
52
53
|
if (xAxisType === 'category') {
|
|
53
54
|
option.layout = 'horizontal';
|
|
@@ -95,25 +96,29 @@ export var seriesModelMixin = {
|
|
|
95
96
|
}
|
|
96
97
|
|
|
97
98
|
var defaultValueDimensions = this.defaultValueDimensions;
|
|
99
|
+
var coordDimensions = [{
|
|
100
|
+
name: baseAxisDim,
|
|
101
|
+
type: getDimensionTypeByAxis(baseAxisType),
|
|
102
|
+
ordinalMeta: ordinalMeta,
|
|
103
|
+
otherDims: {
|
|
104
|
+
tooltip: false,
|
|
105
|
+
itemName: 0
|
|
106
|
+
},
|
|
107
|
+
dimsDef: ['base']
|
|
108
|
+
}, {
|
|
109
|
+
name: otherAxisDim,
|
|
110
|
+
type: getDimensionTypeByAxis(otherAxisType),
|
|
111
|
+
dimsDef: defaultValueDimensions.slice()
|
|
112
|
+
}];
|
|
98
113
|
|
|
99
114
|
return createListSimply(
|
|
100
115
|
this,
|
|
101
116
|
{
|
|
102
|
-
coordDimensions:
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
tooltip: false,
|
|
108
|
-
itemName: 0
|
|
109
|
-
},
|
|
110
|
-
dimsDef: ['base']
|
|
111
|
-
}, {
|
|
112
|
-
name: otherAxisDim,
|
|
113
|
-
type: getDimensionTypeByAxis(otherAxisType),
|
|
114
|
-
dimsDef: defaultValueDimensions.slice()
|
|
115
|
-
}],
|
|
116
|
-
dimensionsCount: defaultValueDimensions.length + 1
|
|
117
|
+
coordDimensions: coordDimensions,
|
|
118
|
+
dimensionsCount: defaultValueDimensions.length + 1,
|
|
119
|
+
encodeDefaulter: zrUtil.curry(
|
|
120
|
+
makeSeriesEncodeForAxisCoordSys, coordDimensions, this
|
|
121
|
+
)
|
|
117
122
|
}
|
|
118
123
|
);
|
|
119
124
|
},
|