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/lib/chart/helper/Line.js
CHANGED
|
@@ -65,19 +65,23 @@ function makeSymbolTypeKey(symbolCategory) {
|
|
|
65
65
|
|
|
66
66
|
|
|
67
67
|
function createSymbol(name, lineData, idx) {
|
|
68
|
-
var color = lineData.getItemVisual(idx, 'color');
|
|
69
68
|
var symbolType = lineData.getItemVisual(idx, name);
|
|
70
|
-
var symbolSize = lineData.getItemVisual(idx, name + 'Size');
|
|
71
69
|
|
|
72
70
|
if (!symbolType || symbolType === 'none') {
|
|
73
71
|
return;
|
|
74
72
|
}
|
|
75
73
|
|
|
74
|
+
var color = lineData.getItemVisual(idx, 'color');
|
|
75
|
+
var symbolSize = lineData.getItemVisual(idx, name + 'Size');
|
|
76
|
+
var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');
|
|
77
|
+
|
|
76
78
|
if (!zrUtil.isArray(symbolSize)) {
|
|
77
79
|
symbolSize = [symbolSize, symbolSize];
|
|
78
80
|
}
|
|
79
81
|
|
|
80
|
-
var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSize[0] / 2, -symbolSize[1] / 2, symbolSize[0], symbolSize[1], color);
|
|
82
|
+
var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSize[0] / 2, -symbolSize[1] / 2, symbolSize[0], symbolSize[1], color); // rotate by default if symbolRotate is not specified or NaN
|
|
83
|
+
|
|
84
|
+
symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;
|
|
81
85
|
symbolPath.name = name;
|
|
82
86
|
return symbolPath;
|
|
83
87
|
}
|
|
@@ -143,16 +147,38 @@ function updateSymbolAndLabelBeforeLineUpdate() {
|
|
|
143
147
|
vector.normalize(d, d);
|
|
144
148
|
|
|
145
149
|
if (symbolFrom) {
|
|
146
|
-
symbolFrom.attr('position', fromPos);
|
|
147
|
-
|
|
148
|
-
|
|
150
|
+
symbolFrom.attr('position', fromPos); // Fix #12388
|
|
151
|
+
// when symbol is set to be 'arrow' in markLine,
|
|
152
|
+
// symbolRotate value will be ignored, and compulsively use tangent angle.
|
|
153
|
+
// rotate by default if symbol rotation is not specified
|
|
154
|
+
|
|
155
|
+
var specifiedRotation = symbolFrom.__specifiedRotation;
|
|
156
|
+
|
|
157
|
+
if (specifiedRotation == null) {
|
|
158
|
+
var tangent = line.tangentAt(0);
|
|
159
|
+
symbolFrom.attr('rotation', Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));
|
|
160
|
+
} else {
|
|
161
|
+
symbolFrom.attr('rotation', specifiedRotation);
|
|
162
|
+
}
|
|
163
|
+
|
|
149
164
|
symbolFrom.attr('scale', [invScale * percent, invScale * percent]);
|
|
150
165
|
}
|
|
151
166
|
|
|
152
167
|
if (symbolTo) {
|
|
153
|
-
symbolTo.attr('position', toPos);
|
|
154
|
-
|
|
155
|
-
|
|
168
|
+
symbolTo.attr('position', toPos); // Fix #12388
|
|
169
|
+
// when symbol is set to be 'arrow' in markLine,
|
|
170
|
+
// symbolRotate value will be ignored, and compulsively use tangent angle.
|
|
171
|
+
// rotate by default if symbol rotation is not specified
|
|
172
|
+
|
|
173
|
+
var specifiedRotation = symbolTo.__specifiedRotation;
|
|
174
|
+
|
|
175
|
+
if (specifiedRotation == null) {
|
|
176
|
+
var tangent = line.tangentAt(1);
|
|
177
|
+
symbolTo.attr('rotation', -Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));
|
|
178
|
+
} else {
|
|
179
|
+
symbolTo.attr('rotation', specifiedRotation);
|
|
180
|
+
}
|
|
181
|
+
|
|
156
182
|
symbolTo.attr('scale', [invScale * percent, invScale * percent]);
|
|
157
183
|
}
|
|
158
184
|
|
|
@@ -161,40 +187,93 @@ function updateSymbolAndLabelBeforeLineUpdate() {
|
|
|
161
187
|
var textPosition;
|
|
162
188
|
var textAlign;
|
|
163
189
|
var textVerticalAlign;
|
|
164
|
-
var
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
if (n[1] > 0) {
|
|
178
|
-
n[0] = -n[0];
|
|
179
|
-
n[1] = -n[1];
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
textPosition = [cp[0] + n[0] * distance, cp[1] + n[1] * distance];
|
|
183
|
-
textAlign = 'center';
|
|
184
|
-
textVerticalAlign = 'bottom';
|
|
185
|
-
var rotation = -Math.atan2(tangent[1], tangent[0]);
|
|
190
|
+
var textOrigin;
|
|
191
|
+
var distance = label.__labelDistance;
|
|
192
|
+
var distanceX = distance[0] * invScale;
|
|
193
|
+
var distanceY = distance[1] * invScale;
|
|
194
|
+
var halfPercent = percent / 2;
|
|
195
|
+
var tangent = line.tangentAt(halfPercent);
|
|
196
|
+
var n = [tangent[1], -tangent[0]];
|
|
197
|
+
var cp = line.pointAt(halfPercent);
|
|
198
|
+
|
|
199
|
+
if (n[1] > 0) {
|
|
200
|
+
n[0] = -n[0];
|
|
201
|
+
n[1] = -n[1];
|
|
202
|
+
}
|
|
186
203
|
|
|
187
|
-
|
|
188
|
-
rotation = Math.PI + rotation;
|
|
189
|
-
}
|
|
204
|
+
var dir = tangent[0] < 0 ? -1 : 1;
|
|
190
205
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
206
|
+
if (label.__position !== 'start' && label.__position !== 'end') {
|
|
207
|
+
var rotation = -Math.atan2(tangent[1], tangent[0]);
|
|
208
|
+
|
|
209
|
+
if (toPos[0] < fromPos[0]) {
|
|
210
|
+
rotation = Math.PI + rotation;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
label.attr('rotation', rotation);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
var dy;
|
|
217
|
+
|
|
218
|
+
switch (label.__position) {
|
|
219
|
+
case 'insideStartTop':
|
|
220
|
+
case 'insideMiddleTop':
|
|
221
|
+
case 'insideEndTop':
|
|
222
|
+
case 'middle':
|
|
223
|
+
dy = -distanceY;
|
|
224
|
+
textVerticalAlign = 'bottom';
|
|
225
|
+
break;
|
|
226
|
+
|
|
227
|
+
case 'insideStartBottom':
|
|
228
|
+
case 'insideMiddleBottom':
|
|
229
|
+
case 'insideEndBottom':
|
|
230
|
+
dy = distanceY;
|
|
231
|
+
textVerticalAlign = 'top';
|
|
232
|
+
break;
|
|
233
|
+
|
|
234
|
+
default:
|
|
235
|
+
dy = 0;
|
|
236
|
+
textVerticalAlign = 'middle';
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
switch (label.__position) {
|
|
240
|
+
case 'end':
|
|
241
|
+
textPosition = [d[0] * distanceX + toPos[0], d[1] * distanceY + toPos[1]];
|
|
242
|
+
textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';
|
|
243
|
+
textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';
|
|
244
|
+
break;
|
|
245
|
+
|
|
246
|
+
case 'start':
|
|
247
|
+
textPosition = [-d[0] * distanceX + fromPos[0], -d[1] * distanceY + fromPos[1]];
|
|
248
|
+
textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';
|
|
249
|
+
textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';
|
|
250
|
+
break;
|
|
251
|
+
|
|
252
|
+
case 'insideStartTop':
|
|
253
|
+
case 'insideStart':
|
|
254
|
+
case 'insideStartBottom':
|
|
255
|
+
textPosition = [distanceX * dir + fromPos[0], fromPos[1] + dy];
|
|
256
|
+
textAlign = tangent[0] < 0 ? 'right' : 'left';
|
|
257
|
+
textOrigin = [-distanceX * dir, -dy];
|
|
258
|
+
break;
|
|
259
|
+
|
|
260
|
+
case 'insideMiddleTop':
|
|
261
|
+
case 'insideMiddle':
|
|
262
|
+
case 'insideMiddleBottom':
|
|
263
|
+
case 'middle':
|
|
264
|
+
textPosition = [cp[0], cp[1] + dy];
|
|
265
|
+
textAlign = 'center';
|
|
266
|
+
textOrigin = [0, -dy];
|
|
267
|
+
break;
|
|
268
|
+
|
|
269
|
+
case 'insideEndTop':
|
|
270
|
+
case 'insideEnd':
|
|
271
|
+
case 'insideEndBottom':
|
|
272
|
+
textPosition = [-distanceX * dir + toPos[0], toPos[1] + dy];
|
|
273
|
+
textAlign = tangent[0] >= 0 ? 'right' : 'left';
|
|
274
|
+
textOrigin = [distanceX * dir, -dy];
|
|
275
|
+
break;
|
|
276
|
+
}
|
|
198
277
|
|
|
199
278
|
label.attr({
|
|
200
279
|
style: {
|
|
@@ -203,7 +282,8 @@ function updateSymbolAndLabelBeforeLineUpdate() {
|
|
|
203
282
|
textAlign: label.__textAlign || textAlign
|
|
204
283
|
},
|
|
205
284
|
position: textPosition,
|
|
206
|
-
scale: [invScale, invScale]
|
|
285
|
+
scale: [invScale, invScale],
|
|
286
|
+
origin: textOrigin
|
|
207
287
|
});
|
|
208
288
|
}
|
|
209
289
|
}
|
|
@@ -347,6 +427,13 @@ lineProto._updateCommonStl = function (lineData, idx, seriesScope) {
|
|
|
347
427
|
label.__verticalAlign = labelStyle.textVerticalAlign; // 'start', 'middle', 'end'
|
|
348
428
|
|
|
349
429
|
label.__position = labelModel.get('position') || 'middle';
|
|
430
|
+
var distance = labelModel.get('distance');
|
|
431
|
+
|
|
432
|
+
if (!zrUtil.isArray(distance)) {
|
|
433
|
+
distance = [distance, distance];
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
label.__labelDistance = distance;
|
|
350
437
|
}
|
|
351
438
|
|
|
352
439
|
if (emphasisText != null) {
|
|
@@ -134,9 +134,13 @@ lineDrawProto.incrementalPrepareUpdate = function (lineData) {
|
|
|
134
134
|
this.group.removeAll();
|
|
135
135
|
};
|
|
136
136
|
|
|
137
|
+
function isEffectObject(el) {
|
|
138
|
+
return el.animators && el.animators.length > 0;
|
|
139
|
+
}
|
|
140
|
+
|
|
137
141
|
lineDrawProto.incrementalUpdate = function (taskParams, lineData) {
|
|
138
142
|
function updateIncrementalAndHover(el) {
|
|
139
|
-
if (!el.isGroup) {
|
|
143
|
+
if (!el.isGroup && !isEffectObject(el)) {
|
|
140
144
|
el.incremental = el.useHoverLayer = true;
|
|
141
145
|
}
|
|
142
146
|
}
|
|
@@ -257,7 +257,7 @@ symbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {
|
|
|
257
257
|
});
|
|
258
258
|
} else {
|
|
259
259
|
symbolPath.setStyle({
|
|
260
|
-
opacity:
|
|
260
|
+
opacity: 1,
|
|
261
261
|
shadowBlur: null,
|
|
262
262
|
shadowOffsetX: null,
|
|
263
263
|
shadowOffsetY: null,
|
|
@@ -267,7 +267,6 @@ symbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {
|
|
|
267
267
|
|
|
268
268
|
var itemStyle = seriesScope && seriesScope.itemStyle;
|
|
269
269
|
var hoverItemStyle = seriesScope && seriesScope.hoverItemStyle;
|
|
270
|
-
var symbolRotate = seriesScope && seriesScope.symbolRotate;
|
|
271
270
|
var symbolOffset = seriesScope && seriesScope.symbolOffset;
|
|
272
271
|
var labelModel = seriesScope && seriesScope.labelModel;
|
|
273
272
|
var hoverLabelModel = seriesScope && seriesScope.hoverLabelModel;
|
|
@@ -280,7 +279,6 @@ symbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {
|
|
|
280
279
|
|
|
281
280
|
itemStyle = itemModel.getModel(normalStyleAccessPath).getItemStyle(['color']);
|
|
282
281
|
hoverItemStyle = itemModel.getModel(emphasisStyleAccessPath).getItemStyle();
|
|
283
|
-
symbolRotate = itemModel.getShallow('symbolRotate');
|
|
284
282
|
symbolOffset = itemModel.getShallow('symbolOffset');
|
|
285
283
|
labelModel = itemModel.getModel(normalLabelAccessPath);
|
|
286
284
|
hoverLabelModel = itemModel.getModel(emphasisLabelAccessPath);
|
|
@@ -291,6 +289,7 @@ symbolProto._updateCommon = function (data, idx, symbolSize, seriesScope) {
|
|
|
291
289
|
}
|
|
292
290
|
|
|
293
291
|
var elStyle = symbolPath.style;
|
|
292
|
+
var symbolRotate = data.getItemVisual(idx, 'symbolRotate');
|
|
294
293
|
symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);
|
|
295
294
|
|
|
296
295
|
if (symbolOffset) {
|
|
@@ -54,7 +54,10 @@ function createGridClipPath(cartesian, hasAnimation, seriesModel) {
|
|
|
54
54
|
x -= lineWidth / 2;
|
|
55
55
|
y -= lineWidth / 2;
|
|
56
56
|
width += lineWidth;
|
|
57
|
-
height += lineWidth;
|
|
57
|
+
height += lineWidth; // fix: https://github.com/apache/incubator-echarts/issues/11369
|
|
58
|
+
|
|
59
|
+
x = Math.floor(x);
|
|
60
|
+
width = Math.round(width);
|
|
58
61
|
var clipPath = new graphic.Rect({
|
|
59
62
|
shape: {
|
|
60
63
|
x: x,
|
|
@@ -40,7 +40,7 @@ var CoordinateSystem = require("../../CoordinateSystem");
|
|
|
40
40
|
|
|
41
41
|
var _referHelper = require("../../model/referHelper");
|
|
42
42
|
|
|
43
|
-
var
|
|
43
|
+
var getCoordSysInfoBySeries = _referHelper.getCoordSysInfoBySeries;
|
|
44
44
|
|
|
45
45
|
var Source = require("../../data/Source");
|
|
46
46
|
|
|
@@ -48,6 +48,10 @@ var _dataStackHelper = require("../../data/helper/dataStackHelper");
|
|
|
48
48
|
|
|
49
49
|
var enableDataStack = _dataStackHelper.enableDataStack;
|
|
50
50
|
|
|
51
|
+
var _sourceHelper = require("../../data/helper/sourceHelper");
|
|
52
|
+
|
|
53
|
+
var makeSeriesEncodeForAxisCoordSys = _sourceHelper.makeSeriesEncodeForAxisCoordSys;
|
|
54
|
+
|
|
51
55
|
/*
|
|
52
56
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
53
57
|
* or more contributor license agreements. See the NOTICE file
|
|
@@ -72,6 +76,7 @@ var enableDataStack = _dataStackHelper.enableDataStack;
|
|
|
72
76
|
* @param {module:echarts/model/Series} seriesModel
|
|
73
77
|
* @param {Object} [opt]
|
|
74
78
|
* @param {string} [opt.generateCoord]
|
|
79
|
+
* @param {boolean} [opt.useEncodeDefaulter]
|
|
75
80
|
*/
|
|
76
81
|
function createListFromArray(source, seriesModel, opt) {
|
|
77
82
|
opt = opt || {};
|
|
@@ -82,15 +87,15 @@ function createListFromArray(source, seriesModel, opt) {
|
|
|
82
87
|
|
|
83
88
|
var coordSysName = seriesModel.get('coordinateSystem');
|
|
84
89
|
var registeredCoordSys = CoordinateSystem.get(coordSysName);
|
|
85
|
-
var
|
|
90
|
+
var coordSysInfo = getCoordSysInfoBySeries(seriesModel);
|
|
86
91
|
var coordSysDimDefs;
|
|
87
92
|
|
|
88
|
-
if (
|
|
89
|
-
coordSysDimDefs = zrUtil.map(
|
|
93
|
+
if (coordSysInfo) {
|
|
94
|
+
coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {
|
|
90
95
|
var dimInfo = {
|
|
91
96
|
name: dim
|
|
92
97
|
};
|
|
93
|
-
var axisModel =
|
|
98
|
+
var axisModel = coordSysInfo.axisMap.get(dim);
|
|
94
99
|
|
|
95
100
|
if (axisModel) {
|
|
96
101
|
var axisType = axisModel.get('type');
|
|
@@ -108,13 +113,14 @@ function createListFromArray(source, seriesModel, opt) {
|
|
|
108
113
|
|
|
109
114
|
var dimInfoList = createDimensions(source, {
|
|
110
115
|
coordDimensions: coordSysDimDefs,
|
|
111
|
-
generateCoord: opt.generateCoord
|
|
116
|
+
generateCoord: opt.generateCoord,
|
|
117
|
+
encodeDefaulter: opt.useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null
|
|
112
118
|
});
|
|
113
119
|
var firstCategoryDimIndex;
|
|
114
120
|
var hasNameEncode;
|
|
115
|
-
|
|
121
|
+
coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {
|
|
116
122
|
var coordDim = dimInfo.coordDim;
|
|
117
|
-
var categoryAxisModel =
|
|
123
|
+
var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);
|
|
118
124
|
|
|
119
125
|
if (categoryAxisModel) {
|
|
120
126
|
if (firstCategoryDimIndex == null) {
|
|
@@ -50,9 +50,12 @@ function _default() {
|
|
|
50
50
|
var fields = inner(seriesModel);
|
|
51
51
|
var pipelineContext = seriesModel.pipelineContext;
|
|
52
52
|
var originalLarge = fields.large;
|
|
53
|
-
var originalProgressive = fields.progressiveRender;
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
var originalProgressive = fields.progressiveRender; // FIXME: if the planner works on a filtered series, `pipelineContext` does not
|
|
54
|
+
// exists. See #11611 . Probably we need to modify this structure, see the comment
|
|
55
|
+
// on `performRawSeries` in `Schedular.js`.
|
|
56
|
+
|
|
57
|
+
var large = fields.large = pipelineContext && pipelineContext.large;
|
|
58
|
+
var progressive = fields.progressiveRender = pipelineContext && pipelineContext.progressiveRender;
|
|
56
59
|
return !!(originalLarge ^ large || originalProgressive ^ progressive) && 'reset';
|
|
57
60
|
};
|
|
58
61
|
}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
4
|
+
* or more contributor license agreements. See the NOTICE file
|
|
5
|
+
* distributed with this work for additional information
|
|
6
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
7
|
+
* to you under the Apache License, Version 2.0 (the
|
|
8
|
+
* "License"); you may not use this file except in compliance
|
|
9
|
+
* with the License. You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing,
|
|
14
|
+
* software distributed under the License is distributed on an
|
|
15
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
16
|
+
* KIND, either express or implied. See the License for the
|
|
17
|
+
* specific language governing permissions and limitations
|
|
18
|
+
* under the License.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
var zrUtil = require("zrender/lib/core/util");
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
25
|
+
* or more contributor license agreements. See the NOTICE file
|
|
26
|
+
* distributed with this work for additional information
|
|
27
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
28
|
+
* to you under the Apache License, Version 2.0 (the
|
|
29
|
+
* "License"); you may not use this file except in compliance
|
|
30
|
+
* with the License. You may obtain a copy of the License at
|
|
31
|
+
*
|
|
32
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
33
|
+
*
|
|
34
|
+
* Unless required by applicable law or agreed to in writing,
|
|
35
|
+
* software distributed under the License is distributed on an
|
|
36
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
37
|
+
* KIND, either express or implied. See the License for the
|
|
38
|
+
* specific language governing permissions and limitations
|
|
39
|
+
* under the License.
|
|
40
|
+
*/
|
|
41
|
+
var KEY_DELIMITER = '-->';
|
|
42
|
+
/**
|
|
43
|
+
* params handler
|
|
44
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
45
|
+
* @returns {*}
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
var getAutoCurvenessParams = function (seriesModel) {
|
|
49
|
+
return seriesModel.get('autoCurveness') || null;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Generate a list of edge curvatures, 20 is the default
|
|
53
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
54
|
+
* @param {number} appendLength
|
|
55
|
+
* @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]
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
var createCurveness = function (seriesModel, appendLength) {
|
|
60
|
+
var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);
|
|
61
|
+
var length = 20;
|
|
62
|
+
var curvenessList = []; // handler the function set
|
|
63
|
+
|
|
64
|
+
if (typeof autoCurvenessParmas === 'number') {
|
|
65
|
+
length = autoCurvenessParmas;
|
|
66
|
+
} else if (zrUtil.isArray(autoCurvenessParmas)) {
|
|
67
|
+
seriesModel.__curvenessList = autoCurvenessParmas;
|
|
68
|
+
return;
|
|
69
|
+
} // append length
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
if (appendLength > length) {
|
|
73
|
+
length = appendLength;
|
|
74
|
+
} // make sure the length is even
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
var len = length % 2 ? length + 2 : length + 3;
|
|
78
|
+
curvenessList = [];
|
|
79
|
+
|
|
80
|
+
for (var i = 0; i < len; i++) {
|
|
81
|
+
curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
seriesModel.__curvenessList = curvenessList;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Create different cache key data in the positive and negative directions, in order to set the curvature later
|
|
88
|
+
* @param {number|string|module:echarts/data/Graph.Node} n1
|
|
89
|
+
* @param {number|string|module:echarts/data/Graph.Node} n2
|
|
90
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
91
|
+
* @returns {string} key
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
var getKeyOfEdges = function (n1, n2, seriesModel) {
|
|
96
|
+
var source = [n1.id, n1.dataIndex].join('.');
|
|
97
|
+
var target = [n2.id, n2.dataIndex].join('.');
|
|
98
|
+
return [seriesModel.uid, source, target].join(KEY_DELIMITER);
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* get opposite key
|
|
102
|
+
* @param {string} key
|
|
103
|
+
* @returns {string}
|
|
104
|
+
*/
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
var getOppositeKey = function (key) {
|
|
108
|
+
var keys = key.split(KEY_DELIMITER);
|
|
109
|
+
return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* get edgeMap with key
|
|
113
|
+
* @param edge
|
|
114
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
var getEdgeFromMap = function (edge, seriesModel) {
|
|
119
|
+
var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);
|
|
120
|
+
return seriesModel.__edgeMap[key];
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* calculate all cases total length
|
|
124
|
+
* @param edge
|
|
125
|
+
* @param seriesModel
|
|
126
|
+
* @returns {number}
|
|
127
|
+
*/
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
var getTotalLengthBetweenNodes = function (edge, seriesModel) {
|
|
131
|
+
var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);
|
|
132
|
+
var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);
|
|
133
|
+
return len + lenV;
|
|
134
|
+
};
|
|
135
|
+
/**
|
|
136
|
+
*
|
|
137
|
+
* @param key
|
|
138
|
+
*/
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
var getEdgeMapLengthWithKey = function (key, seriesModel) {
|
|
142
|
+
var edgeMap = seriesModel.__edgeMap;
|
|
143
|
+
return edgeMap[key] ? edgeMap[key].length : 0;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Count the number of edges between the same two points, used to obtain the curvature table and the parity of the edge
|
|
147
|
+
* @see /graph/GraphSeries.js@getInitialData
|
|
148
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
function initCurvenessList(seriesModel) {
|
|
153
|
+
if (!getAutoCurvenessParams(seriesModel)) {
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
seriesModel.__curvenessList = [];
|
|
158
|
+
seriesModel.__edgeMap = {}; // calc the array of curveness List
|
|
159
|
+
|
|
160
|
+
createCurveness(seriesModel);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* set edgeMap with key
|
|
164
|
+
* @param {number|string|module:echarts/data/Graph.Node} n1
|
|
165
|
+
* @param {number|string|module:echarts/data/Graph.Node} n2
|
|
166
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
167
|
+
* @param {number} index
|
|
168
|
+
*/
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
function createEdgeMapForCurveness(n1, n2, seriesModel, index) {
|
|
172
|
+
if (!getAutoCurvenessParams(seriesModel)) {
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
var key = getKeyOfEdges(n1, n2, seriesModel);
|
|
177
|
+
var edgeMap = seriesModel.__edgeMap;
|
|
178
|
+
var oppositeEdges = edgeMap[getOppositeKey(key)]; // set direction
|
|
179
|
+
|
|
180
|
+
if (edgeMap[key] && !oppositeEdges) {
|
|
181
|
+
edgeMap[key].isForward = true;
|
|
182
|
+
} else if (oppositeEdges && edgeMap[key]) {
|
|
183
|
+
oppositeEdges.isForward = true;
|
|
184
|
+
edgeMap[key].isForward = false;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
edgeMap[key] = edgeMap[key] || [];
|
|
188
|
+
edgeMap[key].push(index);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* get curvature for edge
|
|
192
|
+
* @param edge
|
|
193
|
+
* @param {module:echarts/model/SeriesModel} seriesModel
|
|
194
|
+
* @param index
|
|
195
|
+
*/
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
function getCurvenessForEdge(edge, seriesModel, index, needReverse) {
|
|
199
|
+
var autoCurvenessParams = getAutoCurvenessParams(seriesModel);
|
|
200
|
+
var isArrayParam = zrUtil.isArray(autoCurvenessParams);
|
|
201
|
+
|
|
202
|
+
if (!autoCurvenessParams) {
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
var edgeArray = getEdgeFromMap(edge, seriesModel);
|
|
207
|
+
|
|
208
|
+
if (!edgeArray) {
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
var edgeIndex = -1;
|
|
213
|
+
|
|
214
|
+
for (var i = 0; i < edgeArray.length; i++) {
|
|
215
|
+
if (edgeArray[i] === index) {
|
|
216
|
+
edgeIndex = i;
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
} // if totalLen is Longer createCurveness
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);
|
|
223
|
+
createCurveness(seriesModel, totalLen);
|
|
224
|
+
edge.lineStyle = edge.lineStyle || {}; // if is opposite edge, must set curvenss to opposite number
|
|
225
|
+
|
|
226
|
+
var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);
|
|
227
|
+
var curvenessList = seriesModel.__curvenessList; // if pass array no need parity
|
|
228
|
+
|
|
229
|
+
var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;
|
|
230
|
+
|
|
231
|
+
if (!edgeArray.isForward) {
|
|
232
|
+
// the opposite edge show outside
|
|
233
|
+
var oppositeKey = getOppositeKey(curKey);
|
|
234
|
+
var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);
|
|
235
|
+
var resValue = curvenessList[edgeIndex + len + parityCorrection]; // isNeedReverse, simple, force type need reverse the curveness in the junction of the forword and the opposite
|
|
236
|
+
|
|
237
|
+
if (needReverse) {
|
|
238
|
+
// set as array may make the parity handle with the len of opposite
|
|
239
|
+
if (isArrayParam) {
|
|
240
|
+
if (autoCurvenessParams && autoCurvenessParams[0] === 0) {
|
|
241
|
+
return (len + parityCorrection) % 2 ? resValue : -resValue;
|
|
242
|
+
} else {
|
|
243
|
+
return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;
|
|
244
|
+
}
|
|
245
|
+
} else {
|
|
246
|
+
return (len + parityCorrection) % 2 ? resValue : -resValue;
|
|
247
|
+
}
|
|
248
|
+
} else {
|
|
249
|
+
return curvenessList[edgeIndex + len + parityCorrection];
|
|
250
|
+
}
|
|
251
|
+
} else {
|
|
252
|
+
return curvenessList[parityCorrection + edgeIndex];
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
exports.initCurvenessList = initCurvenessList;
|
|
257
|
+
exports.createEdgeMapForCurveness = createEdgeMapForCurveness;
|
|
258
|
+
exports.getCurvenessForEdge = getCurvenessForEdge;
|
|
@@ -26,6 +26,10 @@ var _dimensionHelper = require("../../data/helper/dimensionHelper");
|
|
|
26
26
|
|
|
27
27
|
var getDimensionTypeByAxis = _dimensionHelper.getDimensionTypeByAxis;
|
|
28
28
|
|
|
29
|
+
var _sourceHelper = require("../../data/helper/sourceHelper");
|
|
30
|
+
|
|
31
|
+
var makeSeriesEncodeForAxisCoordSys = _sourceHelper.makeSeriesEncodeForAxisCoordSys;
|
|
32
|
+
|
|
29
33
|
/*
|
|
30
34
|
* Licensed to the Apache Software Foundation (ASF) under one
|
|
31
35
|
* or more contributor license agreements. See the NOTICE file
|
|
@@ -64,7 +68,7 @@ var seriesModelMixin = {
|
|
|
64
68
|
var xAxisType = xAxisModel.get('type');
|
|
65
69
|
var yAxisType = yAxisModel.get('type');
|
|
66
70
|
var addOrdinal; // FIXME
|
|
67
|
-
//
|
|
71
|
+
// Consider time axis.
|
|
68
72
|
|
|
69
73
|
if (xAxisType === 'category') {
|
|
70
74
|
option.layout = 'horizontal';
|
|
@@ -109,22 +113,24 @@ var seriesModelMixin = {
|
|
|
109
113
|
}
|
|
110
114
|
|
|
111
115
|
var defaultValueDimensions = this.defaultValueDimensions;
|
|
116
|
+
var coordDimensions = [{
|
|
117
|
+
name: baseAxisDim,
|
|
118
|
+
type: getDimensionTypeByAxis(baseAxisType),
|
|
119
|
+
ordinalMeta: ordinalMeta,
|
|
120
|
+
otherDims: {
|
|
121
|
+
tooltip: false,
|
|
122
|
+
itemName: 0
|
|
123
|
+
},
|
|
124
|
+
dimsDef: ['base']
|
|
125
|
+
}, {
|
|
126
|
+
name: otherAxisDim,
|
|
127
|
+
type: getDimensionTypeByAxis(otherAxisType),
|
|
128
|
+
dimsDef: defaultValueDimensions.slice()
|
|
129
|
+
}];
|
|
112
130
|
return createListSimply(this, {
|
|
113
|
-
coordDimensions:
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
ordinalMeta: ordinalMeta,
|
|
117
|
-
otherDims: {
|
|
118
|
-
tooltip: false,
|
|
119
|
-
itemName: 0
|
|
120
|
-
},
|
|
121
|
-
dimsDef: ['base']
|
|
122
|
-
}, {
|
|
123
|
-
name: otherAxisDim,
|
|
124
|
-
type: getDimensionTypeByAxis(otherAxisType),
|
|
125
|
-
dimsDef: defaultValueDimensions.slice()
|
|
126
|
-
}],
|
|
127
|
-
dimensionsCount: defaultValueDimensions.length + 1
|
|
131
|
+
coordDimensions: coordDimensions,
|
|
132
|
+
dimensionsCount: defaultValueDimensions.length + 1,
|
|
133
|
+
encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)
|
|
128
134
|
});
|
|
129
135
|
},
|
|
130
136
|
|