react-native-gesture-handler 2.22.1 → 2.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/RNGestureHandler.podspec +8 -0
- package/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerButtonViewManager.kt +14 -0
- package/android/src/main/jni/cpp-adapter.cpp +19 -12
- package/apple/RNGestureHandler.mm +15 -8
- package/apple/RNGestureHandlerButton.mm +12 -2
- package/apple/RNGestureHandlerModule.mm +17 -5
- package/lib/commonjs/RNGestureHandlerModule.web.js +2 -2
- package/lib/commonjs/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/commonjs/components/DrawerLayout.js +6 -0
- package/lib/commonjs/components/DrawerLayout.js.map +1 -1
- package/lib/commonjs/components/GestureButtons.js +11 -2
- package/lib/commonjs/components/GestureButtons.js.map +1 -1
- package/lib/commonjs/components/Pressable/Pressable.js +21 -5
- package/lib/commonjs/components/Pressable/Pressable.js.map +1 -1
- package/lib/commonjs/components/Pressable/index.js.map +1 -1
- package/lib/commonjs/components/ReanimatedSwipeable.js +49 -20
- package/lib/commonjs/components/ReanimatedSwipeable.js.map +1 -1
- package/lib/commonjs/components/Text.js +10 -4
- package/lib/commonjs/components/Text.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableHighlight.js +2 -0
- package/lib/commonjs/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js +2 -0
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.js +5 -1
- package/lib/commonjs/components/touchables/TouchableNativeFeedback.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableOpacity.js +2 -0
- package/lib/commonjs/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +3 -0
- package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/commonjs/findNodeHandle.web.js +9 -1
- package/lib/commonjs/findNodeHandle.web.js.map +1 -1
- package/lib/commonjs/handlers/FlingGestureHandler.js +8 -0
- package/lib/commonjs/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js +5 -1
- package/lib/commonjs/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/LongPressGestureHandler.js +8 -0
- package/lib/commonjs/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/NativeViewGestureHandler.js +8 -0
- package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PanGestureHandler.js +8 -0
- package/lib/commonjs/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/PinchGestureHandler.js +8 -0
- package/lib/commonjs/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/RotationGestureHandler.js +8 -0
- package/lib/commonjs/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/TapGestureHandler.js +8 -0
- package/lib/commonjs/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/handlers/createHandler.js +6 -2
- package/lib/commonjs/handlers/createHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js +2 -2
- package/lib/commonjs/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js +1 -1
- package/lib/commonjs/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/commonjs/handlers/handlersRegistry.js +7 -2
- package/lib/commonjs/handlers/handlersRegistry.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils.js +3 -3
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/commonjs/web/detectors/RotationGestureDetector.js +22 -22
- package/lib/commonjs/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js +24 -24
- package/lib/commonjs/web/detectors/ScaleGestureDetector.js.map +1 -1
- package/lib/commonjs/web/handlers/FlingGestureHandler.js +6 -6
- package/lib/commonjs/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/GestureHandler.js +112 -92
- package/lib/commonjs/web/handlers/GestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/HoverGestureHandler.js +2 -2
- package/lib/commonjs/web/handlers/HoverGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js +6 -6
- package/lib/commonjs/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js +13 -13
- package/lib/commonjs/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PanGestureHandler.js +15 -15
- package/lib/commonjs/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/PinchGestureHandler.js +15 -15
- package/lib/commonjs/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/RotationGestureHandler.js +12 -12
- package/lib/commonjs/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/commonjs/web/handlers/TapGestureHandler.js +4 -4
- package/lib/commonjs/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/commonjs/web/tools/CircularBuffer.js +15 -15
- package/lib/commonjs/web/tools/CircularBuffer.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js +40 -40
- package/lib/commonjs/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js +32 -13
- package/lib/commonjs/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/commonjs/web/tools/InteractionManager.js +16 -18
- package/lib/commonjs/web/tools/InteractionManager.js.map +1 -1
- package/lib/commonjs/web/tools/NodeManager.js +2 -2
- package/lib/commonjs/web/tools/NodeManager.js.map +1 -1
- package/lib/commonjs/web/tools/PointerTracker.js +18 -18
- package/lib/commonjs/web/tools/PointerTracker.js.map +1 -1
- package/lib/commonjs/web/tools/Vector.js.map +1 -1
- package/lib/commonjs/web/tools/VelocityTracker.js +1 -1
- package/lib/commonjs/web/tools/VelocityTracker.js.map +1 -1
- package/lib/module/RNGestureHandlerModule.web.js +2 -2
- package/lib/module/RNGestureHandlerModule.web.js.map +1 -1
- package/lib/module/components/DrawerLayout.js +7 -0
- package/lib/module/components/DrawerLayout.js.map +1 -1
- package/lib/module/components/GestureButtons.js +10 -2
- package/lib/module/components/GestureButtons.js.map +1 -1
- package/lib/module/components/Pressable/Pressable.js +22 -6
- package/lib/module/components/Pressable/Pressable.js.map +1 -1
- package/lib/module/components/Pressable/index.js.map +1 -1
- package/lib/module/components/ReanimatedSwipeable.js +49 -20
- package/lib/module/components/ReanimatedSwipeable.js.map +1 -1
- package/lib/module/components/Text.js +8 -3
- package/lib/module/components/Text.js.map +1 -1
- package/lib/module/components/touchables/TouchableHighlight.js +2 -0
- package/lib/module/components/touchables/TouchableHighlight.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js +2 -0
- package/lib/module/components/touchables/TouchableNativeFeedback.android.js.map +1 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.js +6 -1
- package/lib/module/components/touchables/TouchableNativeFeedback.js.map +1 -1
- package/lib/module/components/touchables/TouchableOpacity.js +5 -0
- package/lib/module/components/touchables/TouchableOpacity.js.map +1 -1
- package/lib/module/components/touchables/TouchableWithoutFeedback.js +4 -0
- package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +1 -1
- package/lib/module/findNodeHandle.web.js +8 -1
- package/lib/module/findNodeHandle.web.js.map +1 -1
- package/lib/module/handlers/FlingGestureHandler.js +7 -0
- package/lib/module/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js +5 -1
- package/lib/module/handlers/ForceTouchGestureHandler.js.map +1 -1
- package/lib/module/handlers/LongPressGestureHandler.js +7 -0
- package/lib/module/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/handlers/NativeViewGestureHandler.js +7 -0
- package/lib/module/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/handlers/PanGestureHandler.js +7 -0
- package/lib/module/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/handlers/PinchGestureHandler.js +11 -0
- package/lib/module/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/handlers/RotationGestureHandler.js +11 -0
- package/lib/module/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/handlers/TapGestureHandler.js +7 -0
- package/lib/module/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/handlers/createHandler.js +9 -4
- package/lib/module/handlers/createHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/index.js +2 -2
- package/lib/module/handlers/gestures/GestureDetector/index.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js +2 -2
- package/lib/module/handlers/gestures/GestureDetector/useViewRefHandler.js.map +1 -1
- package/lib/module/handlers/gestures/GestureDetector/utils.js +2 -2
- package/lib/module/handlers/gestures/GestureDetector/utils.js.map +1 -1
- package/lib/module/handlers/handlersRegistry.js +6 -3
- package/lib/module/handlers/handlersRegistry.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils.js +2 -2
- package/lib/module/utils.js.map +1 -1
- package/lib/module/web/detectors/RotationGestureDetector.js +22 -22
- package/lib/module/web/detectors/RotationGestureDetector.js.map +1 -1
- package/lib/module/web/detectors/ScaleGestureDetector.js +24 -24
- package/lib/module/web/detectors/ScaleGestureDetector.js.map +1 -1
- package/lib/module/web/handlers/FlingGestureHandler.js +6 -6
- package/lib/module/web/handlers/FlingGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/GestureHandler.js +112 -92
- package/lib/module/web/handlers/GestureHandler.js.map +1 -1
- package/lib/module/web/handlers/HoverGestureHandler.js +2 -2
- package/lib/module/web/handlers/HoverGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/LongPressGestureHandler.js +6 -6
- package/lib/module/web/handlers/LongPressGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/NativeViewGestureHandler.js +13 -13
- package/lib/module/web/handlers/NativeViewGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PanGestureHandler.js +15 -15
- package/lib/module/web/handlers/PanGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/PinchGestureHandler.js +15 -15
- package/lib/module/web/handlers/PinchGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/RotationGestureHandler.js +12 -12
- package/lib/module/web/handlers/RotationGestureHandler.js.map +1 -1
- package/lib/module/web/handlers/TapGestureHandler.js +4 -4
- package/lib/module/web/handlers/TapGestureHandler.js.map +1 -1
- package/lib/module/web/tools/CircularBuffer.js +15 -15
- package/lib/module/web/tools/CircularBuffer.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerOrchestrator.js +40 -40
- package/lib/module/web/tools/GestureHandlerOrchestrator.js.map +1 -1
- package/lib/module/web/tools/GestureHandlerWebDelegate.js +32 -13
- package/lib/module/web/tools/GestureHandlerWebDelegate.js.map +1 -1
- package/lib/module/web/tools/InteractionManager.js +16 -16
- package/lib/module/web/tools/InteractionManager.js.map +1 -1
- package/lib/module/web/tools/NodeManager.js +2 -2
- package/lib/module/web/tools/NodeManager.js.map +1 -1
- package/lib/module/web/tools/PointerTracker.js +18 -18
- package/lib/module/web/tools/PointerTracker.js.map +1 -1
- package/lib/module/web/tools/Vector.js.map +1 -1
- package/lib/module/web/tools/VelocityTracker.js +1 -1
- package/lib/module/web/tools/VelocityTracker.js.map +1 -1
- package/lib/typescript/components/DrawerLayout.d.ts +27 -0
- package/lib/typescript/components/GestureButtonsProps.d.ts +18 -2
- package/lib/typescript/components/Pressable/PressableProps.d.ts +3 -10
- package/lib/typescript/components/Pressable/index.d.ts +1 -1
- package/lib/typescript/components/ReanimatedSwipeable.d.ts +6 -0
- package/lib/typescript/components/touchables/TouchableHighlight.d.ts +5 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.android.d.ts +2 -0
- package/lib/typescript/components/touchables/TouchableNativeFeedback.d.ts +5 -1
- package/lib/typescript/components/touchables/TouchableNativeFeedbackProps.d.ts +3 -0
- package/lib/typescript/components/touchables/TouchableOpacity.d.ts +5 -0
- package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +6 -0
- package/lib/typescript/handlers/FlingGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/ForceTouchGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/LongPressGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/PanGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/PinchGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/RotationGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/TapGestureHandler.d.ts +9 -0
- package/lib/typescript/handlers/handlersRegistry.d.ts +1 -0
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/utils.d.ts +1 -1
- package/lib/typescript/web/detectors/RotationGestureDetector.d.ts +7 -7
- package/lib/typescript/web/detectors/ScaleGestureDetector.d.ts +8 -8
- package/lib/typescript/web/handlers/GestureHandler.d.ts +33 -28
- package/lib/typescript/web/handlers/IGestureHandler.d.ts +12 -13
- package/lib/typescript/web/tools/CircularBuffer.d.ts +3 -3
- package/lib/typescript/web/tools/GestureHandlerDelegate.d.ts +1 -1
- package/lib/typescript/web/tools/GestureHandlerOrchestrator.d.ts +2 -2
- package/lib/typescript/web/tools/GestureHandlerWebDelegate.d.ts +3 -2
- package/lib/typescript/web/tools/InteractionManager.d.ts +2 -2
- package/lib/typescript/web/tools/NodeManager.d.ts +1 -1
- package/lib/typescript/web/tools/PointerTracker.d.ts +4 -4
- package/lib/typescript/web/tools/VelocityTracker.d.ts +1 -1
- package/package.json +2 -2
- package/src/RNGestureHandlerModule.web.ts +2 -2
- package/src/components/DrawerLayout.tsx +29 -0
- package/src/components/GestureButtons.tsx +13 -2
- package/src/components/GestureButtonsProps.ts +31 -2
- package/src/components/Pressable/Pressable.tsx +22 -5
- package/src/components/Pressable/PressableProps.tsx +4 -11
- package/src/components/Pressable/index.ts +4 -1
- package/src/components/ReanimatedSwipeable.tsx +97 -66
- package/src/components/Text.tsx +13 -4
- package/src/components/touchables/TouchableHighlight.tsx +5 -0
- package/src/components/touchables/TouchableNativeFeedback.android.tsx +2 -0
- package/src/components/touchables/TouchableNativeFeedback.tsx +6 -1
- package/src/components/touchables/TouchableNativeFeedbackProps.tsx +3 -0
- package/src/components/touchables/TouchableOpacity.tsx +5 -0
- package/src/components/touchables/TouchableWithoutFeedback.tsx +6 -0
- package/src/findNodeHandle.web.ts +6 -0
- package/src/handlers/FlingGestureHandler.ts +10 -0
- package/src/handlers/ForceTouchGestureHandler.ts +9 -0
- package/src/handlers/LongPressGestureHandler.ts +10 -0
- package/src/handlers/NativeViewGestureHandler.ts +10 -0
- package/src/handlers/PanGestureHandler.ts +10 -0
- package/src/handlers/PinchGestureHandler.ts +10 -0
- package/src/handlers/RotationGestureHandler.ts +10 -0
- package/src/handlers/TapGestureHandler.ts +10 -0
- package/src/handlers/createHandler.tsx +11 -4
- package/src/handlers/gestures/GestureDetector/index.tsx +2 -2
- package/src/handlers/gestures/GestureDetector/useViewRefHandler.ts +3 -3
- package/src/handlers/gestures/GestureDetector/utils.ts +2 -2
- package/src/handlers/handlersRegistry.ts +7 -3
- package/src/index.ts +4 -1
- package/src/utils.ts +2 -2
- package/src/web/detectors/RotationGestureDetector.ts +22 -22
- package/src/web/detectors/ScaleGestureDetector.ts +24 -24
- package/src/web/handlers/FlingGestureHandler.ts +6 -7
- package/src/web/handlers/GestureHandler.ts +115 -105
- package/src/web/handlers/HoverGestureHandler.ts +2 -2
- package/src/web/handlers/IGestureHandler.ts +12 -13
- package/src/web/handlers/LongPressGestureHandler.ts +7 -7
- package/src/web/handlers/NativeViewGestureHandler.ts +14 -19
- package/src/web/handlers/PanGestureHandler.ts +17 -17
- package/src/web/handlers/PinchGestureHandler.ts +17 -21
- package/src/web/handlers/RotationGestureHandler.ts +12 -12
- package/src/web/handlers/TapGestureHandler.ts +4 -6
- package/src/web/tools/CircularBuffer.ts +15 -15
- package/src/web/tools/GestureHandlerDelegate.ts +1 -1
- package/src/web/tools/GestureHandlerOrchestrator.ts +42 -42
- package/src/web/tools/GestureHandlerWebDelegate.ts +32 -13
- package/src/web/tools/InteractionManager.ts +16 -16
- package/src/web/tools/NodeManager.ts +2 -2
- package/src/web/tools/PointerTracker.ts +20 -20
- package/src/web/tools/Vector.ts +1 -1
- package/src/web/tools/VelocityTracker.ts +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["FlingGestureHandler.ts"],"names":["State","DiagonalDirections","Directions","GestureHandler","Vector","coneToDeviation","DEFAULT_MAX_DURATION_MS","DEFAULT_MIN_VELOCITY","DEFAULT_ALIGNMENT_CONE","DEFAULT_DIRECTION","RIGHT","DEFAULT_NUMBER_OF_TOUCHES_REQUIRED","AXIAL_DEVIATION_COSINE","DIAGONAL_DEVIATION_COSINE","FlingGestureHandler","NaN","updateGestureConfig","enabled","props","config","direction","numberOfPointers","numberOfPointersRequired","startFling","begin","maxNumberOfPointersSimultaneously","delayTimeout","setTimeout","fail","maxDurationMs","tryEndFling","velocityVector","fromVelocity","tracker","keyPointer","getAlignment","minimalAlignmentCosine","isSimilar","fromDirection","axialDirectionsList","Object","values","diagonalDirectionsList","axialAlignmentList","map","diagonalAlignmentList","isAligned","some","Boolean","isFast","magnitude","minVelocity","clearTimeout","activate","endFling","onPointerDown","event","isButtonInConfig","button","addToTracker","pointerId","newPointerAction","tryToSendTouchEvent","onPointerAdd","currentState","UNDETERMINED","BEGAN","getTrackedPointersCount","pointerMoveAction","track","onPointerMove","onPointerOutOfBounds","onPointerUp","onUp","onPointerRemove","removeFromTracker","force","end","resetConfig"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { DiagonalDirections, Directions } from '../../Directions';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nimport Vector from '../tools/Vector';\nimport { coneToDeviation } from '../utils';\n\nconst DEFAULT_MAX_DURATION_MS = 800;\nconst DEFAULT_MIN_VELOCITY = 700;\nconst DEFAULT_ALIGNMENT_CONE = 30;\nconst DEFAULT_DIRECTION = Directions.RIGHT;\nconst DEFAULT_NUMBER_OF_TOUCHES_REQUIRED = 1;\n\nconst AXIAL_DEVIATION_COSINE = coneToDeviation(DEFAULT_ALIGNMENT_CONE);\nconst DIAGONAL_DEVIATION_COSINE = coneToDeviation(90 - DEFAULT_ALIGNMENT_CONE);\n\nexport default class FlingGestureHandler extends GestureHandler {\n private numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;\n private direction: Directions = DEFAULT_DIRECTION;\n\n private maxDurationMs = DEFAULT_MAX_DURATION_MS;\n private minVelocity = DEFAULT_MIN_VELOCITY;\n private delayTimeout!: number;\n\n private maxNumberOfPointersSimultaneously = 0;\n private keyPointer = NaN;\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n if (this.config.direction) {\n this.direction = this.config.direction;\n }\n\n if (this.config.numberOfPointers) {\n this.numberOfPointersRequired = this.config.numberOfPointers;\n }\n }\n\n private startFling(): void {\n this.begin();\n\n this.maxNumberOfPointersSimultaneously = 1;\n\n this.delayTimeout = setTimeout(() => this.fail(), this.maxDurationMs);\n }\n\n private tryEndFling(): boolean {\n const velocityVector = Vector.fromVelocity(this.tracker, this.keyPointer);\n\n const getAlignment = (\n direction: Directions | DiagonalDirections,\n minimalAlignmentCosine: number\n ) => {\n return (\n (direction & this.direction) === direction &&\n velocityVector.isSimilar(\n Vector.fromDirection(direction),\n minimalAlignmentCosine\n )\n );\n };\n\n const axialDirectionsList = Object.values(Directions);\n const diagonalDirectionsList = Object.values(DiagonalDirections);\n\n // List of alignments to all activated directions\n const axialAlignmentList = axialDirectionsList.map((direction) =>\n getAlignment(direction, AXIAL_DEVIATION_COSINE)\n );\n\n const diagonalAlignmentList = diagonalDirectionsList.map((direction) =>\n getAlignment(direction, DIAGONAL_DEVIATION_COSINE)\n );\n\n const isAligned =\n axialAlignmentList.some(Boolean) || diagonalAlignmentList.some(Boolean);\n\n const isFast = velocityVector.magnitude > this.minVelocity;\n\n if (\n this.maxNumberOfPointersSimultaneously ===\n this.numberOfPointersRequired &&\n isAligned &&\n isFast\n ) {\n clearTimeout(this.delayTimeout);\n this.activate();\n\n return true;\n }\n\n return false;\n }\n\n private endFling() {\n if (!this.tryEndFling()) {\n this.fail();\n }\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n if (!this.isButtonInConfig(event.button)) {\n return;\n }\n\n this.tracker.addToTracker(event);\n this.keyPointer = event.pointerId;\n\n super.onPointerDown(event);\n this.newPointerAction();\n\n this.tryToSendTouchEvent(event);\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 if (this.currentState === State.UNDETERMINED) {\n this.startFling();\n }\n\n if (this.currentState !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling();\n\n if (\n this.tracker.getTrackedPointersCount() >\n this.maxNumberOfPointersSimultaneously\n ) {\n this.maxNumberOfPointersSimultaneously =\n this.tracker.getTrackedPointersCount();\n }\n }\n\n private pointerMoveAction(event: AdaptedEvent): void {\n this.tracker.track(event);\n\n if (this.currentState !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling();\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.pointerMoveAction(event);\n super.onPointerMove(event);\n }\n\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n this.pointerMoveAction(event);\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.onUp(event);\n\n this.keyPointer = NaN;\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 if (this.currentState === State.BEGAN) {\n this.endFling();\n }\n\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n public activate(force?: boolean): void {\n super.activate(force);\n this.end();\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n this.numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;\n this.direction = DEFAULT_DIRECTION;\n }\n}\n"]}
|
1
|
+
{"version":3,"sources":["FlingGestureHandler.ts"],"names":["State","DiagonalDirections","Directions","GestureHandler","Vector","coneToDeviation","DEFAULT_MAX_DURATION_MS","DEFAULT_MIN_VELOCITY","DEFAULT_ALIGNMENT_CONE","DEFAULT_DIRECTION","RIGHT","DEFAULT_NUMBER_OF_TOUCHES_REQUIRED","AXIAL_DEVIATION_COSINE","DIAGONAL_DEVIATION_COSINE","FlingGestureHandler","NaN","updateGestureConfig","enabled","props","config","direction","numberOfPointers","numberOfPointersRequired","startFling","begin","maxNumberOfPointersSimultaneously","delayTimeout","setTimeout","fail","maxDurationMs","tryEndFling","velocityVector","fromVelocity","tracker","keyPointer","getAlignment","minimalAlignmentCosine","isSimilar","fromDirection","axialDirectionsList","Object","values","diagonalDirectionsList","axialAlignmentList","map","diagonalAlignmentList","isAligned","some","Boolean","isFast","magnitude","minVelocity","clearTimeout","activate","endFling","onPointerDown","event","isButtonInConfig","button","addToTracker","pointerId","newPointerAction","tryToSendTouchEvent","onPointerAdd","state","UNDETERMINED","BEGAN","trackedPointersCount","pointerMoveAction","track","onPointerMove","onPointerOutOfBounds","onPointerUp","onUp","onPointerRemove","removeFromTracker","force","end","resetConfig"],"mappings":"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","sourcesContent":["import { State } from '../../State';\nimport { DiagonalDirections, Directions } from '../../Directions';\nimport { AdaptedEvent, Config } from '../interfaces';\n\nimport GestureHandler from './GestureHandler';\nimport Vector from '../tools/Vector';\nimport { coneToDeviation } from '../utils';\n\nconst DEFAULT_MAX_DURATION_MS = 800;\nconst DEFAULT_MIN_VELOCITY = 700;\nconst DEFAULT_ALIGNMENT_CONE = 30;\nconst DEFAULT_DIRECTION = Directions.RIGHT;\nconst DEFAULT_NUMBER_OF_TOUCHES_REQUIRED = 1;\n\nconst AXIAL_DEVIATION_COSINE = coneToDeviation(DEFAULT_ALIGNMENT_CONE);\nconst DIAGONAL_DEVIATION_COSINE = coneToDeviation(90 - DEFAULT_ALIGNMENT_CONE);\n\nexport default class FlingGestureHandler extends GestureHandler {\n private numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;\n private direction: Directions = DEFAULT_DIRECTION;\n\n private maxDurationMs = DEFAULT_MAX_DURATION_MS;\n private minVelocity = DEFAULT_MIN_VELOCITY;\n private delayTimeout!: number;\n\n private maxNumberOfPointersSimultaneously = 0;\n private keyPointer = NaN;\n\n public updateGestureConfig({ enabled = true, ...props }: Config): void {\n super.updateGestureConfig({ enabled: enabled, ...props });\n\n if (this.config.direction) {\n this.direction = this.config.direction;\n }\n\n if (this.config.numberOfPointers) {\n this.numberOfPointersRequired = this.config.numberOfPointers;\n }\n }\n\n private startFling(): void {\n this.begin();\n\n this.maxNumberOfPointersSimultaneously = 1;\n\n this.delayTimeout = setTimeout(() => this.fail(), this.maxDurationMs);\n }\n\n private tryEndFling(): boolean {\n const velocityVector = Vector.fromVelocity(this.tracker, this.keyPointer);\n\n const getAlignment = (\n direction: Directions | DiagonalDirections,\n minimalAlignmentCosine: number\n ) => {\n return (\n (direction & this.direction) === direction &&\n velocityVector.isSimilar(\n Vector.fromDirection(direction),\n minimalAlignmentCosine\n )\n );\n };\n\n const axialDirectionsList = Object.values(Directions);\n const diagonalDirectionsList = Object.values(DiagonalDirections);\n\n // List of alignments to all activated directions\n const axialAlignmentList = axialDirectionsList.map((direction) =>\n getAlignment(direction, AXIAL_DEVIATION_COSINE)\n );\n\n const diagonalAlignmentList = diagonalDirectionsList.map((direction) =>\n getAlignment(direction, DIAGONAL_DEVIATION_COSINE)\n );\n\n const isAligned =\n axialAlignmentList.some(Boolean) || diagonalAlignmentList.some(Boolean);\n\n const isFast = velocityVector.magnitude > this.minVelocity;\n\n if (\n this.maxNumberOfPointersSimultaneously ===\n this.numberOfPointersRequired &&\n isAligned &&\n isFast\n ) {\n clearTimeout(this.delayTimeout);\n this.activate();\n\n return true;\n }\n\n return false;\n }\n\n private endFling() {\n if (!this.tryEndFling()) {\n this.fail();\n }\n }\n\n protected onPointerDown(event: AdaptedEvent): void {\n if (!this.isButtonInConfig(event.button)) {\n return;\n }\n\n this.tracker.addToTracker(event);\n this.keyPointer = event.pointerId;\n\n super.onPointerDown(event);\n this.newPointerAction();\n\n this.tryToSendTouchEvent(event);\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 if (this.state === State.UNDETERMINED) {\n this.startFling();\n }\n\n if (this.state !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling();\n\n if (\n this.tracker.trackedPointersCount > this.maxNumberOfPointersSimultaneously\n ) {\n this.maxNumberOfPointersSimultaneously =\n this.tracker.trackedPointersCount;\n }\n }\n\n private pointerMoveAction(event: AdaptedEvent): void {\n this.tracker.track(event);\n\n if (this.state !== State.BEGAN) {\n return;\n }\n\n this.tryEndFling();\n }\n\n protected onPointerMove(event: AdaptedEvent): void {\n this.pointerMoveAction(event);\n super.onPointerMove(event);\n }\n\n protected onPointerOutOfBounds(event: AdaptedEvent): void {\n this.pointerMoveAction(event);\n super.onPointerOutOfBounds(event);\n }\n\n protected onPointerUp(event: AdaptedEvent): void {\n super.onPointerUp(event);\n this.onUp(event);\n\n this.keyPointer = NaN;\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 if (this.state === State.BEGAN) {\n this.endFling();\n }\n\n this.tracker.removeFromTracker(event.pointerId);\n }\n\n public activate(force?: boolean): void {\n super.activate(force);\n this.end();\n }\n\n protected resetConfig(): void {\n super.resetConfig();\n this.numberOfPointersRequired = DEFAULT_NUMBER_OF_TOUCHES_REQUIRED;\n this.direction = DEFAULT_DIRECTION;\n }\n}\n"]}
|
@@ -13,37 +13,37 @@ export default class GestureHandler {
|
|
13
13
|
constructor(delegate) {
|
14
14
|
_defineProperty(this, "lastSentState", null);
|
15
15
|
|
16
|
-
_defineProperty(this, "
|
16
|
+
_defineProperty(this, "_state", State.UNDETERMINED);
|
17
17
|
|
18
|
-
_defineProperty(this, "
|
18
|
+
_defineProperty(this, "_shouldCancelWhenOutside", false);
|
19
19
|
|
20
20
|
_defineProperty(this, "hasCustomActivationCriteria", false);
|
21
21
|
|
22
|
-
_defineProperty(this, "
|
22
|
+
_defineProperty(this, "_enabled", false);
|
23
23
|
|
24
24
|
_defineProperty(this, "viewRef", void 0);
|
25
25
|
|
26
26
|
_defineProperty(this, "propsRef", void 0);
|
27
27
|
|
28
|
-
_defineProperty(this, "
|
28
|
+
_defineProperty(this, "_handlerTag", void 0);
|
29
29
|
|
30
|
-
_defineProperty(this, "
|
30
|
+
_defineProperty(this, "_config", {
|
31
31
|
enabled: false
|
32
32
|
});
|
33
33
|
|
34
|
-
_defineProperty(this, "
|
34
|
+
_defineProperty(this, "_tracker", new PointerTracker());
|
35
35
|
|
36
|
-
_defineProperty(this, "
|
36
|
+
_defineProperty(this, "_activationIndex", 0);
|
37
37
|
|
38
|
-
_defineProperty(this, "
|
38
|
+
_defineProperty(this, "_awaiting", false);
|
39
39
|
|
40
|
-
_defineProperty(this, "
|
40
|
+
_defineProperty(this, "_active", false);
|
41
41
|
|
42
|
-
_defineProperty(this, "
|
42
|
+
_defineProperty(this, "_shouldResetProgress", false);
|
43
43
|
|
44
|
-
_defineProperty(this, "
|
44
|
+
_defineProperty(this, "_pointerType", PointerType.MOUSE);
|
45
45
|
|
46
|
-
_defineProperty(this, "
|
46
|
+
_defineProperty(this, "_delegate", void 0);
|
47
47
|
|
48
48
|
_defineProperty(this, "sendEvent", (newState, oldState) => {
|
49
49
|
const {
|
@@ -60,13 +60,13 @@ export default class GestureHandler {
|
|
60
60
|
invokeNullableMethod(onGestureHandlerStateChange, resultEvent);
|
61
61
|
}
|
62
62
|
|
63
|
-
if (this.
|
63
|
+
if (this.state === State.ACTIVE) {
|
64
64
|
resultEvent.nativeEvent.oldState = undefined;
|
65
65
|
invokeNullableMethod(onGestureHandlerEvent, resultEvent);
|
66
66
|
}
|
67
67
|
});
|
68
68
|
|
69
|
-
this.
|
69
|
+
this._delegate = delegate;
|
70
70
|
} //
|
71
71
|
// Initializing handler
|
72
72
|
//
|
@@ -75,7 +75,7 @@ export default class GestureHandler {
|
|
75
75
|
init(viewRef, propsRef) {
|
76
76
|
this.propsRef = propsRef;
|
77
77
|
this.viewRef = viewRef;
|
78
|
-
this.
|
78
|
+
this.state = State.UNDETERMINED;
|
79
79
|
this.delegate.init(viewRef, this);
|
80
80
|
}
|
81
81
|
|
@@ -109,29 +109,29 @@ export default class GestureHandler {
|
|
109
109
|
this.onReset();
|
110
110
|
this.resetProgress();
|
111
111
|
this.delegate.reset();
|
112
|
-
this.
|
112
|
+
this.state = State.UNDETERMINED;
|
113
113
|
} //
|
114
114
|
// State logic
|
115
115
|
//
|
116
116
|
|
117
117
|
|
118
118
|
moveToState(newState, sendIfDisabled) {
|
119
|
-
if (this.
|
119
|
+
if (this.state === newState) {
|
120
120
|
return;
|
121
121
|
}
|
122
122
|
|
123
|
-
const oldState = this.
|
124
|
-
this.
|
123
|
+
const oldState = this.state;
|
124
|
+
this.state = newState;
|
125
125
|
|
126
|
-
if (this.tracker.
|
126
|
+
if (this.tracker.trackedPointersCount > 0 && this.config.needsPointerData && this.isFinished()) {
|
127
127
|
this.cancelTouches();
|
128
128
|
}
|
129
129
|
|
130
|
-
GestureHandlerOrchestrator.
|
130
|
+
GestureHandlerOrchestrator.instance.onHandlerStateChange(this, newState, oldState, sendIfDisabled);
|
131
131
|
this.onStateChange(newState, oldState);
|
132
132
|
|
133
133
|
if (!this.enabled && this.isFinished()) {
|
134
|
-
this.
|
134
|
+
this.state = State.UNDETERMINED;
|
135
135
|
}
|
136
136
|
}
|
137
137
|
|
@@ -142,7 +142,7 @@ export default class GestureHandler {
|
|
142
142
|
return;
|
143
143
|
}
|
144
144
|
|
145
|
-
if (this.
|
145
|
+
if (this.state === State.UNDETERMINED) {
|
146
146
|
this.moveToState(State.BEGAN);
|
147
147
|
}
|
148
148
|
}
|
@@ -152,7 +152,7 @@ export default class GestureHandler {
|
|
152
152
|
|
153
153
|
|
154
154
|
fail(sendIfDisabled) {
|
155
|
-
if (this.
|
155
|
+
if (this.state === State.ACTIVE || this.state === State.BEGAN) {
|
156
156
|
// Here the order of calling the delegate and moveToState is important.
|
157
157
|
// At this point we can use currentState as previuos state, because immediately after changing cursor we call moveToState method.
|
158
158
|
this.delegate.onFail();
|
@@ -167,7 +167,7 @@ export default class GestureHandler {
|
|
167
167
|
|
168
168
|
|
169
169
|
cancel(sendIfDisabled) {
|
170
|
-
if (this.
|
170
|
+
if (this.state === State.ACTIVE || this.state === State.UNDETERMINED || this.state === State.BEGAN) {
|
171
171
|
this.onCancel(); // Same as above - order matters
|
172
172
|
|
173
173
|
this.delegate.onCancel();
|
@@ -176,14 +176,14 @@ export default class GestureHandler {
|
|
176
176
|
}
|
177
177
|
|
178
178
|
activate(force = false) {
|
179
|
-
if ((this.config.manualActivation !== true || force) && (this.
|
179
|
+
if ((this.config.manualActivation !== true || force) && (this.state === State.UNDETERMINED || this.state === State.BEGAN)) {
|
180
180
|
this.delegate.onActivate();
|
181
181
|
this.moveToState(State.ACTIVE);
|
182
182
|
}
|
183
183
|
}
|
184
184
|
|
185
185
|
end() {
|
186
|
-
if (this.
|
186
|
+
if (this.state === State.BEGAN || this.state === State.ACTIVE) {
|
187
187
|
// Same as above - order matters
|
188
188
|
this.delegate.onEnd();
|
189
189
|
this.moveToState(State.END);
|
@@ -195,22 +195,6 @@ export default class GestureHandler {
|
|
195
195
|
//
|
196
196
|
|
197
197
|
|
198
|
-
isAwaiting() {
|
199
|
-
return this.awaiting;
|
200
|
-
}
|
201
|
-
|
202
|
-
setAwaiting(value) {
|
203
|
-
this.awaiting = value;
|
204
|
-
}
|
205
|
-
|
206
|
-
isActive() {
|
207
|
-
return this.active;
|
208
|
-
}
|
209
|
-
|
210
|
-
setActive(value) {
|
211
|
-
this.active = value;
|
212
|
-
}
|
213
|
-
|
214
198
|
getShouldResetProgress() {
|
215
199
|
return this.shouldResetProgress;
|
216
200
|
}
|
@@ -219,20 +203,12 @@ export default class GestureHandler {
|
|
219
203
|
this.shouldResetProgress = value;
|
220
204
|
}
|
221
205
|
|
222
|
-
getActivationIndex() {
|
223
|
-
return this.activationIndex;
|
224
|
-
}
|
225
|
-
|
226
|
-
setActivationIndex(value) {
|
227
|
-
this.activationIndex = value;
|
228
|
-
}
|
229
|
-
|
230
206
|
shouldWaitForHandlerFailure(handler) {
|
231
207
|
if (handler === this) {
|
232
208
|
return false;
|
233
209
|
}
|
234
210
|
|
235
|
-
return InteractionManager.
|
211
|
+
return InteractionManager.instance.shouldWaitForHandlerFailure(this, handler);
|
236
212
|
}
|
237
213
|
|
238
214
|
shouldRequireToWaitForFailure(handler) {
|
@@ -240,7 +216,7 @@ export default class GestureHandler {
|
|
240
216
|
return false;
|
241
217
|
}
|
242
218
|
|
243
|
-
return InteractionManager.
|
219
|
+
return InteractionManager.instance.shouldRequireHandlerToWaitForFailure(this, handler);
|
244
220
|
}
|
245
221
|
|
246
222
|
shouldRecognizeSimultaneously(handler) {
|
@@ -248,7 +224,7 @@ export default class GestureHandler {
|
|
248
224
|
return true;
|
249
225
|
}
|
250
226
|
|
251
|
-
return InteractionManager.
|
227
|
+
return InteractionManager.instance.shouldRecognizeSimultaneously(this, handler);
|
252
228
|
}
|
253
229
|
|
254
230
|
shouldBeCancelledByOther(handler) {
|
@@ -256,18 +232,18 @@ export default class GestureHandler {
|
|
256
232
|
return false;
|
257
233
|
}
|
258
234
|
|
259
|
-
return InteractionManager.
|
235
|
+
return InteractionManager.instance.shouldHandlerBeCancelledBy(this, handler);
|
260
236
|
} //
|
261
237
|
// Event actions
|
262
238
|
//
|
263
239
|
|
264
240
|
|
265
241
|
onPointerDown(event) {
|
266
|
-
GestureHandlerOrchestrator.
|
242
|
+
GestureHandlerOrchestrator.instance.recordHandlerIfNotPresent(this);
|
267
243
|
this.pointerType = event.pointerType;
|
268
244
|
|
269
245
|
if (this.pointerType === PointerType.TOUCH) {
|
270
|
-
GestureHandlerOrchestrator.
|
246
|
+
GestureHandlerOrchestrator.instance.cancelMouseAndPenGestures(this);
|
271
247
|
} // TODO: Bring back touch events along with introducing `handleDown` method that will handle handler specific stuff
|
272
248
|
|
273
249
|
} // Adding another pointer to existing ones
|
@@ -292,7 +268,7 @@ export default class GestureHandler {
|
|
292
268
|
|
293
269
|
onPointerLeave(event) {
|
294
270
|
if (this.shouldCancelWhenOutside) {
|
295
|
-
switch (this.
|
271
|
+
switch (this.state) {
|
296
272
|
case State.ACTIVE:
|
297
273
|
this.cancel();
|
298
274
|
break;
|
@@ -337,7 +313,7 @@ export default class GestureHandler {
|
|
337
313
|
}
|
338
314
|
|
339
315
|
if (this.active) {
|
340
|
-
this.sendEvent(this.
|
316
|
+
this.sendEvent(this.state, this.state);
|
341
317
|
}
|
342
318
|
|
343
319
|
this.tryToSendTouchEvent(event);
|
@@ -370,7 +346,7 @@ export default class GestureHandler {
|
|
370
346
|
transformEventData(newState, oldState) {
|
371
347
|
return {
|
372
348
|
nativeEvent: {
|
373
|
-
numberOfPointers: this.tracker.
|
349
|
+
numberOfPointers: this.tracker.trackedPointersCount,
|
374
350
|
state: newState,
|
375
351
|
pointerInside: this.delegate.isPointerInBounds(this.tracker.getAbsoluteCoordsAverage()),
|
376
352
|
...this.transformNativeEvent(),
|
@@ -387,7 +363,7 @@ export default class GestureHandler {
|
|
387
363
|
const rect = this.delegate.measureView();
|
388
364
|
const all = [];
|
389
365
|
const changed = [];
|
390
|
-
const trackerData = this.tracker.
|
366
|
+
const trackerData = this.tracker.trackedPointers; // This if handles edge case where all pointers have been cancelled
|
391
367
|
// When pointercancel is triggered, reset method is called. This means that tracker will be reset after first pointer being cancelled
|
392
368
|
// The problem is, that handler will receive another pointercancel event from the rest of the pointers
|
393
369
|
// To avoid crashing, we don't send event if tracker tracks no pointers, i.e. has been reset
|
@@ -463,7 +439,7 @@ export default class GestureHandler {
|
|
463
439
|
return {
|
464
440
|
nativeEvent: {
|
465
441
|
handlerTag: this.handlerTag,
|
466
|
-
state: this.
|
442
|
+
state: this.state,
|
467
443
|
eventType: eventType,
|
468
444
|
changedTouches: changed,
|
469
445
|
allTouches: all,
|
@@ -478,7 +454,7 @@ export default class GestureHandler {
|
|
478
454
|
const rect = this.delegate.measureView();
|
479
455
|
const all = [];
|
480
456
|
const changed = [];
|
481
|
-
const trackerData = this.tracker.
|
457
|
+
const trackerData = this.tracker.trackedPointers;
|
482
458
|
|
483
459
|
if (trackerData.size === 0) {
|
484
460
|
return;
|
@@ -504,7 +480,7 @@ export default class GestureHandler {
|
|
504
480
|
const cancelEvent = {
|
505
481
|
nativeEvent: {
|
506
482
|
handlerTag: this.handlerTag,
|
507
|
-
state: this.
|
483
|
+
state: this.state,
|
508
484
|
eventType: TouchEventType.CANCELLED,
|
509
485
|
changedTouches: changed,
|
510
486
|
allTouches: all,
|
@@ -538,7 +514,7 @@ export default class GestureHandler {
|
|
538
514
|
enabled = true,
|
539
515
|
...props
|
540
516
|
}) {
|
541
|
-
this.
|
517
|
+
this._config = {
|
542
518
|
enabled: enabled,
|
543
519
|
...props
|
544
520
|
};
|
@@ -546,7 +522,7 @@ export default class GestureHandler {
|
|
546
522
|
this.delegate.onEnabledChange(enabled);
|
547
523
|
|
548
524
|
if (this.config.shouldCancelWhenOutside !== undefined) {
|
549
|
-
this.
|
525
|
+
this.shouldCancelWhenOutside = this.config.shouldCancelWhenOutside;
|
550
526
|
}
|
551
527
|
|
552
528
|
this.validateHitSlops();
|
@@ -555,13 +531,13 @@ export default class GestureHandler {
|
|
555
531
|
return;
|
556
532
|
}
|
557
533
|
|
558
|
-
switch (this.
|
534
|
+
switch (this.state) {
|
559
535
|
case State.ACTIVE:
|
560
536
|
this.fail(true);
|
561
537
|
break;
|
562
538
|
|
563
539
|
case State.UNDETERMINED:
|
564
|
-
GestureHandlerOrchestrator.
|
540
|
+
GestureHandlerOrchestrator.instance.removeHandlerFromOrchestrator(this);
|
565
541
|
break;
|
566
542
|
|
567
543
|
default:
|
@@ -679,52 +655,96 @@ export default class GestureHandler {
|
|
679
655
|
//
|
680
656
|
|
681
657
|
|
682
|
-
|
683
|
-
return this.
|
658
|
+
get handlerTag() {
|
659
|
+
return this._handlerTag;
|
684
660
|
}
|
685
661
|
|
686
|
-
|
687
|
-
this.
|
662
|
+
set handlerTag(value) {
|
663
|
+
this._handlerTag = value;
|
688
664
|
}
|
689
665
|
|
690
|
-
|
691
|
-
return this.
|
666
|
+
get config() {
|
667
|
+
return this._config;
|
692
668
|
}
|
693
669
|
|
694
|
-
|
695
|
-
return this.
|
670
|
+
get delegate() {
|
671
|
+
return this._delegate;
|
696
672
|
}
|
697
673
|
|
698
|
-
|
699
|
-
return this.
|
674
|
+
get tracker() {
|
675
|
+
return this._tracker;
|
700
676
|
}
|
701
677
|
|
702
|
-
|
703
|
-
return this.
|
678
|
+
get state() {
|
679
|
+
return this._state;
|
704
680
|
}
|
705
681
|
|
706
|
-
|
707
|
-
|
682
|
+
set state(value) {
|
683
|
+
this._state = value;
|
708
684
|
}
|
709
685
|
|
710
|
-
|
711
|
-
return this.
|
686
|
+
get shouldCancelWhenOutside() {
|
687
|
+
return this._shouldCancelWhenOutside;
|
712
688
|
}
|
713
689
|
|
714
|
-
|
715
|
-
|
690
|
+
set shouldCancelWhenOutside(value) {
|
691
|
+
this._shouldCancelWhenOutside = value;
|
692
|
+
}
|
693
|
+
|
694
|
+
get enabled() {
|
695
|
+
return this._enabled;
|
696
|
+
}
|
697
|
+
|
698
|
+
set enabled(value) {
|
699
|
+
this._enabled = value;
|
700
|
+
}
|
701
|
+
|
702
|
+
get pointerType() {
|
703
|
+
return this._pointerType;
|
704
|
+
}
|
705
|
+
|
706
|
+
set pointerType(value) {
|
707
|
+
this._pointerType = value;
|
708
|
+
}
|
709
|
+
|
710
|
+
get active() {
|
711
|
+
return this._active;
|
716
712
|
}
|
717
713
|
|
718
|
-
|
719
|
-
this.
|
714
|
+
set active(value) {
|
715
|
+
this._active = value;
|
720
716
|
}
|
721
717
|
|
722
|
-
|
723
|
-
return this.
|
718
|
+
get awaiting() {
|
719
|
+
return this._awaiting;
|
724
720
|
}
|
725
721
|
|
726
|
-
|
727
|
-
|
722
|
+
set awaiting(value) {
|
723
|
+
this._awaiting = value;
|
724
|
+
}
|
725
|
+
|
726
|
+
get activationIndex() {
|
727
|
+
return this._activationIndex;
|
728
|
+
}
|
729
|
+
|
730
|
+
set activationIndex(value) {
|
731
|
+
this._activationIndex = value;
|
732
|
+
}
|
733
|
+
|
734
|
+
get shouldResetProgress() {
|
735
|
+
return this._shouldResetProgress;
|
736
|
+
}
|
737
|
+
|
738
|
+
set shouldResetProgress(value) {
|
739
|
+
this._shouldResetProgress = value;
|
740
|
+
}
|
741
|
+
|
742
|
+
getTrackedPointersID() {
|
743
|
+
return this.tracker.trackedPointersIDs;
|
744
|
+
}
|
745
|
+
|
746
|
+
isFinished() {
|
747
|
+
return this.state === State.END || this.state === State.FAILED || this.state === State.CANCELLED;
|
728
748
|
}
|
729
749
|
|
730
750
|
}
|