On touch devices, if a finger leaves the screen outside the viewport element, you might not receive a `pointerup` but a `pointercancel` instead. That is why I also listen to `pointercancel` to properly stop the dragging.