and()
  updateChronology()
}

function drag (simulation) {
  function dragstarted (event) {
    clearPopup()
    if (!event.active) simulation.alphaTarget(0.3).restart()
    event.subject.fx = event.subject.x
    event.subject.fy = event.subject.y
    chronologyConstraint(event.subject)
  }

  function dragged (event) {
    clearPopup()
    event.subject.fx = event.x
    event.subject.fy = event.y
    chronologyConstraint(event.subject)
  }

  function dragended (event) {
    if (!event.active) simulation.a