Here is a typical rxjs example of drag-and-drop:
const drag$ = mousedown$.pipe( switchMap( (start) => { return mousemove$.pipe(map(move => {