32 lines
860 B
JavaScript
32 lines
860 B
JavaScript
import d3 from 'd3'
|
|
import util from './util'
|
|
|
|
function positionClusters (selection, g) {
|
|
const created = selection.filter(function () { return !d3.select(this).classed('update') })
|
|
|
|
function translate (v) {
|
|
const node = g.node(v)
|
|
return 'translate(' + node.x + ',' + node.y + ')'
|
|
}
|
|
|
|
created.attr('transform', translate)
|
|
|
|
util.applyTransition(selection, g)
|
|
.style('opacity', 1)
|
|
.attr('transform', translate)
|
|
|
|
util.applyTransition(created.selectAll('rect'), g)
|
|
.attr('width', function (v) { return g.node(v).width })
|
|
.attr('height', function (v) { return g.node(v).height })
|
|
.attr('x', function (v) {
|
|
const node = g.node(v)
|
|
return -node.width / 2
|
|
})
|
|
.attr('y', function (v) {
|
|
const node = g.node(v)
|
|
return -node.height / 2
|
|
})
|
|
}
|
|
|
|
export default positionClusters
|