History
Interactive operations can be recorded by listening to the editor’s drag.start and drag.end events as the timing points for saving history states.
When manipulating graphics, multiple property changes may occur at the same time. You can listen on app.tree to collect changes of elements and use them for history tracking.