@userflow-tech/react-native 0.4.4 → 0.5.0
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/README.md +124 -34
- package/docs/anchoring.md +6 -1
- package/docs/deep-linking.md +26 -0
- package/docs/troubleshooting.md +50 -23
- package/expo-plugin/hostDependencyWarnings.d.ts +6 -4
- package/expo-plugin/hostDependencyWarnings.d.ts.map +1 -1
- package/expo-plugin/hostDependencyWarnings.js +8 -6
- package/expo-plugin/hostDependencyWarnings.js.map +1 -1
- package/lib/commonjs/anchors/AutoAnchorRegistry.js +144 -34
- package/lib/commonjs/anchors/AutoAnchorRegistry.js.map +1 -1
- package/lib/commonjs/anchors/animationFrame.js +29 -1
- package/lib/commonjs/anchors/animationFrame.js.map +1 -1
- package/lib/commonjs/anchors/appActive.js +61 -0
- package/lib/commonjs/anchors/appActive.js.map +1 -0
- package/lib/commonjs/anchors/elementConditionEvaluator.js +25 -8
- package/lib/commonjs/anchors/elementConditionEvaluator.js.map +1 -1
- package/lib/commonjs/anchors/elementTapMonitor.js +67 -12
- package/lib/commonjs/anchors/elementTapMonitor.js.map +1 -1
- package/lib/commonjs/anchors/elementTargetMatch.js +33 -7
- package/lib/commonjs/anchors/elementTargetMatch.js.map +1 -1
- package/lib/commonjs/anchors/fiber/fiberInternals.js +66 -0
- package/lib/commonjs/anchors/fiber/fiberInternals.js.map +1 -1
- package/lib/commonjs/anchors/fiber/indexHostFibers.js +4 -3
- package/lib/commonjs/anchors/fiber/indexHostFibers.js.map +1 -1
- package/lib/commonjs/anchors/fiber/resolveFiberPath.js +30 -15
- package/lib/commonjs/anchors/fiber/resolveFiberPath.js.map +1 -1
- package/lib/commonjs/anchors/fiberAnchorCache.js +20 -0
- package/lib/commonjs/anchors/fiberAnchorCache.js.map +1 -1
- package/lib/commonjs/anchors/gestureHandlerHandoff.js +304 -0
- package/lib/commonjs/anchors/gestureHandlerHandoff.js.map +1 -0
- package/lib/commonjs/anchors/resolveAnchorHost.js +6 -0
- package/lib/commonjs/anchors/resolveAnchorHost.js.map +1 -1
- package/lib/commonjs/anchors/resolveAutoAnchorHost.js +11 -6
- package/lib/commonjs/anchors/resolveAutoAnchorHost.js.map +1 -1
- package/lib/commonjs/anchors/resolveElementTargets.js +63 -8
- package/lib/commonjs/anchors/resolveElementTargets.js.map +1 -1
- package/lib/commonjs/anchors/semanticMatcher.js +43 -21
- package/lib/commonjs/anchors/semanticMatcher.js.map +1 -1
- package/lib/commonjs/anchors/tapSlop.js +16 -0
- package/lib/commonjs/anchors/tapSlop.js.map +1 -0
- package/lib/commonjs/anchors/targetPressMonitor.js +66 -12
- package/lib/commonjs/anchors/targetPressMonitor.js.map +1 -1
- package/lib/commonjs/authoring/fingerprintFromInstance.js +5 -9
- package/lib/commonjs/authoring/fingerprintFromInstance.js.map +1 -1
- package/lib/commonjs/content/RichContentRenderer.js +3 -3
- package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
- package/lib/commonjs/content/openSafeUrl.js +3 -1
- package/lib/commonjs/content/openSafeUrl.js.map +1 -1
- package/lib/commonjs/expo-router/useUserflowExpoRouter.js +6 -0
- package/lib/commonjs/expo-router/useUserflowExpoRouter.js.map +1 -1
- package/lib/commonjs/index.js +19 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/installCheck.js +2 -2
- package/lib/commonjs/installCheck.js.map +1 -1
- package/lib/commonjs/navigation/navigateUrlUtils.js +105 -0
- package/lib/commonjs/navigation/navigateUrlUtils.js.map +1 -0
- package/lib/commonjs/navigation/openExternalNavigateUrl.js +14 -0
- package/lib/commonjs/navigation/openExternalNavigateUrl.js.map +1 -0
- package/lib/commonjs/navigation/openFlowNavigateUrl.js +47 -41
- package/lib/commonjs/navigation/openFlowNavigateUrl.js.map +1 -1
- package/lib/commonjs/pairing/PairingController.js +3 -1
- package/lib/commonjs/pairing/PairingController.js.map +1 -1
- package/lib/commonjs/runtime/BannerHost.js +38 -29
- package/lib/commonjs/runtime/BannerHost.js.map +1 -1
- package/lib/commonjs/runtime/TargetPressBridge.js +55 -7
- package/lib/commonjs/runtime/TargetPressBridge.js.map +1 -1
- package/lib/commonjs/runtime/UserflowOverlay.js +5 -11
- package/lib/commonjs/runtime/UserflowOverlay.js.map +1 -1
- package/lib/commonjs/runtime/UserflowProvider.js +66 -40
- package/lib/commonjs/runtime/UserflowProvider.js.map +1 -1
- package/lib/commonjs/runtime/bannerEngine.js +8 -2
- package/lib/commonjs/runtime/bannerEngine.js.map +1 -1
- package/lib/commonjs/runtime/bannerFlowSpacer.js +71 -0
- package/lib/commonjs/runtime/bannerFlowSpacer.js.map +1 -0
- package/lib/commonjs/runtime/flowEngine.js +11 -0
- package/lib/commonjs/runtime/flowEngine.js.map +1 -1
- package/lib/commonjs/runtime/previewStart.js +39 -0
- package/lib/commonjs/runtime/previewStart.js.map +1 -0
- package/lib/commonjs/runtime/pushBannerLayoutContext.js +98 -0
- package/lib/commonjs/runtime/pushBannerLayoutContext.js.map +1 -0
- package/lib/commonjs/screenTracker.js +12 -0
- package/lib/commonjs/screenTracker.js.map +1 -1
- package/lib/commonjs/surfaces/BannerBar.js +79 -61
- package/lib/commonjs/surfaces/BannerBar.js.map +1 -1
- package/lib/commonjs/surfaces/BannerSurface.js +26 -0
- package/lib/commonjs/surfaces/BannerSurface.js.map +1 -1
- package/lib/commonjs/surfaces/TooltipSurface.js +43 -41
- package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
- package/lib/commonjs/surfaces/bannerBarLayout.js +77 -10
- package/lib/commonjs/surfaces/bannerBarLayout.js.map +1 -1
- package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js +112 -63
- package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
- package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js +59 -11
- package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
- package/lib/commonjs/surfaces/hostAccessibilityTrap.js +28 -0
- package/lib/commonjs/surfaces/hostAccessibilityTrap.js.map +1 -0
- package/lib/commonjs/surfaces/resolveBannerTheme.js +6 -3
- package/lib/commonjs/surfaces/resolveBannerTheme.js.map +1 -1
- package/lib/commonjs/surfaces/tooltip/TooltipBubble.js +3 -2
- package/lib/commonjs/surfaces/tooltip/TooltipBubble.js.map +1 -1
- package/lib/commonjs/surfaces/tooltip/targetSearchSchedule.js +134 -0
- package/lib/commonjs/surfaces/tooltip/targetSearchSchedule.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/module/anchors/AutoAnchorRegistry.js +145 -35
- package/lib/module/anchors/AutoAnchorRegistry.js.map +1 -1
- package/lib/module/anchors/animationFrame.js +29 -2
- package/lib/module/anchors/animationFrame.js.map +1 -1
- package/lib/module/anchors/appActive.js +57 -0
- package/lib/module/anchors/appActive.js.map +1 -0
- package/lib/module/anchors/elementConditionEvaluator.js +26 -9
- package/lib/module/anchors/elementConditionEvaluator.js.map +1 -1
- package/lib/module/anchors/elementTapMonitor.js +67 -12
- package/lib/module/anchors/elementTapMonitor.js.map +1 -1
- package/lib/module/anchors/elementTargetMatch.js +32 -7
- package/lib/module/anchors/elementTargetMatch.js.map +1 -1
- package/lib/module/anchors/fiber/fiberInternals.js +65 -0
- package/lib/module/anchors/fiber/fiberInternals.js.map +1 -1
- package/lib/module/anchors/fiber/indexHostFibers.js +4 -3
- package/lib/module/anchors/fiber/indexHostFibers.js.map +1 -1
- package/lib/module/anchors/fiber/resolveFiberPath.js +30 -15
- package/lib/module/anchors/fiber/resolveFiberPath.js.map +1 -1
- package/lib/module/anchors/fiberAnchorCache.js +19 -0
- package/lib/module/anchors/fiberAnchorCache.js.map +1 -1
- package/lib/module/anchors/gestureHandlerHandoff.js +298 -0
- package/lib/module/anchors/gestureHandlerHandoff.js.map +1 -0
- package/lib/module/anchors/resolveAnchorHost.js +1 -0
- package/lib/module/anchors/resolveAnchorHost.js.map +1 -1
- package/lib/module/anchors/resolveAutoAnchorHost.js +11 -6
- package/lib/module/anchors/resolveAutoAnchorHost.js.map +1 -1
- package/lib/module/anchors/resolveElementTargets.js +63 -8
- package/lib/module/anchors/resolveElementTargets.js.map +1 -1
- package/lib/module/anchors/semanticMatcher.js +43 -21
- package/lib/module/anchors/semanticMatcher.js.map +1 -1
- package/lib/module/anchors/tapSlop.js +11 -0
- package/lib/module/anchors/tapSlop.js.map +1 -0
- package/lib/module/anchors/targetPressMonitor.js +53 -8
- package/lib/module/anchors/targetPressMonitor.js.map +1 -1
- package/lib/module/authoring/fingerprintFromInstance.js +6 -10
- package/lib/module/authoring/fingerprintFromInstance.js.map +1 -1
- package/lib/module/content/RichContentRenderer.js +3 -3
- package/lib/module/content/RichContentRenderer.js.map +1 -1
- package/lib/module/content/openSafeUrl.js +3 -1
- package/lib/module/content/openSafeUrl.js.map +1 -1
- package/lib/module/expo-router/useUserflowExpoRouter.js +7 -1
- package/lib/module/expo-router/useUserflowExpoRouter.js.map +1 -1
- package/lib/module/index.js +22 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/installCheck.js +2 -2
- package/lib/module/installCheck.js.map +1 -1
- package/lib/module/navigation/navigateUrlUtils.js +94 -0
- package/lib/module/navigation/navigateUrlUtils.js.map +1 -0
- package/lib/module/navigation/openExternalNavigateUrl.js +11 -0
- package/lib/module/navigation/openExternalNavigateUrl.js.map +1 -0
- package/lib/module/navigation/openFlowNavigateUrl.js +22 -36
- package/lib/module/navigation/openFlowNavigateUrl.js.map +1 -1
- package/lib/module/pairing/PairingController.js +3 -1
- package/lib/module/pairing/PairingController.js.map +1 -1
- package/lib/module/runtime/BannerHost.js +38 -29
- package/lib/module/runtime/BannerHost.js.map +1 -1
- package/lib/module/runtime/TargetPressBridge.js +56 -8
- package/lib/module/runtime/TargetPressBridge.js.map +1 -1
- package/lib/module/runtime/UserflowOverlay.js +5 -11
- package/lib/module/runtime/UserflowOverlay.js.map +1 -1
- package/lib/module/runtime/UserflowProvider.js +66 -40
- package/lib/module/runtime/UserflowProvider.js.map +1 -1
- package/lib/module/runtime/bannerEngine.js +7 -2
- package/lib/module/runtime/bannerEngine.js.map +1 -1
- package/lib/module/runtime/bannerFlowSpacer.js +65 -0
- package/lib/module/runtime/bannerFlowSpacer.js.map +1 -0
- package/lib/module/runtime/flowEngine.js +11 -0
- package/lib/module/runtime/flowEngine.js.map +1 -1
- package/lib/module/runtime/previewStart.js +35 -0
- package/lib/module/runtime/previewStart.js.map +1 -0
- package/lib/module/runtime/pushBannerLayoutContext.js +91 -0
- package/lib/module/runtime/pushBannerLayoutContext.js.map +1 -0
- package/lib/module/screenTracker.js +11 -0
- package/lib/module/screenTracker.js.map +1 -1
- package/lib/module/surfaces/BannerBar.js +80 -62
- package/lib/module/surfaces/BannerBar.js.map +1 -1
- package/lib/module/surfaces/BannerSurface.js +26 -0
- package/lib/module/surfaces/BannerSurface.js.map +1 -1
- package/lib/module/surfaces/TooltipSurface.js +44 -42
- package/lib/module/surfaces/TooltipSurface.js.map +1 -1
- package/lib/module/surfaces/bannerBarLayout.js +72 -11
- package/lib/module/surfaces/bannerBarLayout.js.map +1 -1
- package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js +113 -64
- package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
- package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js +59 -11
- package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
- package/lib/module/surfaces/hostAccessibilityTrap.js +24 -0
- package/lib/module/surfaces/hostAccessibilityTrap.js.map +1 -0
- package/lib/module/surfaces/resolveBannerTheme.js +6 -3
- package/lib/module/surfaces/resolveBannerTheme.js.map +1 -1
- package/lib/module/surfaces/tooltip/TooltipBubble.js +3 -2
- package/lib/module/surfaces/tooltip/TooltipBubble.js.map +1 -1
- package/lib/module/surfaces/tooltip/targetSearchSchedule.js +128 -0
- package/lib/module/surfaces/tooltip/targetSearchSchedule.js.map +1 -0
- package/lib/module/version.js +1 -1
- package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts +36 -2
- package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/animationFrame.d.ts +0 -4
- package/lib/typescript/commonjs/src/anchors/animationFrame.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/appActive.d.ts +8 -0
- package/lib/typescript/commonjs/src/anchors/appActive.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts +17 -0
- package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts +7 -0
- package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts +7 -0
- package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts +3 -2
- package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts +3 -0
- package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts +5 -0
- package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/gestureHandlerHandoff.d.ts +70 -0
- package/lib/typescript/commonjs/src/anchors/gestureHandlerHandoff.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts +1 -0
- package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts +11 -4
- package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/resolveElementTargets.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts +2 -0
- package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/tapSlop.d.ts +9 -0
- package/lib/typescript/commonjs/src/anchors/tapSlop.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts +13 -8
- package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/openSafeUrl.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +6 -5
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/installCheck.d.ts +1 -1
- package/lib/typescript/commonjs/src/installCheck.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/navigation/navigateUrlUtils.d.ts +15 -0
- package/lib/typescript/commonjs/src/navigation/navigateUrlUtils.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/navigation/openExternalNavigateUrl.d.ts +3 -0
- package/lib/typescript/commonjs/src/navigation/openExternalNavigateUrl.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/navigation/openFlowNavigateUrl.d.ts +2 -5
- package/lib/typescript/commonjs/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/pairing/PairingController.d.ts +6 -0
- package/lib/typescript/commonjs/src/pairing/PairingController.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/BannerHost.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts +3 -0
- package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/UserflowOverlay.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts +5 -1
- package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/bannerFlowSpacer.d.ts +15 -0
- package/lib/typescript/commonjs/src/runtime/bannerFlowSpacer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/runtime/flowEngine.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/previewStart.d.ts +13 -0
- package/lib/typescript/commonjs/src/runtime/previewStart.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts +17 -0
- package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/screenTracker.d.ts +6 -0
- package/lib/typescript/commonjs/src/screenTracker.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts +3 -1
- package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts +5 -1
- package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts +1 -1
- package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts +17 -0
- package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +3 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/hostAccessibilityTrap.d.ts +14 -0
- package/lib/typescript/commonjs/src/surfaces/hostAccessibilityTrap.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts +4 -1
- package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts +7 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/targetSearchSchedule.d.ts +60 -0
- package/lib/typescript/commonjs/src/surfaces/tooltip/targetSearchSchedule.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/version.d.ts +1 -1
- package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts +36 -2
- package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/animationFrame.d.ts +0 -4
- package/lib/typescript/module/src/anchors/animationFrame.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/appActive.d.ts +8 -0
- package/lib/typescript/module/src/anchors/appActive.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts +17 -0
- package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts +7 -0
- package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts +7 -0
- package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts +3 -2
- package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts +3 -0
- package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts +5 -0
- package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/gestureHandlerHandoff.d.ts +70 -0
- package/lib/typescript/module/src/anchors/gestureHandlerHandoff.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts +1 -0
- package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts +11 -4
- package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/resolveElementTargets.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/semanticMatcher.d.ts +2 -0
- package/lib/typescript/module/src/anchors/semanticMatcher.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/tapSlop.d.ts +9 -0
- package/lib/typescript/module/src/anchors/tapSlop.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts +13 -8
- package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts.map +1 -1
- package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
- package/lib/typescript/module/src/content/RichContentRenderer.d.ts.map +1 -1
- package/lib/typescript/module/src/content/openSafeUrl.d.ts.map +1 -1
- package/lib/typescript/module/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +6 -5
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/installCheck.d.ts +1 -1
- package/lib/typescript/module/src/installCheck.d.ts.map +1 -1
- package/lib/typescript/module/src/navigation/navigateUrlUtils.d.ts +15 -0
- package/lib/typescript/module/src/navigation/navigateUrlUtils.d.ts.map +1 -0
- package/lib/typescript/module/src/navigation/openExternalNavigateUrl.d.ts +3 -0
- package/lib/typescript/module/src/navigation/openExternalNavigateUrl.d.ts.map +1 -0
- package/lib/typescript/module/src/navigation/openFlowNavigateUrl.d.ts +2 -5
- package/lib/typescript/module/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
- package/lib/typescript/module/src/pairing/PairingController.d.ts +6 -0
- package/lib/typescript/module/src/pairing/PairingController.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/BannerHost.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts +3 -0
- package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/UserflowOverlay.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/UserflowProvider.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/bannerEngine.d.ts +5 -1
- package/lib/typescript/module/src/runtime/bannerEngine.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/bannerFlowSpacer.d.ts +15 -0
- package/lib/typescript/module/src/runtime/bannerFlowSpacer.d.ts.map +1 -0
- package/lib/typescript/module/src/runtime/flowEngine.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/previewStart.d.ts +13 -0
- package/lib/typescript/module/src/runtime/previewStart.d.ts.map +1 -0
- package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts +17 -0
- package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts.map +1 -0
- package/lib/typescript/module/src/screenTracker.d.ts +6 -0
- package/lib/typescript/module/src/screenTracker.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/BannerBar.d.ts +3 -1
- package/lib/typescript/module/src/surfaces/BannerBar.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/BannerSurface.d.ts +5 -1
- package/lib/typescript/module/src/surfaces/BannerSurface.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts +1 -1
- package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts +17 -0
- package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +3 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/hostAccessibilityTrap.d.ts +14 -0
- package/lib/typescript/module/src/surfaces/hostAccessibilityTrap.d.ts.map +1 -0
- package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts +4 -1
- package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts +7 -1
- package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/tooltip/targetSearchSchedule.d.ts +60 -0
- package/lib/typescript/module/src/surfaces/tooltip/targetSearchSchedule.d.ts.map +1 -0
- package/lib/typescript/module/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/anchors/AutoAnchorRegistry.ts +166 -35
- package/src/anchors/animationFrame.ts +31 -1
- package/src/anchors/appActive.ts +63 -0
- package/src/anchors/elementConditionEvaluator.ts +29 -12
- package/src/anchors/elementTapMonitor.ts +68 -10
- package/src/anchors/elementTargetMatch.ts +34 -7
- package/src/anchors/fiber/fiberInternals.ts +68 -0
- package/src/anchors/fiber/indexHostFibers.ts +8 -3
- package/src/anchors/fiber/resolveFiberPath.ts +25 -16
- package/src/anchors/fiberAnchorCache.ts +19 -0
- package/src/anchors/gestureHandlerHandoff.ts +356 -0
- package/src/anchors/resolveAnchorHost.ts +2 -0
- package/src/anchors/resolveAutoAnchorHost.ts +18 -8
- package/src/anchors/resolveElementTargets.ts +64 -7
- package/src/anchors/semanticMatcher.ts +48 -27
- package/src/anchors/tapSlop.ts +18 -0
- package/src/anchors/targetPressMonitor.ts +56 -19
- package/src/authoring/fingerprintFromInstance.ts +4 -5
- package/src/content/RichContentRenderer.tsx +4 -3
- package/src/content/openSafeUrl.ts +3 -1
- package/src/expo-router/useUserflowExpoRouter.ts +10 -1
- package/src/index.ts +20 -9
- package/src/installCheck.ts +4 -4
- package/src/navigation/navigateUrlUtils.ts +100 -0
- package/src/navigation/openExternalNavigateUrl.ts +9 -0
- package/src/navigation/openFlowNavigateUrl.ts +36 -36
- package/src/pairing/PairingController.ts +9 -1
- package/src/runtime/BannerHost.tsx +41 -23
- package/src/runtime/TargetPressBridge.tsx +66 -9
- package/src/runtime/UserflowOverlay.tsx +7 -9
- package/src/runtime/UserflowProvider.tsx +56 -32
- package/src/runtime/bannerEngine.ts +10 -2
- package/src/runtime/bannerFlowSpacer.tsx +70 -0
- package/src/runtime/flowEngine.ts +11 -0
- package/src/runtime/previewStart.ts +49 -0
- package/src/runtime/pushBannerLayoutContext.tsx +121 -0
- package/src/screenTracker.ts +11 -0
- package/src/surfaces/BannerBar.tsx +93 -55
- package/src/surfaces/BannerSurface.tsx +59 -3
- package/src/surfaces/TooltipSurface.tsx +63 -51
- package/src/surfaces/bannerBarLayout.ts +80 -7
- package/src/surfaces/bannerWebView/BannerWebViewBar.tsx +149 -57
- package/src/surfaces/bannerWebView/buildCustomBannerHtml.ts +63 -11
- package/src/surfaces/hostAccessibilityTrap.ts +25 -0
- package/src/surfaces/resolveBannerTheme.ts +14 -3
- package/src/surfaces/tooltip/TooltipBubble.tsx +8 -1
- package/src/surfaces/tooltip/targetSearchSchedule.ts +140 -0
- package/src/version.ts +1 -1
- package/vendor/core/dist/engine/BannerSessionEngine.d.ts +29 -2
- package/vendor/core/dist/engine/BannerSessionEngine.d.ts.map +1 -1
- package/vendor/core/dist/engine/BannerSessionEngine.js +87 -6
- package/vendor/core/dist/engine/BannerSessionEngine.js.map +1 -1
- package/vendor/core/dist/engine/ClientConditionEngine.d.ts.map +1 -1
- package/vendor/core/dist/engine/ClientConditionEngine.js +30 -7
- package/vendor/core/dist/engine/ClientConditionEngine.js.map +1 -1
- package/vendor/core/dist/engine/PairingEngine.d.ts +6 -1
- package/vendor/core/dist/engine/PairingEngine.d.ts.map +1 -1
- package/vendor/core/dist/engine/PairingEngine.js +23 -3
- package/vendor/core/dist/engine/PairingEngine.js.map +1 -1
- package/vendor/core/dist/engine/handleActions.d.ts.map +1 -1
- package/vendor/core/dist/engine/handleActions.js +67 -2
- package/vendor/core/dist/engine/handleActions.js.map +1 -1
- package/vendor/core/dist/version.d.ts +1 -1
- package/vendor/core/dist/version.js +1 -1
- package/vendor/core/package.json +1 -1
- package/vendor/protocol/package.json +1 -1
|
@@ -10,8 +10,10 @@ exports.getFiberAnchorScreenKey = getFiberAnchorScreenKey;
|
|
|
10
10
|
exports.invalidateFiberAnchor = invalidateFiberAnchor;
|
|
11
11
|
exports.notifyAnchorScreenChange = notifyAnchorScreenChange;
|
|
12
12
|
exports.setCachedFiberAnchor = setCachedFiberAnchor;
|
|
13
|
+
exports.subscribeAnchorScreenChange = subscribeAnchorScreenChange;
|
|
13
14
|
const fiberCache = new Map();
|
|
14
15
|
let currentScreenKey = null;
|
|
16
|
+
const screenChangeListeners = new Set();
|
|
15
17
|
function getFiberAnchorScreenKey() {
|
|
16
18
|
return currentScreenKey;
|
|
17
19
|
}
|
|
@@ -21,6 +23,24 @@ function notifyAnchorScreenChange(screenKey) {
|
|
|
21
23
|
if (screenKey === currentScreenKey) return;
|
|
22
24
|
currentScreenKey = screenKey;
|
|
23
25
|
fiberCache.clear();
|
|
26
|
+
for (const listener of Array.from(screenChangeListeners)) {
|
|
27
|
+
try {
|
|
28
|
+
listener();
|
|
29
|
+
} catch {
|
|
30
|
+
// A listener must not break screen tracking.
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* `listener` runs after the active screen changes, once the cache above is
|
|
37
|
+
* cleared. Searches that back off while a target is missing restart from here.
|
|
38
|
+
*/
|
|
39
|
+
function subscribeAnchorScreenChange(listener) {
|
|
40
|
+
screenChangeListeners.add(listener);
|
|
41
|
+
return () => {
|
|
42
|
+
screenChangeListeners.delete(listener);
|
|
43
|
+
};
|
|
24
44
|
}
|
|
25
45
|
|
|
26
46
|
/** Drop the fiber cache (preview restart / tests). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fiberCache","Map","currentScreenKey","getFiberAnchorScreenKey","notifyAnchorScreenChange","screenKey","clear","clearFiberAnchorCache","getCachedFiberAnchor","id","get","setCachedFiberAnchor","fiber","set","deleteCachedFiberAnchor","
|
|
1
|
+
{"version":3,"names":["fiberCache","Map","currentScreenKey","screenChangeListeners","Set","getFiberAnchorScreenKey","notifyAnchorScreenChange","screenKey","clear","listener","Array","from","subscribeAnchorScreenChange","add","delete","clearFiberAnchorCache","getCachedFiberAnchor","id","get","setCachedFiberAnchor","fiber","set","deleteCachedFiberAnchor","invalidateFiberAnchor"],"sourceRoot":"../../../src","sources":["anchors/fiberAnchorCache.ts"],"mappings":";;;;;;;;;;;;;AAOA,MAAMA,UAAU,GAAG,IAAIC,GAAG,CAA0B,CAAC;AACrD,IAAIC,gBAA+B,GAAG,IAAI;AAC1C,MAAMC,qBAAqB,GAAG,IAAIC,GAAG,CAAa,CAAC;AAE5C,SAASC,uBAAuBA,CAAA,EAAkB;EACvD,OAAOH,gBAAgB;AACzB;;AAEA;AACO,SAASI,wBAAwBA,CAACC,SAAwB,EAAQ;EACvE,IAAIA,SAAS,KAAKL,gBAAgB,EAAE;EACpCA,gBAAgB,GAAGK,SAAS;EAC5BP,UAAU,CAACQ,KAAK,CAAC,CAAC;EAClB,KAAK,MAAMC,QAAQ,IAAIC,KAAK,CAACC,IAAI,CAACR,qBAAqB,CAAC,EAAE;IACxD,IAAI;MACFM,QAAQ,CAAC,CAAC;IACZ,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;AACF;;AAEA;AACA;AACA;AACA;AACO,SAASG,2BAA2BA,CAACH,QAAoB,EAAc;EAC5EN,qBAAqB,CAACU,GAAG,CAACJ,QAAQ,CAAC;EACnC,OAAO,MAAM;IACXN,qBAAqB,CAACW,MAAM,CAACL,QAAQ,CAAC;EACxC,CAAC;AACH;;AAEA;AACO,SAASM,qBAAqBA,CAAA,EAAS;EAC5Cf,UAAU,CAACQ,KAAK,CAAC,CAAC;AACpB;AAEO,SAASQ,oBAAoBA,CAACC,EAAU,EAA+B;EAC5E,OAAOjB,UAAU,CAACkB,GAAG,CAACD,EAAE,CAAC;AAC3B;AAEO,SAASE,oBAAoBA,CAACF,EAAU,EAAEG,KAAe,EAAQ;EACtEpB,UAAU,CAACqB,GAAG,CAACJ,EAAE,EAAE;IAAEG,KAAK;IAAEb,SAAS,EAAEL;EAAiB,CAAC,CAAC;AAC5D;AAEO,SAASoB,uBAAuBA,CAACL,EAAU,EAAQ;EACxDjB,UAAU,CAACc,MAAM,CAACG,EAAE,CAAC;AACvB;;AAEA;AACA;AACA;AACA;AACO,SAASM,qBAAqBA,CAACN,EAAU,EAAQ;EACtDjB,UAAU,CAACc,MAAM,CAACG,EAAE,CAAC;AACvB","ignoreList":[]}
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.GestureHandlerHandoff = exports.GESTURE_HANDLER_STATE = exports.GESTURE_HANDLER_HANDOFF_TIMEOUT_MS = void 0;
|
|
7
|
+
exports.collectGestureHandlerTags = collectGestureHandlerTags;
|
|
8
|
+
exports.gestureHandlerHandoff = void 0;
|
|
9
|
+
var _fiberInternals = require("./fiber/fiberInternals.js");
|
|
10
|
+
var _tapSlop = require("./tapSlop.js");
|
|
11
|
+
/**
|
|
12
|
+
* Taps that react-native-gesture-handler takes away from React Native.
|
|
13
|
+
*
|
|
14
|
+
* When a gesture-handler control activates, it cancels RN's touch stream, so
|
|
15
|
+
* the bridge sees `touchcancel` instead of `touchend`. The handler tag is read
|
|
16
|
+
* off the touched fiber (no import of gesture-handler), and the touch counts
|
|
17
|
+
* as a tap only if that handler later ends from ACTIVE on
|
|
18
|
+
* `onGestureHandlerStateChange`. Apps that never hit this path never subscribe.
|
|
19
|
+
*
|
|
20
|
+
* State numbers are gesture-handler's `State` enum. A future major that
|
|
21
|
+
* renumbers them degrades to "no tap", which is today's behavior.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/** gesture-handler `State` values this hand-off acts on. */
|
|
25
|
+
const GESTURE_HANDLER_STATE = exports.GESTURE_HANDLER_STATE = {
|
|
26
|
+
FAILED: 1,
|
|
27
|
+
CANCELLED: 3,
|
|
28
|
+
ACTIVE: 4,
|
|
29
|
+
END: 5
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/** Drop a handed-off touch that never reaches a terminal state. */
|
|
33
|
+
const GESTURE_HANDLER_HANDOFF_TIMEOUT_MS = exports.GESTURE_HANDLER_HANDOFF_TIMEOUT_MS = 10_000;
|
|
34
|
+
const STATE_CHANGE_EVENT = 'onGestureHandlerStateChange';
|
|
35
|
+
/**
|
|
36
|
+
* Handler tags for the control under `fiber`.
|
|
37
|
+
*
|
|
38
|
+
* Old-API buttons keep `handlerTag` on the class instance. `GestureDetector`
|
|
39
|
+
* keeps a `gesture` prop whose `toGestureArray()` entries each have one.
|
|
40
|
+
* Negative tags (gesture-handler's own root helper) are ignored.
|
|
41
|
+
*
|
|
42
|
+
* The walk stops at the nearest fiber that has a tag. A native handler with
|
|
43
|
+
* `disallowInterruption` (gesture-handler `ScrollView`, `FlatList`,
|
|
44
|
+
* `RefreshControl`) is a container, not a tap, so a scroll that starts inside
|
|
45
|
+
* it is dropped instead of latching the row. Never throws.
|
|
46
|
+
*/
|
|
47
|
+
function collectGestureHandlerTags(fiber) {
|
|
48
|
+
if (fiber == null) return [];
|
|
49
|
+
try {
|
|
50
|
+
let current = fiber;
|
|
51
|
+
let steps = 0;
|
|
52
|
+
while (current && steps < _fiberInternals.MAX_ANCESTOR_WALK) {
|
|
53
|
+
steps += 1;
|
|
54
|
+
const found = tagsOnFiber(current);
|
|
55
|
+
if (found.pressable.length > 0) return found.pressable;
|
|
56
|
+
// The nearest handler is a scroll container. An outer control did not
|
|
57
|
+
// receive this touch.
|
|
58
|
+
if (found.container) return [];
|
|
59
|
+
current = (0, _fiberInternals.getReturn)(current);
|
|
60
|
+
}
|
|
61
|
+
} catch {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
class GestureHandlerHandoff {
|
|
67
|
+
pending = new Map();
|
|
68
|
+
nextId = 1;
|
|
69
|
+
subscription = null;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Keep `touch` until its handler finishes or it expires.
|
|
73
|
+
* Returns a stop function; calling it drops the touch without a tap.
|
|
74
|
+
*/
|
|
75
|
+
track(touch) {
|
|
76
|
+
if (touch.handlerTags.length === 0) return () => {};
|
|
77
|
+
const id = this.nextId;
|
|
78
|
+
this.nextId += 1;
|
|
79
|
+
const pending = {
|
|
80
|
+
...touch,
|
|
81
|
+
id,
|
|
82
|
+
settled: false,
|
|
83
|
+
finishedTags: new Set(),
|
|
84
|
+
timer: setTimeout(() => {
|
|
85
|
+
this.drop(id);
|
|
86
|
+
}, GESTURE_HANDLER_HANDOFF_TIMEOUT_MS)
|
|
87
|
+
};
|
|
88
|
+
this.pending.set(id, pending);
|
|
89
|
+
this.ensureListening();
|
|
90
|
+
return () => this.drop(id);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/** Test helper. Drops every pending touch and unsubscribes. */
|
|
94
|
+
resetForTests() {
|
|
95
|
+
for (const touch of this.pending.values()) {
|
|
96
|
+
touch.settled = true;
|
|
97
|
+
clearTimeout(touch.timer);
|
|
98
|
+
}
|
|
99
|
+
this.pending.clear();
|
|
100
|
+
this.stopListeningIfIdle();
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** @internal Test hook: how many touches are still waiting. */
|
|
104
|
+
get pendingCount() {
|
|
105
|
+
return this.pending.size;
|
|
106
|
+
}
|
|
107
|
+
ensureListening() {
|
|
108
|
+
if (this.subscription || this.pending.size === 0) return;
|
|
109
|
+
const emitter = deviceEventEmitter();
|
|
110
|
+
if (!emitter) return;
|
|
111
|
+
this.subscription = emitter.addListener(STATE_CHANGE_EVENT, payload => {
|
|
112
|
+
try {
|
|
113
|
+
this.handleStateChange(payload);
|
|
114
|
+
} catch {
|
|
115
|
+
// A bad payload must not break the next gesture.
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
stopListeningIfIdle() {
|
|
120
|
+
if (this.pending.size > 0 || !this.subscription) return;
|
|
121
|
+
this.subscription.remove();
|
|
122
|
+
this.subscription = null;
|
|
123
|
+
}
|
|
124
|
+
handleStateChange(event) {
|
|
125
|
+
const payload = asPayload(event);
|
|
126
|
+
if (!payload) return;
|
|
127
|
+
const matching = [...this.pending.values()].filter(touch => !touch.settled && touch.handlerTags.includes(payload.handlerTag));
|
|
128
|
+
for (const touch of matching) {
|
|
129
|
+
this.apply(touch, payload);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
apply(touch, payload) {
|
|
133
|
+
if (touch.settled || !isTerminal(payload.state)) return;
|
|
134
|
+
if (isCompletedTap(touch, payload)) {
|
|
135
|
+
this.resolve(touch, endPoint(payload));
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
touch.finishedTags.add(payload.handlerTag);
|
|
139
|
+
const allDone = touch.handlerTags.every(tag => touch.finishedTags.has(tag));
|
|
140
|
+
if (allDone) this.drop(touch.id);
|
|
141
|
+
}
|
|
142
|
+
resolve(touch, end) {
|
|
143
|
+
const notify = touch.onResolve;
|
|
144
|
+
this.drop(touch.id);
|
|
145
|
+
try {
|
|
146
|
+
notify(end);
|
|
147
|
+
} catch {
|
|
148
|
+
// One monitor's failure must not skip the other touch on this event.
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
drop(id) {
|
|
152
|
+
const touch = this.pending.get(id);
|
|
153
|
+
if (!touch || touch.settled) return;
|
|
154
|
+
touch.settled = true;
|
|
155
|
+
clearTimeout(touch.timer);
|
|
156
|
+
this.pending.delete(id);
|
|
157
|
+
this.stopListeningIfIdle();
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/** Shared singleton used by the tap monitors. */
|
|
162
|
+
exports.GestureHandlerHandoff = GestureHandlerHandoff;
|
|
163
|
+
const gestureHandlerHandoff = exports.gestureHandlerHandoff = new GestureHandlerHandoff();
|
|
164
|
+
function tagsOnFiber(fiber) {
|
|
165
|
+
try {
|
|
166
|
+
const pressable = [];
|
|
167
|
+
const seen = new Set();
|
|
168
|
+
let container = false;
|
|
169
|
+
const add = (tag, isContainer) => {
|
|
170
|
+
if (tag === undefined) return;
|
|
171
|
+
if (isContainer) {
|
|
172
|
+
container = true;
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
if (seen.has(tag)) return;
|
|
176
|
+
seen.add(tag);
|
|
177
|
+
pressable.push(tag);
|
|
178
|
+
};
|
|
179
|
+
const props = (0, _fiberInternals.getMemoizedProps)(fiber);
|
|
180
|
+
add(handlerTagOf((0, _fiberInternals.getStateNode)(fiber)), props?.disallowInterruption === true);
|
|
181
|
+
const gesture = props?.gesture;
|
|
182
|
+
if (gesture && typeof gesture === 'object' && 'toGestureArray' in gesture) {
|
|
183
|
+
const toArray = gesture.toGestureArray;
|
|
184
|
+
if (typeof toArray === 'function') {
|
|
185
|
+
const list = toArray.call(gesture);
|
|
186
|
+
if (Array.isArray(list)) {
|
|
187
|
+
for (const item of list) {
|
|
188
|
+
const tag = handlerTagOf(item) ?? handlerTagOf(readHandlers(item));
|
|
189
|
+
add(tag, disallowsInterruption(item));
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
pressable,
|
|
196
|
+
container: container && pressable.length === 0
|
|
197
|
+
};
|
|
198
|
+
} catch {
|
|
199
|
+
return {
|
|
200
|
+
pressable: [],
|
|
201
|
+
container: false
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/** Gesture-handler scroll containers set this so a drag is not stolen. */
|
|
207
|
+
function disallowsInterruption(value) {
|
|
208
|
+
if (!value || typeof value !== 'object' || !('config' in value)) return false;
|
|
209
|
+
const config = value.config;
|
|
210
|
+
if (!config || typeof config !== 'object' || !('disallowInterruption' in config)) return false;
|
|
211
|
+
return config.disallowInterruption === true;
|
|
212
|
+
}
|
|
213
|
+
function readHandlers(value) {
|
|
214
|
+
if (!value || typeof value !== 'object' || !('handlers' in value)) return undefined;
|
|
215
|
+
return value.handlers;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/** A mounted gesture-handler tag. `-1` means "not attached yet". */
|
|
219
|
+
function handlerTagOf(value) {
|
|
220
|
+
if (!value || typeof value !== 'object' || !('handlerTag' in value)) return undefined;
|
|
221
|
+
const tag = value.handlerTag;
|
|
222
|
+
if (typeof tag !== 'number' || !Number.isFinite(tag) || tag < 0) return undefined;
|
|
223
|
+
return tag;
|
|
224
|
+
}
|
|
225
|
+
function deviceEventEmitter() {
|
|
226
|
+
try {
|
|
227
|
+
// Lazy so a tap that is never cancelled does not load React Native's emitter
|
|
228
|
+
// into unit tests that only exercise the monitors.
|
|
229
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
230
|
+
const reactNative = require('react-native');
|
|
231
|
+
const emitter = reactNative.DeviceEventEmitter;
|
|
232
|
+
if (!emitter || typeof emitter.addListener !== 'function') return null;
|
|
233
|
+
return emitter;
|
|
234
|
+
} catch {
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
function asPayload(event) {
|
|
239
|
+
if (!event || typeof event !== 'object') return null;
|
|
240
|
+
const raw = event;
|
|
241
|
+
const body = raw.nativeEvent && typeof raw.nativeEvent === 'object' ? raw.nativeEvent : raw;
|
|
242
|
+
if (typeof body.handlerTag !== 'number' || typeof body.state !== 'number') return null;
|
|
243
|
+
return {
|
|
244
|
+
handlerTag: body.handlerTag,
|
|
245
|
+
state: body.state,
|
|
246
|
+
...(typeof body.oldState === 'number' ? {
|
|
247
|
+
oldState: body.oldState
|
|
248
|
+
} : {}),
|
|
249
|
+
...(typeof body.pointerInside === 'boolean' ? {
|
|
250
|
+
pointerInside: body.pointerInside
|
|
251
|
+
} : {}),
|
|
252
|
+
...(typeof body.translationX === 'number' ? {
|
|
253
|
+
translationX: body.translationX
|
|
254
|
+
} : {}),
|
|
255
|
+
...(typeof body.translationY === 'number' ? {
|
|
256
|
+
translationY: body.translationY
|
|
257
|
+
} : {}),
|
|
258
|
+
...(typeof body.absoluteX === 'number' ? {
|
|
259
|
+
absoluteX: body.absoluteX
|
|
260
|
+
} : {}),
|
|
261
|
+
...(typeof body.absoluteY === 'number' ? {
|
|
262
|
+
absoluteY: body.absoluteY
|
|
263
|
+
} : {}),
|
|
264
|
+
hasDuration: 'duration' in body && body.duration != null
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
function isTerminal(state) {
|
|
268
|
+
return state === GESTURE_HANDLER_STATE.FAILED || state === GESTURE_HANDLER_STATE.CANCELLED || state === GESTURE_HANDLER_STATE.END;
|
|
269
|
+
}
|
|
270
|
+
function isCompletedTap(touch, payload) {
|
|
271
|
+
if (payload.state !== GESTURE_HANDLER_STATE.END) return false;
|
|
272
|
+
if (payload.oldState !== GESTURE_HANDLER_STATE.ACTIVE) return false;
|
|
273
|
+
if (payload.pointerInside === false) return false;
|
|
274
|
+
if (payload.hasDuration) return false;
|
|
275
|
+
if (payload.translationX !== undefined && payload.translationY !== undefined && !(0, _tapSlop.withinTapSlop)({
|
|
276
|
+
pageX: 0,
|
|
277
|
+
pageY: 0
|
|
278
|
+
}, {
|
|
279
|
+
pageX: payload.translationX,
|
|
280
|
+
pageY: payload.translationY
|
|
281
|
+
})) {
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
if (payload.absoluteX !== undefined && payload.absoluteY !== undefined) {
|
|
285
|
+
if (!(0, _tapSlop.withinTapSlop)({
|
|
286
|
+
pageX: touch.pageX,
|
|
287
|
+
pageY: touch.pageY
|
|
288
|
+
}, {
|
|
289
|
+
pageX: payload.absoluteX,
|
|
290
|
+
pageY: payload.absoluteY
|
|
291
|
+
})) {
|
|
292
|
+
return false;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return true;
|
|
296
|
+
}
|
|
297
|
+
function endPoint(payload) {
|
|
298
|
+
if (payload.absoluteX === undefined || payload.absoluteY === undefined) return null;
|
|
299
|
+
return {
|
|
300
|
+
pageX: payload.absoluteX,
|
|
301
|
+
pageY: payload.absoluteY
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=gestureHandlerHandoff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_fiberInternals","require","_tapSlop","GESTURE_HANDLER_STATE","exports","FAILED","CANCELLED","ACTIVE","END","GESTURE_HANDLER_HANDOFF_TIMEOUT_MS","STATE_CHANGE_EVENT","collectGestureHandlerTags","fiber","current","steps","MAX_ANCESTOR_WALK","found","tagsOnFiber","pressable","length","container","getReturn","GestureHandlerHandoff","pending","Map","nextId","subscription","track","touch","handlerTags","id","settled","finishedTags","Set","timer","setTimeout","drop","set","ensureListening","resetForTests","values","clearTimeout","clear","stopListeningIfIdle","pendingCount","size","emitter","deviceEventEmitter","addListener","payload","handleStateChange","remove","event","asPayload","matching","filter","includes","handlerTag","apply","isTerminal","state","isCompletedTap","resolve","endPoint","add","allDone","every","tag","has","end","notify","onResolve","get","delete","gestureHandlerHandoff","seen","isContainer","undefined","push","props","getMemoizedProps","handlerTagOf","getStateNode","disallowInterruption","gesture","toArray","toGestureArray","list","call","Array","isArray","item","readHandlers","disallowsInterruption","value","config","handlers","Number","isFinite","reactNative","DeviceEventEmitter","raw","body","nativeEvent","oldState","pointerInside","translationX","translationY","absoluteX","absoluteY","hasDuration","duration","withinTapSlop","pageX","pageY"],"sourceRoot":"../../../src","sources":["anchors/gestureHandlerHandoff.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,6 +7,12 @@ exports.clearFiberAnchorCache = clearFiberAnchorCache;
|
|
|
7
7
|
exports.invalidateFiberAnchor = invalidateFiberAnchor;
|
|
8
8
|
exports.notifyAnchorScreenChange = notifyAnchorScreenChange;
|
|
9
9
|
exports.resolveAnchorHost = resolveAnchorHost;
|
|
10
|
+
Object.defineProperty(exports, "subscribeAnchorScreenChange", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _fiberAnchorCache.subscribeAnchorScreenChange;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
10
16
|
var _AnchorRegistry = require("./AnchorRegistry.js");
|
|
11
17
|
var _FiberScanRoot = require("./fiber/FiberScanRoot.js");
|
|
12
18
|
var _fiberInternals = require("./fiber/fiberInternals.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AnchorRegistry","require","_FiberScanRoot","_fiberInternals","_findAnchorFiber","_measureHostFiber","_visibleScreens","_fiberAnchorCache","notifyAnchorScreenChange","screenKey","onAnchorScreenChange","clearFiberAnchorCache","clearCache","invalidateFiberAnchor","id","dropCachedFiberAnchor","resolveAnchorHost","status","anchorRegistry","isAmbiguous","registered","get","host","cached","getCachedFiberAnchor","currentScreenKey","getFiberAnchorScreenKey","isFiberMounted","fiber","isFiberOnVisibleScreen","measureInWindow","createFiberMeasureInWindow","deleteCachedFiberAnchor","root","fiberScanRoot","getFiber","result","findAnchorFiber","setCachedFiberAnchor"],"sourceRoot":"../../../src","sources":["anchors/resolveAnchorHost.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_AnchorRegistry","require","_FiberScanRoot","_fiberInternals","_findAnchorFiber","_measureHostFiber","_visibleScreens","_fiberAnchorCache","notifyAnchorScreenChange","screenKey","onAnchorScreenChange","clearFiberAnchorCache","clearCache","invalidateFiberAnchor","id","dropCachedFiberAnchor","resolveAnchorHost","status","anchorRegistry","isAmbiguous","registered","get","host","cached","getCachedFiberAnchor","currentScreenKey","getFiberAnchorScreenKey","isFiberMounted","fiber","isFiberOnVisibleScreen","measureInWindow","createFiberMeasureInWindow","deleteCachedFiberAnchor","root","fiberScanRoot","getFiber","result","findAnchorFiber","setCachedFiberAnchor"],"sourceRoot":"../../../src","sources":["anchors/resolveAnchorHost.ts"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AAiBA;AACO,SAASO,wBAAwBA,CAACC,SAAwB,EAAQ;EACvE,IAAAC,0CAAoB,EAACD,SAAS,CAAC;AACjC;;AAEA;AACO,SAASE,qBAAqBA,CAAA,EAAS;EAC5C,IAAAC,uCAAU,EAAC,CAAC;AACd;;AAEA;AACA;AACA;AACA;AACO,SAASC,qBAAqBA,CAACC,EAAU,EAAQ;EACtD,IAAAC,uCAAqB,EAACD,EAAE,CAAC;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,iBAAiBA,CAACF,EAAU,EAAoB;EAC9D,IAAI,CAACA,EAAE,EAAE,OAAO;IAAEG,MAAM,EAAE;EAAU,CAAC;;EAErC;EACA,IAAIC,8BAAc,CAACC,WAAW,CAACL,EAAE,CAAC,EAAE;IAClC,OAAO;MAAEG,MAAM,EAAE;IAAY,CAAC;EAChC;EACA,MAAMG,UAAU,GAAGF,8BAAc,CAACG,GAAG,CAACP,EAAE,CAAC;EACzC,IAAIM,UAAU,EAAE;IACd,OAAO;MAAEH,MAAM,EAAE,OAAO;MAAEK,IAAI,EAAEF;IAAW,CAAC;EAC9C;;EAEA;EACA;EACA,MAAMG,MAAM,GAAG,IAAAC,sCAAoB,EAACV,EAAE,CAAC;EACvC,MAAMW,gBAAgB,GAAG,IAAAC,yCAAuB,EAAC,CAAC;EAClD,IACEH,MAAM,IACNA,MAAM,CAACd,SAAS,KAAKgB,gBAAgB,IACrC,IAAAE,8BAAc,EAACJ,MAAM,CAACK,KAAK,CAAC,IAC5B,IAAAC,sCAAsB,EAACN,MAAM,CAACK,KAAK,CAAC,EACpC;IACA,OAAO;MACLX,MAAM,EAAE,OAAO;MACfK,IAAI,EAAE;QAAEQ,eAAe,EAAE,IAAAC,4CAA0B,EAACR,MAAM,CAACK,KAAK;MAAE,CAAC;MACnEA,KAAK,EAAEL,MAAM,CAACK;IAChB,CAAC;EACH;EACA,IAAIL,MAAM,EAAE;IACV,IAAAS,yCAAuB,EAAClB,EAAE,CAAC;EAC7B;EAEA,MAAMmB,IAAI,GAAGC,4BAAa,CAACC,QAAQ,CAAC,CAAC;EACrC,IAAI,CAACF,IAAI,EAAE;IACT,OAAO;MAAEhB,MAAM,EAAE;IAAU,CAAC;EAC9B;EAEA,MAAMmB,MAAM,GAAG,IAAAC,gCAAe,EAACJ,IAAI,EAAEnB,EAAE,CAAC;EACxC,IAAIsB,MAAM,CAACnB,MAAM,KAAK,WAAW,EAAE;IACjC,OAAO;MAAEA,MAAM,EAAE;IAAY,CAAC;EAChC;EACA,IAAImB,MAAM,CAACnB,MAAM,KAAK,SAAS,EAAE;IAC/B,OAAO;MAAEA,MAAM,EAAE;IAAU,CAAC;EAC9B;EAEA,IAAAqB,sCAAoB,EAACxB,EAAE,EAAEsB,MAAM,CAACR,KAAK,CAAC;EACtC,OAAO;IACLX,MAAM,EAAE,OAAO;IACfK,IAAI,EAAE;MAAEQ,eAAe,EAAE,IAAAC,4CAA0B,EAACK,MAAM,CAACR,KAAK;IAAE,CAAC;IACnEA,KAAK,EAAEQ,MAAM,CAACR;EAChB,CAAC;AACH","ignoreList":[]}
|
|
@@ -109,7 +109,10 @@ function resolveScoredAutoAnchor(fp) {
|
|
|
109
109
|
});
|
|
110
110
|
if (visible.instance) return mapMatch(visible);
|
|
111
111
|
if (visible.reason === 'no-candidates') {
|
|
112
|
-
|
|
112
|
+
// Nothing can commit between the two matches, so the first read stands.
|
|
113
|
+
const any = (0, _semanticMatcher.matchFingerprint)(fp, {
|
|
114
|
+
liveContentFresh: true
|
|
115
|
+
});
|
|
113
116
|
if (any.instance) return {
|
|
114
117
|
status: 'absent',
|
|
115
118
|
match: any
|
|
@@ -126,10 +129,11 @@ function resolveScoredAutoAnchor(fp) {
|
|
|
126
129
|
* carries a real `testID` / `userflowId` / non-`uf_` `nativeID` still resolves
|
|
127
130
|
* under Babel `stampOnly: true` (no auto-registry population).
|
|
128
131
|
*
|
|
129
|
-
* Scored matches run over `autoAnchorRegistry
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
* are skipped the same way the fiber scan
|
|
132
|
+
* Scored matches run over `autoAnchorRegistry`. A covered screen and a
|
|
133
|
+
* contradicted fingerprint are `absent`. Weak, missing, or tied evidence stays
|
|
134
|
+
* `unknown` here; element conditions decide which of those count as absent.
|
|
135
|
+
* Hosts on a covered navigator screen are skipped the same way the fiber scan
|
|
136
|
+
* skips them.
|
|
133
137
|
*/
|
|
134
138
|
function resolveAutoAnchorHost(autoData) {
|
|
135
139
|
const decoded = decodeInput(autoData);
|
|
@@ -153,7 +157,8 @@ function resolveAutoAnchorHost(autoData) {
|
|
|
153
157
|
status: 'ambiguous'
|
|
154
158
|
};
|
|
155
159
|
return {
|
|
156
|
-
status: 'unknown'
|
|
160
|
+
status: 'unknown',
|
|
161
|
+
fiberMiss: fiberHit.reason
|
|
157
162
|
};
|
|
158
163
|
}
|
|
159
164
|
const exactId = exactIdFromFingerprint(fp);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_protocol","require","_fiberInternals","_measureHostFiber","_resolveFiberPath","_isInstanceOnVisibleScreen","_resolveAnchorHost","_semanticMatcher","isMeasurableNode","value","measureInWindow","hostFromInstance","inst","node","ref","current","callback","scrollIntoView","fiber","fiberFromInstance","createFiberMeasureInWindow","fiberFromPublicInstance","exactIdFromFingerprint","fp","userflowId","testID","nativeID","startsWith","decodeInput","autoData","trim","decodeMobileAutoData","mapMatch","match","instance","host","status","reason","resolveScoredAutoAnchor","visible","matchFingerprint","instanceFilter","createVisibleInstanceFilter","any","resolveAutoAnchorHost","decoded","fingerprint","resolver","fiberPath","fiberHit","resolveFiberPath","fiberCacheId","cacheId","exactId","exact","resolveAnchorHost"],"sourceRoot":"../../../src","sources":["anchors/resolveAutoAnchorHost.ts"],"mappings":";;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AASA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,0BAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,gBAAA,GAAAN,OAAA;
|
|
1
|
+
{"version":3,"names":["_protocol","require","_fiberInternals","_measureHostFiber","_resolveFiberPath","_isInstanceOnVisibleScreen","_resolveAnchorHost","_semanticMatcher","isMeasurableNode","value","measureInWindow","hostFromInstance","inst","node","ref","current","callback","scrollIntoView","fiber","fiberFromInstance","createFiberMeasureInWindow","fiberFromPublicInstance","exactIdFromFingerprint","fp","userflowId","testID","nativeID","startsWith","decodeInput","autoData","trim","decodeMobileAutoData","mapMatch","match","instance","host","status","reason","resolveScoredAutoAnchor","visible","matchFingerprint","instanceFilter","createVisibleInstanceFilter","any","liveContentFresh","resolveAutoAnchorHost","decoded","fingerprint","resolver","fiberPath","fiberHit","resolveFiberPath","fiberCacheId","cacheId","fiberMiss","exactId","exact","resolveAnchorHost"],"sourceRoot":"../../../src","sources":["anchors/resolveAutoAnchorHost.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.resolveElementTargets = resolveElementTargets;
|
|
7
7
|
exports.tapMayHitSelector = tapMayHitSelector;
|
|
8
8
|
var _protocol = require("@userflow-tech/protocol");
|
|
9
|
+
var _screenTracker = require("../screenTracker.js");
|
|
9
10
|
var _AnchorRegistry = require("./AnchorRegistry.js");
|
|
11
|
+
var _AutoAnchorRegistry = require("./AutoAnchorRegistry.js");
|
|
10
12
|
var _elementTargetMatch = require("./elementTargetMatch.js");
|
|
11
13
|
var _FiberScanRoot = require("./fiber/FiberScanRoot.js");
|
|
12
14
|
var _fiberInternals = require("./fiber/fiberInternals.js");
|
|
@@ -60,19 +62,33 @@ function resolveAutoTargets(autoData) {
|
|
|
60
62
|
status: 'unknown'
|
|
61
63
|
};
|
|
62
64
|
if (decoded.resolver === 'fiber' && decoded.fiberPath) {
|
|
63
|
-
return
|
|
65
|
+
return conditionVerdict((0, _resolveAutoAnchorHost.resolveAutoAnchorHost)(decoded), decoded);
|
|
64
66
|
}
|
|
65
67
|
const exactId = (0, _resolveAutoAnchorHost.exactIdFromFingerprint)(fingerprint);
|
|
68
|
+
let exactIdAbsent = false;
|
|
66
69
|
if (exactId) {
|
|
67
70
|
const manual = resolveManualTargets(exactId);
|
|
68
71
|
if (manual.status === 'found') return manual;
|
|
72
|
+
// "Absent" before a scan root exists only means we have not looked yet.
|
|
73
|
+
exactIdAbsent = _FiberScanRoot.fiberScanRoot.getFiber() != null;
|
|
69
74
|
}
|
|
70
75
|
|
|
71
76
|
// The exact id already missed above, so go straight to scoring rather than
|
|
72
77
|
// letting resolveAutoAnchorHost scan for it again.
|
|
73
|
-
return
|
|
78
|
+
return conditionVerdict((0, _resolveAutoAnchorHost.resolveScoredAutoAnchor)(fingerprint), decoded, exactIdAbsent);
|
|
74
79
|
}
|
|
75
|
-
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Turn an AUTO resolution into the value an element condition can report.
|
|
83
|
+
*
|
|
84
|
+
* A miss (nothing scored, or an exact id that a scan did not find) is absent,
|
|
85
|
+
* matching web. A tie stays unknown on the screen where the element was picked,
|
|
86
|
+
* because the target may be one of the look-alikes, and is absent on any other
|
|
87
|
+
* screen. An empty registry with no exact id, a missing scan root, and a
|
|
88
|
+
* missing fingerprint stay unknown so `stampOnly` cannot open a "not present"
|
|
89
|
+
* gate.
|
|
90
|
+
*/
|
|
91
|
+
function conditionVerdict(resolution, decoded, exactIdAbsent = false) {
|
|
76
92
|
if (resolution.status === 'found') {
|
|
77
93
|
// Scored matches only try the direct ref pointer, which Paper release
|
|
78
94
|
// builds null out. Without the index fallback a tap could never match.
|
|
@@ -90,16 +106,55 @@ function fromAutoResolution(resolution) {
|
|
|
90
106
|
if (resolution.status === 'absent') return {
|
|
91
107
|
status: 'absent'
|
|
92
108
|
};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
109
|
+
if (resolution.status === 'unknown') {
|
|
110
|
+
if (resolution.fiberMiss === 'no-root' || resolution.fiberMiss === 'empty') {
|
|
111
|
+
return {
|
|
112
|
+
status: 'unknown'
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
if (resolution.fiberMiss === 'no-match') return {
|
|
116
|
+
status: 'absent'
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
const reason = resolution.match?.reason;
|
|
120
|
+
const tie = resolution.status === 'ambiguous' || reason === 'not-unique' || reason === 'ambiguous-explicit-id';
|
|
121
|
+
if (tie) {
|
|
122
|
+
if (offPickedScreen(decoded.screenId)) return {
|
|
123
|
+
status: 'absent'
|
|
124
|
+
};
|
|
125
|
+
// A real tie is not a broken selector, so it does not warn. A weak
|
|
126
|
+
// not-unique miss still does, matching the previous unknown report.
|
|
127
|
+
return reason === 'not-unique' ? {
|
|
128
|
+
status: 'unknown'
|
|
129
|
+
} : {
|
|
130
|
+
status: 'unknown',
|
|
131
|
+
silent: true
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
if (reason === 'below-threshold') return {
|
|
135
|
+
status: 'absent'
|
|
98
136
|
};
|
|
137
|
+
if (reason === 'no-candidates') {
|
|
138
|
+
const nothingToMatch = _AutoAnchorRegistry.autoAnchorRegistry.allInstances().length === 0 && !exactIdAbsent;
|
|
139
|
+
if (nothingToMatch) return {
|
|
140
|
+
status: 'unknown'
|
|
141
|
+
};
|
|
142
|
+
return {
|
|
143
|
+
status: 'absent'
|
|
144
|
+
};
|
|
145
|
+
}
|
|
99
146
|
return {
|
|
100
147
|
status: 'unknown'
|
|
101
148
|
};
|
|
102
149
|
}
|
|
150
|
+
|
|
151
|
+
/** True when the picked screen is known and the app is on a different one. */
|
|
152
|
+
function offPickedScreen(pickedScreenId) {
|
|
153
|
+
if (!pickedScreenId || pickedScreenId === 'unknown') return false;
|
|
154
|
+
const current = (0, _screenTracker.screenIdFromLocation)((0, _screenTracker.getCurrentScreenLocation)());
|
|
155
|
+
if (current === 'unknown') return false;
|
|
156
|
+
return current !== pickedScreenId;
|
|
157
|
+
}
|
|
103
158
|
function resolveManualTargets(id) {
|
|
104
159
|
const registered = _AnchorRegistry.anchorRegistry.getAll(id);
|
|
105
160
|
if (registered.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_protocol","require","_AnchorRegistry","_elementTargetMatch","_FiberScanRoot","_fiberInternals","_findAnchorFiber","_indexHostFibers","_measureHostFiber","_visibleScreens","_resolveAutoAnchorHost","_resolveManualAnchorId","resolveElementTargets","selector","status","type","resolveAutoTargets","autoData","anchorId","resolveManualAnchorId","css","resolveManualTargets","tapMayHitSelector","tap","anchorRegistry","get","anchorIdsAboveTap","has","decoded","decodeMobileAutoData","fingerprint","resolver","fiberPath","
|
|
1
|
+
{"version":3,"names":["_protocol","require","_screenTracker","_AnchorRegistry","_AutoAnchorRegistry","_elementTargetMatch","_FiberScanRoot","_fiberInternals","_findAnchorFiber","_indexHostFibers","_measureHostFiber","_visibleScreens","_resolveAutoAnchorHost","_resolveManualAnchorId","resolveElementTargets","selector","status","type","resolveAutoTargets","autoData","anchorId","resolveManualAnchorId","css","resolveManualTargets","tapMayHitSelector","tap","anchorRegistry","get","anchorIdsAboveTap","has","decoded","decodeMobileAutoData","fingerprint","resolver","fiberPath","conditionVerdict","resolveAutoAnchorHost","exactId","exactIdFromFingerprint","exactIdAbsent","manual","fiberScanRoot","getFiber","resolveScoredAutoAnchor","resolution","fiber","fiberForNode","createLazyHostFiberIndex","match","instance","ref","current","targets","host","fiberMiss","reason","tie","offPickedScreen","screenId","silent","nothingToMatch","autoAnchorRegistry","allInstances","length","pickedScreenId","screenIdFromLocation","getCurrentScreenLocation","id","registered","getAll","index","map","node","filter","target","isFiberOnVisibleScreen","root","found","findAnchorFibers","fibers","publicInstanceFromHostFiber","measureInWindow","createFiberMeasureInWindow","undefined","lookupHostFiber"],"sourceRoot":"../../../src","sources":["anchors/resolveElementTargets.ts"],"mappings":"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","ignoreList":[]}
|