private _sendPanEvent()

in src/common/GestureView.tsx [542:604]


    private _sendPanEvent(e: Types.TapGestureState, gestureState: GestureStatePointVelocity,
            gestureType: GestureType, initializeFromEvent: boolean, isComplete: boolean) {
        const state = this._pendingGestureState as Types.PanGestureState;

        assert(this._lastGestureStartEvent, 'Gesture start event must not be null.');

        const initialPageX = this._lastGestureStartEvent
            ? this._lastGestureStartEvent.pageX!
            : initializeFromEvent ? e.pageX : state.initialPageX;
        const initialPageY = this._lastGestureStartEvent
            ? this._lastGestureStartEvent.pageY!
            : initializeFromEvent ? e.pageY : state.initialPageY;
        const initialClientX = this._lastGestureStartEvent
            ? this._lastGestureStartEvent.locationX!
            : initializeFromEvent ? e.clientX : state.initialClientX;
        const initialClientY = this._lastGestureStartEvent
            ? this._lastGestureStartEvent.locationY!
            : initializeFromEvent ? e.clientY : state.initialClientY;

        const velocityX = initializeFromEvent ? 0 : gestureState.vx;
        const velocityY = initializeFromEvent ? 0 : gestureState.vy;

        const panEvent: Types.PanGestureState = {
            initialPageX: initialPageX,
            initialPageY: initialPageY,
            initialClientX: initialClientX,
            initialClientY: initialClientY,

            pageX: e.pageX,
            pageY: e.pageY,
            clientX: e.clientX,
            clientY: e.clientY,
            velocityX: velocityX,
            velocityY: velocityY,

            isComplete: isComplete,
            timeStamp: e.timeStamp,
            isTouch: !GestureView._isActuallyMouseEvent(this._lastGestureStartEvent),
        };

        switch (gestureType) {
            case GestureType.Pan:
                if (this.props.onPan) {
                    this.props.onPan(panEvent);
                }
                break;
            case GestureType.PanVertical:
                if (this.props.onPanVertical) {
                    this.props.onPanVertical(panEvent);
                }
                break;
            case GestureType.PanHorizontal:
                if (this.props.onPanHorizontal) {
                    this.props.onPanHorizontal(panEvent);
                }
                break;

            default:
                // do nothing;
        }

        return panEvent;
    }