UNPKG

@tamagui/react-native-web-lite

Version:
85 lines (84 loc) 4.51 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: !0 }); }, __copyProps = (to, from, except, desc) => { if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod); var PanResponder_exports = {}; __export(PanResponder_exports, { default: () => PanResponder_default }); module.exports = __toCommonJS(PanResponder_exports); var currentCentroidXOfTouchesChangedAfter = function() { return 0; }, currentCentroidYOfTouchesChangedAfter = function() { return 0; }, previousCentroidXOfTouchesChangedAfter = function() { return 0; }, previousCentroidYOfTouchesChangedAfter = function() { return 0; }, PanResponder = { _initializeGestureState(gestureState) { gestureState.moveX = 0, gestureState.moveY = 0, gestureState.x0 = 0, gestureState.y0 = 0, gestureState.dx = 0, gestureState.dy = 0, gestureState.vx = 0, gestureState.vy = 0, gestureState.numberActiveTouches = 0, gestureState._accountsForMovesUpTo = 0; }, _updateGestureStateOnMove(gestureState, touchHistory) { gestureState.numberActiveTouches = touchHistory.numberActiveTouches, gestureState.moveX = currentCentroidXOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo), gestureState.moveY = currentCentroidYOfTouchesChangedAfter(touchHistory, gestureState._accountsForMovesUpTo); var movedAfter = gestureState._accountsForMovesUpTo, prevX = previousCentroidXOfTouchesChangedAfter(touchHistory, movedAfter), prevY = previousCentroidYOfTouchesChangedAfter(touchHistory, movedAfter), nextDX = gestureState.dx + (gestureState.moveX - prevX), nextDY = gestureState.dy + (gestureState.moveY - prevY), dt = touchHistory.mostRecentTimeStamp - gestureState._accountsForMovesUpTo; gestureState.vx = (nextDX - gestureState.dx) / dt, gestureState.vy = (nextDY - gestureState.dy) / dt, gestureState.dx = nextDX, gestureState.dy = nextDY, gestureState._accountsForMovesUpTo = touchHistory.mostRecentTimeStamp; }, create(config) { var _this = this, interactionState = { handle: null }, gestureState = { stateID: Math.random(), moveX: 0, moveY: 0, x0: 0, y0: 0, dx: 0, dy: 0, vx: 0, vy: 0, numberActiveTouches: 0, _accountsForMovesUpTo: 0 }, panHandlers = { onStartShouldSetResponder: function(evt) { return config.onStartShouldSetPanResponder ? config.onStartShouldSetPanResponder(evt, gestureState) : !1; }, onMoveShouldSetResponder: function(evt) { return config.onMoveShouldSetPanResponder ? config.onMoveShouldSetPanResponder(evt, gestureState) : !1; }, onResponderGrant: function(evt) { _this._initializeGestureState(gestureState), gestureState.x0 = evt.nativeEvent.pageX || 0, gestureState.y0 = evt.nativeEvent.pageY || 0, config.onPanResponderGrant && config.onPanResponderGrant(evt, gestureState); }, onResponderMove: function(evt) { evt.nativeEvent.touches && evt.nativeEvent.touches.length === 1 && _this._updateGestureStateOnMove(gestureState, evt.nativeEvent), config.onPanResponderMove && config.onPanResponderMove(evt, gestureState); }, onResponderRelease: function(evt) { config.onPanResponderRelease && config.onPanResponderRelease(evt, gestureState), interactionState.handle && (interactionState.handle = null); }, onResponderTerminate: function(evt) { config.onPanResponderTerminate && config.onPanResponderTerminate(evt, gestureState), interactionState.handle && (interactionState.handle = null); }, onResponderTerminationRequest: function(evt) { return config.onPanResponderTerminationRequest ? config.onPanResponderTerminationRequest(evt, gestureState) : !0; } }; return { panHandlers, getInteractionHandle() { return interactionState.handle; } }; } }, PanResponder_default = PanResponder; //# sourceMappingURL=index.js.map