position-clusters.js 841 B

12345678910111213141516171819202122232425262728293031
  1. import * as d3 from 'd3'
  2. import util from './util'
  3. function positionClusters (selection, g) {
  4. const created = selection.filter(function () { return !d3.select(this).classed('update') })
  5. function translate (v) {
  6. const node = g.node(v)
  7. return 'translate(' + node.x + ',' + node.y + ')'
  8. }
  9. created.attr('transform', translate)
  10. util.applyTransition(selection, g)
  11. .style('opacity', 1)
  12. .attr('transform', translate)
  13. util.applyTransition(created.selectAll('rect'), g)
  14. .attr('width', function (v) { return g.node(v).width })
  15. .attr('height', function (v) { return g.node(v).height })
  16. .attr('x', function (v) {
  17. const node = g.node(v)
  18. return -node.width / 2
  19. })
  20. .attr('y', function (v) {
  21. const node = g.node(v)
  22. return -node.height / 2
  23. })
  24. }
  25. export default positionClusters