UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

59 lines (50 loc) 1.99 kB
import { RotateBySphereAnimate } from "@visactor/vrender-core"; import { DEFAULT_ANIMATION_CONFIG } from "../../animation/config"; import { Factory } from "../../core/factory"; export const WordCloud3dAnimation = params => ({ custom: RotateBySphereAnimate, customParameters: (datum, element) => params, easing: "linear", loop: 1 / 0, duration: 6e3 }); function computeWordDelay(duration, totalTime, wordCount) { return duration * wordCount < totalTime ? duration + (totalTime - wordCount * duration) / (wordCount - 1) : (totalTime - duration) / (wordCount - 1); } export const WordCloudScaleInAnimation = params => ({ channel: { fontSize: { from: 0 } }, duration: 200, delay: (datum, element, vgrammarParams) => { const animationConfig = params.animationConfig(), duration = (null == animationConfig ? void 0 : animationConfig.duration) || 200, totalTime = (null == animationConfig ? void 0 : animationConfig.totalTime) || DEFAULT_ANIMATION_CONFIG.appear.duration, count = vgrammarParams.VGRAMMAR_ANIMATION_PARAMETERS.elementCount; return vgrammarParams.VGRAMMAR_ANIMATION_PARAMETERS.elementIndex * computeWordDelay(duration, totalTime, count); } }); export function wordcloudPresetAnimation(params, preset) { return !1 === preset ? {} : "fadeIn" === preset ? { type: "fadeIn" } : WordCloudScaleInAnimation(params); } export const registerWordCloudAnimation = () => { Factory.registerAnimation("wordCloud", ((params, preset) => ({ appear: wordcloudPresetAnimation(params, preset), enter: { type: "fadeIn" }, exit: { type: "fadeOut" }, disappear: { type: "fadeOut" } }))); }; export const registerWordCloud3dAnimation = () => { Factory.registerAnimation("wordCloud3d", (params => ({ enter: WordCloud3dAnimation(params) }))); }; //# sourceMappingURL=animation.js.map