@visactor/vchart
Version:
charts lib based @visactor/VGrammar
50 lines (43 loc) • 2.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.registerSankeyChart = exports.SankeyChart = void 0;
const base_chart_1 = require("../base/base-chart"), type_1 = require("../../series/interface/type"), sankey_1 = require("../../series/sankey/sankey"), factory_1 = require("../../core/factory"), sankey_transformer_1 = require("./sankey-transformer"), vutils_1 = require("@visactor/vutils"), vrender_components_1 = require("@visactor/vrender-components");
class SankeyChart extends base_chart_1.BaseChart {
constructor() {
super(...arguments), this.transformerConstructor = sankey_transformer_1.SankeyChartSpecTransformer,
this.type = "sankey", this.seriesType = type_1.SeriesTypeEnum.sankey;
}
_setStateInDatum(stateKey, checkReverse, datum, filter, region) {
const activeDatum = (0, vutils_1.isArray)(datum) ? datum[0] : datum, keys = activeDatum ? Object.keys(activeDatum) : null;
this.getRegionsInQuerier(region).forEach((r => {
if (!activeDatum) return void r.interaction.clearEventElement(stateKey, !0);
let hasPick = !1;
r.getSeries().forEach((s => {
var _a, _b;
let activeNodeOrLink = null;
s.getMarksWithoutRoot().forEach((m => {
if ("text" === m.type) return;
let pickElement = null;
const mark = m.getProduct();
mark && ((!filter || (0, vutils_1.isFunction)(filter) && filter(s, m)) && (pickElement = mark.elements.find((e => keys.every((k => {
var _a;
let datum = null === (_a = e.getDatum()) || void 0 === _a ? void 0 : _a.datum;
return (0, vutils_1.isArray)(datum) && (datum = datum[0]), activeDatum[k] == (null == datum ? void 0 : datum[k]);
}))))), pickElement && (hasPick = !0, r.interaction.startInteraction(stateKey, pickElement),
(mark.id().includes("node") || mark.id().includes("link")) && (activeNodeOrLink = pickElement)));
})), activeNodeOrLink && (null === (_b = (_a = s)._handleEmphasisElement) || void 0 === _b || _b.call(_a, {
item: activeNodeOrLink
}));
})), checkReverse && hasPick && r.interaction.reverseEventElement(stateKey);
}));
}
}
exports.SankeyChart = SankeyChart, SankeyChart.type = "sankey", SankeyChart.seriesType = type_1.SeriesTypeEnum.sankey,
SankeyChart.transformerConstructor = sankey_transformer_1.SankeyChartSpecTransformer;
const registerSankeyChart = () => {
(0, vrender_components_1.loadScrollbar)(), (0, sankey_1.registerSankeySeries)(),
factory_1.Factory.registerChart(SankeyChart.type, SankeyChart);
};
exports.registerSankeyChart = registerSankeyChart;
//# sourceMappingURL=sankey.js.map