@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
JavaScript
;
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