react-native-gesture-handler 2.7.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/handlers/gestures/GestureDetector.js +9 -2
- package/lib/commonjs/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/commonjs/handlers/gestures/gestureComposition.js +15 -4
- package/lib/commonjs/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +18 -14
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +8 -4
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +2 -0
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +1 -4
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +2 -2
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector.js +9 -2
- package/lib/module/handlers/gestures/GestureDetector.js.map +1 -1
- package/lib/module/handlers/gestures/gestureComposition.js +15 -4
- package/lib/module/handlers/gestures/gestureComposition.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +18 -14
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +8 -3
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +2 -0
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +1 -4
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +2 -2
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/typescript/web/handlers/FlingGestureHandler.d.ts +1 -0
- package/lib/typescript/web/handlers/GestureHandler.d.ts +1 -0
- package/package.json +1 -1
- package/src/handlers/gestures/GestureDetector.tsx +10 -3
- package/src/handlers/gestures/gestureComposition.ts +19 -6
- package/src/web/handlers/FlingGestureHandler.ts +26 -17
- package/src/web/handlers/GestureHandler.ts +12 -6
- package/src/web/handlers/LongPressGestureHandler.ts +2 -0
- package/src/web/handlers/NativeViewGestureHandler.ts +1 -4
- package/src/web/handlers/PanGestureHandler.ts +2 -2
- package/ios/RNGestureHandler.xcodeproj/project.xcworkspace/xcuserdata/jakubpiasecki.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/RNGestureHandler.xcodeproj/xcuserdata/jakubpiasecki.xcuserdatad/xcschemes/xcschememanagement.plist +0 -19
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["GestureHandler.ts"],"names":["findNodeHandle","State","PointerType","TouchEventType","EventTypes","GestureHandlerOrchestrator","InteractionManager","PointerEventManager","PointerTracker","TouchEventManager","isPointerInBounds","GestureHandler","constructor","UNDETERMINED","enabled","NONE","newState","oldState","onGestureHandlerEvent","onGestureHandlerStateChange","propsRef","current","resultEvent","transformEventData","lastSentState","invokeNullableMethod","currentState","ACTIVE","nativeEvent","undefined","hasCustomActivationCriteria","init","ref","setView","addEventManager","view","Error","handlerTag","style","manager","setOnPointerDown","onPointerDown","bind","setOnPointerAdd","onPointerAdd","setOnPointerUp","onPointerUp","setOnPointerRemove","onPointerRemove","setOnPointerMove","onPointerMove","setOnPointerEnter","onPointerEnter","setOnPointerOut","onPointerOut","setOnPointerCancel","onPointerCancel","setOnPointerOutOfBounds","onPointerOutOfBounds","setListeners","eventManagers","push","onCancel","onReset","resetProgress","reset","tracker","resetTracker","forEach","resetManager","moveToState","sendIfDisabled","getTrackedPointersCount","config","needsPointerData","END","CANCELLED","FAILED","cancelTouches","getInstance","onHandlerStateChange","onStateChange","_newState","_oldState","begin","checkHitSlop","BEGAN","fail","cursor","cancel","activate","_force","end","isAwaiting","awaiting","setAwaiting","value","isActive","active","setActive","getShouldResetProgress","shouldResetProgress","setShouldResetProgress","getActivationIndex","activationIndex","setActivationIndex","shouldWaitForHandlerFailure","handler","shouldRequireToWaitForFailure","shouldRequireHandlerToWaitForFailure","shouldRecognizeSimultaneously","shouldBeCancelledByOther","shouldHandlerBeCancelledBy","event","recordHandlerIfNotPresent","pointerType","TOUCH","cancelMouseAndPenGestures","sendTouchEvent","tryToSendMoveEvent","out","shouldCancellWhenOutside","sendEvent","touchEvent","transformTouchEvent","numberOfPointers","state","pointerInside","x","getLastAvgX","y","getLastAvgY","transformNativeEvent","target","timeStamp","Date","now","rect","getBoundingClientRect","all","changed","trackerData","getData","size","has","pointerId","element","key","id","getMappedTouchEventId","lastX","left","lastY","top","absoluteX","absoluteY","eventType","CANCEL","DOWN","ADDITIONAL_POINTER_DOWN","UP","ADDITIONAL_POINTER_UP","MOVE","numberOfTouches","length","touchEventType","changedTouches","allTouches","cancelEvent","updateGestureConfig","props","validateHitSlops","removeHandlerFromOrchestrator","checkCustomActivationCriteria","criterias","indexOf","hitSlop","right","width","height","bottom","horizontal","vertical","offsetX","getLastX","offsetY","getLastY","resetConfig","getTag","setTag","tag","getConfig","getShouldEnableGestureOnSetup","getView","getEventManagers","getTracker","getTrackedPointersID","getState","isEnabled","setShouldCancelWhenOutside","shouldCancel","getShouldCancelWhenOutside","getPointerType","method","__getHandler","argMapping","__nodeConfig","Array","isArray","index","entries","nativeValue","setValue"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport { findNodeHandle } from 'react-native';\nimport { State } from '../../State';\nimport {\n Config,\n AdaptedEvent,\n PropsRef,\n ResultEvent,\n PointerData,\n ResultTouchEvent,\n PointerType,\n TouchEventType,\n EventTypes,\n} from '../interfaces';\nimport EventManager from '../tools/EventManager';\nimport GestureHandlerOrchestrator from '../tools/GestureHandlerOrchestrator';\nimport InteractionManager from '../tools/InteractionManager';\nimport PointerEventManager from '../tools/PointerEventManager';\nimport PointerTracker, { TrackerElement } from '../tools/PointerTracker';\nimport TouchEventManager from '../tools/TouchEventManager';\nimport { isPointerInBounds } from '../utils';\n\nexport default abstract class GestureHandler {\n private lastSentState: State | null = null;\n protected currentState: State = State.UNDETERMINED;\n\n protected shouldCancellWhenOutside = false;\n protected hasCustomActivationCriteria: boolean;\n protected enabled = false;\n\n private ref!: number;\n private propsRef!: React.RefObject<unknown>;\n private handlerTag!: number;\n protected config: Config = { enabled: false };\n protected view!: HTMLElement;\n\n protected eventManagers: EventManager[] = [];\n protected tracker: PointerTracker = new PointerTracker();\n\n // Orchestrator properties\n protected activationIndex = 0;\n protected awaiting = false;\n protected active = false;\n protected shouldResetProgress = false;\n protected pointerType: PointerType = PointerType.NONE;\n\n public constructor() {\n this.hasCustomActivationCriteria = false;\n }\n\n //\n // Initializing handler\n //\n\n protected init(ref: number, propsRef: React.RefObject<unknown>) {\n this.propsRef = propsRef;\n this.ref = ref;\n\n this.currentState = State.UNDETERMINED;\n\n this.setView();\n this.addEventManager(new PointerEventManager(this.view));\n this.addEventManager(new TouchEventManager(this.view));\n }\n\n private setView() {\n if (!this.ref) {\n throw new Error(\n `Cannot find HTML Element for handler ${this.handlerTag}`\n );\n }\n\n this.view = (findNodeHandle(this.ref) as unknown) as HTMLElement;\n this.view.style['touchAction'] = 'none';\n this.view.style['webkitUserSelect'] = 'none';\n this.view.style['userSelect'] = 'none';\n\n //@ts-ignore This one disables default events on Safari\n this.view.style['WebkitTouchCallout'] = 'none';\n }\n\n private addEventManager(manager: EventManager): void {\n manager.setOnPointerDown(this.onPointerDown.bind(this));\n manager.setOnPointerAdd(this.onPointerAdd.bind(this));\n manager.setOnPointerUp(this.onPointerUp.bind(this));\n manager.setOnPointerRemove(this.onPointerRemove.bind(this));\n manager.setOnPointerMove(this.onPointerMove.bind(this));\n manager.setOnPointerEnter(this.onPointerEnter.bind(this));\n manager.setOnPointerOut(this.onPointerOut.bind(this));\n manager.setOnPointerCancel(this.onPointerCancel.bind(this));\n manager.setOnPointerOutOfBounds(this.onPointerOutOfBounds.bind(this));\n manager.setListeners();\n\n this.eventManagers.push(manager);\n }\n\n //\n // Resetting handler\n //\n\n protected onCancel(): void {}\n protected onReset(): void {}\n protected resetProgress(): void {}\n\n public reset(): void {\n this.tracker.resetTracker();\n this.onReset();\n this.resetProgress();\n this.eventManagers.forEach((manager: EventManager) =>\n manager.resetManager()\n );\n this.currentState = State.UNDETERMINED;\n }\n\n //\n // State logic\n //\n\n public moveToState(newState: State, sendIfDisabled?: boolean) {\n if (this.currentState === newState) {\n return;\n }\n\n if (\n this.tracker.getTrackedPointersCount() > 0 &&\n this.config.needsPointerData &&\n (newState === State.END ||\n newState === State.CANCELLED ||\n newState === State.FAILED)\n ) {\n this.cancelTouches();\n }\n\n const oldState = this.currentState;\n this.currentState = newState;\n\n GestureHandlerOrchestrator.getInstance().onHandlerStateChange(\n this,\n newState,\n oldState,\n sendIfDisabled\n );\n\n this.onStateChange(newState, oldState);\n }\n\n protected onStateChange(_newState: State, _oldState: State): void {}\n\n public begin(): void {\n if (!this.checkHitSlop()) {\n return;\n }\n\n if (this.currentState === State.UNDETERMINED) {\n this.moveToState(State.BEGAN);\n }\n }\n\n /**\n * @param {boolean} sendIfDisabled - Used when handler becomes disabled. With this flag orchestrator will be forced to send fail event\n */\n public fail(sendIfDisabled?: boolean): void {\n if (\n this.currentState === State.ACTIVE ||\n this.currentState === State.BEGAN\n ) {\n this.moveToState(State.FAILED, sendIfDisabled);\n this.view.style.cursor = 'auto';\n }\n\n this.resetProgress();\n }\n\n /**\n * @param {boolean} sendIfDisabled - Used when handler becomes disabled. With this flag orchestrator will be forced to send cancel event\n */\n public cancel(sendIfDisabled?: boolean): void {\n if (\n this.currentState === State.ACTIVE ||\n this.currentState === State.UNDETERMINED ||\n this.currentState === State.BEGAN\n ) {\n this.onCancel();\n this.moveToState(State.CANCELLED, sendIfDisabled);\n this.view.style.cursor = 'auto';\n }\n }\n\n public activate(_force = false) {\n if (\n this.currentState === State.UNDETERMINED ||\n this.currentState === State.BEGAN\n ) {\n this.moveToState(State.ACTIVE);\n this.view.style.cursor = 'grab';\n }\n }\n\n public end() {\n if (\n this.currentState === State.BEGAN ||\n this.currentState === State.ACTIVE\n ) {\n this.moveToState(State.END);\n this.view.style.cursor = 'auto';\n }\n\n this.resetProgress();\n }\n\n //\n // Methods for orchestrator\n //\n\n public isAwaiting(): boolean {\n return this.awaiting;\n }\n public setAwaiting(value: boolean): void {\n this.awaiting = value;\n }\n\n public isActive(): boolean {\n return this.active;\n }\n public setActive(value: boolean): void {\n this.active = value;\n }\n\n public getShouldResetProgress(): boolean {\n return this.shouldResetProgress;\n }\n public setShouldResetProgress(value: boolean): void {\n this.shouldResetProgress = value;\n }\n\n public getActivationIndex(): number {\n return this.activationIndex;\n }\n public setActivationIndex(value: number): void {\n this.activationIndex = value;\n }\n\n public shouldWaitForHandlerFailure(handler: GestureHandler): boolean {\n if (handler === this) {\n return false;\n }\n\n return InteractionManager.getInstance().shouldWaitForHandlerFailure(\n this,\n handler\n );\n }\n\n public shouldRequireToWaitForFailure(handler: GestureHandler): boolean {\n if (handler === this) {\n return false;\n }\n\n return InteractionManager.getInstance().shouldRequireHandlerToWaitForFailure(\n this,\n handler\n );\n }\n\n public shouldRecognizeSimultaneously(handler: GestureHandler): boolean {\n if (handler === this) {\n return true;\n }\n\n return InteractionManager.getInstance().shouldRecognizeSimultaneously(\n this,\n handler\n );\n }\n\n public shouldBeCancelledByOther(handler: GestureHandler): boolean {\n if (handler === this) {\n return false;\n }\n\n return InteractionManager.getInstance().shouldHandlerBeCancelledBy(\n this,\n handler\n );\n }\n\n //\n // Event actions\n //\n\n protected onPointerDown(event: AdaptedEvent): void {\n GestureHandlerOrchestrator.getInstance().recordHandlerIfNotPresent(this);\n this.pointerType = event.pointerType;\n\n if (this.pointerType === PointerType.TOUCH) {\n GestureHandlerOrchestrator.getInstance().cancelMouseAndPenGestures(this);\n }\n\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n // Adding another pointer to existing ones\n protected onPointerAdd(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerUp(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n // Removing pointer, when there is more than one pointers\n protected onPointerRemove(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerMove(event: AdaptedEvent): void {\n this.tryToSendMoveEvent(false);\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerOut(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerEnter(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerCancel(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n this.tryToSendMoveEvent(true);\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n private tryToSendMoveEvent(out: boolean): void {\n if (\n this.enabled &&\n this.active &&\n (!out || (out && !this.shouldCancellWhenOutside))\n ) {\n this.sendEvent(this.currentState, this.currentState);\n }\n }\n\n public sendTouchEvent(event: AdaptedEvent): void {\n if (!this.enabled) {\n return;\n }\n\n const { onGestureHandlerEvent }: PropsRef = this.propsRef\n .current as PropsRef;\n\n const touchEvent: ResultTouchEvent | undefined = this.transformTouchEvent(\n event\n );\n\n if (touchEvent) {\n invokeNullableMethod(onGestureHandlerEvent, touchEvent);\n }\n }\n\n //\n // Events Sending\n //\n\n public sendEvent = (newState: State, oldState: State): void => {\n const {\n onGestureHandlerEvent,\n onGestureHandlerStateChange,\n }: PropsRef = this.propsRef.current as PropsRef;\n\n const resultEvent: ResultEvent = this.transformEventData(\n newState,\n oldState\n );\n\n // In the new API oldState field has to be undefined, unless we send event state changed\n // Here the order is flipped to avoid workarounds such as making backup of the state and setting it to undefined first, then changing it back\n // Flipping order with setting oldState to undefined solves issue, when events were being sent twice instead of once\n // However, this may cause trouble in the future (but for now we don't know that)\n\n if (this.lastSentState !== newState) {\n this.lastSentState = newState;\n invokeNullableMethod(onGestureHandlerStateChange, resultEvent);\n }\n if (this.currentState === State.ACTIVE) {\n resultEvent.nativeEvent.oldState = undefined;\n invokeNullableMethod(onGestureHandlerEvent, resultEvent);\n }\n };\n\n private transformEventData(newState: State, oldState: State): ResultEvent {\n return {\n nativeEvent: {\n numberOfPointers: this.tracker.getTrackedPointersCount(),\n state: newState,\n pointerInside: isPointerInBounds(this.view, {\n x: this.tracker.getLastAvgX(),\n y: this.tracker.getLastAvgY(),\n }),\n ...this.transformNativeEvent(),\n handlerTag: this.handlerTag,\n target: this.ref,\n oldState: newState !== oldState ? oldState : undefined,\n },\n timeStamp: Date.now(),\n };\n }\n\n private transformTouchEvent(\n event: AdaptedEvent\n ): ResultTouchEvent | undefined {\n const rect = this.view.getBoundingClientRect();\n\n const all: PointerData[] = [];\n const changed: PointerData[] = [];\n\n const trackerData = this.tracker.getData();\n\n // This if handles edge case where all pointers have been cancelled\n // When pointercancel is triggered, reset method is called. This means that tracker will be reset after first pointer being cancelled\n // The problem is, that handler will receive another pointercancel event from the rest of the pointers\n // To avoid crashing, we don't send event if tracker tracks no pointers, i.e. has been reset\n if (trackerData.size === 0 || !trackerData.has(event.pointerId)) {\n return;\n }\n\n trackerData.forEach((element: TrackerElement, key: number): void => {\n const id: number = this.tracker.getMappedTouchEventId(key);\n\n all.push({\n id: id,\n x: element.lastX - rect.left,\n y: element.lastY - rect.top,\n absoluteX: element.lastX,\n absoluteY: element.lastY,\n });\n });\n\n // Each pointer sends its own event, so we want changed touches to contain only the pointer that has changed.\n // However, if the event is cancel, we want to cancel all pointers to avoid crashes\n if (event.eventType !== EventTypes.CANCEL) {\n changed.push({\n id: this.tracker.getMappedTouchEventId(event.pointerId),\n x: event.x - rect.left,\n y: event.y - rect.top,\n absoluteX: event.x,\n absoluteY: event.y,\n });\n } else {\n trackerData.forEach((element: TrackerElement, key: number): void => {\n const id: number = this.tracker.getMappedTouchEventId(key);\n\n changed.push({\n id: id,\n x: element.lastX - rect.left,\n y: element.lastY - rect.top,\n absoluteX: element.lastX,\n absoluteY: element.lastY,\n });\n });\n }\n\n let eventType: TouchEventType = TouchEventType.UNDETERMINED;\n\n switch (event.eventType) {\n case EventTypes.DOWN:\n case EventTypes.ADDITIONAL_POINTER_DOWN:\n eventType = TouchEventType.DOWN;\n break;\n case EventTypes.UP:\n case EventTypes.ADDITIONAL_POINTER_UP:\n eventType = TouchEventType.UP;\n break;\n case EventTypes.MOVE:\n eventType = TouchEventType.MOVE;\n break;\n case EventTypes.CANCEL:\n eventType = TouchEventType.CANCELLED;\n break;\n }\n\n // Here, when we receive up event, we want to decrease number of touches\n // That's because we want handler to send information that there's one pointer less\n // However, we still want this pointer to be present in allTouches array, so that its data can be accessed\n let numberOfTouches: number = all.length;\n\n if (\n event.eventType === EventTypes.UP ||\n event.eventType === EventTypes.ADDITIONAL_POINTER_UP\n ) {\n --numberOfTouches;\n }\n\n return {\n nativeEvent: {\n handlerTag: this.handlerTag,\n state: this.currentState,\n eventType: event.touchEventType ?? eventType,\n changedTouches: changed,\n allTouches: all,\n numberOfTouches: numberOfTouches,\n },\n timeStamp: Date.now(),\n };\n }\n\n private cancelTouches(): void {\n const rect = this.view.getBoundingClientRect();\n\n const all: PointerData[] = [];\n const changed: PointerData[] = [];\n\n const trackerData = this.tracker.getData();\n\n if (trackerData.size === 0) {\n return;\n }\n\n trackerData.forEach((element: TrackerElement, key: number): void => {\n const id: number = this.tracker.getMappedTouchEventId(key);\n\n all.push({\n id: id,\n x: element.lastX - rect.left,\n y: element.lastY - rect.top,\n absoluteX: element.lastX,\n absoluteY: element.lastY,\n });\n\n changed.push({\n id: id,\n x: element.lastX - rect.left,\n y: element.lastY - rect.top,\n absoluteX: element.lastX,\n absoluteY: element.lastY,\n });\n });\n\n const cancelEvent: ResultTouchEvent = {\n nativeEvent: {\n handlerTag: this.handlerTag,\n state: this.currentState,\n eventType: TouchEventType.CANCELLED,\n changedTouches: changed,\n allTouches: all,\n numberOfTouches: all.length,\n },\n timeStamp: Date.now(),\n };\n\n const { onGestureHandlerEvent }: PropsRef = this.propsRef\n .current as PropsRef;\n\n invokeNullableMethod(onGestureHandlerEvent, cancelEvent);\n }\n\n protected transformNativeEvent() {\n return {};\n }\n\n //\n // Handling config\n //\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n this.config = { enabled: enabled, ...props };\n this.enabled = enabled;\n this.validateHitSlops();\n\n if (this.enabled) {\n return;\n }\n\n switch (this.currentState) {\n case State.ACTIVE:\n this.fail(true);\n break;\n case State.UNDETERMINED:\n GestureHandlerOrchestrator.getInstance().removeHandlerFromOrchestrator(\n this\n );\n break;\n default:\n this.cancel(true);\n break;\n }\n }\n\n protected checkCustomActivationCriteria(criterias: string[]): void {\n for (const key in this.config) {\n if (criterias.indexOf(key) >= 0) {\n this.hasCustomActivationCriteria = true;\n }\n }\n }\n\n private validateHitSlops(): void {\n if (!this.config.hitSlop) {\n return;\n }\n\n if (\n this.config.hitSlop.left !== undefined &&\n this.config.hitSlop.right !== undefined &&\n this.config.hitSlop.width !== undefined\n ) {\n throw new Error(\n 'HitSlop Error: Cannot define left, right and width at the same time'\n );\n }\n\n if (\n this.config.hitSlop.width !== undefined &&\n this.config.hitSlop.left === undefined &&\n this.config.hitSlop.right === undefined\n ) {\n throw new Error(\n 'HitSlop Error: When width is defined, either left or right has to be defined'\n );\n }\n\n if (\n this.config.hitSlop.height !== undefined &&\n this.config.hitSlop.top !== undefined &&\n this.config.hitSlop.bottom !== undefined\n ) {\n throw new Error(\n 'HitSlop Error: Cannot define top, bottom and height at the same time'\n );\n }\n\n if (\n this.config.hitSlop.height !== undefined &&\n this.config.hitSlop.top === undefined &&\n this.config.hitSlop.bottom === undefined\n ) {\n throw new Error(\n 'HitSlop Error: When height is defined, either top or bottom has to be defined'\n );\n }\n }\n\n private checkHitSlop(): boolean {\n if (!this.config.hitSlop) {\n return true;\n }\n\n const width = this.view.getBoundingClientRect().width;\n const height = this.view.getBoundingClientRect().height;\n\n let left = 0;\n let top = 0;\n let right: number = width;\n let bottom: number = height;\n\n if (this.config.hitSlop.horizontal !== undefined) {\n left -= this.config.hitSlop.horizontal;\n right += this.config.hitSlop.horizontal;\n }\n\n if (this.config.hitSlop.vertical !== undefined) {\n top -= this.config.hitSlop.vertical;\n bottom += this.config.hitSlop.vertical;\n }\n\n if (this.config.hitSlop.left !== undefined) {\n left = -this.config.hitSlop.left;\n }\n\n if (this.config.hitSlop.right !== undefined) {\n right = width + this.config.hitSlop.right;\n }\n\n if (this.config.hitSlop.top !== undefined) {\n top = -this.config.hitSlop.top;\n }\n\n if (this.config.hitSlop.bottom !== undefined) {\n bottom = width + this.config.hitSlop.bottom;\n }\n if (this.config.hitSlop.width !== undefined) {\n if (this.config.hitSlop.left !== undefined) {\n right = left + this.config.hitSlop.width;\n } else if (this.config.hitSlop.right !== undefined) {\n left = right - this.config.hitSlop.width;\n }\n }\n\n if (this.config.hitSlop.height !== undefined) {\n if (this.config.hitSlop.top !== undefined) {\n bottom = top + this.config.hitSlop.height;\n } else if (this.config.hitSlop.bottom !== undefined) {\n top = bottom - this.config.hitSlop.height;\n }\n }\n\n const rect: DOMRect = this.view.getBoundingClientRect();\n const offsetX: number = this.tracker.getLastX() - rect.left;\n const offsetY: number = this.tracker.getLastY() - rect.top;\n\n if (\n offsetX >= left &&\n offsetX <= right &&\n offsetY >= top &&\n offsetY <= bottom\n ) {\n return true;\n }\n return false;\n }\n\n public isPointerInBounds({ x, y }: { x: number; y: number }): boolean {\n const rect: DOMRect = this.view.getBoundingClientRect();\n\n return (\n x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom\n );\n }\n\n protected resetConfig(): void {}\n\n //\n // Getters and setters\n //\n\n public getTag(): number {\n return this.handlerTag;\n }\n public setTag(tag: number): void {\n this.handlerTag = tag;\n }\n\n protected getConfig() {\n return this.config;\n }\n\n public getShouldEnableGestureOnSetup(): boolean {\n throw new Error('Must override GestureHandler.shouldEnableGestureOnSetup');\n }\n\n public getView(): HTMLElement {\n return this.view;\n }\n\n public getEventManagers(): EventManager[] {\n return this.eventManagers;\n }\n\n public getTracker(): PointerTracker {\n return this.tracker;\n }\n\n public getTrackedPointersID(): number[] {\n return this.tracker.getTrackedPointersID();\n }\n\n public getState(): State {\n return this.currentState;\n }\n\n public isEnabled(): boolean {\n return this.enabled;\n }\n\n protected setShouldCancelWhenOutside(shouldCancel: boolean) {\n this.shouldCancellWhenOutside = shouldCancel;\n }\n protected getShouldCancelWhenOutside(): boolean {\n return this.shouldCancellWhenOutside;\n }\n\n public getPointerType(): PointerType {\n return this.pointerType;\n }\n}\n\nfunction invokeNullableMethod(\n method:\n | ((event: ResultEvent | ResultTouchEvent) => void)\n | { __getHandler: () => (event: ResultEvent | ResultTouchEvent) => void }\n | { __nodeConfig: { argMapping: unknown[] } },\n event: ResultEvent | ResultTouchEvent\n): void {\n if (!method) {\n return;\n }\n\n if (typeof method === 'function') {\n method(event);\n return;\n }\n\n if ('__getHandler' in method && typeof method.__getHandler === 'function') {\n const handler = method.__getHandler();\n invokeNullableMethod(handler, event);\n return;\n }\n\n if (!('__nodeConfig' in method)) {\n return;\n }\n\n const { argMapping } = method.__nodeConfig;\n if (!Array.isArray(argMapping)) {\n return;\n }\n\n for (const [index, [key, value]] of argMapping.entries()) {\n if (!(key in event.nativeEvent)) {\n continue;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const nativeValue = event.nativeEvent[key];\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (value?.setValue) {\n //Reanimated API\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n value.setValue(nativeValue);\n } else {\n //RN Animated API\n method.__nodeConfig.argMapping[index] = [key, nativeValue];\n }\n }\n\n return;\n}\n"]}
|
1
|
+
{"version":3,"sources":["GestureHandler.ts"],"names":["findNodeHandle","State","PointerType","TouchEventType","EventTypes","GestureHandlerOrchestrator","InteractionManager","PointerEventManager","PointerTracker","TouchEventManager","isPointerInBounds","GestureHandler","constructor","UNDETERMINED","enabled","NONE","newState","oldState","onGestureHandlerEvent","onGestureHandlerStateChange","propsRef","current","resultEvent","transformEventData","lastSentState","invokeNullableMethod","currentState","ACTIVE","nativeEvent","undefined","hasCustomActivationCriteria","init","ref","setView","addEventManager","view","Error","handlerTag","style","manager","setOnPointerDown","onPointerDown","bind","setOnPointerAdd","onPointerAdd","setOnPointerUp","onPointerUp","setOnPointerRemove","onPointerRemove","setOnPointerMove","onPointerMove","setOnPointerEnter","onPointerEnter","setOnPointerOut","onPointerOut","setOnPointerCancel","onPointerCancel","setOnPointerOutOfBounds","onPointerOutOfBounds","setListeners","eventManagers","push","onCancel","onReset","resetProgress","reset","tracker","resetTracker","forEach","resetManager","moveToState","sendIfDisabled","getTrackedPointersCount","config","needsPointerData","isFinished","cancelTouches","getInstance","onHandlerStateChange","onStateChange","_newState","_oldState","begin","checkHitSlop","BEGAN","fail","FAILED","cursor","cancel","CANCELLED","activate","_force","end","END","isAwaiting","awaiting","setAwaiting","value","isActive","active","setActive","getShouldResetProgress","shouldResetProgress","setShouldResetProgress","getActivationIndex","activationIndex","setActivationIndex","shouldWaitForHandlerFailure","handler","shouldRequireToWaitForFailure","shouldRequireHandlerToWaitForFailure","shouldRecognizeSimultaneously","shouldBeCancelledByOther","shouldHandlerBeCancelledBy","event","recordHandlerIfNotPresent","pointerType","TOUCH","cancelMouseAndPenGestures","sendTouchEvent","tryToSendMoveEvent","out","shouldCancellWhenOutside","sendEvent","touchEvent","transformTouchEvent","numberOfPointers","state","pointerInside","x","getLastAvgX","y","getLastAvgY","transformNativeEvent","target","timeStamp","Date","now","rect","getBoundingClientRect","all","changed","trackerData","getData","size","has","pointerId","element","key","id","getMappedTouchEventId","lastX","left","lastY","top","absoluteX","absoluteY","eventType","CANCEL","DOWN","ADDITIONAL_POINTER_DOWN","UP","ADDITIONAL_POINTER_UP","MOVE","numberOfTouches","length","touchEventType","changedTouches","allTouches","cancelEvent","updateGestureConfig","props","validateHitSlops","removeHandlerFromOrchestrator","checkCustomActivationCriteria","criterias","indexOf","hitSlop","right","width","height","bottom","horizontal","vertical","offsetX","getLastX","offsetY","getLastY","resetConfig","getTag","setTag","tag","getConfig","getShouldEnableGestureOnSetup","getView","getEventManagers","getTracker","getTrackedPointersID","getState","isEnabled","setShouldCancelWhenOutside","shouldCancel","getShouldCancelWhenOutside","getPointerType","method","__getHandler","argMapping","__nodeConfig","Array","isArray","index","entries","nativeValue","setValue"],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport { findNodeHandle } from 'react-native';\nimport { State } from '../../State';\nimport {\n Config,\n AdaptedEvent,\n PropsRef,\n ResultEvent,\n PointerData,\n ResultTouchEvent,\n PointerType,\n TouchEventType,\n EventTypes,\n} from '../interfaces';\nimport EventManager from '../tools/EventManager';\nimport GestureHandlerOrchestrator from '../tools/GestureHandlerOrchestrator';\nimport InteractionManager from '../tools/InteractionManager';\nimport PointerEventManager from '../tools/PointerEventManager';\nimport PointerTracker, { TrackerElement } from '../tools/PointerTracker';\nimport TouchEventManager from '../tools/TouchEventManager';\nimport { isPointerInBounds } from '../utils';\n\nexport default abstract class GestureHandler {\n private lastSentState: State | null = null;\n protected currentState: State = State.UNDETERMINED;\n\n protected shouldCancellWhenOutside = false;\n protected hasCustomActivationCriteria: boolean;\n protected enabled = false;\n\n private ref!: number;\n private propsRef!: React.RefObject<unknown>;\n private handlerTag!: number;\n protected config: Config = { enabled: false };\n protected view!: HTMLElement;\n\n protected eventManagers: EventManager[] = [];\n protected tracker: PointerTracker = new PointerTracker();\n\n // Orchestrator properties\n protected activationIndex = 0;\n protected awaiting = false;\n protected active = false;\n protected shouldResetProgress = false;\n protected pointerType: PointerType = PointerType.NONE;\n\n public constructor() {\n this.hasCustomActivationCriteria = false;\n }\n\n //\n // Initializing handler\n //\n\n protected init(ref: number, propsRef: React.RefObject<unknown>) {\n this.propsRef = propsRef;\n this.ref = ref;\n\n this.currentState = State.UNDETERMINED;\n\n this.setView();\n this.addEventManager(new PointerEventManager(this.view));\n this.addEventManager(new TouchEventManager(this.view));\n }\n\n private setView() {\n if (!this.ref) {\n throw new Error(\n `Cannot find HTML Element for handler ${this.handlerTag}`\n );\n }\n\n this.view = (findNodeHandle(this.ref) as unknown) as HTMLElement;\n this.view.style['touchAction'] = 'none';\n this.view.style['webkitUserSelect'] = 'none';\n this.view.style['userSelect'] = 'none';\n\n //@ts-ignore This one disables default events on Safari\n this.view.style['WebkitTouchCallout'] = 'none';\n }\n\n private addEventManager(manager: EventManager): void {\n manager.setOnPointerDown(this.onPointerDown.bind(this));\n manager.setOnPointerAdd(this.onPointerAdd.bind(this));\n manager.setOnPointerUp(this.onPointerUp.bind(this));\n manager.setOnPointerRemove(this.onPointerRemove.bind(this));\n manager.setOnPointerMove(this.onPointerMove.bind(this));\n manager.setOnPointerEnter(this.onPointerEnter.bind(this));\n manager.setOnPointerOut(this.onPointerOut.bind(this));\n manager.setOnPointerCancel(this.onPointerCancel.bind(this));\n manager.setOnPointerOutOfBounds(this.onPointerOutOfBounds.bind(this));\n manager.setListeners();\n\n this.eventManagers.push(manager);\n }\n\n //\n // Resetting handler\n //\n\n protected onCancel(): void {}\n protected onReset(): void {}\n protected resetProgress(): void {}\n\n public reset(): void {\n this.tracker.resetTracker();\n this.onReset();\n this.resetProgress();\n this.eventManagers.forEach((manager: EventManager) =>\n manager.resetManager()\n );\n this.currentState = State.UNDETERMINED;\n }\n\n //\n // State logic\n //\n\n public moveToState(newState: State, sendIfDisabled?: boolean) {\n if (this.currentState === newState) {\n return;\n }\n\n const oldState = this.currentState;\n this.currentState = newState;\n\n if (\n this.tracker.getTrackedPointersCount() > 0 &&\n this.config.needsPointerData &&\n this.isFinished()\n ) {\n this.cancelTouches();\n }\n\n GestureHandlerOrchestrator.getInstance().onHandlerStateChange(\n this,\n newState,\n oldState,\n sendIfDisabled\n );\n\n this.onStateChange(newState, oldState);\n }\n\n protected onStateChange(_newState: State, _oldState: State): void {}\n\n public begin(): void {\n if (!this.checkHitSlop()) {\n return;\n }\n\n if (this.currentState === State.UNDETERMINED) {\n this.moveToState(State.BEGAN);\n }\n }\n\n /**\n * @param {boolean} sendIfDisabled - Used when handler becomes disabled. With this flag orchestrator will be forced to send fail event\n */\n public fail(sendIfDisabled?: boolean): void {\n if (\n this.currentState === State.ACTIVE ||\n this.currentState === State.BEGAN\n ) {\n this.moveToState(State.FAILED, sendIfDisabled);\n this.view.style.cursor = 'auto';\n }\n\n this.resetProgress();\n }\n\n /**\n * @param {boolean} sendIfDisabled - Used when handler becomes disabled. With this flag orchestrator will be forced to send cancel event\n */\n public cancel(sendIfDisabled?: boolean): void {\n if (\n this.currentState === State.ACTIVE ||\n this.currentState === State.UNDETERMINED ||\n this.currentState === State.BEGAN\n ) {\n this.onCancel();\n this.moveToState(State.CANCELLED, sendIfDisabled);\n this.view.style.cursor = 'auto';\n }\n }\n\n public activate(_force = false) {\n if (\n this.currentState === State.UNDETERMINED ||\n this.currentState === State.BEGAN\n ) {\n this.moveToState(State.ACTIVE);\n this.view.style.cursor = 'grab';\n }\n }\n\n public end() {\n if (\n this.currentState === State.BEGAN ||\n this.currentState === State.ACTIVE\n ) {\n this.moveToState(State.END);\n this.view.style.cursor = 'auto';\n }\n\n this.resetProgress();\n }\n\n //\n // Methods for orchestrator\n //\n\n public isAwaiting(): boolean {\n return this.awaiting;\n }\n public setAwaiting(value: boolean): void {\n this.awaiting = value;\n }\n\n public isActive(): boolean {\n return this.active;\n }\n public setActive(value: boolean): void {\n this.active = value;\n }\n\n public getShouldResetProgress(): boolean {\n return this.shouldResetProgress;\n }\n public setShouldResetProgress(value: boolean): void {\n this.shouldResetProgress = value;\n }\n\n public getActivationIndex(): number {\n return this.activationIndex;\n }\n public setActivationIndex(value: number): void {\n this.activationIndex = value;\n }\n\n public shouldWaitForHandlerFailure(handler: GestureHandler): boolean {\n if (handler === this) {\n return false;\n }\n\n return InteractionManager.getInstance().shouldWaitForHandlerFailure(\n this,\n handler\n );\n }\n\n public shouldRequireToWaitForFailure(handler: GestureHandler): boolean {\n if (handler === this) {\n return false;\n }\n\n return InteractionManager.getInstance().shouldRequireHandlerToWaitForFailure(\n this,\n handler\n );\n }\n\n public shouldRecognizeSimultaneously(handler: GestureHandler): boolean {\n if (handler === this) {\n return true;\n }\n\n return InteractionManager.getInstance().shouldRecognizeSimultaneously(\n this,\n handler\n );\n }\n\n public shouldBeCancelledByOther(handler: GestureHandler): boolean {\n if (handler === this) {\n return false;\n }\n\n return InteractionManager.getInstance().shouldHandlerBeCancelledBy(\n this,\n handler\n );\n }\n\n //\n // Event actions\n //\n\n protected onPointerDown(event: AdaptedEvent): void {\n GestureHandlerOrchestrator.getInstance().recordHandlerIfNotPresent(this);\n this.pointerType = event.pointerType;\n\n if (this.pointerType === PointerType.TOUCH) {\n GestureHandlerOrchestrator.getInstance().cancelMouseAndPenGestures(this);\n }\n\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n // Adding another pointer to existing ones\n protected onPointerAdd(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerUp(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n // Removing pointer, when there is more than one pointers\n protected onPointerRemove(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerMove(event: AdaptedEvent): void {\n this.tryToSendMoveEvent(false);\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerOut(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerEnter(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerCancel(event: AdaptedEvent): void {\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n this.tryToSendMoveEvent(true);\n if (this.config.needsPointerData) {\n this.sendTouchEvent(event);\n }\n }\n private tryToSendMoveEvent(out: boolean): void {\n if (\n this.enabled &&\n this.active &&\n (!out || (out && !this.shouldCancellWhenOutside))\n ) {\n this.sendEvent(this.currentState, this.currentState);\n }\n }\n\n public sendTouchEvent(event: AdaptedEvent): void {\n if (!this.enabled) {\n return;\n }\n\n const { onGestureHandlerEvent }: PropsRef = this.propsRef\n .current as PropsRef;\n\n const touchEvent: ResultTouchEvent | undefined = this.transformTouchEvent(\n event\n );\n\n if (touchEvent) {\n invokeNullableMethod(onGestureHandlerEvent, touchEvent);\n }\n }\n\n //\n // Events Sending\n //\n\n public sendEvent = (newState: State, oldState: State): void => {\n const {\n onGestureHandlerEvent,\n onGestureHandlerStateChange,\n }: PropsRef = this.propsRef.current as PropsRef;\n\n const resultEvent: ResultEvent = this.transformEventData(\n newState,\n oldState\n );\n\n // In the new API oldState field has to be undefined, unless we send event state changed\n // Here the order is flipped to avoid workarounds such as making backup of the state and setting it to undefined first, then changing it back\n // Flipping order with setting oldState to undefined solves issue, when events were being sent twice instead of once\n // However, this may cause trouble in the future (but for now we don't know that)\n\n if (this.lastSentState !== newState) {\n this.lastSentState = newState;\n invokeNullableMethod(onGestureHandlerStateChange, resultEvent);\n }\n if (this.currentState === State.ACTIVE) {\n resultEvent.nativeEvent.oldState = undefined;\n invokeNullableMethod(onGestureHandlerEvent, resultEvent);\n }\n };\n\n private transformEventData(newState: State, oldState: State): ResultEvent {\n return {\n nativeEvent: {\n numberOfPointers: this.tracker.getTrackedPointersCount(),\n state: newState,\n pointerInside: isPointerInBounds(this.view, {\n x: this.tracker.getLastAvgX(),\n y: this.tracker.getLastAvgY(),\n }),\n ...this.transformNativeEvent(),\n handlerTag: this.handlerTag,\n target: this.ref,\n oldState: newState !== oldState ? oldState : undefined,\n },\n timeStamp: Date.now(),\n };\n }\n\n private transformTouchEvent(\n event: AdaptedEvent\n ): ResultTouchEvent | undefined {\n const rect = this.view.getBoundingClientRect();\n\n const all: PointerData[] = [];\n const changed: PointerData[] = [];\n\n const trackerData = this.tracker.getData();\n\n // This if handles edge case where all pointers have been cancelled\n // When pointercancel is triggered, reset method is called. This means that tracker will be reset after first pointer being cancelled\n // The problem is, that handler will receive another pointercancel event from the rest of the pointers\n // To avoid crashing, we don't send event if tracker tracks no pointers, i.e. has been reset\n if (trackerData.size === 0 || !trackerData.has(event.pointerId)) {\n return;\n }\n\n trackerData.forEach((element: TrackerElement, key: number): void => {\n const id: number = this.tracker.getMappedTouchEventId(key);\n\n all.push({\n id: id,\n x: element.lastX - rect.left,\n y: element.lastY - rect.top,\n absoluteX: element.lastX,\n absoluteY: element.lastY,\n });\n });\n\n // Each pointer sends its own event, so we want changed touches to contain only the pointer that has changed.\n // However, if the event is cancel, we want to cancel all pointers to avoid crashes\n if (event.eventType !== EventTypes.CANCEL) {\n changed.push({\n id: this.tracker.getMappedTouchEventId(event.pointerId),\n x: event.x - rect.left,\n y: event.y - rect.top,\n absoluteX: event.x,\n absoluteY: event.y,\n });\n } else {\n trackerData.forEach((element: TrackerElement, key: number): void => {\n const id: number = this.tracker.getMappedTouchEventId(key);\n\n changed.push({\n id: id,\n x: element.lastX - rect.left,\n y: element.lastY - rect.top,\n absoluteX: element.lastX,\n absoluteY: element.lastY,\n });\n });\n }\n\n let eventType: TouchEventType = TouchEventType.UNDETERMINED;\n\n switch (event.eventType) {\n case EventTypes.DOWN:\n case EventTypes.ADDITIONAL_POINTER_DOWN:\n eventType = TouchEventType.DOWN;\n break;\n case EventTypes.UP:\n case EventTypes.ADDITIONAL_POINTER_UP:\n eventType = TouchEventType.UP;\n break;\n case EventTypes.MOVE:\n eventType = TouchEventType.MOVE;\n break;\n case EventTypes.CANCEL:\n eventType = TouchEventType.CANCELLED;\n break;\n }\n\n // Here, when we receive up event, we want to decrease number of touches\n // That's because we want handler to send information that there's one pointer less\n // However, we still want this pointer to be present in allTouches array, so that its data can be accessed\n let numberOfTouches: number = all.length;\n\n if (\n event.eventType === EventTypes.UP ||\n event.eventType === EventTypes.ADDITIONAL_POINTER_UP\n ) {\n --numberOfTouches;\n }\n\n return {\n nativeEvent: {\n handlerTag: this.handlerTag,\n state: this.currentState,\n eventType: event.touchEventType ?? eventType,\n changedTouches: changed,\n allTouches: all,\n numberOfTouches: numberOfTouches,\n },\n timeStamp: Date.now(),\n };\n }\n\n private cancelTouches(): void {\n const rect = this.view.getBoundingClientRect();\n\n const all: PointerData[] = [];\n const changed: PointerData[] = [];\n\n const trackerData = this.tracker.getData();\n\n if (trackerData.size === 0) {\n return;\n }\n\n trackerData.forEach((element: TrackerElement, key: number): void => {\n const id: number = this.tracker.getMappedTouchEventId(key);\n\n all.push({\n id: id,\n x: element.lastX - rect.left,\n y: element.lastY - rect.top,\n absoluteX: element.lastX,\n absoluteY: element.lastY,\n });\n\n changed.push({\n id: id,\n x: element.lastX - rect.left,\n y: element.lastY - rect.top,\n absoluteX: element.lastX,\n absoluteY: element.lastY,\n });\n });\n\n const cancelEvent: ResultTouchEvent = {\n nativeEvent: {\n handlerTag: this.handlerTag,\n state: this.currentState,\n eventType: TouchEventType.CANCELLED,\n changedTouches: changed,\n allTouches: all,\n numberOfTouches: all.length,\n },\n timeStamp: Date.now(),\n };\n\n const { onGestureHandlerEvent }: PropsRef = this.propsRef\n .current as PropsRef;\n\n invokeNullableMethod(onGestureHandlerEvent, cancelEvent);\n }\n\n protected transformNativeEvent() {\n return {};\n }\n\n //\n // Handling config\n //\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n this.config = { enabled: enabled, ...props };\n this.enabled = enabled;\n this.validateHitSlops();\n\n if (this.enabled) {\n return;\n }\n\n switch (this.currentState) {\n case State.ACTIVE:\n this.fail(true);\n break;\n case State.UNDETERMINED:\n GestureHandlerOrchestrator.getInstance().removeHandlerFromOrchestrator(\n this\n );\n break;\n default:\n this.cancel(true);\n break;\n }\n }\n\n protected checkCustomActivationCriteria(criterias: string[]): void {\n for (const key in this.config) {\n if (criterias.indexOf(key) >= 0) {\n this.hasCustomActivationCriteria = true;\n }\n }\n }\n\n private validateHitSlops(): void {\n if (!this.config.hitSlop) {\n return;\n }\n\n if (\n this.config.hitSlop.left !== undefined &&\n this.config.hitSlop.right !== undefined &&\n this.config.hitSlop.width !== undefined\n ) {\n throw new Error(\n 'HitSlop Error: Cannot define left, right and width at the same time'\n );\n }\n\n if (\n this.config.hitSlop.width !== undefined &&\n this.config.hitSlop.left === undefined &&\n this.config.hitSlop.right === undefined\n ) {\n throw new Error(\n 'HitSlop Error: When width is defined, either left or right has to be defined'\n );\n }\n\n if (\n this.config.hitSlop.height !== undefined &&\n this.config.hitSlop.top !== undefined &&\n this.config.hitSlop.bottom !== undefined\n ) {\n throw new Error(\n 'HitSlop Error: Cannot define top, bottom and height at the same time'\n );\n }\n\n if (\n this.config.hitSlop.height !== undefined &&\n this.config.hitSlop.top === undefined &&\n this.config.hitSlop.bottom === undefined\n ) {\n throw new Error(\n 'HitSlop Error: When height is defined, either top or bottom has to be defined'\n );\n }\n }\n\n private checkHitSlop(): boolean {\n if (!this.config.hitSlop) {\n return true;\n }\n\n const width = this.view.getBoundingClientRect().width;\n const height = this.view.getBoundingClientRect().height;\n\n let left = 0;\n let top = 0;\n let right: number = width;\n let bottom: number = height;\n\n if (this.config.hitSlop.horizontal !== undefined) {\n left -= this.config.hitSlop.horizontal;\n right += this.config.hitSlop.horizontal;\n }\n\n if (this.config.hitSlop.vertical !== undefined) {\n top -= this.config.hitSlop.vertical;\n bottom += this.config.hitSlop.vertical;\n }\n\n if (this.config.hitSlop.left !== undefined) {\n left = -this.config.hitSlop.left;\n }\n\n if (this.config.hitSlop.right !== undefined) {\n right = width + this.config.hitSlop.right;\n }\n\n if (this.config.hitSlop.top !== undefined) {\n top = -this.config.hitSlop.top;\n }\n\n if (this.config.hitSlop.bottom !== undefined) {\n bottom = width + this.config.hitSlop.bottom;\n }\n if (this.config.hitSlop.width !== undefined) {\n if (this.config.hitSlop.left !== undefined) {\n right = left + this.config.hitSlop.width;\n } else if (this.config.hitSlop.right !== undefined) {\n left = right - this.config.hitSlop.width;\n }\n }\n\n if (this.config.hitSlop.height !== undefined) {\n if (this.config.hitSlop.top !== undefined) {\n bottom = top + this.config.hitSlop.height;\n } else if (this.config.hitSlop.bottom !== undefined) {\n top = bottom - this.config.hitSlop.height;\n }\n }\n\n const rect: DOMRect = this.view.getBoundingClientRect();\n const offsetX: number = this.tracker.getLastX() - rect.left;\n const offsetY: number = this.tracker.getLastY() - rect.top;\n\n if (\n offsetX >= left &&\n offsetX <= right &&\n offsetY >= top &&\n offsetY <= bottom\n ) {\n return true;\n }\n return false;\n }\n\n public isPointerInBounds({ x, y }: { x: number; y: number }): boolean {\n const rect: DOMRect = this.view.getBoundingClientRect();\n\n return (\n x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom\n );\n }\n\n protected resetConfig(): void {}\n\n //\n // Getters and setters\n //\n\n public getTag(): number {\n return this.handlerTag;\n }\n public setTag(tag: number): void {\n this.handlerTag = tag;\n }\n\n protected getConfig() {\n return this.config;\n }\n\n public getShouldEnableGestureOnSetup(): boolean {\n throw new Error('Must override GestureHandler.shouldEnableGestureOnSetup');\n }\n\n public getView(): HTMLElement {\n return this.view;\n }\n\n public getEventManagers(): EventManager[] {\n return this.eventManagers;\n }\n\n public getTracker(): PointerTracker {\n return this.tracker;\n }\n\n public getTrackedPointersID(): number[] {\n return this.tracker.getTrackedPointersID();\n }\n\n public getState(): State {\n return this.currentState;\n }\n\n public isEnabled(): boolean {\n return this.enabled;\n }\n\n private isFinished(): boolean {\n return (\n this.currentState === State.END ||\n this.currentState === State.FAILED ||\n this.currentState === State.CANCELLED\n );\n }\n\n protected setShouldCancelWhenOutside(shouldCancel: boolean) {\n this.shouldCancellWhenOutside = shouldCancel;\n }\n protected getShouldCancelWhenOutside(): boolean {\n return this.shouldCancellWhenOutside;\n }\n\n public getPointerType(): PointerType {\n return this.pointerType;\n }\n}\n\nfunction invokeNullableMethod(\n method:\n | ((event: ResultEvent | ResultTouchEvent) => void)\n | { __getHandler: () => (event: ResultEvent | ResultTouchEvent) => void }\n | { __nodeConfig: { argMapping: unknown[] } },\n event: ResultEvent | ResultTouchEvent\n): void {\n if (!method) {\n return;\n }\n\n if (typeof method === 'function') {\n method(event);\n return;\n }\n\n if ('__getHandler' in method && typeof method.__getHandler === 'function') {\n const handler = method.__getHandler();\n invokeNullableMethod(handler, event);\n return;\n }\n\n if (!('__nodeConfig' in method)) {\n return;\n }\n\n const { argMapping } = method.__nodeConfig;\n if (!Array.isArray(argMapping)) {\n return;\n }\n\n for (const [index, [key, value]] of argMapping.entries()) {\n if (!(key in event.nativeEvent)) {\n continue;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const nativeValue = event.nativeEvent[key];\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (value?.setValue) {\n //Reanimated API\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call\n value.setValue(nativeValue);\n } else {\n //RN Animated API\n method.__nodeConfig.argMapping[index] = [key, nativeValue];\n }\n }\n\n return;\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["LongPressGestureHandler.ts"],"names":["State","GestureHandler","DEFAULT_MIN_DURATION_MS","DEFAULT_MAX_DIST_DP","SCALING_FACTOR","LongPressGestureHandler","defaultMaxDistSq","init","ref","propsRef","setShouldCancelWhenOutside","
|
1
|
+
{"version":3,"sources":["LongPressGestureHandler.ts"],"names":["State","GestureHandler","DEFAULT_MIN_DURATION_MS","DEFAULT_MAX_DIST_DP","SCALING_FACTOR","LongPressGestureHandler","defaultMaxDistSq","init","ref","propsRef","setShouldCancelWhenOutside","view","oncontextmenu","transformNativeEvent","rect","getBoundingClientRect","x","tracker","getLastAvgX","left","y","getLastAvgY","top","absoluteX","absoluteY","duration","Date","now","startTime","updateGestureConfig","enabled","props","config","minDurationMs","undefined","maxDist","maxDistSq","resetConfig","onStateChange","_newState","_oldState","clearTimeout","activationTimeout","onPointerDown","event","addToTracker","tryBegin","tryActivate","checkDistanceFail","onPointerMove","track","onPointerUp","removeFromTracker","pointerId","currentState","ACTIVE","end","fail","UNDETERMINED","previousTime","begin","startX","startY","setTimeout","activate","dx","dy","distSq","cancel"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\n\nconst DEFAULT_MIN_DURATION_MS = 500;\nconst DEFAULT_MAX_DIST_DP = 10;\nconst SCALING_FACTOR = 10;\n\nexport default class LongPressGestureHandler extends GestureHandler {\n private minDurationMs = DEFAULT_MIN_DURATION_MS;\n private defaultMaxDistSq = DEFAULT_MAX_DIST_DP * SCALING_FACTOR;\n\n private maxDistSq = this.defaultMaxDistSq;\n private startX = 0;\n private startY = 0;\n\n private startTime = 0;\n private previousTime = 0;\n\n private activationTimeout: number | undefined;\n\n public init(ref: number, propsRef: React.RefObject<unknown>) {\n super.init(ref, propsRef);\n this.setShouldCancelWhenOutside(true);\n\n this.view.oncontextmenu = () => false;\n }\n\n protected transformNativeEvent() {\n const rect: DOMRect = this.view.getBoundingClientRect();\n\n return {\n x: this.tracker.getLastAvgX() - rect.left,\n y: this.tracker.getLastAvgY() - rect.top,\n absoluteX: this.tracker.getLastAvgX(),\n absoluteY: this.tracker.getLastAvgY(),\n duration: Date.now() - this.startTime,\n };\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n this.enabled = enabled;\n\n if (this.config.minDurationMs !== undefined) {\n this.minDurationMs = this.config.minDurationMs;\n }\n\n if (this.config.maxDist !== undefined) {\n this.maxDistSq = this.config.maxDist * this.config.maxDist;\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n this.minDurationMs = DEFAULT_MIN_DURATION_MS;\n this.maxDistSq = this.defaultMaxDistSq;\n }\n\n protected onStateChange(_newState: State, _oldState: State): void {\n clearTimeout(this.activationTimeout);\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.tryBegin(event);\n this.tryActivate();\n this.checkDistanceFail(event);\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n super.onPointerMove(event);\n this.tracker.track(event);\n this.checkDistanceFail(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.fail();\n }\n }\n\n private tryBegin(event: AdaptedEvent): void {\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.previousTime = Date.now();\n this.startTime = this.previousTime;\n\n this.begin();\n\n this.startX = event.x;\n this.startY = event.y;\n }\n\n private tryActivate(): void {\n if (this.minDurationMs > 0) {\n this.activationTimeout = setTimeout(() => {\n this.activate();\n }, this.minDurationMs);\n } else if (this.minDurationMs === 0) {\n this.activate();\n }\n }\n\n private checkDistanceFail(event: AdaptedEvent): void {\n const dx = event.x - this.startX;\n const dy = event.y - this.startY;\n const distSq = dx * dx + dy * dy;\n\n if (distSq <= this.maxDistSq) {\n return;\n }\n\n if (this.currentState === State.ACTIVE) {\n this.cancel();\n } else {\n this.fail();\n }\n }\n}\n"]}
|
@@ -31,11 +31,8 @@ export default class NativeViewGestureHandler extends GestureHandler {
|
|
31
31
|
this.buttonRole = true;
|
32
32
|
} else {
|
33
33
|
this.buttonRole = false;
|
34
|
-
}
|
35
|
-
|
36
|
-
if (this.view.tagName.toLowerCase() === 'input') {
|
37
|
-
//Enables text input on Safari
|
38
34
|
this.view.style['webkitUserSelect'] = 'auto';
|
35
|
+
this.view.style['userSelect'] = 'auto';
|
39
36
|
}
|
40
37
|
}
|
41
38
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["NativeViewGestureHandler.ts"],"names":["State","DEFAULT_TOUCH_SLOP","GestureHandler","NativeViewGestureHandler","init","ref","propsRef","setShouldCancelWhenOutside","view","style","hasAttribute","buttonRole","
|
1
|
+
{"version":3,"sources":["NativeViewGestureHandler.ts"],"names":["State","DEFAULT_TOUCH_SLOP","GestureHandler","NativeViewGestureHandler","init","ref","propsRef","setShouldCancelWhenOutside","view","style","hasAttribute","buttonRole","updateGestureConfig","enabled","props","config","shouldActivateOnStart","undefined","disallowInterruption","resetConfig","onPointerDown","event","tracker","addToTracker","newPointerAction","onPointerAdd","startX","getLastAvgX","startY","getLastAvgY","currentState","UNDETERMINED","begin","activate","onPointerMove","track","dx","dy","distSq","minDistSq","BEGAN","onPointerOut","cancel","onPointerUp","onUp","onPointerRemove","removeFromTracker","pointerId","getTrackedPointersCount","ACTIVE","end","fail","onPointerCancel","reset","shouldRecognizeSimultaneously","handler","getState","disallowsInterruption","canBeInterrupted","getTag","shouldBeCancelledByOther","_handler"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nexport default class NativeViewGestureHandler extends GestureHandler {\n private buttonRole!: boolean;\n\n //TODO: Implement logic for activation on start\n //@ts-ignore Logic yet to be implemented\n private shouldActivateOnStart = false;\n private disallowInterruption = false;\n\n private startX = 0;\n private startY = 0;\n private minDistSq = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n\n this.setShouldCancelWhenOutside(true);\n\n this.view.style['touchAction'] = 'auto';\n\n //@ts-ignore Turns on defualt touch behavior on Safari\n this.view.style['WebkitTouchCallout'] = 'auto';\n\n if (this.view.hasAttribute('role')) {\n this.buttonRole = true;\n } else {\n this.buttonRole = false;\n this.view.style['webkitUserSelect'] = 'auto';\n this.view.style['userSelect'] = 'auto';\n }\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n if (this.config.shouldActivateOnStart !== undefined) {\n this.shouldActivateOnStart = this.config.shouldActivateOnStart;\n }\n if (this.config.disallowInterruption !== undefined) {\n this.disallowInterruption = this.config.disallowInterruption;\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n this.newPointerAction();\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.newPointerAction();\n }\n\n private newPointerAction(): void {\n this.startX = this.tracker.getLastAvgX();\n this.startY = this.tracker.getLastAvgY();\n\n if (this.currentState !== State.UNDETERMINED) {\n return;\n }\n\n this.begin();\n if (this.buttonRole) {\n this.activate();\n }\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.tracker.track(event);\n\n const dx = this.startX - this.tracker.getLastAvgX();\n const dy = this.startY - this.tracker.getLastAvgY();\n const distSq = dx * dx + dy * dy;\n\n if (\n !this.buttonRole &&\n distSq >= this.minDistSq &&\n this.currentState === State.BEGAN\n ) {\n this.activate();\n }\n }\n\n protected onPointerOut(): void {\n this.cancel();\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.onUp(event);\n }\n\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.onUp(event);\n }\n\n private onUp(event: AdaptedEvent): void {\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.tracker.getTrackedPointersCount() === 0) {\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.fail();\n }\n }\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n this.cancel();\n this.reset();\n }\n\n public shouldRecognizeSimultaneously(handler: GestureHandler): boolean {\n if (super.shouldRecognizeSimultaneously(handler)) {\n return true;\n }\n\n if (\n handler instanceof NativeViewGestureHandler &&\n handler.getState() === State.ACTIVE &&\n handler.disallowsInterruption()\n ) {\n return false;\n }\n\n const canBeInterrupted = !this.disallowInterruption;\n\n if (\n this.currentState === State.ACTIVE &&\n handler.getState() === State.ACTIVE &&\n canBeInterrupted\n ) {\n return false;\n }\n\n return (\n this.currentState === State.ACTIVE &&\n canBeInterrupted &&\n handler.getTag() > 0\n );\n }\n\n public shouldBeCancelledByOther(_handler: GestureHandler): boolean {\n return !this.disallowInterruption;\n }\n\n public disallowsInterruption(): boolean {\n return this.disallowInterruption;\n }\n}\n"]}
|
@@ -109,8 +109,8 @@ export default class PanGestureHandler extends GestureHandler {
|
|
109
109
|
this.activateAfterLongPress = this.config.activateAfterLongPress;
|
110
110
|
}
|
111
111
|
|
112
|
-
if (this.config.shouldCancelWhenOutside) {
|
113
|
-
this.setShouldCancelWhenOutside(
|
112
|
+
if (this.config.shouldCancelWhenOutside !== undefined) {
|
113
|
+
this.setShouldCancelWhenOutside(this.config.shouldCancelWhenOutside);
|
114
114
|
}
|
115
115
|
|
116
116
|
if (this.config.activeOffsetXStart !== undefined) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["PanGestureHandler.ts"],"names":["PixelRatio","State","DEFAULT_TOUCH_SLOP","GestureHandler","DEFAULT_MIN_POINTERS","DEFAULT_MAX_POINTERS","DEFAULT_MIN_DIST_SQ","PanGestureHandler","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","init","ref","propsRef","updateGestureConfig","enabled","props","resetConfig","checkCustomActivationCriteria","customActivationProperties","config","minDist","undefined","minDistSq","hasCustomActivationCriteria","minPointers","maxPointers","minVelocity","minVelocityX","minVelocityY","activateAfterLongPress","shouldCancelWhenOutside","setShouldCancelWhenOutside","activeOffsetXStart","activeOffsetXEnd","failOffsetXStart","failOffsetXEnd","activeOffsetYStart","activeOffsetYEnd","failOffsetYStart","failOffsetYEnd","minVelocitySq","transformNativeEvent","rect","view","getBoundingClientRect","ratio","get","translationX","getTranslationX","translationY","getTranslationY","isNaN","absoluteX","tracker","getLastAvgX","absoluteY","getLastAvgY","velocityX","velocityY","x","left","y","top","lastX","startX","offsetX","lastY","startY","offsetY","clearActivationTimeout","clearTimeout","activationTimeout","onPointerDown","event","addToTracker","tryBegin","checkBegan","onPointerAdd","getTrackedPointersCount","currentState","ACTIVE","cancel","fail","onPointerUp","removeFromTracker","pointerId","end","resetProgress","onPointerRemove","onPointerMove","track","getVelocityX","getVelocityY","onPointerCancel","reset","onPointerOutOfBounds","getShouldCancelWhenOutside","shouldActivate","dx","dy","distanceSq","vx","vy","velocitySq","shouldFail","UNDETERMINED","begin","setTimeout","activate","BEGAN","force","onCancel","onReset"],"mappings":"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","sourcesContent":["import { PixelRatio } from 'react-native';\nimport { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\n\nconst DEFAULT_MIN_POINTERS = 1;\nconst DEFAULT_MAX_POINTERS = 10;\nconst DEFAULT_MIN_DIST_SQ = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;\n\nexport default class PanGestureHandler extends GestureHandler {\n private readonly customActivationProperties: string[] = [\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'failOffsetXStart',\n 'failOffsetXEnd',\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n 'failOffsetYStart',\n 'failOffsetYEnd',\n 'minVelocityX',\n 'minVelocityY',\n ];\n\n public velocityX = 0;\n public velocityY = 0;\n\n private minDistSq = DEFAULT_MIN_DIST_SQ;\n\n private activeOffsetXStart = -Number.MAX_SAFE_INTEGER;\n private activeOffsetXEnd = Number.MIN_SAFE_INTEGER;\n private failOffsetXStart = Number.MIN_SAFE_INTEGER;\n private failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n\n private activeOffsetYStart = Number.MAX_SAFE_INTEGER;\n private activeOffsetYEnd = Number.MIN_SAFE_INTEGER;\n private failOffsetYStart = Number.MIN_SAFE_INTEGER;\n private failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n\n private minVelocityX = Number.MAX_SAFE_INTEGER;\n private minVelocityY = Number.MAX_SAFE_INTEGER;\n private minVelocitySq = Number.MAX_SAFE_INTEGER;\n\n private minPointers = DEFAULT_MIN_POINTERS;\n private maxPointers = DEFAULT_MAX_POINTERS;\n\n private startX = 0;\n private startY = 0;\n private offsetX = 0;\n private offsetY = 0;\n private lastX = 0;\n private lastY = 0;\n\n private activateAfterLongPress = 0;\n private activationTimeout = 0;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n this.resetConfig();\n\n super.updateGestureConfig({ enabled: enabled, ...props });\n this.checkCustomActivationCriteria(this.customActivationProperties);\n\n this.enabled = enabled;\n\n if (this.config.minDist !== undefined) {\n this.minDistSq = this.config.minDist * this.config.minDist;\n } else if (this.hasCustomActivationCriteria) {\n this.minDistSq = Number.MAX_SAFE_INTEGER;\n }\n\n if (this.config.minPointers !== undefined) {\n this.minPointers = this.config.minPointers;\n }\n\n if (this.config.maxPointers !== undefined) {\n this.maxPointers = this.config.maxPointers;\n }\n\n if (this.config.minVelocity !== undefined) {\n this.minVelocityX = this.config.minVelocity;\n this.minVelocityY = this.config.minVelocity;\n }\n\n if (this.config.minVelocityX !== undefined) {\n this.minVelocityX = this.config.minVelocityX;\n }\n\n if (this.config.minVelocityY !== undefined) {\n this.minVelocityY = this.config.minVelocityY;\n }\n\n if (this.config.activateAfterLongPress !== undefined) {\n this.activateAfterLongPress = this.config.activateAfterLongPress;\n }\n\n if (this.config.shouldCancelWhenOutside) {\n this.setShouldCancelWhenOutside(false);\n }\n\n if (this.config.activeOffsetXStart !== undefined) {\n this.activeOffsetXStart = this.config.activeOffsetXStart;\n\n if (this.config.activeOffsetXEnd === undefined) {\n this.activeOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetXEnd !== undefined) {\n this.activeOffsetXEnd = this.config.activeOffsetXEnd;\n\n if (this.config.activeOffsetXStart === undefined) {\n this.activeOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXStart !== undefined) {\n this.failOffsetXStart = this.config.failOffsetXStart;\n\n if (this.config.failOffsetXEnd === undefined) {\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXEnd !== undefined) {\n this.failOffsetXEnd = this.config.failOffsetXEnd;\n\n if (this.config.failOffsetXStart === undefined) {\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYStart !== undefined) {\n this.activeOffsetYStart = this.config.activeOffsetYStart;\n\n if (this.config.activeOffsetYEnd === undefined) {\n this.activeOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYEnd !== undefined) {\n this.activeOffsetYEnd = this.config.activeOffsetYEnd;\n\n if (this.config.activeOffsetYStart === undefined) {\n this.activeOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYStart !== undefined) {\n this.failOffsetYStart = this.config.failOffsetYStart;\n\n if (this.config.failOffsetYEnd === undefined) {\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYEnd !== undefined) {\n this.failOffsetYEnd = this.config.failOffsetYEnd;\n\n if (this.config.failOffsetYStart === undefined) {\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n\n this.activeOffsetXStart = -Number.MAX_SAFE_INTEGER;\n this.activeOffsetXEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n\n this.activeOffsetYStart = Number.MAX_SAFE_INTEGER;\n this.activeOffsetYEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n\n this.minVelocityX = Number.MAX_SAFE_INTEGER;\n this.minVelocityY = Number.MAX_SAFE_INTEGER;\n this.minVelocitySq = Number.MAX_SAFE_INTEGER;\n\n this.minDistSq = DEFAULT_MIN_DIST_SQ;\n\n this.minPointers = DEFAULT_MIN_POINTERS;\n this.maxPointers = DEFAULT_MAX_POINTERS;\n\n this.activateAfterLongPress = 0;\n }\n\n protected transformNativeEvent() {\n const rect: DOMRect = this.view.getBoundingClientRect();\n const ratio = PixelRatio.get();\n\n const translationX: number = this.getTranslationX();\n const translationY: number = this.getTranslationY();\n\n return {\n translationX: isNaN(translationX) ? 0 : translationX,\n translationY: isNaN(translationY) ? 0 : translationY,\n absoluteX: this.tracker.getLastAvgX(),\n absoluteY: this.tracker.getLastAvgY(),\n velocityX: this.velocityX * ratio * 10,\n velocityY: this.velocityY * ratio * 10,\n x: this.tracker.getLastAvgX() - rect.left,\n y: this.tracker.getLastAvgY() - rect.top,\n };\n }\n\n private getTranslationX(): number {\n return this.lastX - this.startX + this.offsetX;\n }\n private getTranslationY(): number {\n return this.lastY - this.startY + this.offsetY;\n }\n\n private clearActivationTimeout(): void {\n clearTimeout(this.activationTimeout);\n }\n\n //EventsHandling\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.tryBegin(event);\n this.checkBegan();\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.tryBegin(event);\n\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (this.tracker.getTrackedPointersCount() > this.maxPointers) {\n if (this.currentState === State.ACTIVE) {\n this.cancel();\n } else {\n this.fail();\n }\n } else {\n this.checkBegan();\n }\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n\n if (this.currentState === State.ACTIVE) {\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n }\n\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.resetProgress();\n this.fail();\n }\n }\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.tracker.removeFromTracker(event.pointerId);\n\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (\n !(\n this.currentState === State.ACTIVE &&\n this.tracker.getTrackedPointersCount() < this.minPointers\n )\n ) {\n this.checkBegan();\n }\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n\n this.checkBegan();\n\n super.onPointerMove(event);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n\n this.reset();\n }\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n if (this.getShouldCancelWhenOutside()) {\n return;\n }\n\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n\n this.checkBegan();\n\n if (this.currentState === State.ACTIVE) {\n super.onPointerOutOfBounds(event);\n }\n }\n\n private shouldActivate(): boolean {\n const dx: number = this.getTranslationX();\n\n if (\n this.activeOffsetXStart !== Number.MAX_SAFE_INTEGER &&\n dx < this.activeOffsetXStart\n ) {\n return true;\n }\n\n if (\n this.activeOffsetXEnd !== Number.MIN_SAFE_INTEGER &&\n dx > this.activeOffsetXEnd\n ) {\n return true;\n }\n\n const dy: number = this.getTranslationY();\n\n if (\n this.activeOffsetYStart !== Number.MAX_SAFE_INTEGER &&\n dy < this.activeOffsetYStart\n ) {\n return true;\n }\n\n if (\n this.activeOffsetYEnd !== Number.MIN_SAFE_INTEGER &&\n dy > this.activeOffsetYEnd\n ) {\n return true;\n }\n\n const distanceSq: number = dx * dx + dy * dy;\n\n if (\n this.minDistSq !== Number.MAX_SAFE_INTEGER &&\n distanceSq >= this.minDistSq\n ) {\n return true;\n }\n\n const vx: number = this.velocityX;\n\n if (\n this.minVelocityX !== Number.MAX_SAFE_INTEGER &&\n ((this.minVelocityX < 0 && vx <= this.minVelocityX) ||\n (this.minVelocityX >= 0 && this.minVelocityX <= vx))\n ) {\n return true;\n }\n\n const vy: number = this.velocityY;\n if (\n this.minVelocityY !== Number.MAX_SAFE_INTEGER &&\n ((this.minVelocityY < 0 && vy <= this.minVelocityY) ||\n (this.minVelocityY >= 0 && this.minVelocityY <= vy))\n ) {\n return true;\n }\n\n const velocitySq: number = vx * vx + vy * vy;\n\n return (\n this.minVelocitySq !== Number.MAX_SAFE_INTEGER &&\n velocitySq >= this.minVelocitySq\n );\n }\n\n private shouldFail(): boolean {\n const dx: number = this.getTranslationX();\n const dy: number = this.getTranslationY();\n const distanceSq = dx * dx + dy * dy;\n\n if (this.activateAfterLongPress > 0 && distanceSq > DEFAULT_MIN_DIST_SQ) {\n this.clearActivationTimeout();\n return true;\n }\n\n if (\n this.failOffsetXStart !== Number.MIN_SAFE_INTEGER &&\n dx < this.failOffsetXStart\n ) {\n return true;\n }\n\n if (\n this.failOffsetXEnd !== Number.MAX_SAFE_INTEGER &&\n dx > this.failOffsetXEnd\n ) {\n return true;\n }\n\n if (\n this.failOffsetYStart !== Number.MIN_SAFE_INTEGER &&\n dy < this.failOffsetYStart\n ) {\n return true;\n }\n\n return (\n this.failOffsetYEnd !== Number.MAX_SAFE_INTEGER &&\n dy > this.failOffsetYEnd\n );\n }\n\n private tryBegin(event: AdaptedEvent): void {\n if (\n this.currentState === State.UNDETERMINED &&\n this.tracker.getTrackedPointersCount() >= this.minPointers\n ) {\n this.resetProgress();\n this.offsetX = 0;\n this.offsetY = 0;\n this.velocityX = 0;\n this.velocityY = 0;\n\n this.begin();\n\n if (this.activateAfterLongPress > 0) {\n this.activationTimeout = setTimeout(() => {\n this.activate();\n }, this.activateAfterLongPress);\n }\n } else {\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n }\n }\n\n private checkBegan(): void {\n if (this.currentState === State.BEGAN) {\n if (this.shouldFail()) {\n this.fail();\n } else if (this.shouldActivate()) {\n this.activate();\n }\n }\n }\n\n public activate(force = false): void {\n if (this.currentState !== State.ACTIVE) {\n this.resetProgress();\n }\n\n super.activate(force);\n }\n\n protected onCancel(): void {\n this.clearActivationTimeout();\n }\n\n protected onReset(): void {\n this.clearActivationTimeout();\n }\n\n protected resetProgress(): void {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n }\n}\n"]}
|
1
|
+
{"version":3,"sources":["PanGestureHandler.ts"],"names":["PixelRatio","State","DEFAULT_TOUCH_SLOP","GestureHandler","DEFAULT_MIN_POINTERS","DEFAULT_MAX_POINTERS","DEFAULT_MIN_DIST_SQ","PanGestureHandler","Number","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","init","ref","propsRef","updateGestureConfig","enabled","props","resetConfig","checkCustomActivationCriteria","customActivationProperties","config","minDist","undefined","minDistSq","hasCustomActivationCriteria","minPointers","maxPointers","minVelocity","minVelocityX","minVelocityY","activateAfterLongPress","shouldCancelWhenOutside","setShouldCancelWhenOutside","activeOffsetXStart","activeOffsetXEnd","failOffsetXStart","failOffsetXEnd","activeOffsetYStart","activeOffsetYEnd","failOffsetYStart","failOffsetYEnd","minVelocitySq","transformNativeEvent","rect","view","getBoundingClientRect","ratio","get","translationX","getTranslationX","translationY","getTranslationY","isNaN","absoluteX","tracker","getLastAvgX","absoluteY","getLastAvgY","velocityX","velocityY","x","left","y","top","lastX","startX","offsetX","lastY","startY","offsetY","clearActivationTimeout","clearTimeout","activationTimeout","onPointerDown","event","addToTracker","tryBegin","checkBegan","onPointerAdd","getTrackedPointersCount","currentState","ACTIVE","cancel","fail","onPointerUp","removeFromTracker","pointerId","end","resetProgress","onPointerRemove","onPointerMove","track","getVelocityX","getVelocityY","onPointerCancel","reset","onPointerOutOfBounds","getShouldCancelWhenOutside","shouldActivate","dx","dy","distanceSq","vx","vy","velocitySq","shouldFail","UNDETERMINED","begin","setTimeout","activate","BEGAN","force","onCancel","onReset"],"mappings":"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","sourcesContent":["import { PixelRatio } from 'react-native';\nimport { State } from '../../State';\nimport { DEFAULT_TOUCH_SLOP } from '../constants';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\n\nconst DEFAULT_MIN_POINTERS = 1;\nconst DEFAULT_MAX_POINTERS = 10;\nconst DEFAULT_MIN_DIST_SQ = DEFAULT_TOUCH_SLOP * DEFAULT_TOUCH_SLOP;\n\nexport default class PanGestureHandler extends GestureHandler {\n private readonly customActivationProperties: string[] = [\n 'activeOffsetXStart',\n 'activeOffsetXEnd',\n 'failOffsetXStart',\n 'failOffsetXEnd',\n 'activeOffsetYStart',\n 'activeOffsetYEnd',\n 'failOffsetYStart',\n 'failOffsetYEnd',\n 'minVelocityX',\n 'minVelocityY',\n ];\n\n public velocityX = 0;\n public velocityY = 0;\n\n private minDistSq = DEFAULT_MIN_DIST_SQ;\n\n private activeOffsetXStart = -Number.MAX_SAFE_INTEGER;\n private activeOffsetXEnd = Number.MIN_SAFE_INTEGER;\n private failOffsetXStart = Number.MIN_SAFE_INTEGER;\n private failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n\n private activeOffsetYStart = Number.MAX_SAFE_INTEGER;\n private activeOffsetYEnd = Number.MIN_SAFE_INTEGER;\n private failOffsetYStart = Number.MIN_SAFE_INTEGER;\n private failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n\n private minVelocityX = Number.MAX_SAFE_INTEGER;\n private minVelocityY = Number.MAX_SAFE_INTEGER;\n private minVelocitySq = Number.MAX_SAFE_INTEGER;\n\n private minPointers = DEFAULT_MIN_POINTERS;\n private maxPointers = DEFAULT_MAX_POINTERS;\n\n private startX = 0;\n private startY = 0;\n private offsetX = 0;\n private offsetY = 0;\n private lastX = 0;\n private lastY = 0;\n\n private activateAfterLongPress = 0;\n private activationTimeout = 0;\n\n public init(ref: number, propsRef: React.RefObject<unknown>): void {\n super.init(ref, propsRef);\n }\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n this.resetConfig();\n\n super.updateGestureConfig({ enabled: enabled, ...props });\n this.checkCustomActivationCriteria(this.customActivationProperties);\n\n this.enabled = enabled;\n\n if (this.config.minDist !== undefined) {\n this.minDistSq = this.config.minDist * this.config.minDist;\n } else if (this.hasCustomActivationCriteria) {\n this.minDistSq = Number.MAX_SAFE_INTEGER;\n }\n\n if (this.config.minPointers !== undefined) {\n this.minPointers = this.config.minPointers;\n }\n\n if (this.config.maxPointers !== undefined) {\n this.maxPointers = this.config.maxPointers;\n }\n\n if (this.config.minVelocity !== undefined) {\n this.minVelocityX = this.config.minVelocity;\n this.minVelocityY = this.config.minVelocity;\n }\n\n if (this.config.minVelocityX !== undefined) {\n this.minVelocityX = this.config.minVelocityX;\n }\n\n if (this.config.minVelocityY !== undefined) {\n this.minVelocityY = this.config.minVelocityY;\n }\n\n if (this.config.activateAfterLongPress !== undefined) {\n this.activateAfterLongPress = this.config.activateAfterLongPress;\n }\n\n if (this.config.shouldCancelWhenOutside !== undefined) {\n this.setShouldCancelWhenOutside(this.config.shouldCancelWhenOutside);\n }\n\n if (this.config.activeOffsetXStart !== undefined) {\n this.activeOffsetXStart = this.config.activeOffsetXStart;\n\n if (this.config.activeOffsetXEnd === undefined) {\n this.activeOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetXEnd !== undefined) {\n this.activeOffsetXEnd = this.config.activeOffsetXEnd;\n\n if (this.config.activeOffsetXStart === undefined) {\n this.activeOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXStart !== undefined) {\n this.failOffsetXStart = this.config.failOffsetXStart;\n\n if (this.config.failOffsetXEnd === undefined) {\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetXEnd !== undefined) {\n this.failOffsetXEnd = this.config.failOffsetXEnd;\n\n if (this.config.failOffsetXStart === undefined) {\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYStart !== undefined) {\n this.activeOffsetYStart = this.config.activeOffsetYStart;\n\n if (this.config.activeOffsetYEnd === undefined) {\n this.activeOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.activeOffsetYEnd !== undefined) {\n this.activeOffsetYEnd = this.config.activeOffsetYEnd;\n\n if (this.config.activeOffsetYStart === undefined) {\n this.activeOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYStart !== undefined) {\n this.failOffsetYStart = this.config.failOffsetYStart;\n\n if (this.config.failOffsetYEnd === undefined) {\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n }\n }\n\n if (this.config.failOffsetYEnd !== undefined) {\n this.failOffsetYEnd = this.config.failOffsetYEnd;\n\n if (this.config.failOffsetYStart === undefined) {\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n }\n }\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n\n this.activeOffsetXStart = -Number.MAX_SAFE_INTEGER;\n this.activeOffsetXEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetXStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetXEnd = Number.MAX_SAFE_INTEGER;\n\n this.activeOffsetYStart = Number.MAX_SAFE_INTEGER;\n this.activeOffsetYEnd = Number.MIN_SAFE_INTEGER;\n this.failOffsetYStart = Number.MIN_SAFE_INTEGER;\n this.failOffsetYEnd = Number.MAX_SAFE_INTEGER;\n\n this.minVelocityX = Number.MAX_SAFE_INTEGER;\n this.minVelocityY = Number.MAX_SAFE_INTEGER;\n this.minVelocitySq = Number.MAX_SAFE_INTEGER;\n\n this.minDistSq = DEFAULT_MIN_DIST_SQ;\n\n this.minPointers = DEFAULT_MIN_POINTERS;\n this.maxPointers = DEFAULT_MAX_POINTERS;\n\n this.activateAfterLongPress = 0;\n }\n\n protected transformNativeEvent() {\n const rect: DOMRect = this.view.getBoundingClientRect();\n const ratio = PixelRatio.get();\n\n const translationX: number = this.getTranslationX();\n const translationY: number = this.getTranslationY();\n\n return {\n translationX: isNaN(translationX) ? 0 : translationX,\n translationY: isNaN(translationY) ? 0 : translationY,\n absoluteX: this.tracker.getLastAvgX(),\n absoluteY: this.tracker.getLastAvgY(),\n velocityX: this.velocityX * ratio * 10,\n velocityY: this.velocityY * ratio * 10,\n x: this.tracker.getLastAvgX() - rect.left,\n y: this.tracker.getLastAvgY() - rect.top,\n };\n }\n\n private getTranslationX(): number {\n return this.lastX - this.startX + this.offsetX;\n }\n private getTranslationY(): number {\n return this.lastY - this.startY + this.offsetY;\n }\n\n private clearActivationTimeout(): void {\n clearTimeout(this.activationTimeout);\n }\n\n //EventsHandling\n protected onPointerDown(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerDown(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.tryBegin(event);\n this.checkBegan();\n }\n\n protected onPointerAdd(event: AdaptedEvent): void {\n this.tracker.addToTracker(event);\n super.onPointerAdd(event);\n this.tryBegin(event);\n\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (this.tracker.getTrackedPointersCount() > this.maxPointers) {\n if (this.currentState === State.ACTIVE) {\n this.cancel();\n } else {\n this.fail();\n }\n } else {\n this.checkBegan();\n }\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n\n if (this.currentState === State.ACTIVE) {\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n }\n\n this.tracker.removeFromTracker(event.pointerId);\n\n if (this.currentState === State.ACTIVE) {\n this.end();\n } else {\n this.resetProgress();\n this.fail();\n }\n }\n protected onPointerRemove(event: AdaptedEvent): void {\n super.onPointerRemove(event);\n this.tracker.removeFromTracker(event.pointerId);\n\n this.offsetX += this.lastX - this.startX;\n this.offsetY += this.lastY - this.startY;\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n\n if (\n !(\n this.currentState === State.ACTIVE &&\n this.tracker.getTrackedPointersCount() < this.minPointers\n )\n ) {\n this.checkBegan();\n }\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n\n this.checkBegan();\n\n super.onPointerMove(event);\n }\n\n protected onPointerCancel(event: AdaptedEvent): void {\n super.onPointerCancel(event);\n\n this.reset();\n }\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n if (this.getShouldCancelWhenOutside()) {\n return;\n }\n\n this.tracker.track(event);\n\n this.lastX = this.tracker.getLastAvgX();\n this.lastY = this.tracker.getLastAvgY();\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n\n this.checkBegan();\n\n if (this.currentState === State.ACTIVE) {\n super.onPointerOutOfBounds(event);\n }\n }\n\n private shouldActivate(): boolean {\n const dx: number = this.getTranslationX();\n\n if (\n this.activeOffsetXStart !== Number.MAX_SAFE_INTEGER &&\n dx < this.activeOffsetXStart\n ) {\n return true;\n }\n\n if (\n this.activeOffsetXEnd !== Number.MIN_SAFE_INTEGER &&\n dx > this.activeOffsetXEnd\n ) {\n return true;\n }\n\n const dy: number = this.getTranslationY();\n\n if (\n this.activeOffsetYStart !== Number.MAX_SAFE_INTEGER &&\n dy < this.activeOffsetYStart\n ) {\n return true;\n }\n\n if (\n this.activeOffsetYEnd !== Number.MIN_SAFE_INTEGER &&\n dy > this.activeOffsetYEnd\n ) {\n return true;\n }\n\n const distanceSq: number = dx * dx + dy * dy;\n\n if (\n this.minDistSq !== Number.MAX_SAFE_INTEGER &&\n distanceSq >= this.minDistSq\n ) {\n return true;\n }\n\n const vx: number = this.velocityX;\n\n if (\n this.minVelocityX !== Number.MAX_SAFE_INTEGER &&\n ((this.minVelocityX < 0 && vx <= this.minVelocityX) ||\n (this.minVelocityX >= 0 && this.minVelocityX <= vx))\n ) {\n return true;\n }\n\n const vy: number = this.velocityY;\n if (\n this.minVelocityY !== Number.MAX_SAFE_INTEGER &&\n ((this.minVelocityY < 0 && vy <= this.minVelocityY) ||\n (this.minVelocityY >= 0 && this.minVelocityY <= vy))\n ) {\n return true;\n }\n\n const velocitySq: number = vx * vx + vy * vy;\n\n return (\n this.minVelocitySq !== Number.MAX_SAFE_INTEGER &&\n velocitySq >= this.minVelocitySq\n );\n }\n\n private shouldFail(): boolean {\n const dx: number = this.getTranslationX();\n const dy: number = this.getTranslationY();\n const distanceSq = dx * dx + dy * dy;\n\n if (this.activateAfterLongPress > 0 && distanceSq > DEFAULT_MIN_DIST_SQ) {\n this.clearActivationTimeout();\n return true;\n }\n\n if (\n this.failOffsetXStart !== Number.MIN_SAFE_INTEGER &&\n dx < this.failOffsetXStart\n ) {\n return true;\n }\n\n if (\n this.failOffsetXEnd !== Number.MAX_SAFE_INTEGER &&\n dx > this.failOffsetXEnd\n ) {\n return true;\n }\n\n if (\n this.failOffsetYStart !== Number.MIN_SAFE_INTEGER &&\n dy < this.failOffsetYStart\n ) {\n return true;\n }\n\n return (\n this.failOffsetYEnd !== Number.MAX_SAFE_INTEGER &&\n dy > this.failOffsetYEnd\n );\n }\n\n private tryBegin(event: AdaptedEvent): void {\n if (\n this.currentState === State.UNDETERMINED &&\n this.tracker.getTrackedPointersCount() >= this.minPointers\n ) {\n this.resetProgress();\n this.offsetX = 0;\n this.offsetY = 0;\n this.velocityX = 0;\n this.velocityY = 0;\n\n this.begin();\n\n if (this.activateAfterLongPress > 0) {\n this.activationTimeout = setTimeout(() => {\n this.activate();\n }, this.activateAfterLongPress);\n }\n } else {\n this.velocityX = this.tracker.getVelocityX(event.pointerId);\n this.velocityY = this.tracker.getVelocityY(event.pointerId);\n }\n }\n\n private checkBegan(): void {\n if (this.currentState === State.BEGAN) {\n if (this.shouldFail()) {\n this.fail();\n } else if (this.shouldActivate()) {\n this.activate();\n }\n }\n }\n\n public activate(force = false): void {\n if (this.currentState !== State.ACTIVE) {\n this.resetProgress();\n }\n\n super.activate(force);\n }\n\n protected onCancel(): void {\n this.clearActivationTimeout();\n }\n\n protected onReset(): void {\n this.clearActivationTimeout();\n }\n\n protected resetProgress(): void {\n if (this.currentState === State.ACTIVE) {\n return;\n }\n\n this.startX = this.lastX;\n this.startY = this.lastY;\n }\n}\n"]}
|
@@ -9,6 +9,7 @@ export default class FlingGestureHandler extends GestureHandler {
|
|
9
9
|
private startX;
|
10
10
|
private startY;
|
11
11
|
private maxNumberOfPointersSimultaneously;
|
12
|
+
private keyPointer;
|
12
13
|
init(ref: number, propsRef: React.RefObject<unknown>): void;
|
13
14
|
updateGestureConfig({ enabled, ...props }: Config): void;
|
14
15
|
protected transformNativeEvent(): {
|
@@ -88,6 +88,7 @@ export default abstract class GestureHandler {
|
|
88
88
|
getTrackedPointersID(): number[];
|
89
89
|
getState(): State;
|
90
90
|
isEnabled(): boolean;
|
91
|
+
private isFinished;
|
91
92
|
protected setShouldCancelWhenOutside(shouldCancel: boolean): void;
|
92
93
|
protected getShouldCancelWhenOutside(): boolean;
|
93
94
|
getPointerType(): PointerType;
|
package/package.json
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { useEffect, useRef } from 'react';
|
1
|
+
import React, { useEffect, useRef, RefObject } from 'react';
|
2
2
|
import {
|
3
3
|
GestureType,
|
4
4
|
HandlerCallbacks,
|
@@ -226,7 +226,8 @@ function attachHandlers({
|
|
226
226
|
function updateHandlers(
|
227
227
|
preparedGesture: GestureConfigReference,
|
228
228
|
gestureConfig: ComposedGesture | GestureType | undefined,
|
229
|
-
gesture: GestureType[]
|
229
|
+
gesture: GestureType[],
|
230
|
+
mountedRef: RefObject<boolean>
|
230
231
|
) {
|
231
232
|
gestureConfig?.prepare();
|
232
233
|
|
@@ -246,6 +247,9 @@ function updateHandlers(
|
|
246
247
|
// and handlerTags in BaseGesture references should be updated in the loop above (we need to wait
|
247
248
|
// in case of external relations)
|
248
249
|
setImmediate(() => {
|
250
|
+
if (!mountedRef.current) {
|
251
|
+
return;
|
252
|
+
}
|
249
253
|
for (let i = 0; i < gesture.length; i++) {
|
250
254
|
const handler = preparedGesture.config[i];
|
251
255
|
|
@@ -575,6 +579,7 @@ export const GestureDetector = (props: GestureDetectorProps) => {
|
|
575
579
|
const useReanimatedHook = gesture.some((g) => g.shouldUseReanimated);
|
576
580
|
const viewRef = useRef(null);
|
577
581
|
const firstRenderRef = useRef(true);
|
582
|
+
const mountedRef = useRef(false);
|
578
583
|
const webEventHandlersRef = useRef<WebEventHandler>({
|
579
584
|
onGestureHandlerEvent: (e: HandlerStateChangeEvent<unknown>) => {
|
580
585
|
onGestureHandlerEvent(e.nativeEvent);
|
@@ -619,6 +624,7 @@ export const GestureDetector = (props: GestureDetectorProps) => {
|
|
619
624
|
|
620
625
|
useEffect(() => {
|
621
626
|
firstRenderRef.current = true;
|
627
|
+
mountedRef.current = true;
|
622
628
|
const viewTag = findNodeHandle(viewRef.current) as number;
|
623
629
|
|
624
630
|
validateDetectorChildren(viewRef.current);
|
@@ -631,6 +637,7 @@ export const GestureDetector = (props: GestureDetectorProps) => {
|
|
631
637
|
});
|
632
638
|
|
633
639
|
return () => {
|
640
|
+
mountedRef.current = false;
|
634
641
|
dropHandlers(preparedGesture);
|
635
642
|
};
|
636
643
|
}, []);
|
@@ -650,7 +657,7 @@ export const GestureDetector = (props: GestureDetectorProps) => {
|
|
650
657
|
webEventHandlersRef,
|
651
658
|
});
|
652
659
|
} else {
|
653
|
-
updateHandlers(preparedGesture, gestureConfig, gesture);
|
660
|
+
updateHandlers(preparedGesture, gestureConfig, gesture, mountedRef);
|
654
661
|
}
|
655
662
|
} else {
|
656
663
|
firstRenderRef.current = false;
|