@userflow-tech/react-native 0.4.5 → 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 +7 -2
- package/docs/anchoring.md +6 -1
- package/docs/troubleshooting.md +26 -0
- 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/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/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/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/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/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
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Taps that react-native-gesture-handler takes away from React Native.
|
|
5
|
+
*
|
|
6
|
+
* When a gesture-handler control activates, it cancels RN's touch stream, so
|
|
7
|
+
* the bridge sees `touchcancel` instead of `touchend`. The handler tag is read
|
|
8
|
+
* off the touched fiber (no import of gesture-handler), and the touch counts
|
|
9
|
+
* as a tap only if that handler later ends from ACTIVE on
|
|
10
|
+
* `onGestureHandlerStateChange`. Apps that never hit this path never subscribe.
|
|
11
|
+
*
|
|
12
|
+
* State numbers are gesture-handler's `State` enum. A future major that
|
|
13
|
+
* renumbers them degrades to "no tap", which is today's behavior.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { getMemoizedProps, getReturn, getStateNode, MAX_ANCESTOR_WALK } from "./fiber/fiberInternals.js";
|
|
17
|
+
import { withinTapSlop } from "./tapSlop.js";
|
|
18
|
+
|
|
19
|
+
/** gesture-handler `State` values this hand-off acts on. */
|
|
20
|
+
export const GESTURE_HANDLER_STATE = {
|
|
21
|
+
FAILED: 1,
|
|
22
|
+
CANCELLED: 3,
|
|
23
|
+
ACTIVE: 4,
|
|
24
|
+
END: 5
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/** Drop a handed-off touch that never reaches a terminal state. */
|
|
28
|
+
export const GESTURE_HANDLER_HANDOFF_TIMEOUT_MS = 10_000;
|
|
29
|
+
const STATE_CHANGE_EVENT = 'onGestureHandlerStateChange';
|
|
30
|
+
/**
|
|
31
|
+
* Handler tags for the control under `fiber`.
|
|
32
|
+
*
|
|
33
|
+
* Old-API buttons keep `handlerTag` on the class instance. `GestureDetector`
|
|
34
|
+
* keeps a `gesture` prop whose `toGestureArray()` entries each have one.
|
|
35
|
+
* Negative tags (gesture-handler's own root helper) are ignored.
|
|
36
|
+
*
|
|
37
|
+
* The walk stops at the nearest fiber that has a tag. A native handler with
|
|
38
|
+
* `disallowInterruption` (gesture-handler `ScrollView`, `FlatList`,
|
|
39
|
+
* `RefreshControl`) is a container, not a tap, so a scroll that starts inside
|
|
40
|
+
* it is dropped instead of latching the row. Never throws.
|
|
41
|
+
*/
|
|
42
|
+
export function collectGestureHandlerTags(fiber) {
|
|
43
|
+
if (fiber == null) return [];
|
|
44
|
+
try {
|
|
45
|
+
let current = fiber;
|
|
46
|
+
let steps = 0;
|
|
47
|
+
while (current && steps < MAX_ANCESTOR_WALK) {
|
|
48
|
+
steps += 1;
|
|
49
|
+
const found = tagsOnFiber(current);
|
|
50
|
+
if (found.pressable.length > 0) return found.pressable;
|
|
51
|
+
// The nearest handler is a scroll container. An outer control did not
|
|
52
|
+
// receive this touch.
|
|
53
|
+
if (found.container) return [];
|
|
54
|
+
current = getReturn(current);
|
|
55
|
+
}
|
|
56
|
+
} catch {
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
export class GestureHandlerHandoff {
|
|
62
|
+
pending = new Map();
|
|
63
|
+
nextId = 1;
|
|
64
|
+
subscription = null;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Keep `touch` until its handler finishes or it expires.
|
|
68
|
+
* Returns a stop function; calling it drops the touch without a tap.
|
|
69
|
+
*/
|
|
70
|
+
track(touch) {
|
|
71
|
+
if (touch.handlerTags.length === 0) return () => {};
|
|
72
|
+
const id = this.nextId;
|
|
73
|
+
this.nextId += 1;
|
|
74
|
+
const pending = {
|
|
75
|
+
...touch,
|
|
76
|
+
id,
|
|
77
|
+
settled: false,
|
|
78
|
+
finishedTags: new Set(),
|
|
79
|
+
timer: setTimeout(() => {
|
|
80
|
+
this.drop(id);
|
|
81
|
+
}, GESTURE_HANDLER_HANDOFF_TIMEOUT_MS)
|
|
82
|
+
};
|
|
83
|
+
this.pending.set(id, pending);
|
|
84
|
+
this.ensureListening();
|
|
85
|
+
return () => this.drop(id);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** Test helper. Drops every pending touch and unsubscribes. */
|
|
89
|
+
resetForTests() {
|
|
90
|
+
for (const touch of this.pending.values()) {
|
|
91
|
+
touch.settled = true;
|
|
92
|
+
clearTimeout(touch.timer);
|
|
93
|
+
}
|
|
94
|
+
this.pending.clear();
|
|
95
|
+
this.stopListeningIfIdle();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** @internal Test hook: how many touches are still waiting. */
|
|
99
|
+
get pendingCount() {
|
|
100
|
+
return this.pending.size;
|
|
101
|
+
}
|
|
102
|
+
ensureListening() {
|
|
103
|
+
if (this.subscription || this.pending.size === 0) return;
|
|
104
|
+
const emitter = deviceEventEmitter();
|
|
105
|
+
if (!emitter) return;
|
|
106
|
+
this.subscription = emitter.addListener(STATE_CHANGE_EVENT, payload => {
|
|
107
|
+
try {
|
|
108
|
+
this.handleStateChange(payload);
|
|
109
|
+
} catch {
|
|
110
|
+
// A bad payload must not break the next gesture.
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
stopListeningIfIdle() {
|
|
115
|
+
if (this.pending.size > 0 || !this.subscription) return;
|
|
116
|
+
this.subscription.remove();
|
|
117
|
+
this.subscription = null;
|
|
118
|
+
}
|
|
119
|
+
handleStateChange(event) {
|
|
120
|
+
const payload = asPayload(event);
|
|
121
|
+
if (!payload) return;
|
|
122
|
+
const matching = [...this.pending.values()].filter(touch => !touch.settled && touch.handlerTags.includes(payload.handlerTag));
|
|
123
|
+
for (const touch of matching) {
|
|
124
|
+
this.apply(touch, payload);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
apply(touch, payload) {
|
|
128
|
+
if (touch.settled || !isTerminal(payload.state)) return;
|
|
129
|
+
if (isCompletedTap(touch, payload)) {
|
|
130
|
+
this.resolve(touch, endPoint(payload));
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
touch.finishedTags.add(payload.handlerTag);
|
|
134
|
+
const allDone = touch.handlerTags.every(tag => touch.finishedTags.has(tag));
|
|
135
|
+
if (allDone) this.drop(touch.id);
|
|
136
|
+
}
|
|
137
|
+
resolve(touch, end) {
|
|
138
|
+
const notify = touch.onResolve;
|
|
139
|
+
this.drop(touch.id);
|
|
140
|
+
try {
|
|
141
|
+
notify(end);
|
|
142
|
+
} catch {
|
|
143
|
+
// One monitor's failure must not skip the other touch on this event.
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
drop(id) {
|
|
147
|
+
const touch = this.pending.get(id);
|
|
148
|
+
if (!touch || touch.settled) return;
|
|
149
|
+
touch.settled = true;
|
|
150
|
+
clearTimeout(touch.timer);
|
|
151
|
+
this.pending.delete(id);
|
|
152
|
+
this.stopListeningIfIdle();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/** Shared singleton used by the tap monitors. */
|
|
157
|
+
export const gestureHandlerHandoff = new GestureHandlerHandoff();
|
|
158
|
+
function tagsOnFiber(fiber) {
|
|
159
|
+
try {
|
|
160
|
+
const pressable = [];
|
|
161
|
+
const seen = new Set();
|
|
162
|
+
let container = false;
|
|
163
|
+
const add = (tag, isContainer) => {
|
|
164
|
+
if (tag === undefined) return;
|
|
165
|
+
if (isContainer) {
|
|
166
|
+
container = true;
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
if (seen.has(tag)) return;
|
|
170
|
+
seen.add(tag);
|
|
171
|
+
pressable.push(tag);
|
|
172
|
+
};
|
|
173
|
+
const props = getMemoizedProps(fiber);
|
|
174
|
+
add(handlerTagOf(getStateNode(fiber)), props?.disallowInterruption === true);
|
|
175
|
+
const gesture = props?.gesture;
|
|
176
|
+
if (gesture && typeof gesture === 'object' && 'toGestureArray' in gesture) {
|
|
177
|
+
const toArray = gesture.toGestureArray;
|
|
178
|
+
if (typeof toArray === 'function') {
|
|
179
|
+
const list = toArray.call(gesture);
|
|
180
|
+
if (Array.isArray(list)) {
|
|
181
|
+
for (const item of list) {
|
|
182
|
+
const tag = handlerTagOf(item) ?? handlerTagOf(readHandlers(item));
|
|
183
|
+
add(tag, disallowsInterruption(item));
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
pressable,
|
|
190
|
+
container: container && pressable.length === 0
|
|
191
|
+
};
|
|
192
|
+
} catch {
|
|
193
|
+
return {
|
|
194
|
+
pressable: [],
|
|
195
|
+
container: false
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/** Gesture-handler scroll containers set this so a drag is not stolen. */
|
|
201
|
+
function disallowsInterruption(value) {
|
|
202
|
+
if (!value || typeof value !== 'object' || !('config' in value)) return false;
|
|
203
|
+
const config = value.config;
|
|
204
|
+
if (!config || typeof config !== 'object' || !('disallowInterruption' in config)) return false;
|
|
205
|
+
return config.disallowInterruption === true;
|
|
206
|
+
}
|
|
207
|
+
function readHandlers(value) {
|
|
208
|
+
if (!value || typeof value !== 'object' || !('handlers' in value)) return undefined;
|
|
209
|
+
return value.handlers;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/** A mounted gesture-handler tag. `-1` means "not attached yet". */
|
|
213
|
+
function handlerTagOf(value) {
|
|
214
|
+
if (!value || typeof value !== 'object' || !('handlerTag' in value)) return undefined;
|
|
215
|
+
const tag = value.handlerTag;
|
|
216
|
+
if (typeof tag !== 'number' || !Number.isFinite(tag) || tag < 0) return undefined;
|
|
217
|
+
return tag;
|
|
218
|
+
}
|
|
219
|
+
function deviceEventEmitter() {
|
|
220
|
+
try {
|
|
221
|
+
// Lazy so a tap that is never cancelled does not load React Native's emitter
|
|
222
|
+
// into unit tests that only exercise the monitors.
|
|
223
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
224
|
+
const reactNative = require('react-native');
|
|
225
|
+
const emitter = reactNative.DeviceEventEmitter;
|
|
226
|
+
if (!emitter || typeof emitter.addListener !== 'function') return null;
|
|
227
|
+
return emitter;
|
|
228
|
+
} catch {
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
function asPayload(event) {
|
|
233
|
+
if (!event || typeof event !== 'object') return null;
|
|
234
|
+
const raw = event;
|
|
235
|
+
const body = raw.nativeEvent && typeof raw.nativeEvent === 'object' ? raw.nativeEvent : raw;
|
|
236
|
+
if (typeof body.handlerTag !== 'number' || typeof body.state !== 'number') return null;
|
|
237
|
+
return {
|
|
238
|
+
handlerTag: body.handlerTag,
|
|
239
|
+
state: body.state,
|
|
240
|
+
...(typeof body.oldState === 'number' ? {
|
|
241
|
+
oldState: body.oldState
|
|
242
|
+
} : {}),
|
|
243
|
+
...(typeof body.pointerInside === 'boolean' ? {
|
|
244
|
+
pointerInside: body.pointerInside
|
|
245
|
+
} : {}),
|
|
246
|
+
...(typeof body.translationX === 'number' ? {
|
|
247
|
+
translationX: body.translationX
|
|
248
|
+
} : {}),
|
|
249
|
+
...(typeof body.translationY === 'number' ? {
|
|
250
|
+
translationY: body.translationY
|
|
251
|
+
} : {}),
|
|
252
|
+
...(typeof body.absoluteX === 'number' ? {
|
|
253
|
+
absoluteX: body.absoluteX
|
|
254
|
+
} : {}),
|
|
255
|
+
...(typeof body.absoluteY === 'number' ? {
|
|
256
|
+
absoluteY: body.absoluteY
|
|
257
|
+
} : {}),
|
|
258
|
+
hasDuration: 'duration' in body && body.duration != null
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
function isTerminal(state) {
|
|
262
|
+
return state === GESTURE_HANDLER_STATE.FAILED || state === GESTURE_HANDLER_STATE.CANCELLED || state === GESTURE_HANDLER_STATE.END;
|
|
263
|
+
}
|
|
264
|
+
function isCompletedTap(touch, payload) {
|
|
265
|
+
if (payload.state !== GESTURE_HANDLER_STATE.END) return false;
|
|
266
|
+
if (payload.oldState !== GESTURE_HANDLER_STATE.ACTIVE) return false;
|
|
267
|
+
if (payload.pointerInside === false) return false;
|
|
268
|
+
if (payload.hasDuration) return false;
|
|
269
|
+
if (payload.translationX !== undefined && payload.translationY !== undefined && !withinTapSlop({
|
|
270
|
+
pageX: 0,
|
|
271
|
+
pageY: 0
|
|
272
|
+
}, {
|
|
273
|
+
pageX: payload.translationX,
|
|
274
|
+
pageY: payload.translationY
|
|
275
|
+
})) {
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
278
|
+
if (payload.absoluteX !== undefined && payload.absoluteY !== undefined) {
|
|
279
|
+
if (!withinTapSlop({
|
|
280
|
+
pageX: touch.pageX,
|
|
281
|
+
pageY: touch.pageY
|
|
282
|
+
}, {
|
|
283
|
+
pageX: payload.absoluteX,
|
|
284
|
+
pageY: payload.absoluteY
|
|
285
|
+
})) {
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return true;
|
|
290
|
+
}
|
|
291
|
+
function endPoint(payload) {
|
|
292
|
+
if (payload.absoluteX === undefined || payload.absoluteY === undefined) return null;
|
|
293
|
+
return {
|
|
294
|
+
pageX: payload.absoluteX,
|
|
295
|
+
pageY: payload.absoluteY
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=gestureHandlerHandoff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getMemoizedProps","getReturn","getStateNode","MAX_ANCESTOR_WALK","withinTapSlop","GESTURE_HANDLER_STATE","FAILED","CANCELLED","ACTIVE","END","GESTURE_HANDLER_HANDOFF_TIMEOUT_MS","STATE_CHANGE_EVENT","collectGestureHandlerTags","fiber","current","steps","found","tagsOnFiber","pressable","length","container","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","handlerTagOf","disallowInterruption","gesture","toArray","toGestureArray","list","call","Array","isArray","item","readHandlers","disallowsInterruption","value","config","handlers","Number","isFinite","reactNative","require","DeviceEventEmitter","raw","body","nativeEvent","oldState","pointerInside","translationX","translationY","absoluteX","absoluteY","hasDuration","duration","pageX","pageY"],"sourceRoot":"../../../src","sources":["anchors/gestureHandlerHandoff.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ import { findAnchorFiber } from "./fiber/findAnchorFiber.js";
|
|
|
7
7
|
import { createFiberMeasureInWindow } from "./fiber/measureHostFiber.js";
|
|
8
8
|
import { isFiberOnVisibleScreen } from "./fiber/visibleScreens.js";
|
|
9
9
|
import { clearFiberAnchorCache as clearCache, deleteCachedFiberAnchor, getCachedFiberAnchor, getFiberAnchorScreenKey, invalidateFiberAnchor as dropCachedFiberAnchor, notifyAnchorScreenChange as onAnchorScreenChange, setCachedFiberAnchor } from "./fiberAnchorCache.js";
|
|
10
|
+
export { subscribeAnchorScreenChange } from "./fiberAnchorCache.js";
|
|
10
11
|
/** Invalidate fiber-resolved anchors when the active screen changes. */
|
|
11
12
|
export function notifyAnchorScreenChange(screenKey) {
|
|
12
13
|
onAnchorScreenChange(screenKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["anchorRegistry","fiberScanRoot","isFiberMounted","findAnchorFiber","createFiberMeasureInWindow","isFiberOnVisibleScreen","clearFiberAnchorCache","clearCache","deleteCachedFiberAnchor","getCachedFiberAnchor","getFiberAnchorScreenKey","invalidateFiberAnchor","dropCachedFiberAnchor","notifyAnchorScreenChange","onAnchorScreenChange","setCachedFiberAnchor","screenKey","id","resolveAnchorHost","status","isAmbiguous","registered","get","host","cached","currentScreenKey","fiber","measureInWindow","root","getFiber","result"],"sourceRoot":"../../../src","sources":["anchors/resolveAnchorHost.ts"],"mappings":";;AAAA,SAA0BA,cAAc,QAAQ,qBAAkB;AAClE,SAASC,aAAa,QAAQ,0BAAuB;AAErD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,eAAe,QAAQ,4BAAyB;AACzD,SAASC,0BAA0B,QAAQ,6BAA0B;AACrE,SAASC,sBAAsB,QAAQ,2BAAwB;AAC/D,SACEC,qBAAqB,IAAIC,UAAU,EACnCC,uBAAuB,EACvBC,oBAAoB,EACpBC,uBAAuB,EACvBC,qBAAqB,IAAIC,qBAAqB,EAC9CC,wBAAwB,IAAIC,oBAAoB,EAChDC,oBAAoB,QACf,uBAAoB;
|
|
1
|
+
{"version":3,"names":["anchorRegistry","fiberScanRoot","isFiberMounted","findAnchorFiber","createFiberMeasureInWindow","isFiberOnVisibleScreen","clearFiberAnchorCache","clearCache","deleteCachedFiberAnchor","getCachedFiberAnchor","getFiberAnchorScreenKey","invalidateFiberAnchor","dropCachedFiberAnchor","notifyAnchorScreenChange","onAnchorScreenChange","setCachedFiberAnchor","subscribeAnchorScreenChange","screenKey","id","resolveAnchorHost","status","isAmbiguous","registered","get","host","cached","currentScreenKey","fiber","measureInWindow","root","getFiber","result"],"sourceRoot":"../../../src","sources":["anchors/resolveAnchorHost.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -103,7 +103,10 @@ export function resolveScoredAutoAnchor(fp) {
|
|
|
103
103
|
});
|
|
104
104
|
if (visible.instance) return mapMatch(visible);
|
|
105
105
|
if (visible.reason === 'no-candidates') {
|
|
106
|
-
|
|
106
|
+
// Nothing can commit between the two matches, so the first read stands.
|
|
107
|
+
const any = matchFingerprint(fp, {
|
|
108
|
+
liveContentFresh: true
|
|
109
|
+
});
|
|
107
110
|
if (any.instance) return {
|
|
108
111
|
status: 'absent',
|
|
109
112
|
match: any
|
|
@@ -120,10 +123,11 @@ export function resolveScoredAutoAnchor(fp) {
|
|
|
120
123
|
* carries a real `testID` / `userflowId` / non-`uf_` `nativeID` still resolves
|
|
121
124
|
* under Babel `stampOnly: true` (no auto-registry population).
|
|
122
125
|
*
|
|
123
|
-
* Scored matches run over `autoAnchorRegistry
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* are skipped the same way the fiber scan
|
|
126
|
+
* Scored matches run over `autoAnchorRegistry`. A covered screen and a
|
|
127
|
+
* contradicted fingerprint are `absent`. Weak, missing, or tied evidence stays
|
|
128
|
+
* `unknown` here; element conditions decide which of those count as absent.
|
|
129
|
+
* Hosts on a covered navigator screen are skipped the same way the fiber scan
|
|
130
|
+
* skips them.
|
|
127
131
|
*/
|
|
128
132
|
export function resolveAutoAnchorHost(autoData) {
|
|
129
133
|
const decoded = decodeInput(autoData);
|
|
@@ -147,7 +151,8 @@ export function resolveAutoAnchorHost(autoData) {
|
|
|
147
151
|
status: 'ambiguous'
|
|
148
152
|
};
|
|
149
153
|
return {
|
|
150
|
-
status: 'unknown'
|
|
154
|
+
status: 'unknown',
|
|
155
|
+
fiberMiss: fiberHit.reason
|
|
151
156
|
};
|
|
152
157
|
}
|
|
153
158
|
const exactId = exactIdFromFingerprint(fp);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["decodeMobileAutoData","fiberFromPublicInstance","createFiberMeasureInWindow","resolveFiberPath","createVisibleInstanceFilter","resolveAnchorHost","matchFingerprint","isMeasurableNode","value","measureInWindow","hostFromInstance","inst","node","ref","current","callback","scrollIntoView","fiber","fiberFromInstance","exactIdFromFingerprint","fp","userflowId","testID","nativeID","startsWith","decodeInput","autoData","trim","mapMatch","match","instance","host","status","reason","resolveScoredAutoAnchor","visible","instanceFilter","any","resolveAutoAnchorHost","decoded","fingerprint","resolver","fiberPath","fiberHit","fiberCacheId","cacheId","exactId","exact"],"sourceRoot":"../../../src","sources":["anchors/resolveAutoAnchorHost.ts"],"mappings":";;AAAA,SACEA,oBAAoB,QAGf,yBAAyB;AAKhC,SAASC,uBAAuB,QAAQ,2BAAwB;AAChE,SAASC,0BAA0B,QAAQ,6BAA0B;AACrE,SAASC,gBAAgB,
|
|
1
|
+
{"version":3,"names":["decodeMobileAutoData","fiberFromPublicInstance","createFiberMeasureInWindow","resolveFiberPath","createVisibleInstanceFilter","resolveAnchorHost","matchFingerprint","isMeasurableNode","value","measureInWindow","hostFromInstance","inst","node","ref","current","callback","scrollIntoView","fiber","fiberFromInstance","exactIdFromFingerprint","fp","userflowId","testID","nativeID","startsWith","decodeInput","autoData","trim","mapMatch","match","instance","host","status","reason","resolveScoredAutoAnchor","visible","instanceFilter","any","liveContentFresh","resolveAutoAnchorHost","decoded","fingerprint","resolver","fiberPath","fiberHit","fiberCacheId","cacheId","fiberMiss","exactId","exact"],"sourceRoot":"../../../src","sources":["anchors/resolveAutoAnchorHost.ts"],"mappings":";;AAAA,SACEA,oBAAoB,QAGf,yBAAyB;AAKhC,SAASC,uBAAuB,QAAQ,2BAAwB;AAChE,SAASC,0BAA0B,QAAQ,6BAA0B;AACrE,SAASC,gBAAgB,QAAkC,6BAA0B;AACrF,SAASC,2BAA2B,QAAQ,gCAA6B;AACzE,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,gBAAgB,QAA0B,sBAAmB;AAiCtE,SAASC,gBAAgBA,CAACC,KAAc,EAA2B;EACjE,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,OAAQA,KAAK,CAAmCC,eAAe,KAAK,UAAU;AAElF;;AAEA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAACC,IAAwB,EAAqB;EACrE,MAAMC,IAAI,GAAGD,IAAI,CAACE,GAAG,CAACC,OAAO;EAC7B,IAAIP,gBAAgB,CAACK,IAAI,CAAC,EAAE;IAC1B,OAAO;MACLH,eAAe,EAAGM,QAAQ,IAAK;QAC7BH,IAAI,CAACH,eAAe,CAACM,QAAQ,CAAC;MAChC,CAAC;MACD,IAAI,OAAOH,IAAI,CAACI,cAAc,KAAK,UAAU,GACzC;QACEA,cAAc,EAAEA,CAAA,KAAM;UACpBJ,IAAI,CAACI,cAAc,GAAG,CAAC;QACzB;MACF,CAAC,GACD,CAAC,CAAC;IACR,CAAC;EACH;EACA,MAAMC,KAAK,GAAGC,iBAAiB,CAACP,IAAI,CAAC;EACrC,IAAI,CAACM,KAAK,EAAE,OAAO,IAAI;EACvB,OAAO;IAAER,eAAe,EAAEP,0BAA0B,CAACe,KAAK;EAAE,CAAC;AAC/D;AAEA,SAASC,iBAAiBA,CAACP,IAAwB,EAAmB;EACpE,OAAOV,uBAAuB,CAACU,IAAI,CAACE,GAAG,CAACC,OAAO,CAAC;AAClD;;AAEA;AACA,OAAO,SAASK,sBAAsBA,CAACC,EAAqB,EAAiB;EAC3E,IAAIA,EAAE,CAACC,UAAU,EAAE,OAAOD,EAAE,CAACC,UAAU;EACvC,IAAID,EAAE,CAACE,MAAM,EAAE,OAAOF,EAAE,CAACE,MAAM;EAC/B,IAAIF,EAAE,CAACG,QAAQ,IAAI,CAACH,EAAE,CAACG,QAAQ,CAACC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAOJ,EAAE,CAACG,QAAQ;EACrE,OAAO,IAAI;AACb;AAEA,SAASE,WAAWA,CAACC,QAAoD,EAAyB;EAChG,IAAIA,QAAQ,IAAI,IAAI,EAAE,OAAO,IAAI;EACjC,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;IAChC,IAAI,CAACA,QAAQ,CAACC,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI;IACjC,OAAO3B,oBAAoB,CAAC0B,QAAQ,CAAC;EACvC;EACA,OAAOA,QAAQ;AACjB;AAEA,SAASE,QAAQA,CAACC,KAAkB,EAAwB;EAC1D,IAAIA,KAAK,CAACC,QAAQ,EAAE;IAClB,MAAMC,IAAI,GAAGrB,gBAAgB,CAACmB,KAAK,CAACC,QAAQ,CAAC;IAC7C,IAAI,CAACC,IAAI,EAAE,OAAO;MAAEC,MAAM,EAAE,SAAS;MAAEH;IAAM,CAAC;IAC9C,MAAMZ,KAAK,GAAGC,iBAAiB,CAACW,KAAK,CAACC,QAAQ,CAAC;IAC/C,OAAO;MAAEE,MAAM,EAAE,OAAO;MAAED,IAAI;MAAEF,KAAK;MAAE,IAAIZ,KAAK,GAAG;QAAEA;MAAM,CAAC,GAAG,CAAC,CAAC;IAAE,CAAC;EACtE;EAEA,QAAQY,KAAK,CAACI,MAAM;IAClB,KAAK,uBAAuB;MAC1B,OAAO;QAAED,MAAM,EAAE,WAAW;QAAEH;MAAM,CAAC;IACvC,KAAK,kBAAkB;MACrB,OAAO;QAAEG,MAAM,EAAE,QAAQ;QAAEH;MAAM,CAAC;IACpC;MACE;MACA,OAAO;QAAEG,MAAM,EAAE,SAAS;QAAEH;MAAM,CAAC;EACvC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,uBAAuBA,CAACd,EAAqB,EAAwB;EACnF,MAAMe,OAAO,GAAG7B,gBAAgB,CAACc,EAAE,EAAE;IAAEgB,cAAc,EAAEhC,2BAA2B,CAAC;EAAE,CAAC,CAAC;EACvF,IAAI+B,OAAO,CAACL,QAAQ,EAAE,OAAOF,QAAQ,CAACO,OAAO,CAAC;EAE9C,IAAIA,OAAO,CAACF,MAAM,KAAK,eAAe,EAAE;IACtC;IACA,MAAMI,GAAG,GAAG/B,gBAAgB,CAACc,EAAE,EAAE;MAAEkB,gBAAgB,EAAE;IAAK,CAAC,CAAC;IAC5D,IAAID,GAAG,CAACP,QAAQ,EAAE,OAAO;MAAEE,MAAM,EAAE,QAAQ;MAAEH,KAAK,EAAEQ;IAAI,CAAC;IACzD,IAAIA,GAAG,CAACJ,MAAM,KAAK,kBAAkB,EAAE,OAAOL,QAAQ,CAACS,GAAG,CAAC;EAC7D;EAEA,OAAOT,QAAQ,CAACO,OAAO,CAAC;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,qBAAqBA,CACnCb,QAAoD,EAC9B;EACtB,MAAMc,OAAO,GAAGf,WAAW,CAACC,QAAQ,CAAC;EACrC,MAAMN,EAAE,GAAGoB,OAAO,EAAEC,WAAW;EAC/B,IAAI,CAACrB,EAAE,EAAE,OAAO;IAAEY,MAAM,EAAE;EAAU,CAAC;EAErC,IAAIQ,OAAO,CAACE,QAAQ,KAAK,OAAO,IAAIF,OAAO,CAACG,SAAS,EAAE;IACrD,MAAMC,QAAQ,GAAGzC,gBAAgB,CAACqC,OAAO,CAACG,SAAS,CAAC;IACpD,IAAIC,QAAQ,CAACZ,MAAM,KAAK,OAAO,EAAE;MAC/B,OAAO;QACLA,MAAM,EAAE,OAAO;QACfD,IAAI,EAAE;UAAEtB,eAAe,EAAEP,0BAA0B,CAAC0C,QAAQ,CAAC3B,KAAK;QAAE,CAAC;QACrEA,KAAK,EAAE2B,QAAQ,CAAC3B,KAAK;QACrB4B,YAAY,EAAED,QAAQ,CAACE;MACzB,CAAC;IACH;IACA,IAAIF,QAAQ,CAACZ,MAAM,KAAK,WAAW,EAAE,OAAO;MAAEA,MAAM,EAAE;IAAY,CAAC;IACnE,OAAO;MAAEA,MAAM,EAAE,SAAS;MAAEe,SAAS,EAAEH,QAAQ,CAACX;IAAO,CAAC;EAC1D;EAEA,MAAMe,OAAO,GAAG7B,sBAAsB,CAACC,EAAE,CAAC;EAC1C,IAAI4B,OAAO,EAAE;IACX,MAAMC,KAAK,GAAG5C,iBAAiB,CAAC2C,OAAO,CAAC;IACxC,IAAIC,KAAK,CAACjB,MAAM,KAAK,OAAO,EAAE;MAC5B,OAAO;QACLA,MAAM,EAAE,OAAO;QACfD,IAAI,EAAEkB,KAAK,CAAClB,IAAI;QAChBc,YAAY,EAAEG,OAAO;QACrB,IAAIC,KAAK,CAAChC,KAAK,GAAG;UAAEA,KAAK,EAAEgC,KAAK,CAAChC;QAAM,CAAC,GAAG,CAAC,CAAC;MAC/C,CAAC;IACH;IACA,IAAIgC,KAAK,CAACjB,MAAM,KAAK,WAAW,EAAE;MAChC,OAAO;QAAEA,MAAM,EAAE;MAAY,CAAC;IAChC;EACF;EAEA,OAAOE,uBAAuB,CAACd,EAAE,CAAC;AACpC","ignoreList":[]}
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
* through to scoring only when nothing matched.
|
|
10
10
|
*/
|
|
11
11
|
import { decodeMobileAutoData } from '@userflow-tech/protocol';
|
|
12
|
+
import { screenIdFromLocation, getCurrentScreenLocation } from "../screenTracker.js";
|
|
12
13
|
import { anchorRegistry } from "./AnchorRegistry.js";
|
|
14
|
+
import { autoAnchorRegistry } from "./AutoAnchorRegistry.js";
|
|
13
15
|
import { anchorIdsAboveTap } from "./elementTargetMatch.js";
|
|
14
16
|
import { fiberScanRoot } from "./fiber/FiberScanRoot.js";
|
|
15
17
|
import { publicInstanceFromHostFiber } from "./fiber/fiberInternals.js";
|
|
@@ -54,19 +56,33 @@ function resolveAutoTargets(autoData) {
|
|
|
54
56
|
status: 'unknown'
|
|
55
57
|
};
|
|
56
58
|
if (decoded.resolver === 'fiber' && decoded.fiberPath) {
|
|
57
|
-
return
|
|
59
|
+
return conditionVerdict(resolveAutoAnchorHost(decoded), decoded);
|
|
58
60
|
}
|
|
59
61
|
const exactId = exactIdFromFingerprint(fingerprint);
|
|
62
|
+
let exactIdAbsent = false;
|
|
60
63
|
if (exactId) {
|
|
61
64
|
const manual = resolveManualTargets(exactId);
|
|
62
65
|
if (manual.status === 'found') return manual;
|
|
66
|
+
// "Absent" before a scan root exists only means we have not looked yet.
|
|
67
|
+
exactIdAbsent = fiberScanRoot.getFiber() != null;
|
|
63
68
|
}
|
|
64
69
|
|
|
65
70
|
// The exact id already missed above, so go straight to scoring rather than
|
|
66
71
|
// letting resolveAutoAnchorHost scan for it again.
|
|
67
|
-
return
|
|
72
|
+
return conditionVerdict(resolveScoredAutoAnchor(fingerprint), decoded, exactIdAbsent);
|
|
68
73
|
}
|
|
69
|
-
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Turn an AUTO resolution into the value an element condition can report.
|
|
77
|
+
*
|
|
78
|
+
* A miss (nothing scored, or an exact id that a scan did not find) is absent,
|
|
79
|
+
* matching web. A tie stays unknown on the screen where the element was picked,
|
|
80
|
+
* because the target may be one of the look-alikes, and is absent on any other
|
|
81
|
+
* screen. An empty registry with no exact id, a missing scan root, and a
|
|
82
|
+
* missing fingerprint stay unknown so `stampOnly` cannot open a "not present"
|
|
83
|
+
* gate.
|
|
84
|
+
*/
|
|
85
|
+
function conditionVerdict(resolution, decoded, exactIdAbsent = false) {
|
|
70
86
|
if (resolution.status === 'found') {
|
|
71
87
|
// Scored matches only try the direct ref pointer, which Paper release
|
|
72
88
|
// builds null out. Without the index fallback a tap could never match.
|
|
@@ -84,16 +100,55 @@ function fromAutoResolution(resolution) {
|
|
|
84
100
|
if (resolution.status === 'absent') return {
|
|
85
101
|
status: 'absent'
|
|
86
102
|
};
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
103
|
+
if (resolution.status === 'unknown') {
|
|
104
|
+
if (resolution.fiberMiss === 'no-root' || resolution.fiberMiss === 'empty') {
|
|
105
|
+
return {
|
|
106
|
+
status: 'unknown'
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
if (resolution.fiberMiss === 'no-match') return {
|
|
110
|
+
status: 'absent'
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const reason = resolution.match?.reason;
|
|
114
|
+
const tie = resolution.status === 'ambiguous' || reason === 'not-unique' || reason === 'ambiguous-explicit-id';
|
|
115
|
+
if (tie) {
|
|
116
|
+
if (offPickedScreen(decoded.screenId)) return {
|
|
117
|
+
status: 'absent'
|
|
118
|
+
};
|
|
119
|
+
// A real tie is not a broken selector, so it does not warn. A weak
|
|
120
|
+
// not-unique miss still does, matching the previous unknown report.
|
|
121
|
+
return reason === 'not-unique' ? {
|
|
122
|
+
status: 'unknown'
|
|
123
|
+
} : {
|
|
124
|
+
status: 'unknown',
|
|
125
|
+
silent: true
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
if (reason === 'below-threshold') return {
|
|
129
|
+
status: 'absent'
|
|
92
130
|
};
|
|
131
|
+
if (reason === 'no-candidates') {
|
|
132
|
+
const nothingToMatch = autoAnchorRegistry.allInstances().length === 0 && !exactIdAbsent;
|
|
133
|
+
if (nothingToMatch) return {
|
|
134
|
+
status: 'unknown'
|
|
135
|
+
};
|
|
136
|
+
return {
|
|
137
|
+
status: 'absent'
|
|
138
|
+
};
|
|
139
|
+
}
|
|
93
140
|
return {
|
|
94
141
|
status: 'unknown'
|
|
95
142
|
};
|
|
96
143
|
}
|
|
144
|
+
|
|
145
|
+
/** True when the picked screen is known and the app is on a different one. */
|
|
146
|
+
function offPickedScreen(pickedScreenId) {
|
|
147
|
+
if (!pickedScreenId || pickedScreenId === 'unknown') return false;
|
|
148
|
+
const current = screenIdFromLocation(getCurrentScreenLocation());
|
|
149
|
+
if (current === 'unknown') return false;
|
|
150
|
+
return current !== pickedScreenId;
|
|
151
|
+
}
|
|
97
152
|
function resolveManualTargets(id) {
|
|
98
153
|
const registered = anchorRegistry.getAll(id);
|
|
99
154
|
if (registered.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["decodeMobileAutoData","anchorRegistry","anchorIdsAboveTap","fiberScanRoot","publicInstanceFromHostFiber","findAnchorFibers","createLazyHostFiberIndex","lookupHostFiber","createFiberMeasureInWindow","isFiberOnVisibleScreen","exactIdFromFingerprint","resolveAutoAnchorHost","resolveScoredAutoAnchor","resolveManualAnchorId","resolveElementTargets","selector","status","type","resolveAutoTargets","autoData","anchorId","css","resolveManualTargets","tapMayHitSelector","tap","get","has","decoded","fingerprint","resolver","fiberPath","
|
|
1
|
+
{"version":3,"names":["decodeMobileAutoData","screenIdFromLocation","getCurrentScreenLocation","anchorRegistry","autoAnchorRegistry","anchorIdsAboveTap","fiberScanRoot","publicInstanceFromHostFiber","findAnchorFibers","createLazyHostFiberIndex","lookupHostFiber","createFiberMeasureInWindow","isFiberOnVisibleScreen","exactIdFromFingerprint","resolveAutoAnchorHost","resolveScoredAutoAnchor","resolveManualAnchorId","resolveElementTargets","selector","status","type","resolveAutoTargets","autoData","anchorId","css","resolveManualTargets","tapMayHitSelector","tap","get","has","decoded","fingerprint","resolver","fiberPath","conditionVerdict","exactId","exactIdAbsent","manual","getFiber","resolution","fiber","fiberForNode","match","instance","ref","current","targets","host","fiberMiss","reason","tie","offPickedScreen","screenId","silent","nothingToMatch","allInstances","length","pickedScreenId","id","registered","getAll","index","map","node","filter","target","root","found","fibers","measureInWindow","undefined"],"sourceRoot":"../../../src","sources":["anchors/resolveElementTargets.ts"],"mappings":"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","ignoreList":[]}
|