@shopify/flash-list 2.0.4-alpha.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/dist/AnimatedFlashList.js +4 -6
  2. package/dist/AnimatedFlashList.js.map +1 -1
  3. package/dist/FlashList.js +1 -5
  4. package/dist/FlashList.js.map +1 -1
  5. package/dist/FlashListProps.d.ts +41 -1
  6. package/dist/FlashListProps.d.ts.map +1 -1
  7. package/dist/FlashListProps.js +1 -4
  8. package/dist/FlashListProps.js.map +1 -1
  9. package/dist/FlashListRef.js +1 -2
  10. package/dist/benchmark/AutoScrollHelper.js +22 -30
  11. package/dist/benchmark/AutoScrollHelper.js.map +1 -1
  12. package/dist/benchmark/JSFPSMonitor.js +27 -33
  13. package/dist/benchmark/JSFPSMonitor.js.map +1 -1
  14. package/dist/benchmark/roundToDecimalPlaces.js +2 -5
  15. package/dist/benchmark/roundToDecimalPlaces.js.map +1 -1
  16. package/dist/benchmark/useBenchmark.d.ts +9 -1
  17. package/dist/benchmark/useBenchmark.d.ts.map +1 -1
  18. package/dist/benchmark/useBenchmark.js +86 -95
  19. package/dist/benchmark/useBenchmark.js.map +1 -1
  20. package/dist/benchmark/useDataMultiplier.js +6 -10
  21. package/dist/benchmark/useDataMultiplier.js.map +1 -1
  22. package/dist/benchmark/useFlatListBenchmark.d.ts +4 -1
  23. package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
  24. package/dist/benchmark/useFlatListBenchmark.js +73 -81
  25. package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
  26. package/dist/errors/ErrorMessages.js +1 -4
  27. package/dist/errors/ErrorMessages.js.map +1 -1
  28. package/dist/errors/WarningMessages.js +1 -4
  29. package/dist/errors/WarningMessages.js.map +1 -1
  30. package/dist/index.js +17 -35
  31. package/dist/index.js.map +1 -1
  32. package/dist/isNewArch.js +6 -9
  33. package/dist/isNewArch.js.map +1 -1
  34. package/dist/native/config/PlatformHelper.android.js +2 -5
  35. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  36. package/dist/native/config/PlatformHelper.ios.js +2 -5
  37. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  38. package/dist/native/config/PlatformHelper.js +2 -5
  39. package/dist/native/config/PlatformHelper.js.map +1 -1
  40. package/dist/native/config/PlatformHelper.web.js +2 -5
  41. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  42. package/dist/recyclerview/LayoutCommitObserver.js +20 -24
  43. package/dist/recyclerview/LayoutCommitObserver.js.map +1 -1
  44. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  45. package/dist/recyclerview/RecyclerView.js +134 -111
  46. package/dist/recyclerview/RecyclerView.js.map +1 -1
  47. package/dist/recyclerview/RecyclerViewContextProvider.js +7 -12
  48. package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -1
  49. package/dist/recyclerview/RecyclerViewManager.js +138 -167
  50. package/dist/recyclerview/RecyclerViewManager.js.map +1 -1
  51. package/dist/recyclerview/RecyclerViewProps.js +1 -2
  52. package/dist/recyclerview/RenderStackManager.js +97 -188
  53. package/dist/recyclerview/RenderStackManager.js.map +1 -1
  54. package/dist/recyclerview/ViewHolder.d.ts +2 -0
  55. package/dist/recyclerview/ViewHolder.d.ts.map +1 -1
  56. package/dist/recyclerview/ViewHolder.js +19 -21
  57. package/dist/recyclerview/ViewHolder.js.map +1 -1
  58. package/dist/recyclerview/ViewHolderCollection.d.ts +4 -0
  59. package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -1
  60. package/dist/recyclerview/ViewHolderCollection.js +26 -30
  61. package/dist/recyclerview/ViewHolderCollection.js.map +1 -1
  62. package/dist/recyclerview/components/CompatScroller.js +6 -7
  63. package/dist/recyclerview/components/CompatScroller.js.map +1 -1
  64. package/dist/recyclerview/components/CompatView.js +6 -7
  65. package/dist/recyclerview/components/CompatView.js.map +1 -1
  66. package/dist/recyclerview/components/ScrollAnchor.js +10 -15
  67. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  68. package/dist/recyclerview/components/StickyHeaders.d.ts +5 -1
  69. package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
  70. package/dist/recyclerview/components/StickyHeaders.js +77 -51
  71. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  72. package/dist/recyclerview/helpers/ConsecutiveNumbers.js +39 -66
  73. package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -1
  74. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +57 -63
  75. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
  76. package/dist/recyclerview/helpers/RenderTimeTracker.js +19 -24
  77. package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -1
  78. package/dist/recyclerview/helpers/VelocityTracker.js +16 -22
  79. package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -1
  80. package/dist/recyclerview/hooks/useBoundDetection.js +37 -40
  81. package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -1
  82. package/dist/recyclerview/hooks/useLayoutState.js +9 -15
  83. package/dist/recyclerview/hooks/useLayoutState.js.map +1 -1
  84. package/dist/recyclerview/hooks/useMappingHelper.js +6 -10
  85. package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -1
  86. package/dist/recyclerview/hooks/useOnLoad.js +16 -22
  87. package/dist/recyclerview/hooks/useOnLoad.js.map +1 -1
  88. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  89. package/dist/recyclerview/hooks/useRecyclerViewController.js +169 -188
  90. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  91. package/dist/recyclerview/hooks/useRecyclerViewManager.js +12 -17
  92. package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -1
  93. package/dist/recyclerview/hooks/useRecyclingState.js +10 -14
  94. package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -1
  95. package/dist/recyclerview/hooks/useSecondaryProps.d.ts +2 -0
  96. package/dist/recyclerview/hooks/useSecondaryProps.d.ts.map +1 -1
  97. package/dist/recyclerview/hooks/useSecondaryProps.js +39 -30
  98. package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -1
  99. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +17 -22
  100. package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -1
  101. package/dist/recyclerview/hooks/useUnmountFlag.js +5 -9
  102. package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -1
  103. package/dist/recyclerview/layout-managers/GridLayoutManager.js +61 -80
  104. package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -1
  105. package/dist/recyclerview/layout-managers/LayoutManager.js +83 -123
  106. package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -1
  107. package/dist/recyclerview/layout-managers/LinearLayoutManager.js +51 -91
  108. package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -1
  109. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +77 -96
  110. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
  111. package/dist/recyclerview/utils/adjustOffsetForRTL.js +1 -4
  112. package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -1
  113. package/dist/recyclerview/utils/componentUtils.js +4 -9
  114. package/dist/recyclerview/utils/componentUtils.js.map +1 -1
  115. package/dist/recyclerview/utils/findVisibleIndex.js +9 -13
  116. package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -1
  117. package/dist/recyclerview/utils/measureLayout.js +12 -20
  118. package/dist/recyclerview/utils/measureLayout.js.map +1 -1
  119. package/dist/recyclerview/utils/measureLayout.web.js +15 -23
  120. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -1
  121. package/dist/recyclerview/viewability/ViewToken.js +1 -2
  122. package/dist/recyclerview/viewability/ViewabilityHelper.js +34 -41
  123. package/dist/recyclerview/viewability/ViewabilityHelper.js.map +1 -1
  124. package/dist/recyclerview/viewability/ViewabilityManager.js +48 -61
  125. package/dist/recyclerview/viewability/ViewabilityManager.js.map +1 -1
  126. package/dist/tsconfig.tsbuildinfo +1 -1
  127. package/dist/utils/AverageWindow.js +28 -39
  128. package/dist/utils/AverageWindow.js.map +1 -1
  129. package/package.json +4 -6
  130. package/src/FlashListProps.ts +51 -1
  131. package/src/benchmark/useBenchmark.ts +47 -4
  132. package/src/benchmark/useFlatListBenchmark.ts +38 -5
  133. package/src/recyclerview/RecyclerView.tsx +42 -8
  134. package/src/recyclerview/ViewHolder.tsx +6 -1
  135. package/src/recyclerview/ViewHolderCollection.tsx +10 -0
  136. package/src/recyclerview/components/StickyHeaders.tsx +54 -13
  137. package/src/recyclerview/hooks/useRecyclerViewController.tsx +7 -4
  138. package/src/recyclerview/hooks/useSecondaryProps.tsx +23 -0
  139. package/dist/__tests__/AverageWindow.test.d.ts +0 -2
  140. package/dist/__tests__/AverageWindow.test.d.ts.map +0 -1
  141. package/dist/__tests__/AverageWindow.test.js +0 -104
  142. package/dist/__tests__/AverageWindow.test.js.map +0 -1
  143. package/dist/__tests__/ConsecutiveNumbers.test.d.ts +0 -2
  144. package/dist/__tests__/ConsecutiveNumbers.test.d.ts.map +0 -1
  145. package/dist/__tests__/ConsecutiveNumbers.test.js +0 -224
  146. package/dist/__tests__/ConsecutiveNumbers.test.js.map +0 -1
  147. package/dist/__tests__/GridLayoutManager.test.d.ts +0 -2
  148. package/dist/__tests__/GridLayoutManager.test.d.ts.map +0 -1
  149. package/dist/__tests__/GridLayoutManager.test.js +0 -69
  150. package/dist/__tests__/GridLayoutManager.test.js.map +0 -1
  151. package/dist/__tests__/LayoutCommitObserver.test.d.ts +0 -2
  152. package/dist/__tests__/LayoutCommitObserver.test.d.ts.map +0 -1
  153. package/dist/__tests__/LayoutCommitObserver.test.js +0 -37
  154. package/dist/__tests__/LayoutCommitObserver.test.js.map +0 -1
  155. package/dist/__tests__/LinearLayoutManager.test.d.ts +0 -2
  156. package/dist/__tests__/LinearLayoutManager.test.d.ts.map +0 -1
  157. package/dist/__tests__/LinearLayoutManager.test.js +0 -140
  158. package/dist/__tests__/LinearLayoutManager.test.js.map +0 -1
  159. package/dist/__tests__/MasonryLayoutManager.test.d.ts +0 -2
  160. package/dist/__tests__/MasonryLayoutManager.test.d.ts.map +0 -1
  161. package/dist/__tests__/MasonryLayoutManager.test.js +0 -148
  162. package/dist/__tests__/MasonryLayoutManager.test.js.map +0 -1
  163. package/dist/__tests__/RecyclerView.test.d.ts +0 -2
  164. package/dist/__tests__/RecyclerView.test.d.ts.map +0 -1
  165. package/dist/__tests__/RecyclerView.test.js +0 -103
  166. package/dist/__tests__/RecyclerView.test.js.map +0 -1
  167. package/dist/__tests__/RecyclerViewManager.test.d.ts +0 -2
  168. package/dist/__tests__/RecyclerViewManager.test.d.ts.map +0 -1
  169. package/dist/__tests__/RecyclerViewManager.test.js +0 -56
  170. package/dist/__tests__/RecyclerViewManager.test.js.map +0 -1
  171. package/dist/__tests__/RenderStackManager.test.d.ts +0 -2
  172. package/dist/__tests__/RenderStackManager.test.d.ts.map +0 -1
  173. package/dist/__tests__/RenderStackManager.test.js +0 -485
  174. package/dist/__tests__/RenderStackManager.test.js.map +0 -1
  175. package/dist/__tests__/ViewabilityHelper.test.d.ts +0 -2
  176. package/dist/__tests__/ViewabilityHelper.test.d.ts.map +0 -1
  177. package/dist/__tests__/ViewabilityHelper.test.js +0 -186
  178. package/dist/__tests__/ViewabilityHelper.test.js.map +0 -1
  179. package/dist/__tests__/findVisibleIndex.test.d.ts +0 -2
  180. package/dist/__tests__/findVisibleIndex.test.d.ts.map +0 -1
  181. package/dist/__tests__/findVisibleIndex.test.js +0 -259
  182. package/dist/__tests__/findVisibleIndex.test.js.map +0 -1
  183. package/dist/__tests__/helpers/createLayoutManager.d.ts +0 -34
  184. package/dist/__tests__/helpers/createLayoutManager.d.ts.map +0 -1
  185. package/dist/__tests__/helpers/createLayoutManager.js +0 -110
  186. package/dist/__tests__/helpers/createLayoutManager.js.map +0 -1
  187. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts +0 -2
  188. package/dist/__tests__/useUnmountAwareCallbacks.test.d.ts.map +0 -1
  189. package/dist/__tests__/useUnmountAwareCallbacks.test.js +0 -185
  190. package/dist/__tests__/useUnmountAwareCallbacks.test.js.map +0 -1
  191. package/src/__tests__/AverageWindow.test.ts +0 -128
  192. package/src/__tests__/ConsecutiveNumbers.test.ts +0 -232
  193. package/src/__tests__/GridLayoutManager.test.ts +0 -113
  194. package/src/__tests__/LayoutCommitObserver.test.tsx +0 -63
  195. package/src/__tests__/LinearLayoutManager.test.ts +0 -227
  196. package/src/__tests__/MasonryLayoutManager.test.ts +0 -202
  197. package/src/__tests__/RecyclerView.test.tsx +0 -144
  198. package/src/__tests__/RecyclerViewManager.test.ts +0 -74
  199. package/src/__tests__/RenderStackManager.test.ts +0 -574
  200. package/src/__tests__/ViewabilityHelper.test.ts +0 -282
  201. package/src/__tests__/findVisibleIndex.test.ts +0 -369
  202. package/src/__tests__/helpers/createLayoutManager.ts +0 -141
  203. package/src/__tests__/useUnmountAwareCallbacks.test.tsx +0 -285
@@ -1,122 +1,95 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConsecutiveNumbers = void 0;
4
- var tslib_1 = require("tslib");
5
1
  /**
6
2
  * A simple wrapper for consecutive postive integer arrays
7
3
  * Only stores start and end indices for faster computation as numbers are consecutive.
8
4
  */
9
- var ConsecutiveNumbers = /** @class */ (function () {
10
- function ConsecutiveNumbers(startIndex, endIndex) {
5
+ export class ConsecutiveNumbers {
6
+ constructor(startIndex, endIndex) {
11
7
  this.startIndex = startIndex;
12
8
  this.endIndex = endIndex;
13
9
  }
14
- Object.defineProperty(ConsecutiveNumbers.prototype, "length", {
15
- /**
16
- * Get the length of the array
17
- */
18
- get: function () {
19
- return Math.max(0, this.endIndex - this.startIndex + 1);
20
- },
21
- enumerable: false,
22
- configurable: true
23
- });
10
+ /**
11
+ * Get the length of the array
12
+ */
13
+ get length() {
14
+ return Math.max(0, this.endIndex - this.startIndex + 1);
15
+ }
24
16
  /**
25
17
  * Get element at specified index
26
18
  */
27
- ConsecutiveNumbers.prototype.at = function (index) {
19
+ at(index) {
28
20
  return this.startIndex + index;
29
- };
21
+ }
30
22
  /**
31
23
  * Check if two consecutive numbers are equal
32
24
  */
33
- ConsecutiveNumbers.prototype.equals = function (other) {
25
+ equals(other) {
34
26
  return (this.startIndex === other.startIndex && this.endIndex === other.endIndex);
35
- };
27
+ }
36
28
  /**
37
29
  * Converts the consecutive range to an actual array
38
30
  * @returns An array containing all consecutive numbers
39
31
  */
40
- ConsecutiveNumbers.prototype.toArray = function () {
32
+ toArray() {
41
33
  if (this.length === 0) {
42
34
  return [];
43
35
  }
44
- var array = new Array(this.length);
45
- for (var i = 0; i < this.length; i++) {
36
+ const array = new Array(this.length);
37
+ for (let i = 0; i < this.length; i++) {
46
38
  array[i] = this.startIndex + i;
47
39
  }
48
40
  return array;
49
- };
41
+ }
50
42
  /**
51
43
  * Check if array includes a value
52
44
  */
53
- ConsecutiveNumbers.prototype.includes = function (value) {
45
+ includes(value) {
54
46
  return value >= this.startIndex && value <= this.endIndex;
55
- };
47
+ }
56
48
  /**
57
49
  * Get index of a value in the consecutive range
58
50
  */
59
- ConsecutiveNumbers.prototype.indexOf = function (value) {
51
+ indexOf(value) {
60
52
  return this.includes(value) ? value - this.startIndex : -1;
61
- };
62
- ConsecutiveNumbers.prototype.findValue = function (predicate) {
63
- for (var i = 0; i < this.length; i++) {
64
- var value = this.startIndex + i;
53
+ }
54
+ findValue(predicate) {
55
+ for (let i = 0; i < this.length; i++) {
56
+ const value = this.startIndex + i;
65
57
  if (predicate(value, i, this)) {
66
58
  return value;
67
59
  }
68
60
  }
69
61
  return undefined;
70
- };
62
+ }
71
63
  /**
72
64
  * Tests whether all elements in the consecutive range pass the provided test function
73
65
  * @param predicate A function that tests each element
74
66
  * @returns true if all elements pass the test; otherwise, false
75
67
  */
76
- ConsecutiveNumbers.prototype.every = function (predicate) {
77
- for (var i = 0; i < this.length; i++) {
78
- var value = this.startIndex + i;
68
+ every(predicate) {
69
+ for (let i = 0; i < this.length; i++) {
70
+ const value = this.startIndex + i;
79
71
  if (!predicate(value, i, this)) {
80
72
  return false;
81
73
  }
82
74
  }
83
75
  return true;
84
- };
76
+ }
85
77
  /**
86
78
  * Get a slice of the consecutive array
87
79
  */
88
- ConsecutiveNumbers.prototype.slice = function (start, end) {
89
- if (start === void 0) { start = 0; }
90
- if (end === void 0) { end = this.length; }
91
- var newStart = this.startIndex + start;
92
- var newEnd = this.startIndex + Math.min(end, this.length) - 1;
80
+ slice(start = 0, end = this.length) {
81
+ const newStart = this.startIndex + start;
82
+ const newEnd = this.startIndex + Math.min(end, this.length) - 1;
93
83
  return new ConsecutiveNumbers(newStart, Math.max(newStart - 1, newEnd));
94
- };
84
+ }
95
85
  /**
96
86
  * Implement iterator to enable for...of
97
87
  */
98
- ConsecutiveNumbers.prototype[Symbol.iterator] = function () {
99
- var i;
100
- return tslib_1.__generator(this, function (_a) {
101
- switch (_a.label) {
102
- case 0:
103
- i = this.startIndex;
104
- _a.label = 1;
105
- case 1:
106
- if (!(i <= this.endIndex)) return [3 /*break*/, 4];
107
- return [4 /*yield*/, i];
108
- case 2:
109
- _a.sent();
110
- _a.label = 3;
111
- case 3:
112
- i++;
113
- return [3 /*break*/, 1];
114
- case 4: return [2 /*return*/];
115
- }
116
- });
117
- };
118
- ConsecutiveNumbers.EMPTY = new ConsecutiveNumbers(-1, -2);
119
- return ConsecutiveNumbers;
120
- }());
121
- exports.ConsecutiveNumbers = ConsecutiveNumbers;
88
+ *[Symbol.iterator]() {
89
+ for (let i = this.startIndex; i <= this.endIndex; i++) {
90
+ yield i;
91
+ }
92
+ }
93
+ }
94
+ ConsecutiveNumbers.EMPTY = new ConsecutiveNumbers(-1, -2);
122
95
  //# sourceMappingURL=ConsecutiveNumbers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConsecutiveNumbers.js","sourceRoot":"","sources":["../../../src/recyclerview/helpers/ConsecutiveNumbers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConsecutiveNumbers.js","sourceRoot":"","sources":["../../../src/recyclerview/helpers/ConsecutiveNumbers.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RVEngagedIndicesTrackerImpl = void 0;
4
- var tslib_1 = require("tslib");
5
- var PlatformHelper_1 = require("../../native/config/PlatformHelper");
6
- var ConsecutiveNumbers_1 = require("./ConsecutiveNumbers");
7
- var RVEngagedIndicesTrackerImpl = /** @class */ (function () {
8
- function RVEngagedIndicesTrackerImpl() {
1
+ import { PlatformConfig } from "../../native/config/PlatformHelper";
2
+ import { ConsecutiveNumbers } from "./ConsecutiveNumbers";
3
+ export class RVEngagedIndicesTrackerImpl {
4
+ constructor() {
9
5
  // Current scroll position of the list
10
6
  this.scrollOffset = 0;
11
7
  // Distance to pre-render items before and after the visible viewport (in pixels)
12
- this.drawDistance = PlatformHelper_1.PlatformConfig.defaultDrawDistance;
8
+ this.drawDistance = PlatformConfig.defaultDrawDistance;
13
9
  // Whether to use offset projection to predict the next scroll offset
14
10
  this.enableOffsetProjection = true;
15
11
  // Average render time of the list
@@ -17,7 +13,7 @@ var RVEngagedIndicesTrackerImpl = /** @class */ (function () {
17
13
  // Internal override to disable offset projection
18
14
  this.forceDisableOffsetProjection = false;
19
15
  // Currently rendered item indices (including buffer items)
20
- this.engagedIndices = ConsecutiveNumbers_1.ConsecutiveNumbers.EMPTY;
16
+ this.engagedIndices = ConsecutiveNumbers.EMPTY;
21
17
  // Buffer distribution multipliers for scroll direction optimization
22
18
  this.smallMultiplier = 0.3; // Used for buffer in the opposite direction of scroll
23
19
  this.largeMultiplier = 0.7; // Used for buffer in the direction of scroll
@@ -33,59 +29,59 @@ var RVEngagedIndicesTrackerImpl = /** @class */ (function () {
33
29
  * 3. Adjusts buffer sizes at list boundaries
34
30
  * 4. Returns new indices that need to be rendered
35
31
  */
36
- RVEngagedIndicesTrackerImpl.prototype.updateScrollOffset = function (offset, velocity, layoutManager) {
32
+ updateScrollOffset(offset, velocity, layoutManager) {
37
33
  // Update current scroll position
38
34
  this.scrollOffset = offset;
39
35
  // STEP 1: Determine the currently visible viewport
40
- var windowSize = layoutManager.getWindowsSize();
41
- var isHorizontal = layoutManager.isHorizontal();
36
+ const windowSize = layoutManager.getWindowsSize();
37
+ const isHorizontal = layoutManager.isHorizontal();
42
38
  // Update velocity history
43
39
  if (velocity) {
44
40
  this.updateVelocityHistory(isHorizontal ? velocity.x : velocity.y);
45
41
  }
46
42
  // Determine scroll direction to optimize buffer distribution
47
- var isScrollingBackward = this.isScrollingBackward();
48
- var viewportStart = this.enableOffsetProjection && !this.forceDisableOffsetProjection
43
+ const isScrollingBackward = this.isScrollingBackward();
44
+ const viewportStart = this.enableOffsetProjection && !this.forceDisableOffsetProjection
49
45
  ? this.getProjectedScrollOffset(offset, this.averageRenderTime)
50
46
  : offset;
51
47
  // console.log("timeMs", this.averageRenderTime, offset, viewportStart);
52
- var viewportSize = isHorizontal ? windowSize.width : windowSize.height;
53
- var viewportEnd = viewportStart + viewportSize;
48
+ const viewportSize = isHorizontal ? windowSize.width : windowSize.height;
49
+ const viewportEnd = viewportStart + viewportSize;
54
50
  // STEP 2: Determine buffer size and distribution
55
51
  // The total extra space where items will be pre-rendered
56
- var totalBuffer = this.drawDistance * 2;
52
+ const totalBuffer = this.drawDistance * 2;
57
53
  // Distribute more buffer in the direction of scrolling
58
54
  // When scrolling forward: more buffer after viewport
59
55
  // When scrolling backward: more buffer before viewport
60
- var beforeRatio = isScrollingBackward
56
+ const beforeRatio = isScrollingBackward
61
57
  ? this.largeMultiplier
62
58
  : this.smallMultiplier;
63
- var afterRatio = isScrollingBackward
59
+ const afterRatio = isScrollingBackward
64
60
  ? this.smallMultiplier
65
61
  : this.largeMultiplier;
66
- var bufferBefore = Math.ceil(totalBuffer * beforeRatio);
67
- var bufferAfter = Math.ceil(totalBuffer * afterRatio);
62
+ const bufferBefore = Math.ceil(totalBuffer * beforeRatio);
63
+ const bufferAfter = Math.ceil(totalBuffer * afterRatio);
68
64
  // STEP 3: Calculate the extended viewport (visible area + buffers)
69
65
  // The start position with buffer (never less than 0)
70
- var extendedStart = Math.max(0, viewportStart - bufferBefore);
66
+ let extendedStart = Math.max(0, viewportStart - bufferBefore);
71
67
  // If we couldn't apply full buffer at start, calculate how much was unused
72
- var unusedStartBuffer = Math.max(0, bufferBefore - viewportStart);
68
+ const unusedStartBuffer = Math.max(0, bufferBefore - viewportStart);
73
69
  // Add any unused start buffer to the end buffer
74
- var extendedEnd = viewportEnd + bufferAfter + unusedStartBuffer;
70
+ let extendedEnd = viewportEnd + bufferAfter + unusedStartBuffer;
75
71
  // STEP 4: Handle end boundary adjustments
76
72
  // Get the total content size to check for end boundary
77
- var layoutSize = layoutManager.getLayoutSize();
78
- var maxPosition = isHorizontal ? layoutSize.width : layoutSize.height;
73
+ const layoutSize = layoutManager.getLayoutSize();
74
+ const maxPosition = isHorizontal ? layoutSize.width : layoutSize.height;
79
75
  // If we hit the end boundary, redistribute unused buffer to the start
80
76
  if (extendedEnd > maxPosition) {
81
77
  // Calculate unused end buffer and apply it to the start if possible
82
- var unusedEndBuffer = extendedEnd - maxPosition;
78
+ const unusedEndBuffer = extendedEnd - maxPosition;
83
79
  extendedEnd = maxPosition;
84
80
  // Try to extend start position further with the unused end buffer
85
81
  extendedStart = Math.max(0, extendedStart - unusedEndBuffer);
86
82
  }
87
83
  // STEP 5: Get and return the new engaged indices
88
- var newEngagedIndices = layoutManager.getVisibleLayouts(extendedStart, extendedEnd);
84
+ const newEngagedIndices = layoutManager.getVisibleLayouts(extendedStart, extendedEnd);
89
85
  // console.log(
90
86
  // "newEngagedIndices",
91
87
  // newEngagedIndices,
@@ -93,31 +89,31 @@ var RVEngagedIndicesTrackerImpl = /** @class */ (function () {
93
89
  // viewportStart
94
90
  // );
95
91
  // Only return new indices if they've changed
96
- var oldEngagedIndices = this.engagedIndices;
92
+ const oldEngagedIndices = this.engagedIndices;
97
93
  this.engagedIndices = newEngagedIndices;
98
94
  return newEngagedIndices.equals(oldEngagedIndices)
99
95
  ? undefined
100
96
  : newEngagedIndices;
101
- };
97
+ }
102
98
  /**
103
99
  * Updates the velocity history with a new velocity value.
104
100
  * @param velocity - Current scroll velocity component (x or y)
105
101
  */
106
- RVEngagedIndicesTrackerImpl.prototype.updateVelocityHistory = function (velocity) {
102
+ updateVelocityHistory(velocity) {
107
103
  this.velocityHistory[this.velocityIndex] = velocity;
108
104
  this.velocityIndex = (this.velocityIndex + 1) % this.velocityHistory.length;
109
- };
105
+ }
110
106
  /**
111
107
  * Determines scroll direction by analyzing recent velocity history.
112
108
  * Uses a majority voting system on the last 5 velocity values.
113
109
  * @returns true if scrolling backward (negative direction), false otherwise
114
110
  */
115
- RVEngagedIndicesTrackerImpl.prototype.isScrollingBackward = function () {
111
+ isScrollingBackward() {
116
112
  // should decide based on whether we have more positive or negative values, use for loop
117
- var positiveCount = 0;
118
- var negativeCount = 0;
113
+ let positiveCount = 0;
114
+ let negativeCount = 0;
119
115
  // eslint-disable-next-line @typescript-eslint/prefer-for-of
120
- for (var i = 0; i < this.velocityHistory.length; i++) {
116
+ for (let i = 0; i < this.velocityHistory.length; i++) {
121
117
  if (this.velocityHistory[i] > 0) {
122
118
  positiveCount++;
123
119
  }
@@ -126,61 +122,61 @@ var RVEngagedIndicesTrackerImpl = /** @class */ (function () {
126
122
  }
127
123
  }
128
124
  return positiveCount < negativeCount;
129
- };
125
+ }
130
126
  /**
131
127
  * Calculates the median velocity based on velocity history
132
128
  * Medina works better agains outliers
133
129
  * @returns Median velocity over the recent history
134
130
  */
135
- RVEngagedIndicesTrackerImpl.prototype.getMedianVelocity = function () {
131
+ getMedianVelocity() {
136
132
  // Make a copy of velocity history and sort it
137
- var sortedVelocities = tslib_1.__spreadArray([], tslib_1.__read(this.velocityHistory), false).sort(function (valueA, valueB) { return valueA - valueB; });
138
- var length = sortedVelocities.length;
133
+ const sortedVelocities = [...this.velocityHistory].sort((valueA, valueB) => valueA - valueB);
134
+ const length = sortedVelocities.length;
139
135
  // If length is odd, return the middle element
140
136
  if (length % 2 === 1) {
141
137
  return sortedVelocities[Math.floor(length / 2)];
142
138
  }
143
139
  // If length is even, return the average of the two middle elements
144
- var midIndex = length / 2;
140
+ const midIndex = length / 2;
145
141
  return (sortedVelocities[midIndex - 1] + sortedVelocities[midIndex]) / 2;
146
- };
142
+ }
147
143
  /**
148
144
  * Projects the next scroll offset based on median velocity
149
145
  * @param timeMs Time in milliseconds to predict ahead
150
146
  * @returns Projected scroll offset
151
147
  */
152
- RVEngagedIndicesTrackerImpl.prototype.getProjectedScrollOffset = function (offset, timeMs) {
153
- var medianVelocity = this.getMedianVelocity();
148
+ getProjectedScrollOffset(offset, timeMs) {
149
+ const medianVelocity = this.getMedianVelocity();
154
150
  // Convert time from ms to seconds for velocity calculation
155
151
  // Predict next position: current position + (velocity * time)
156
152
  return offset + medianVelocity * timeMs;
157
- };
153
+ }
158
154
  /**
159
155
  * Calculates which items are currently visible in the viewport.
160
156
  * Unlike getEngagedIndices, this doesn't include buffer items.
161
157
  * @param layoutManager - Layout manager to fetch item positions
162
158
  * @returns Indices of items currently visible in the viewport
163
159
  */
164
- RVEngagedIndicesTrackerImpl.prototype.computeVisibleIndices = function (layoutManager) {
165
- var windowSize = layoutManager.getWindowsSize();
166
- var isHorizontal = layoutManager.isHorizontal();
160
+ computeVisibleIndices(layoutManager) {
161
+ const windowSize = layoutManager.getWindowsSize();
162
+ const isHorizontal = layoutManager.isHorizontal();
167
163
  // Calculate viewport boundaries
168
- var viewportStart = this.scrollOffset;
169
- var viewportSize = isHorizontal ? windowSize.width : windowSize.height;
170
- var viewportEnd = viewportStart + viewportSize;
164
+ const viewportStart = this.scrollOffset;
165
+ const viewportSize = isHorizontal ? windowSize.width : windowSize.height;
166
+ const viewportEnd = viewportStart + viewportSize;
171
167
  // Get indices of items currently visible in the viewport
172
- var newVisibleIndices = layoutManager.getVisibleLayouts(viewportStart, viewportEnd);
168
+ const newVisibleIndices = layoutManager.getVisibleLayouts(viewportStart, viewportEnd);
173
169
  return newVisibleIndices;
174
- };
170
+ }
175
171
  /**
176
172
  * Returns the currently engaged (rendered) indices.
177
173
  * This includes both visible items and buffer items.
178
174
  * @returns The last computed set of engaged indices
179
175
  */
180
- RVEngagedIndicesTrackerImpl.prototype.getEngagedIndices = function () {
176
+ getEngagedIndices() {
181
177
  return this.engagedIndices;
182
- };
183
- RVEngagedIndicesTrackerImpl.prototype.setScrollDirection = function (scrollDirection) {
178
+ }
179
+ setScrollDirection(scrollDirection) {
184
180
  if (scrollDirection === "forward") {
185
181
  this.velocityHistory = [0, 0, 0, 0.1, 0.1];
186
182
  this.velocityIndex = 0;
@@ -189,20 +185,18 @@ var RVEngagedIndicesTrackerImpl = /** @class */ (function () {
189
185
  this.velocityHistory = [0, 0, 0, -0.1, -0.1];
190
186
  this.velocityIndex = 0;
191
187
  }
192
- };
188
+ }
193
189
  /**
194
190
  * Resets the velocity history based on the current scroll direction.
195
191
  * This ensures that the velocity history is always in sync with the current scroll direction.
196
192
  */
197
- RVEngagedIndicesTrackerImpl.prototype.resetVelocityHistory = function () {
193
+ resetVelocityHistory() {
198
194
  if (this.isScrollingBackward()) {
199
195
  this.setScrollDirection("backward");
200
196
  }
201
197
  else {
202
198
  this.setScrollDirection("forward");
203
199
  }
204
- };
205
- return RVEngagedIndicesTrackerImpl;
206
- }());
207
- exports.RVEngagedIndicesTrackerImpl = RVEngagedIndicesTrackerImpl;
200
+ }
201
+ }
208
202
  //# sourceMappingURL=EngagedIndicesTracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EngagedIndicesTracker.js","sourceRoot":"","sources":["../../../src/recyclerview/helpers/EngagedIndicesTracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EngagedIndicesTracker.js","sourceRoot":"","sources":["../../../src/recyclerview/helpers/EngagedIndicesTracker.ts"],"names":[],"mappings":"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"}
@@ -1,49 +1,44 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RenderTimeTracker = void 0;
4
- var PlatformHelper_1 = require("../../native/config/PlatformHelper");
5
- var AverageWindow_1 = require("../../utils/AverageWindow");
6
- var RenderTimeTracker = /** @class */ (function () {
7
- function RenderTimeTracker() {
8
- this.renderTimeAvgWindow = new AverageWindow_1.AverageWindow(5);
1
+ import { PlatformConfig } from "../../native/config/PlatformHelper";
2
+ import { AverageWindow } from "../../utils/AverageWindow";
3
+ export class RenderTimeTracker {
4
+ constructor() {
5
+ this.renderTimeAvgWindow = new AverageWindow(5);
9
6
  this.lastTimerStartedAt = -1;
10
7
  this.maxRenderTime = 32; // TODO: Improve this even more
11
8
  this.defaultRenderTime = 16;
12
9
  this.rendersWithoutCommit = 0;
13
10
  this.maxRendersWithoutCommit = 40;
14
11
  }
15
- RenderTimeTracker.prototype.startTracking = function () {
12
+ startTracking() {
16
13
  this.rendersWithoutCommit++;
17
- if (!PlatformHelper_1.PlatformConfig.trackAverageRenderTimeForOffsetProjection) {
14
+ if (!PlatformConfig.trackAverageRenderTimeForOffsetProjection) {
18
15
  return;
19
16
  }
20
17
  if (this.lastTimerStartedAt === -1) {
21
18
  this.lastTimerStartedAt = Date.now();
22
19
  }
23
- };
24
- RenderTimeTracker.prototype.markRenderComplete = function () {
20
+ }
21
+ markRenderComplete() {
25
22
  this.rendersWithoutCommit = 0;
26
- if (!PlatformHelper_1.PlatformConfig.trackAverageRenderTimeForOffsetProjection) {
23
+ if (!PlatformConfig.trackAverageRenderTimeForOffsetProjection) {
27
24
  return;
28
25
  }
29
26
  if (this.lastTimerStartedAt !== -1) {
30
27
  this.renderTimeAvgWindow.addValue(Date.now() - this.lastTimerStartedAt);
31
28
  this.lastTimerStartedAt = -1;
32
29
  }
33
- };
34
- RenderTimeTracker.prototype.hasExceededMaxRendersWithoutCommit = function () {
30
+ }
31
+ hasExceededMaxRendersWithoutCommit() {
35
32
  return this.rendersWithoutCommit >= this.maxRendersWithoutCommit;
36
- };
37
- RenderTimeTracker.prototype.getRawValue = function () {
33
+ }
34
+ getRawValue() {
38
35
  return this.renderTimeAvgWindow.currentValue;
39
- };
40
- RenderTimeTracker.prototype.getAverageRenderTime = function () {
41
- if (!PlatformHelper_1.PlatformConfig.trackAverageRenderTimeForOffsetProjection) {
36
+ }
37
+ getAverageRenderTime() {
38
+ if (!PlatformConfig.trackAverageRenderTimeForOffsetProjection) {
42
39
  return this.defaultRenderTime;
43
40
  }
44
41
  return Math.min(this.maxRenderTime, Math.max(Math.round(this.renderTimeAvgWindow.currentValue), 16));
45
- };
46
- return RenderTimeTracker;
47
- }());
48
- exports.RenderTimeTracker = RenderTimeTracker;
42
+ }
43
+ }
49
44
  //# sourceMappingURL=RenderTimeTracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderTimeTracker.js","sourceRoot":"","sources":["../../../src/recyclerview/helpers/RenderTimeTracker.ts"],"names":[],"mappings":";;;AAAA,qEAAoE;AACpE,2DAA0D;AAE1D;IAAA;QACU,wBAAmB,GAAG,IAAI,6BAAa,CAAC,CAAC,CAAC,CAAC;QAC3C,uBAAkB,GAAG,CAAC,CAAC,CAAC;QACxB,kBAAa,GAAG,EAAE,CAAC,CAAC,+BAA+B;QACnD,sBAAiB,GAAG,EAAE,CAAC;QACvB,yBAAoB,GAAG,CAAC,CAAC;QACzB,4BAAuB,GAAG,EAAE,CAAC;IAwCvC,CAAC;IAtCC,yCAAa,GAAb;QACE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,+BAAc,CAAC,yCAAyC,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED,8CAAkB,GAAlB;QACE,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,+BAAc,CAAC,yCAAyC,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACxE,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,8DAAkC,GAAlC;QACE,OAAO,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,uBAAuB,CAAC;IACnE,CAAC;IAED,uCAAW,GAAX;QACE,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC;IAC/C,CAAC;IAED,gDAAoB,GAApB;QACE,IAAI,CAAC,+BAAc,CAAC,yCAAyC,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CACb,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAChE,CAAC;IACJ,CAAC;IACH,wBAAC;AAAD,CAAC,AA9CD,IA8CC;AA9CY,8CAAiB"}
1
+ {"version":3,"file":"RenderTimeTracker.js","sourceRoot":"","sources":["../../../src/recyclerview/helpers/RenderTimeTracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,OAAO,iBAAiB;IAA9B;QACU,wBAAmB,GAAG,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3C,uBAAkB,GAAG,CAAC,CAAC,CAAC;QACxB,kBAAa,GAAG,EAAE,CAAC,CAAC,+BAA+B;QACnD,sBAAiB,GAAG,EAAE,CAAC;QACvB,yBAAoB,GAAG,CAAC,CAAC;QACzB,4BAAuB,GAAG,EAAE,CAAC;IAwCvC,CAAC;IAtCC,aAAa;QACX,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,yCAAyC,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,yCAAyC,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACxE,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,kCAAkC;QAChC,OAAO,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,uBAAuB,CAAC;IACnE,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC;IAC/C,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,cAAc,CAAC,yCAAyC,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CACb,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAChE,CAAC;IACJ,CAAC;CACF"}
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VelocityTracker = void 0;
4
1
  /**
5
2
  * Tracks and calculates velocity for scroll/drag movements
6
3
  * Used to determine momentum scrolling behavior
7
4
  */
8
- var VelocityTracker = /** @class */ (function () {
9
- function VelocityTracker() {
5
+ export class VelocityTracker {
6
+ constructor() {
10
7
  /** Timestamp of the last velocity update */
11
8
  this.lastUpdateTime = Date.now();
12
9
  /** Current velocity vector with x and y components */
@@ -22,15 +19,14 @@ var VelocityTracker = /** @class */ (function () {
22
19
  * @param isRTL Whether layout direction is right-to-left
23
20
  * @param callback Function to call with velocity updates and momentum end signal
24
21
  */
25
- VelocityTracker.prototype.computeVelocity = function (newOffset, oldOffset, isHorizontal, callback) {
26
- var _this = this;
22
+ computeVelocity(newOffset, oldOffset, isHorizontal, callback) {
27
23
  // Clear any pending momentum end timeout
28
24
  this.cleanUp();
29
25
  // Calculate time since last update
30
- var currentTime = Date.now();
31
- var timeSinceLastUpdate = Math.max(1, currentTime - this.lastUpdateTime);
26
+ const currentTime = Date.now();
27
+ const timeSinceLastUpdate = Math.max(1, currentTime - this.lastUpdateTime);
32
28
  // Calculate velocity as distance/time
33
- var newVelocity = (newOffset - oldOffset) / timeSinceLastUpdate;
29
+ const newVelocity = (newOffset - oldOffset) / timeSinceLastUpdate;
34
30
  // console.log(
35
31
  // "newVelocity",
36
32
  // newOffset,
@@ -47,24 +43,22 @@ var VelocityTracker = /** @class */ (function () {
47
43
  // Trigger callback with current velocity
48
44
  callback(this.velocity, false);
49
45
  // Set timeout to signal momentum end after 100ms of no updates
50
- this.timeoutId = setTimeout(function () {
51
- _this.cleanUp();
52
- _this.lastUpdateTime = Date.now();
53
- _this.velocity.x = 0;
54
- _this.velocity.y = 0;
55
- callback(_this.velocity, true);
46
+ this.timeoutId = setTimeout(() => {
47
+ this.cleanUp();
48
+ this.lastUpdateTime = Date.now();
49
+ this.velocity.x = 0;
50
+ this.velocity.y = 0;
51
+ callback(this.velocity, true);
56
52
  }, 100);
57
- };
53
+ }
58
54
  /**
59
55
  * Cleans up resources by clearing any pending timeout
60
56
  */
61
- VelocityTracker.prototype.cleanUp = function () {
57
+ cleanUp() {
62
58
  if (this.timeoutId !== null) {
63
59
  clearTimeout(this.timeoutId);
64
60
  this.timeoutId = null;
65
61
  }
66
- };
67
- return VelocityTracker;
68
- }());
69
- exports.VelocityTracker = VelocityTracker;
62
+ }
63
+ }
70
64
  //# sourceMappingURL=VelocityTracker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VelocityTracker.js","sourceRoot":"","sources":["../../../src/recyclerview/helpers/VelocityTracker.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH;IAAA;QACE,4CAA4C;QACpC,mBAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,sDAAsD;QAC9C,aAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAElC,4CAA4C;QACpC,cAAS,GAA0B,IAAI,CAAC;IAiElD,CAAC;IA/DC;;;;;;;OAOG;IACH,yCAAe,GAAf,UACE,SAAiB,EACjB,SAAiB,EACjB,YAAqB,EACrB,QAGS;QAPX,iBA4CC;QAnCC,yCAAyC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,mCAAmC;QACnC,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,IAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3E,sCAAsC;QACtC,IAAM,WAAW,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,mBAAmB,CAAC;QAElE,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,iBAAiB;QACjB,yBAAyB;QACzB,yBAAyB;QACzB,gBAAgB;QAChB,KAAK;QACL,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;QAElC,qCAAqC;QACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAEjD,yCAAyC;QACzC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE/B,+DAA+D;QAC/D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;YAC1B,KAAI,CAAC,OAAO,EAAE,CAAC;YACf,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,KAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;YACpB,KAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;YACpB,QAAQ,CAAC,KAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED;;OAEG;IACH,iCAAO,GAAP;QACE,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,AAxED,IAwEC;AAxEY,0CAAe"}
1
+ {"version":3,"file":"VelocityTracker.js","sourceRoot":"","sources":["../../../src/recyclerview/helpers/VelocityTracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,eAAe;IAA5B;QACE,4CAA4C;QACpC,mBAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,sDAAsD;QAC9C,aAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAElC,4CAA4C;QACpC,cAAS,GAA0B,IAAI,CAAC;IAiElD,CAAC;IA/DC;;;;;;;OAOG;IACH,eAAe,CACb,SAAiB,EACjB,SAAiB,EACjB,YAAqB,EACrB,QAGS;QAET,yCAAyC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,mCAAmC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QAE3E,sCAAsC;QACtC,MAAM,WAAW,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,mBAAmB,CAAC;QAElE,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,eAAe;QACf,iBAAiB;QACjB,yBAAyB;QACzB,yBAAyB;QACzB,gBAAgB;QAChB,KAAK;QACL,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;QAElC,qCAAqC;QACrC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAEjD,yCAAyC;QACzC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE/B,+DAA+D;QAC/D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;CACF"}