Roadmaps: Speed up render time

Even though we're utilising VirtualList to render epic items in roadmap it still gets slow on large number of epics and the biggest culprit is the epic items' timeframe.

When we seek timeframes by scrolling horizontally, we add non-trivial complexity to our render cycle.

If we have N epic items and load up timeframes for upto 3 years, 12 * 3 timeframes are loaded if block size is months. Now, we'd on each scroll have to render 36 * N items. As this number increases, the more choppy the page becomes.

Proposed solution

Use two VirtualLists in tandem. One for vertical and another for horizontal.

Marginal gains

  1. Memoize functions like timelineBarStyles(epic), timeframeString(epic), etc.
  2. For tooltips, prefer this.getTarget over :target="() => $refs.childEpicsCount" (also, () => $refs.expandCollapseInfo).

cc: @donaldcook

Edited by Rajat Jain