react-native-gesture-handler 2.7.0 → 2.7.1
Sign up to get free protection for your applications and to get access to all the features.
- 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":["GestureHandler","constructor","State","UNDETERMINED","enabled","PointerTracker","PointerType","NONE","newState","oldState","onGestureHandlerEvent","onGestureHandlerStateChange","propsRef","current","resultEvent","transformEventData","lastSentState","invokeNullableMethod","currentState","ACTIVE","nativeEvent","undefined","hasCustomActivationCriteria","init","ref","setView","addEventManager","PointerEventManager","view","TouchEventManager","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","GestureHandlerOrchestrator","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","InteractionManager","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","EventTypes","CANCEL","TouchEventType","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","isPointerInBounds","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":["GestureHandler","constructor","State","UNDETERMINED","enabled","PointerTracker","PointerType","NONE","newState","oldState","onGestureHandlerEvent","onGestureHandlerStateChange","propsRef","current","resultEvent","transformEventData","lastSentState","invokeNullableMethod","currentState","ACTIVE","nativeEvent","undefined","hasCustomActivationCriteria","init","ref","setView","addEventManager","PointerEventManager","view","TouchEventManager","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","GestureHandlerOrchestrator","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","InteractionManager","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","EventTypes","CANCEL","TouchEventType","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","isPointerInBounds","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":["DEFAULT_MIN_DURATION_MS","DEFAULT_MAX_DIST_DP","SCALING_FACTOR","LongPressGestureHandler","GestureHandler","defaultMaxDistSq","init","ref","propsRef","setShouldCancelWhenOutside","
|
1
|
+
{"version":3,"sources":["LongPressGestureHandler.ts"],"names":["DEFAULT_MIN_DURATION_MS","DEFAULT_MAX_DIST_DP","SCALING_FACTOR","LongPressGestureHandler","GestureHandler","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","State","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"]}
|
@@ -43,11 +43,8 @@ class NativeViewGestureHandler extends _GestureHandler.default {
|
|
43
43
|
this.buttonRole = true;
|
44
44
|
} else {
|
45
45
|
this.buttonRole = false;
|
46
|
-
}
|
47
|
-
|
48
|
-
if (this.view.tagName.toLowerCase() === 'input') {
|
49
|
-
//Enables text input on Safari
|
50
46
|
this.view.style['webkitUserSelect'] = 'auto';
|
47
|
+
this.view.style['userSelect'] = 'auto';
|
51
48
|
}
|
52
49
|
}
|
53
50
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["NativeViewGestureHandler.ts"],"names":["NativeViewGestureHandler","GestureHandler","DEFAULT_TOUCH_SLOP","init","ref","propsRef","setShouldCancelWhenOutside","view","style","hasAttribute","buttonRole","
|
1
|
+
{"version":3,"sources":["NativeViewGestureHandler.ts"],"names":["NativeViewGestureHandler","GestureHandler","DEFAULT_TOUCH_SLOP","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","State","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"]}
|
@@ -123,8 +123,8 @@ class PanGestureHandler extends _GestureHandler.default {
|
|
123
123
|
this.activateAfterLongPress = this.config.activateAfterLongPress;
|
124
124
|
}
|
125
125
|
|
126
|
-
if (this.config.shouldCancelWhenOutside) {
|
127
|
-
this.setShouldCancelWhenOutside(
|
126
|
+
if (this.config.shouldCancelWhenOutside !== undefined) {
|
127
|
+
this.setShouldCancelWhenOutside(this.config.shouldCancelWhenOutside);
|
128
128
|
}
|
129
129
|
|
130
130
|
if (this.config.activeOffsetXStart !== undefined) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["PanGestureHandler.ts"],"names":["DEFAULT_MIN_POINTERS","DEFAULT_MAX_POINTERS","DEFAULT_MIN_DIST_SQ","DEFAULT_TOUCH_SLOP","PanGestureHandler","GestureHandler","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","PixelRatio","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","State","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":["DEFAULT_MIN_POINTERS","DEFAULT_MAX_POINTERS","DEFAULT_MIN_DIST_SQ","DEFAULT_TOUCH_SLOP","PanGestureHandler","GestureHandler","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","PixelRatio","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","State","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"]}
|
@@ -137,7 +137,7 @@ function attachHandlers({
|
|
137
137
|
}
|
138
138
|
}
|
139
139
|
|
140
|
-
function updateHandlers(preparedGesture, gestureConfig, gesture) {
|
140
|
+
function updateHandlers(preparedGesture, gestureConfig, gesture, mountedRef) {
|
141
141
|
gestureConfig === null || gestureConfig === void 0 ? void 0 : gestureConfig.prepare();
|
142
142
|
|
143
143
|
for (let i = 0; i < gesture.length; i++) {
|
@@ -155,6 +155,10 @@ function updateHandlers(preparedGesture, gestureConfig, gesture) {
|
|
155
155
|
|
156
156
|
|
157
157
|
setImmediate(() => {
|
158
|
+
if (!mountedRef.current) {
|
159
|
+
return;
|
160
|
+
}
|
161
|
+
|
158
162
|
for (let i = 0; i < gesture.length; i++) {
|
159
163
|
const handler = preparedGesture.config[i];
|
160
164
|
handler.config = gesture[i].config;
|
@@ -419,6 +423,7 @@ export const GestureDetector = props => {
|
|
419
423
|
const useReanimatedHook = gesture.some(g => g.shouldUseReanimated);
|
420
424
|
const viewRef = useRef(null);
|
421
425
|
const firstRenderRef = useRef(true);
|
426
|
+
const mountedRef = useRef(false);
|
422
427
|
const webEventHandlersRef = useRef({
|
423
428
|
onGestureHandlerEvent: e => {
|
424
429
|
onGestureHandlerEvent(e.nativeEvent);
|
@@ -457,6 +462,7 @@ export const GestureDetector = props => {
|
|
457
462
|
|
458
463
|
useEffect(() => {
|
459
464
|
firstRenderRef.current = true;
|
465
|
+
mountedRef.current = true;
|
460
466
|
const viewTag = findNodeHandle(viewRef.current);
|
461
467
|
validateDetectorChildren(viewRef.current);
|
462
468
|
attachHandlers({
|
@@ -467,6 +473,7 @@ export const GestureDetector = props => {
|
|
467
473
|
webEventHandlersRef
|
468
474
|
});
|
469
475
|
return () => {
|
476
|
+
mountedRef.current = false;
|
470
477
|
dropHandlers(preparedGesture);
|
471
478
|
};
|
472
479
|
}, []);
|
@@ -485,7 +492,7 @@ export const GestureDetector = props => {
|
|
485
492
|
webEventHandlersRef
|
486
493
|
});
|
487
494
|
} else {
|
488
|
-
updateHandlers(preparedGesture, gestureConfig, gesture);
|
495
|
+
updateHandlers(preparedGesture, gestureConfig, gesture, mountedRef);
|
489
496
|
}
|
490
497
|
} else {
|
491
498
|
firstRenderRef.current = false;
|