- Рабочая область, внутри которой создается граф - текущий viewport;✅
- Необходимо иметь toolbox, в котором можно выбрать тип элемента, который будет добавлен в граф (вершину или ребро);✅
- Вершины графа добавляются по клику в произвольную точку рабочей области;✅
- Ребро можно добавлять только между двумя вершинами графа;✅
- Рёбра и вершины можно удалять;✅
- Граф должен масштабироваться если изменяются размеры области просмотра;✅
- При удаление вершины графа, должны автоматически удалятся все рёбра, связанные с ней;✅
- При клике на вершину графа должен всплывать popover, в котором мы можем пометить вершину как начало или конец пути (сюда же можно и кнопку удаления добавить); ❎
- В момент когда выбраны 2 вершины должен выстроится кратчайший путь между ними. Рёбра которые формируют этот путь должны быть визуально выделены. Так же, по направлению пути надо анимировать двигающийся маркер;✅
- Необходимо предотвращать повторное вычисление пути между двумя точками, используя мемоизацию или кэширование в Local Storage;✅