@shopify/flash-list 2.0.0-alpha.8 → 2.0.0-alpha.9

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 (64) hide show
  1. package/README.md +1 -1
  2. package/dist/__tests__/RecyclerView.test.js +1 -1
  3. package/dist/__tests__/RecyclerView.test.js.map +1 -1
  4. package/dist/enableNewCore.d.ts.map +1 -1
  5. package/dist/enableNewCore.js +2 -1
  6. package/dist/enableNewCore.js.map +1 -1
  7. package/dist/native/config/PlatformHelper.android.d.ts +1 -0
  8. package/dist/native/config/PlatformHelper.android.d.ts.map +1 -1
  9. package/dist/native/config/PlatformHelper.android.js +1 -0
  10. package/dist/native/config/PlatformHelper.android.js.map +1 -1
  11. package/dist/native/config/PlatformHelper.d.ts +1 -0
  12. package/dist/native/config/PlatformHelper.d.ts.map +1 -1
  13. package/dist/native/config/PlatformHelper.ios.d.ts +1 -0
  14. package/dist/native/config/PlatformHelper.ios.d.ts.map +1 -1
  15. package/dist/native/config/PlatformHelper.ios.js +1 -0
  16. package/dist/native/config/PlatformHelper.ios.js.map +1 -1
  17. package/dist/native/config/PlatformHelper.js +1 -0
  18. package/dist/native/config/PlatformHelper.js.map +1 -1
  19. package/dist/native/config/PlatformHelper.web.d.ts +1 -0
  20. package/dist/native/config/PlatformHelper.web.d.ts.map +1 -1
  21. package/dist/native/config/PlatformHelper.web.js +2 -1
  22. package/dist/native/config/PlatformHelper.web.js.map +1 -1
  23. package/dist/recyclerview/RecyclerView.d.ts.map +1 -1
  24. package/dist/recyclerview/RecyclerView.js +10 -1
  25. package/dist/recyclerview/RecyclerView.js.map +1 -1
  26. package/dist/recyclerview/components/ScrollAnchor.d.ts +1 -0
  27. package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -1
  28. package/dist/recyclerview/components/ScrollAnchor.js +1 -0
  29. package/dist/recyclerview/components/ScrollAnchor.js.map +1 -1
  30. package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -1
  31. package/dist/recyclerview/components/StickyHeaders.js +1 -0
  32. package/dist/recyclerview/components/StickyHeaders.js.map +1 -1
  33. package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts.map +1 -1
  34. package/dist/recyclerview/helpers/EngagedIndicesTracker.js +3 -1
  35. package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -1
  36. package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -1
  37. package/dist/recyclerview/hooks/useRecyclerViewController.js +13 -4
  38. package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -1
  39. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +2 -2
  40. package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -1
  41. package/dist/recyclerview/utils/measureLayout.d.ts +1 -29
  42. package/dist/recyclerview/utils/measureLayout.d.ts.map +1 -1
  43. package/dist/recyclerview/utils/measureLayout.js +2 -4
  44. package/dist/recyclerview/utils/measureLayout.js.map +1 -1
  45. package/dist/recyclerview/utils/measureLayout.web.d.ts +29 -0
  46. package/dist/recyclerview/utils/measureLayout.web.d.ts.map +1 -0
  47. package/dist/recyclerview/utils/measureLayout.web.js +89 -0
  48. package/dist/recyclerview/utils/measureLayout.web.js.map +1 -0
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +1 -1
  51. package/src/__tests__/RecyclerView.test.tsx +1 -1
  52. package/src/enableNewCore.ts +3 -1
  53. package/src/native/config/PlatformHelper.android.ts +1 -0
  54. package/src/native/config/PlatformHelper.ios.ts +1 -0
  55. package/src/native/config/PlatformHelper.ts +1 -0
  56. package/src/native/config/PlatformHelper.web.ts +2 -1
  57. package/src/recyclerview/RecyclerView.tsx +14 -2
  58. package/src/recyclerview/components/ScrollAnchor.tsx +1 -0
  59. package/src/recyclerview/components/StickyHeaders.tsx +1 -0
  60. package/src/recyclerview/helpers/EngagedIndicesTracker.ts +3 -1
  61. package/src/recyclerview/hooks/useRecyclerViewController.tsx +9 -1
  62. package/src/recyclerview/layout-managers/MasonryLayoutManager.ts +1 -1
  63. package/src/recyclerview/utils/measureLayout.ts +3 -3
  64. package/src/recyclerview/utils/measureLayout.web.ts +104 -0
@@ -5,34 +5,6 @@ interface Layout {
5
5
  width: number;
6
6
  height: number;
7
7
  }
8
- /**
9
- * Measures the layout of a view relative to itselft.
10
- * Using measure wasn't returing accurate values but this workaround does.
11
- * Returns the x, y coordinates and dimensions of the view.
12
- *
13
- * @param view - The React Native View component to measure
14
- * @returns An object containing x, y, width, and height measurements
15
- */
16
- export declare function measureLayout(view: View, oldLayout: Layout | undefined): {
17
- x: number;
18
- y: number;
19
- width: number;
20
- height: number;
21
- };
22
- /**
23
- * Measures the layout of a view relative to another view.
24
- * Useful for measuring positions relative to a specific reference view.
25
- *
26
- * @param view - The React Native View component to measure
27
- * @param relativeTo - The reference view to measure against
28
- * @returns An object containing x, y, width, and height measurements
29
- */
30
- export declare function measureLayoutRelative(view: View, relativeTo: View, oldLayout: Layout | undefined): {
31
- x: number;
32
- y: number;
33
- width: number;
34
- height: number;
35
- };
36
8
  /**
37
9
  * Checks if two dimension values are not equal, with a small tolerance.
38
10
  * Used to handle floating-point precision issues in layout measurements.
@@ -67,7 +39,7 @@ export declare function measureParentSize(view: View): Layout;
67
39
  * @param parentView
68
40
  * @returns
69
41
  */
70
- export declare function measureChildContainerLayout(childContainerView: View, parentView: View): Layout;
42
+ export declare function measureFirstChildLayout(childContainerView: View, parentView: View): Layout;
71
43
  /**
72
44
  * Specific method for easier mocking
73
45
  * Measures the layout of items of RecyclerView
@@ -1 +1 @@
1
- {"version":3,"file":"measureLayout.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,IAAI,EAAE,MAAM,cAAc,CAAC;AAEhD,UAAU,MAAM;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS;;;;;EAMtE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,IAAI,EAChB,SAAS,EAAE,MAAM,GAAG,SAAS;;;;;EAmB9B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAO1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,kBAAkB,EAAE,IAAI,EACxB,UAAU,EAAE,IAAI,GACf,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAER"}
1
+ {"version":3,"file":"measureLayout.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,IAAI,EAAE,MAAM,cAAc,CAAC;AAEhD,UAAU,MAAM;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAkDD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAO1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,kBAAkB,EAAE,IAAI,EACxB,UAAU,EAAE,IAAI,GACf,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAER"}
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.measureLayout = measureLayout;
4
- exports.measureLayoutRelative = measureLayoutRelative;
5
3
  exports.areDimensionsNotEqual = areDimensionsNotEqual;
6
4
  exports.areDimensionsEqual = areDimensionsEqual;
7
5
  exports.roundOffPixel = roundOffPixel;
8
6
  exports.measureParentSize = measureParentSize;
9
- exports.measureChildContainerLayout = measureChildContainerLayout;
7
+ exports.measureFirstChildLayout = measureFirstChildLayout;
10
8
  exports.measureItemLayout = measureItemLayout;
11
9
  var react_native_1 = require("react-native");
12
10
  /**
@@ -93,7 +91,7 @@ function measureParentSize(view) {
93
91
  * @param parentView
94
92
  * @returns
95
93
  */
96
- function measureChildContainerLayout(childContainerView, parentView) {
94
+ function measureFirstChildLayout(childContainerView, parentView) {
97
95
  return measureLayoutRelative(childContainerView, parentView, undefined);
98
96
  }
99
97
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"measureLayout.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.ts"],"names":[],"mappings":";;AAiBA,sCAMC;AAUD,sDAsBC;AAUD,sDAEC;AAUD,gDAOC;AAED,sCAEC;AASD,8CAEC;AASD,kEAKC;AASD,8CAKC;AA/HD,6CAAgD;AAShD;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,IAAU,EAAE,SAA6B;IACrE,wDAAwD;IACxD,8CAA8C;IAC9C,gDAAgD;IAChD,iBAAiB;IACjB,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CACnC,IAAU,EACV,UAAgB,EAChB,SAA6B;IAE7B,IAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACnD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;QACjD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QACjC,CAAC;QACD,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CAAC,MAAc,EAAE,MAAc;IAClE,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,MAAc,EAAE,MAAc;IAC/D,OAAO,CACL,IAAI,CAAC,GAAG,CACN,yBAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC;QAC1C,yBAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAC/C,IAAI,CAAC,CACP,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,yBAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,IAAU;IAC1C,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,2BAA2B,CACzC,kBAAwB,EACxB,UAAgB;IAEhB,OAAO,qBAAqB,CAAC,kBAAkB,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,IAAU,EACV,SAA6B;IAE7B,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"measureLayout.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.ts"],"names":[],"mappings":";;AAiEA,sDAEC;AAUD,gDAOC;AAED,sCAEC;AASD,8CAEC;AASD,0DAKC;AASD,8CAKC;AA/HD,6CAAgD;AAShD;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,IAAU,EAAE,SAA6B;IAC9D,wDAAwD;IACxD,8CAA8C;IAC9C,gDAAgD;IAChD,iBAAiB;IACjB,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAC5B,IAAU,EACV,UAAgB,EAChB,SAA6B;IAE7B,IAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACnD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,UAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;QACjD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QACjC,CAAC;QACD,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CAAC,MAAc,EAAE,MAAc;IAClE,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,MAAc,EAAE,MAAc;IAC/D,OAAO,CACL,IAAI,CAAC,GAAG,CACN,yBAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC;QAC1C,yBAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAC/C,IAAI,CAAC,CACP,CAAC;AACJ,CAAC;AAED,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO,yBAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,IAAU;IAC1C,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CACrC,kBAAwB,EACxB,UAAgB;IAEhB,OAAO,qBAAqB,CAAC,kBAAkB,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,IAAU,EACV,SAA6B;IAE7B,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,29 @@
1
+ interface Layout {
2
+ x: number;
3
+ y: number;
4
+ width: number;
5
+ height: number;
6
+ }
7
+ /**
8
+ * Checks if two dimension values are not equal, with a small tolerance.
9
+ */
10
+ export declare function areDimensionsNotEqual(value1: number, value2: number): boolean;
11
+ /**
12
+ * Checks if two dimension values are equal, with a small tolerance.
13
+ */
14
+ export declare function areDimensionsEqual(value1: number, value2: number): boolean;
15
+ export declare function roundOffPixel(value: number): number;
16
+ /**
17
+ * Measures the layout of parent of RecyclerView
18
+ */
19
+ export declare function measureParentSize(view: Element): Layout;
20
+ /**
21
+ * Measures the layout of child container of RecyclerView
22
+ */
23
+ export declare function measureFirstChildLayout(childContainerView: Element, parentView: Element): Layout;
24
+ /**
25
+ * Measures the layout of items of RecyclerView
26
+ */
27
+ export declare function measureItemLayout(item: Element, oldLayout: Layout | undefined): Layout;
28
+ export {};
29
+ //# sourceMappingURL=measureLayout.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measureLayout.web.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.web.ts"],"names":[],"mappings":"AAAA,UAAU,MAAM;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAuBD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAOvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,kBAAkB,EAAE,OAAO,EAC3B,UAAU,EAAE,OAAO,GAClB,MAAM,CAaR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAkBR"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.areDimensionsNotEqual = areDimensionsNotEqual;
4
+ exports.areDimensionsEqual = areDimensionsEqual;
5
+ exports.roundOffPixel = roundOffPixel;
6
+ exports.measureParentSize = measureParentSize;
7
+ exports.measureFirstChildLayout = measureFirstChildLayout;
8
+ exports.measureItemLayout = measureItemLayout;
9
+ /**
10
+ * Gets scroll offsets from up to 3 parent elements
11
+ */
12
+ function getScrollOffsets(element, stopAt) {
13
+ var _a, _b;
14
+ var scrollX = 0;
15
+ var scrollY = 0;
16
+ var currentElement = element;
17
+ var depth = 0;
18
+ // Only check up to 3 parent elements
19
+ while (currentElement && currentElement !== stopAt && depth < 3) {
20
+ var htmlElement = currentElement;
21
+ scrollX += (_a = htmlElement.scrollLeft) !== null && _a !== void 0 ? _a : 0;
22
+ scrollY += (_b = htmlElement.scrollTop) !== null && _b !== void 0 ? _b : 0;
23
+ currentElement = currentElement.parentElement;
24
+ depth++;
25
+ }
26
+ return { scrollX: scrollX, scrollY: scrollY };
27
+ }
28
+ /**
29
+ * Checks if two dimension values are not equal, with a small tolerance.
30
+ */
31
+ function areDimensionsNotEqual(value1, value2) {
32
+ return !areDimensionsEqual(value1, value2);
33
+ }
34
+ /**
35
+ * Checks if two dimension values are equal, with a small tolerance.
36
+ */
37
+ function areDimensionsEqual(value1, value2) {
38
+ return Math.abs(value1 - value2) <= 1;
39
+ }
40
+ function roundOffPixel(value) {
41
+ return value;
42
+ }
43
+ /**
44
+ * Measures the layout of parent of RecyclerView
45
+ */
46
+ function measureParentSize(view) {
47
+ return {
48
+ x: 0,
49
+ y: 0,
50
+ width: view.clientWidth,
51
+ height: view.clientHeight,
52
+ };
53
+ }
54
+ /**
55
+ * Measures the layout of child container of RecyclerView
56
+ */
57
+ function measureFirstChildLayout(childContainerView, parentView) {
58
+ var childRect = childContainerView.getBoundingClientRect();
59
+ var parentRect = parentView.getBoundingClientRect();
60
+ // Get scroll offsets for child container (max 3 parents)
61
+ var scrollOffsets = getScrollOffsets(childContainerView, parentView);
62
+ return {
63
+ x: childRect.left - parentRect.left + scrollOffsets.scrollX,
64
+ y: childRect.top - parentRect.top + scrollOffsets.scrollY,
65
+ width: roundOffPixel(childRect.width),
66
+ height: roundOffPixel(childRect.height),
67
+ };
68
+ }
69
+ /**
70
+ * Measures the layout of items of RecyclerView
71
+ */
72
+ function measureItemLayout(item, oldLayout) {
73
+ var layout = {
74
+ x: 0,
75
+ y: 0,
76
+ width: item.clientWidth,
77
+ height: item.clientHeight,
78
+ };
79
+ if (oldLayout) {
80
+ if (areDimensionsEqual(layout.width, oldLayout.width)) {
81
+ layout.width = oldLayout.width;
82
+ }
83
+ if (areDimensionsEqual(layout.height, oldLayout.height)) {
84
+ layout.height = oldLayout.height;
85
+ }
86
+ }
87
+ return layout;
88
+ }
89
+ //# sourceMappingURL=measureLayout.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"measureLayout.web.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.web.ts"],"names":[],"mappings":"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"}