@react-native-ohos/flash-list 1.8.3 → 2.1.1-rc.1
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 +1 -1
- package/README.OpenSource +1 -1
- package/dist/AnimatedFlashList.d.ts +4 -28
- package/dist/AnimatedFlashList.d.ts.map +1 -1
- package/dist/AnimatedFlashList.js +5 -30
- package/dist/AnimatedFlashList.js.map +1 -1
- package/dist/FlashList.d.ts +1 -179
- package/dist/FlashList.d.ts.map +1 -1
- package/dist/FlashList.js +1 -599
- package/dist/FlashList.js.map +1 -1
- package/dist/FlashListProps.d.ts +285 -278
- package/dist/FlashListProps.d.ts.map +1 -1
- package/dist/FlashListProps.js +5 -31
- package/dist/FlashListProps.js.map +1 -1
- package/dist/FlashListRef.d.ts +305 -0
- package/dist/FlashListRef.d.ts.map +1 -0
- package/dist/FlashListRef.js +2 -0
- package/dist/FlashListRef.js.map +1 -0
- package/dist/benchmark/AutoScrollHelper.d.ts +17 -40
- package/dist/benchmark/AutoScrollHelper.d.ts.map +1 -1
- package/dist/benchmark/AutoScrollHelper.js +59 -90
- package/dist/benchmark/AutoScrollHelper.js.map +1 -1
- package/dist/benchmark/JSFPSMonitor.d.ts +22 -45
- package/dist/benchmark/JSFPSMonitor.d.ts.map +1 -1
- package/dist/benchmark/JSFPSMonitor.js +59 -87
- package/dist/benchmark/JSFPSMonitor.js.map +1 -1
- package/dist/benchmark/roundToDecimalPlaces.d.ts +1 -24
- package/dist/benchmark/roundToDecimalPlaces.d.ts.map +1 -1
- package/dist/benchmark/roundToDecimalPlaces.js +4 -31
- package/dist/benchmark/roundToDecimalPlaces.js.map +1 -1
- package/dist/benchmark/useBenchmark.d.ts +40 -57
- package/dist/benchmark/useBenchmark.d.ts.map +1 -1
- package/dist/benchmark/useBenchmark.js +119 -189
- package/dist/benchmark/useBenchmark.js.map +1 -1
- package/dist/benchmark/useDataMultiplier.d.ts +8 -31
- package/dist/benchmark/useDataMultiplier.d.ts.map +1 -1
- package/dist/benchmark/useDataMultiplier.js +19 -47
- package/dist/benchmark/useDataMultiplier.js.map +1 -1
- package/dist/benchmark/useFlatListBenchmark.d.ts +14 -35
- package/dist/benchmark/useFlatListBenchmark.d.ts.map +1 -1
- package/dist/benchmark/useFlatListBenchmark.js +92 -122
- package/dist/benchmark/useFlatListBenchmark.js.map +1 -1
- package/dist/errors/ErrorMessages.d.ts +16 -0
- package/dist/errors/ErrorMessages.d.ts.map +1 -0
- package/dist/errors/ErrorMessages.js +16 -0
- package/dist/errors/ErrorMessages.js.map +1 -0
- package/dist/errors/WarningMessages.d.ts +6 -0
- package/dist/errors/WarningMessages.d.ts.map +1 -0
- package/dist/errors/WarningMessages.js +7 -0
- package/dist/errors/WarningMessages.js.map +1 -0
- package/dist/index.d.ts +15 -36
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -54
- package/dist/index.js.map +1 -1
- package/dist/isNewArch.d.ts +2 -0
- package/dist/isNewArch.d.ts.map +1 -0
- package/dist/isNewArch.js +22 -0
- package/dist/isNewArch.js.map +1 -0
- package/dist/native/config/PlatformHelper.android.d.ts +6 -48
- package/dist/native/config/PlatformHelper.android.d.ts.map +1 -1
- package/dist/native/config/PlatformHelper.android.js +6 -45
- package/dist/native/config/PlatformHelper.android.js.map +1 -1
- package/dist/native/config/PlatformHelper.d.ts +6 -48
- package/dist/native/config/PlatformHelper.d.ts.map +1 -1
- package/dist/native/config/PlatformHelper.harmony.d.ts +29 -48
- package/dist/native/config/PlatformHelper.harmony.d.ts.map +1 -1
- package/dist/native/config/PlatformHelper.harmony.js +29 -44
- package/dist/native/config/PlatformHelper.harmony.js.map +1 -1
- package/dist/native/config/PlatformHelper.ios.d.ts +6 -48
- package/dist/native/config/PlatformHelper.ios.d.ts.map +1 -1
- package/dist/native/config/PlatformHelper.ios.js +6 -44
- package/dist/native/config/PlatformHelper.ios.js.map +1 -1
- package/dist/native/config/PlatformHelper.js +6 -45
- package/dist/native/config/PlatformHelper.js.map +1 -1
- package/dist/native/config/PlatformHelper.web.d.ts +6 -49
- package/dist/native/config/PlatformHelper.web.d.ts.map +1 -1
- package/dist/native/config/PlatformHelper.web.js +6 -47
- package/dist/native/config/PlatformHelper.web.js.map +1 -1
- package/dist/recyclerview/LayoutCommitObserver.d.ts +12 -0
- package/dist/recyclerview/LayoutCommitObserver.d.ts.map +1 -0
- package/dist/recyclerview/LayoutCommitObserver.js +58 -0
- package/dist/recyclerview/LayoutCommitObserver.js.map +1 -0
- package/dist/recyclerview/RecyclerView.d.ts +13 -0
- package/dist/recyclerview/RecyclerView.d.ts.map +1 -0
- package/dist/recyclerview/RecyclerView.js +368 -0
- package/dist/recyclerview/RecyclerView.js.map +1 -0
- package/dist/recyclerview/RecyclerViewContextProvider.d.ts +46 -0
- package/dist/recyclerview/RecyclerViewContextProvider.d.ts.map +1 -0
- package/dist/recyclerview/RecyclerViewContextProvider.js +10 -0
- package/dist/recyclerview/RecyclerViewContextProvider.js.map +1 -0
- package/dist/recyclerview/RecyclerViewManager.d.ts +78 -0
- package/dist/recyclerview/RecyclerViewManager.d.ts.map +1 -0
- package/dist/recyclerview/RecyclerViewManager.js +343 -0
- package/dist/recyclerview/RecyclerViewManager.js.map +1 -0
- package/dist/recyclerview/RecyclerViewProps.d.ts +2 -0
- package/dist/recyclerview/RecyclerViewProps.d.ts.map +1 -0
- package/dist/recyclerview/RecyclerViewProps.js +2 -0
- package/dist/recyclerview/RecyclerViewProps.js.map +1 -0
- package/dist/recyclerview/RenderStackManager.d.ts +86 -0
- package/dist/recyclerview/RenderStackManager.d.ts.map +1 -0
- package/dist/recyclerview/RenderStackManager.js +252 -0
- package/dist/recyclerview/RenderStackManager.js.map +1 -0
- package/dist/recyclerview/ViewHolder.d.ts +45 -0
- package/dist/recyclerview/ViewHolder.d.ts.map +1 -0
- package/dist/recyclerview/ViewHolder.js +94 -0
- package/dist/recyclerview/ViewHolder.js.map +1 -0
- package/dist/recyclerview/ViewHolderCollection.d.ts +63 -0
- package/dist/recyclerview/ViewHolderCollection.d.ts.map +1 -0
- package/dist/recyclerview/ViewHolderCollection.js +87 -0
- package/dist/recyclerview/ViewHolderCollection.js.map +1 -0
- package/dist/recyclerview/components/CompatScroller.d.ts +7 -0
- package/dist/recyclerview/components/CompatScroller.d.ts.map +1 -0
- package/dist/recyclerview/components/CompatScroller.js +7 -0
- package/dist/recyclerview/components/CompatScroller.js.map +1 -0
- package/dist/recyclerview/components/CompatView.d.ts +7 -0
- package/dist/recyclerview/components/CompatView.d.ts.map +1 -0
- package/dist/recyclerview/components/CompatView.js +7 -0
- package/dist/recyclerview/components/CompatView.js.map +1 -0
- package/dist/recyclerview/components/ScrollAnchor.d.ts +29 -0
- package/dist/recyclerview/components/ScrollAnchor.d.ts.map +1 -0
- package/dist/recyclerview/components/ScrollAnchor.js +33 -0
- package/dist/recyclerview/components/ScrollAnchor.js.map +1 -0
- package/dist/recyclerview/components/StickyHeaders.d.ts +38 -0
- package/dist/recyclerview/components/StickyHeaders.d.ts.map +1 -0
- package/dist/recyclerview/components/StickyHeaders.js +112 -0
- package/dist/recyclerview/components/StickyHeaders.js.map +1 -0
- package/dist/recyclerview/helpers/ConsecutiveNumbers.d.ts +51 -0
- package/dist/recyclerview/helpers/ConsecutiveNumbers.d.ts.map +1 -0
- package/dist/recyclerview/helpers/ConsecutiveNumbers.js +95 -0
- package/dist/recyclerview/helpers/ConsecutiveNumbers.js.map +1 -0
- package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts +105 -0
- package/dist/recyclerview/helpers/EngagedIndicesTracker.d.ts.map +1 -0
- package/dist/recyclerview/helpers/EngagedIndicesTracker.js +202 -0
- package/dist/recyclerview/helpers/EngagedIndicesTracker.js.map +1 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.d.ts +14 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.d.ts.map +1 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.js +44 -0
- package/dist/recyclerview/helpers/RenderTimeTracker.js.map +1 -0
- package/dist/recyclerview/helpers/VelocityTracker.d.ts +29 -0
- package/dist/recyclerview/helpers/VelocityTracker.d.ts.map +1 -0
- package/dist/recyclerview/helpers/VelocityTracker.js +64 -0
- package/dist/recyclerview/helpers/VelocityTracker.js.map +1 -0
- package/dist/recyclerview/hooks/useBoundDetection.d.ts +17 -0
- package/dist/recyclerview/hooks/useBoundDetection.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useBoundDetection.js +132 -0
- package/dist/recyclerview/hooks/useBoundDetection.js.map +1 -0
- package/dist/recyclerview/hooks/useLayoutState.d.ts +14 -0
- package/dist/recyclerview/hooks/useLayoutState.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useLayoutState.js +38 -0
- package/dist/recyclerview/hooks/useLayoutState.js.map +1 -0
- package/dist/recyclerview/hooks/useMappingHelper.d.ts +9 -0
- package/dist/recyclerview/hooks/useMappingHelper.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useMappingHelper.js +15 -0
- package/dist/recyclerview/hooks/useMappingHelper.js.map +1 -0
- package/dist/recyclerview/hooks/useOnLoad.d.ts +25 -0
- package/dist/recyclerview/hooks/useOnLoad.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useOnLoad.js +67 -0
- package/dist/recyclerview/hooks/useOnLoad.js.map +1 -0
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts +28 -0
- package/dist/recyclerview/hooks/useRecyclerViewController.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useRecyclerViewController.js +507 -0
- package/dist/recyclerview/hooks/useRecyclerViewController.js.map +1 -0
- package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts +8 -0
- package/dist/recyclerview/hooks/useRecyclerViewManager.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useRecyclerViewManager.js +32 -0
- package/dist/recyclerview/hooks/useRecyclerViewManager.js.map +1 -0
- package/dist/recyclerview/hooks/useRecyclingState.d.ts +18 -0
- package/dist/recyclerview/hooks/useRecyclingState.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useRecyclingState.js +49 -0
- package/dist/recyclerview/hooks/useRecyclingState.js.map +1 -0
- package/dist/recyclerview/hooks/useSecondaryProps.d.ts +27 -0
- package/dist/recyclerview/hooks/useSecondaryProps.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useSecondaryProps.js +90 -0
- package/dist/recyclerview/hooks/useSecondaryProps.js.map +1 -0
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts +15 -0
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js +58 -0
- package/dist/recyclerview/hooks/useUnmountAwareCallbacks.js.map +1 -0
- package/dist/recyclerview/hooks/useUnmountFlag.d.ts +10 -0
- package/dist/recyclerview/hooks/useUnmountFlag.d.ts.map +1 -0
- package/dist/recyclerview/hooks/useUnmountFlag.js +25 -0
- package/dist/recyclerview/hooks/useUnmountFlag.js.map +1 -0
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts +79 -0
- package/dist/recyclerview/layout-managers/GridLayoutManager.d.ts.map +1 -0
- package/dist/recyclerview/layout-managers/GridLayoutManager.js +221 -0
- package/dist/recyclerview/layout-managers/GridLayoutManager.js.map +1 -0
- package/dist/recyclerview/layout-managers/LayoutManager.d.ts +296 -0
- package/dist/recyclerview/layout-managers/LayoutManager.d.ts.map +1 -0
- package/dist/recyclerview/layout-managers/LayoutManager.js +279 -0
- package/dist/recyclerview/layout-managers/LayoutManager.js.map +1 -0
- package/dist/recyclerview/layout-managers/LinearLayoutManager.d.ts +51 -0
- package/dist/recyclerview/layout-managers/LinearLayoutManager.d.ts.map +1 -0
- package/dist/recyclerview/layout-managers/LinearLayoutManager.js +151 -0
- package/dist/recyclerview/layout-managers/LinearLayoutManager.js.map +1 -0
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts +81 -0
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.d.ts.map +1 -0
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js +269 -0
- package/dist/recyclerview/layout-managers/MasonryLayoutManager.js.map +1 -0
- package/dist/recyclerview/utils/adjustOffsetForRTL.d.ts +12 -0
- package/dist/recyclerview/utils/adjustOffsetForRTL.d.ts.map +1 -0
- package/dist/recyclerview/utils/adjustOffsetForRTL.js +14 -0
- package/dist/recyclerview/utils/adjustOffsetForRTL.js.map +1 -0
- package/dist/recyclerview/utils/componentUtils.d.ts +19 -0
- package/dist/recyclerview/utils/componentUtils.d.ts.map +1 -0
- package/dist/recyclerview/utils/componentUtils.js +27 -0
- package/dist/recyclerview/utils/componentUtils.js.map +1 -0
- package/dist/recyclerview/utils/findVisibleIndex.d.ts +24 -0
- package/dist/recyclerview/utils/findVisibleIndex.d.ts.map +1 -0
- package/dist/recyclerview/utils/findVisibleIndex.js +76 -0
- package/dist/recyclerview/utils/findVisibleIndex.js.map +1 -0
- package/dist/recyclerview/utils/measureLayout.d.ts +52 -0
- package/dist/recyclerview/utils/measureLayout.d.ts.map +1 -0
- package/dist/recyclerview/utils/measureLayout.js +99 -0
- package/dist/recyclerview/utils/measureLayout.js.map +1 -0
- package/dist/recyclerview/utils/measureLayout.web.d.ts +29 -0
- package/dist/recyclerview/utils/measureLayout.web.d.ts.map +1 -0
- package/dist/recyclerview/utils/measureLayout.web.js +79 -0
- package/dist/recyclerview/utils/measureLayout.web.js.map +1 -0
- package/dist/recyclerview/viewability/ViewToken.d.ts +8 -0
- package/dist/recyclerview/viewability/ViewToken.d.ts.map +1 -0
- package/dist/recyclerview/viewability/ViewToken.js +2 -0
- package/dist/recyclerview/viewability/ViewToken.js.map +1 -0
- package/dist/recyclerview/viewability/ViewabilityHelper.d.ts +26 -0
- package/dist/recyclerview/viewability/ViewabilityHelper.d.ts.map +1 -0
- package/dist/recyclerview/viewability/ViewabilityHelper.js +98 -0
- package/dist/recyclerview/viewability/ViewabilityHelper.js.map +1 -0
- package/dist/recyclerview/viewability/ViewabilityManager.d.ts +25 -0
- package/dist/recyclerview/viewability/ViewabilityManager.d.ts.map +1 -0
- package/dist/recyclerview/viewability/ViewabilityManager.js +94 -0
- package/dist/recyclerview/viewability/ViewabilityManager.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/AverageWindow.d.ts +33 -43
- package/dist/utils/AverageWindow.d.ts.map +1 -1
- package/dist/utils/AverageWindow.js +66 -71
- package/dist/utils/AverageWindow.js.map +1 -1
- package/jestSetup.js +23 -37
- package/package.json +15 -24
- package/src/AnimatedFlashList.ts +2 -25
- package/src/FlashList.ts +1 -0
- package/src/FlashListProps.ts +109 -100
- package/src/FlashListRef.ts +320 -0
- package/src/benchmark/AutoScrollHelper.ts +0 -24
- package/src/benchmark/JSFPSMonitor.ts +2 -26
- package/src/benchmark/roundToDecimalPlaces.ts +0 -24
- package/src/benchmark/useBenchmark.ts +59 -105
- package/src/benchmark/useDataMultiplier.ts +0 -24
- package/src/benchmark/useFlatListBenchmark.ts +43 -32
- package/src/errors/ErrorMessages.ts +26 -0
- package/src/errors/WarningMessages.ts +9 -0
- package/src/index.ts +18 -46
- package/src/isNewArch.ts +25 -0
- package/src/native/config/PlatformHelper.android.ts +3 -49
- package/src/native/config/PlatformHelper.harmony.ts +3 -24
- package/src/native/config/PlatformHelper.ios.ts +3 -48
- package/src/native/config/PlatformHelper.ts +3 -49
- package/src/native/config/PlatformHelper.web.ts +4 -55
- package/src/recyclerview/LayoutCommitObserver.tsx +74 -0
- package/src/recyclerview/RecyclerView.tsx +616 -0
- package/src/recyclerview/RecyclerViewContextProvider.ts +65 -0
- package/src/recyclerview/RecyclerViewManager.ts +461 -0
- package/src/recyclerview/RecyclerViewProps.ts +1 -0
- package/src/recyclerview/RenderStackManager.ts +317 -0
- package/src/recyclerview/ViewHolder.tsx +180 -0
- package/src/recyclerview/ViewHolderCollection.tsx +193 -0
- package/src/recyclerview/components/CompatScroller.ts +9 -0
- package/src/recyclerview/components/CompatView.ts +9 -0
- package/src/recyclerview/components/ScrollAnchor.tsx +66 -0
- package/src/recyclerview/components/StickyHeaders.tsx +222 -0
- package/src/recyclerview/helpers/ConsecutiveNumbers.ts +120 -0
- package/src/recyclerview/helpers/EngagedIndicesTracker.ts +301 -0
- package/src/recyclerview/helpers/RenderTimeTracker.ts +50 -0
- package/src/recyclerview/helpers/VelocityTracker.ts +77 -0
- package/src/recyclerview/hooks/useBoundDetection.ts +176 -0
- package/src/recyclerview/hooks/useLayoutState.ts +55 -0
- package/src/recyclerview/hooks/useMappingHelper.ts +20 -0
- package/src/recyclerview/hooks/useOnLoad.ts +80 -0
- package/src/recyclerview/hooks/useRecyclerViewController.tsx +633 -0
- package/src/recyclerview/hooks/useRecyclerViewManager.ts +42 -0
- package/src/recyclerview/hooks/useRecyclingState.ts +67 -0
- package/src/recyclerview/hooks/useSecondaryProps.tsx +124 -0
- package/src/recyclerview/hooks/useUnmountAwareCallbacks.ts +73 -0
- package/src/recyclerview/hooks/useUnmountFlag.ts +27 -0
- package/src/recyclerview/layout-managers/GridLayoutManager.ts +256 -0
- package/src/recyclerview/layout-managers/LayoutManager.ts +568 -0
- package/src/recyclerview/layout-managers/LinearLayoutManager.ts +171 -0
- package/src/recyclerview/layout-managers/MasonryLayoutManager.ts +323 -0
- package/src/recyclerview/utils/adjustOffsetForRTL.ts +17 -0
- package/src/recyclerview/utils/componentUtils.ts +28 -0
- package/src/recyclerview/utils/findVisibleIndex.ts +93 -0
- package/src/recyclerview/utils/measureLayout.ts +128 -0
- package/src/recyclerview/utils/measureLayout.web.ts +102 -0
- package/src/recyclerview/viewability/ViewToken.ts +7 -0
- package/src/{viewability → recyclerview/viewability}/ViewabilityHelper.ts +8 -33
- package/src/{viewability → recyclerview/viewability}/ViewabilityManager.ts +23 -46
- package/src/utils/AverageWindow.ts +33 -24
- package/dist/GridLayoutProviderWithProps.d.ts +0 -65
- package/dist/GridLayoutProviderWithProps.d.ts.map +0 -1
- package/dist/GridLayoutProviderWithProps.js +0 -138
- package/dist/GridLayoutProviderWithProps.js.map +0 -1
- package/dist/MasonryFlashList.d.ts +0 -74
- package/dist/MasonryFlashList.d.ts.map +0 -1
- package/dist/MasonryFlashList.js +0 -275
- package/dist/MasonryFlashList.js.map +0 -1
- package/dist/PureComponentWrapper.d.ts +0 -45
- package/dist/PureComponentWrapper.d.ts.map +0 -1
- package/dist/PureComponentWrapper.js +0 -60
- package/dist/PureComponentWrapper.js.map +0 -1
- package/dist/benchmark/useBlankAreaTracker.d.ts +0 -57
- package/dist/benchmark/useBlankAreaTracker.d.ts.map +0 -1
- package/dist/benchmark/useBlankAreaTracker.js +0 -90
- package/dist/benchmark/useBlankAreaTracker.js.map +0 -1
- package/dist/errors/CustomError.d.ts +0 -31
- package/dist/errors/CustomError.d.ts.map +0 -1
- package/dist/errors/CustomError.js +0 -37
- package/dist/errors/CustomError.js.map +0 -1
- package/dist/errors/ExceptionList.d.ts +0 -47
- package/dist/errors/ExceptionList.d.ts.map +0 -1
- package/dist/errors/ExceptionList.js +0 -49
- package/dist/errors/ExceptionList.js.map +0 -1
- package/dist/errors/Warnings.d.ts +0 -32
- package/dist/errors/Warnings.d.ts.map +0 -1
- package/dist/errors/Warnings.js +0 -36
- package/dist/errors/Warnings.js.map +0 -1
- package/dist/fabric/AutoLayoutNativeComponent.d.ts +0 -42
- package/dist/fabric/AutoLayoutNativeComponent.d.ts.map +0 -1
- package/dist/fabric/AutoLayoutNativeComponent.js +0 -29
- package/dist/fabric/AutoLayoutNativeComponent.js.map +0 -1
- package/dist/fabric/CellContainerNativeComponent.d.ts +0 -31
- package/dist/fabric/CellContainerNativeComponent.d.ts.map +0 -1
- package/dist/fabric/CellContainerNativeComponent.js +0 -29
- package/dist/fabric/CellContainerNativeComponent.js.map +0 -1
- package/dist/native/auto-layout/AutoLayoutView.d.ts +0 -45
- package/dist/native/auto-layout/AutoLayoutView.d.ts.map +0 -1
- package/dist/native/auto-layout/AutoLayoutView.js +0 -71
- package/dist/native/auto-layout/AutoLayoutView.js.map +0 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.d.ts +0 -27
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.d.ts.map +0 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.js +0 -29
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.android.js.map +0 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.d.ts +0 -28
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.d.ts.map +0 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.d.ts +0 -27
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.d.ts.map +0 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.js +0 -29
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.harmony.js.map +0 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.d.ts +0 -27
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.d.ts.map +0 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.js +0 -29
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.ios.js.map +0 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.js +0 -29
- package/dist/native/auto-layout/AutoLayoutViewNativeComponent.js.map +0 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts +0 -39
- package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.d.ts.map +0 -1
- package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.js +0 -26
- package/dist/native/auto-layout/AutoLayoutViewNativeComponentProps.js.map +0 -1
- package/dist/native/cell-container/CellContainer.android.d.ts +0 -29
- package/dist/native/cell-container/CellContainer.android.d.ts.map +0 -1
- package/dist/native/cell-container/CellContainer.android.js +0 -32
- package/dist/native/cell-container/CellContainer.android.js.map +0 -1
- package/dist/native/cell-container/CellContainer.d.ts +0 -31
- package/dist/native/cell-container/CellContainer.d.ts.map +0 -1
- package/dist/native/cell-container/CellContainer.harmony.d.ts +0 -29
- package/dist/native/cell-container/CellContainer.harmony.d.ts.map +0 -1
- package/dist/native/cell-container/CellContainer.harmony.js +0 -32
- package/dist/native/cell-container/CellContainer.harmony.js.map +0 -1
- package/dist/native/cell-container/CellContainer.ios.d.ts +0 -29
- package/dist/native/cell-container/CellContainer.ios.d.ts.map +0 -1
- package/dist/native/cell-container/CellContainer.ios.js +0 -32
- package/dist/native/cell-container/CellContainer.ios.js.map +0 -1
- package/dist/native/cell-container/CellContainer.js +0 -34
- package/dist/native/cell-container/CellContainer.js.map +0 -1
- package/dist/native/cell-container/CellContainer.web.d.ts +0 -30
- package/dist/native/cell-container/CellContainer.web.d.ts.map +0 -1
- package/dist/native/cell-container/CellContainer.web.js +0 -36
- package/dist/native/cell-container/CellContainer.web.js.map +0 -1
- package/dist/utils/ContentContainerUtils.d.ts +0 -50
- package/dist/utils/ContentContainerUtils.d.ts.map +0 -1
- package/dist/utils/ContentContainerUtils.js +0 -71
- package/dist/utils/ContentContainerUtils.js.map +0 -1
- package/dist/viewability/ViewToken.d.ts +0 -31
- package/dist/viewability/ViewToken.d.ts.map +0 -1
- package/dist/viewability/ViewToken.js +0 -26
- package/dist/viewability/ViewToken.js.map +0 -1
- package/dist/viewability/ViewabilityHelper.d.ts +0 -49
- package/dist/viewability/ViewabilityHelper.d.ts.map +0 -1
- package/dist/viewability/ViewabilityHelper.js +0 -130
- package/dist/viewability/ViewabilityHelper.js.map +0 -1
- package/dist/viewability/ViewabilityManager.d.ts +0 -48
- package/dist/viewability/ViewabilityManager.d.ts.map +0 -1
- package/dist/viewability/ViewabilityManager.js +0 -131
- package/dist/viewability/ViewabilityManager.js.map +0 -1
- package/harmony/flash_list/BuildProfile.ets +0 -17
- package/harmony/flash_list/LICENSE +0 -7
- package/harmony/flash_list/build-profile.json5 +0 -8
- package/harmony/flash_list/hvigorfile.ts +0 -1
- package/harmony/flash_list/index.ets +0 -27
- package/harmony/flash_list/obfuscation-rules.txt +0 -18
- package/harmony/flash_list/oh-package.json5 +0 -24
- package/harmony/flash_list/src/main/cpp/AutoLayoutNode.cpp +0 -63
- package/harmony/flash_list/src/main/cpp/AutoLayoutNode.h +0 -54
- package/harmony/flash_list/src/main/cpp/AutoLayoutShadow.cpp +0 -140
- package/harmony/flash_list/src/main/cpp/AutoLayoutShadow.h +0 -66
- package/harmony/flash_list/src/main/cpp/AutoLayoutViewComponentInstance.cpp +0 -208
- package/harmony/flash_list/src/main/cpp/AutoLayoutViewComponentInstance.h +0 -78
- package/harmony/flash_list/src/main/cpp/AutoLayoutViewEventEmitRequestHandler.h +0 -53
- package/harmony/flash_list/src/main/cpp/AutoLayoutViewJSIBinder.h +0 -50
- package/harmony/flash_list/src/main/cpp/CMakeLists.txt +0 -12
- package/harmony/flash_list/src/main/cpp/CellContainerComponentInstance.cpp +0 -80
- package/harmony/flash_list/src/main/cpp/CellContainerComponentInstance.h +0 -64
- package/harmony/flash_list/src/main/cpp/CellContainerJSIBinder.h +0 -39
- package/harmony/flash_list/src/main/cpp/ComponentDescriptors.h +0 -40
- package/harmony/flash_list/src/main/cpp/EventEmitters.cpp +0 -40
- package/harmony/flash_list/src/main/cpp/EventEmitters.h +0 -48
- package/harmony/flash_list/src/main/cpp/FlashListPackage.h +0 -85
- package/harmony/flash_list/src/main/cpp/FlashListStackNode.cpp +0 -87
- package/harmony/flash_list/src/main/cpp/FlashListStackNode.h +0 -57
- package/harmony/flash_list/src/main/cpp/Props.cpp +0 -52
- package/harmony/flash_list/src/main/cpp/Props.h +0 -64
- package/harmony/flash_list/src/main/cpp/ShadowNodes.cpp +0 -34
- package/harmony/flash_list/src/main/cpp/ShadowNodes.h +0 -48
- package/harmony/flash_list/src/main/ets/Logger.ets +0 -64
- package/harmony/flash_list/src/main/ets/RNAutoLayoutShadow.ets +0 -154
- package/harmony/flash_list/src/main/ets/RNAutoLayoutView.ets +0 -277
- package/harmony/flash_list/src/main/ets/RNCellContainer.ets +0 -113
- package/harmony/flash_list/src/main/module.json5 +0 -9
- package/harmony/flash_list/src/main/resources/base/element/color.json +0 -8
- package/harmony/flash_list/src/main/resources/base/element/string.json +0 -16
- package/harmony/flash_list/src/main/resources/base/media/icon.png +0 -0
- package/harmony/flash_list/src/main/resources/base/profile/main_pages.json +0 -5
- package/harmony/flash_list/src/main/resources/en_US/element/string.json +0 -16
- package/harmony/flash_list/src/main/resources/zh_CN/element/string.json +0 -16
- package/harmony/flash_list.har +0 -0
- package/src/FlashList.tsx +0 -949
- package/src/GridLayoutProviderWithProps.ts +0 -204
- package/src/MasonryFlashList.tsx +0 -499
- package/src/PureComponentWrapper.tsx +0 -65
- package/src/benchmark/useBlankAreaTracker.ts +0 -141
- package/src/errors/CustomError.ts +0 -34
- package/src/errors/ExceptionList.ts +0 -52
- package/src/errors/Warnings.ts +0 -39
- package/src/fabric/AutoLayoutNativeComponent.ts +0 -52
- package/src/fabric/CellContainerNativeComponent.ts +0 -35
- package/src/native/auto-layout/AutoLayoutView.tsx +0 -97
- package/src/native/auto-layout/AutoLayoutViewNativeComponent.android.ts +0 -31
- package/src/native/auto-layout/AutoLayoutViewNativeComponent.harmony.ts +0 -31
- package/src/native/auto-layout/AutoLayoutViewNativeComponent.ios.ts +0 -31
- package/src/native/auto-layout/AutoLayoutViewNativeComponent.ts +0 -31
- package/src/native/auto-layout/AutoLayoutViewNativeComponentProps.ts +0 -41
- package/src/native/cell-container/CellContainer.android.ts +0 -31
- package/src/native/cell-container/CellContainer.harmony.ts +0 -31
- package/src/native/cell-container/CellContainer.ios.ts +0 -31
- package/src/native/cell-container/CellContainer.tsx +0 -38
- package/src/native/cell-container/CellContainer.web.tsx +0 -33
- package/src/utils/ContentContainerUtils.ts +0 -116
- package/src/viewability/ViewToken.ts +0 -31
|
@@ -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;AAqBD;;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,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets scroll offsets from up to 3 parent elements
|
|
3
|
+
*/
|
|
4
|
+
function getScrollOffsets(element, stopAt) {
|
|
5
|
+
var _a, _b;
|
|
6
|
+
let scrollX = 0;
|
|
7
|
+
let scrollY = 0;
|
|
8
|
+
let currentElement = element;
|
|
9
|
+
// Only check up to 3 parent elements
|
|
10
|
+
while (currentElement && currentElement !== stopAt) {
|
|
11
|
+
const htmlElement = currentElement;
|
|
12
|
+
scrollX += (_a = htmlElement.scrollLeft) !== null && _a !== void 0 ? _a : 0;
|
|
13
|
+
scrollY += (_b = htmlElement.scrollTop) !== null && _b !== void 0 ? _b : 0;
|
|
14
|
+
currentElement = currentElement.parentElement;
|
|
15
|
+
}
|
|
16
|
+
return { scrollX, scrollY };
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Checks if two dimension values are not equal, with a small tolerance.
|
|
20
|
+
*/
|
|
21
|
+
export function areDimensionsNotEqual(value1, value2) {
|
|
22
|
+
return !areDimensionsEqual(value1, value2);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Checks if two dimension values are equal, with a small tolerance.
|
|
26
|
+
*/
|
|
27
|
+
export function areDimensionsEqual(value1, value2) {
|
|
28
|
+
return Math.abs(value1 - value2) <= 1;
|
|
29
|
+
}
|
|
30
|
+
export function roundOffPixel(value) {
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Measures the layout of parent of RecyclerView
|
|
35
|
+
*/
|
|
36
|
+
export function measureParentSize(view) {
|
|
37
|
+
return {
|
|
38
|
+
x: 0,
|
|
39
|
+
y: 0,
|
|
40
|
+
width: view.clientWidth,
|
|
41
|
+
height: view.clientHeight,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Measures the layout of child container of RecyclerView
|
|
46
|
+
*/
|
|
47
|
+
export function measureFirstChildLayout(childContainerView, parentView) {
|
|
48
|
+
const childRect = childContainerView.getBoundingClientRect();
|
|
49
|
+
const parentRect = parentView.getBoundingClientRect();
|
|
50
|
+
// Get scroll offsets for child container (max 3 parents)
|
|
51
|
+
const scrollOffsets = getScrollOffsets(childContainerView, parentView);
|
|
52
|
+
return {
|
|
53
|
+
x: childRect.left - parentRect.left + scrollOffsets.scrollX,
|
|
54
|
+
y: childRect.top - parentRect.top + scrollOffsets.scrollY,
|
|
55
|
+
width: roundOffPixel(childRect.width),
|
|
56
|
+
height: roundOffPixel(childRect.height),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Measures the layout of items of RecyclerView
|
|
61
|
+
*/
|
|
62
|
+
export function measureItemLayout(item, oldLayout) {
|
|
63
|
+
const layout = {
|
|
64
|
+
x: 0,
|
|
65
|
+
y: 0,
|
|
66
|
+
width: item.clientWidth,
|
|
67
|
+
height: item.clientHeight,
|
|
68
|
+
};
|
|
69
|
+
if (oldLayout) {
|
|
70
|
+
if (areDimensionsEqual(layout.width, oldLayout.width)) {
|
|
71
|
+
layout.width = oldLayout.width;
|
|
72
|
+
}
|
|
73
|
+
if (areDimensionsEqual(layout.height, oldLayout.height)) {
|
|
74
|
+
layout.height = oldLayout.height;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return layout;
|
|
78
|
+
}
|
|
79
|
+
//# 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":"AAOA;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAgB,EAAE,MAAe;;IACzD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,cAAc,GAAmB,OAAO,CAAC;IAE7C,qCAAqC;IACrC,OAAO,cAAc,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,cAA6B,CAAC;QAClD,OAAO,IAAI,MAAA,WAAW,CAAC,UAAU,mCAAI,CAAC,CAAC;QACvC,OAAO,IAAI,MAAA,WAAW,CAAC,SAAS,mCAAI,CAAC,CAAC;QACtC,cAAc,GAAG,cAAc,CAAC,aAAa,CAAC;IAChD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,MAAc;IAClE,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAAc;IAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC7C,OAAO;QACL,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,IAAI,CAAC,WAAW;QACvB,MAAM,EAAE,IAAI,CAAC,YAAY;KAC1B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,kBAA2B,EAC3B,UAAmB;IAEnB,MAAM,SAAS,GAAG,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;IAC7D,MAAM,UAAU,GAAG,UAAU,CAAC,qBAAqB,EAAE,CAAC;IAEtD,yDAAyD;IACzD,MAAM,aAAa,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAEvE,OAAO;QACL,CAAC,EAAE,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,aAAa,CAAC,OAAO;QAC3D,CAAC,EAAE,SAAS,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,aAAa,CAAC,OAAO;QACzD,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC;QACrC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC;KACxC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAa,EACb,SAA6B;IAE7B,MAAM,MAAM,GAAG;QACb,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,IAAI,CAAC,WAAW;QACvB,MAAM,EAAE,IAAI,CAAC,YAAY;KAC1B,CAAC;IAEF,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;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewToken.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/viewability/ViewToken.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC;IACR,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewToken.js","sourceRoot":"","sources":["../../../src/recyclerview/viewability/ViewToken.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ViewabilityConfig } from "react-native";
|
|
2
|
+
import { RVDimension, RVLayout } from "../layout-managers/LayoutManager";
|
|
3
|
+
/**
|
|
4
|
+
* Helper class for computing viewable items based on the passed `viewabilityConfig`.
|
|
5
|
+
* Note methods in this class will be invoked on every scroll and should be optimized for performance.
|
|
6
|
+
*/
|
|
7
|
+
declare class ViewabilityHelper {
|
|
8
|
+
/**
|
|
9
|
+
* Viewable indices regardless of the viewability config
|
|
10
|
+
*/
|
|
11
|
+
possiblyViewableIndices: number[];
|
|
12
|
+
hasInteracted: boolean;
|
|
13
|
+
private viewableIndices;
|
|
14
|
+
private lastReportedViewableIndices;
|
|
15
|
+
private viewabilityConfig;
|
|
16
|
+
private viewableIndicesChanged;
|
|
17
|
+
private timers;
|
|
18
|
+
constructor(viewabilityConfig: ViewabilityConfig | null | undefined, viewableIndicesChanged: (indices: number[], newlyVisibleIndicies: number[], newlyNonvisibleIndices: number[]) => void);
|
|
19
|
+
dispose(): void;
|
|
20
|
+
updateViewableItems(horizontal: boolean, scrollOffset: number, listSize: RVDimension, getLayout: (index: number) => RVLayout | undefined, viewableIndices?: number[]): void;
|
|
21
|
+
checkViewableIndicesChanges(newViewableIndices: number[]): void;
|
|
22
|
+
clearLastReportedViewableIndices(): void;
|
|
23
|
+
private isItemViewable;
|
|
24
|
+
}
|
|
25
|
+
export default ViewabilityHelper;
|
|
26
|
+
//# sourceMappingURL=ViewabilityHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewabilityHelper.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/viewability/ViewabilityHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAGzE;;;GAGG;AACH,cAAM,iBAAiB;IACrB;;OAEG;IACH,uBAAuB,EAAE,MAAM,EAAE,CAAM;IAEvC,aAAa,UAAS;IAEtB,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,2BAA2B,CAAgB;IAEnD,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,sBAAsB,CAIpB;IAEV,OAAO,CAAC,MAAM,CAAkC;gBAG9C,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACvD,sBAAsB,EAAE,CACtB,OAAO,EAAE,MAAM,EAAE,EACjB,oBAAoB,EAAE,MAAM,EAAE,EAC9B,sBAAsB,EAAE,MAAM,EAAE,KAC7B,IAAI;IAMJ,OAAO;IAKP,mBAAmB,CACxB,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,WAAW,EACrB,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,EAClD,eAAe,CAAC,EAAE,MAAM,EAAE;IA8CrB,2BAA2B,CAAC,kBAAkB,EAAE,MAAM,EAAE;IAsBxD,gCAAgC;IAIvC,OAAO,CAAC,cAAc;CAuCvB;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { ErrorMessages } from "../../errors/ErrorMessages";
|
|
2
|
+
/**
|
|
3
|
+
* Helper class for computing viewable items based on the passed `viewabilityConfig`.
|
|
4
|
+
* Note methods in this class will be invoked on every scroll and should be optimized for performance.
|
|
5
|
+
*/
|
|
6
|
+
class ViewabilityHelper {
|
|
7
|
+
constructor(viewabilityConfig, viewableIndicesChanged) {
|
|
8
|
+
/**
|
|
9
|
+
* Viewable indices regardless of the viewability config
|
|
10
|
+
*/
|
|
11
|
+
this.possiblyViewableIndices = [];
|
|
12
|
+
this.hasInteracted = false;
|
|
13
|
+
this.viewableIndices = [];
|
|
14
|
+
this.lastReportedViewableIndices = [];
|
|
15
|
+
this.timers = new Set();
|
|
16
|
+
this.viewabilityConfig = viewabilityConfig;
|
|
17
|
+
this.viewableIndicesChanged = viewableIndicesChanged;
|
|
18
|
+
}
|
|
19
|
+
dispose() {
|
|
20
|
+
// Clean up on dismount
|
|
21
|
+
this.timers.forEach(clearTimeout);
|
|
22
|
+
}
|
|
23
|
+
updateViewableItems(horizontal, scrollOffset, listSize, getLayout, viewableIndices) {
|
|
24
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
25
|
+
if (viewableIndices !== undefined) {
|
|
26
|
+
this.possiblyViewableIndices = viewableIndices;
|
|
27
|
+
}
|
|
28
|
+
if (((_a = this.viewabilityConfig) === null || _a === void 0 ? void 0 : _a.itemVisiblePercentThreshold) !== null &&
|
|
29
|
+
((_b = this.viewabilityConfig) === null || _b === void 0 ? void 0 : _b.itemVisiblePercentThreshold) !== undefined &&
|
|
30
|
+
((_c = this.viewabilityConfig) === null || _c === void 0 ? void 0 : _c.viewAreaCoveragePercentThreshold) !== null &&
|
|
31
|
+
((_d = this.viewabilityConfig) === null || _d === void 0 ? void 0 : _d.viewAreaCoveragePercentThreshold) !== undefined) {
|
|
32
|
+
throw new Error(ErrorMessages.multipleViewabilityThresholdTypesNotSupported);
|
|
33
|
+
}
|
|
34
|
+
if (((_f = (_e = this.viewabilityConfig) === null || _e === void 0 ? void 0 : _e.waitForInteraction) !== null && _f !== void 0 ? _f : false) &&
|
|
35
|
+
!this.hasInteracted) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const newViewableIndices = this.possiblyViewableIndices.filter((index) => {
|
|
39
|
+
var _a, _b;
|
|
40
|
+
return this.isItemViewable(index, horizontal, scrollOffset, listSize, (_a = this.viewabilityConfig) === null || _a === void 0 ? void 0 : _a.viewAreaCoveragePercentThreshold, (_b = this.viewabilityConfig) === null || _b === void 0 ? void 0 : _b.itemVisiblePercentThreshold, getLayout);
|
|
41
|
+
});
|
|
42
|
+
this.viewableIndices = newViewableIndices;
|
|
43
|
+
const minimumViewTime = (_h = (_g = this.viewabilityConfig) === null || _g === void 0 ? void 0 : _g.minimumViewTime) !== null && _h !== void 0 ? _h : 250;
|
|
44
|
+
// Setting default to 250. Default of 0 can impact performance when user scrolls fast.
|
|
45
|
+
if (minimumViewTime > 0) {
|
|
46
|
+
const timeoutId = setTimeout(() => {
|
|
47
|
+
this.timers.delete(timeoutId);
|
|
48
|
+
this.checkViewableIndicesChanges(newViewableIndices);
|
|
49
|
+
}, minimumViewTime);
|
|
50
|
+
this.timers.add(timeoutId);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.checkViewableIndicesChanges(newViewableIndices);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
checkViewableIndicesChanges(newViewableIndices) {
|
|
57
|
+
// Check if all viewable indices are still available (applicable if minimumViewTime > 0)
|
|
58
|
+
const currentlyNewViewableIndices = newViewableIndices.filter((index) => this.viewableIndices.includes(index));
|
|
59
|
+
const newlyVisibleItems = currentlyNewViewableIndices.filter((index) => !this.lastReportedViewableIndices.includes(index));
|
|
60
|
+
const newlyNonvisibleItems = this.lastReportedViewableIndices.filter((index) => !currentlyNewViewableIndices.includes(index));
|
|
61
|
+
if (newlyVisibleItems.length > 0 || newlyNonvisibleItems.length > 0) {
|
|
62
|
+
this.lastReportedViewableIndices = currentlyNewViewableIndices;
|
|
63
|
+
this.viewableIndicesChanged(currentlyNewViewableIndices, newlyVisibleItems, newlyNonvisibleItems);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
clearLastReportedViewableIndices() {
|
|
67
|
+
this.lastReportedViewableIndices = [];
|
|
68
|
+
}
|
|
69
|
+
isItemViewable(index, horizontal, scrollOffset, listSize, viewAreaCoveragePercentThreshold, itemVisiblePercentThreshold, getLayout) {
|
|
70
|
+
const itemLayout = getLayout(index);
|
|
71
|
+
if (itemLayout === undefined) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
const itemTop = (horizontal ? itemLayout.x : itemLayout.y) - scrollOffset;
|
|
75
|
+
const itemSize = horizontal ? itemLayout.width : itemLayout.height;
|
|
76
|
+
const listMainSize = horizontal ? listSize.width : listSize.height;
|
|
77
|
+
const pixelsVisible = Math.min(itemTop + itemSize, listMainSize) - Math.max(itemTop, 0);
|
|
78
|
+
// Always consider item fully viewable if it is fully visible, regardless of the `viewAreaCoveragePercentThreshold`
|
|
79
|
+
if (pixelsVisible === itemSize) {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
// Skip checking item if it's not visible at all
|
|
83
|
+
if (pixelsVisible === 0) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
const viewAreaMode = viewAreaCoveragePercentThreshold !== null &&
|
|
87
|
+
viewAreaCoveragePercentThreshold !== undefined;
|
|
88
|
+
const percent = viewAreaMode
|
|
89
|
+
? pixelsVisible / listMainSize
|
|
90
|
+
: pixelsVisible / itemSize;
|
|
91
|
+
const viewableAreaPercentThreshold = viewAreaMode
|
|
92
|
+
? viewAreaCoveragePercentThreshold * 0.01
|
|
93
|
+
: (itemVisiblePercentThreshold !== null && itemVisiblePercentThreshold !== void 0 ? itemVisiblePercentThreshold : 0) * 0.01;
|
|
94
|
+
return percent >= viewableAreaPercentThreshold;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export default ViewabilityHelper;
|
|
98
|
+
//# sourceMappingURL=ViewabilityHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewabilityHelper.js","sourceRoot":"","sources":["../../../src/recyclerview/viewability/ViewabilityHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RecyclerViewManager } from "../RecyclerViewManager";
|
|
2
|
+
/**
|
|
3
|
+
* Manager for viewability tracking. It holds multiple viewability callback pairs and keeps them updated.
|
|
4
|
+
*/
|
|
5
|
+
export default class ViewabilityManager<T> {
|
|
6
|
+
private rvManager;
|
|
7
|
+
private viewabilityHelpers;
|
|
8
|
+
private hasInteracted;
|
|
9
|
+
constructor(rvManager: RecyclerViewManager<T>);
|
|
10
|
+
/**
|
|
11
|
+
* @returns true if the viewability manager has any viewability callback pairs registered.
|
|
12
|
+
*/
|
|
13
|
+
get shouldListenToVisibleIndices(): boolean;
|
|
14
|
+
dispose: () => void;
|
|
15
|
+
onVisibleIndicesChanged: (all: number[]) => void;
|
|
16
|
+
recordInteraction: () => void;
|
|
17
|
+
updateViewableItems: (newViewableIndices?: number[]) => void;
|
|
18
|
+
recomputeViewableItems: () => void;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new `ViewabilityHelper` instance with `onViewableItemsChanged` callback and `ViewabilityConfig`
|
|
21
|
+
* @returns `ViewabilityHelper` instance
|
|
22
|
+
*/
|
|
23
|
+
private createViewabilityHelper;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ViewabilityManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewabilityManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/viewability/ViewabilityManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB,CAAC,CAAC;IACvC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,kBAAkB,CAA2B;IACrD,OAAO,CAAC,aAAa,CAAS;gBAElB,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;IA6B7C;;OAEG;IACH,IAAW,4BAA4B,YAEtC;IAEM,OAAO,aAIZ;IAEK,uBAAuB,GAAI,KAAK,MAAM,EAAE,UAE7C;IAEK,iBAAiB,aAStB;IAEK,mBAAmB,GAAI,qBAAqB,MAAM,EAAE,UAiBzD;IAEK,sBAAsB,aAM3B;IAEF;;;OAGG;IACH,OAAO,CAAC,uBAAuB,CAyC7B;CACH"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import ViewabilityHelper from "./ViewabilityHelper";
|
|
2
|
+
/**
|
|
3
|
+
* Manager for viewability tracking. It holds multiple viewability callback pairs and keeps them updated.
|
|
4
|
+
*/
|
|
5
|
+
export default class ViewabilityManager {
|
|
6
|
+
constructor(rvManager) {
|
|
7
|
+
var _a;
|
|
8
|
+
this.viewabilityHelpers = [];
|
|
9
|
+
this.hasInteracted = false;
|
|
10
|
+
this.dispose = () => {
|
|
11
|
+
this.viewabilityHelpers.forEach((viewabilityHelper) => viewabilityHelper.dispose());
|
|
12
|
+
};
|
|
13
|
+
this.onVisibleIndicesChanged = (all) => {
|
|
14
|
+
this.updateViewableItems(all);
|
|
15
|
+
};
|
|
16
|
+
this.recordInteraction = () => {
|
|
17
|
+
if (this.hasInteracted) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
this.hasInteracted = true;
|
|
21
|
+
this.viewabilityHelpers.forEach((viewabilityHelper) => {
|
|
22
|
+
viewabilityHelper.hasInteracted = true;
|
|
23
|
+
});
|
|
24
|
+
this.updateViewableItems();
|
|
25
|
+
};
|
|
26
|
+
this.updateViewableItems = (newViewableIndices) => {
|
|
27
|
+
var _a;
|
|
28
|
+
const listSize = this.rvManager.getWindowSize();
|
|
29
|
+
if (listSize === undefined || !this.shouldListenToVisibleIndices) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const scrollOffset = ((_a = this.rvManager.getAbsoluteLastScrollOffset()) !== null && _a !== void 0 ? _a : 0) -
|
|
33
|
+
this.rvManager.firstItemOffset;
|
|
34
|
+
this.viewabilityHelpers.forEach((viewabilityHelper) => {
|
|
35
|
+
var _a;
|
|
36
|
+
viewabilityHelper.updateViewableItems((_a = this.rvManager.props.horizontal) !== null && _a !== void 0 ? _a : false, scrollOffset, listSize, (index) => this.rvManager.getLayout(index), newViewableIndices);
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
this.recomputeViewableItems = () => {
|
|
40
|
+
this.viewabilityHelpers.forEach((viewabilityHelper) => viewabilityHelper.clearLastReportedViewableIndices());
|
|
41
|
+
this.updateViewableItems();
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Creates a new `ViewabilityHelper` instance with `onViewableItemsChanged` callback and `ViewabilityConfig`
|
|
45
|
+
* @returns `ViewabilityHelper` instance
|
|
46
|
+
*/
|
|
47
|
+
this.createViewabilityHelper = (viewabilityConfig, onViewableItemsChanged) => {
|
|
48
|
+
const mapViewToken = (index, isViewable) => {
|
|
49
|
+
const item = this.rvManager.props.data[index];
|
|
50
|
+
const key = item === undefined || this.rvManager.props.keyExtractor === undefined
|
|
51
|
+
? index.toString()
|
|
52
|
+
: this.rvManager.props.keyExtractor(item, index);
|
|
53
|
+
return {
|
|
54
|
+
index,
|
|
55
|
+
isViewable,
|
|
56
|
+
item,
|
|
57
|
+
key,
|
|
58
|
+
timestamp: Date.now(),
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
return new ViewabilityHelper(viewabilityConfig, (indices, newlyVisibleIndices, newlyNonvisibleIndices) => {
|
|
62
|
+
onViewableItemsChanged === null || onViewableItemsChanged === void 0 ? void 0 : onViewableItemsChanged({
|
|
63
|
+
viewableItems: indices.map((index) => mapViewToken(index, true)),
|
|
64
|
+
changed: [
|
|
65
|
+
...newlyVisibleIndices.map((index) => mapViewToken(index, true)),
|
|
66
|
+
...newlyNonvisibleIndices.map((index) => mapViewToken(index, false)),
|
|
67
|
+
],
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
this.rvManager = rvManager;
|
|
72
|
+
if (rvManager.props.onViewableItemsChanged !== null &&
|
|
73
|
+
rvManager.props.onViewableItemsChanged !== undefined) {
|
|
74
|
+
this.viewabilityHelpers.push(this.createViewabilityHelper(rvManager.props.viewabilityConfig, (info) => {
|
|
75
|
+
var _a, _b;
|
|
76
|
+
(_b = (_a = rvManager.props).onViewableItemsChanged) === null || _b === void 0 ? void 0 : _b.call(_a, info);
|
|
77
|
+
}));
|
|
78
|
+
}
|
|
79
|
+
((_a = rvManager.props.viewabilityConfigCallbackPairs) !== null && _a !== void 0 ? _a : []).forEach((pair, index) => {
|
|
80
|
+
this.viewabilityHelpers.push(this.createViewabilityHelper(pair.viewabilityConfig, (info) => {
|
|
81
|
+
var _a, _b;
|
|
82
|
+
const callback = (_b = (_a = rvManager.props.viewabilityConfigCallbackPairs) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.onViewableItemsChanged;
|
|
83
|
+
callback === null || callback === void 0 ? void 0 : callback(info);
|
|
84
|
+
}));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* @returns true if the viewability manager has any viewability callback pairs registered.
|
|
89
|
+
*/
|
|
90
|
+
get shouldListenToVisibleIndices() {
|
|
91
|
+
return this.viewabilityHelpers.length > 0;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=ViewabilityManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewabilityManager.js","sourceRoot":"","sources":["../../../src/recyclerview/viewability/ViewabilityManager.ts"],"names":[],"mappings":"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"}
|