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
@@ -22,7 +22,8 @@ export class GestureHandlerWebDelegate
|
|
22
22
|
implements GestureHandlerDelegate<HTMLElement, IGestureHandler>
|
23
23
|
{
|
24
24
|
private isInitialized = false;
|
25
|
-
private
|
25
|
+
private _view!: HTMLElement;
|
26
|
+
|
26
27
|
private gestureHandler!: IGestureHandler;
|
27
28
|
private eventManagers: EventManager<unknown>[] = [];
|
28
29
|
private defaultViewStyles: DefaultViewStyles = {
|
@@ -30,14 +31,10 @@ export class GestureHandlerWebDelegate
|
|
30
31
|
touchAction: '',
|
31
32
|
};
|
32
33
|
|
33
|
-
getView(): HTMLElement {
|
34
|
-
return this.view;
|
35
|
-
}
|
36
|
-
|
37
34
|
init(viewRef: number, handler: IGestureHandler): void {
|
38
35
|
if (!viewRef) {
|
39
36
|
throw new Error(
|
40
|
-
`Cannot find HTML Element for handler ${handler.
|
37
|
+
`Cannot find HTML Element for handler ${handler.handlerTag}`
|
41
38
|
);
|
42
39
|
}
|
43
40
|
|
@@ -51,7 +48,7 @@ export class GestureHandlerWebDelegate
|
|
51
48
|
touchAction: this.view.style.touchAction,
|
52
49
|
};
|
53
50
|
|
54
|
-
const config = handler.
|
51
|
+
const config = handler.config;
|
55
52
|
|
56
53
|
this.setUserSelect(config.enabled);
|
57
54
|
this.setTouchAction(config.enabled);
|
@@ -88,12 +85,12 @@ export class GestureHandlerWebDelegate
|
|
88
85
|
}
|
89
86
|
|
90
87
|
tryResetCursor() {
|
91
|
-
const config = this.gestureHandler.
|
88
|
+
const config = this.gestureHandler.config;
|
92
89
|
|
93
90
|
if (
|
94
91
|
config.activeCursor &&
|
95
92
|
config.activeCursor !== 'auto' &&
|
96
|
-
this.gestureHandler.
|
93
|
+
this.gestureHandler.state === State.ACTIVE
|
97
94
|
) {
|
98
95
|
this.view.style.cursor = 'auto';
|
99
96
|
}
|
@@ -132,7 +129,7 @@ export class GestureHandlerWebDelegate
|
|
132
129
|
}
|
133
130
|
|
134
131
|
private setUserSelect(isHandlerEnabled: boolean) {
|
135
|
-
const { userSelect } = this.gestureHandler.
|
132
|
+
const { userSelect } = this.gestureHandler.config;
|
136
133
|
|
137
134
|
this.view.style['userSelect'] = isHandlerEnabled
|
138
135
|
? (userSelect ?? 'none')
|
@@ -144,7 +141,7 @@ export class GestureHandlerWebDelegate
|
|
144
141
|
}
|
145
142
|
|
146
143
|
private setTouchAction(isHandlerEnabled: boolean) {
|
147
|
-
const { touchAction } = this.gestureHandler.
|
144
|
+
const { touchAction } = this.gestureHandler.config;
|
148
145
|
|
149
146
|
this.view.style['touchAction'] = isHandlerEnabled
|
150
147
|
? (touchAction ?? 'none')
|
@@ -157,7 +154,7 @@ export class GestureHandlerWebDelegate
|
|
157
154
|
}
|
158
155
|
|
159
156
|
private setContextMenu(isHandlerEnabled: boolean) {
|
160
|
-
const config = this.gestureHandler.
|
157
|
+
const config = this.gestureHandler.config;
|
161
158
|
|
162
159
|
if (isHandlerEnabled) {
|
163
160
|
this.addContextMenuListeners(config);
|
@@ -174,6 +171,21 @@ export class GestureHandlerWebDelegate
|
|
174
171
|
this.setUserSelect(enabled);
|
175
172
|
this.setTouchAction(enabled);
|
176
173
|
this.setContextMenu(enabled);
|
174
|
+
|
175
|
+
if (enabled) {
|
176
|
+
this.eventManagers.forEach((manager) => {
|
177
|
+
// It may look like managers will be registered twice when handler is mounted for the first time.
|
178
|
+
// However, `init` method is called AFTER `updateGestureConfig` - it means that delegate has not
|
179
|
+
// been initialized yet, so this code won't be executed.
|
180
|
+
//
|
181
|
+
// Also, because we use defined functions, not lambdas, they will not be registered multiple times.
|
182
|
+
manager.registerListeners();
|
183
|
+
});
|
184
|
+
} else {
|
185
|
+
this.eventManagers.forEach((manager) => {
|
186
|
+
manager.unregisterListeners();
|
187
|
+
});
|
188
|
+
}
|
177
189
|
}
|
178
190
|
|
179
191
|
onBegin(): void {
|
@@ -181,7 +193,7 @@ export class GestureHandlerWebDelegate
|
|
181
193
|
}
|
182
194
|
|
183
195
|
onActivate(): void {
|
184
|
-
const config = this.gestureHandler.
|
196
|
+
const config = this.gestureHandler.config;
|
185
197
|
|
186
198
|
if (
|
187
199
|
(!this.view.style.cursor || this.view.style.cursor === 'auto') &&
|
@@ -210,4 +222,11 @@ export class GestureHandlerWebDelegate
|
|
210
222
|
manager.unregisterListeners();
|
211
223
|
});
|
212
224
|
}
|
225
|
+
|
226
|
+
public get view() {
|
227
|
+
return this._view;
|
228
|
+
}
|
229
|
+
public set view(value: HTMLElement) {
|
230
|
+
this._view = value;
|
231
|
+
}
|
213
232
|
}
|
@@ -3,7 +3,7 @@ import { State } from '../../State';
|
|
3
3
|
import { Config, Handler } from '../interfaces';
|
4
4
|
|
5
5
|
export default class InteractionManager {
|
6
|
-
private static
|
6
|
+
private static _instance: InteractionManager;
|
7
7
|
private readonly waitForRelations: Map<number, number[]> = new Map();
|
8
8
|
private readonly simultaneousRelations: Map<number, number[]> = new Map();
|
9
9
|
private readonly blocksHandlersRelations: Map<number, number[]> = new Map();
|
@@ -13,7 +13,7 @@ export default class InteractionManager {
|
|
13
13
|
private constructor() {}
|
14
14
|
|
15
15
|
public configureInteractions(handler: IGestureHandler, config: Config) {
|
16
|
-
this.dropRelationsForHandlerWithTag(handler.
|
16
|
+
this.dropRelationsForHandlerWithTag(handler.handlerTag);
|
17
17
|
|
18
18
|
if (config.waitFor) {
|
19
19
|
const waitFor: number[] = [];
|
@@ -27,7 +27,7 @@ export default class InteractionManager {
|
|
27
27
|
}
|
28
28
|
});
|
29
29
|
|
30
|
-
this.waitForRelations.set(handler.
|
30
|
+
this.waitForRelations.set(handler.handlerTag, waitFor);
|
31
31
|
}
|
32
32
|
|
33
33
|
if (config.simultaneousHandlers) {
|
@@ -40,7 +40,7 @@ export default class InteractionManager {
|
|
40
40
|
}
|
41
41
|
});
|
42
42
|
|
43
|
-
this.simultaneousRelations.set(handler.
|
43
|
+
this.simultaneousRelations.set(handler.handlerTag, simultaneousHandlers);
|
44
44
|
}
|
45
45
|
|
46
46
|
if (config.blocksHandlers) {
|
@@ -53,7 +53,7 @@ export default class InteractionManager {
|
|
53
53
|
}
|
54
54
|
});
|
55
55
|
|
56
|
-
this.blocksHandlersRelations.set(handler.
|
56
|
+
this.blocksHandlersRelations.set(handler.handlerTag, blocksHandlers);
|
57
57
|
}
|
58
58
|
}
|
59
59
|
|
@@ -62,12 +62,12 @@ export default class InteractionManager {
|
|
62
62
|
otherHandler: IGestureHandler
|
63
63
|
): boolean {
|
64
64
|
const waitFor: number[] | undefined = this.waitForRelations.get(
|
65
|
-
handler.
|
65
|
+
handler.handlerTag
|
66
66
|
);
|
67
67
|
|
68
68
|
return (
|
69
69
|
waitFor?.find((tag: number) => {
|
70
|
-
return tag === otherHandler.
|
70
|
+
return tag === otherHandler.handlerTag;
|
71
71
|
}) !== undefined
|
72
72
|
);
|
73
73
|
}
|
@@ -77,11 +77,11 @@ export default class InteractionManager {
|
|
77
77
|
otherHandler: IGestureHandler
|
78
78
|
): boolean {
|
79
79
|
const simultaneousHandlers: number[] | undefined =
|
80
|
-
this.simultaneousRelations.get(handler.
|
80
|
+
this.simultaneousRelations.get(handler.handlerTag);
|
81
81
|
|
82
82
|
return (
|
83
83
|
simultaneousHandlers?.find((tag: number) => {
|
84
|
-
return tag === otherHandler.
|
84
|
+
return tag === otherHandler.handlerTag;
|
85
85
|
}) !== undefined
|
86
86
|
);
|
87
87
|
}
|
@@ -91,12 +91,12 @@ export default class InteractionManager {
|
|
91
91
|
otherHandler: IGestureHandler
|
92
92
|
): boolean {
|
93
93
|
const waitFor: number[] | undefined = this.blocksHandlersRelations.get(
|
94
|
-
handler.
|
94
|
+
handler.handlerTag
|
95
95
|
);
|
96
96
|
|
97
97
|
return (
|
98
98
|
waitFor?.find((tag: number) => {
|
99
|
-
return tag === otherHandler.
|
99
|
+
return tag === otherHandler.handlerTag;
|
100
100
|
}) !== undefined
|
101
101
|
);
|
102
102
|
}
|
@@ -108,7 +108,7 @@ export default class InteractionManager {
|
|
108
108
|
// We check constructor name instead of using `instanceof` in order do avoid circular dependencies
|
109
109
|
const isNativeHandler =
|
110
110
|
otherHandler.constructor.name === 'NativeViewGestureHandler';
|
111
|
-
const isActive = otherHandler.
|
111
|
+
const isActive = otherHandler.state === State.ACTIVE;
|
112
112
|
const isButton = otherHandler.isButton?.() === true;
|
113
113
|
|
114
114
|
return isNativeHandler && isActive && !isButton;
|
@@ -126,11 +126,11 @@ export default class InteractionManager {
|
|
126
126
|
this.blocksHandlersRelations.clear();
|
127
127
|
}
|
128
128
|
|
129
|
-
public static
|
130
|
-
if (!this.
|
131
|
-
this.
|
129
|
+
public static get instance(): InteractionManager {
|
130
|
+
if (!this._instance) {
|
131
|
+
this._instance = new InteractionManager();
|
132
132
|
}
|
133
133
|
|
134
|
-
return this.
|
134
|
+
return this._instance;
|
135
135
|
}
|
136
136
|
}
|
@@ -28,7 +28,7 @@ export default abstract class NodeManager {
|
|
28
28
|
}
|
29
29
|
|
30
30
|
this.gestures[handlerTag] = handler;
|
31
|
-
this.gestures[handlerTag].
|
31
|
+
this.gestures[handlerTag].handlerTag = handlerTag;
|
32
32
|
}
|
33
33
|
|
34
34
|
public static dropGestureHandler(handlerTag: number): void {
|
@@ -42,7 +42,7 @@ export default abstract class NodeManager {
|
|
42
42
|
delete this.gestures[handlerTag];
|
43
43
|
}
|
44
44
|
|
45
|
-
public static
|
45
|
+
public static get nodes() {
|
46
46
|
return { ...this.gestures };
|
47
47
|
}
|
48
48
|
}
|
@@ -13,7 +13,7 @@ const MAX_POINTERS = 20;
|
|
13
13
|
|
14
14
|
export default class PointerTracker {
|
15
15
|
private velocityTracker = new VelocityTracker();
|
16
|
-
private
|
16
|
+
private readonly _trackedPointers: Map<number, TrackerElement> = new Map<
|
17
17
|
number,
|
18
18
|
TrackerElement
|
19
19
|
>();
|
@@ -72,7 +72,7 @@ export default class PointerTracker {
|
|
72
72
|
this.lastMovedPointerId = event.pointerId;
|
73
73
|
|
74
74
|
this.velocityTracker.add(event);
|
75
|
-
const [velocityX, velocityY] = this.velocityTracker.
|
75
|
+
const [velocityX, velocityY] = this.velocityTracker.velocity;
|
76
76
|
|
77
77
|
element.velocityX = velocityX;
|
78
78
|
element.velocityY = velocityY;
|
@@ -189,24 +189,6 @@ export default class PointerTracker {
|
|
189
189
|
return sum;
|
190
190
|
}
|
191
191
|
|
192
|
-
public getTrackedPointersCount(): number {
|
193
|
-
return this.trackedPointers.size;
|
194
|
-
}
|
195
|
-
|
196
|
-
public getTrackedPointersID(): number[] {
|
197
|
-
const keys: number[] = [];
|
198
|
-
|
199
|
-
this.trackedPointers.forEach((_value, key) => {
|
200
|
-
keys.push(key);
|
201
|
-
});
|
202
|
-
|
203
|
-
return keys;
|
204
|
-
}
|
205
|
-
|
206
|
-
public getData(): Map<number, TrackerElement> {
|
207
|
-
return this.trackedPointers;
|
208
|
-
}
|
209
|
-
|
210
192
|
public resetTracker(): void {
|
211
193
|
this.velocityTracker.reset();
|
212
194
|
this.trackedPointers.clear();
|
@@ -223,4 +205,22 @@ export default class PointerTracker {
|
|
223
205
|
): boolean {
|
224
206
|
return stPointers.some((pointerId) => ndPointers.includes(pointerId));
|
225
207
|
}
|
208
|
+
|
209
|
+
public get trackedPointersCount(): number {
|
210
|
+
return this.trackedPointers.size;
|
211
|
+
}
|
212
|
+
|
213
|
+
public get trackedPointersIDs() {
|
214
|
+
const keys: number[] = [];
|
215
|
+
|
216
|
+
this.trackedPointers.forEach((_value, key) => {
|
217
|
+
keys.push(key);
|
218
|
+
});
|
219
|
+
|
220
|
+
return keys;
|
221
|
+
}
|
222
|
+
|
223
|
+
public get trackedPointers() {
|
224
|
+
return this._trackedPointers;
|
225
|
+
}
|
226
226
|
}
|
package/src/web/tools/Vector.ts
CHANGED