@tanstack/charts
Version:
A chart grammar for TypeScript and JavaScript. Marks consume your data directly, channels describe visual encodings, and the engine compiles them into a renderer-neutral keyed scene. TanStack's compact scales cover common numeric and categorical mappings.
40 lines (39 loc) • 1.12 kB
JavaScript
function viewportTranslationChanged(previous, next) {
return ["x", "y"].some(
(axis) => (previous.scales[axis]?.viewport?.translate ?? 0) !== (next.scales[axis]?.viewport?.translate ?? 0)
);
}
function mapScenePointReferences(nodes, mapPoint) {
return nodes.map((node) => {
if (node.kind === "group") {
return {
...node,
children: mapScenePointReferences(node.children, mapPoint),
...node.focus ? {
focus: {
...node.focus,
points: node.focus.points.map(mapPoint)
}
} : {},
...node.states ? {
states: {
...node.states,
points: node.states.points.map(mapPoint)
}
} : {}
};
}
if (node.kind === "label" || !node.interaction) return node;
return {
...node,
interaction: node.interaction.point ? { ...node.interaction, point: mapPoint(node.interaction.point) } : {
...node.interaction,
points: node.interaction.points.map(mapPoint)
}
};
});
}
export {
mapScenePointReferences,
viewportTranslationChanged
};