@amazon-devices/shopify__react-native-performance-lists-profiler 1.1.1758683737

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 (109) hide show
  1. package/LICENSE +7 -0
  2. package/README.kepler.md +331 -0
  3. package/README.md +7 -0
  4. package/ReactNativePerformanceListsProfiler.podspec +30 -0
  5. package/SystemBundles/1b881d5412b1fc3466fe9ebb1f1c33915d19056d122263f1ba0356a8c71c31ca.bundle +10666 -0
  6. package/SystemBundles/1b881d5412b1fc3466fe9ebb1f1c33915d19056d122263f1ba0356a8c71c31ca.map +1 -0
  7. package/SystemModules/amzn__shopify__react-native-performance-lists-profiler-1.modules.txt +26 -0
  8. package/SystemModules/amzn__shopify__react-native-performance-lists-profiler-1.private.modules.txt +96 -0
  9. package/SystemModules/keplerscript-system-bundle-config.json +7 -0
  10. package/THIRD_PARTY_NOTICES.txt +472 -0
  11. package/android/build.gradle +59 -0
  12. package/android/src/main/AndroidManifest.xml +3 -0
  13. package/android/src/main/kotlin/com/shopify/reactnativeperformancelistsprofiler/BlankAreaView.kt +150 -0
  14. package/android/src/main/kotlin/com/shopify/reactnativeperformancelistsprofiler/FlashListPerformanceViewManager.kt +49 -0
  15. package/android/src/main/kotlin/com/shopify/reactnativeperformancelistsprofiler/FlatListPerformanceViewManager.kt +47 -0
  16. package/android/src/main/kotlin/com/shopify/reactnativeperformancelistsprofiler/ReactNativePerformanceListsProfilerPackage.kt +19 -0
  17. package/dist/FlashListPerformanceView.d.ts +14 -0
  18. package/dist/FlashListPerformanceView.d.ts.map +1 -0
  19. package/dist/FlashListPerformanceView.js +33 -0
  20. package/dist/FlashListPerformanceView.js.map +1 -0
  21. package/dist/FlashListPerformanceView.types.d.ts +21 -0
  22. package/dist/FlashListPerformanceView.types.d.ts.map +1 -0
  23. package/dist/FlashListPerformanceView.types.js +3 -0
  24. package/dist/FlashListPerformanceView.types.js.map +1 -0
  25. package/dist/FlashListPerformanceViewNativeComponent.d.ts +4 -0
  26. package/dist/FlashListPerformanceViewNativeComponent.d.ts.map +1 -0
  27. package/dist/FlashListPerformanceViewNativeComponent.js +7 -0
  28. package/dist/FlashListPerformanceViewNativeComponent.js.map +1 -0
  29. package/dist/FlashListPerformanceViewNativeComponent.kepler.d.ts +5 -0
  30. package/dist/FlashListPerformanceViewNativeComponent.kepler.d.ts.map +1 -0
  31. package/dist/FlashListPerformanceViewNativeComponent.kepler.js +35 -0
  32. package/dist/FlashListPerformanceViewNativeComponent.kepler.js.map +1 -0
  33. package/dist/FlatListPerformanceView.d.ts +15 -0
  34. package/dist/FlatListPerformanceView.d.ts.map +1 -0
  35. package/dist/FlatListPerformanceView.js +38 -0
  36. package/dist/FlatListPerformanceView.js.map +1 -0
  37. package/dist/FlatListPerformanceView.types.d.ts +19 -0
  38. package/dist/FlatListPerformanceView.types.d.ts.map +1 -0
  39. package/dist/FlatListPerformanceView.types.js +10 -0
  40. package/dist/FlatListPerformanceView.types.js.map +1 -0
  41. package/dist/FlatListPerformanceViewNativeComponent.d.ts +4 -0
  42. package/dist/FlatListPerformanceViewNativeComponent.d.ts.map +1 -0
  43. package/dist/FlatListPerformanceViewNativeComponent.js +7 -0
  44. package/dist/FlatListPerformanceViewNativeComponent.js.map +1 -0
  45. package/dist/FlatListPerformanceViewNativeComponent.kepler.d.ts +5 -0
  46. package/dist/FlatListPerformanceViewNativeComponent.kepler.d.ts.map +1 -0
  47. package/dist/FlatListPerformanceViewNativeComponent.kepler.js +35 -0
  48. package/dist/FlatListPerformanceViewNativeComponent.kepler.js.map +1 -0
  49. package/dist/ListsProfiler.d.ts +9 -0
  50. package/dist/ListsProfiler.d.ts.map +1 -0
  51. package/dist/ListsProfiler.js +54 -0
  52. package/dist/ListsProfiler.js.map +1 -0
  53. package/dist/ListsProfilerContext.d.ts +9 -0
  54. package/dist/ListsProfilerContext.d.ts.map +1 -0
  55. package/dist/ListsProfilerContext.js +11 -0
  56. package/dist/ListsProfilerContext.js.map +1 -0
  57. package/dist/ListsProfilerModule.d.ts +6 -0
  58. package/dist/ListsProfilerModule.d.ts.map +1 -0
  59. package/dist/ListsProfilerModule.js +14 -0
  60. package/dist/ListsProfilerModule.js.map +1 -0
  61. package/dist/ListsProfilerProps.d.ts +19 -0
  62. package/dist/ListsProfilerProps.d.ts.map +1 -0
  63. package/dist/ListsProfilerProps.js +3 -0
  64. package/dist/ListsProfilerProps.js.map +1 -0
  65. package/dist/__tests__/FlashListPerformanceView.test.d.ts +2 -0
  66. package/dist/__tests__/FlashListPerformanceView.test.d.ts.map +1 -0
  67. package/dist/__tests__/FlashListPerformanceView.test.js +53 -0
  68. package/dist/__tests__/FlashListPerformanceView.test.js.map +1 -0
  69. package/dist/__tests__/FlatListPerformanceView.test.d.ts +2 -0
  70. package/dist/__tests__/FlatListPerformanceView.test.d.ts.map +1 -0
  71. package/dist/__tests__/FlatListPerformanceView.test.js +59 -0
  72. package/dist/__tests__/FlatListPerformanceView.test.js.map +1 -0
  73. package/dist/__tests__/ListProfiler.test.d.ts +2 -0
  74. package/dist/__tests__/ListProfiler.test.d.ts.map +1 -0
  75. package/dist/__tests__/ListProfiler.test.js +53 -0
  76. package/dist/__tests__/ListProfiler.test.js.map +1 -0
  77. package/dist/index.d.ts +4 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +13 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/tsconfig.tsbuildinfo +1 -0
  82. package/ios/ReactNativePerformanceListsProfiler.xcodeproj/project.pbxproj +3 -0
  83. package/ios/Sources/BlankAreaView.swift +111 -0
  84. package/ios/Sources/FlashListPerformanceViewManager.m +9 -0
  85. package/ios/Sources/FlashListPerformanceViewManager.swift +23 -0
  86. package/ios/Sources/FlatListPerformanceViewManager.m +9 -0
  87. package/ios/Sources/FlatListPerformanceViewManager.swift +18 -0
  88. package/ios/Sources/ReactNativePerfomanceListsProfilerUmbrella.h +8 -0
  89. package/ios/Tests/ReactNativePerformanceListsProfilerTests.swift +5 -0
  90. package/kepler-compatibility.json +8 -0
  91. package/kepler-transformed-package-info.json +3 -0
  92. package/package.json +1 -0
  93. package/src/FlashListPerformanceView.tsx +44 -0
  94. package/src/FlashListPerformanceView.types.ts +23 -0
  95. package/src/FlashListPerformanceViewNativeComponent.kepler.ts +38 -0
  96. package/src/FlashListPerformanceViewNativeComponent.ts +7 -0
  97. package/src/FlatListPerformanceView.tsx +61 -0
  98. package/src/FlatListPerformanceView.types.ts +28 -0
  99. package/src/FlatListPerformanceViewNativeComponent.kepler.tsx +38 -0
  100. package/src/FlatListPerformanceViewNativeComponent.tsx +7 -0
  101. package/src/ListsProfiler.tsx +67 -0
  102. package/src/ListsProfilerContext.tsx +13 -0
  103. package/src/ListsProfilerModule.ts +25 -0
  104. package/src/ListsProfilerProps.ts +18 -0
  105. package/src/__tests__/FlashListPerformanceView.test.tsx +71 -0
  106. package/src/__tests__/FlatListPerformanceView.test.tsx +77 -0
  107. package/src/__tests__/ListProfiler.test.tsx +60 -0
  108. package/src/__tests__/setupJest.js +5 -0
  109. package/src/index.ts +3 -0
@@ -0,0 +1,150 @@
1
+ package com.shopify.reactnativeperformancelistsprofiler
2
+
3
+ import android.content.Context
4
+ import android.util.DisplayMetrics
5
+ import android.view.View
6
+ import android.view.ViewGroup
7
+ import com.facebook.react.bridge.Arguments
8
+ import com.facebook.react.bridge.ReactContext
9
+ import com.facebook.react.views.view.ReactViewGroup
10
+ import com.facebook.react.uimanager.events.RCTEventEmitter
11
+ import java.util.*
12
+ import kotlin.NoSuchElementException
13
+ import kotlin.math.max
14
+ import kotlin.math.min
15
+
16
+
17
+ class BlankAreaView(context: Context) : ReactViewGroup(context) {
18
+ val scrollView: View?
19
+ get() {
20
+ return try {
21
+ getChildAt(0)
22
+ } catch (e: NullPointerException) {
23
+ null
24
+ }
25
+ }
26
+
27
+ var getCells: () -> Array<View> = { emptyArray() }
28
+
29
+ private val horizontal: Boolean
30
+ get() {
31
+ return false
32
+ }
33
+
34
+ private val listSize: Int
35
+ get() {
36
+ if (scrollView == null) {
37
+ return 0
38
+ }
39
+ return if (horizontal) scrollView!!.width else scrollView!!.height
40
+ }
41
+
42
+ private val scrollOffset: Int
43
+ get() {
44
+ if (scrollView == null) {
45
+ return 0
46
+ }
47
+ return if (horizontal) scrollView!!.scrollX else scrollView!!.scrollY
48
+ }
49
+ private var didLoadCells = false
50
+ private var didSendInteractiveEvent = false
51
+ private var pixelDensity = 1.0;
52
+
53
+ override fun onAttachedToWindow() {
54
+ super.onAttachedToWindow()
55
+ val dm = DisplayMetrics()
56
+ display.getRealMetrics(dm)
57
+ pixelDensity = dm.density.toDouble()
58
+ viewTreeObserver.addOnScrollChangedListener {
59
+ if (scrollView == null) {
60
+ return@addOnScrollChangedListener
61
+ }
62
+ val (blankOffsetTop, blankOffsetBottom) = computeBlankFromGivenOffset()
63
+ emitBlankAreaEvent(blankOffsetTop, blankOffsetBottom)
64
+ }
65
+ viewTreeObserver.addOnDrawListener {
66
+ if (didSendInteractiveEvent) {
67
+ return@addOnDrawListener
68
+ }
69
+ val (blankOffsetTop, blankOffsetBottom) = computeBlankFromGivenOffset()
70
+ if (max(blankOffsetBottom, blankOffsetTop) != 0 || !didLoadCells) {
71
+ return@addOnDrawListener
72
+ }
73
+ didSendInteractiveEvent = true
74
+ val reactContext = context as ReactContext
75
+ reactContext
76
+ .getJSModule(RCTEventEmitter::class.java)
77
+ .receiveEvent(
78
+ id,
79
+ "onInteractive",
80
+ Arguments.createMap().apply {
81
+ putString("timestamp", Date().time.toString())
82
+ }
83
+ )
84
+ }
85
+ }
86
+
87
+ private fun computeBlankFromGivenOffset(): Pair<Int, Int> {
88
+ val cells = getCells()
89
+ cells.sortBy { it.top }
90
+ if (cells.isEmpty()) {
91
+ return Pair(0, listSize)
92
+ }
93
+ didLoadCells = true
94
+
95
+ return try {
96
+ val firstCell = cells.first { isRenderedAndVisibleCell(it) }
97
+ val lastCell = cells.last { isRenderedAndVisibleCell(it) }
98
+ val blankOffsetTop = firstCell.top - scrollOffset
99
+ val blankOffsetBottom = min((firstCell.parent as View).bottom, scrollOffset + listSize) - lastCell.bottom
100
+ Pair(blankOffsetTop, blankOffsetBottom)
101
+ } catch (e: NoSuchElementException) {
102
+ Pair(0, listSize)
103
+ }
104
+ }
105
+
106
+ private fun isRenderedAndVisibleCell(cell: View): Boolean {
107
+ if (!isWithinBounds(cell)) {
108
+ return false
109
+ }
110
+ if (cell !is ViewGroup) {
111
+ return true
112
+ }
113
+ return cell.childCount != 0
114
+ }
115
+
116
+ private fun emitBlankAreaEvent(blankOffsetTop: Int, blankOffsetBottom: Int) {
117
+ val reactContext = context as ReactContext
118
+ reactContext
119
+ .getJSModule(RCTEventEmitter::class.java)
120
+ .receiveEvent(
121
+ id,
122
+ "onBlankAreaEvent",
123
+ Arguments.createMap().apply {
124
+ putDouble("offsetStart", Math.min(listSize / pixelDensity, blankOffsetTop / pixelDensity))
125
+ putDouble("offsetEnd", Math.min(listSize / pixelDensity, blankOffsetBottom / pixelDensity))
126
+ }
127
+ )
128
+ }
129
+
130
+ private fun isWithinBounds(view: View): Boolean {
131
+ if (scrollView == null) {
132
+ return false
133
+ }
134
+ val scrollView = scrollView as View
135
+ return if (!horizontal) {
136
+ (view.top >= (scrollView.scrollY - scrollView.height) || view.bottom >= (scrollView.scrollY - scrollView.height)) &&
137
+ (view.top <= scrollView.scrollY + scrollView.height || view.bottom <= scrollView.scrollY + scrollView.height)
138
+ } else {
139
+ (view.left >= (scrollView.scrollX - scrollView.width) || view.right >= (scrollView.scrollX - scrollView.width)) &&
140
+ (view.left <= scrollView.scrollX + listSize || view.right <= scrollView.scrollX + scrollView.width)
141
+ }
142
+ }
143
+
144
+ fun ViewGroup.getChildren(): Array<View> {
145
+ return (0..childCount).mapNotNull {
146
+ this.getChildAt(it)
147
+ }
148
+ .toTypedArray()
149
+ }
150
+ }
@@ -0,0 +1,49 @@
1
+ package com.shopify.reactnativeperformancelistsprofiler
2
+
3
+ import android.view.View
4
+ import android.view.ViewGroup
5
+ import com.facebook.react.common.MapBuilder
6
+ import com.facebook.react.module.annotations.ReactModule
7
+ import com.facebook.react.uimanager.ThemedReactContext
8
+ import com.facebook.react.views.view.ReactViewGroup
9
+ import com.facebook.react.views.view.ReactViewManager
10
+
11
+ @ReactModule(name = FlashListPerformanceViewManager.REACT_CLASS)
12
+ class FlashListPerformanceViewManager: ReactViewManager() {
13
+ companion object {
14
+ const val REACT_CLASS = "FlashListPerformanceView"
15
+ }
16
+
17
+ override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any> {
18
+ return MapBuilder.builder<String, Any>()
19
+ .put(
20
+ "onInteractive",
21
+ MapBuilder.of(
22
+ "registrationName", "onInteractive")
23
+ )
24
+ .put(
25
+ "onBlankAreaEvent",
26
+ MapBuilder.of(
27
+ "registrationName", "onBlankAreaEvent")
28
+ )
29
+ .build()
30
+ }
31
+
32
+ override fun getName(): String {
33
+ return REACT_CLASS
34
+ }
35
+
36
+ override fun createViewInstance(context: ThemedReactContext): ReactViewGroup {
37
+ return BlankAreaView(context).apply {
38
+ getCells = {
39
+ if (scrollView == null) {
40
+ emptyArray()
41
+ } else {
42
+ val container = ((scrollView as ViewGroup).getChildAt(0) as ViewGroup)
43
+ val autoLayoutView = (container.getChildren().first { it.javaClass.name.endsWith("AutoLayoutView") } as ViewGroup)
44
+ autoLayoutView.getChildren() + container.getChildren().filter { it.javaClass.name.endsWith("AutoLayoutView") }
45
+ }
46
+ }
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,47 @@
1
+ package com.shopify.reactnativeperformancelistsprofiler
2
+
3
+ import android.view.ViewGroup
4
+ import com.facebook.react.common.MapBuilder
5
+ import com.facebook.react.module.annotations.ReactModule
6
+ import com.facebook.react.uimanager.ThemedReactContext
7
+ import com.facebook.react.views.view.ReactViewGroup
8
+ import com.facebook.react.views.view.ReactViewManager
9
+
10
+ @ReactModule(name = FlatListPerformanceViewManager.REACT_CLASS)
11
+ class FlatListPerformanceViewManager: ReactViewManager() {
12
+ companion object {
13
+ const val REACT_CLASS = "FlatListPerformanceView"
14
+ }
15
+
16
+ override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any> {
17
+ return MapBuilder.builder<String, Any>()
18
+ .put(
19
+ "onInteractive",
20
+ MapBuilder.of(
21
+ "registrationName", "onInteractive")
22
+ )
23
+ .put(
24
+ "onBlankAreaEvent",
25
+ MapBuilder.of(
26
+ "registrationName", "onBlankAreaEvent")
27
+ )
28
+ .build()
29
+ }
30
+
31
+ override fun getName(): String {
32
+ return REACT_CLASS
33
+ }
34
+
35
+ override fun createViewInstance(context: ThemedReactContext): ReactViewGroup {
36
+ return BlankAreaView(context).apply {
37
+ getCells = {
38
+ if (scrollView == null) {
39
+ emptyArray()
40
+ } else {
41
+ ((scrollView as ViewGroup).getChildAt(0) as ViewGroup)
42
+ .getChildren()
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,19 @@
1
+ package com.shopify.reactnativeperformancelistsprofiler
2
+
3
+ import com.facebook.react.ReactPackage
4
+ import com.facebook.react.bridge.NativeModule
5
+ import com.facebook.react.bridge.ReactApplicationContext
6
+ import com.facebook.react.uimanager.ViewManager
7
+
8
+ class ReactNativePerformanceListsProfilerPackage : ReactPackage {
9
+ override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
10
+ return listOf()
11
+ }
12
+
13
+ override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
14
+ return listOf(
15
+ FlatListPerformanceViewManager(),
16
+ FlashListPerformanceViewManager()
17
+ )
18
+ }
19
+ }
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ interface FlashListPerformanceViewProps {
3
+ /**
4
+ * Name of the list. Used for distinguishing between lists in the `ListsProfiler`.
5
+ */
6
+ listName: string;
7
+ children: JSX.Element;
8
+ }
9
+ /**
10
+ * Wrap your `FlashList` with this component.
11
+ */
12
+ declare const FlashListPerformanceView: ({ listName, children }: FlashListPerformanceViewProps) => JSX.Element;
13
+ export default FlashListPerformanceView;
14
+ //# sourceMappingURL=FlashListPerformanceView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashListPerformanceView.d.ts","sourceRoot":"","sources":["../src/FlashListPerformanceView.tsx"],"names":[],"mappings":";AAOA,UAAU,6BAA6B;IACrC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,QAAA,MAAM,wBAAwB,2BAA0B,6BAA6B,gBAwBpF,CAAC;AACF,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = tslib_1.__importStar(require("react"));
5
+ var ListsProfilerContext_1 = require("./ListsProfilerContext");
6
+ var FlashListPerformanceViewNativeComponent_1 = require("./FlashListPerformanceViewNativeComponent");
7
+ // @amznmod_react - Add import for the turbomodule
8
+ var ListsProfilerModule_1 = tslib_1.__importDefault(require("./ListsProfilerModule"));
9
+ /**
10
+ * Wrap your `FlashList` with this component.
11
+ */
12
+ var FlashListPerformanceView = function (_a) {
13
+ var listName = _a.listName, children = _a.children;
14
+ var time = (0, react_1.useRef)(Date.now()).current;
15
+ var listsProfilerController = (0, react_1.useContext)(ListsProfilerContext_1.ListsProfilerContext);
16
+ return (react_1.default.createElement(FlashListPerformanceViewNativeComponent_1.FlashListPerformanceViewNativeComponent, { style: { flex: 1 }, onInteractive: function (_a) {
17
+ var nativeEvent = _a.nativeEvent;
18
+ listsProfilerController.onInteractive(nativeEvent.timestamp - time, listName);
19
+ }, onBlankAreaEvent: function (_a) {
20
+ var nativeEvent = _a.nativeEvent;
21
+ listsProfilerController.onBlankArea(nativeEvent.offsetStart, nativeEvent.offsetEnd, listName);
22
+ } }, react_1.default.cloneElement(children, {
23
+ onScroll: function () {
24
+ var _a;
25
+ if ((_a = children === null || children === void 0 ? void 0 : children.props) === null || _a === void 0 ? void 0 : _a.onScroll) {
26
+ children.props.onScroll();
27
+ }
28
+ ListsProfilerModule_1.default === null || ListsProfilerModule_1.default === void 0 ? void 0 : ListsProfilerModule_1.default.invokeCallback();
29
+ },
30
+ })));
31
+ };
32
+ exports.default = FlashListPerformanceView;
33
+ //# sourceMappingURL=FlashListPerformanceView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashListPerformanceView.js","sourceRoot":"","sources":["../src/FlashListPerformanceView.tsx"],"names":[],"mappings":";;;AAAA,qDAAgD;AAEhD,+DAA4D;AAC5D,qGAAkG;AAClG,kDAAkD;AAClD,sFAAwD;AAUxD;;GAEG;AACH,IAAM,wBAAwB,GAAG,UAAC,EAAmD;QAAlD,QAAQ,cAAA,EAAE,QAAQ,cAAA;IACnD,IAAM,IAAI,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;IACxC,IAAM,uBAAuB,GAAG,IAAA,kBAAU,EAAC,2CAAoB,CAAC,CAAC;IACjE,OAAO,CACL,8BAAC,iFAAuC,IACtC,KAAK,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,EAChB,aAAa,EAAE,UAAC,EAAa;gBAAZ,WAAW,iBAAA;YAC1B,uBAAuB,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,EAAE,QAAQ,CAAC,CAAC;QAChF,CAAC,EACD,gBAAgB,EAAE,UAAC,EAAa;gBAAZ,WAAW,iBAAA;YAC7B,uBAAuB,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChG,CAAC,IAGA,eAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;QAC5B,QAAQ,EAAE;;YACR,IAAI,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,QAAQ,EAAE;gBAC7B,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aAC3B;YACD,6BAAmB,aAAnB,6BAAmB,uBAAnB,6BAAmB,CAAE,cAAc,EAAE,CAAC;QACxC,CAAC;KACF,CAAC,CACsC,CAC3C,CAAC;AACJ,CAAC,CAAC;AACF,kBAAe,wBAAwB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { StyleProp, ViewStyle } from 'react-native';
2
+ interface OnInteractiveEvent {
3
+ nativeEvent: {
4
+ timestamp: number;
5
+ };
6
+ }
7
+ interface OnBlankAreaEvent {
8
+ nativeEvent: {
9
+ offsetStart: number;
10
+ offsetEnd: number;
11
+ };
12
+ }
13
+ type OnInteractiveHandler = (event: OnInteractiveEvent) => void;
14
+ type OnBlankAreaEventHandler = (event: OnBlankAreaEvent) => void;
15
+ export interface FlashListPerformanceViewNativeComponentProps {
16
+ onInteractive: OnInteractiveHandler;
17
+ onBlankAreaEvent: OnBlankAreaEventHandler;
18
+ style: StyleProp<ViewStyle>;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=FlashListPerformanceView.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashListPerformanceView.types.d.ts","sourceRoot":"","sources":["../src/FlashListPerformanceView.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAElD,UAAU,kBAAkB;IAC1B,WAAW,EAAE;QACX,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,UAAU,gBAAgB;IACxB,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,KAAK,oBAAoB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAChE,KAAK,uBAAuB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,4CAA4C;IAC3D,aAAa,EAAE,oBAAoB,CAAC;IACpC,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC7B"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=FlashListPerformanceView.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashListPerformanceView.types.js","sourceRoot":"","sources":["../src/FlashListPerformanceView.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { FlashListPerformanceViewNativeComponentProps } from './FlashListPerformanceView.types';
2
+ declare const FlashListPerformanceViewNativeComponent: import("react-native").HostComponent<FlashListPerformanceViewNativeComponentProps>;
3
+ export { FlashListPerformanceViewNativeComponent };
4
+ //# sourceMappingURL=FlashListPerformanceViewNativeComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashListPerformanceViewNativeComponent.d.ts","sourceRoot":"","sources":["../src/FlashListPerformanceViewNativeComponent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,4CAA4C,EAAC,MAAM,kCAAkC,CAAC;AAE9F,QAAA,MAAM,uCAAuC,oFACqD,CAAC;AACnG,OAAO,EAAC,uCAAuC,EAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlashListPerformanceViewNativeComponent = void 0;
4
+ var react_native_1 = require("react-native");
5
+ var FlashListPerformanceViewNativeComponent = (0, react_native_1.requireNativeComponent)('FlashListPerformanceView');
6
+ exports.FlashListPerformanceViewNativeComponent = FlashListPerformanceViewNativeComponent;
7
+ //# sourceMappingURL=FlashListPerformanceViewNativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashListPerformanceViewNativeComponent.js","sourceRoot":"","sources":["../src/FlashListPerformanceViewNativeComponent.ts"],"names":[],"mappings":";;;AAAA,6CAAoD;AAIpD,IAAM,uCAAuC,GAC3C,IAAA,qCAAsB,EAA+C,0BAA0B,CAAC,CAAC;AAC3F,0FAAuC"}
@@ -0,0 +1,5 @@
1
+ import { HostComponent } from 'react-native';
2
+ import { FlashListPerformanceViewNativeComponentProps } from './FlashListPerformanceView.types';
3
+ declare const FlashListPerformanceViewNativeComponent: HostComponent<FlashListPerformanceViewNativeComponentProps>;
4
+ export { FlashListPerformanceViewNativeComponent };
5
+ //# sourceMappingURL=FlashListPerformanceViewNativeComponent.kepler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashListPerformanceViewNativeComponent.kepler.d.ts","sourceRoot":"","sources":["../src/FlashListPerformanceViewNativeComponent.kepler.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,4CAA4C,EAAE,MAAM,kCAAkC,CAAC;AAsBhG,QAAA,MAAM,uCAAuC,6DACwD,CAAC;AACtG,OAAO,EAAE,uCAAuC,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * PROPRIETARY/CONFIDENTIAL
6
+ *
7
+ * Use is subject to license terms.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.FlashListPerformanceViewNativeComponent = void 0;
11
+ var tslib_1 = require("tslib");
12
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore For some reason this is unknown
14
+ var registerGeneratedViewConfig_1 = tslib_1.__importDefault(require("react-native/Libraries/Utilities/registerGeneratedViewConfig"));
15
+ var FlashListPerformanceView = 'AmazonFlashListPerformanceView';
16
+ (0, registerGeneratedViewConfig_1.default)(FlashListPerformanceView, {
17
+ uiViewClassName: FlashListPerformanceView,
18
+ bubblingEventTypes: {
19
+ topOnInteractive: {
20
+ phasedRegistrationNames: {
21
+ bubbled: 'onInteractive',
22
+ captured: 'onInteractiveCapture',
23
+ },
24
+ },
25
+ topOnBlankAreaEvent: {
26
+ phasedRegistrationNames: {
27
+ bubbled: 'onBlankAreaEvent',
28
+ captured: 'onBlankAreaEventCapture',
29
+ },
30
+ },
31
+ },
32
+ });
33
+ var FlashListPerformanceViewNativeComponent = FlashListPerformanceView;
34
+ exports.FlashListPerformanceViewNativeComponent = FlashListPerformanceViewNativeComponent;
35
+ //# sourceMappingURL=FlashListPerformanceViewNativeComponent.kepler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlashListPerformanceViewNativeComponent.kepler.js","sourceRoot":"","sources":["../src/FlashListPerformanceViewNativeComponent.kepler.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;AAEH,6DAA6D;AAC7D,6CAA6C;AAC7C,qIAAoF;AAKpF,IAAM,wBAAwB,GAAG,gCAAgC,CAAC;AAElE,IAAA,qCAAQ,EAAC,wBAAwB,EAAE;IAC/B,eAAe,EAAE,wBAAwB;IACzC,kBAAkB,EAAE;QAChB,gBAAgB,EAAE;YACd,uBAAuB,EAAE;gBACrB,OAAO,EAAE,eAAe;gBACxB,QAAQ,EAAE,sBAAsB;aACnC;SACJ;QACD,mBAAmB,EAAE;YACjB,uBAAuB,EAAE;gBACrB,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,yBAAyB;aACtC;SACJ;KACJ;CACJ,CAAC,CAAC;AAEH,IAAM,uCAAuC,GAC3C,wBAAmG,CAAC;AAC7F,0FAAuC"}
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import ListsProfilerProps from './ListsProfilerProps';
3
+ interface FlatListPerformanceViewProps {
4
+ /**
5
+ * Name of the list. Used for distinguishing between lists in the `ListsProfiler`.
6
+ */
7
+ listName: string;
8
+ children: JSX.Element;
9
+ }
10
+ /**
11
+ * Wrap your `FlatList` with this component.
12
+ */
13
+ declare const FlatListPerformanceView: ({ children, listName, onInteractive, onBlankArea, }: FlatListPerformanceViewProps & ListsProfilerProps) => JSX.Element;
14
+ export default FlatListPerformanceView;
15
+ //# sourceMappingURL=FlatListPerformanceView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlatListPerformanceView.d.ts","sourceRoot":"","sources":["../src/FlatListPerformanceView.tsx"],"names":[],"mappings":";AAKA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAItD,UAAU,4BAA4B;IACpC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,QAAA,MAAM,uBAAuB,wDAK1B,4BAA4B,GAAG,kBAAkB,gBAkCnD,CAAC;AACF,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var react_1 = tslib_1.__importStar(require("react"));
5
+ var ListsProfilerContext_1 = require("./ListsProfilerContext");
6
+ var FlatListPerformanceViewNativeComponent_1 = require("./FlatListPerformanceViewNativeComponent");
7
+ // @amznmod_react - Add import for the turbomodule
8
+ var ListsProfilerModule_1 = tslib_1.__importDefault(require("./ListsProfilerModule"));
9
+ /**
10
+ * Wrap your `FlatList` with this component.
11
+ */
12
+ var FlatListPerformanceView = function (_a) {
13
+ var children = _a.children, listName = _a.listName, _b = _a.onInteractive, onInteractive = _b === void 0 ? function () { } : _b, _c = _a.onBlankArea, onBlankArea = _c === void 0 ? function () { } : _c;
14
+ var time = (0, react_1.useRef)(Date.now()).current;
15
+ var listsProfilerController = (0, react_1.useContext)(ListsProfilerContext_1.ListsProfilerContext);
16
+ var onInteractiveCallback = (0, react_1.useCallback)(function (_a) {
17
+ var nativeEvent = _a.nativeEvent;
18
+ var tti = nativeEvent.timestamp - time;
19
+ onInteractive(tti, listName);
20
+ listsProfilerController.onInteractive(tti, listName);
21
+ }, [listsProfilerController, onInteractive, listName, time]);
22
+ var onBlankAreaCallback = (0, react_1.useCallback)(function (_a) {
23
+ var nativeEvent = _a.nativeEvent;
24
+ onBlankArea(nativeEvent.offsetStart, nativeEvent.offsetEnd, listName);
25
+ listsProfilerController.onBlankArea(nativeEvent.offsetStart, nativeEvent.offsetEnd, listName);
26
+ }, [onBlankArea, listsProfilerController, listName]);
27
+ return (react_1.default.createElement(FlatListPerformanceViewNativeComponent_1.FlatListPerformanceViewNativeComponent, { onInteractive: onInteractiveCallback, onBlankAreaEvent: onBlankAreaCallback }, react_1.default.cloneElement(children, {
28
+ onScroll: function () {
29
+ var _a;
30
+ if ((_a = children === null || children === void 0 ? void 0 : children.props) === null || _a === void 0 ? void 0 : _a.onScroll) {
31
+ children.props.onScroll();
32
+ }
33
+ ListsProfilerModule_1.default === null || ListsProfilerModule_1.default === void 0 ? void 0 : ListsProfilerModule_1.default.invokeCallback();
34
+ },
35
+ })));
36
+ };
37
+ exports.default = FlatListPerformanceView;
38
+ //# sourceMappingURL=FlatListPerformanceView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlatListPerformanceView.js","sourceRoot":"","sources":["../src/FlatListPerformanceView.tsx"],"names":[],"mappings":";;;AAAA,qDAA6D;AAE7D,+DAA4D;AAC5D,mGAAgG;AAGhG,kDAAkD;AAClD,sFAAwD;AAUxD;;GAEG;AACH,IAAM,uBAAuB,GAAG,UAAC,EAKmB;QAJlD,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,qBAAwB,EAAxB,aAAa,mBAAG,cAAO,CAAC,KAAA,EACxB,mBAAsB,EAAtB,WAAW,mBAAG,cAAO,CAAC,KAAA;IAEtB,IAAM,IAAI,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC;IACxC,IAAM,uBAAuB,GAAG,IAAA,kBAAU,EAAC,2CAAoB,CAAC,CAAC;IACjE,IAAM,qBAAqB,GAAG,IAAA,mBAAW,EACvC,UAAC,EAAiC;YAAhC,WAAW,iBAAA;QACX,IAAM,GAAG,GAAG,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;QACzC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC7B,uBAAuB,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC,EACD,CAAC,uBAAuB,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,CACzD,CAAC;IACF,IAAM,mBAAmB,GAAG,IAAA,mBAAW,EACrC,UAAC,EAA+B;YAA9B,WAAW,iBAAA;QACX,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACtE,uBAAuB,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChG,CAAC,EACD,CAAC,WAAW,EAAE,uBAAuB,EAAE,QAAQ,CAAC,CACjD,CAAC;IACF,OAAO,CACL,8BAAC,+EAAsC,IACrC,aAAa,EAAE,qBAAqB,EACpC,gBAAgB,EAAE,mBAAmB,IAGpC,eAAK,CAAC,YAAY,CAAC,QAAQ,EAAE;QAC5B,QAAQ,EAAE;;YACR,IAAI,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,QAAQ,EAAE;gBAC7B,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aAC3B;YACD,6BAAmB,aAAnB,6BAAmB,uBAAnB,6BAAmB,CAAE,cAAc,EAAE,CAAC;QACxC,CAAC;KACF,CAAC,CACqC,CAC1C,CAAC;AACJ,CAAC,CAAC;AACF,kBAAe,uBAAuB,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface OnInteractiveEvent {
2
+ nativeEvent: {
3
+ timestamp: number;
4
+ };
5
+ }
6
+ export interface OnBlankAreaEvent {
7
+ nativeEvent: {
8
+ offsetStart: number;
9
+ offsetEnd: number;
10
+ };
11
+ }
12
+ type OnInteractiveHandler = (event: OnInteractiveEvent) => void;
13
+ type OnBlankAreaEventHandler = (event: OnBlankAreaEvent) => void;
14
+ export interface FlatListPerformanceViewNativeComponentProps {
15
+ onInteractive: OnInteractiveHandler;
16
+ onBlankAreaEvent: OnBlankAreaEventHandler;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=FlatListPerformanceView.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlatListPerformanceView.types.d.ts","sourceRoot":"","sources":["../src/FlatListPerformanceView.types.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE;QACX,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,KAAK,oBAAoB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAChE,KAAK,uBAAuB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEjE,MAAM,WAAW,2CAA2C;IAC1D,aAAa,EAAE,oBAAoB,CAAC;IACpC,gBAAgB,EAAE,uBAAuB,CAAC;CAC3C"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * PROPRIETARY/CONFIDENTIAL
6
+ *
7
+ * Use is subject to license terms.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=FlatListPerformanceView.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlatListPerformanceView.types.js","sourceRoot":"","sources":["../src/FlatListPerformanceView.types.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
@@ -0,0 +1,4 @@
1
+ import { FlatListPerformanceViewNativeComponentProps } from './FlatListPerformanceView.types';
2
+ declare const FlatListPerformanceViewNativeComponent: import("react-native").HostComponent<FlatListPerformanceViewNativeComponentProps>;
3
+ export { FlatListPerformanceViewNativeComponent };
4
+ //# sourceMappingURL=FlatListPerformanceViewNativeComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlatListPerformanceViewNativeComponent.d.ts","sourceRoot":"","sources":["../src/FlatListPerformanceViewNativeComponent.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,2CAA2C,EAAC,MAAM,iCAAiC,CAAC;AAE5F,QAAA,MAAM,sCAAsC,mFACoD,CAAC;AACjG,OAAO,EAAC,sCAAsC,EAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FlatListPerformanceViewNativeComponent = void 0;
4
+ var react_native_1 = require("react-native");
5
+ var FlatListPerformanceViewNativeComponent = (0, react_native_1.requireNativeComponent)('FlatListPerformanceView');
6
+ exports.FlatListPerformanceViewNativeComponent = FlatListPerformanceViewNativeComponent;
7
+ //# sourceMappingURL=FlatListPerformanceViewNativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlatListPerformanceViewNativeComponent.js","sourceRoot":"","sources":["../src/FlatListPerformanceViewNativeComponent.tsx"],"names":[],"mappings":";;;AAAA,6CAAoD;AAIpD,IAAM,sCAAsC,GAC1C,IAAA,qCAAsB,EAA8C,yBAAyB,CAAC,CAAC;AACzF,wFAAsC"}
@@ -0,0 +1,5 @@
1
+ import { HostComponent } from 'react-native';
2
+ import { FlatListPerformanceViewNativeComponentProps } from './FlatListPerformanceView.types';
3
+ declare const FlatListPerformanceViewNativeComponent: HostComponent<FlatListPerformanceViewNativeComponentProps>;
4
+ export { FlatListPerformanceViewNativeComponent };
5
+ //# sourceMappingURL=FlatListPerformanceViewNativeComponent.kepler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlatListPerformanceViewNativeComponent.kepler.d.ts","sourceRoot":"","sources":["../src/FlatListPerformanceViewNativeComponent.kepler.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,2CAA2C,EAAE,MAAM,iCAAiC,CAAC;AAsB9F,QAAA,MAAM,sCAAsC,4DACuD,CAAC;AACpG,OAAO,EAAE,sCAAsC,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ *
5
+ * PROPRIETARY/CONFIDENTIAL
6
+ *
7
+ * Use is subject to license terms.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.FlatListPerformanceViewNativeComponent = void 0;
11
+ var tslib_1 = require("tslib");
12
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore For some reason this is unknown
14
+ var registerGeneratedViewConfig_1 = tslib_1.__importDefault(require("react-native/Libraries/Utilities/registerGeneratedViewConfig"));
15
+ var FlatListPerformanceView = 'AmazonFlatListPerformanceView';
16
+ (0, registerGeneratedViewConfig_1.default)(FlatListPerformanceView, {
17
+ uiViewClassName: FlatListPerformanceView,
18
+ bubblingEventTypes: {
19
+ topOnInteractive: {
20
+ phasedRegistrationNames: {
21
+ bubbled: 'onInteractive',
22
+ captured: 'onInteractiveCapture',
23
+ },
24
+ },
25
+ topOnBlankAreaEvent: {
26
+ phasedRegistrationNames: {
27
+ bubbled: 'onBlankAreaEvent',
28
+ captured: 'onBlankAreaEventCapture',
29
+ },
30
+ },
31
+ },
32
+ });
33
+ var FlatListPerformanceViewNativeComponent = FlatListPerformanceView;
34
+ exports.FlatListPerformanceViewNativeComponent = FlatListPerformanceViewNativeComponent;
35
+ //# sourceMappingURL=FlatListPerformanceViewNativeComponent.kepler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlatListPerformanceViewNativeComponent.kepler.js","sourceRoot":"","sources":["../src/FlatListPerformanceViewNativeComponent.kepler.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;AAEH,6DAA6D;AAC7D,6CAA6C;AAC7C,qIAAoF;AAKpF,IAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAEhE,IAAA,qCAAQ,EAAC,uBAAuB,EAAE;IAC9B,eAAe,EAAE,uBAAuB;IACxC,kBAAkB,EAAE;QAChB,gBAAgB,EAAE;YACd,uBAAuB,EAAE;gBACrB,OAAO,EAAE,eAAe;gBACxB,QAAQ,EAAE,sBAAsB;aACnC;SACJ;QACD,mBAAmB,EAAE;YACjB,uBAAuB,EAAE;gBACrB,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,yBAAyB;aACtC;SACJ;KACJ;CACJ,CAAC,CAAC;AAEH,IAAM,sCAAsC,GAC1C,uBAAiG,CAAC;AAC3F,wFAAsC"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import ListsProfilerProps from './ListsProfilerProps';
3
+ /**
4
+ * Wrap your app with this component to get events from all the lists wrapped with their performance view.
5
+ * For example, `FlatList` must be wrapped in the `FlatListPerformanceView`.
6
+ */
7
+ declare const ListsProfiler: ({ onInteractive, onBlankArea, children }: ListsProfilerProps) => JSX.Element;
8
+ export default ListsProfiler;
9
+ //# sourceMappingURL=ListsProfiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListsProfiler.d.ts","sourceRoot":"","sources":["../src/ListsProfiler.tsx"],"names":[],"mappings":";AAIA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAetD;;;GAGG;AACH,QAAA,MAAM,aAAa,6CAAkE,kBAAkB,gBAyCtG,CAAC;AAEF,eAAe,aAAa,CAAC"}