@visactor/vchart
Version:
charts lib based @visactor/VGrammar
39 lines (35 loc) • 1.48 kB
JavaScript
import { StateManager } from "../compile/signal/state-manager";
import { PREFIX } from "../constant/base";
import { createID } from "../util/id";
import { AnimationStateEnum } from "./interface";
export class AnimateManager extends StateManager {
constructor() {
super(...arguments), this.id = createID(), this.stateKeyToSignalName = key => `${PREFIX}_animate_${this.id}_${key}`;
}
getAnimationStateSignalName() {
return this.stateKeyToSignalName("animationState");
}
updateAnimateState(state, noRender) {
state === AnimationStateEnum.update ? this.updateState({
animationState: {
callback: (datum, element) => element.diffState
}
}, noRender) : state === AnimationStateEnum.appear ? this.updateState({
animationState: {
callback: (datum, element) => "exit" === element.diffState ? AnimationStateEnum.none : AnimationStateEnum.appear
}
}, noRender) : this.updateState({
animationState: {
callback: (datum, element) => state
}
}, noRender);
}
_getDefaultStateMap() {
return {
animationState: {
callback: (datum, element) => "exit" === element.diffState ? AnimationStateEnum.exit : "update" === element.diffState ? AnimationStateEnum.update : AnimationStateEnum.appear
}
};
}
}
//# sourceMappingURL=animate-manager.js.map