@visactor/vchart
Version:
charts lib based @visactor/VGrammar
74 lines (61 loc) • 2.16 kB
JavaScript
import { AnimationStateEnum } from "../../../animation/interface";
import { Factory } from "../../../core/factory";
export function pieGrowOption(pieParams, isOverall, state) {
return (datum, graphic, params) => isOverall ? "radius" === pieParams.growField ? {
overall: 0
} : {
overall: pieParams.growFrom(datum, graphic, state)
} : {
overall: !1
};
}
export const Appear_Grow = params => ({
type: "radius" === params.growField ? "growRadiusIn" : "growAngleIn",
options: pieGrowOption(params, !0, AnimationStateEnum.appear)
});
export const Appear_FadeIn = {
type: "fadeIn"
};
export const pieEnter = params => ({
type: "radius" === params.growField ? "growRadiusIn" : "growAngleIn",
easing: "linear",
options: pieGrowOption(params, !0, AnimationStateEnum.enter)
});
export const pieExit = params => ({
type: "radius" === params.growField ? "growRadiusOut" : "growAngleOut",
easing: "linear",
options: pieGrowOption(params, !0, AnimationStateEnum.exit)
});
export const pieDisappear = params => ({
type: "radius" === params.growField ? "growRadiusOut" : "growAngleOut",
options: pieGrowOption(params, !0, AnimationStateEnum.exit)
});
export function piePresetAnimation(params, preset) {
if (!1 === preset) return {};
switch (preset) {
case "fadeIn":
return Appear_FadeIn;
case "growRadius":
return Appear_Grow(Object.assign(Object.assign({}, params), {
growField: "radius"
}));
default:
return Appear_Grow(Object.assign(Object.assign({}, params), {
growField: "angle"
}));
}
}
export const registerPieAnimation = () => {
Factory.registerAnimation("pie", ((params, preset) => ({
appear: piePresetAnimation(params, preset),
enter: pieEnter(params),
exit: pieExit(params),
disappear: pieDisappear(params)
})));
};
export const registerEmptyCircleAnimation = () => {
Factory.registerAnimation("emptyCircle", ((params, preset) => ({
appear: piePresetAnimation(params, preset)
})));
};
//# sourceMappingURL=animation.js.map