function onMount(dispatch) {
initializeSubjects.bind(this)();
const { mousedown$, mousemove$, mouseup$, touchstart$, touchmove$, touchend$,
target, container
} = this
, mousedrag$ = mousedown$.mergeMap(
transformOrigin(target, container, mousemove$, mouseup$)
)
, touchdrag$ = touchstart$.mergeMap(
transformOrigin(target, container, touchmove$, touchend$)
)
, drag$ = merge(mousedrag$, touchdrag$)
;
this.dragSubscription = drag$.subscribe(
pos => dispatch(updatePosition({ top: pos.top, left: pos.left }))
);
}