fitGraph(delay = 0, duration = 0) {

    // clear any existing fitting attempt
    clearTimeout(this.activeFitTimeout);

    const fit = () => {

      // happens when widget is removed after stabilize but before fit
      if (this.isZombieWidget()) {
        return;
      }

      // fixes #97
      this.network.redraw();

      this.network.fit({ // v4: formerly zoomExtent
        animation: {
          duration: duration,
          easingFunction: 'easeOutQuart'
        }
      });

    };

    this.activeFitTimeout = setTimeout(fit, delay);

  }
This method allows us to specify after what time and for how long
the zoom-to-fit process should be executed for a graph.

@param {number} [delay=0] - How long to wait before starting to zoom.
@param {number} [duration=0] - After the delay, how long should it
    take for the graph to be zoomed.