{"version":3,"sources":["webpack:///./node_modules/rc-gesture/es/config.js","webpack:///./node_modules/rc-gesture/es/util.js","webpack:///./node_modules/rc-gesture/es/index.js"],"names":["DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PRESS","time","SWIPE","threshold","velocity","_calcTriangleDistance","x","y","Math","sqrt","_calcAngle","radian","atan2","PI","now","Date","calcMutliFingerStatus","touches","length","_touches$","x1","y1","_touches$2","deltaX","deltaY","z","angle","getEventName","prefix","status","toUpperCase","slice","getDirectionEventName","direction","name","directionMap","all","vertical","horizontal","es_Gesture","_Component","Gesture","props","classCallCheck_default","this","_this","possibleConstructorReturn_default","__proto__","Object","getPrototypeOf","call","state","triggerEvent","_len","arguments","args","Array","_key","cb","apply","undefined","getGestureState","concat","triggerCombineEvent","mainEventName","eventStatus","_len2","_key2","triggerSubEvent","_len3","_key3","subEventName","triggerPinchEvent","_len4","_key4","scale","gesture","initPressTimer","cleanPressTimer","pressTimer","setTimeout","setGestureState","press","clearTimeout","params","preTouches","extends_default","cleanGestureState","getTouches","e","prototype","map","item","screenX","screenY","triggerUserCb","cbName","_handleTouchStart","event","preventDefault","initGestureStatus","checkIfMultiTouchStart","startTouches","startTime","startMutliFingerStatus","mutliFingerStatus","srcEvent","_this$props","enablePinch","enableRotate","pinch","rotate","rotation","_handleTouchMove","updateGestureStatus","checkIfSingleTouchMove","checkIfMultiTouchMove","_this$gesture","startAngle","calcRotation","allowGesture","directionSetting","point1","point2","_this$gesture2","pan","moveStatus","_this$gesture2$availa","availablePan","abs","eventName","checkIfMultiTouchEnd","_this$gesture3","_this$gesture4","_startTouches$","_touches$3","deltaZ","calcMoveStatus","_handleTouchEnd","doSingleTouchEnd","_handleTouchCancel","triggerAllowEvent","type","_this$gesture5","swipe","delta","shouldTriggerSwipe","directionEvName","getTouchAction","_this$props2","inherits_default","createClass_default","key","value","children","child","react_default","a","Children","only","touchAction","events","onTouchStart","onTouchMove","onTouchCancel","onTouchEnd","cloneElement","style","react","__webpack_exports__","defaultProps"],"mappings":"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","file":"vendor.rc-gesture~26d0074f.bundle.js","sourcesContent":["/* tslint:disable:no-bitwise */\n// http://hammerjs.github.io/api/#directions\nexport var DIRECTION_NONE = 1; // 00001\nexport var DIRECTION_LEFT = 2; // 00010\nexport var DIRECTION_RIGHT = 4; // 00100\nexport var DIRECTION_UP = 8; // 01000\nexport var DIRECTION_DOWN = 16; // 10000\nexport var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT; // 00110 6\nexport var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN; // 11000 24\nexport var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL; // 11110  30\n// http://hammerjs.github.io/recognizer-press/\nexport var PRESS = {\n    time: 251\n};\n// http://hammerjs.github.io/recognizer-swipe/\nexport var SWIPE = {\n    threshold: 10,\n    velocity: 0.3\n};","/* tslint:disable:no-bitwise */\nimport { SWIPE, DIRECTION_NONE, DIRECTION_LEFT, DIRECTION_RIGHT, DIRECTION_UP, DIRECTION_DOWN } from './config';\nfunction _calcTriangleDistance(x, y) {\n    return Math.sqrt(x * x + y * y);\n}\nfunction _calcAngle(x, y) {\n    var radian = Math.atan2(y, x);\n    return 180 / (Math.PI / radian);\n}\nexport function now() {\n    return Date.now();\n}\nexport function calcMutliFingerStatus(touches) {\n    if (touches.length < 2) {\n        return;\n    }\n    var _touches$ = touches[0],\n        x1 = _touches$.x,\n        y1 = _touches$.y;\n    var _touches$2 = touches[1],\n        x2 = _touches$2.x,\n        y2 = _touches$2.y;\n\n    var deltaX = x2 - x1;\n    var deltaY = y2 - y1;\n    return {\n        x: deltaX,\n        y: deltaY,\n        z: _calcTriangleDistance(deltaX, deltaY),\n        angle: _calcAngle(deltaX, deltaY)\n    };\n}\nexport function calcMoveStatus(startTouches, touches, time) {\n    var _startTouches$ = startTouches[0],\n        x1 = _startTouches$.x,\n        y1 = _startTouches$.y;\n    var _touches$3 = touches[0],\n        x2 = _touches$3.x,\n        y2 = _touches$3.y;\n\n    var deltaX = x2 - x1;\n    var deltaY = y2 - y1;\n    var deltaZ = _calcTriangleDistance(deltaX, deltaY);\n    return {\n        x: deltaX,\n        y: deltaY,\n        z: deltaZ,\n        time: time,\n        velocity: deltaZ / time,\n        angle: _calcAngle(deltaX, deltaY)\n    };\n}\nexport function calcRotation(startMutliFingerStatus, mutliFingerStatus) {\n    var startAngle = startMutliFingerStatus.angle;\n    var angle = mutliFingerStatus.angle;\n\n    return angle - startAngle;\n}\nexport function getEventName(prefix, status) {\n    return prefix + status[0].toUpperCase() + status.slice(1);\n}\nexport function shouldTriggerSwipe(delta, velocity) {\n    return Math.abs(delta) >= SWIPE.threshold && Math.abs(velocity) > SWIPE.velocity;\n}\nexport function shouldTriggerDirection(direction, directionSetting) {\n    if (directionSetting & direction) {\n        return true;\n    }\n    return false;\n}\n/**\n * @private\n * get the direction between two points\n * Note: will change next version\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nexport function getDirection(x, y) {\n    if (x === y) {\n        return DIRECTION_NONE;\n    }\n    if (Math.abs(x) >= Math.abs(y)) {\n        return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n    }\n    return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n/**\n * @private\n * get the direction between tow points when touch moving\n * Note: will change next version\n * @param {Object} point1 coordinate point, include x & y attributes\n * @param {Object} point2 coordinate point, include x & y attributes\n * @return {Number} direction\n */\nexport function getMovingDirection(point1, point2) {\n    var x1 = point1.x,\n        y1 = point1.y;\n    var x2 = point2.x,\n        y2 = point2.y;\n\n    var deltaX = x2 - x1;\n    var deltaY = y2 - y1;\n    if (deltaX === 0 && deltaY === 0) {\n        return DIRECTION_NONE;\n    }\n    if (Math.abs(deltaX) >= Math.abs(deltaY)) {\n        return deltaX < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n    }\n    return deltaY < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\nexport function getDirectionEventName(direction) {\n    var name = void 0;\n    switch (direction) {\n        case DIRECTION_NONE:\n            break;\n        case DIRECTION_LEFT:\n            name = 'left';\n            break;\n        case DIRECTION_RIGHT:\n            name = 'right';\n            break;\n        case DIRECTION_UP:\n            name = 'up';\n            break;\n        case DIRECTION_DOWN:\n            name = 'down';\n            break;\n        default:\n    }\n    return name;\n}","import _extends from 'babel-runtime/helpers/extends';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\n/* tslint:disable:no-console */\nimport React, { Component } from 'react';\nimport { calcRotation, getEventName, now, calcMutliFingerStatus, calcMoveStatus, shouldTriggerSwipe, shouldTriggerDirection, getMovingDirection, getDirectionEventName } from './util';\nimport { PRESS, DIRECTION_ALL, DIRECTION_VERTICAL, DIRECTION_HORIZONTAL } from './config';\n;\n;\nvar directionMap = {\n    all: DIRECTION_ALL,\n    vertical: DIRECTION_VERTICAL,\n    horizontal: DIRECTION_HORIZONTAL\n};\n\nvar Gesture = function (_Component) {\n    _inherits(Gesture, _Component);\n\n    function Gesture(props) {\n        _classCallCheck(this, Gesture);\n\n        var _this = _possibleConstructorReturn(this, (Gesture.__proto__ || Object.getPrototypeOf(Gesture)).call(this, props));\n\n        _this.state = {};\n        _this.triggerEvent = function (name) {\n            for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n                args[_key - 1] = arguments[_key];\n            }\n\n            var cb = _this.props[name];\n            if (typeof cb === 'function') {\n                // always give user gesture object as first params first\n                cb.apply(undefined, [_this.getGestureState()].concat(args));\n            }\n        };\n        _this.triggerCombineEvent = function (mainEventName, eventStatus) {\n            for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n                args[_key2 - 2] = arguments[_key2];\n            }\n\n            _this.triggerEvent.apply(_this, [mainEventName].concat(args));\n            _this.triggerSubEvent.apply(_this, [mainEventName, eventStatus].concat(args));\n        };\n        _this.triggerSubEvent = function (mainEventName, eventStatus) {\n            for (var _len3 = arguments.length, args = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n                args[_key3 - 2] = arguments[_key3];\n            }\n\n            if (eventStatus) {\n                var subEventName = getEventName(mainEventName, eventStatus);\n                _this.triggerEvent.apply(_this, [subEventName].concat(args));\n            }\n        };\n        _this.triggerPinchEvent = function (mainEventName, eventStatus) {\n            for (var _len4 = arguments.length, args = Array(_len4 > 2 ? _len4 - 2 : 0), _key4 = 2; _key4 < _len4; _key4++) {\n                args[_key4 - 2] = arguments[_key4];\n            }\n\n            var scale = _this.gesture.scale;\n\n            if (eventStatus === 'move' && typeof scale === 'number') {\n                if (scale > 1) {\n                    _this.triggerEvent('onPinchOut');\n                }\n                if (scale < 1) {\n                    _this.triggerEvent('onPinchIn');\n                }\n            }\n            _this.triggerCombineEvent.apply(_this, [mainEventName, eventStatus].concat(args));\n        };\n        _this.initPressTimer = function () {\n            _this.cleanPressTimer();\n            _this.pressTimer = setTimeout(function () {\n                _this.setGestureState({\n                    press: true\n                });\n                _this.triggerEvent('onPress');\n            }, PRESS.time);\n        };\n        _this.cleanPressTimer = function () {\n            /* tslint:disable:no-unused-expression */\n            _this.pressTimer && clearTimeout(_this.pressTimer);\n        };\n        _this.setGestureState = function (params) {\n            if (!_this.gesture) {\n                _this.gesture = {};\n            }\n            // cache the previous touches\n            if (_this.gesture.touches) {\n                _this.gesture.preTouches = _this.gesture.touches;\n            }\n            _this.gesture = _extends({}, _this.gesture, params);\n        };\n        _this.getGestureState = function () {\n            if (!_this.gesture) {\n                return _this.gesture;\n            } else {\n                // shallow copy\n                return _extends({}, _this.gesture);\n            }\n        };\n        _this.cleanGestureState = function () {\n            delete _this.gesture;\n        };\n        _this.getTouches = function (e) {\n            return Array.prototype.slice.call(e.touches).map(function (item) {\n                return {\n                    x: item.screenX,\n                    y: item.screenY\n                };\n            });\n        };\n        _this.triggerUserCb = function (status, e) {\n            var cbName = getEventName('onTouch', status);\n            if (cbName in _this.props) {\n                _this.props[cbName](e);\n            }\n        };\n        _this._handleTouchStart = function (e) {\n            _this.triggerUserCb('start', e);\n            _this.event = e;\n            if (e.touches.length > 1) {\n                e.preventDefault();\n            }\n            _this.initGestureStatus(e);\n            _this.initPressTimer();\n            _this.checkIfMultiTouchStart();\n        };\n        _this.initGestureStatus = function (e) {\n            _this.cleanGestureState();\n            // store the gesture start state\n            var startTouches = _this.getTouches(e);\n            var startTime = now();\n            var startMutliFingerStatus = calcMutliFingerStatus(startTouches);\n            _this.setGestureState({\n                startTime: startTime,\n                startTouches: startTouches,\n                startMutliFingerStatus: startMutliFingerStatus,\n                /* copy for next time touch move cala convenient*/\n                time: startTime,\n                touches: startTouches,\n                mutliFingerStatus: startMutliFingerStatus,\n                srcEvent: _this.event\n            });\n        };\n        _this.checkIfMultiTouchStart = function () {\n            var _this$props = _this.props,\n                enablePinch = _this$props.enablePinch,\n                enableRotate = _this$props.enableRotate;\n            var touches = _this.gesture.touches;\n\n            if (touches.length > 1 && (enablePinch || enableRotate)) {\n                if (enablePinch) {\n                    var startMutliFingerStatus = calcMutliFingerStatus(touches);\n                    _this.setGestureState({\n                        startMutliFingerStatus: startMutliFingerStatus,\n                        /* init pinch status */\n                        pinch: true,\n                        scale: 1\n                    });\n                    _this.triggerCombineEvent('onPinch', 'start');\n                }\n                if (enableRotate) {\n                    _this.setGestureState({\n                        /* init rotate status */\n                        rotate: true,\n                        rotation: 0\n                    });\n                    _this.triggerCombineEvent('onRotate', 'start');\n                }\n            }\n        };\n        _this._handleTouchMove = function (e) {\n            _this.triggerUserCb('move', e);\n            _this.event = e;\n            if (!_this.gesture) {\n                // sometimes weird happen: touchstart -> touchmove..touchmove.. --> touchend --> touchmove --> touchend\n                // so we need to skip the unnormal event cycle after touchend\n                return;\n            }\n            // not a long press\n            _this.cleanPressTimer();\n            _this.updateGestureStatus(e);\n            _this.checkIfSingleTouchMove();\n            _this.checkIfMultiTouchMove();\n        };\n        _this.checkIfMultiTouchMove = function () {\n            var _this$gesture = _this.gesture,\n                pinch = _this$gesture.pinch,\n                rotate = _this$gesture.rotate,\n                touches = _this$gesture.touches,\n                startMutliFingerStatus = _this$gesture.startMutliFingerStatus,\n                mutliFingerStatus = _this$gesture.mutliFingerStatus;\n\n            if (!pinch && !rotate) {\n                return;\n            }\n            if (touches.length < 2) {\n                _this.setGestureState({\n                    pinch: false,\n                    rotate: false\n                });\n                // Todo: 2 finger -> 1 finger, wait to test this situation\n                pinch && _this.triggerCombineEvent('onPinch', 'cancel');\n                rotate && _this.triggerCombineEvent('onRotate', 'cancel');\n                return;\n            }\n            if (pinch) {\n                var scale = mutliFingerStatus.z / startMutliFingerStatus.z;\n                _this.setGestureState({\n                    scale: scale\n                });\n                _this.triggerPinchEvent('onPinch', 'move');\n            }\n            if (rotate) {\n                var rotation = calcRotation(startMutliFingerStatus, mutliFingerStatus);\n                _this.setGestureState({\n                    rotation: rotation\n                });\n                _this.triggerCombineEvent('onRotate', 'move');\n            }\n        };\n        _this.allowGesture = function () {\n            return shouldTriggerDirection(_this.gesture.direction, _this.directionSetting);\n        };\n        _this.checkIfSingleTouchMove = function () {\n            var _this$gesture2 = _this.gesture,\n                pan = _this$gesture2.pan,\n                touches = _this$gesture2.touches,\n                moveStatus = _this$gesture2.moveStatus,\n                preTouches = _this$gesture2.preTouches,\n                _this$gesture2$availa = _this$gesture2.availablePan,\n                availablePan = _this$gesture2$availa === undefined ? true : _this$gesture2$availa;\n\n            if (touches.length > 1) {\n                _this.setGestureState({\n                    pan: false\n                });\n                // Todo: 1 finger -> 2 finger, wait to test this situation\n                pan && _this.triggerCombineEvent('onPan', 'cancel');\n                return;\n            }\n            // add avilablePan condition to fix the case in scrolling, which will cause unavailable pan move.\n            if (moveStatus && availablePan) {\n                var direction = getMovingDirection(preTouches[0], touches[0]);\n                _this.setGestureState({ direction: direction });\n                var eventName = getDirectionEventName(direction);\n                if (!_this.allowGesture()) {\n                    // if the first move is unavailable, then judge all of remaining touch movings are also invalid.\n                    if (!pan) {\n                        _this.setGestureState({ availablePan: false });\n                    }\n                    return;\n                }\n                if (!pan) {\n                    _this.triggerCombineEvent('onPan', 'start');\n                    _this.setGestureState({\n                        pan: true,\n                        availablePan: true\n                    });\n                } else {\n                    _this.triggerCombineEvent('onPan', eventName);\n                    _this.triggerSubEvent('onPan', 'move');\n                }\n            }\n        };\n        _this.checkIfMultiTouchEnd = function (status) {\n            var _this$gesture3 = _this.gesture,\n                pinch = _this$gesture3.pinch,\n                rotate = _this$gesture3.rotate;\n\n            if (pinch) {\n                _this.triggerCombineEvent('onPinch', status);\n            }\n            if (rotate) {\n                _this.triggerCombineEvent('onRotate', status);\n            }\n        };\n        _this.updateGestureStatus = function (e) {\n            var time = now();\n            _this.setGestureState({\n                time: time\n            });\n            if (!e.touches || !e.touches.length) {\n                return;\n            }\n            var _this$gesture4 = _this.gesture,\n                startTime = _this$gesture4.startTime,\n                startTouches = _this$gesture4.startTouches,\n                pinch = _this$gesture4.pinch,\n                rotate = _this$gesture4.rotate;\n\n            var touches = _this.getTouches(e);\n            var moveStatus = calcMoveStatus(startTouches, touches, time - startTime);\n            var mutliFingerStatus = void 0;\n            if (pinch || rotate) {\n                mutliFingerStatus = calcMutliFingerStatus(touches);\n            }\n            _this.setGestureState({\n                /* update status snapshot */\n                touches: touches,\n                mutliFingerStatus: mutliFingerStatus,\n                /* update duration status */\n                moveStatus: moveStatus\n            });\n        };\n        _this._handleTouchEnd = function (e) {\n            _this.triggerUserCb('end', e);\n            _this.event = e;\n            if (!_this.gesture) {\n                return;\n            }\n            _this.cleanPressTimer();\n            _this.updateGestureStatus(e);\n            _this.doSingleTouchEnd('end');\n            _this.checkIfMultiTouchEnd('end');\n        };\n        _this._handleTouchCancel = function (e) {\n            _this.triggerUserCb('cancel', e);\n            _this.event = e;\n            // Todo: wait to test cancel case\n            if (!_this.gesture) {\n                return;\n            }\n            _this.cleanPressTimer();\n            _this.updateGestureStatus(e);\n            _this.doSingleTouchEnd('cancel');\n            _this.checkIfMultiTouchEnd('cancel');\n        };\n        _this.triggerAllowEvent = function (type, status) {\n            if (_this.allowGesture()) {\n                _this.triggerCombineEvent(type, status);\n            } else {\n                _this.triggerSubEvent(type, status);\n            }\n        };\n        _this.doSingleTouchEnd = function (status) {\n            var _this$gesture5 = _this.gesture,\n                moveStatus = _this$gesture5.moveStatus,\n                pinch = _this$gesture5.pinch,\n                rotate = _this$gesture5.rotate,\n                press = _this$gesture5.press,\n                pan = _this$gesture5.pan,\n                direction = _this$gesture5.direction;\n\n            if (pinch || rotate) {\n                return;\n            }\n            if (moveStatus) {\n                var z = moveStatus.z,\n                    velocity = moveStatus.velocity;\n\n                var swipe = shouldTriggerSwipe(z, velocity);\n                _this.setGestureState({\n                    swipe: swipe\n                });\n                if (pan) {\n                    // pan need end, it's a process\n                    // sometimes, start with pan left, but end with pan right....\n                    _this.triggerAllowEvent('onPan', status);\n                }\n                if (swipe) {\n                    var directionEvName = getDirectionEventName(direction);\n                    // swipe just need a direction, it's a endpoint\n                    _this.triggerAllowEvent('onSwipe', directionEvName);\n                    return;\n                }\n            }\n            if (press) {\n                _this.triggerEvent('onPressUp');\n                return;\n            }\n            _this.triggerEvent('onTap');\n        };\n        _this.getTouchAction = function () {\n            var _this$props2 = _this.props,\n                enablePinch = _this$props2.enablePinch,\n                enableRotate = _this$props2.enableRotate;\n            var directionSetting = _this.directionSetting;\n\n            if (enablePinch || enableRotate || directionSetting === DIRECTION_ALL) {\n                return 'pan-x pan-y';\n            }\n            if (directionSetting === DIRECTION_VERTICAL) {\n                return 'pan-x';\n            }\n            if (directionSetting === DIRECTION_HORIZONTAL) {\n                return 'pan-y';\n            }\n            return 'auto';\n        };\n        _this.directionSetting = directionMap[props.direction];\n        return _this;\n    }\n\n    _createClass(Gesture, [{\n        key: 'componentWillUnmount',\n        value: function componentWillUnmount() {\n            this.cleanPressTimer();\n        }\n    }, {\n        key: 'render',\n        value: function render() {\n            var children = this.props.children;\n\n            var child = React.Children.only(children);\n            var touchAction = this.getTouchAction();\n            var events = {\n                onTouchStart: this._handleTouchStart,\n                onTouchMove: this._handleTouchMove,\n                onTouchCancel: this._handleTouchCancel,\n                onTouchEnd: this._handleTouchEnd\n            };\n            return React.cloneElement(child, _extends({}, events, { style: _extends({ touchAction: touchAction }, child.props.style || {}) }));\n        }\n    }]);\n\n    return Gesture;\n}(Component);\n\nexport default Gesture;\n\nGesture.defaultProps = {\n    enableRotate: false,\n    enablePinch: false,\n    direction: 'all'\n};"],"sourceRoot":""}