You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by su...@apache.org on 2018/09/12 15:54:05 UTC
[incubator-echarts] branch release updated (229e15a -> 0186bd8)
This is an automated email from the ASF dual-hosted git repository.
sushuang pushed a change to branch release
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git.
from 229e15a Fix default text style bug (brought by previous optimize).
new 5fc7925 Fix legend highlight bug brought by previous update.
new fa47705 tweak
new 65ead2b Fix map problem brought from geo upgrade.
new 0186bd8 fix event query rule.
The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
src/chart/treemap/Breadcrumb.js | 1 +
src/component/axis/AxisBuilder.js | 3 +-
src/component/graphic.js | 2 +-
src/component/helper/MapDraw.js | 1 +
src/component/legend/LegendView.js | 25 +++++++------
src/component/title.js | 2 +-
src/coord/geo/Geo.js | 13 ++++---
src/coord/geo/geoCreator.js | 26 +++++++-------
src/echarts.js | 38 ++++++++++++++++----
src/model/mixin/dataFormat.js | 11 +++---
test/custom-feature.html | 4 +--
test/ec-event.html | 11 ++++--
test/hoverStyle.html | 37 ++++++++++++-------
test/legend.html | 73 +++++++++++++++++++++++++++++++-------
14 files changed, 174 insertions(+), 73 deletions(-)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org
[incubator-echarts] 02/04: tweak
Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sushuang pushed a commit to branch release
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
commit fa477050efd96e80f3c11420e3efddec6350bf3e
Author: sushuang <su...@gmail.com>
AuthorDate: Wed Sep 12 16:07:20 2018 +0800
tweak
---
test/custom-feature.html | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/custom-feature.html b/test/custom-feature.html
index ab75569..7c568b1 100644
--- a/test/custom-feature.html
+++ b/test/custom-feature.html
@@ -39,8 +39,8 @@ under the License.
</style>
- <!-- <div id="main0"></div>
- <div id="main2"></div> -->
+ <div id="main0"></div>
+ <div id="main2"></div>
<div id="main3"></div>
<!-- <div id="main1"></div> -->
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org
[incubator-echarts] 04/04: fix event query rule.
Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sushuang pushed a commit to branch release
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
commit 0186bd8921c2c2e1f375948570f7be9c8d7609b0
Author: sushuang <su...@gmail.com>
AuthorDate: Wed Sep 12 23:53:01 2018 +0800
fix event query rule.
---
src/chart/treemap/Breadcrumb.js | 1 +
src/component/axis/AxisBuilder.js | 3 ++-
src/component/graphic.js | 2 +-
src/component/helper/MapDraw.js | 1 +
src/component/title.js | 2 +-
src/echarts.js | 38 +++++++++++++++++++++++++++++++-------
src/model/mixin/dataFormat.js | 11 +++++++----
test/ec-event.html | 11 +++++++++--
test/hoverStyle.html | 37 +++++++++++++++++++++++++------------
9 files changed, 78 insertions(+), 28 deletions(-)
diff --git a/src/chart/treemap/Breadcrumb.js b/src/chart/treemap/Breadcrumb.js
index a7b4d6b..41e355a 100644
--- a/src/chart/treemap/Breadcrumb.js
+++ b/src/chart/treemap/Breadcrumb.js
@@ -172,6 +172,7 @@ function packEventData(el, seriesModel, itemNode) {
el.eventData = {
componentType: 'series',
componentSubType: 'treemap',
+ componentIndex: seriesModel.componentIndex,
seriesIndex: seriesModel.componentIndex,
seriesName: seriesModel.name,
seriesType: 'treemap',
diff --git a/src/component/axis/AxisBuilder.js b/src/component/axis/AxisBuilder.js
index 589996e..1f0ff7e 100644
--- a/src/component/axis/AxisBuilder.js
+++ b/src/component/axis/AxisBuilder.js
@@ -31,7 +31,8 @@ var PI = Math.PI;
function makeAxisEventDataBase(axisModel) {
var eventData = {
- componentType: axisModel.mainType
+ componentType: axisModel.mainType,
+ componentIndex: axisModel.componentIndex
};
eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;
return eventData;
diff --git a/src/component/graphic.js b/src/component/graphic.js
index 8b6d5f8..631dc6d 100644
--- a/src/component/graphic.js
+++ b/src/component/graphic.js
@@ -538,7 +538,7 @@ function setEventData(el, graphicModel, elOption) {
if (!el.silent && !el.ignore && !eventData) {
eventData = el.eventData = {
componentType: 'graphic',
- graphicIndex: graphicModel.componentIndex,
+ componentIndex: graphicModel.componentIndex,
name: el.name
};
}
diff --git a/src/component/helper/MapDraw.js b/src/component/helper/MapDraw.js
index 7f74047..b7b8ee7 100644
--- a/src/component/helper/MapDraw.js
+++ b/src/component/helper/MapDraw.js
@@ -322,6 +322,7 @@ MapDraw.prototype = {
// Package custom mouse event for geo component
compoundPath.eventData = {
componentType: 'geo',
+ componentIndex: mapOrGeoModel.componentIndex,
geoIndex: mapOrGeoModel.componentIndex,
name: region.name,
region: (regionModel && regionModel.option) || {}
diff --git a/src/component/title.js b/src/component/title.js
index 7580df1..a680b1f 100644
--- a/src/component/title.js
+++ b/src/component/title.js
@@ -151,7 +151,7 @@ echarts.extendComponentView({
textEl.eventData = subTextEl.eventData = triggerEvent
? {
componentType: 'title',
- titleIndex: titleModel.componentIndex
+ componentIndex: titleModel.componentIndex
}
: null;
diff --git a/src/echarts.js b/src/echarts.js
index c4ea08d..9844570 100644
--- a/src/echarts.js
+++ b/src/echarts.js
@@ -1525,12 +1525,29 @@ echartsProto._initEvents = function () {
params = zrUtil.extend({}, el.eventData);
}
+ // Contract: if params prepared in mouse event,
+ // these properties must be specified:
+ // {
+ // componentType: string (component main type)
+ // componentIndex: number
+ // }
+ // Otherwise event query can not work.
+
if (params) {
- // When trigger by markLine/markPoint/markArea, the
- // componentType is 'markLine'/'markPoint'/'markArea'.
- var componentType = params.seriesIndex != null
- ? 'series' : params.componentType;
- var componentIndex = params[componentType + 'Index'];
+ var componentType = params.componentType;
+ var componentIndex = params.componentIndex;
+ // Special handling for historic reason: when trigger by
+ // markLine/markPoint/markArea, the componentType is
+ // 'markLine'/'markPoint'/'markArea', but we should better
+ // enable them to be queried by seriesIndex, since their
+ // option is set in each series.
+ if (componentType === 'markLine'
+ || componentType === 'markPoint'
+ || componentType === 'markArea'
+ ) {
+ componentType = 'series';
+ componentIndex = params.seriesIndex;
+ }
var model = componentType && componentIndex != null
&& ecModel.getComponent(componentType, componentIndex);
var view = model && this[
@@ -1541,7 +1558,9 @@ echartsProto._initEvents = function () {
// `event.componentType` and `event[componentTpype + 'Index']` must not
// be missed, otherwise there is no way to distinguish source component.
// See `dataFormat.getDataParams`.
- zrUtil.assert(isGlobalOut || (model && view));
+ if (!isGlobalOut && !(model && view)) {
+ console.warn('model or view can not be found by params');
+ }
}
params.event = e;
@@ -1773,6 +1792,11 @@ EventProcessor.prototype = {
filter: function (eventType, query, args) {
// They should be assigned before each trigger call.
var eventInfo = this.eventInfo;
+
+ if (!eventInfo) {
+ return true;
+ }
+
var targetEl = eventInfo.targetEl;
var packedEvent = eventInfo.packedEvent;
var model = eventInfo.model;
@@ -1804,7 +1828,7 @@ EventProcessor.prototype = {
},
afterTrigger: function () {
- // clear immediately after used.
+ // Make sure the eventInfo wont be used in next trigger.
this.eventInfo = null;
}
};
diff --git a/src/model/mixin/dataFormat.js b/src/model/mixin/dataFormat.js
index 1595500..7d48b52 100644
--- a/src/model/mixin/dataFormat.js
+++ b/src/model/mixin/dataFormat.js
@@ -41,14 +41,17 @@ export default {
var tooltipModel = this.ecModel.getComponent('tooltip');
var renderModeOption = tooltipModel && tooltipModel.get('renderMode');
var renderMode = getTooltipRenderMode(renderModeOption);
+ var mainType = this.mainType;
+ var isSeries = mainType === 'series';
return {
- componentType: this.mainType,
+ componentType: mainType,
componentSubType: this.subType,
- seriesType: this.mainType === 'series' ? this.subType : null,
+ componentIndex: this.componentIndex,
+ seriesType: isSeries ? this.subType : null,
seriesIndex: this.seriesIndex,
- seriesId: this.id,
- seriesName: this.name,
+ seriesId: isSeries ? this.id : null,
+ seriesName: isSeries ? this.name : null,
name: name,
dataIndex: rawDataIndex,
data: itemOpt,
diff --git a/test/ec-event.html b/test/ec-event.html
index fac3c65..46a1d7a 100644
--- a/test/ec-event.html
+++ b/test/ec-event.html
@@ -76,6 +76,12 @@ under the License.
}, {
type: 'line',
data: [234, 213, 255],
+ markPoint: {
+ data: [{
+ name: 'max value (default)',
+ type: 'max'
+ }]
+ }
}]
};
@@ -83,8 +89,9 @@ under the License.
title: [
'[click scatter point, console.log]: "clk", "clk series", "clk series.scatter"',
'[click xAxis, console.log]: "clk", "clk xAxis", "clk xAxis.category"',
- '[click yAxis.category, console.log]: "clk"',
- '[click line point, console.log]: "clk", "clk series"'
+ '[click yAxis.category, console.log]: "clk", "clk yAxis.category"',
+ '[click line point, console.log]: "clk", "clk series"',
+ '[click the markPoint]: "clk", "clk series"'
],
option: option
});
diff --git a/test/hoverStyle.html b/test/hoverStyle.html
index 27db889..762e5b7 100644
--- a/test/hoverStyle.html
+++ b/test/hoverStyle.html
@@ -40,13 +40,18 @@ under the License.
position: fixed;
left: 0;
top: 0;
- background: #fff;
+ background: #333;
+ color: #fff;
padding: 2px 5px;
z-index: 9999;
box-shadow: 0 0 2px #333;
}
</style>
+ <br>
+ <br>
+ <br>
+
<div id="info"></div>
<div id="main0"></div>
<div id="main1"></div>
@@ -56,32 +61,40 @@ under the License.
<script>
- var useHoverLayer = location.search.indexOf('?useHoverLayer&') >= 0;
+ var USE_HOVER_LAYER_KEY = '__EC_TEST_USE_HOVER_LAYER_KEY___';
+
+ var useHoverLayer = getUseHoverLayer();
var hoverLayerThreshold = useHoverLayer ? 0 : null;
var infoEl = document.getElementById('info');
genInfo();
+ function setUseHoverLayer(useHoverLayer) {
+ window.localStorage.setItem(USE_HOVER_LAYER_KEY, useHoverLayer ? 'true' : '');
+ }
+ function getUseHoverLayer() {
+ return !!window.localStorage.getItem(USE_HOVER_LAYER_KEY);
+ }
+
function genInfo(zrRefreshTimestamp) {
infoEl.innerHTML = [
+ useHoverLayer ? 'Using HoverLayer' : 'NOT using HoverLayer',
'hoverLayerThreshold: ' + hoverLayerThreshold,
- 'zr refresh base layer at: <span style="color:red">' + (zrRefreshTimestamp || null) + '</span>'
+ 'zr refresh base layer at: <span style="color:yellow">' + (zrRefreshTimestamp || null) + '</span>'
].join('<br>');
}
function genHoverLayerBtns() {
return [{
- text: 'useHoverLayer',
+ text: 'NOT use hoverLayer',
onclick: function () {
- var url = location.href;
- if (url.indexOf('?') < 0) {
- url += '?';
- }
- location.href = url.replace('?', '?useHoverLayer&');
+ setUseHoverLayer(false);
+ location.reload();
}
}, {
- text: 'notUseHoverLayer',
+ text: 'Use hoverLayer',
onclick: function () {
- location.href = location.href.replace(/\?useHoverLayer&/, '\?');
+ setUseHoverLayer(true);
+ location.reload();
}
}]
}
@@ -141,7 +154,7 @@ under the License.
title: [
'normal no label, hover show label inside',
'TEST: hover twice, should be normal',
- 'zrBaseLayer should not be refreshed'
+ 'zrBaseLayer should not be refreshed if NOT using hoverLayer'
],
option: option,
height: 200
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org
[incubator-echarts] 03/04: Fix map problem brought from geo upgrade.
Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sushuang pushed a commit to branch release
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
commit 65ead2bf5dec79fe96cc826a3a96f4d85848e906
Author: sushuang <su...@gmail.com>
AuthorDate: Wed Sep 12 16:31:44 2018 +0800
Fix map problem brought from geo upgrade.
---
src/coord/geo/Geo.js | 13 ++++++-------
src/coord/geo/geoCreator.js | 26 +++++++++++++-------------
2 files changed, 19 insertions(+), 20 deletions(-)
diff --git a/src/coord/geo/Geo.js b/src/coord/geo/Geo.js
index 8c6491c..bc8923a 100644
--- a/src/coord/geo/Geo.js
+++ b/src/coord/geo/Geo.js
@@ -33,8 +33,9 @@ import geoSourceManager from './geoSourceManager';
* Specify the positioned areas by left, top, width, height
* @param {Object.<string, string>} [nameMap]
* Specify name alias
+ * @param {boolean} [invertLongitute=true]
*/
-function Geo(name, map, nameMap) {
+function Geo(name, map, nameMap, invertLongitute) {
View.call(this, name);
@@ -48,6 +49,7 @@ function Geo(name, map, nameMap) {
this._nameCoordMap = source.nameCoordMap;
this._regionsMap = source.nameCoordMap;
+ this._invertLongitute = invertLongitute == null ? true : invertLongitute;
/**
* @readOnly
@@ -92,14 +94,11 @@ Geo.prototype = {
*/
transformTo: function (x, y, width, height) {
var rect = this.getBoundingRect();
-
- // FIXME
- // Should not name it as invertLng.
- var invertLng = this.invertLng;
+ var invertLongitute = this._invertLongitute;
rect = rect.clone();
- if (invertLng) {
+ if (invertLongitute) {
// Longitute is inverted
rect.y = -rect.y - rect.height;
}
@@ -112,7 +111,7 @@ Geo.prototype = {
rawTransformable.decomposeTransform();
- if (invertLng) {
+ if (invertLongitute) {
var scale = rawTransformable.scale;
scale[1] = -scale[1];
}
diff --git a/src/coord/geo/geoCreator.js b/src/coord/geo/geoCreator.js
index e740b65..73b3346 100644
--- a/src/coord/geo/geoCreator.js
+++ b/src/coord/geo/geoCreator.js
@@ -134,29 +134,28 @@ var geoCreator = {
// FIXME Create each time may be slow
ecModel.eachComponent('geo', function (geoModel, idx) {
var name = geoModel.get('map');
- var geo = new Geo(name + idx, name, geoModel.get('nameMap'));
- geo.zoomLimit = geoModel.get('scaleLimit');
- geoList.push(geo);
-
- setGeoCoords(geo, geoModel);
-
- geoModel.coordinateSystem = geo;
- geo.model = geoModel;
-
- // FIXME ???
var aspectScale = geoModel.get('aspectScale');
- var invertLng = true;
+ var invertLongitute = true;
var mapRecords = mapDataStorage.retrieveMap(name);
if (mapRecords && mapRecords[0] && mapRecords[0].type === 'svg') {
aspectScale == null && (aspectScale = 1);
- invertLng = false;
+ invertLongitute = false;
}
else {
aspectScale == null && (aspectScale = 0.75);
}
+
+ var geo = new Geo(name + idx, name, geoModel.get('nameMap'), invertLongitute);
+
geo.aspectScale = aspectScale;
- geo.invertLng = invertLng;
+ geo.zoomLimit = geoModel.get('scaleLimit');
+ geoList.push(geo);
+
+ setGeoCoords(geo, geoModel);
+
+ geoModel.coordinateSystem = geo;
+ geo.model = geoModel;
// Inject resize method
geo.resize = resizeGeo;
@@ -196,6 +195,7 @@ var geoCreator = {
// Inject resize method
geo.resize = resizeGeo;
+ geo.aspectScale = mapSeries[0].get('aspectScale');
geo.resize(mapSeries[0], api);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org
[incubator-echarts] 01/04: Fix legend highlight bug brought by
previous update.
Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sushuang pushed a commit to branch release
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
commit 5fc79255907a3819962de391367c3450f0315e36
Author: sushuang <su...@gmail.com>
AuthorDate: Wed Sep 12 15:30:00 2018 +0800
Fix legend highlight bug brought by previous update.
---
src/component/legend/LegendView.js | 25 +++++++------
test/legend.html | 73 +++++++++++++++++++++++++++++++-------
2 files changed, 75 insertions(+), 23 deletions(-)
diff --git a/src/component/legend/LegendView.js b/src/component/legend/LegendView.js
index 169c16b..acc6ce6 100644
--- a/src/component/legend/LegendView.js
+++ b/src/component/legend/LegendView.js
@@ -166,8 +166,8 @@ export default echarts.extendComponentView({
);
itemGroup.on('click', curry(dispatchSelectAction, name, api))
- .on('mouseover', curry(dispatchHighlightAction, seriesModel, null, api, excludeSeriesId))
- .on('mouseout', curry(dispatchDownplayAction, seriesModel, null, api, excludeSeriesId));
+ .on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId))
+ .on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));
legendDrawnMap.set(name, true);
}
@@ -199,9 +199,10 @@ export default echarts.extendComponentView({
// FIXME: consider different series has items with the same name.
itemGroup.on('click', curry(dispatchSelectAction, name, api))
- // FIXME Should not specify the series name
- .on('mouseover', curry(dispatchHighlightAction, seriesModel, name, api, excludeSeriesId))
- .on('mouseout', curry(dispatchDownplayAction, seriesModel, name, api, excludeSeriesId));
+ // Should not specify the series name, consider legend controls
+ // more than one pie series.
+ .on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId))
+ .on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));
legendDrawnMap.set(name, true);
}
@@ -211,7 +212,9 @@ export default echarts.extendComponentView({
if (__DEV__) {
if (!legendDrawnMap.get(name)) {
- console.warn(name + ' series not exists. Legend data should be same with series name or data name.');
+ console.warn(
+ name + ' series not exists. Legend data should be same with series name or data name.'
+ );
}
}
}, this);
@@ -254,7 +257,7 @@ export default echarts.extendComponentView({
// PENDING
if (!itemIcon && symbolType
// At least show one symbol, can't be all none
- && ((symbolType !== legendSymbolType) || symbolType == 'none')
+ && ((symbolType !== legendSymbolType) || symbolType === 'none')
) {
var size = itemHeight * 0.8;
if (symbolType === 'none') {
@@ -361,26 +364,26 @@ function dispatchSelectAction(name, api) {
});
}
-function dispatchHighlightAction(seriesModel, dataName, api, excludeSeriesId) {
+function dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {
// If element hover will move to a hoverLayer.
var el = api.getZr().storage.getDisplayList()[0];
if (!(el && el.useHoverLayer)) {
api.dispatchAction({
type: 'highlight',
- seriesName: seriesModel.name,
+ seriesName: seriesName,
name: dataName,
excludeSeriesId: excludeSeriesId
});
}
}
-function dispatchDownplayAction(seriesModel, dataName, api, excludeSeriesId) {
+function dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {
// If element hover will move to a hoverLayer.
var el = api.getZr().storage.getDisplayList()[0];
if (!(el && el.useHoverLayer)) {
api.dispatchAction({
type: 'downplay',
- seriesName: seriesModel.name,
+ seriesName: seriesName,
name: dataName,
excludeSeriesId: excludeSeriesId
});
diff --git a/test/legend.html b/test/legend.html
index 849ac31..24e6c60 100644
--- a/test/legend.html
+++ b/test/legend.html
@@ -69,8 +69,10 @@ under the License.
<div id="legendHoverLink"></div>
+ <div id="multi-pie"></div>
<script>
+
function makeSeries(seriesCount, categoryCount) {
var series = [];
var legendData = [];
@@ -812,17 +814,6 @@ under the License.
-
-
-
-
-
-
-
-
-
-
-
<script>
var chart;
@@ -875,7 +866,7 @@ under the License.
]
}
- chart = myChart = testHelper.create(echarts, legendHoverLink, {
+ chart = myChart = testHelper.create(echarts, 'legendHoverLink', {
title: 'legendHoverLink is disabled on pie',
option: option
});
@@ -883,5 +874,63 @@ under the License.
</script>
+
+
+
+
+
+
+
+
+
+ <script>
+
+ var chart;
+ var myChart;
+ var option;
+
+ require([
+ 'echarts'/*, 'map/js/china' */
+ ], function (echarts) {
+
+ var option = {
+ tooltip: {
+ },
+ legend: {
+ data: ['a', 'b', 'c']
+ },
+ series: [
+ {
+ name: 'AAA',
+ type: 'pie',
+ center: ['75%', '50%'],
+ radius: '30%',
+ data: [
+ {name: 'a', value: 12},
+ {name: 'b', value: 34},
+ {name: 'c', value: 56}
+ ]
+ },
+ {
+ name: 'BBB',
+ type: 'pie',
+ center: ['25%', '50%'],
+ radius: '30%',
+ data: [
+ {name: 'a', value: 12},
+ {name: 'b', value: 34},
+ {name: 'c', value: 56}
+ ]
+ }
+ ]
+ }
+
+ chart = myChart = testHelper.create(echarts, 'multi-pie', {
+ title: 'Hover legend, the segments of BOTH pie should be hightlighted',
+ option: option
+ });
+ });
+
+ </script>
</body>
</html>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org