You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by sh...@apache.org on 2020/06/01 05:18:40 UTC

[incubator-echarts] 01/02: feat: support state transition in geo component

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 <bm...@gmail.com>
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: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org