@visactor/vchart
Version:
charts lib based @visactor/VGrammar
39 lines (33 loc) • 1.44 kB
JavaScript
import { DEFAULT_ANIMATION_CONFIG } from "../../animation/config";
import { Factory } from "../../core/factory";
function computeWordDelay(duration, totalTime, wordCount) {
return duration * wordCount < totalTime ? duration + (totalTime - wordCount * duration) / (wordCount - 1) : (totalTime - duration) / (wordCount - 1);
}
export const WordCloudScaleInAnimation = params => ({
type: "scaleIn",
duration: 200,
delay: (datum, graphic) => {
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 = graphic.context.graphicCount;
return graphic.context.graphicIndex * 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"
}
})));
};
//# sourceMappingURL=animation.js.map