const MIN_DISTANCE = 10 
 | 
  
 | 
function getDirection(x, y) { 
 | 
    if (x > y && x > MIN_DISTANCE) { 
 | 
        return 'horizontal' 
 | 
    } 
 | 
    if (y > x && y > MIN_DISTANCE) { 
 | 
        return 'vertical' 
 | 
    } 
 | 
    return '' 
 | 
} 
 | 
  
 | 
export default { 
 | 
    methods: { 
 | 
        getTouchPoint(e) { 
 | 
            if (!e) { 
 | 
                return { 
 | 
                    x: 0, 
 | 
                    y: 0 
 | 
                } 
 | 
            } if (e.touches && e.touches[0]) { 
 | 
                return { 
 | 
                    x: e.touches[0].pageX, 
 | 
                    y: e.touches[0].pageY 
 | 
                } 
 | 
            } if (e.changedTouches && e.changedTouches[0]) { 
 | 
                return { 
 | 
                    x: e.changedTouches[0].pageX, 
 | 
                    y: e.changedTouches[0].pageY 
 | 
                } 
 | 
            } 
 | 
            return { 
 | 
                x: e.clientX || 0, 
 | 
                y: e.clientY || 0 
 | 
            } 
 | 
        }, 
 | 
        resetTouchStatus() { 
 | 
            this.direction = '' 
 | 
            this.deltaX = 0 
 | 
            this.deltaY = 0 
 | 
            this.offsetX = 0 
 | 
            this.offsetY = 0 
 | 
        }, 
 | 
        touchStart(event) { 
 | 
            this.resetTouchStatus() 
 | 
            const touch = this.getTouchPoint(event) 
 | 
            this.startX = touch.x 
 | 
            this.startY = touch.y 
 | 
        }, 
 | 
        touchMove(event) { 
 | 
            const touch = this.getTouchPoint(event) 
 | 
            this.deltaX = touch.x - this.startX 
 | 
            this.deltaY = touch.y - this.startY 
 | 
            this.offsetX = Math.abs(this.deltaX) 
 | 
            this.offsetY = Math.abs(this.deltaY) 
 | 
            this.direction =                this.direction || getDirection(this.offsetX, this.offsetY) 
 | 
        } 
 | 
    } 
 | 
} 
 |