Spaces:
Build error
Build error
File size: 1,386 Bytes
c211499 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
import * as d3 from 'd3';
import * as _ from 'lodash-es';
import { addLabel } from './label/add-label.js';
import * as util from './util.js';
export { createEdgeLabels, setCreateEdgeLabels };
let createEdgeLabels = function (selection, g) {
var svgEdgeLabels = selection
.selectAll('g.edgeLabel')
.data(g.edges(), function (e) {
return util.edgeToId(e);
})
.classed('update', true);
svgEdgeLabels.exit().remove();
svgEdgeLabels.enter().append('g').classed('edgeLabel', true).style('opacity', 0);
svgEdgeLabels = selection.selectAll('g.edgeLabel');
svgEdgeLabels.each(function (e) {
var root = d3.select(this);
root.select('.label').remove();
var edge = g.edge(e);
var label = addLabel(root, g.edge(e), 0).classed('label', true);
var bbox = label.node().getBBox();
if (edge.labelId) {
label.attr('id', edge.labelId);
}
if (!_.has(edge, 'width')) {
edge.width = bbox.width;
}
if (!_.has(edge, 'height')) {
edge.height = bbox.height;
}
});
var exitSelection;
if (svgEdgeLabels.exit) {
exitSelection = svgEdgeLabels.exit();
} else {
exitSelection = svgEdgeLabels.selectAll(null); // empty selection
}
util.applyTransition(exitSelection, g).style('opacity', 0).remove();
return svgEdgeLabels;
};
function setCreateEdgeLabels(value) {
createEdgeLabels = value;
}
|