UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

34 lines (30 loc) 1.69 kB
import { computeRatio, getInnerMostElements } from "./utils"; import { maxInArray, minInArray } from "@visactor/vutils"; const computeInnerAngleRange = mark => [ minInArray(mark.map((m => 1 * m.getFinalAttribute().startAngle))), maxInArray(mark.map((m => 1 * m.getFinalAttribute().endAngle))) ]; export const sunburstExit = params => ({ channel: { startAngle: { from: (_d, graphic) => graphic.getFinalAttribute().startAngle, to: (_d, graphic) => { const {startAngle: startAngle, endAngle: endAngle} = params.animationInfo(), innerElements = getInnerMostElements(graphic.parent.children), range = computeInnerAngleRange(innerElements); return computeRatio(graphic.getFinalAttribute().startAngle, range) * (endAngle - startAngle) + startAngle; } }, endAngle: { from: (_d, graphic) => graphic.getFinalAttribute().endAngle, to: (_d, graphic) => { const {startAngle: startAngle, endAngle: endAngle} = params.animationInfo(), innerElements = getInnerMostElements(graphic.parent.children), range = computeInnerAngleRange(innerElements); return computeRatio(graphic.getFinalAttribute().endAngle, range) * (endAngle - startAngle) + startAngle; } }, outerRadius: { from: (_d, graphic) => graphic.getFinalAttribute().outerRadius, to: () => params.animationInfo().innerRadius }, innerRadius: { from: (_d, graphic) => graphic.getFinalAttribute().innerRadius, to: () => params.animationInfo().innerRadius } } }); //# sourceMappingURL=exit.js.map