Aplicar Deshacer Rehacer en elementos que se pueden dibujar (arrastrar y soltar)

Quiero implementar la funcionalidad en los svgElements que se pueden arrastrar con javascript, ¿cómo podría hacer esto ...

He implementado esto con el mouse arriba

Cuando se levanta el mouse, guardo la posición xey, la identificación del objeto, el tipo de objeto (círculo, rectángulo, etc.)

¿Alguien puede decir ... esta es una buena manera de implementar?

Respuestas a la pregunta(5)

Su respuesta a la pregunta