UNPKG

@visactor/vrender-animate

Version:

This module provides a graph-based animation system for VRender.

105 lines (103 loc) 4.89 kB
export class AnimationTransitionRegistry { constructor() { this.transitions = new Map, this.registerDefaultTransitions(); } static getInstance() { return AnimationTransitionRegistry.instance || (AnimationTransitionRegistry.instance = new AnimationTransitionRegistry), AnimationTransitionRegistry.instance; } registerDefaultTransitions() { this.registerTransition("appear", "*", (() => ({ allowTransition: !0, stopOriginalTransition: !1 }))), this.registerTransition("appear", "appear", (() => ({ allowTransition: !1, stopOriginalTransition: !1 }))), this.registerTransition("appear", "disappear", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("appear", "exit", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("normal", "*", (() => ({ allowTransition: !0, stopOriginalTransition: !1 }))), this.registerTransition("normal", "normal", (() => ({ allowTransition: !1, stopOriginalTransition: !1 }))), this.registerTransition("normal", "disappear", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("normal", "exit", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("exit", "*", (() => ({ allowTransition: !1, stopOriginalTransition: !1 }))), this.registerTransition("exit", "disappear", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("exit", "enter", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("exit", "exit", (() => ({ allowTransition: !1, stopOriginalTransition: !1 }))), this.registerTransition("enter", "*", (() => ({ allowTransition: !0, stopOriginalTransition: !1 }))), this.registerTransition("enter", "enter", (() => ({ allowTransition: !1, stopOriginalTransition: !1 }))), this.registerTransition("enter", "disappear", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("enter", "exit", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("disappear", "*", (() => ({ allowTransition: !1, stopOriginalTransition: !1 }))), this.registerTransition("disappear", "appear", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("update", "*", (() => ({ allowTransition: !0, stopOriginalTransition: !1 }))), this.registerTransition("update", "disappear", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("update", "exit", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("state", "*", (() => ({ allowTransition: !0, stopOriginalTransition: !1 }))), this.registerTransition("state", "disappear", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))), this.registerTransition("state", "exit", (() => ({ allowTransition: !0, stopOriginalTransition: !0 }))); } isTransitionAllowed(fromState, toState, graphic) { var _a, _b, _c, _d; let func = null === (_a = this.transitions.get(fromState)) || void 0 === _a ? void 0 : _a.get(toState); return func ? func(graphic, fromState) : (func = null === (_b = this.transitions.get(fromState)) || void 0 === _b ? void 0 : _b.get("*"), func ? func(graphic, fromState) : (func = null === (_c = this.transitions.get("*")) || void 0 === _c ? void 0 : _c.get(toState), func ? func(graphic, fromState) : (func = null === (_d = this.transitions.get("*")) || void 0 === _d ? void 0 : _d.get("*"), func ? func(graphic, fromState) : { allowTransition: !0, stopOriginalTransition: !0 }))); } registerTransition(fromState, toState, transition) { let fromStateMap = this.transitions.get(fromState); fromStateMap || (fromStateMap = new Map, this.transitions.set(fromState, fromStateMap)), fromStateMap.set(toState, transition); } } const transitionRegistry = AnimationTransitionRegistry.getInstance(); export { transitionRegistry }; //# sourceMappingURL=animation-states-registry.js.map