@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.
- package/LICENSE +7 -0
- package/README.kepler.md +331 -0
- package/README.md +7 -0
- package/ReactNativePerformanceListsProfiler.podspec +30 -0
- package/SystemBundles/1b881d5412b1fc3466fe9ebb1f1c33915d19056d122263f1ba0356a8c71c31ca.bundle +10666 -0
- package/SystemBundles/1b881d5412b1fc3466fe9ebb1f1c33915d19056d122263f1ba0356a8c71c31ca.map +1 -0
- package/SystemModules/amzn__shopify__react-native-performance-lists-profiler-1.modules.txt +26 -0
- package/SystemModules/amzn__shopify__react-native-performance-lists-profiler-1.private.modules.txt +96 -0
- package/SystemModules/keplerscript-system-bundle-config.json +7 -0
- package/THIRD_PARTY_NOTICES.txt +472 -0
- package/android/build.gradle +59 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/kotlin/com/shopify/reactnativeperformancelistsprofiler/BlankAreaView.kt +150 -0
- package/android/src/main/kotlin/com/shopify/reactnativeperformancelistsprofiler/FlashListPerformanceViewManager.kt +49 -0
- package/android/src/main/kotlin/com/shopify/reactnativeperformancelistsprofiler/FlatListPerformanceViewManager.kt +47 -0
- package/android/src/main/kotlin/com/shopify/reactnativeperformancelistsprofiler/ReactNativePerformanceListsProfilerPackage.kt +19 -0
- package/dist/FlashListPerformanceView.d.ts +14 -0
- package/dist/FlashListPerformanceView.d.ts.map +1 -0
- package/dist/FlashListPerformanceView.js +33 -0
- package/dist/FlashListPerformanceView.js.map +1 -0
- package/dist/FlashListPerformanceView.types.d.ts +21 -0
- package/dist/FlashListPerformanceView.types.d.ts.map +1 -0
- package/dist/FlashListPerformanceView.types.js +3 -0
- package/dist/FlashListPerformanceView.types.js.map +1 -0
- package/dist/FlashListPerformanceViewNativeComponent.d.ts +4 -0
- package/dist/FlashListPerformanceViewNativeComponent.d.ts.map +1 -0
- package/dist/FlashListPerformanceViewNativeComponent.js +7 -0
- package/dist/FlashListPerformanceViewNativeComponent.js.map +1 -0
- package/dist/FlashListPerformanceViewNativeComponent.kepler.d.ts +5 -0
- package/dist/FlashListPerformanceViewNativeComponent.kepler.d.ts.map +1 -0
- package/dist/FlashListPerformanceViewNativeComponent.kepler.js +35 -0
- package/dist/FlashListPerformanceViewNativeComponent.kepler.js.map +1 -0
- package/dist/FlatListPerformanceView.d.ts +15 -0
- package/dist/FlatListPerformanceView.d.ts.map +1 -0
- package/dist/FlatListPerformanceView.js +38 -0
- package/dist/FlatListPerformanceView.js.map +1 -0
- package/dist/FlatListPerformanceView.types.d.ts +19 -0
- package/dist/FlatListPerformanceView.types.d.ts.map +1 -0
- package/dist/FlatListPerformanceView.types.js +10 -0
- package/dist/FlatListPerformanceView.types.js.map +1 -0
- package/dist/FlatListPerformanceViewNativeComponent.d.ts +4 -0
- package/dist/FlatListPerformanceViewNativeComponent.d.ts.map +1 -0
- package/dist/FlatListPerformanceViewNativeComponent.js +7 -0
- package/dist/FlatListPerformanceViewNativeComponent.js.map +1 -0
- package/dist/FlatListPerformanceViewNativeComponent.kepler.d.ts +5 -0
- package/dist/FlatListPerformanceViewNativeComponent.kepler.d.ts.map +1 -0
- package/dist/FlatListPerformanceViewNativeComponent.kepler.js +35 -0
- package/dist/FlatListPerformanceViewNativeComponent.kepler.js.map +1 -0
- package/dist/ListsProfiler.d.ts +9 -0
- package/dist/ListsProfiler.d.ts.map +1 -0
- package/dist/ListsProfiler.js +54 -0
- package/dist/ListsProfiler.js.map +1 -0
- package/dist/ListsProfilerContext.d.ts +9 -0
- package/dist/ListsProfilerContext.d.ts.map +1 -0
- package/dist/ListsProfilerContext.js +11 -0
- package/dist/ListsProfilerContext.js.map +1 -0
- package/dist/ListsProfilerModule.d.ts +6 -0
- package/dist/ListsProfilerModule.d.ts.map +1 -0
- package/dist/ListsProfilerModule.js +14 -0
- package/dist/ListsProfilerModule.js.map +1 -0
- package/dist/ListsProfilerProps.d.ts +19 -0
- package/dist/ListsProfilerProps.d.ts.map +1 -0
- package/dist/ListsProfilerProps.js +3 -0
- package/dist/ListsProfilerProps.js.map +1 -0
- package/dist/__tests__/FlashListPerformanceView.test.d.ts +2 -0
- package/dist/__tests__/FlashListPerformanceView.test.d.ts.map +1 -0
- package/dist/__tests__/FlashListPerformanceView.test.js +53 -0
- package/dist/__tests__/FlashListPerformanceView.test.js.map +1 -0
- package/dist/__tests__/FlatListPerformanceView.test.d.ts +2 -0
- package/dist/__tests__/FlatListPerformanceView.test.d.ts.map +1 -0
- package/dist/__tests__/FlatListPerformanceView.test.js +59 -0
- package/dist/__tests__/FlatListPerformanceView.test.js.map +1 -0
- package/dist/__tests__/ListProfiler.test.d.ts +2 -0
- package/dist/__tests__/ListProfiler.test.d.ts.map +1 -0
- package/dist/__tests__/ListProfiler.test.js +53 -0
- package/dist/__tests__/ListProfiler.test.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/ios/ReactNativePerformanceListsProfiler.xcodeproj/project.pbxproj +3 -0
- package/ios/Sources/BlankAreaView.swift +111 -0
- package/ios/Sources/FlashListPerformanceViewManager.m +9 -0
- package/ios/Sources/FlashListPerformanceViewManager.swift +23 -0
- package/ios/Sources/FlatListPerformanceViewManager.m +9 -0
- package/ios/Sources/FlatListPerformanceViewManager.swift +18 -0
- package/ios/Sources/ReactNativePerfomanceListsProfilerUmbrella.h +8 -0
- package/ios/Tests/ReactNativePerformanceListsProfilerTests.swift +5 -0
- package/kepler-compatibility.json +8 -0
- package/kepler-transformed-package-info.json +3 -0
- package/package.json +1 -0
- package/src/FlashListPerformanceView.tsx +44 -0
- package/src/FlashListPerformanceView.types.ts +23 -0
- package/src/FlashListPerformanceViewNativeComponent.kepler.ts +38 -0
- package/src/FlashListPerformanceViewNativeComponent.ts +7 -0
- package/src/FlatListPerformanceView.tsx +61 -0
- package/src/FlatListPerformanceView.types.ts +28 -0
- package/src/FlatListPerformanceViewNativeComponent.kepler.tsx +38 -0
- package/src/FlatListPerformanceViewNativeComponent.tsx +7 -0
- package/src/ListsProfiler.tsx +67 -0
- package/src/ListsProfilerContext.tsx +13 -0
- package/src/ListsProfilerModule.ts +25 -0
- package/src/ListsProfilerProps.ts +18 -0
- package/src/__tests__/FlashListPerformanceView.test.tsx +71 -0
- package/src/__tests__/FlatListPerformanceView.test.tsx +77 -0
- package/src/__tests__/ListProfiler.test.tsx +60 -0
- package/src/__tests__/setupJest.js +5 -0
- package/src/index.ts +3 -0
package/android/src/main/kotlin/com/shopify/reactnativeperformancelistsprofiler/BlankAreaView.kt
ADDED
|
@@ -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 @@
|
|
|
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"}
|