UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

165 lines (149 loc) 5.87 kB
import { TagPointsUpdate, ClipDirectionAnimate, AnimateExecutor, ScaleIn, ScaleOut, FadeIn, FadeOut, MoveIn, MoveOut, RotateIn, RotateOut, Update, State, GrowHeightIn, GrowHeightOut, GrowWidthIn, GrowWidthOut, GrowCenterIn, GrowCenterOut, GrowRadiusIn, GrowRadiusOut, GrowAngleIn, GrowAngleOut, GrowPointsIn, GrowPointsOut, GrowPointsXIn, GrowPointsXOut, GrowPointsYIn, GrowPointsYOut, ClipIn, ClipOut, FromTo } from "@visactor/vrender-animate"; import { linePresetAnimation } from "../series/line/animation"; import { Factory } from "../core/factory"; export const DEFAULT_ANIMATION_CONFIG = { appear: { duration: 1e3, easing: "cubicOut" }, update: { type: "update", duration: 300, easing: "linear" }, enter: { duration: 300, easing: "linear" }, exit: { duration: 300, easing: "linear" }, disappear: { duration: 500, easing: "cubicIn" }, state: { duration: 300, easing: "linear" } }; export const ScaleInOutAnimation = { appear: { type: "scaleIn" }, enter: { type: "scaleIn" }, exit: { type: "scaleOut" }, disappear: { type: "scaleOut" } }; export const FadeInOutAnimation = { appear: { type: "fadeIn" }, enter: { type: "fadeIn" }, exit: { type: "fadeOut" }, disappear: { type: "fadeOut" } }; export const registerScaleInOutAnimation = () => { Factory.registerAnimation("scaleInOut", (() => ScaleInOutAnimation)); }; export const registerFadeInOutAnimation = () => { Factory.registerAnimation("fadeInOut", (() => FadeInOutAnimation)); }; export const registerCartesianGroupClipAnimation = () => { Factory.registerAnimation("cartesianGroupClip", (params => ({ appear: { custom: ClipDirectionAnimate, customParameters: (datum, g) => ({ animationType: "in", group: g, direction: params.direction(), width: params.width(), height: params.height(), orient: params.orient() }) }, disappear: { custom: ClipDirectionAnimate, customParameters: (datum, g) => ({ animationType: "out", group: g, direction: params.direction(), width: params.width(), height: params.height(), orient: params.orient() }) } }))); }; const lineOrAreaAnimation = (params, preset) => ({ appear: linePresetAnimation(params, preset), enter: { type: "fadeIn" }, exit: { type: "fadeOut" }, update: [ { type: "update", options: { excludeChannels: [ "points", "defined", "segments" ] } }, { channel: [ "points", "segments" ], custom: TagPointsUpdate, duration: DEFAULT_ANIMATION_CONFIG.update.duration, easing: DEFAULT_ANIMATION_CONFIG.update.easing, customParameters: { clipRangeByDimension: "horizontal" === params.direction ? "y" : "x" } } ], disappear: { type: "clipOut" } }); export const registerLineAnimation = () => { Factory.registerAnimation("line", lineOrAreaAnimation); }; export const registerAreaAnimation = () => { Factory.registerAnimation("area", lineOrAreaAnimation); }; export const registerBuiltInAnimation = () => { AnimateExecutor.registerBuiltInAnimate("scaleIn", ScaleIn), AnimateExecutor.registerBuiltInAnimate("scaleOut", ScaleOut), AnimateExecutor.registerBuiltInAnimate("fadeIn", FadeIn), AnimateExecutor.registerBuiltInAnimate("fadeOut", FadeOut), AnimateExecutor.registerBuiltInAnimate("moveIn", MoveIn), AnimateExecutor.registerBuiltInAnimate("moveOut", MoveOut), AnimateExecutor.registerBuiltInAnimate("rotateIn", RotateIn), AnimateExecutor.registerBuiltInAnimate("rotateOut", RotateOut), AnimateExecutor.registerBuiltInAnimate("update", Update), AnimateExecutor.registerBuiltInAnimate("state", State), AnimateExecutor.registerBuiltInAnimate("fromTo", FromTo); }; export const registerRectAnimation = () => { AnimateExecutor.registerBuiltInAnimate("growHeightIn", GrowHeightIn), AnimateExecutor.registerBuiltInAnimate("growHeightOut", GrowHeightOut), AnimateExecutor.registerBuiltInAnimate("growWidthIn", GrowWidthIn), AnimateExecutor.registerBuiltInAnimate("growWidthOut", GrowWidthOut), AnimateExecutor.registerBuiltInAnimate("growCenterIn", GrowCenterIn), AnimateExecutor.registerBuiltInAnimate("growCenterOut", GrowCenterOut); }; export const registerArcAnimation = () => { AnimateExecutor.registerBuiltInAnimate("growRadiusIn", GrowRadiusIn), AnimateExecutor.registerBuiltInAnimate("growRadiusOut", GrowRadiusOut), AnimateExecutor.registerBuiltInAnimate("growAngleIn", GrowAngleIn), AnimateExecutor.registerBuiltInAnimate("growAngleOut", GrowAngleOut); }; export const registerLineOrAreaAnimation = () => { AnimateExecutor.registerBuiltInAnimate("growPointsIn", GrowPointsIn), AnimateExecutor.registerBuiltInAnimate("growPointsOut", GrowPointsOut), AnimateExecutor.registerBuiltInAnimate("growPointsXIn", GrowPointsXIn), AnimateExecutor.registerBuiltInAnimate("growPointsXOut", GrowPointsXOut), AnimateExecutor.registerBuiltInAnimate("growPointsYIn", GrowPointsYIn), AnimateExecutor.registerBuiltInAnimate("growPointsYOut", GrowPointsYOut), AnimateExecutor.registerBuiltInAnimate("clipIn", ClipIn), AnimateExecutor.registerBuiltInAnimate("clipOut", ClipOut); }; export const registerPolygonAnimation = () => { AnimateExecutor.registerBuiltInAnimate("growPointsOut", GrowPointsOut); }; //# sourceMappingURL=config.js.map