           (.append "line")
           (.attr "class" "link")
           (.style "stroke" "#C9CBCB")
-          (.style "stroke-width" 3))
+          (.style "stroke-width" 3)
+          (.each
+            (fn [link]
+              (this-as elem (add-tap-listener elem #(link-tap-signaller link))))))
       (-> link-selection
           maybe-transition
           (.attr "x1" #(-> % :source positions :x))

        displacement (subtract-vec pos camera-pos)
        r (scaled-distance-from-camera state pos)
        projected-r (projector r)]
    (add-vec view-center
             (scalar-multiply displacement (/ projected-r r)))))

(defn project-radius [t]
  (* max-radius (min 1 (/ 1 (.pow js/Math 2 (* 2 (- t 0.25)))))))

                          animation-observable]
  (-> node-tap-observable
      (suppress-while-animating animation-observable)
      (.subscribe (fn [node]
                    (if (= (:projection @current-state) :fisheye)
                      (zoom-in-to-pos! current-state (:pos node)))))))

;; Exported function to do magic

