UNPKG

@visactor/vmind

Version:

<div align="center"> <a href="https://github.com/VisActor#gh-light-mode-only" target="_blank"> <img alt="VisActor Logo" width="200" src="https://github.com/VisActor/.github/blob/main/profile/logo_500_200_light.svg"/> </a> <a href="https://githu

46 lines (40 loc) 1.51 kB
import { isArray } from "@visactor/vutils"; import { color, sunburstOrTreemapField } from "./common"; export const treemapData = context => { const {dataTable: dataTable, cell: cell, spec: spec} = context; return spec.data = { id: "data", values: getTreemapData(dataTable, isArray(cell.color) ? cell.color : [ cell.color ], 0, cell.size) }, { spec: spec }; }; export const getTreemapData = (dataTable, colorField, index, sizeField) => { if (colorField.length - 1 === index) return Array.from(new Set(dataTable.map((data => ({ name: data[colorField[index]], value: data[sizeField] }))))); return Array.from(new Set(dataTable.map((data => data[colorField[index]])))).map((value => { const currentDataset = dataTable.filter((data => data[colorField[index]] === value)); return currentDataset[0] && "" === currentDataset[0][colorField[index + 1]] ? { name: value, value: currentDataset[0][sizeField] } : { name: value, children: getTreemapData(currentDataset, colorField, index + 1, sizeField) }; })); }; export const treemapDisplayConf = context => { const {spec: spec} = context; return spec.label = { visible: !0, style: { fontSize: 12 } }, { spec: spec }; }; export const pipelineTreemap = [ treemapData, color, sunburstOrTreemapField, treemapDisplayConf ]; //# sourceMappingURL=treemap.js.map