swipe_click.js (2613B)
- import GestureService from '../../services/gesture_service/gesture_service'
- /**
- * props:
- * direction: a vector that indicates the direction of the intended swipe
- * threshold: the minimum distance in pixels the swipe has moved on `direction'
- * for swipe-finished() to have a non-zero sign
- * disableClickThreshold: the minimum distance in pixels for the swipe to
- * not trigger a click
- * perpendicularTolerance: see gesture_service
- *
- * Events:
- * preview-requested(offsets)
- * Emitted when the pointer has moved.
- * offsets: the offsets from the start of the swipe to the current cursor position
- *
- * swipe-canceled()
- * Emitted when the swipe has been canceled due to a pointercancel event.
- *
- * swipe-finished(sign: 0|-1|1)
- * Emitted when the swipe has finished.
- * sign: if the swipe does not meet the threshold, 0
- * if the swipe meets the threshold in the positive direction, 1
- * if the swipe meets the threshold in the negative direction, -1
- *
- * swipeless-clicked()
- * Emitted when there is a click without swipe.
- * This and swipe-finished() cannot be emitted for the same pointerup event.
- */
- const SwipeClick = {
- props: {
- direction: {
- type: Array
- },
- threshold: {
- type: Function,
- default: () => 30
- },
- disableClickThreshold: {
- type: Function,
- default: () => 1
- },
- perpendicularTolerance: {
- type: Number,
- default: 1.0
- }
- },
- methods: {
- handlePointerDown (event) {
- this.$gesture.start(event)
- },
- handlePointerMove (event) {
- this.$gesture.move(event)
- },
- handlePointerUp (event) {
- this.$gesture.end(event)
- },
- handlePointerCancel (event) {
- this.$gesture.cancel(event)
- },
- handleNativeClick (event) {
- this.$gesture.click(event)
- },
- preview (offsets) {
- this.$emit('preview-requested', offsets)
- },
- end (sign) {
- this.$emit('swipe-finished', sign)
- },
- click () {
- this.$emit('swipeless-clicked')
- },
- cancel () {
- this.$emit('swipe-canceled')
- }
- },
- created () {
- this.$gesture = new GestureService.SwipeAndClickGesture({
- direction: this.direction,
- threshold: this.threshold,
- disableClickThreshold: this.disableClickThreshold,
- perpendicularTolerance: this.perpendicularTolerance,
- swipePreviewCallback: this.preview,
- swipeEndCallback: this.end,
- swipeCancelCallback: this.cancel,
- swipelessClickCallback: this.click
- })
- }
- }
- export default SwipeClick