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

74 lines (66 loc) 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }), exports.pipelineSunburst = exports.sunburstDisplayConf = exports.getSunburstData = exports.sunburstData = void 0; const common_1 = require("./common"), sunburstData = context => { const {dataTable: dataTable, cell: cell, spec: spec} = context; return spec.data = { id: "data", values: (0, exports.getSunburstData)(dataTable, cell.color, 0, cell.size) }, { spec: spec }; }; exports.sunburstData = sunburstData; const getSunburstData = (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 { name: value, children: (0, exports.getSunburstData)(currentDataset, colorField, index + 1, sizeField) }; })); }; exports.getSunburstData = getSunburstData; const sunburstDisplayConf = context => { const {spec: spec} = context; return spec.offsetX = 0, spec.offsetY = 0, spec.outerRadius = 1, spec.innerRadius = 0, spec.gap = 5, spec.drill = !0, spec.sunburst = { visible: !0, style: { fillOpacity: datum => datum.isLeaf ? .4 : .8 } }, spec.label = { visible: !0, style: { fontSize: 12, fillOpacity: datum => datum.isLeaf ? .4 : .8 } }, spec.tooltip = { mark: { title: { value: val => { var _a; return null === (_a = null == val ? void 0 : val.datum) || void 0 === _a ? void 0 : _a.map((data => data.name)).join(" / "); } } } }, spec.animationEnter = { easing: "cubicInOut", duration: 1e3 }, spec.animationExit = { easing: "cubicInOut", duration: 1e3 }, spec.animationUpdate = { easing: "cubicInOut", duration: 1e3 }, { spec: spec }; }; exports.sunburstDisplayConf = sunburstDisplayConf, exports.pipelineSunburst = [ exports.sunburstData, common_1.color, common_1.sunburstOrTreemapField, exports.sunburstDisplayConf ]; //# sourceMappingURL=sunburst.js.map