react-native-screen-transitions 3.3.0-beta.3 → 3.3.0-beta.4

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.
Files changed (119) hide show
  1. package/README.md +95 -31
  2. package/lib/commonjs/shared/animation/snap-to.js +2 -0
  3. package/lib/commonjs/shared/animation/snap-to.js.map +1 -1
  4. package/lib/commonjs/shared/components/create-transition-aware-component.js +20 -18
  5. package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
  6. package/lib/commonjs/shared/components/screen-container.js +59 -6
  7. package/lib/commonjs/shared/components/screen-container.js.map +1 -1
  8. package/lib/commonjs/shared/constants.js +8 -1
  9. package/lib/commonjs/shared/constants.js.map +1 -1
  10. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +49 -39
  11. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  12. package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js +110 -61
  13. package/lib/commonjs/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
  14. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js +67 -70
  15. package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  16. package/lib/commonjs/shared/providers/gestures.provider.js +112 -5
  17. package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
  18. package/lib/commonjs/shared/types/ownership.types.js +71 -0
  19. package/lib/commonjs/shared/types/ownership.types.js.map +1 -0
  20. package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js +72 -128
  21. package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js.map +1 -1
  22. package/lib/commonjs/shared/utils/gesture/compute-claimed-directions.js +81 -0
  23. package/lib/commonjs/shared/utils/gesture/compute-claimed-directions.js.map +1 -0
  24. package/lib/commonjs/shared/utils/gesture/determine-snap-target.js +1 -1
  25. package/lib/commonjs/shared/utils/gesture/determine-snap-target.js.map +1 -1
  26. package/lib/commonjs/shared/utils/gesture/find-collapse-target.js +48 -0
  27. package/lib/commonjs/shared/utils/gesture/find-collapse-target.js.map +1 -0
  28. package/lib/commonjs/shared/utils/gesture/resolve-ownership.js +87 -0
  29. package/lib/commonjs/shared/utils/gesture/resolve-ownership.js.map +1 -0
  30. package/lib/commonjs/shared/utils/gesture/velocity.js +16 -5
  31. package/lib/commonjs/shared/utils/gesture/velocity.js.map +1 -1
  32. package/lib/module/shared/animation/snap-to.js +1 -0
  33. package/lib/module/shared/animation/snap-to.js.map +1 -1
  34. package/lib/module/shared/components/create-transition-aware-component.js +20 -18
  35. package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
  36. package/lib/module/shared/components/screen-container.js +59 -7
  37. package/lib/module/shared/components/screen-container.js.map +1 -1
  38. package/lib/module/shared/constants.js +7 -0
  39. package/lib/module/shared/constants.js.map +1 -1
  40. package/lib/module/shared/hooks/gestures/use-build-gestures.js +49 -39
  41. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  42. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js +112 -63
  43. package/lib/module/shared/hooks/gestures/use-screen-gesture-handlers.js.map +1 -1
  44. package/lib/module/shared/hooks/gestures/use-scroll-registry.js +68 -70
  45. package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
  46. package/lib/module/shared/providers/gestures.provider.js +112 -5
  47. package/lib/module/shared/providers/gestures.provider.js.map +1 -1
  48. package/lib/module/shared/types/ownership.types.js +67 -0
  49. package/lib/module/shared/types/ownership.types.js.map +1 -0
  50. package/lib/module/shared/utils/gesture/check-gesture-activation.js +70 -126
  51. package/lib/module/shared/utils/gesture/check-gesture-activation.js.map +1 -1
  52. package/lib/module/shared/utils/gesture/compute-claimed-directions.js +77 -0
  53. package/lib/module/shared/utils/gesture/compute-claimed-directions.js.map +1 -0
  54. package/lib/module/shared/utils/gesture/determine-snap-target.js +1 -1
  55. package/lib/module/shared/utils/gesture/determine-snap-target.js.map +1 -1
  56. package/lib/module/shared/utils/gesture/find-collapse-target.js +44 -0
  57. package/lib/module/shared/utils/gesture/find-collapse-target.js.map +1 -0
  58. package/lib/module/shared/utils/gesture/resolve-ownership.js +83 -0
  59. package/lib/module/shared/utils/gesture/resolve-ownership.js.map +1 -0
  60. package/lib/module/shared/utils/gesture/velocity.js +16 -5
  61. package/lib/module/shared/utils/gesture/velocity.js.map +1 -1
  62. package/lib/typescript/shared/animation/snap-to.d.ts.map +1 -1
  63. package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
  64. package/lib/typescript/shared/components/screen-container.d.ts.map +1 -1
  65. package/lib/typescript/shared/constants.d.ts +6 -0
  66. package/lib/typescript/shared/constants.d.ts.map +1 -1
  67. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts +15 -3
  68. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  69. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts +52 -2
  70. package/lib/typescript/shared/hooks/gestures/use-screen-gesture-handlers.d.ts.map +1 -1
  71. package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts +11 -6
  72. package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts.map +1 -1
  73. package/lib/typescript/shared/hooks/use-backdrop-pointer-events.d.ts +1 -1
  74. package/lib/typescript/shared/hooks/use-backdrop-pointer-events.d.ts.map +1 -1
  75. package/lib/typescript/shared/providers/gestures.provider.d.ts +27 -2
  76. package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
  77. package/lib/typescript/shared/types/ownership.types.d.ts +52 -0
  78. package/lib/typescript/shared/types/ownership.types.d.ts.map +1 -0
  79. package/lib/typescript/shared/types/screen.types.d.ts +22 -1
  80. package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
  81. package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts +23 -19
  82. package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts.map +1 -1
  83. package/lib/typescript/shared/utils/gesture/compute-claimed-directions.d.ts +23 -0
  84. package/lib/typescript/shared/utils/gesture/compute-claimed-directions.d.ts.map +1 -0
  85. package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts +5 -1
  86. package/lib/typescript/shared/utils/gesture/determine-snap-target.d.ts.map +1 -1
  87. package/lib/typescript/shared/utils/gesture/find-collapse-target.d.ts +17 -0
  88. package/lib/typescript/shared/utils/gesture/find-collapse-target.d.ts.map +1 -0
  89. package/lib/typescript/shared/utils/gesture/resolve-ownership.d.ts +36 -0
  90. package/lib/typescript/shared/utils/gesture/resolve-ownership.d.ts.map +1 -0
  91. package/lib/typescript/shared/utils/gesture/velocity.d.ts.map +1 -1
  92. package/package.json +121 -120
  93. package/src/shared/animation/snap-to.ts +1 -0
  94. package/src/shared/components/create-transition-aware-component.tsx +28 -25
  95. package/src/shared/components/screen-container.tsx +69 -7
  96. package/src/shared/constants.ts +7 -0
  97. package/src/shared/hooks/gestures/use-build-gestures.tsx +80 -44
  98. package/src/shared/hooks/gestures/use-screen-gesture-handlers.ts +147 -71
  99. package/src/shared/hooks/gestures/use-scroll-registry.tsx +94 -86
  100. package/src/shared/hooks/use-backdrop-pointer-events.ts +1 -1
  101. package/src/shared/providers/gestures.provider.tsx +166 -5
  102. package/src/shared/types/ownership.types.ts +77 -0
  103. package/src/shared/types/screen.types.ts +24 -1
  104. package/src/shared/utils/gesture/check-gesture-activation.ts +82 -116
  105. package/src/shared/utils/gesture/compute-claimed-directions.ts +93 -0
  106. package/src/shared/utils/gesture/determine-snap-target.ts +6 -2
  107. package/src/shared/utils/gesture/find-collapse-target.ts +42 -0
  108. package/src/shared/utils/gesture/resolve-ownership.ts +110 -0
  109. package/src/shared/utils/gesture/velocity.ts +16 -6
  110. package/src/shared/__tests__/bounds.store.test.ts +0 -394
  111. package/src/shared/__tests__/derivations.test.ts +0 -156
  112. package/src/shared/__tests__/determine-dismissal.test.ts +0 -111
  113. package/src/shared/__tests__/determine-snap-target.test.ts +0 -268
  114. package/src/shared/__tests__/geometry.test.ts +0 -130
  115. package/src/shared/__tests__/gesture-activation.test.ts +0 -471
  116. package/src/shared/__tests__/gesture.velocity.test.ts +0 -131
  117. package/src/shared/__tests__/history.store.test.ts +0 -550
  118. package/src/shared/__tests__/sync-routes-with-removed.test.ts +0 -137
  119. package/src/shared/__tests__/validate-snap-points.test.ts +0 -125
@@ -4,11 +4,102 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useGestureContext = exports.ScreenGestureProvider = void 0;
7
+ var _native = require("@react-navigation/native");
8
+ var _react = require("react");
7
9
  var _reactNativeReanimated = require("react-native-reanimated");
8
10
  var _useBuildGestures = require("../hooks/gestures/use-build-gestures");
11
+ var _gesture = require("../stores/gesture.store");
12
+ var _stack = require("../types/stack.types");
9
13
  var _createProvider = _interopRequireDefault(require("../utils/create-provider"));
14
+ var _computeClaimedDirections = require("../utils/gesture/compute-claimed-directions");
10
15
  var _keys = require("./screen/keys.provider");
16
+ var _core = require("./stack/core.provider");
11
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
+ /**
19
+ * Gesture System - Core Provider
20
+ *
21
+ * Each screen gets a GestureContext containing:
22
+ * - panGesture: Pan gesture handler for dismiss/snap
23
+ * - scrollConfig: Scroll state for boundary detection
24
+ * - claimedDirections: Which directions this screen handles
25
+ * - childDirectionClaims: Claims registered by descendant screens
26
+ *
27
+ * ScrollView coordination is handled by useScrollRegistry, which finds the
28
+ * gesture owner for the scroll axis and creates appropriate Native gestures.
29
+ */
30
+
31
+ const NO_CLAIMS = {
32
+ vertical: null,
33
+ "vertical-inverted": null,
34
+ horizontal: null,
35
+ "horizontal-inverted": null
36
+ };
37
+ const DIRECTIONS = ["vertical", "vertical-inverted", "horizontal", "horizontal-inverted"];
38
+
39
+ /**
40
+ * Registers direction claims on ancestors that this screen shadows.
41
+ * Only registers claims when this screen is the current (topmost) route
42
+ * in its navigator, preventing unfocused screens from blocking gestures.
43
+ */
44
+ function useRegisterDirectionClaims(ancestorContext, claimedDirections, routeKey, isIsolated, isCurrentRoute) {
45
+ (0, _react.useEffect)(() => {
46
+ // Only register claims when this screen is the current route
47
+ if (!isCurrentRoute || !ancestorContext) {
48
+ return;
49
+ }
50
+ const gestureValues = _gesture.GestureStore.getRouteGestures(routeKey);
51
+ const isDismissing = gestureValues.isDismissing;
52
+ const claimedAncestors = [];
53
+ let ancestor = ancestorContext;
54
+ while (ancestor) {
55
+ if (ancestor.isIsolated !== isIsolated) break;
56
+ const shadowedDirections = [];
57
+ for (const dir of DIRECTIONS) {
58
+ if (claimedDirections[dir] && ancestor.claimedDirections?.[dir]) {
59
+ shadowedDirections.push(dir);
60
+ }
61
+ }
62
+ if (shadowedDirections.length > 0) {
63
+ claimedAncestors.push({
64
+ ancestor,
65
+ directions: shadowedDirections
66
+ });
67
+ const newClaims = {
68
+ ...ancestor.childDirectionClaims.value
69
+ };
70
+ for (const dir of shadowedDirections) {
71
+ newClaims[dir] = {
72
+ routeKey,
73
+ isDismissing
74
+ };
75
+ }
76
+ ancestor.childDirectionClaims.value = newClaims;
77
+ }
78
+ ancestor = ancestor.ancestorContext;
79
+ }
80
+ return () => {
81
+ for (const {
82
+ ancestor,
83
+ directions
84
+ } of claimedAncestors) {
85
+ const currentClaims = ancestor.childDirectionClaims.value;
86
+ const newClaims = {
87
+ ...currentClaims
88
+ };
89
+ let needsUpdate = false;
90
+ for (const dir of directions) {
91
+ if (currentClaims[dir]?.routeKey === routeKey) {
92
+ newClaims[dir] = null;
93
+ needsUpdate = true;
94
+ }
95
+ }
96
+ if (needsUpdate) {
97
+ ancestor.childDirectionClaims.value = newClaims;
98
+ }
99
+ }
100
+ };
101
+ }, [ancestorContext, claimedDirections, routeKey, isIsolated, isCurrentRoute]);
102
+ }
12
103
  const {
13
104
  ScreenGestureProvider,
14
105
  useScreenGestureContext: useGestureContext
@@ -20,26 +111,42 @@ const {
20
111
  const {
21
112
  current
22
113
  } = (0, _keys.useKeys)();
114
+ const {
115
+ flags
116
+ } = (0, _core.useStackCoreContext)();
23
117
  const ancestorContext = useGestureContext();
24
- const scrollConfig = (0, _reactNativeReanimated.useSharedValue)(null);
25
118
  const hasGestures = current.options.gestureEnabled === true;
119
+ const isIsolated = flags.STACK_TYPE === _stack.StackType.COMPONENT;
120
+ const hasSnapPoints = Array.isArray(current.options.snapPoints) && current.options.snapPoints.length > 0;
121
+ const claimedDirections = (0, _react.useMemo)(() => (0, _computeClaimedDirections.computeClaimedDirections)(hasGestures, current.options.gestureDirection, hasSnapPoints), [hasGestures, current.options.gestureDirection, hasSnapPoints]);
122
+ const routeKey = current.route.key;
123
+
124
+ // Check if this screen is the current (topmost) route in its navigator
125
+ const isCurrentRoute = (0, _native.useNavigationState)(state => state.routes[state.index]?.key === routeKey);
126
+ const scrollConfig = (0, _reactNativeReanimated.useSharedValue)(null);
127
+ const childDirectionClaims = (0, _reactNativeReanimated.useSharedValue)(NO_CLAIMS);
128
+ useRegisterDirectionClaims(ancestorContext, claimedDirections, routeKey, isIsolated, isCurrentRoute);
26
129
  const {
27
130
  panGesture,
28
131
  panGestureRef,
29
- nativeGesture,
30
132
  gestureAnimationValues
31
133
  } = (0, _useBuildGestures.useBuildGestures)({
32
134
  scrollConfig,
33
- ancestorContext
135
+ ancestorContext,
136
+ claimedDirections,
137
+ childDirectionClaims,
138
+ isIsolated
34
139
  });
35
140
  const value = {
36
141
  panGesture,
37
142
  panGestureRef,
38
143
  scrollConfig,
39
- nativeGesture,
40
144
  gestureAnimationValues,
41
145
  ancestorContext,
42
- gestureEnabled: hasGestures
146
+ gestureEnabled: hasGestures,
147
+ isIsolated,
148
+ claimedDirections,
149
+ childDirectionClaims
43
150
  };
44
151
  return {
45
152
  value,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeReanimated","require","_useBuildGestures","_createProvider","_interopRequireDefault","_keys","e","__esModule","default","ScreenGestureProvider","useScreenGestureContext","useGestureContext","createProvider","guarded","children","current","useKeys","ancestorContext","scrollConfig","useSharedValue","hasGestures","options","gestureEnabled","panGesture","panGestureRef","nativeGesture","gestureAnimationValues","useBuildGestures","value","exports"],"sourceRoot":"../../../../src","sources":["shared/providers/gestures.provider.tsx"],"mappings":";;;;;;AAEA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAAiD,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA0B1C,MAAM;EACZG,qBAAqB;EACrBC,uBAAuB,EAAEC;AAC1B,CAAC,GAAG,IAAAC,uBAAc,EAAC,eAAe,EAAE;EAAEC,OAAO,EAAE;AAAM,CAAC,CAAC,CAGrD,CAAC;EAAEC;AAAS,CAAC,KAAK;EACnB,MAAM;IAAEC;EAAQ,CAAC,GAAG,IAAAC,aAAO,EAAC,CAAC;EAC7B,MAAMC,eAAe,GAAGN,iBAAiB,CAAC,CAAC;EAC3C,MAAMO,YAAY,GAAG,IAAAC,qCAAc,EAAsB,IAAI,CAAC;EAE9D,MAAMC,WAAW,GAAGL,OAAO,CAACM,OAAO,CAACC,cAAc,KAAK,IAAI;EAE3D,MAAM;IAAEC,UAAU;IAAEC,aAAa;IAAEC,aAAa;IAAEC;EAAuB,CAAC,GACzE,IAAAC,kCAAgB,EAAC;IAChBT,YAAY;IACZD;EACD,CAAC,CAAC;EAEH,MAAMW,KAAyB,GAAG;IACjCL,UAAU;IACVC,aAAa;IACbN,YAAY;IACZO,aAAa;IACbC,sBAAsB;IACtBT,eAAe;IACfK,cAAc,EAAEF;EACjB,CAAC;EAED,OAAO;IACNQ,KAAK;IACLd;EACD,CAAC;AACF,CAAC,CAAC;AAACe,OAAA,CAAAlB,iBAAA,GAAAA,iBAAA;AAAAkB,OAAA,CAAApB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_native","require","_react","_reactNativeReanimated","_useBuildGestures","_gesture","_stack","_createProvider","_interopRequireDefault","_computeClaimedDirections","_keys","_core","e","__esModule","default","NO_CLAIMS","vertical","horizontal","DIRECTIONS","useRegisterDirectionClaims","ancestorContext","claimedDirections","routeKey","isIsolated","isCurrentRoute","useEffect","gestureValues","GestureStore","getRouteGestures","isDismissing","claimedAncestors","ancestor","shadowedDirections","dir","push","length","directions","newClaims","childDirectionClaims","value","currentClaims","needsUpdate","ScreenGestureProvider","useScreenGestureContext","useGestureContext","createProvider","guarded","children","current","useKeys","flags","useStackCoreContext","hasGestures","options","gestureEnabled","STACK_TYPE","StackType","COMPONENT","hasSnapPoints","Array","isArray","snapPoints","useMemo","computeClaimedDirections","gestureDirection","route","key","useNavigationState","state","routes","index","scrollConfig","useSharedValue","panGesture","panGestureRef","gestureAnimationValues","useBuildGestures","exports"],"sourceRoot":"../../../../src","sources":["shared/providers/gestures.provider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NO_OWNERSHIP = exports.NO_CLAIMS = exports.DIRECTIONS = void 0;
7
+ /**
8
+ * Gesture Ownership System Types
9
+ *
10
+ * Core principles:
11
+ * 1. Gestures dismiss stacks, not screens
12
+ * 2. Ownership is per-direction (4 independent directions)
13
+ * 3. Shadowing: child claiming same direction blocks parent
14
+ * 4. Inheritance: no local claim walks up tree to find owner
15
+ */
16
+
17
+ /**
18
+ * The four independent gesture directions.
19
+ * Each direction is owned independently.
20
+ *
21
+ * Uses the same format as GestureDirection from gesture.types.ts
22
+ * (excluding 'bidirectional' which expands to all four).
23
+ */
24
+
25
+ /**
26
+ * All possible directions as an array for iteration.
27
+ */
28
+ const DIRECTIONS = exports.DIRECTIONS = ["vertical", "vertical-inverted", "horizontal", "horizontal-inverted"];
29
+
30
+ /**
31
+ * Map of which directions a screen claims ownership of.
32
+ * A screen claims a direction when:
33
+ * - gestureEnabled is true AND
34
+ * - gestureDirection includes that direction
35
+ *
36
+ * For snap points, both directions on the axis are claimed automatically.
37
+ */
38
+
39
+ /**
40
+ * Empty claims - used when gestureEnabled is false.
41
+ */
42
+ const NO_CLAIMS = exports.NO_CLAIMS = {
43
+ vertical: false,
44
+ "vertical-inverted": false,
45
+ horizontal: false,
46
+ "horizontal-inverted": false
47
+ };
48
+
49
+ /**
50
+ * Ownership status for a direction relative to the current screen.
51
+ *
52
+ * - 'self': Current screen owns this direction (should activate)
53
+ * - 'ancestor': An ancestor owns this direction (should fail to bubble up)
54
+ * - 'none': No one owns this direction (should fail, no gesture response)
55
+ */
56
+
57
+ /**
58
+ * Map of ownership status for all four directions.
59
+ * Pre-computed during render for worklet access.
60
+ */
61
+
62
+ /**
63
+ * Empty ownership - used when no gestures are configured anywhere.
64
+ */
65
+ const NO_OWNERSHIP = exports.NO_OWNERSHIP = {
66
+ vertical: "none",
67
+ "vertical-inverted": "none",
68
+ horizontal: "none",
69
+ "horizontal-inverted": "none"
70
+ };
71
+ //# sourceMappingURL=ownership.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DIRECTIONS","exports","NO_CLAIMS","vertical","horizontal","NO_OWNERSHIP"],"sourceRoot":"../../../../src","sources":["shared/types/ownership.types.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACO,MAAMA,UAAuB,GAAAC,OAAA,CAAAD,UAAA,GAAG,CACtC,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,CACrB;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACO,MAAME,SAA4B,GAAAD,OAAA,CAAAC,SAAA,GAAG;EAC3CC,QAAQ,EAAE,KAAK;EACf,mBAAmB,EAAE,KAAK;EAC1BC,UAAU,EAAE,KAAK;EACjB,qBAAqB,EAAE;AACxB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACO,MAAMC,YAAgC,GAAAJ,OAAA,CAAAI,YAAA,GAAG;EAC/CF,QAAQ,EAAE,MAAM;EAChB,mBAAmB,EAAE,MAAM;EAC3BC,UAAU,EAAE,MAAM;EAClB,qBAAqB,EAAE;AACxB,CAAC","ignoreList":[]}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.applyOffsetRules = void 0;
7
7
  exports.calculateSwipeDirs = calculateSwipeDirs;
8
- exports.checkScrollAwareActivation = checkScrollAwareActivation;
8
+ exports.checkScrollBoundary = checkScrollBoundary;
9
9
  exports.computeEdgeConstraints = computeEdgeConstraints;
10
10
  exports.normalizeSides = normalizeSides;
11
11
  exports.shouldActivateOrFail = shouldActivateOrFail;
@@ -232,142 +232,86 @@ const applyOffsetRules = ({
232
232
  isSwipingLeft
233
233
  };
234
234
  };
235
- exports.applyOffsetRules = applyOffsetRules;
235
+
236
236
  /**
237
- * Checks if a gesture should activate based on scroll position.
238
- * Returns the direction to activate for, or null if activation should not occur.
237
+ * Checks if a ScrollView is at its boundary for the given swipe direction.
238
+ * This is a simplified boundary check that respects axis isolation.
239
+ *
240
+ * Per the spec:
241
+ * - A vertical ScrollView never yields to horizontal gestures
242
+ * - A horizontal ScrollView never yields to vertical gestures
243
+ * - ScrollView must be at boundary before yielding control
244
+ *
245
+ * For snap point sheets, the boundary depends on where the sheet originates from:
246
+ * - Bottom sheet (vertical): scrollY = 0 (top/base)
247
+ * - Top sheet (verticalInverted): scrollY >= maxY (bottom/end)
248
+ * - Right drawer (horizontal): scrollX = 0 (left/base)
249
+ * - Left drawer (horizontalInverted): scrollX >= maxX (right/end)
250
+ *
251
+ * The rule: "when the ScrollView can't scroll any further in the direction
252
+ * the sheet came from, yield to the gesture."
253
+ *
254
+ * @param scrollConfig - The current scroll state
255
+ * @param direction - The swipe direction to check
256
+ * @param snapAxisInverted - For snap point sheets, whether the axis is inverted (top sheet / left drawer)
257
+ * @returns true if at boundary (gesture should activate), false otherwise
239
258
  */
240
- function checkScrollAwareActivation({
241
- swipeInfo,
242
- directions,
243
- scrollConfig,
244
- hasSnapPoints,
245
- canExpandMore
246
- }) {
259
+ exports.applyOffsetRules = applyOffsetRules;
260
+ function checkScrollBoundary(scrollConfig, direction, snapAxisInverted) {
247
261
  "worklet";
248
262
 
263
+ if (!scrollConfig) {
264
+ // No scroll config means no ScrollView - allow gesture
265
+ return true;
266
+ }
249
267
  const {
250
- isSwipingDown,
251
- isSwipingUp,
252
- isSwipingRight,
253
- isSwipingLeft
254
- } = swipeInfo;
268
+ x: scrollX,
269
+ y: scrollY,
270
+ contentWidth,
271
+ contentHeight,
272
+ layoutWidth,
273
+ layoutHeight
274
+ } = scrollConfig;
255
275
 
256
- // Extract scroll values from config
257
- const scrollX = scrollConfig?.x ?? 0;
258
- const scrollY = scrollConfig?.y ?? 0;
259
- const maxScrollX = scrollConfig ? scrollConfig.contentWidth - scrollConfig.layoutWidth : 0;
260
- const maxScrollY = scrollConfig ? scrollConfig.contentHeight - scrollConfig.layoutHeight : 0;
261
- const snapAxisInverted = directions.snapAxisInverted;
276
+ // Calculate max scroll values
277
+ const maxScrollX = Math.max(0, contentWidth - layoutWidth);
278
+ const maxScrollY = Math.max(0, contentHeight - layoutHeight);
262
279
 
263
- // With snap points, gestures should only activate based on the PRIMARY scroll edge
264
- // (the edge where the sheet originates from), not the opposite edge.
265
- // This prevents the auto-enabled opposite direction from hijacking scrolls.
266
- if (hasSnapPoints) {
267
- const isVerticalAxis = directions.vertical || directions.verticalInverted;
268
- const isHorizontalAxis = directions.horizontal || directions.horizontalInverted;
269
- if (isVerticalAxis) {
270
- if (snapAxisInverted) {
271
- // Sheet from TOP (vertical-inverted): only activate at scroll BOTTOM
272
- if (scrollY >= maxScrollY) {
273
- if (isSwipingUp) {
274
- return {
275
- shouldActivate: true,
276
- direction: "vertical-inverted"
277
- };
278
- }
279
- if (isSwipingDown && canExpandMore) {
280
- return {
281
- shouldActivate: true,
282
- direction: "vertical"
283
- };
284
- }
285
- }
286
- } else {
287
- // Sheet from BOTTOM (vertical): only activate at scroll TOP
288
- if (scrollY <= 0) {
289
- if (isSwipingDown) {
290
- return {
291
- shouldActivate: true,
292
- direction: "vertical"
293
- };
294
- }
295
- if (isSwipingUp && canExpandMore) {
296
- return {
297
- shouldActivate: true,
298
- direction: "vertical-inverted"
299
- };
300
- }
301
- }
302
- }
280
+ // For snap point sheets (snapAxisInverted is defined), boundary depends on sheet origin
281
+ // Even if content isn't scrollable, respect bounce/overscroll state
282
+ if (snapAxisInverted !== undefined) {
283
+ const isVerticalDirection = direction === "vertical" || direction === "vertical-inverted";
284
+ if (isVerticalDirection) {
285
+ // Bottom sheet (not inverted): boundary at scroll top
286
+ // Top sheet (inverted): boundary at scroll bottom
287
+ return snapAxisInverted ? scrollY >= maxScrollY : scrollY <= 0;
303
288
  }
304
- if (isHorizontalAxis) {
305
- if (snapAxisInverted) {
306
- // Sheet from LEFT (horizontal-inverted): only activate at scroll RIGHT
307
- if (scrollX >= maxScrollX) {
308
- if (isSwipingLeft) {
309
- return {
310
- shouldActivate: true,
311
- direction: "horizontal-inverted"
312
- };
313
- }
314
- if (isSwipingRight && canExpandMore) {
315
- return {
316
- shouldActivate: true,
317
- direction: "horizontal"
318
- };
319
- }
320
- }
321
- } else {
322
- // Sheet from RIGHT (horizontal): only activate at scroll LEFT
323
- if (scrollX <= 0) {
324
- if (isSwipingRight) {
325
- return {
326
- shouldActivate: true,
327
- direction: "horizontal"
328
- };
329
- }
330
- if (isSwipingLeft && canExpandMore) {
331
- return {
332
- shouldActivate: true,
333
- direction: "horizontal-inverted"
334
- };
335
- }
336
- }
337
- }
338
- }
339
- return {
340
- shouldActivate: false,
341
- direction: null
342
- };
289
+ // Horizontal direction
290
+ // Right drawer (not inverted): boundary at scroll left
291
+ // Left drawer (inverted): boundary at scroll right
292
+ return snapAxisInverted ? scrollX >= maxScrollX : scrollX <= 0;
343
293
  }
344
- if (directions.vertical && isSwipingDown && scrollY <= 0) {
345
- return {
346
- shouldActivate: true,
347
- direction: "vertical"
348
- };
349
- }
350
- if (directions.horizontal && isSwipingRight && scrollX <= 0) {
351
- return {
352
- shouldActivate: true,
353
- direction: "horizontal"
354
- };
355
- }
356
- if (directions.verticalInverted && isSwipingUp && scrollY >= maxScrollY) {
357
- return {
358
- shouldActivate: true,
359
- direction: "vertical-inverted"
360
- };
361
- }
362
- if (directions.horizontalInverted && isSwipingLeft && scrollX >= maxScrollX) {
363
- return {
364
- shouldActivate: true,
365
- direction: "horizontal-inverted"
366
- };
294
+
295
+ // Non-sheet screens: each direction has its own boundary
296
+ switch (direction) {
297
+ case "vertical":
298
+ // Swipe down - check if at top of vertical scroll
299
+ // Even if content isn't scrollable, respect bounce/overscroll state
300
+ return scrollY <= 0;
301
+ case "vertical-inverted":
302
+ // Swipe up - check if at bottom of vertical scroll
303
+ // Even if content isn't scrollable, respect bounce/overscroll state
304
+ return scrollY >= maxScrollY;
305
+ case "horizontal":
306
+ // Swipe right - check if at left of horizontal scroll
307
+ // Even if content isn't scrollable, respect bounce/overscroll state
308
+ return scrollX <= 0;
309
+ case "horizontal-inverted":
310
+ // Swipe left - check if at right of horizontal scroll
311
+ // Even if content isn't scrollable, respect bounce/overscroll state
312
+ return scrollX >= maxScrollX;
313
+ default:
314
+ return true;
367
315
  }
368
- return {
369
- shouldActivate: false,
370
- direction: null
371
- };
372
316
  }
373
317
  //# sourceMappingURL=check-gesture-activation.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_gesture","require","GESTURE_ACTIVATION_THRESHOLD_X","GESTURE_ACTIVATION_THRESHOLD_Y","GESTURE_FAIL_TOLERANCE_X","GESTURE_FAIL_TOLERANCE_Y","DEFAULT_EDGE_DISTANCE_HORIZONTAL","DEFAULT_EDGE_DISTANCE_VERTICAL","DEFAULT_ACTIVATION_AREA","normalizeSides","area","mode","left","right","top","bottom","s","computeEdgeConstraints","initialTouch","dimensions","sides","responseDistance","xDist","yDist","horizontalRight","x","horizontalLeft","width","verticalDown","y","verticalUp","height","calculateSwipeDirs","deltaX","deltaY","isVerticalSwipe","Math","abs","isHorizontalSwipe","isSwipingDown","isSwipingUp","isSwipingRight","isSwipingLeft","shouldActivateOrFail","params","hasHorizontal","hasVertical","allowedRight","allowedLeft","allowedUp","allowedDown","horizontalGateRight","horizontalGateLeft","verticalGateUp","verticalGateDown","shouldActivate","shouldFail","hasEnoughHorizontalMovement","hasAcceptableVerticalDeviation","rightOk","leftOk","hasEnoughVerticalMovement","hasAcceptableHorizontalDeviation","upOk","downOk","applyOffsetRules","touch","directions","manager","gestureOffsetState","activationArea","vertical","verticalInverted","horizontal","horizontalInverted","value","GestureOffsetState","PENDING","PASSED","FAILED","fail","exports","checkScrollAwareActivation","swipeInfo","scrollConfig","hasSnapPoints","canExpandMore","scrollX","scrollY","maxScrollX","contentWidth","layoutWidth","maxScrollY","contentHeight","layoutHeight","snapAxisInverted","isVerticalAxis","isHorizontalAxis","direction"],"sourceRoot":"../../../../../src","sources":["shared/utils/gesture/check-gesture-activation.ts"],"mappings":";;;;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AA8DA;AACA;AACA;AACA,MAAMC,8BAA8B,GAAG,EAAE;AACzC,MAAMC,8BAA8B,GAAG,EAAE;AACzC,MAAMC,wBAAwB,GAAG,EAAE;AACnC,MAAMC,wBAAwB,GAAG,EAAE;AACnC,MAAMC,gCAAgC,GAAG,EAAE;AAC3C,MAAMC,8BAA8B,GAAG,GAAG;AAC1C,MAAMC,uBAAuB,GAAG,QAAiB;AAE1C,SAASC,cAAcA,CAACC,IAA4B,EAAmB;EAC7E,SAAS;;EACT,IAAI,CAACA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACtC,MAAMC,IAAoB,GAAGD,IAAI,IAAIF,uBAAuB;IAC5D,OAAO;MAAEI,IAAI,EAAED,IAAI;MAAEE,KAAK,EAAEF,IAAI;MAAEG,GAAG,EAAEH,IAAI;MAAEI,MAAM,EAAEJ;IAAK,CAAC;EAC5D;EAEA,MAAMK,CAAiB,GAAGN,IAAsB;EAChD,OAAO;IACNE,IAAI,EAAEI,CAAC,CAACJ,IAAI,IAAIJ,uBAAuB;IACvCK,KAAK,EAAEG,CAAC,CAACH,KAAK,IAAIL,uBAAuB;IACzCM,GAAG,EAAEE,CAAC,CAACF,GAAG,IAAIN,uBAAuB;IACrCO,MAAM,EAAEC,CAAC,CAACD,MAAM,IAAIP;EACrB,CAAC;AACF;AAEO,SAASS,sBAAsBA,CACrCC,YAAsC,EACtCC,UAAkB,EAClBC,KAAsB,EACtBC,gBAAyB,EACxB;EACD,SAAS;;EACT,MAAMC,KAAK,GAAGD,gBAAgB,IAAIf,gCAAgC;EAClE,MAAMiB,KAAK,GAAGF,gBAAgB,IAAId,8BAA8B;EAEhE,MAAMiB,eAAe,GAAGJ,KAAK,CAACR,IAAI,KAAK,QAAQ,IAAIM,YAAY,CAACO,CAAC,IAAIH,KAAK,CAAC,CAAC;EAC5E,MAAMI,cAAc,GACnBN,KAAK,CAACP,KAAK,KAAK,QAAQ,IAAIK,YAAY,CAACO,CAAC,IAAIN,UAAU,CAACQ,KAAK,GAAGL,KAAK,CAAC,CAAC;EACzE,MAAMM,YAAY,GAAGR,KAAK,CAACN,GAAG,KAAK,QAAQ,IAAII,YAAY,CAACW,CAAC,IAAIN,KAAK,CAAC,CAAC;EACxE,MAAMO,UAAU,GACfV,KAAK,CAACL,MAAM,KAAK,QAAQ,IAAIG,YAAY,CAACW,CAAC,IAAIV,UAAU,CAACY,MAAM,GAAGR,KAAK,CAAC,CAAC;;EAE3E,OAAO;IAAEC,eAAe;IAAEE,cAAc;IAAEE,YAAY;IAAEE;EAAW,CAAC;AACrE;AAEO,SAASE,kBAAkBA,CAACC,MAAc,EAAEC,MAAc,EAAE;EAClE,SAAS;;EAET,MAAMC,eAAe,GAAGC,IAAI,CAACC,GAAG,CAACH,MAAM,CAAC,GAAGE,IAAI,CAACC,GAAG,CAACJ,MAAM,CAAC;EAC3D,MAAMK,iBAAiB,GAAGF,IAAI,CAACC,GAAG,CAACJ,MAAM,CAAC,GAAGG,IAAI,CAACC,GAAG,CAACH,MAAM,CAAC;EAE7D,MAAMK,aAAa,GAAGJ,eAAe,IAAID,MAAM,GAAG,CAAC;EACnD,MAAMM,WAAW,GAAGL,eAAe,IAAID,MAAM,GAAG,CAAC;EACjD,MAAMO,cAAc,GAAGH,iBAAiB,IAAIL,MAAM,GAAG,CAAC;EACtD,MAAMS,aAAa,GAAGJ,iBAAiB,IAAIL,MAAM,GAAG,CAAC;EAErD,OAAO;IACNM,aAAa;IACbC,WAAW;IACXC,cAAc;IACdC,aAAa;IACbP,eAAe;IACfG;EACD,CAAC;AACF;AAEO,SAASK,oBAAoBA,CAACC,MAAiC,EAAE;EACvE,SAAS;;EAET,MAAM;IACLX,MAAM;IACNC,MAAM;IACNW,aAAa;IACbC,WAAW;IACXR,iBAAiB;IACjBH,eAAe;IACfY,YAAY;IACZC,WAAW;IACXC,SAAS;IACTC,WAAW;IACXC,mBAAmB;IACnBC,kBAAkB;IAClBC,cAAc;IACdC,gBAAgB;IAChBb,cAAc;IACdC,aAAa;IACbF,WAAW;IACXD;EACD,CAAC,GAAGK,MAAM;EAEV,IAAIW,cAAc,GAAG,KAAK;EAC1B,IAAIC,UAAU,GAAG,KAAK;EAEtB,IAAIX,aAAa,IAAIP,iBAAiB,EAAE;IACvC,MAAMmB,2BAA2B,GAChCrB,IAAI,CAACC,GAAG,CAACJ,MAAM,CAAC,IAAI/B,8BAA8B;IAEnD,MAAMwD,8BAA8B,GACnCtB,IAAI,CAACC,GAAG,CAACH,MAAM,CAAC,IAAI9B,wBAAwB;IAE7C,IAAIqD,2BAA2B,IAAIC,8BAA8B,EAAE;MAClE,MAAMC,OAAO,GAAGlB,cAAc,IAAIM,YAAY,IAAII,mBAAmB;MACrE,MAAMS,MAAM,GAAGlB,aAAa,IAAIM,WAAW,IAAII,kBAAkB;MACjE,IAAIO,OAAO,IAAIC,MAAM,EAAE;QACtBL,cAAc,GAAG,IAAI;MACtB;IACD,CAAC,MAAM,IAAI,CAACG,8BAA8B,EAAE;MAC3CF,UAAU,GAAG,IAAI;IAClB;EACD;EAEA,IAAIV,WAAW,IAAIX,eAAe,EAAE;IACnC,MAAM0B,yBAAyB,GAC9BzB,IAAI,CAACC,GAAG,CAACH,MAAM,CAAC,IAAI/B,8BAA8B;IACnD,MAAM2D,gCAAgC,GACrC1B,IAAI,CAACC,GAAG,CAACJ,MAAM,CAAC,IAAI5B,wBAAwB;IAE7C,IAAIwD,yBAAyB,IAAIC,gCAAgC,EAAE;MAClE,MAAMC,IAAI,GAAGvB,WAAW,IAAIS,SAAS,IAAII,cAAc;MACvD,MAAMW,MAAM,GAAGzB,aAAa,IAAIW,WAAW,IAAII,gBAAgB;MAC/D,IAAIS,IAAI,IAAIC,MAAM,EAAE;QACnBT,cAAc,GAAG,IAAI;MACtB;IACD,CAAC,MAAM,IAAI,CAACO,gCAAgC,EAAE;MAC7CN,UAAU,GAAG,IAAI;IAClB;EACD;EAEA,IAAIX,aAAa,IAAIP,iBAAiB,EAAE;IACvC,IAAKI,aAAa,IAAI,CAACM,WAAW,IAAMP,cAAc,IAAI,CAACM,YAAa,EAAE;MACzES,UAAU,GAAG,IAAI;IAClB;IACA;IACA,IACEf,cAAc,IAAIM,YAAY,IAAI,CAACI,mBAAmB,IACtDT,aAAa,IAAIM,WAAW,IAAI,CAACI,kBAAmB,EACpD;MACDI,UAAU,GAAG,IAAI;IAClB;EACD;EAEA,IAAIV,WAAW,IAAIX,eAAe,EAAE;IACnC,IAAKK,WAAW,IAAI,CAACS,SAAS,IAAMV,aAAa,IAAI,CAACW,WAAY,EAAE;MACnEM,UAAU,GAAG,IAAI;IAClB;IACA;IACA,IACEhB,WAAW,IAAIS,SAAS,IAAI,CAACI,cAAc,IAC3Cd,aAAa,IAAIW,WAAW,IAAI,CAACI,gBAAiB,EAClD;MACDE,UAAU,GAAG,IAAI;IAClB;EACD;EAEA,OAAO;IAAED,cAAc;IAAEC;EAAW,CAAC;AACtC;;AAEA;AACA;AACA;AACO,MAAMS,gBAAgB,GAAGA,CAAC;EAChC/C,YAAY;EACZgD,KAAK;EACLC,UAAU;EACVC,OAAO;EACPC,kBAAkB;EAClBC,cAAc;EACdnD,UAAU;EACVE;AAC4B,CAAC,KAAmB;EAChD,SAAS;;EAET,MAAMY,MAAM,GAAGiC,KAAK,CAACzC,CAAC,GAAGP,YAAY,CAACO,CAAC;EACvC,MAAMS,MAAM,GAAGgC,KAAK,CAACrC,CAAC,GAAGX,YAAY,CAACW,CAAC;EAEvC,MAAMqB,WAAW,GAAGiB,UAAU,CAACI,QAAQ;EACvC,MAAMtB,SAAS,GAAGkB,UAAU,CAACK,gBAAgB;EAC7C,MAAMzB,YAAY,GAAGoB,UAAU,CAACM,UAAU;EAC1C,MAAMzB,WAAW,GAAGmB,UAAU,CAACO,kBAAkB;EAEjD,MAAM7B,aAAa,GAAGG,WAAW,IAAID,YAAY;EACjD,MAAMD,WAAW,GAAGG,SAAS,IAAIC,WAAW;EAE5C,MAAM;IACLX,aAAa;IACbC,WAAW;IACXC,cAAc;IACdC,aAAa;IACbP,eAAe;IACfG;EACD,CAAC,GAAGN,kBAAkB,CAACC,MAAM,EAAEC,MAAM,CAAC;EAEtC,IAAImC,kBAAkB,CAACM,KAAK,KAAKC,2BAAkB,CAACC,OAAO,EAAE;IAC5D,OAAO;MACNtC,aAAa;MACbC,WAAW;MACXC,cAAc;MACdC;IACD,CAAC;EACF;EAEA,MAAMtB,KAAK,GAAGX,cAAc,CAAC6D,cAAc,CAAC;EAE5C,MAAM;IACL9C,eAAe,EAAE2B,mBAAmB;IACpCzB,cAAc,EAAE0B,kBAAkB;IAClCxB,YAAY,EAAE0B,gBAAgB;IAC9BxB,UAAU,EAAEuB;EACb,CAAC,GAAGpC,sBAAsB,CAACC,YAAY,EAAEC,UAAU,EAAEC,KAAK,EAAEC,gBAAgB,CAAC;EAE7E,MAAM;IAAEkC,cAAc;IAAEC;EAAW,CAAC,GAAGb,oBAAoB,CAAC;IAC3DV,MAAM;IACNC,MAAM;IACNW,aAAa;IACbC,WAAW;IACXR,iBAAiB;IACjBH,eAAe;IACfY,YAAY;IACZC,WAAW;IACXC,SAAS;IACTC,WAAW;IACXC,mBAAmB;IACnBC,kBAAkB;IAClBC,cAAc;IACdC,gBAAgB;IAChBb,cAAc;IACdC,aAAa;IACbF,WAAW;IACXD;EACD,CAAC,CAAC;EAEF,IAAIgB,cAAc,EAAE;IACnBc,kBAAkB,CAACM,KAAK,GAAGC,2BAAkB,CAACE,MAAM;EACrD,CAAC,MAAM,IAAItB,UAAU,EAAE;IACtBa,kBAAkB,CAACM,KAAK,GAAGC,2BAAkB,CAACG,MAAM;IACpDX,OAAO,EAAEY,IAAI,CAAC,CAAC;EAChB;EAEA,OAAO;IACNzC,aAAa;IACbC,WAAW;IACXC,cAAc;IACdC;EACD,CAAC;AACF,CAAC;AAACuC,OAAA,CAAAhB,gBAAA,GAAAA,gBAAA;AAqBF;AACA;AACA;AACA;AACO,SAASiB,0BAA0BA,CAAC;EAC1CC,SAAS;EACThB,UAAU;EACViB,YAAY;EACZC,aAAa;EACbC;AAC4B,CAAC,EAG5B;EACD,SAAS;;EAET,MAAM;IAAE/C,aAAa;IAAEC,WAAW;IAAEC,cAAc;IAAEC;EAAc,CAAC,GAClEyC,SAAS;;EAEV;EACA,MAAMI,OAAO,GAAGH,YAAY,EAAE3D,CAAC,IAAI,CAAC;EACpC,MAAM+D,OAAO,GAAGJ,YAAY,EAAEvD,CAAC,IAAI,CAAC;EACpC,MAAM4D,UAAU,GAAGL,YAAY,GAC5BA,YAAY,CAACM,YAAY,GAAGN,YAAY,CAACO,WAAW,GACpD,CAAC;EACJ,MAAMC,UAAU,GAAGR,YAAY,GAC5BA,YAAY,CAACS,aAAa,GAAGT,YAAY,CAACU,YAAY,GACtD,CAAC;EACJ,MAAMC,gBAAgB,GAAG5B,UAAU,CAAC4B,gBAAgB;;EAEpD;EACA;EACA;EACA,IAAIV,aAAa,EAAE;IAClB,MAAMW,cAAc,GAAG7B,UAAU,CAACI,QAAQ,IAAIJ,UAAU,CAACK,gBAAgB;IACzE,MAAMyB,gBAAgB,GACrB9B,UAAU,CAACM,UAAU,IAAIN,UAAU,CAACO,kBAAkB;IAEvD,IAAIsB,cAAc,EAAE;MACnB,IAAID,gBAAgB,EAAE;QACrB;QACA,IAAIP,OAAO,IAAII,UAAU,EAAE;UAC1B,IAAIpD,WAAW,EAAE;YAChB,OAAO;cAAEe,cAAc,EAAE,IAAI;cAAE2C,SAAS,EAAE;YAAoB,CAAC;UAChE;UACA,IAAI3D,aAAa,IAAI+C,aAAa,EAAE;YACnC,OAAO;cAAE/B,cAAc,EAAE,IAAI;cAAE2C,SAAS,EAAE;YAAW,CAAC;UACvD;QACD;MACD,CAAC,MAAM;QACN;QACA,IAAIV,OAAO,IAAI,CAAC,EAAE;UACjB,IAAIjD,aAAa,EAAE;YAClB,OAAO;cAAEgB,cAAc,EAAE,IAAI;cAAE2C,SAAS,EAAE;YAAW,CAAC;UACvD;UACA,IAAI1D,WAAW,IAAI8C,aAAa,EAAE;YACjC,OAAO;cAAE/B,cAAc,EAAE,IAAI;cAAE2C,SAAS,EAAE;YAAoB,CAAC;UAChE;QACD;MACD;IACD;IAEA,IAAID,gBAAgB,EAAE;MACrB,IAAIF,gBAAgB,EAAE;QACrB;QACA,IAAIR,OAAO,IAAIE,UAAU,EAAE;UAC1B,IAAI/C,aAAa,EAAE;YAClB,OAAO;cAAEa,cAAc,EAAE,IAAI;cAAE2C,SAAS,EAAE;YAAsB,CAAC;UAClE;UACA,IAAIzD,cAAc,IAAI6C,aAAa,EAAE;YACpC,OAAO;cAAE/B,cAAc,EAAE,IAAI;cAAE2C,SAAS,EAAE;YAAa,CAAC;UACzD;QACD;MACD,CAAC,MAAM;QACN;QACA,IAAIX,OAAO,IAAI,CAAC,EAAE;UACjB,IAAI9C,cAAc,EAAE;YACnB,OAAO;cAAEc,cAAc,EAAE,IAAI;cAAE2C,SAAS,EAAE;YAAa,CAAC;UACzD;UACA,IAAIxD,aAAa,IAAI4C,aAAa,EAAE;YACnC,OAAO;cAAE/B,cAAc,EAAE,IAAI;cAAE2C,SAAS,EAAE;YAAsB,CAAC;UAClE;QACD;MACD;IACD;IAEA,OAAO;MAAE3C,cAAc,EAAE,KAAK;MAAE2C,SAAS,EAAE;IAAK,CAAC;EAClD;EAEA,IAAI/B,UAAU,CAACI,QAAQ,IAAIhC,aAAa,IAAIiD,OAAO,IAAI,CAAC,EAAE;IACzD,OAAO;MAAEjC,cAAc,EAAE,IAAI;MAAE2C,SAAS,EAAE;IAAW,CAAC;EACvD;EAEA,IAAI/B,UAAU,CAACM,UAAU,IAAIhC,cAAc,IAAI8C,OAAO,IAAI,CAAC,EAAE;IAC5D,OAAO;MAAEhC,cAAc,EAAE,IAAI;MAAE2C,SAAS,EAAE;IAAa,CAAC;EACzD;EAEA,IAAI/B,UAAU,CAACK,gBAAgB,IAAIhC,WAAW,IAAIgD,OAAO,IAAII,UAAU,EAAE;IACxE,OAAO;MAAErC,cAAc,EAAE,IAAI;MAAE2C,SAAS,EAAE;IAAoB,CAAC;EAChE;EAEA,IAAI/B,UAAU,CAACO,kBAAkB,IAAIhC,aAAa,IAAI6C,OAAO,IAAIE,UAAU,EAAE;IAC5E,OAAO;MAAElC,cAAc,EAAE,IAAI;MAAE2C,SAAS,EAAE;IAAsB,CAAC;EAClE;EAEA,OAAO;IAAE3C,cAAc,EAAE,KAAK;IAAE2C,SAAS,EAAE;EAAK,CAAC;AAClD","ignoreList":[]}
1
+ {"version":3,"names":["_gesture","require","GESTURE_ACTIVATION_THRESHOLD_X","GESTURE_ACTIVATION_THRESHOLD_Y","GESTURE_FAIL_TOLERANCE_X","GESTURE_FAIL_TOLERANCE_Y","DEFAULT_EDGE_DISTANCE_HORIZONTAL","DEFAULT_EDGE_DISTANCE_VERTICAL","DEFAULT_ACTIVATION_AREA","normalizeSides","area","mode","left","right","top","bottom","s","computeEdgeConstraints","initialTouch","dimensions","sides","responseDistance","xDist","yDist","horizontalRight","x","horizontalLeft","width","verticalDown","y","verticalUp","height","calculateSwipeDirs","deltaX","deltaY","isVerticalSwipe","Math","abs","isHorizontalSwipe","isSwipingDown","isSwipingUp","isSwipingRight","isSwipingLeft","shouldActivateOrFail","params","hasHorizontal","hasVertical","allowedRight","allowedLeft","allowedUp","allowedDown","horizontalGateRight","horizontalGateLeft","verticalGateUp","verticalGateDown","shouldActivate","shouldFail","hasEnoughHorizontalMovement","hasAcceptableVerticalDeviation","rightOk","leftOk","hasEnoughVerticalMovement","hasAcceptableHorizontalDeviation","upOk","downOk","applyOffsetRules","touch","directions","manager","gestureOffsetState","activationArea","vertical","verticalInverted","horizontal","horizontalInverted","value","GestureOffsetState","PENDING","PASSED","FAILED","fail","exports","checkScrollBoundary","scrollConfig","direction","snapAxisInverted","scrollX","scrollY","contentWidth","contentHeight","layoutWidth","layoutHeight","maxScrollX","max","maxScrollY","undefined","isVerticalDirection"],"sourceRoot":"../../../../../src","sources":["shared/utils/gesture/check-gesture-activation.ts"],"mappings":";;;;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AA+DA;AACA;AACA;AACA,MAAMC,8BAA8B,GAAG,EAAE;AACzC,MAAMC,8BAA8B,GAAG,EAAE;AACzC,MAAMC,wBAAwB,GAAG,EAAE;AACnC,MAAMC,wBAAwB,GAAG,EAAE;AACnC,MAAMC,gCAAgC,GAAG,EAAE;AAC3C,MAAMC,8BAA8B,GAAG,GAAG;AAC1C,MAAMC,uBAAuB,GAAG,QAAiB;AAE1C,SAASC,cAAcA,CAACC,IAA4B,EAAmB;EAC7E,SAAS;;EACT,IAAI,CAACA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IACtC,MAAMC,IAAoB,GAAGD,IAAI,IAAIF,uBAAuB;IAC5D,OAAO;MAAEI,IAAI,EAAED,IAAI;MAAEE,KAAK,EAAEF,IAAI;MAAEG,GAAG,EAAEH,IAAI;MAAEI,MAAM,EAAEJ;IAAK,CAAC;EAC5D;EAEA,MAAMK,CAAiB,GAAGN,IAAsB;EAChD,OAAO;IACNE,IAAI,EAAEI,CAAC,CAACJ,IAAI,IAAIJ,uBAAuB;IACvCK,KAAK,EAAEG,CAAC,CAACH,KAAK,IAAIL,uBAAuB;IACzCM,GAAG,EAAEE,CAAC,CAACF,GAAG,IAAIN,uBAAuB;IACrCO,MAAM,EAAEC,CAAC,CAACD,MAAM,IAAIP;EACrB,CAAC;AACF;AAEO,SAASS,sBAAsBA,CACrCC,YAAsC,EACtCC,UAAkB,EAClBC,KAAsB,EACtBC,gBAAyB,EACxB;EACD,SAAS;;EACT,MAAMC,KAAK,GAAGD,gBAAgB,IAAIf,gCAAgC;EAClE,MAAMiB,KAAK,GAAGF,gBAAgB,IAAId,8BAA8B;EAEhE,MAAMiB,eAAe,GAAGJ,KAAK,CAACR,IAAI,KAAK,QAAQ,IAAIM,YAAY,CAACO,CAAC,IAAIH,KAAK,CAAC,CAAC;EAC5E,MAAMI,cAAc,GACnBN,KAAK,CAACP,KAAK,KAAK,QAAQ,IAAIK,YAAY,CAACO,CAAC,IAAIN,UAAU,CAACQ,KAAK,GAAGL,KAAK,CAAC,CAAC;EACzE,MAAMM,YAAY,GAAGR,KAAK,CAACN,GAAG,KAAK,QAAQ,IAAII,YAAY,CAACW,CAAC,IAAIN,KAAK,CAAC,CAAC;EACxE,MAAMO,UAAU,GACfV,KAAK,CAACL,MAAM,KAAK,QAAQ,IAAIG,YAAY,CAACW,CAAC,IAAIV,UAAU,CAACY,MAAM,GAAGR,KAAK,CAAC,CAAC;;EAE3E,OAAO;IAAEC,eAAe;IAAEE,cAAc;IAAEE,YAAY;IAAEE;EAAW,CAAC;AACrE;AAEO,SAASE,kBAAkBA,CAACC,MAAc,EAAEC,MAAc,EAAE;EAClE,SAAS;;EAET,MAAMC,eAAe,GAAGC,IAAI,CAACC,GAAG,CAACH,MAAM,CAAC,GAAGE,IAAI,CAACC,GAAG,CAACJ,MAAM,CAAC;EAC3D,MAAMK,iBAAiB,GAAGF,IAAI,CAACC,GAAG,CAACJ,MAAM,CAAC,GAAGG,IAAI,CAACC,GAAG,CAACH,MAAM,CAAC;EAE7D,MAAMK,aAAa,GAAGJ,eAAe,IAAID,MAAM,GAAG,CAAC;EACnD,MAAMM,WAAW,GAAGL,eAAe,IAAID,MAAM,GAAG,CAAC;EACjD,MAAMO,cAAc,GAAGH,iBAAiB,IAAIL,MAAM,GAAG,CAAC;EACtD,MAAMS,aAAa,GAAGJ,iBAAiB,IAAIL,MAAM,GAAG,CAAC;EAErD,OAAO;IACNM,aAAa;IACbC,WAAW;IACXC,cAAc;IACdC,aAAa;IACbP,eAAe;IACfG;EACD,CAAC;AACF;AAEO,SAASK,oBAAoBA,CAACC,MAAiC,EAAE;EACvE,SAAS;;EAET,MAAM;IACLX,MAAM;IACNC,MAAM;IACNW,aAAa;IACbC,WAAW;IACXR,iBAAiB;IACjBH,eAAe;IACfY,YAAY;IACZC,WAAW;IACXC,SAAS;IACTC,WAAW;IACXC,mBAAmB;IACnBC,kBAAkB;IAClBC,cAAc;IACdC,gBAAgB;IAChBb,cAAc;IACdC,aAAa;IACbF,WAAW;IACXD;EACD,CAAC,GAAGK,MAAM;EAEV,IAAIW,cAAc,GAAG,KAAK;EAC1B,IAAIC,UAAU,GAAG,KAAK;EAEtB,IAAIX,aAAa,IAAIP,iBAAiB,EAAE;IACvC,MAAMmB,2BAA2B,GAChCrB,IAAI,CAACC,GAAG,CAACJ,MAAM,CAAC,IAAI/B,8BAA8B;IAEnD,MAAMwD,8BAA8B,GACnCtB,IAAI,CAACC,GAAG,CAACH,MAAM,CAAC,IAAI9B,wBAAwB;IAE7C,IAAIqD,2BAA2B,IAAIC,8BAA8B,EAAE;MAClE,MAAMC,OAAO,GAAGlB,cAAc,IAAIM,YAAY,IAAII,mBAAmB;MACrE,MAAMS,MAAM,GAAGlB,aAAa,IAAIM,WAAW,IAAII,kBAAkB;MACjE,IAAIO,OAAO,IAAIC,MAAM,EAAE;QACtBL,cAAc,GAAG,IAAI;MACtB;IACD,CAAC,MAAM,IAAI,CAACG,8BAA8B,EAAE;MAC3CF,UAAU,GAAG,IAAI;IAClB;EACD;EAEA,IAAIV,WAAW,IAAIX,eAAe,EAAE;IACnC,MAAM0B,yBAAyB,GAC9BzB,IAAI,CAACC,GAAG,CAACH,MAAM,CAAC,IAAI/B,8BAA8B;IACnD,MAAM2D,gCAAgC,GACrC1B,IAAI,CAACC,GAAG,CAACJ,MAAM,CAAC,IAAI5B,wBAAwB;IAE7C,IAAIwD,yBAAyB,IAAIC,gCAAgC,EAAE;MAClE,MAAMC,IAAI,GAAGvB,WAAW,IAAIS,SAAS,IAAII,cAAc;MACvD,MAAMW,MAAM,GAAGzB,aAAa,IAAIW,WAAW,IAAII,gBAAgB;MAC/D,IAAIS,IAAI,IAAIC,MAAM,EAAE;QACnBT,cAAc,GAAG,IAAI;MACtB;IACD,CAAC,MAAM,IAAI,CAACO,gCAAgC,EAAE;MAC7CN,UAAU,GAAG,IAAI;IAClB;EACD;EAEA,IAAIX,aAAa,IAAIP,iBAAiB,EAAE;IACvC,IAAKI,aAAa,IAAI,CAACM,WAAW,IAAMP,cAAc,IAAI,CAACM,YAAa,EAAE;MACzES,UAAU,GAAG,IAAI;IAClB;IACA;IACA,IACEf,cAAc,IAAIM,YAAY,IAAI,CAACI,mBAAmB,IACtDT,aAAa,IAAIM,WAAW,IAAI,CAACI,kBAAmB,EACpD;MACDI,UAAU,GAAG,IAAI;IAClB;EACD;EAEA,IAAIV,WAAW,IAAIX,eAAe,EAAE;IACnC,IAAKK,WAAW,IAAI,CAACS,SAAS,IAAMV,aAAa,IAAI,CAACW,WAAY,EAAE;MACnEM,UAAU,GAAG,IAAI;IAClB;IACA;IACA,IACEhB,WAAW,IAAIS,SAAS,IAAI,CAACI,cAAc,IAC3Cd,aAAa,IAAIW,WAAW,IAAI,CAACI,gBAAiB,EAClD;MACDE,UAAU,GAAG,IAAI;IAClB;EACD;EAEA,OAAO;IAAED,cAAc;IAAEC;EAAW,CAAC;AACtC;;AAEA;AACA;AACA;AACO,MAAMS,gBAAgB,GAAGA,CAAC;EAChC/C,YAAY;EACZgD,KAAK;EACLC,UAAU;EACVC,OAAO;EACPC,kBAAkB;EAClBC,cAAc;EACdnD,UAAU;EACVE;AAC4B,CAAC,KAAmB;EAChD,SAAS;;EAET,MAAMY,MAAM,GAAGiC,KAAK,CAACzC,CAAC,GAAGP,YAAY,CAACO,CAAC;EACvC,MAAMS,MAAM,GAAGgC,KAAK,CAACrC,CAAC,GAAGX,YAAY,CAACW,CAAC;EAEvC,MAAMqB,WAAW,GAAGiB,UAAU,CAACI,QAAQ;EACvC,MAAMtB,SAAS,GAAGkB,UAAU,CAACK,gBAAgB;EAC7C,MAAMzB,YAAY,GAAGoB,UAAU,CAACM,UAAU;EAC1C,MAAMzB,WAAW,GAAGmB,UAAU,CAACO,kBAAkB;EAEjD,MAAM7B,aAAa,GAAGG,WAAW,IAAID,YAAY;EACjD,MAAMD,WAAW,GAAGG,SAAS,IAAIC,WAAW;EAE5C,MAAM;IACLX,aAAa;IACbC,WAAW;IACXC,cAAc;IACdC,aAAa;IACbP,eAAe;IACfG;EACD,CAAC,GAAGN,kBAAkB,CAACC,MAAM,EAAEC,MAAM,CAAC;EAEtC,IAAImC,kBAAkB,CAACM,KAAK,KAAKC,2BAAkB,CAACC,OAAO,EAAE;IAC5D,OAAO;MACNtC,aAAa;MACbC,WAAW;MACXC,cAAc;MACdC;IACD,CAAC;EACF;EAEA,MAAMtB,KAAK,GAAGX,cAAc,CAAC6D,cAAc,CAAC;EAE5C,MAAM;IACL9C,eAAe,EAAE2B,mBAAmB;IACpCzB,cAAc,EAAE0B,kBAAkB;IAClCxB,YAAY,EAAE0B,gBAAgB;IAC9BxB,UAAU,EAAEuB;EACb,CAAC,GAAGpC,sBAAsB,CAACC,YAAY,EAAEC,UAAU,EAAEC,KAAK,EAAEC,gBAAgB,CAAC;EAE7E,MAAM;IAAEkC,cAAc;IAAEC;EAAW,CAAC,GAAGb,oBAAoB,CAAC;IAC3DV,MAAM;IACNC,MAAM;IACNW,aAAa;IACbC,WAAW;IACXR,iBAAiB;IACjBH,eAAe;IACfY,YAAY;IACZC,WAAW;IACXC,SAAS;IACTC,WAAW;IACXC,mBAAmB;IACnBC,kBAAkB;IAClBC,cAAc;IACdC,gBAAgB;IAChBb,cAAc;IACdC,aAAa;IACbF,WAAW;IACXD;EACD,CAAC,CAAC;EAEF,IAAIgB,cAAc,EAAE;IACnBc,kBAAkB,CAACM,KAAK,GAAGC,2BAAkB,CAACE,MAAM;EACrD,CAAC,MAAM,IAAItB,UAAU,EAAE;IACtBa,kBAAkB,CAACM,KAAK,GAAGC,2BAAkB,CAACG,MAAM;IACpDX,OAAO,EAAEY,IAAI,CAAC,CAAC;EAChB;EAEA,OAAO;IACNzC,aAAa;IACbC,WAAW;IACXC,cAAc;IACdC;EACD,CAAC;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtBAuC,OAAA,CAAAhB,gBAAA,GAAAA,gBAAA;AAuBO,SAASiB,mBAAmBA,CAClCC,YAAiC,EACjCC,SAAoB,EACpBC,gBAA0B,EAChB;EACV,SAAS;;EAET,IAAI,CAACF,YAAY,EAAE;IAClB;IACA,OAAO,IAAI;EACZ;EAEA,MAAM;IACL1D,CAAC,EAAE6D,OAAO;IACVzD,CAAC,EAAE0D,OAAO;IACVC,YAAY;IACZC,aAAa;IACbC,WAAW;IACXC;EACD,CAAC,GAAGR,YAAY;;EAEhB;EACA,MAAMS,UAAU,GAAGxD,IAAI,CAACyD,GAAG,CAAC,CAAC,EAAEL,YAAY,GAAGE,WAAW,CAAC;EAC1D,MAAMI,UAAU,GAAG1D,IAAI,CAACyD,GAAG,CAAC,CAAC,EAAEJ,aAAa,GAAGE,YAAY,CAAC;;EAE5D;EACA;EACA,IAAIN,gBAAgB,KAAKU,SAAS,EAAE;IACnC,MAAMC,mBAAmB,GACxBZ,SAAS,KAAK,UAAU,IAAIA,SAAS,KAAK,mBAAmB;IAE9D,IAAIY,mBAAmB,EAAE;MACxB;MACA;MACA,OAAOX,gBAAgB,GAAGE,OAAO,IAAIO,UAAU,GAAGP,OAAO,IAAI,CAAC;IAC/D;IACA;IACA;IACA;IACA,OAAOF,gBAAgB,GAAGC,OAAO,IAAIM,UAAU,GAAGN,OAAO,IAAI,CAAC;EAC/D;;EAEA;EACA,QAAQF,SAAS;IAChB,KAAK,UAAU;MACd;MACA;MACA,OAAOG,OAAO,IAAI,CAAC;IAEpB,KAAK,mBAAmB;MACvB;MACA;MACA,OAAOA,OAAO,IAAIO,UAAU;IAE7B,KAAK,YAAY;MAChB;MACA;MACA,OAAOR,OAAO,IAAI,CAAC;IAEpB,KAAK,qBAAqB;MACzB;MACA;MACA,OAAOA,OAAO,IAAIM,UAAU;IAE7B;MACC,OAAO,IAAI;EACb;AACD","ignoreList":[]}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.claimsAnyDirection = claimsAnyDirection;
7
+ exports.computeClaimedDirections = computeClaimedDirections;
8
+ var _ownership = require("../../types/ownership.types");
9
+ /**
10
+ * Computes which directions a screen claims ownership of.
11
+ *
12
+ * A screen claims a direction when:
13
+ * 1. gestureEnabled is true AND
14
+ * 2. gestureDirection includes that direction
15
+ *
16
+ * For snap points, both directions on the axis are claimed automatically.
17
+ * This is because a snap point sheet handles both expand (inverse) and collapse (primary) gestures.
18
+ *
19
+ * @param gestureEnabled - Whether gestures are enabled for this screen
20
+ * @param gestureDirection - The gesture direction(s) configured for this screen
21
+ * @param hasSnapPoints - Whether this screen has snap points configured
22
+ * @returns The claimed directions for this screen
23
+ */
24
+ function computeClaimedDirections(gestureEnabled, gestureDirection, hasSnapPoints) {
25
+ // If gestures are not enabled, claim nothing
26
+ if (!gestureEnabled) {
27
+ return _ownership.NO_CLAIMS;
28
+ }
29
+
30
+ // Default to vertical if no direction specified
31
+ const direction = gestureDirection ?? "vertical";
32
+
33
+ // Normalize to array
34
+ const directions = Array.isArray(direction) ? direction : [direction];
35
+
36
+ // Start with no claims
37
+ const claims = {
38
+ vertical: false,
39
+ "vertical-inverted": false,
40
+ horizontal: false,
41
+ "horizontal-inverted": false
42
+ };
43
+
44
+ // Process each direction
45
+ for (const dir of directions) {
46
+ if (dir === "bidirectional") {
47
+ // Bidirectional claims all four directions
48
+ claims.vertical = true;
49
+ claims["vertical-inverted"] = true;
50
+ claims.horizontal = true;
51
+ claims["horizontal-inverted"] = true;
52
+ } else {
53
+ // Claim the specific direction
54
+ claims[dir] = true;
55
+ }
56
+ }
57
+
58
+ // For snap points, claim both directions on the axis
59
+ // This enables both expand (inverse) and collapse/dismiss (primary) gestures
60
+ if (hasSnapPoints) {
61
+ const hasVerticalAxis = claims.vertical || claims["vertical-inverted"];
62
+ const hasHorizontalAxis = claims.horizontal || claims["horizontal-inverted"];
63
+ if (hasVerticalAxis) {
64
+ claims.vertical = true;
65
+ claims["vertical-inverted"] = true;
66
+ }
67
+ if (hasHorizontalAxis) {
68
+ claims.horizontal = true;
69
+ claims["horizontal-inverted"] = true;
70
+ }
71
+ }
72
+ return claims;
73
+ }
74
+
75
+ /**
76
+ * Checks if any direction is claimed.
77
+ */
78
+ function claimsAnyDirection(claims) {
79
+ return claims.vertical || claims["vertical-inverted"] || claims.horizontal || claims["horizontal-inverted"];
80
+ }
81
+ //# sourceMappingURL=compute-claimed-directions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_ownership","require","computeClaimedDirections","gestureEnabled","gestureDirection","hasSnapPoints","NO_CLAIMS","direction","directions","Array","isArray","claims","vertical","horizontal","dir","hasVerticalAxis","hasHorizontalAxis","claimsAnyDirection"],"sourceRoot":"../../../../../src","sources":["shared/utils/gesture/compute-claimed-directions.ts"],"mappings":";;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,wBAAwBA,CACvCC,cAAuB,EACvBC,gBAAmE,EACnEC,aAAsB,EACF;EACpB;EACA,IAAI,CAACF,cAAc,EAAE;IACpB,OAAOG,oBAAS;EACjB;;EAEA;EACA,MAAMC,SAAS,GAAGH,gBAAgB,IAAI,UAAU;;EAEhD;EACA,MAAMI,UAA8B,GAAGC,KAAK,CAACC,OAAO,CAACH,SAAS,CAAC,GAC5DA,SAAS,GACT,CAACA,SAAS,CAAC;;EAEd;EACA,MAAMI,MAAyB,GAAG;IACjCC,QAAQ,EAAE,KAAK;IACf,mBAAmB,EAAE,KAAK;IAC1BC,UAAU,EAAE,KAAK;IACjB,qBAAqB,EAAE;EACxB,CAAC;;EAED;EACA,KAAK,MAAMC,GAAG,IAAIN,UAAU,EAAE;IAC7B,IAAIM,GAAG,KAAK,eAAe,EAAE;MAC5B;MACAH,MAAM,CAACC,QAAQ,GAAG,IAAI;MACtBD,MAAM,CAAC,mBAAmB,CAAC,GAAG,IAAI;MAClCA,MAAM,CAACE,UAAU,GAAG,IAAI;MACxBF,MAAM,CAAC,qBAAqB,CAAC,GAAG,IAAI;IACrC,CAAC,MAAM;MACN;MACAA,MAAM,CAACG,GAAG,CAAc,GAAG,IAAI;IAChC;EACD;;EAEA;EACA;EACA,IAAIT,aAAa,EAAE;IAClB,MAAMU,eAAe,GAAGJ,MAAM,CAACC,QAAQ,IAAID,MAAM,CAAC,mBAAmB,CAAC;IACtE,MAAMK,iBAAiB,GACtBL,MAAM,CAACE,UAAU,IAAIF,MAAM,CAAC,qBAAqB,CAAC;IAEnD,IAAII,eAAe,EAAE;MACpBJ,MAAM,CAACC,QAAQ,GAAG,IAAI;MACtBD,MAAM,CAAC,mBAAmB,CAAC,GAAG,IAAI;IACnC;IACA,IAAIK,iBAAiB,EAAE;MACtBL,MAAM,CAACE,UAAU,GAAG,IAAI;MACxBF,MAAM,CAAC,qBAAqB,CAAC,GAAG,IAAI;IACrC;EACD;EAEA,OAAOA,MAAM;AACd;;AAEA;AACA;AACA;AACO,SAASM,kBAAkBA,CAACN,MAAyB,EAAW;EACtE,OACCA,MAAM,CAACC,QAAQ,IACfD,MAAM,CAAC,mBAAmB,CAAC,IAC3BA,MAAM,CAACE,UAAU,IACjBF,MAAM,CAAC,qBAAqB,CAAC;AAE/B","ignoreList":[]}
@@ -16,7 +16,7 @@ function determineSnapTarget({
16
16
  snapPoints,
17
17
  velocity,
18
18
  dimension,
19
- velocityFactor = 0.15,
19
+ velocityFactor = 0.1,
20
20
  canDismiss = true
21
21
  }) {
22
22
  "worklet";
@@ -1 +1 @@
1
- {"version":3,"names":["determineSnapTarget","currentProgress","snapPoints","velocity","dimension","velocityFactor","canDismiss","velocityInProgress","projectedProgress","allTargets","sort","a","b","targetProgress","i","length","current","next","undefined","midpoint","shouldDismiss"],"sourceRoot":"../../../../../src","sources":["shared/utils/gesture/determine-snap-target.ts"],"mappings":";;;;;;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAmBA,CAAC;EACnCC,eAAe;EACfC,UAAU;EACVC,QAAQ;EACRC,SAAS;EACTC,cAAc,GAAG,IAAI;EACrBC,UAAU,GAAG;AACY,CAAC,EAA6B;EACvD,SAAS;;EAET;EACA,MAAMC,kBAAkB,GAAIJ,QAAQ,GAAGC,SAAS,GAAIC,cAAc;;EAElE;EACA,MAAMG,iBAAiB,GAAGP,eAAe,GAAGM,kBAAkB;;EAE9D;EACA,MAAME,UAAU,GAAGH,UAAU,GAC1B,CAAC,CAAC,EAAE,GAAGJ,UAAU,CAAC,CAACQ,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC,GACxC,CAAC,GAAGV,UAAU,CAAC,CAACQ,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;;EAExC;EACA;EACA,IAAIC,cAAc,GAAGJ,UAAU,CAAC,CAAC,CAAC;EAElC,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,UAAU,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;IAC3C,MAAME,OAAO,GAAGP,UAAU,CAACK,CAAC,CAAC;IAC7B,MAAMG,IAAI,GAAGR,UAAU,CAACK,CAAC,GAAG,CAAC,CAAC;IAE9B,IAAIG,IAAI,KAAKC,SAAS,EAAE;MACvB;MACAL,cAAc,GAAGG,OAAO;MACxB;IACD;IAEA,MAAMG,QAAQ,GAAG,CAACH,OAAO,GAAGC,IAAI,IAAI,CAAC;IAErC,IAAIT,iBAAiB,GAAGW,QAAQ,EAAE;MACjCN,cAAc,GAAGG,OAAO;MACxB;IACD;IAEAH,cAAc,GAAGI,IAAI;EACtB;EAEA,OAAO;IACNJ,cAAc;IACdO,aAAa,EAAEP,cAAc,KAAK;EACnC,CAAC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["determineSnapTarget","currentProgress","snapPoints","velocity","dimension","velocityFactor","canDismiss","velocityInProgress","projectedProgress","allTargets","sort","a","b","targetProgress","i","length","current","next","undefined","midpoint","shouldDismiss"],"sourceRoot":"../../../../../src","sources":["shared/utils/gesture/determine-snap-target.ts"],"mappings":";;;;;;AAsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,mBAAmBA,CAAC;EACnCC,eAAe;EACfC,UAAU;EACVC,QAAQ;EACRC,SAAS;EACTC,cAAc,GAAG,GAAG;EACpBC,UAAU,GAAG;AACY,CAAC,EAA6B;EACvD,SAAS;;EAET;EACA,MAAMC,kBAAkB,GAAIJ,QAAQ,GAAGC,SAAS,GAAIC,cAAc;;EAElE;EACA,MAAMG,iBAAiB,GAAGP,eAAe,GAAGM,kBAAkB;;EAE9D;EACA,MAAME,UAAU,GAAGH,UAAU,GAC1B,CAAC,CAAC,EAAE,GAAGJ,UAAU,CAAC,CAACQ,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC,GACxC,CAAC,GAAGV,UAAU,CAAC,CAACQ,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,CAAC;;EAExC;EACA;EACA,IAAIC,cAAc,GAAGJ,UAAU,CAAC,CAAC,CAAC;EAElC,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,UAAU,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;IAC3C,MAAME,OAAO,GAAGP,UAAU,CAACK,CAAC,CAAC;IAC7B,MAAMG,IAAI,GAAGR,UAAU,CAACK,CAAC,GAAG,CAAC,CAAC;IAE9B,IAAIG,IAAI,KAAKC,SAAS,EAAE;MACvB;MACAL,cAAc,GAAGG,OAAO;MACxB;IACD;IAEA,MAAMG,QAAQ,GAAG,CAACH,OAAO,GAAGC,IAAI,IAAI,CAAC;IAErC,IAAIT,iBAAiB,GAAGW,QAAQ,EAAE;MACjCN,cAAc,GAAGG,OAAO;MACxB;IACD;IAEAH,cAAc,GAAGI,IAAI;EACtB;EAEA,OAAO;IACNJ,cAAc;IACdO,aAAa,EAAEP,cAAc,KAAK;EACnC,CAAC;AACF","ignoreList":[]}