* Hacky working prototype.
* Operate with time.Duration offset instead of fixed timestamp.
* Polished the backend code.
* Made a nicer UI component.
* Small refactorings of the websockets code.
* Fixed the backend tests.
* Better websocketing and smoother transitions
* Small styling refactoring.
* Detecting empty topologies.
* Improved error messaging.
* Addressed some of David's comments.
* Moved nodesDeltaBuffer to a global state to fix the paused status rendering bug.
* Small styling changes
* Changed the websocket global state variables a bit.
* Polishing & refactoring.
* More polishing.
* Final refactoring.
* Addressed a couple of bugs.
* Hidden the timeline control behind Cloud context and a feature flag.
* Addressed most of @davkal's comments.
* Added mixpanel tracking.
* Added a zoom slider control in the bottom-right corner.
* Made the control vertical and added the buttons.
* Adjusted the styles and borders.
* Trying to fix Webpack
* Hide zoom control when there is no content.
* Polished the code.
* Added resource view selector button
* Showing resource boxes in the resource view
* Crude CPU resource view prototype
* Improved the viewMode state logic
* Extracted zooming into a separate wrapper component
* Split the layout selectors between graph-view and resource-view
* Proper zooming logic for the resource view
* Moved all node networks utils to selectors
* Improved the zoom caching logic
* Further refactoring of selectors
* Added sticky labels to the resource boxes
* Added panning translation limits in the resource view
* Renamed GridModeSelector -> ViewModeSelector
* Polished the topology resource view selection logic
* Search bar hidden in the resource view
* Added per-layer topology names to the resource view
* Made metric selectors work for the resource view
* Adjusted the viewport selectors
* Renamed viewport selector to canvas (+ maximal zoom fix)
* Showing more useful metric info in the resource box labels
* Fetching only necessary nodes for the resource view
* Refactored the resource view layer component
* Addressed first batch UI comments (from the Scope meeting)
* Switch to deep zooming transform in the resource view to avoid SVG precision errors
* Renamed and moved resource view components
* Polished all the resource view components
* Changing the available metrics selection
* Improved and polished the state transition logic for the resource view
* Separated zoom limits from the zoom active state
* Renaming and bunch of comments
* Addressed all the UI comments (@davkal + @fons)
* Made graph view selectors independent from resource view selectors
Safari wasn't supporting a "badly specified"[0] layout that Chrome was
supporting.
[0] Height 100% inside of a container that didn't have a height
specified.