This is a mutliple level drag and drop implementation using Rxjs.
For two level dnd follow the comments in src/dragEnDrop/dnd.js
npm i && npm run start
src/dragEnDrop/dnd$.js
rxjs implementationsrc/dragEnDrop/dnd.js
helper methods for implementing animation etc
/* You can develop your own methods for each subscription */
dragStart$.subscribe((event) =>
generateNewDraggable(event));
drag$.subscribe(({draggable, event}) =>
dragElement(draggable, event));
dragEnDrop$.subscribe(({event, draggable})=>
handleDropabble(event, draggable));