import { treemap, hierarchy, treemapSquarify, HierarchyRectangularNode, } from "d3-hierarchy" interface TreeMapContext { width: number height: number data: TreeMapInputData valuePropInData: string paddingOuter: number paddingInner: number } export const calculateTreeMap = ({ width, height, data, valuePropInData, paddingOuter, paddingInner, }: TreeMapContext): HierarchyRectangularNode => treemap() .tile(treemapSquarify.ratio(1)) .size([width, height]) .round(true) .paddingOuter(paddingOuter) .paddingInner(paddingInner) .paddingTop(22)( hierarchy(data) .sum((s) => s[valuePropInData]) .sort((a, b) => b[valuePropInData] - a[valuePropInData]) )