@hanzogui/native 4.3.1 → 102.0.0-rc.41-hanzoai.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/dist/cjs/PressBoundary.cjs +92 -0
  3. package/dist/cjs/PressBoundary.native.js +105 -0
  4. package/dist/cjs/PressBoundary.native.js.map +1 -0
  5. package/dist/cjs/components.cjs +3 -3
  6. package/dist/cjs/components.native.js +3 -3
  7. package/dist/cjs/components.native.js.map +1 -1
  8. package/dist/cjs/gesture-handler.cjs +36 -0
  9. package/dist/cjs/gesture-handler.native.js +39 -0
  10. package/dist/cjs/gesture-handler.native.js.map +1 -0
  11. package/dist/cjs/gestureState.cjs +114 -5
  12. package/dist/cjs/gestureState.native.js +122 -16
  13. package/dist/cjs/gestureState.native.js.map +1 -1
  14. package/dist/cjs/globalState.cjs +1 -1
  15. package/dist/cjs/globalState.native.js +1 -1
  16. package/dist/cjs/globalState.native.js.map +1 -1
  17. package/dist/cjs/index.cjs +4 -1
  18. package/dist/cjs/index.native.js +4 -1
  19. package/dist/cjs/index.native.js.map +1 -1
  20. package/dist/cjs/setup-burnt.cjs +2 -2
  21. package/dist/cjs/setup-burnt.native.js +2 -2
  22. package/dist/cjs/setup-burnt.native.js.map +1 -1
  23. package/dist/cjs/setup-expo-linear-gradient.cjs +2 -2
  24. package/dist/cjs/setup-expo-linear-gradient.native.js +2 -2
  25. package/dist/cjs/setup-expo-linear-gradient.native.js.map +1 -1
  26. package/dist/cjs/setup-gesture-handler.cjs +44 -8
  27. package/dist/cjs/setup-gesture-handler.native.js +44 -8
  28. package/dist/cjs/setup-gesture-handler.native.js.map +1 -1
  29. package/dist/cjs/setup-keyboard-controller.native.js +2 -2
  30. package/dist/cjs/setup-safe-area.cjs +2 -27
  31. package/dist/cjs/setup-safe-area.native.js +9 -17
  32. package/dist/cjs/setup-safe-area.native.js.map +1 -1
  33. package/dist/cjs/setup-teleport.cjs +3 -3
  34. package/dist/cjs/setup-teleport.native.js +3 -3
  35. package/dist/cjs/setup-teleport.native.js.map +1 -1
  36. package/dist/cjs/setup-worklets.cjs +2 -2
  37. package/dist/cjs/setup-worklets.native.js +2 -2
  38. package/dist/cjs/setup-worklets.native.js.map +1 -1
  39. package/dist/cjs/setup-zeego.cjs +2 -2
  40. package/dist/cjs/setup-zeego.native.js +2 -2
  41. package/dist/cjs/setup-zeego.native.js.map +1 -1
  42. package/dist/esm/PressBoundary.mjs +56 -0
  43. package/dist/esm/PressBoundary.mjs.map +1 -0
  44. package/dist/esm/PressBoundary.native.js +66 -0
  45. package/dist/esm/PressBoundary.native.js.map +1 -0
  46. package/dist/esm/components.mjs +3 -3
  47. package/dist/esm/components.mjs.map +1 -1
  48. package/dist/esm/components.native.js +3 -3
  49. package/dist/esm/components.native.js.map +1 -1
  50. package/dist/esm/gesture-handler.mjs +6 -0
  51. package/dist/esm/gesture-handler.mjs.map +1 -0
  52. package/dist/esm/gesture-handler.native.js +6 -0
  53. package/dist/esm/gesture-handler.native.js.map +1 -0
  54. package/dist/esm/gestureState.mjs +112 -5
  55. package/dist/esm/gestureState.mjs.map +1 -1
  56. package/dist/esm/gestureState.native.js +120 -16
  57. package/dist/esm/gestureState.native.js.map +1 -1
  58. package/dist/esm/globalState.mjs +1 -1
  59. package/dist/esm/globalState.mjs.map +1 -1
  60. package/dist/esm/globalState.native.js +1 -1
  61. package/dist/esm/globalState.native.js.map +1 -1
  62. package/dist/esm/index.js +2 -1
  63. package/dist/esm/index.js.map +1 -1
  64. package/dist/esm/index.mjs +2 -1
  65. package/dist/esm/index.mjs.map +1 -1
  66. package/dist/esm/index.native.js +2 -1
  67. package/dist/esm/index.native.js.map +1 -1
  68. package/dist/esm/setup-burnt.mjs +2 -2
  69. package/dist/esm/setup-burnt.mjs.map +1 -1
  70. package/dist/esm/setup-burnt.native.js +2 -2
  71. package/dist/esm/setup-burnt.native.js.map +1 -1
  72. package/dist/esm/setup-expo-linear-gradient.mjs +2 -2
  73. package/dist/esm/setup-expo-linear-gradient.mjs.map +1 -1
  74. package/dist/esm/setup-expo-linear-gradient.native.js +2 -2
  75. package/dist/esm/setup-expo-linear-gradient.native.js.map +1 -1
  76. package/dist/esm/setup-gesture-handler.mjs +17 -8
  77. package/dist/esm/setup-gesture-handler.mjs.map +1 -1
  78. package/dist/esm/setup-gesture-handler.native.js +17 -8
  79. package/dist/esm/setup-gesture-handler.native.js.map +1 -1
  80. package/dist/esm/setup-keyboard-controller.native.js +2 -2
  81. package/dist/esm/setup-safe-area.mjs +1 -26
  82. package/dist/esm/setup-safe-area.mjs.map +1 -1
  83. package/dist/esm/setup-safe-area.native.js +9 -17
  84. package/dist/esm/setup-safe-area.native.js.map +1 -1
  85. package/dist/esm/setup-teleport.mjs +3 -3
  86. package/dist/esm/setup-teleport.mjs.map +1 -1
  87. package/dist/esm/setup-teleport.native.js +3 -3
  88. package/dist/esm/setup-teleport.native.js.map +1 -1
  89. package/dist/esm/setup-worklets.mjs +2 -2
  90. package/dist/esm/setup-worklets.mjs.map +1 -1
  91. package/dist/esm/setup-worklets.native.js +2 -2
  92. package/dist/esm/setup-worklets.native.js.map +1 -1
  93. package/dist/esm/setup-zeego.mjs +2 -2
  94. package/dist/esm/setup-zeego.mjs.map +1 -1
  95. package/dist/esm/setup-zeego.native.js +2 -2
  96. package/dist/esm/setup-zeego.native.js.map +1 -1
  97. package/gesture-handler/index.cjs +1 -0
  98. package/gesture-handler/index.js +1 -0
  99. package/gesture-handler/index.native.cjs +1 -0
  100. package/gesture-handler/index.native.js +1 -0
  101. package/gesture-handler.cjs +1 -0
  102. package/package.json +21 -8
  103. package/setup-burnt/index.cjs +1 -1
  104. package/setup-burnt/index.native.cjs +1 -1
  105. package/setup-expo-linear-gradient/index.cjs +1 -1
  106. package/setup-expo-linear-gradient/index.native.cjs +1 -1
  107. package/setup-gesture-handler/index.cjs +1 -1
  108. package/setup-gesture-handler/index.native.cjs +1 -1
  109. package/setup-keyboard-controller/index.cjs +1 -1
  110. package/setup-keyboard-controller/index.native.cjs +1 -1
  111. package/setup-safe-area/index.cjs +1 -1
  112. package/setup-safe-area/index.native.cjs +1 -1
  113. package/setup-teleport/index.cjs +1 -1
  114. package/setup-teleport/index.native.cjs +1 -1
  115. package/setup-worklets/index.cjs +1 -1
  116. package/setup-worklets/index.native.cjs +1 -1
  117. package/setup-zeego/index.cjs +1 -1
  118. package/setup-zeego/index.native.cjs +1 -1
  119. package/src/PressBoundary.tsx +81 -0
  120. package/src/components.tsx +3 -3
  121. package/src/gesture-handler.ts +17 -0
  122. package/src/gestureState.ts +178 -9
  123. package/src/globalState.ts +4 -4
  124. package/src/index.ts +14 -3
  125. package/src/setup-burnt.ts +3 -3
  126. package/src/setup-expo-linear-gradient.ts +3 -3
  127. package/src/setup-gesture-handler.ts +38 -11
  128. package/src/setup-keyboard-controller.ts +3 -3
  129. package/src/setup-safe-area.ts +5 -5
  130. package/src/setup-teleport.ts +4 -4
  131. package/src/setup-worklets.ts +3 -3
  132. package/src/setup-zeego.ts +3 -3
  133. package/types/PressBoundary.d.ts +14 -0
  134. package/types/PressBoundary.d.ts.map +11 -0
  135. package/types/components.d.ts.map +1 -1
  136. package/types/gesture-handler.d.ts +8 -0
  137. package/types/gesture-handler.d.ts.map +11 -0
  138. package/types/gestureState.d.ts +4 -0
  139. package/types/gestureState.d.ts.map +2 -2
  140. package/types/globalState.d.ts.map +1 -1
  141. package/types/index.d.ts +5 -3
  142. package/types/index.d.ts.map +2 -2
  143. package/types/setup-burnt.d.ts.map +1 -1
  144. package/types/setup-expo-linear-gradient.d.ts.map +1 -1
  145. package/types/setup-gesture-handler.d.ts +8 -1
  146. package/types/setup-gesture-handler.d.ts.map +2 -2
  147. package/types/setup-keyboard-controller.d.ts.map +1 -1
  148. package/types/setup-safe-area.d.ts.map +1 -1
  149. package/types/setup-teleport.d.ts.map +1 -1
  150. package/types/setup-worklets.d.ts.map +1 -1
  151. package/types/setup-zeego.d.ts.map +1 -1
@@ -1,2 +1,2 @@
1
- $ hanzo-gui-build
2
- built @hanzogui/native in 1008 ms
1
+ $ hanzogui-build
2
+ built @hanzogui/native in 5321 ms
@@ -0,0 +1,92 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: true
33
+ }), mod);
34
+ var PressBoundary_exports = {};
35
+ __export(PressBoundary_exports, {
36
+ PressBoundary: () => PressBoundary
37
+ });
38
+ module.exports = __toCommonJS(PressBoundary_exports);
39
+ var import_react = __toESM(require("react"), 1);
40
+ var import_react_native = require("react-native-web");
41
+ var import_gestureState = require("./gestureState.cjs");
42
+ var import_jsx_runtime = require("react/jsx-runtime");
43
+ function composeFirst(ours, theirs) {
44
+ return (...args) => {
45
+ ours(...args);
46
+ theirs?.(...args);
47
+ };
48
+ }
49
+ function composeLast(theirs, ours) {
50
+ return (...args) => {
51
+ theirs?.(...args);
52
+ ours(...args);
53
+ };
54
+ }
55
+ const PressBoundary = import_react.default.forwardRef(function PressBoundary2({
56
+ enabled,
57
+ stopPropagation,
58
+ debugName,
59
+ onTouchStart,
60
+ onTouchEnd,
61
+ onTouchCancel,
62
+ onResponderGrant,
63
+ onResponderRelease,
64
+ onResponderTerminate,
65
+ ...props
66
+ }, forwardedRef) {
67
+ const tokenRef = import_react.default.useRef(null);
68
+ const isEnabled = enabled ?? stopPropagation ?? true;
69
+ const claim = import_react.default.useCallback(() => {
70
+ if (!isEnabled) return;
71
+ if (tokenRef.current) {
72
+ (0, import_gestureState.releaseExternalPressOwnership)(tokenRef.current, debugName);
73
+ }
74
+ tokenRef.current = (0, import_gestureState.claimExternalPressOwnership)(debugName);
75
+ }, [debugName, isEnabled]);
76
+ const release = import_react.default.useCallback(() => {
77
+ if (!tokenRef.current) return;
78
+ (0, import_gestureState.releaseExternalPressOwnership)(tokenRef.current, debugName);
79
+ tokenRef.current = null;
80
+ }, [debugName]);
81
+ import_react.default.useEffect(() => release, [release]);
82
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
83
+ ref: forwardedRef,
84
+ ...props,
85
+ onTouchStart: composeFirst(claim, onTouchStart),
86
+ onTouchEnd: composeLast(onTouchEnd, release),
87
+ onTouchCancel: composeLast(onTouchCancel, release),
88
+ onResponderGrant: composeFirst(claim, onResponderGrant),
89
+ onResponderRelease: composeLast(onResponderRelease, release),
90
+ onResponderTerminate: composeLast(onResponderTerminate, release)
91
+ });
92
+ });
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
+ get: () => from[key],
19
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
+ });
21
+ }
22
+ return to;
23
+ };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
+ value: mod,
31
+ enumerable: true
32
+ }) : target, mod));
33
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
+ value: true
35
+ }), mod);
36
+ var PressBoundary_exports = {};
37
+ __export(PressBoundary_exports, {
38
+ PressBoundary: () => PressBoundary
39
+ });
40
+ module.exports = __toCommonJS(PressBoundary_exports);
41
+ var import_jsx_runtime = require("react/jsx-runtime");
42
+ var import_react = __toESM(require("react"), 1);
43
+ var import_react_native = require("react-native");
44
+ var import_gestureState = require("./gestureState.native.js");
45
+ function composeFirst(ours, theirs) {
46
+ return function () {
47
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
48
+ args[_key] = arguments[_key];
49
+ }
50
+ ours(...args);
51
+ theirs === null || theirs === void 0 ? void 0 : theirs(...args);
52
+ };
53
+ }
54
+ function composeLast(theirs, ours) {
55
+ return function () {
56
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
57
+ args[_key] = arguments[_key];
58
+ }
59
+ theirs === null || theirs === void 0 ? void 0 : theirs(...args);
60
+ ours(...args);
61
+ };
62
+ }
63
+ var PressBoundary = /* @__PURE__ */import_react.default.forwardRef(function PressBoundary2(param, forwardedRef) {
64
+ var {
65
+ enabled,
66
+ stopPropagation,
67
+ debugName,
68
+ onTouchStart,
69
+ onTouchEnd,
70
+ onTouchCancel,
71
+ onResponderGrant,
72
+ onResponderRelease,
73
+ onResponderTerminate,
74
+ ...props
75
+ } = param;
76
+ var tokenRef = import_react.default.useRef(null);
77
+ var _ref;
78
+ var isEnabled = (_ref = enabled !== null && enabled !== void 0 ? enabled : stopPropagation) !== null && _ref !== void 0 ? _ref : true;
79
+ var claim = import_react.default.useCallback(function () {
80
+ if (!isEnabled) return;
81
+ if (tokenRef.current) {
82
+ (0, import_gestureState.releaseExternalPressOwnership)(tokenRef.current, debugName);
83
+ }
84
+ tokenRef.current = (0, import_gestureState.claimExternalPressOwnership)(debugName);
85
+ }, [debugName, isEnabled]);
86
+ var release = import_react.default.useCallback(function () {
87
+ if (!tokenRef.current) return;
88
+ (0, import_gestureState.releaseExternalPressOwnership)(tokenRef.current, debugName);
89
+ tokenRef.current = null;
90
+ }, [debugName]);
91
+ import_react.default.useEffect(function () {
92
+ return release;
93
+ }, [release]);
94
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_react_native.View, {
95
+ ref: forwardedRef,
96
+ ...props,
97
+ onTouchStart: composeFirst(claim, onTouchStart),
98
+ onTouchEnd: composeLast(onTouchEnd, release),
99
+ onTouchCancel: composeLast(onTouchCancel, release),
100
+ onResponderGrant: composeFirst(claim, onResponderGrant),
101
+ onResponderRelease: composeLast(onResponderRelease, release),
102
+ onResponderTerminate: composeLast(onResponderTerminate, release)
103
+ });
104
+ });
105
+ //# sourceMappingURL=PressBoundary.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","PressBoundary_exports","__export","PressBoundary","module","exports","import_jsx_runtime","require","import_react","__toESM","import_react_native","import_gestureState","composeFirst","ours","theirs","_len","arguments","length","args","Array","_key","composeLast","default","forwardRef","PressBoundary2","param","forwardedRef","enabled","stopPropagation","debugName","onTouchStart","onTouchEnd","onTouchCancel","onResponderGrant","onResponderRelease","onResponderTerminate","props","tokenRef","useRef","_ref","isEnabled","claim","useCallback","current","releaseExternalPressOwnership","claimExternalPressOwnership","release","useEffect","jsx","View","ref"],"sources":["../../src/PressBoundary.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -37,7 +37,7 @@ function NativePortal({
37
37
  if (state.type !== "teleport") return null;
38
38
  const {
39
39
  Portal
40
- } = globalThis.__gui_teleport;
40
+ } = globalThis.__hanzogui_teleport;
41
41
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Portal, {
42
42
  hostName,
43
43
  children
@@ -50,7 +50,7 @@ function NativePortalHost({
50
50
  if (state.type !== "teleport") return null;
51
51
  const {
52
52
  PortalHost
53
- } = globalThis.__gui_teleport;
53
+ } = globalThis.__hanzogui_teleport;
54
54
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalHost, {
55
55
  name
56
56
  });
@@ -64,7 +64,7 @@ function NativePortalProvider({
64
64
  });
65
65
  const {
66
66
  PortalProvider
67
- } = globalThis.__gui_teleport;
67
+ } = globalThis.__hanzogui_teleport;
68
68
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalProvider, {
69
69
  children
70
70
  });
@@ -40,7 +40,7 @@ function NativePortal(param) {
40
40
  if (state.type !== "teleport") return null;
41
41
  var {
42
42
  Portal
43
- } = globalThis.__gui_teleport;
43
+ } = globalThis.__hanzogui_teleport;
44
44
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(Portal, {
45
45
  hostName,
46
46
  children
@@ -54,7 +54,7 @@ function NativePortalHost(param) {
54
54
  if (state.type !== "teleport") return null;
55
55
  var {
56
56
  PortalHost
57
- } = globalThis.__gui_teleport;
57
+ } = globalThis.__hanzogui_teleport;
58
58
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalHost, {
59
59
  name
60
60
  });
@@ -69,7 +69,7 @@ function NativePortalProvider(param) {
69
69
  });
70
70
  var {
71
71
  PortalProvider
72
- } = globalThis.__gui_teleport;
72
+ } = globalThis.__hanzogui_teleport;
73
73
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalProvider, {
74
74
  children
75
75
  });
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","components_exports","__export","NativePortal","NativePortalHost","NativePortalProvider","module","exports","import_jsx_runtime","require","import_portalState","param","hostName","children","state","getPortal","type","Portal","globalThis","__gui_teleport","jsx","name","PortalHost"],"sources":["../../src/components.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,kBAAA;AAAAC,QAAA,CAAAD,kBAAA;EAAAE,YAAA,EAAAA,CAAA,KAAAA,YAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAA,gBAAA;EAAAC,oBAAA,EAAAA,CAAA,KAAAA;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAAX,YAA0B,CAAAK,kBAAA;AAqBjB,IAAAO,kBAAA,GAAAC,OAAA;AARF,IAAAC,kBAAsB,GAAAD,OAAA;AAAA,SAC3BN,YAAWA,CAAAQ,KAAA;EACX;IAAAC,QAAA;IAAAC;EAAA,IAAAF,KAAA;EACF,IAAiCG,KAAA,OAAAJ,kBAAA,CAAAK,SAAA,IAAAD,KAAA;EAC/B,IAAAA,KAAM,CAAAE,IAAA,KAAQ;EACd,IAAI;IAAAC;EAAM,IAAAC,UAAS,CAAAC,cAAmB;EAEtC,OAAM,eAAc,IAAAX,kBAAmB,CAAAY,GAAA,EAAAH,MAAA;IACvCL,QAAO;IACTC;EAMO;AACL;AACA,SAAIT,gBAAeA,CAAAO,KAAA,EAAY;EAE/B;IAAMU;EAAE,IAAAV,KAAW;EACnB,IAAAG,KAAO,OAAAJ,kBAAA,CAAAK,SAAA,IAAAD,KAAC;EACV,IAAAA,KAAA,CAAAE,IAAA;EAMO;IAAAM;EAAS,IAAAJ,UAAuB,CAAAC,cAAkD;EACvF,OAAM,eAAQ,IAAAX,kBAAA,CAAAY,GAAU,EAAEE,UAAA;IAC1BD;EAEA;AACA;AACF,SAAAhB,qBAAAM,KAAA","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","components_exports","__export","NativePortal","NativePortalHost","NativePortalProvider","module","exports","import_jsx_runtime","require","import_portalState","param","hostName","children","state","getPortal","type","Portal","globalThis","__hanzogui_teleport","jsx","name","PortalHost"],"sources":["../../src/components.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,kBAAA;AAAAC,QAAA,CAAAD,kBAAA;EAAAE,YAAA,EAAAA,CAAA,KAAAA,YAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAA,gBAAA;EAAAC,oBAAA,EAAAA,CAAA,KAAAA;AAAA;AACAC,MAAA,CAAAC,OAAA,GAAAX,YAA0B,CAAAK,kBAAA;AAqBjB,IAAAO,kBAAA,GAAAC,OAAA;AARF,IAAAC,kBAAsB,GAAAD,OAAA;AAAA,SAC3BN,YAAWA,CAAAQ,KAAA;EACX;IAAAC,QAAA;IAAAC;EAAA,IAAAF,KAAA;EACF,IAAiCG,KAAA,OAAAJ,kBAAA,CAAAK,SAAA,IAAAD,KAAA;EAC/B,IAAAA,KAAM,CAAAE,IAAA,KAAQ;EACd,IAAI;IAAAC;EAAM,IAAAC,UAAS,CAAAC,mBAAmB;EAEtC,OAAM,eAAc,IAAAX,kBAAmB,CAAAY,GAAA,EAAAH,MAAA;IACvCL,QAAO;IACTC;EAMO;AACL;AACA,SAAIT,gBAAeA,CAAAO,KAAA,EAAY;EAE/B;IAAMU;EAAE,IAAAV,KAAW;EACnB,IAAAG,KAAO,OAAAJ,kBAAA,CAAAK,SAAA,IAAAD,KAAC;EACV,IAAAA,KAAA,CAAAE,IAAA;EAMO;IAAAM;EAAS,IAAAJ,UAAuB,CAAAC,mBAAkD;EACvF,OAAM,eAAQ,IAAAX,kBAAA,CAAAY,GAAU,EAAEE,UAAA;IAC1BD;EAEA;AACA;AACF,SAAAhB,qBAAAM,KAAA","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var gesture_handler_exports = {};
24
+ __export(gesture_handler_exports, {
25
+ PressBoundary: () => import_PressBoundary.PressBoundary,
26
+ getGestureHandler: () => import_gestureState.getGestureHandler,
27
+ getGestureHandlerConfig: () => import_setup_gesture_handler.getGestureHandlerConfig,
28
+ setupGestureHandler: () => import_setup_gesture_handler.setupGestureHandler,
29
+ unstable_claimExternalPressOwnership: () => import_gestureState2.claimExternalPressOwnership,
30
+ unstable_releaseExternalPressOwnership: () => import_gestureState2.releaseExternalPressOwnership
31
+ });
32
+ module.exports = __toCommonJS(gesture_handler_exports);
33
+ var import_gestureState = require("./gestureState.cjs");
34
+ var import_gestureState2 = require("./gestureState.cjs");
35
+ var import_PressBoundary = require("./PressBoundary.cjs");
36
+ var import_setup_gesture_handler = require("./setup-gesture-handler.cjs");
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var gesture_handler_exports = {};
26
+ __export(gesture_handler_exports, {
27
+ PressBoundary: () => import_PressBoundary.PressBoundary,
28
+ getGestureHandler: () => import_gestureState.getGestureHandler,
29
+ getGestureHandlerConfig: () => import_setup_gesture_handler.getGestureHandlerConfig,
30
+ setupGestureHandler: () => import_setup_gesture_handler.setupGestureHandler,
31
+ unstable_claimExternalPressOwnership: () => import_gestureState2.claimExternalPressOwnership,
32
+ unstable_releaseExternalPressOwnership: () => import_gestureState2.releaseExternalPressOwnership
33
+ });
34
+ module.exports = __toCommonJS(gesture_handler_exports);
35
+ var import_gestureState = require("./gestureState.native.js");
36
+ var import_gestureState2 = require("./gestureState.native.js");
37
+ var import_PressBoundary = require("./PressBoundary.native.js");
38
+ var import_setup_gesture_handler = require("./setup-gesture-handler.native.js");
39
+ //# sourceMappingURL=gesture-handler.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","gesture_handler_exports","__export","PressBoundary","import_PressBoundary","getGestureHandler","import_gestureState","getGestureHandlerConfig","import_setup_gesture_handler","setupGestureHandler","unstable_claimExternalPressOwnership","import_gestureState2","claimExternalPressOwnership","unstable_releaseExternalPressOwnership","releaseExternalPressOwnership","module","exports","require"],"sources":["../../src/gesture-handler.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,uBAAA;AAAAC,QAAA,CAAAD,uBAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAC,oBAAA,CAAAD,aAAA;EAAAE,iBAAA,EAAAA,CAAA,KAAAC,mBAAA,CAAAD,iBAAA;EAAAE,uBAAA,EAAAA,CAAA,KAAAC,4BAAA,CAAAD,uBAAA;EAAAE,mBAAA,EAAAA,CAAA,KAAAD,4BAAA,CAAAC,mBAAA;EAAAC,oCAAA,EAAAA,CAAA,KAAAC,oBAAA,CAAAC,2BAAA;EAAAC,sCAAA,EAAAA,CAAA,KAAAF,oBAAA,CAAAG;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAApB,YAAkC,CAAAK,uBAAA;AAMlC,IAAAK,mBAAA,GAAAW,OAGO;AACP,IAAAN,oBAAA,GAA8BM,OAAA;AAE9B,IAAAb,oBAAA,GAAAa,OAAA,CAIO","ignoreList":[]}
@@ -22,7 +22,9 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
22
22
  }), mod);
23
23
  var gestureState_exports = {};
24
24
  __export(gestureState_exports, {
25
- getGestureHandler: () => getGestureHandler
25
+ claimExternalPressOwnership: () => claimExternalPressOwnership,
26
+ getGestureHandler: () => getGestureHandler,
27
+ releaseExternalPressOwnership: () => releaseExternalPressOwnership
26
28
  });
27
29
  module.exports = __toCommonJS(gestureState_exports);
28
30
  var import_globalState = require("./globalState.cjs");
@@ -32,6 +34,48 @@ const state = (0, import_globalState.createGlobalState)(`gesture`, {
32
34
  GestureDetector: null,
33
35
  ScrollView: null
34
36
  });
37
+ let pressGestureDebugId = 0;
38
+ let externalPressDebugId = 0;
39
+ function getEventPointerId(e) {
40
+ const pointerId = e?.pointerId ?? e?.pointer?.id ?? e?.event?.pointerId ?? e?.event?.pointer?.id ?? e?.nativeEvent?.pointerId ?? e?.nativeEvent?.id ?? e?.event?.nativeEvent?.pointerId ?? e?.event?.nativeEvent?.id ?? null;
41
+ return pointerId == null || Number.isNaN(pointerId) ? null : Number(pointerId);
42
+ }
43
+ const pressState = {
44
+ owner: null,
45
+ ownerId: null,
46
+ ownerSource: null,
47
+ ownerPointerId: null,
48
+ timestamp: 0
49
+ };
50
+ function resetPressOwner() {
51
+ pressState.owner = null;
52
+ pressState.ownerId = null;
53
+ pressState.ownerSource = null;
54
+ pressState.ownerPointerId = null;
55
+ pressState.timestamp = 0;
56
+ }
57
+ function resetStaleOwner(now, debugName) {
58
+ if (now - pressState.timestamp > 2e3) {
59
+ resetPressOwner();
60
+ }
61
+ }
62
+ function claimExternalPressOwnership(debugName) {
63
+ const now = Date.now();
64
+ resetStaleOwner(now, debugName);
65
+ const token = {};
66
+ const ownerId = ++externalPressDebugId;
67
+ pressState.owner = token;
68
+ pressState.ownerId = ownerId;
69
+ pressState.ownerSource = "external";
70
+ pressState.timestamp = now;
71
+ return token;
72
+ }
73
+ function releaseExternalPressOwnership(token, debugName) {
74
+ if (!token || pressState.owner !== token) {
75
+ return;
76
+ }
77
+ resetPressOwner();
78
+ }
35
79
  function getGestureHandler() {
36
80
  return {
37
81
  get isEnabled() {
@@ -52,16 +96,81 @@ function getGestureHandler() {
52
96
  } = state.get();
53
97
  if (!Gesture) return null;
54
98
  const longPressDuration = config.delayLongPress ?? 500;
99
+ const myToken = {};
100
+ const myDebugId = ++pressGestureDebugId;
101
+ let didLongPress = false;
102
+ let didPressIn = false;
103
+ let pressInTimer = null;
104
+ const GRACE_PERIOD_MS = process.env.TAMAGUI_RNGH_PRESS_DELAY ? +process.env.TAMAGUI_RNGH_PRESS_DELAY : 24;
105
+ const tryClaimOwnership = e => {
106
+ const now = Date.now();
107
+ resetStaleOwner(now, config.debugName);
108
+ const currentPointerId = getEventPointerId(e);
109
+ const isSameTouchPointer = currentPointerId == null || pressState.ownerPointerId == null || pressState.ownerPointerId === currentPointerId;
110
+ if (pressState.owner === null || pressState.ownerSource === "internal" && isSameTouchPointer) {
111
+ pressState.owner = myToken;
112
+ pressState.ownerId = myDebugId;
113
+ pressState.ownerSource = "internal";
114
+ pressState.ownerPointerId = currentPointerId;
115
+ pressState.timestamp = now;
116
+ }
117
+ return pressState.owner === myToken;
118
+ };
119
+ const isOwner = () => pressState.owner === myToken;
120
+ const releaseOwnership = () => {
121
+ if (pressInTimer) {
122
+ clearTimeout(pressInTimer);
123
+ pressInTimer = null;
124
+ }
125
+ if (pressState.owner === myToken) {
126
+ resetPressOwner();
127
+ }
128
+ };
129
+ const firePressIn = e => {
130
+ if (!didPressIn && isOwner()) {
131
+ didPressIn = true;
132
+ config.onPressIn?.(e);
133
+ }
134
+ };
135
+ const schedulePressIn = e => {
136
+ if (pressInTimer) {
137
+ clearTimeout(pressInTimer);
138
+ }
139
+ pressInTimer = setTimeout(() => {
140
+ pressInTimer = null;
141
+ if (isOwner()) {
142
+ firePressIn(e);
143
+ }
144
+ }, GRACE_PERIOD_MS + 1);
145
+ };
55
146
  const tap = Gesture.Tap().runOnJS(true).maxDuration(1e4).onBegin(e => {
56
- config.onPressIn?.(e);
147
+ didLongPress = false;
148
+ didPressIn = false;
149
+ tryClaimOwnership(e);
150
+ schedulePressIn(e);
57
151
  }).onEnd(e => {
58
- config.onPress?.(e);
152
+ if (isOwner() && !didLongPress) {
153
+ firePressIn(e);
154
+ config.onPress?.(e);
155
+ }
59
156
  }).onFinalize(e => {
60
- config.onPressOut?.(e);
157
+ if (isOwner()) {
158
+ config.onPressOut?.(e);
159
+ releaseOwnership();
160
+ } else if (didPressIn) {
161
+ didPressIn = false;
162
+ config.onPressOut?.(e);
163
+ }
61
164
  });
62
165
  if (config.hitSlop) tap.hitSlop(config.hitSlop);
63
166
  if (!config.onLongPress) return tap;
64
- const longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onBegin(e => config.onPressIn?.(e)).onStart(e => config.onLongPress?.(e)).onFinalize(e => config.onPressOut?.(e));
167
+ const longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onStart(e => {
168
+ didLongPress = true;
169
+ if (isOwner()) {
170
+ firePressIn(e);
171
+ config.onLongPress?.(e);
172
+ }
173
+ });
65
174
  if (config.hitSlop) longPress.hitSlop(config.hitSlop);
66
175
  return Gesture.Exclusive(longPress, tap);
67
176
  }
@@ -24,7 +24,9 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
24
24
  }), mod);
25
25
  var gestureState_exports = {};
26
26
  __export(gestureState_exports, {
27
- getGestureHandler: () => getGestureHandler
27
+ claimExternalPressOwnership: () => claimExternalPressOwnership,
28
+ getGestureHandler: () => getGestureHandler,
29
+ releaseExternalPressOwnership: () => releaseExternalPressOwnership
28
30
  });
29
31
  module.exports = __toCommonJS(gestureState_exports);
30
32
  var import_globalState = require("./globalState.native.js");
@@ -34,6 +36,50 @@ var state = (0, import_globalState.createGlobalState)(`gesture`, {
34
36
  GestureDetector: null,
35
37
  ScrollView: null
36
38
  });
39
+ var pressGestureDebugId = 0;
40
+ var externalPressDebugId = 0;
41
+ function getEventPointerId(e) {
42
+ var _e_pointer, _e_event, _e_event_pointer, _e_event1, _e_nativeEvent, _e_nativeEvent1, _e_event_nativeEvent, _e_event2, _e_event_nativeEvent1, _e_event3;
43
+ var _e_pointerId, _ref, _ref1, _ref2, _ref3, _ref4, _ref5, _ref6;
44
+ var pointerId = (_ref6 = (_ref5 = (_ref4 = (_ref3 = (_ref2 = (_ref1 = (_ref = (_e_pointerId = e === null || e === void 0 ? void 0 : e.pointerId) !== null && _e_pointerId !== void 0 ? _e_pointerId : e === null || e === void 0 ? void 0 : (_e_pointer = e.pointer) === null || _e_pointer === void 0 ? void 0 : _e_pointer.id) !== null && _ref !== void 0 ? _ref : e === null || e === void 0 ? void 0 : (_e_event = e.event) === null || _e_event === void 0 ? void 0 : _e_event.pointerId) !== null && _ref1 !== void 0 ? _ref1 : e === null || e === void 0 ? void 0 : (_e_event1 = e.event) === null || _e_event1 === void 0 ? void 0 : (_e_event_pointer = _e_event1.pointer) === null || _e_event_pointer === void 0 ? void 0 : _e_event_pointer.id) !== null && _ref2 !== void 0 ? _ref2 : e === null || e === void 0 ? void 0 : (_e_nativeEvent = e.nativeEvent) === null || _e_nativeEvent === void 0 ? void 0 : _e_nativeEvent.pointerId) !== null && _ref3 !== void 0 ? _ref3 : e === null || e === void 0 ? void 0 : (_e_nativeEvent1 = e.nativeEvent) === null || _e_nativeEvent1 === void 0 ? void 0 : _e_nativeEvent1.id) !== null && _ref4 !== void 0 ? _ref4 : e === null || e === void 0 ? void 0 : (_e_event2 = e.event) === null || _e_event2 === void 0 ? void 0 : (_e_event_nativeEvent = _e_event2.nativeEvent) === null || _e_event_nativeEvent === void 0 ? void 0 : _e_event_nativeEvent.pointerId) !== null && _ref5 !== void 0 ? _ref5 : e === null || e === void 0 ? void 0 : (_e_event3 = e.event) === null || _e_event3 === void 0 ? void 0 : (_e_event_nativeEvent1 = _e_event3.nativeEvent) === null || _e_event_nativeEvent1 === void 0 ? void 0 : _e_event_nativeEvent1.id) !== null && _ref6 !== void 0 ? _ref6 : null;
45
+ return pointerId == null || Number.isNaN(pointerId) ? null : Number(pointerId);
46
+ }
47
+ var pressState = {
48
+ owner: null,
49
+ ownerId: null,
50
+ ownerSource: null,
51
+ ownerPointerId: null,
52
+ timestamp: 0
53
+ };
54
+ function resetPressOwner() {
55
+ pressState.owner = null;
56
+ pressState.ownerId = null;
57
+ pressState.ownerSource = null;
58
+ pressState.ownerPointerId = null;
59
+ pressState.timestamp = 0;
60
+ }
61
+ function resetStaleOwner(now, debugName) {
62
+ if (now - pressState.timestamp > 2e3) {
63
+ resetPressOwner();
64
+ }
65
+ }
66
+ function claimExternalPressOwnership(debugName) {
67
+ var now = Date.now();
68
+ resetStaleOwner(now, debugName);
69
+ var token = {};
70
+ var ownerId = ++externalPressDebugId;
71
+ pressState.owner = token;
72
+ pressState.ownerId = ownerId;
73
+ pressState.ownerSource = "external";
74
+ pressState.timestamp = now;
75
+ return token;
76
+ }
77
+ function releaseExternalPressOwnership(token, debugName) {
78
+ if (!token || pressState.owner !== token) {
79
+ return;
80
+ }
81
+ resetPressOwner();
82
+ }
37
83
  function getGestureHandler() {
38
84
  return {
39
85
  get isEnabled() {
@@ -55,27 +101,87 @@ function getGestureHandler() {
55
101
  if (!Gesture) return null;
56
102
  var _config_delayLongPress;
57
103
  var longPressDuration = (_config_delayLongPress = config.delayLongPress) !== null && _config_delayLongPress !== void 0 ? _config_delayLongPress : 500;
104
+ var myToken = {};
105
+ var myDebugId = ++pressGestureDebugId;
106
+ var didLongPress = false;
107
+ var didPressIn = false;
108
+ var pressInTimer = null;
109
+ var GRACE_PERIOD_MS = process.env.TAMAGUI_RNGH_PRESS_DELAY ? +process.env.TAMAGUI_RNGH_PRESS_DELAY : 24;
110
+ var tryClaimOwnership = function (e) {
111
+ var now = Date.now();
112
+ resetStaleOwner(now, config.debugName);
113
+ var currentPointerId = getEventPointerId(e);
114
+ var isSameTouchPointer = currentPointerId == null || pressState.ownerPointerId == null || pressState.ownerPointerId === currentPointerId;
115
+ if (pressState.owner === null || pressState.ownerSource === "internal" && isSameTouchPointer) {
116
+ pressState.owner = myToken;
117
+ pressState.ownerId = myDebugId;
118
+ pressState.ownerSource = "internal";
119
+ pressState.ownerPointerId = currentPointerId;
120
+ pressState.timestamp = now;
121
+ }
122
+ return pressState.owner === myToken;
123
+ };
124
+ var isOwner = function () {
125
+ return pressState.owner === myToken;
126
+ };
127
+ var releaseOwnership = function () {
128
+ if (pressInTimer) {
129
+ clearTimeout(pressInTimer);
130
+ pressInTimer = null;
131
+ }
132
+ if (pressState.owner === myToken) {
133
+ resetPressOwner();
134
+ }
135
+ };
136
+ var firePressIn = function (e) {
137
+ if (!didPressIn && isOwner()) {
138
+ var _config_onPressIn;
139
+ didPressIn = true;
140
+ (_config_onPressIn = config.onPressIn) === null || _config_onPressIn === void 0 ? void 0 : _config_onPressIn.call(config, e);
141
+ }
142
+ };
143
+ var schedulePressIn = function (e) {
144
+ if (pressInTimer) {
145
+ clearTimeout(pressInTimer);
146
+ }
147
+ pressInTimer = setTimeout(function () {
148
+ pressInTimer = null;
149
+ if (isOwner()) {
150
+ firePressIn(e);
151
+ }
152
+ }, GRACE_PERIOD_MS + 1);
153
+ };
58
154
  var tap = Gesture.Tap().runOnJS(true).maxDuration(1e4).onBegin(function (e) {
59
- var _config_onPressIn;
60
- (_config_onPressIn = config.onPressIn) === null || _config_onPressIn === void 0 ? void 0 : _config_onPressIn.call(config, e);
155
+ didLongPress = false;
156
+ didPressIn = false;
157
+ tryClaimOwnership(e);
158
+ schedulePressIn(e);
61
159
  }).onEnd(function (e) {
62
- var _config_onPress;
63
- (_config_onPress = config.onPress) === null || _config_onPress === void 0 ? void 0 : _config_onPress.call(config, e);
160
+ if (isOwner() && !didLongPress) {
161
+ var _config_onPress;
162
+ firePressIn(e);
163
+ (_config_onPress = config.onPress) === null || _config_onPress === void 0 ? void 0 : _config_onPress.call(config, e);
164
+ }
64
165
  }).onFinalize(function (e) {
65
- var _config_onPressOut;
66
- (_config_onPressOut = config.onPressOut) === null || _config_onPressOut === void 0 ? void 0 : _config_onPressOut.call(config, e);
166
+ if (isOwner()) {
167
+ var _config_onPressOut;
168
+ (_config_onPressOut = config.onPressOut) === null || _config_onPressOut === void 0 ? void 0 : _config_onPressOut.call(config, e);
169
+ releaseOwnership();
170
+ } else if (didPressIn) {
171
+ var _config_onPressOut1;
172
+ didPressIn = false;
173
+ (_config_onPressOut1 = config.onPressOut) === null || _config_onPressOut1 === void 0 ? void 0 : _config_onPressOut1.call(config, e);
174
+ }
67
175
  });
68
176
  if (config.hitSlop) tap.hitSlop(config.hitSlop);
69
177
  if (!config.onLongPress) return tap;
70
- var longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onBegin(function (e) {
71
- var _config_onPressIn;
72
- return (_config_onPressIn = config.onPressIn) === null || _config_onPressIn === void 0 ? void 0 : _config_onPressIn.call(config, e);
73
- }).onStart(function (e) {
74
- var _config_onLongPress;
75
- return (_config_onLongPress = config.onLongPress) === null || _config_onLongPress === void 0 ? void 0 : _config_onLongPress.call(config, e);
76
- }).onFinalize(function (e) {
77
- var _config_onPressOut;
78
- return (_config_onPressOut = config.onPressOut) === null || _config_onPressOut === void 0 ? void 0 : _config_onPressOut.call(config, e);
178
+ var longPress = Gesture.LongPress().runOnJS(true).minDuration(longPressDuration).onStart(function (e) {
179
+ didLongPress = true;
180
+ if (isOwner()) {
181
+ var _config_onLongPress;
182
+ firePressIn(e);
183
+ (_config_onLongPress = config.onLongPress) === null || _config_onLongPress === void 0 ? void 0 : _config_onLongPress.call(config, e);
184
+ }
79
185
  });
80
186
  if (config.hitSlop) longPress.hitSlop(config.hitSlop);
81
187
  return Gesture.Exclusive(longPress, tap);