I can pretty safely say that this functionality does not already exist as a Mendix widget. This is a very specific and UI intensive project requirement, so you will definitely need a custom widget.
A lot of times you can jump start your Mendix widget development by using an existing javascript library to do the heavy lifting, and focus your widget development on integrating the library's functionality with Mendix objects and microflows.
With a quick google search, I found the JointJS library, which is not free, but seems to have a lot of the diagramming features you're looking for. Here is another list of 10 diagramming libraries for JavaScript.