This is an automated email from the ASF dual-hosted git repository. shenyi pushed a commit to branch label-enhancement in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
commit 4062b9f55960447eb66053dfceaf3e7c7307bf4d Author: pissang <[email protected]> AuthorDate: Fri May 29 09:45:34 2020 +0800 feat: support state transition in geo component --- src/coord/geo/GeoModel.ts | 5 ++++- src/echarts.ts | 13 +++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/coord/geo/GeoModel.ts b/src/coord/geo/GeoModel.ts index 6c8dee3..5cd4827 100644 --- a/src/coord/geo/GeoModel.ts +++ b/src/coord/geo/GeoModel.ts @@ -32,7 +32,8 @@ import { ZRColor, LabelOption, DisplayState, - RoamOptionMixin + RoamOptionMixin, + AnimationOption } from '../../util/types'; import { NameMap } from './geoTypes'; import GlobalModel from '../../model/Global'; @@ -98,6 +99,8 @@ export interface GeoOption extends }; regions: RegoinOption[]; + + stateAnimation?: AnimationOption } const LABEL_FORMATTER_NORMAL = ['label', 'formatter'] as const; diff --git a/src/echarts.ts b/src/echarts.ts index 3a68ce7..485e058 100644 --- a/src/echarts.ts +++ b/src/echarts.ts @@ -1670,9 +1670,14 @@ class ECharts extends Eventful { const componentModel = componentView.__model; componentView.render(componentModel, ecModel, api, payload); + clearStates(componentModel, componentView); + updateZ(componentModel, componentView); updateHoverEmphasisHandler(componentView); + + updateStates(componentModel, componentView); }); + }; /** @@ -1827,7 +1832,7 @@ class ECharts extends Eventful { }; // Clear states without animation. // TODO States on component. - function clearStates(seriesModel: SeriesModel, view: ChartView): void { + function clearStates(model: ComponentModel, view: ComponentView | ChartView): void { view.group.traverse(function (el: Displayable) { // TODO If el is incremental. if (el.hasState()) { @@ -1848,9 +1853,9 @@ class ECharts extends Eventful { }); } - function updateStates(seriesModel: SeriesModel, view: ChartView): void { - const stateAnimationModel = seriesModel.getModel('stateAnimation'); - const enableAnimation = seriesModel.isAnimationEnabled(); + function updateStates(model: ComponentModel, view: ComponentView | ChartView): void { + const stateAnimationModel = (model as SeriesModel).getModel('stateAnimation'); + const enableAnimation = model.isAnimationEnabled(); view.group.traverse(function (el: Displayable) { // Only updated on changed element. In case element is incremental and don't wan't to rerender. if (el.__dirty && el.states && el.states.emphasis) { --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
