@react-native-oh-tpl/react-native-gesture-handler 2.12.6-1 → 2.12.9-1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. package/harmony/gesture_handler/BuildProfile.ets +6 -0
  2. package/harmony/gesture_handler/build-profile.json5 +18 -7
  3. package/harmony/gesture_handler/hvigorfile.ts +2 -2
  4. package/harmony/gesture_handler/index.ets +3 -3
  5. package/harmony/gesture_handler/oh-package-lock.json5 +18 -0
  6. package/harmony/gesture_handler/oh-package.json5 +12 -11
  7. package/harmony/gesture_handler/src/main/cpp/CMakeLists.txt +8 -8
  8. package/harmony/gesture_handler/src/main/cpp/GestureHandlerPackage.cpp +103 -34
  9. package/harmony/gesture_handler/src/main/cpp/GestureHandlerPackage.h +21 -15
  10. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerButtonComponentDescriptor.h +36 -60
  11. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerButtonComponentInstance.h +27 -0
  12. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerButtonJSIBinder.h +32 -0
  13. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerModule.cpp +22 -17
  14. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerModule.h +15 -12
  15. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerPackage.h +72 -0
  16. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerRootViewComponentDescriptor.h +36 -60
  17. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerRootViewComponentInstance.h +123 -0
  18. package/harmony/gesture_handler/src/main/cpp/RNGestureHandlerRootViewJSIBinder.h +25 -0
  19. package/harmony/gesture_handler/src/main/ets/CircularBuffer.ts +42 -42
  20. package/harmony/gesture_handler/src/main/ets/Event.ts +67 -67
  21. package/harmony/gesture_handler/src/main/ets/EventDispatcher.ts +52 -37
  22. package/harmony/gesture_handler/src/main/ets/GestureHandler.ts +663 -663
  23. package/harmony/gesture_handler/src/main/ets/{GestureHandlerArkUIAdapter.ets → GestureHandlerArkUIAdapter.ts} +202 -201
  24. package/harmony/gesture_handler/src/main/ets/GestureHandlerFactory.ts +44 -44
  25. package/harmony/gesture_handler/src/main/ets/GestureHandlerOrchestrator.ts +280 -280
  26. package/harmony/gesture_handler/src/main/ets/GestureHandlerPackage.ts +22 -22
  27. package/harmony/gesture_handler/src/main/ets/GestureHandlerRegistry.ts +27 -27
  28. package/harmony/gesture_handler/src/main/ets/InteractionManager.ts +108 -108
  29. package/harmony/gesture_handler/src/main/ets/LeastSquareSolver.ts +182 -182
  30. package/harmony/gesture_handler/src/main/ets/NativeViewGestureHandler.ts +114 -114
  31. package/harmony/gesture_handler/src/main/ets/OutgoingEvent.ts +33 -33
  32. package/harmony/gesture_handler/src/main/ets/PanGestureHandler.ts +327 -327
  33. package/harmony/gesture_handler/src/main/ets/PointerTracker.ts +239 -239
  34. package/harmony/gesture_handler/src/main/ets/RNGHError.ts +4 -4
  35. package/harmony/gesture_handler/src/main/ets/RNGHLogger.ts +47 -28
  36. package/harmony/gesture_handler/src/main/ets/{RNGHRootTouchHandler.ets → RNGHRootTouchHandlerArkTS.ts} +59 -57
  37. package/harmony/gesture_handler/src/main/ets/RNGHRootTouchHandlerCAPI.ts +87 -0
  38. package/harmony/gesture_handler/src/main/ets/RNGestureHandlerButton.ets +37 -36
  39. package/harmony/gesture_handler/src/main/ets/RNGestureHandlerModule.ts +183 -125
  40. package/harmony/gesture_handler/src/main/ets/RNGestureHandlerRootView.ets +52 -55
  41. package/harmony/gesture_handler/src/main/ets/RNOHScrollLocker.ts +23 -11
  42. package/harmony/gesture_handler/src/main/ets/State.ts +46 -46
  43. package/harmony/gesture_handler/src/main/ets/TapGestureHandler.ts +205 -205
  44. package/harmony/gesture_handler/src/main/ets/Vector2D.ts +36 -36
  45. package/harmony/gesture_handler/src/main/ets/VelocityTracker.ts +98 -98
  46. package/harmony/gesture_handler/src/main/ets/View.ts +70 -70
  47. package/harmony/gesture_handler/src/main/ets/ViewRegistry.ts +42 -42
  48. package/harmony/gesture_handler/src/main/ets/namespace/RNGestureHandlerButton.ts +140 -0
  49. package/harmony/gesture_handler/src/main/ets/namespace/RNGestureHandlerModule.ts +25 -0
  50. package/harmony/gesture_handler/src/main/ets/namespace/RNGestureHandlerRootView.ts +101 -0
  51. package/harmony/gesture_handler/src/main/ets/namespace/ts.ts +3 -0
  52. package/harmony/gesture_handler/src/main/ets/pages/Index.ets +16 -16
  53. package/harmony/gesture_handler/src/main/ets/types.ts +25 -0
  54. package/harmony/gesture_handler/src/main/ets/webviewability/WebviewAbility.ts +41 -41
  55. package/harmony/gesture_handler/src/main/module.json5 +7 -7
  56. package/harmony/gesture_handler/src/main/resources/base/element/color.json +7 -7
  57. package/harmony/gesture_handler/src/main/resources/base/element/string.json +15 -15
  58. package/harmony/gesture_handler/src/main/resources/base/profile/main_pages.json +5 -5
  59. package/harmony/gesture_handler/src/main/resources/en_US/element/string.json +15 -15
  60. package/harmony/gesture_handler/src/main/resources/zh_CN/element/string.json +15 -15
  61. package/harmony/gesture_handler/ts.ts +2 -1
  62. package/harmony/gesture_handler.har +0 -0
  63. package/lib/commonjs/RNGestureHandlerModule.js +6 -3
  64. package/lib/commonjs/RNGestureHandlerModule.js.map +1 -1
  65. package/lib/commonjs/components/GestureHandlerRootView.js +5 -13
  66. package/lib/commonjs/components/GestureHandlerRootView.js.map +1 -1
  67. package/lib/commonjs/handlers/createHandler.js +31 -28
  68. package/lib/commonjs/handlers/createHandler.js.map +1 -1
  69. package/lib/commonjs/index.js +42 -19
  70. package/lib/commonjs/index.js.map +1 -1
  71. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js +10 -0
  72. package/lib/commonjs/specs/NativeRNGestureHandlerModule.js.map +1 -0
  73. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js +11 -0
  74. package/lib/commonjs/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -0
  75. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js +11 -0
  76. package/lib/commonjs/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -0
  77. package/lib/module/RNGestureHandlerModule.js +3 -2
  78. package/lib/module/RNGestureHandlerModule.js.map +1 -1
  79. package/lib/module/components/GestureHandlerRootView.js +3 -11
  80. package/lib/module/components/GestureHandlerRootView.js.map +1 -1
  81. package/lib/module/handlers/createHandler.js +20 -19
  82. package/lib/module/handlers/createHandler.js.map +1 -1
  83. package/lib/module/index.js +6 -14
  84. package/lib/module/index.js.map +1 -1
  85. package/lib/module/specs/NativeRNGestureHandlerModule.js +3 -0
  86. package/lib/module/specs/NativeRNGestureHandlerModule.js.map +1 -0
  87. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js +3 -0
  88. package/lib/module/specs/RNGestureHandlerButtonNativeComponent.js.map +1 -0
  89. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js +3 -0
  90. package/lib/module/specs/RNGestureHandlerRootViewNativeComponent.js.map +1 -0
  91. package/lib/typescript/RNGestureHandlerModule.d.ts +2 -6
  92. package/lib/typescript/RNGestureHandlerModule.d.ts.map +1 -1
  93. package/lib/typescript/components/GestureHandlerRootView.d.ts +6 -6
  94. package/lib/typescript/components/GestureHandlerRootView.d.ts.map +1 -1
  95. package/lib/typescript/handlers/createHandler.d.ts +11 -11
  96. package/lib/typescript/handlers/createHandler.d.ts.map +1 -1
  97. package/lib/typescript/index.d.ts +9 -8
  98. package/lib/typescript/index.d.ts.map +1 -1
  99. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts +15 -0
  100. package/lib/typescript/specs/NativeRNGestureHandlerModule.d.ts.map +1 -0
  101. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts +15 -0
  102. package/lib/typescript/specs/RNGestureHandlerButtonNativeComponent.d.ts.map +1 -0
  103. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts +7 -0
  104. package/lib/typescript/specs/RNGestureHandlerRootViewNativeComponent.d.ts.map +1 -0
  105. package/package.json +66 -70
  106. package/src/RNGestureHandlerModule.ts +5 -6
  107. package/src/components/GestureHandlerRootView.tsx +23 -34
  108. package/src/handlers/createHandler.tsx +534 -535
  109. package/src/index.ts +172 -172
  110. package/src/specs/NativeRNGestureHandlerModule.ts +26 -0
  111. package/src/specs/RNGestureHandlerButtonNativeComponent.ts +18 -0
  112. package/src/specs/RNGestureHandlerRootViewNativeComponent.ts +6 -0
  113. package/README.md +0 -1
  114. package/lib/commonjs/components/GestureButtons.js +0 -186
  115. package/lib/commonjs/components/GestureButtons.js.map +0 -1
  116. package/lib/commonjs/components/GestureHandlerButton.js +0 -9
  117. package/lib/commonjs/components/GestureHandlerButton.js.map +0 -1
  118. package/lib/commonjs/components/RNGestureHandlerButton.js +0 -23
  119. package/lib/commonjs/components/RNGestureHandlerButton.js.map +0 -1
  120. package/lib/commonjs/components/touchables/GenericTouchable.js +0 -247
  121. package/lib/commonjs/components/touchables/GenericTouchable.js.map +0 -1
  122. package/lib/commonjs/components/touchables/TouchableOpacity.js +0 -58
  123. package/lib/commonjs/components/touchables/TouchableOpacity.js.map +0 -1
  124. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js +0 -18
  125. package/lib/commonjs/components/touchables/TouchableWithoutFeedback.js.map +0 -1
  126. package/lib/commonjs/components/touchables/index.js +0 -21
  127. package/lib/commonjs/components/touchables/index.js.map +0 -1
  128. package/lib/commonjs/handlers/NativeViewGestureHandler.js +0 -19
  129. package/lib/commonjs/handlers/NativeViewGestureHandler.js.map +0 -1
  130. package/lib/commonjs/handlers/PanGestureHandler.js +0 -103
  131. package/lib/commonjs/handlers/PanGestureHandler.js.map +0 -1
  132. package/lib/commonjs/handlers/TapGestureHandler.js +0 -22
  133. package/lib/commonjs/handlers/TapGestureHandler.js.map +0 -1
  134. package/lib/commonjs/handlers/createNativeWrapper.js +0 -64
  135. package/lib/commonjs/handlers/createNativeWrapper.js.map +0 -1
  136. package/lib/commonjs/handlers/gestureHandlerCommon.js +0 -22
  137. package/lib/commonjs/handlers/gestureHandlerCommon.js.map +0 -1
  138. package/lib/commonjs/handlers/gestures/GestureDetector.js +0 -554
  139. package/lib/commonjs/handlers/gestures/GestureDetector.js.map +0 -1
  140. package/lib/commonjs/init.js +0 -24
  141. package/lib/commonjs/init.js.map +0 -1
  142. package/lib/module/components/GestureButtons.js +0 -168
  143. package/lib/module/components/GestureButtons.js.map +0 -1
  144. package/lib/module/components/GestureHandlerButton.js +0 -3
  145. package/lib/module/components/GestureHandlerButton.js.map +0 -1
  146. package/lib/module/components/RNGestureHandlerButton.js +0 -17
  147. package/lib/module/components/RNGestureHandlerButton.js.map +0 -1
  148. package/lib/module/components/touchables/GenericTouchable.js +0 -238
  149. package/lib/module/components/touchables/GenericTouchable.js.map +0 -1
  150. package/lib/module/components/touchables/TouchableOpacity.js +0 -49
  151. package/lib/module/components/touchables/TouchableOpacity.js.map +0 -1
  152. package/lib/module/components/touchables/TouchableWithoutFeedback.js +0 -9
  153. package/lib/module/components/touchables/TouchableWithoutFeedback.js.map +0 -1
  154. package/lib/module/components/touchables/index.js +0 -8
  155. package/lib/module/components/touchables/index.js.map +0 -1
  156. package/lib/module/handlers/NativeViewGestureHandler.js +0 -12
  157. package/lib/module/handlers/NativeViewGestureHandler.js.map +0 -1
  158. package/lib/module/handlers/PanGestureHandler.js +0 -92
  159. package/lib/module/handlers/PanGestureHandler.js.map +0 -1
  160. package/lib/module/handlers/TapGestureHandler.js +0 -14
  161. package/lib/module/handlers/TapGestureHandler.js.map +0 -1
  162. package/lib/module/handlers/createNativeWrapper.js +0 -57
  163. package/lib/module/handlers/createNativeWrapper.js.map +0 -1
  164. package/lib/module/handlers/gestureHandlerCommon.js +0 -15
  165. package/lib/module/handlers/gestureHandlerCommon.js.map +0 -1
  166. package/lib/module/handlers/gestures/GestureDetector.js +0 -543
  167. package/lib/module/handlers/gestures/GestureDetector.js.map +0 -1
  168. package/lib/module/init.js +0 -17
  169. package/lib/module/init.js.map +0 -1
  170. package/lib/typescript/components/GestureButtons.d.ts +0 -122
  171. package/lib/typescript/components/GestureButtons.d.ts.map +0 -1
  172. package/lib/typescript/components/GestureHandlerButton.d.ts +0 -5
  173. package/lib/typescript/components/GestureHandlerButton.d.ts.map +0 -1
  174. package/lib/typescript/components/RNGestureHandlerButton.d.ts +0 -2
  175. package/lib/typescript/components/RNGestureHandlerButton.d.ts.map +0 -1
  176. package/lib/typescript/components/touchables/GenericTouchable.d.ts +0 -68
  177. package/lib/typescript/components/touchables/GenericTouchable.d.ts.map +0 -1
  178. package/lib/typescript/components/touchables/TouchableOpacity.d.ts +0 -26
  179. package/lib/typescript/components/touchables/TouchableOpacity.d.ts.map +0 -1
  180. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts +0 -8
  181. package/lib/typescript/components/touchables/TouchableWithoutFeedback.d.ts.map +0 -1
  182. package/lib/typescript/components/touchables/index.d.ts +0 -4
  183. package/lib/typescript/components/touchables/index.d.ts.map +0 -1
  184. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts +0 -29
  185. package/lib/typescript/handlers/NativeViewGestureHandler.d.ts.map +0 -1
  186. package/lib/typescript/handlers/PanGestureHandler.d.ts +0 -140
  187. package/lib/typescript/handlers/PanGestureHandler.d.ts.map +0 -1
  188. package/lib/typescript/handlers/TapGestureHandler.d.ts +0 -58
  189. package/lib/typescript/handlers/TapGestureHandler.d.ts.map +0 -1
  190. package/lib/typescript/handlers/createNativeWrapper.d.ts +0 -4
  191. package/lib/typescript/handlers/createNativeWrapper.d.ts.map +0 -1
  192. package/lib/typescript/handlers/gestureHandlerCommon.d.ts +0 -2
  193. package/lib/typescript/handlers/gestureHandlerCommon.d.ts.map +0 -1
  194. package/lib/typescript/handlers/gestures/GestureDetector.d.ts +0 -24
  195. package/lib/typescript/handlers/gestures/GestureDetector.d.ts.map +0 -1
  196. package/lib/typescript/init.d.ts +0 -3
  197. package/lib/typescript/init.d.ts.map +0 -1
  198. package/src/components/GestureButtons.tsx +0 -334
  199. package/src/components/GestureHandlerButton.tsx +0 -5
  200. package/src/components/RNGestureHandlerButton.tsx +0 -23
  201. package/src/components/touchables/GenericTouchable.tsx +0 -301
  202. package/src/components/touchables/TouchableOpacity.tsx +0 -76
  203. package/src/components/touchables/TouchableWithoutFeedback.tsx +0 -14
  204. package/src/components/touchables/index.ts +0 -7
  205. package/src/handlers/NativeViewGestureHandler.ts +0 -55
  206. package/src/handlers/PanGestureHandler.ts +0 -327
  207. package/src/handlers/TapGestureHandler.ts +0 -95
  208. package/src/handlers/createNativeWrapper.tsx +0 -81
  209. package/src/handlers/gestureHandlerCommon.ts +0 -15
  210. package/src/handlers/gestures/GestureDetector.tsx +0 -823
  211. package/src/init.ts +0 -18
@@ -1,36 +1,36 @@
1
- export class Vector2D {
2
- constructor(
3
- private val: {
4
- x: number;
5
- y: number;
6
- } = {x: 0, y: 0},
7
- ) {}
8
-
9
- get x() {
10
- return this.val.x;
11
- }
12
-
13
- get y() {
14
- return this.val.y;
15
- }
16
-
17
- get value() {
18
- return {...this.val};
19
- }
20
-
21
- public clone() {
22
- return new Vector2D({...this.val});
23
- }
24
-
25
- public subtract(vec: Vector2D) {
26
- this.val.x -= vec.x;
27
- this.val.y -= vec.y;
28
- return this;
29
- }
30
-
31
- public add(vec: Vector2D) {
32
- this.val.x += vec.x;
33
- this.val.y += vec.y;
34
- return this;
35
- }
36
- }
1
+ export class Vector2D {
2
+ constructor(
3
+ private val: {
4
+ x: number;
5
+ y: number;
6
+ } = {x: 0, y: 0},
7
+ ) {}
8
+
9
+ get x() {
10
+ return this.val.x;
11
+ }
12
+
13
+ get y() {
14
+ return this.val.y;
15
+ }
16
+
17
+ get value() {
18
+ return {...this.val};
19
+ }
20
+
21
+ public clone() {
22
+ return new Vector2D({...this.val});
23
+ }
24
+
25
+ public subtract(vec: Vector2D) {
26
+ this.val.x -= vec.x;
27
+ this.val.y -= vec.y;
28
+ return this;
29
+ }
30
+
31
+ public add(vec: Vector2D) {
32
+ this.val.x += vec.x;
33
+ this.val.y += vec.y;
34
+ return this;
35
+ }
36
+ }
@@ -1,98 +1,98 @@
1
- import { AdaptedEvent } from './Event';
2
- import { CircularBuffer } from './CircularBuffer';
3
- import { LeastSquareSolver } from './LeastSquareSolver';
4
-
5
- export default class VelocityTracker {
6
- private assumePointerMoveStoppedMilliseconds = 40;
7
- private historySize = 20;
8
- private horizonMilliseconds = 300;
9
- private minSampleSize = 3;
10
-
11
- private samples: CircularBuffer<AdaptedEvent>;
12
-
13
- constructor() {
14
- this.samples = new CircularBuffer<AdaptedEvent>(this.historySize);
15
- }
16
-
17
- public add(event: AdaptedEvent): void {
18
- this.samples.push(event);
19
- }
20
-
21
- /// Returns an estimate of the velocity of the object being tracked by the
22
- /// tracker given the current information available to the tracker.
23
- ///
24
- /// Information is added using [addPosition].
25
- ///
26
- /// Returns null if there is no data on which to base an estimate.
27
- private getVelocityEstimate(): [number, number] | null {
28
- const x = [];
29
- const y = [];
30
- const w = [];
31
- const time = [];
32
-
33
- let sampleCount = 0;
34
- let index = this.samples.size - 1;
35
- const newestSample = this.samples.get(index);
36
- if (!newestSample) {
37
- return null;
38
- }
39
-
40
- let previousSample = newestSample;
41
-
42
- // Starting with the most recent PointAtTime sample, iterate backwards while
43
- // the samples represent continuous motion.
44
- while (sampleCount < this.samples.size) {
45
- const sample = this.samples.get(index);
46
-
47
- const age = newestSample.time - sample.time;
48
- const delta = Math.abs(sample.time - previousSample.time);
49
- previousSample = sample;
50
-
51
- if (
52
- age > this.horizonMilliseconds ||
53
- delta > this.assumePointerMoveStoppedMilliseconds
54
- ) {
55
- break;
56
- }
57
-
58
- x.push(sample.x);
59
- y.push(sample.y);
60
- w.push(1);
61
- time.push(-age);
62
-
63
- sampleCount++;
64
- index--;
65
- }
66
-
67
- if (sampleCount >= this.minSampleSize) {
68
- const xSolver = new LeastSquareSolver(time, x, w);
69
- const xFit = xSolver.solve(2);
70
-
71
- if (xFit !== null) {
72
- const ySolver = new LeastSquareSolver(time, y, w);
73
- const yFit = ySolver.solve(2);
74
-
75
- if (yFit !== null) {
76
- const xVelocity = xFit.coefficients[1] * 1000;
77
- const yVelocity = yFit.coefficients[1] * 1000;
78
-
79
- return [xVelocity, yVelocity];
80
- }
81
- }
82
- }
83
-
84
- return null;
85
- }
86
-
87
- public getVelocity(): [number, number] {
88
- const estimate = this.getVelocityEstimate();
89
- if (estimate !== null) {
90
- return estimate;
91
- }
92
- return [0, 0];
93
- }
94
-
95
- public reset(): void {
96
- this.samples.clear();
97
- }
98
- }
1
+ import { AdaptedEvent } from './Event';
2
+ import { CircularBuffer } from './CircularBuffer';
3
+ import { LeastSquareSolver } from './LeastSquareSolver';
4
+
5
+ export default class VelocityTracker {
6
+ private assumePointerMoveStoppedMilliseconds = 40;
7
+ private historySize = 20;
8
+ private horizonMilliseconds = 300;
9
+ private minSampleSize = 3;
10
+
11
+ private samples: CircularBuffer<AdaptedEvent>;
12
+
13
+ constructor() {
14
+ this.samples = new CircularBuffer<AdaptedEvent>(this.historySize);
15
+ }
16
+
17
+ public add(event: AdaptedEvent): void {
18
+ this.samples.push(event);
19
+ }
20
+
21
+ /// Returns an estimate of the velocity of the object being tracked by the
22
+ /// tracker given the current information available to the tracker.
23
+ ///
24
+ /// Information is added using [addPosition].
25
+ ///
26
+ /// Returns null if there is no data on which to base an estimate.
27
+ private getVelocityEstimate(): [number, number] | null {
28
+ const x = [];
29
+ const y = [];
30
+ const w = [];
31
+ const time = [];
32
+
33
+ let sampleCount = 0;
34
+ let index = this.samples.size - 1;
35
+ const newestSample = this.samples.get(index);
36
+ if (!newestSample) {
37
+ return null;
38
+ }
39
+
40
+ let previousSample = newestSample;
41
+
42
+ // Starting with the most recent PointAtTime sample, iterate backwards while
43
+ // the samples represent continuous motion.
44
+ while (sampleCount < this.samples.size) {
45
+ const sample = this.samples.get(index);
46
+
47
+ const age = newestSample.time - sample.time;
48
+ const delta = Math.abs(sample.time - previousSample.time);
49
+ previousSample = sample;
50
+
51
+ if (
52
+ age > this.horizonMilliseconds ||
53
+ delta > this.assumePointerMoveStoppedMilliseconds
54
+ ) {
55
+ break;
56
+ }
57
+
58
+ x.push(sample.x);
59
+ y.push(sample.y);
60
+ w.push(1);
61
+ time.push(-age);
62
+
63
+ sampleCount++;
64
+ index--;
65
+ }
66
+
67
+ if (sampleCount >= this.minSampleSize) {
68
+ const xSolver = new LeastSquareSolver(time, x, w);
69
+ const xFit = xSolver.solve(2);
70
+
71
+ if (xFit !== null) {
72
+ const ySolver = new LeastSquareSolver(time, y, w);
73
+ const yFit = ySolver.solve(2);
74
+
75
+ if (yFit !== null) {
76
+ const xVelocity = xFit.coefficients[1] * 1000;
77
+ const yVelocity = yFit.coefficients[1] * 1000;
78
+
79
+ return [xVelocity, yVelocity];
80
+ }
81
+ }
82
+ }
83
+
84
+ return null;
85
+ }
86
+
87
+ public getVelocity(): [number, number] {
88
+ const estimate = this.getVelocityEstimate();
89
+ if (estimate !== null) {
90
+ return estimate;
91
+ }
92
+ return [0, 0];
93
+ }
94
+
95
+ public reset(): void {
96
+ this.samples.clear();
97
+ }
98
+ }
@@ -1,71 +1,71 @@
1
- import { DescriptorRegistry, Descriptor, Tag } from "rnoh/ts"
2
- import { Vector2D } from "./Vector2D"
3
-
4
- export type BoundingBox = {
5
- x: number,
6
- y: number,
7
- width: number,
8
- height: number
9
- }
10
-
11
- export class View {
12
- constructor(private descriptorRegistry: DescriptorRegistry, private viewTag: number) {
13
- }
14
-
15
- public getChildren() {
16
- return this.getDescriptor().childrenTags.map(childrenTag => {
17
- return new View(this.descriptorRegistry, childrenTag)
18
- })
19
- }
20
-
21
- public getTag(): Tag {
22
- return this.viewTag
23
- }
24
-
25
- public isPositionInBounds({x, y}: {
26
- x: number,
27
- y: number
28
- }): boolean {
29
- const rect = this.getBoundingRect()
30
- return x >= rect.x && x <= (rect.x + rect.width) && y >= rect.y && y <= (rect.y + rect.height);
31
- }
32
-
33
- public getBoundingRect(): BoundingBox {
34
- const d = this.getDescriptor()
35
- if (!d) {
36
- return { x: 0, y: 0, width: 0, height: 0 }
37
- }
38
- const offsetToAbsolutePosition = this.getOffsetToAbsolutePosition()
39
- return {
40
- x: d.layoutMetrics.frame.origin.x - offsetToAbsolutePosition.x,
41
- y: d.layoutMetrics.frame.origin.y - offsetToAbsolutePosition.y,
42
- width: d.layoutMetrics.frame.size.width,
43
- height: d.layoutMetrics.frame.size.height
44
- }
45
- }
46
-
47
- private getDescriptor() {
48
- return this.descriptorRegistry.getDescriptor(this.viewTag)
49
- }
50
-
51
-
52
- private getOffsetToAbsolutePosition(): Vector2D {
53
- const currentOffset = new Vector2D()
54
- let parentTag = this.getDescriptor()?.parentTag
55
- while (parentTag !== undefined) {
56
- const d = this.descriptorRegistry.getDescriptor(parentTag)
57
- currentOffset.add(this.extractScrollOffsetFromDescriptor(d))
58
- currentOffset.subtract(new Vector2D(d.layoutMetrics.frame.origin))
59
- parentTag = d.parentTag
60
- }
61
- return currentOffset
62
- }
63
-
64
- private extractScrollOffsetFromDescriptor(descriptor: Descriptor<any>) {
65
- if (descriptor.type !== "ScrollView") {
66
- return new Vector2D();
67
- }
68
- const scrollViewState: any = descriptor.state;
69
- return new Vector2D({ x: scrollViewState.contentOffsetX, y: scrollViewState.contentOffsetY })
70
- }
1
+ import { DescriptorRegistry, Descriptor, Tag } from "@rnoh/react-native-openharmony/ts"
2
+ import { Vector2D } from "./Vector2D"
3
+
4
+ export type BoundingBox = {
5
+ x: number,
6
+ y: number,
7
+ width: number,
8
+ height: number
9
+ }
10
+
11
+ export class View {
12
+ constructor(private descriptorRegistry: DescriptorRegistry, private viewTag: number) {
13
+ }
14
+
15
+ public getChildren() {
16
+ return this.getDescriptor().childrenTags.map(childrenTag => {
17
+ return new View(this.descriptorRegistry, childrenTag)
18
+ })
19
+ }
20
+
21
+ public getTag(): Tag {
22
+ return this.viewTag
23
+ }
24
+
25
+ public isPositionInBounds({x, y}: {
26
+ x: number,
27
+ y: number
28
+ }): boolean {
29
+ const rect = this.getBoundingRect()
30
+ return x >= rect.x && x <= (rect.x + rect.width) && y >= rect.y && y <= (rect.y + rect.height);
31
+ }
32
+
33
+ public getBoundingRect(): BoundingBox {
34
+ const d = this.getDescriptor()
35
+ if (!d) {
36
+ return { x: 0, y: 0, width: 0, height: 0 }
37
+ }
38
+ const offsetToAbsolutePosition = this.getOffsetToAbsolutePosition()
39
+ return {
40
+ x: d.layoutMetrics.frame.origin.x - offsetToAbsolutePosition.x,
41
+ y: d.layoutMetrics.frame.origin.y - offsetToAbsolutePosition.y,
42
+ width: d.layoutMetrics.frame.size.width,
43
+ height: d.layoutMetrics.frame.size.height
44
+ }
45
+ }
46
+
47
+ private getDescriptor() {
48
+ return this.descriptorRegistry.getDescriptor(this.viewTag)
49
+ }
50
+
51
+
52
+ private getOffsetToAbsolutePosition(): Vector2D {
53
+ const currentOffset = new Vector2D()
54
+ let parentTag = this.getDescriptor()?.parentTag
55
+ while (parentTag !== undefined) {
56
+ const d = this.descriptorRegistry.getDescriptor(parentTag)
57
+ currentOffset.add(this.extractScrollOffsetFromDescriptor(d))
58
+ currentOffset.subtract(new Vector2D(d.layoutMetrics.frame.origin))
59
+ parentTag = d.parentTag
60
+ }
61
+ return currentOffset
62
+ }
63
+
64
+ private extractScrollOffsetFromDescriptor(descriptor: Descriptor<any>) {
65
+ if (descriptor.type !== "ScrollView") {
66
+ return new Vector2D();
67
+ }
68
+ const scrollViewState: any = descriptor.state;
69
+ return new Vector2D({ x: scrollViewState.contentOffsetX, y: scrollViewState.contentOffsetY })
70
+ }
71
71
  }
@@ -1,43 +1,43 @@
1
- import { DescriptorRegistry, ComponentManagerRegistry, Tag } from "rnoh/ts"
2
- import { View } from "./View"
3
-
4
- export class ViewRegistry {
5
- constructor(private descriptorRegistry: DescriptorRegistry, private componentManagerRegistry: ComponentManagerRegistry) {
6
- }
7
-
8
- public getViewByTag(viewTag: Tag) {
9
- return this.createView(viewTag)
10
- }
11
-
12
- private createView(tag: Tag): View {
13
- return new View(this.descriptorRegistry, tag)
14
- }
15
-
16
- public getTouchableViewsAt(pos: {
17
- x: number,
18
- y: number
19
- }, rootTag: Tag): View[] {
20
- const rootView = this.createView(rootTag)
21
- const results: View[] = []
22
- for (const view of this.getTouchableViewsAtPosInView(pos, rootView)) {
23
- results.push(view)
24
- }
25
- return results
26
- }
27
-
28
- private getTouchableViewsAtPosInView(pos: {
29
- x: number,
30
- y: number
31
- }, view: View) {
32
- if (!view.isPositionInBounds(pos))
33
- return [];
34
- const results: View[] = []
35
- results.push(view)
36
- for (const child of view.getChildren()) {
37
- for (const result of this.getTouchableViewsAtPosInView(pos, child)) {
38
- results.push(result)
39
- }
40
- }
41
- return results
42
- }
1
+ import { DescriptorRegistry, ComponentManagerRegistry, Tag } from "@rnoh/react-native-openharmony/ts"
2
+ import { View } from "./View"
3
+
4
+ export class ViewRegistry {
5
+ constructor(private descriptorRegistry: DescriptorRegistry, private componentManagerRegistry: ComponentManagerRegistry) {
6
+ }
7
+
8
+ public getViewByTag(viewTag: Tag) {
9
+ return this.createView(viewTag)
10
+ }
11
+
12
+ private createView(tag: Tag): View {
13
+ return new View(this.descriptorRegistry, tag)
14
+ }
15
+
16
+ public getTouchableViewsAt(pos: {
17
+ x: number,
18
+ y: number
19
+ }, rootTag: Tag): View[] {
20
+ const rootView = this.createView(rootTag)
21
+ const results: View[] = []
22
+ for (const view of this.getTouchableViewsAtPosInView(pos, rootView)) {
23
+ results.push(view)
24
+ }
25
+ return results
26
+ }
27
+
28
+ private getTouchableViewsAtPosInView(pos: {
29
+ x: number,
30
+ y: number
31
+ }, view: View) {
32
+ if (!view.isPositionInBounds(pos))
33
+ return [];
34
+ const results: View[] = []
35
+ results.push(view)
36
+ for (const child of view.getChildren()) {
37
+ for (const result of this.getTouchableViewsAtPosInView(pos, child)) {
38
+ results.push(result)
39
+ }
40
+ }
41
+ return results
42
+ }
43
43
  }
@@ -0,0 +1,140 @@
1
+ // This file was generated.
2
+ import {
3
+ Descriptor as ComponentDescriptor,
4
+ ViewBaseProps,
5
+ ViewRawProps,
6
+ ViewDescriptorWrapperBase,
7
+ ColorValue,
8
+ Color,
9
+ RNInstance,
10
+ Tag,
11
+ RNComponentCommandReceiver,
12
+ ViewPropsSelector,
13
+ } from '@rnoh/react-native-openharmony/ts';
14
+
15
+
16
+ export namespace RNGestureHandlerButton {
17
+ export const NAME = "RNGestureHandlerButton" as const
18
+
19
+ export interface DirectRawProps {
20
+ exclusive?: boolean;
21
+ foreground?: boolean;
22
+ borderless?: boolean;
23
+ enabled?: boolean;
24
+ rippleColor?: ColorValue;
25
+ rippleRadius?: number;
26
+ touchSoundDisabled?: boolean;
27
+ }
28
+
29
+ export interface Props extends ViewBaseProps {}
30
+
31
+ export interface State {}
32
+
33
+ export interface RawProps extends ViewRawProps, DirectRawProps {}
34
+
35
+ export class PropsSelector extends ViewPropsSelector<Props, RawProps> {
36
+ get exclusive() {
37
+ return this.rawProps.exclusive ?? true;
38
+ }
39
+
40
+ get foreground() {
41
+ return this.rawProps.foreground ?? false;
42
+ }
43
+
44
+ get borderless() {
45
+ return this.rawProps.borderless ?? false;
46
+ }
47
+
48
+ get enabled() {
49
+ return this.rawProps.enabled ?? true;
50
+ }
51
+
52
+ get rippleRadius() {
53
+ return this.rawProps.rippleRadius ?? 0;
54
+ }
55
+
56
+ get touchSoundDisabled() {
57
+ return this.rawProps.touchSoundDisabled ?? false;
58
+ }
59
+
60
+
61
+ get rippleColor() {
62
+ if (this.rawProps.rippleColor) {
63
+ return Color.fromColorValue(this.rawProps.rippleColor)
64
+ } else {
65
+ return new Color({ r: 0, g: 0, b: 0, a: 255})
66
+ }
67
+ }
68
+
69
+ }
70
+
71
+ export type Descriptor = ComponentDescriptor<
72
+ typeof NAME,
73
+ Props,
74
+ State,
75
+ RawProps
76
+ >;
77
+
78
+ export class DescriptorWrapper extends ViewDescriptorWrapperBase<
79
+ typeof NAME,
80
+ Props,
81
+ State,
82
+ RawProps,
83
+ PropsSelector
84
+ > {
85
+ protected createPropsSelector() {
86
+ return new PropsSelector(this.descriptor.props, this.descriptor.rawProps)
87
+ }
88
+ }
89
+
90
+ export interface EventPayloadByName {
91
+ }
92
+
93
+ export class EventEmitter {
94
+ constructor(private rnInstance: RNInstance, private tag: Tag) {}
95
+
96
+ emit<TEventName extends keyof EventPayloadByName>(eventName: TEventName, payload: EventPayloadByName[TEventName]) {
97
+ this.rnInstance.emitComponentEvent(this.tag, eventName, payload)
98
+ }
99
+ }
100
+
101
+ export interface CommandArgvByName {
102
+ }
103
+
104
+ export class CommandReceiver {
105
+ private listenersByCommandName = new Map<string, Set<(...args: any[]) => void>>()
106
+ private cleanUp: (() => void) | undefined = undefined
107
+
108
+ constructor(private componentCommandReceiver: RNComponentCommandReceiver, private tag: Tag) {
109
+ }
110
+
111
+ subscribe<TCommandName extends keyof CommandArgvByName>(commandName: TCommandName, listener: (argv: CommandArgvByName[TCommandName]) => void) {
112
+ if (!this.listenersByCommandName.has(commandName)) {
113
+ this.listenersByCommandName.set(commandName, new Set())
114
+ }
115
+ this.listenersByCommandName.get(commandName)!.add(listener)
116
+ const hasRegisteredCommandReceiver = !!this.cleanUp
117
+ if (!hasRegisteredCommandReceiver) {
118
+ this.cleanUp = this.componentCommandReceiver.registerCommandCallback(this.tag, (commandName: string, argv: any[]) => {
119
+ if (this.listenersByCommandName.has(commandName)) {
120
+ const listeners = this.listenersByCommandName.get(commandName)!
121
+ listeners.forEach(listener => {
122
+ listener(argv)
123
+ })
124
+ }
125
+ })
126
+ }
127
+
128
+ return () => {
129
+ this.listenersByCommandName.get(commandName)?.delete(listener)
130
+ if (this.listenersByCommandName.get(commandName)?.size ?? 0 === 0) {
131
+ this.listenersByCommandName.delete(commandName)
132
+ }
133
+ if (this.listenersByCommandName.size === 0) {
134
+ this.cleanUp?.()
135
+ }
136
+ }
137
+ }
138
+ }
139
+
140
+ }
@@ -0,0 +1,25 @@
1
+ // This file was generated.
2
+ import { Tag } from "../../ts"
3
+
4
+ export namespace RNGestureHandlerModule {
5
+ export const NAME = 'RNGestureHandlerModule' as const
6
+
7
+ export interface Spec {
8
+ handleSetJSResponder(tag: number, blockNativeResponder: boolean): void;
9
+
10
+ handleClearJSResponder(): void;
11
+
12
+ createGestureHandler(handlerName: string, handlerTag: number, config: Object): void;
13
+
14
+ attachGestureHandler(handlerTag: number, newView: number, actionType: number): void;
15
+
16
+ updateGestureHandler(handlerTag: number, newConfig: Object): void;
17
+
18
+ dropGestureHandler(handlerTag: number): void;
19
+
20
+ install(): boolean;
21
+
22
+ flushOperations(): void;
23
+
24
+ }
25
+ }