@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,279 @@
|
|
|
1
|
+
// Interface of layout manager for app's listviews
|
|
2
|
+
import { MultiTypeAverageWindow } from "../../utils/AverageWindow";
|
|
3
|
+
import { ConsecutiveNumbers } from "../helpers/ConsecutiveNumbers";
|
|
4
|
+
import { findFirstVisibleIndex, findLastVisibleIndex, } from "../utils/findVisibleIndex";
|
|
5
|
+
import { areDimensionsNotEqual } from "../utils/measureLayout";
|
|
6
|
+
import { ErrorMessages } from "../../errors/ErrorMessages";
|
|
7
|
+
/**
|
|
8
|
+
* Base abstract class for layout managers in the recycler view system.
|
|
9
|
+
* Provides common functionality for managing item layouts and dimensions.
|
|
10
|
+
* Supports both horizontal and vertical layouts with dynamic item sizing.
|
|
11
|
+
*/
|
|
12
|
+
export class RVLayoutManager {
|
|
13
|
+
constructor(params, previousLayoutManager) {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
/** Flag indicating if the layout requires repainting */
|
|
16
|
+
this.requiresRepaint = false;
|
|
17
|
+
/** Maximum number of items to process in a single layout pass */
|
|
18
|
+
this.maxItemsToProcess = 250;
|
|
19
|
+
/** Information about item spans and sizes */
|
|
20
|
+
this.spanSizeInfo = {};
|
|
21
|
+
/** Span tracker for each item */
|
|
22
|
+
this.spanTracker = [];
|
|
23
|
+
/** Current max index with changed layout */
|
|
24
|
+
this.currentMaxIndexWithChangedLayout = -1;
|
|
25
|
+
/**
|
|
26
|
+
* Last index that was skipped during layout computation.
|
|
27
|
+
* Used to determine if a layout needs to be recomputed.
|
|
28
|
+
*/
|
|
29
|
+
this.lastSkippedLayoutIndex = Number.MAX_VALUE;
|
|
30
|
+
this.heightAverageWindow = new MultiTypeAverageWindow(5, 200);
|
|
31
|
+
this.widthAverageWindow = new MultiTypeAverageWindow(5, 200);
|
|
32
|
+
this.getItemType = params.getItemType;
|
|
33
|
+
this.overrideItemLayout = params.overrideItemLayout;
|
|
34
|
+
this.layouts = (_a = previousLayoutManager === null || previousLayoutManager === void 0 ? void 0 : previousLayoutManager.layouts) !== null && _a !== void 0 ? _a : [];
|
|
35
|
+
if (previousLayoutManager) {
|
|
36
|
+
this.updateLayoutParams(params);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.horizontal = Boolean(params.horizontal);
|
|
40
|
+
this.windowSize = params.windowSize;
|
|
41
|
+
this.maxColumns = (_b = params.maxColumns) !== null && _b !== void 0 ? _b : 1;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Gets the estimated width for an item based on its type.
|
|
46
|
+
* @param index Index of the item
|
|
47
|
+
* @returns Estimated width
|
|
48
|
+
*/
|
|
49
|
+
getEstimatedWidth(index) {
|
|
50
|
+
return this.widthAverageWindow.getCurrentValue(this.getItemType(index));
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Gets the estimated height for an item based on its type.
|
|
54
|
+
* @param index Index of the item
|
|
55
|
+
* @returns Estimated height
|
|
56
|
+
*/
|
|
57
|
+
getEstimatedHeight(index) {
|
|
58
|
+
return this.heightAverageWindow.getCurrentValue(this.getItemType(index));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Checks if the layout is horizontal.
|
|
62
|
+
* @returns True if horizontal, false if vertical
|
|
63
|
+
*/
|
|
64
|
+
isHorizontal() {
|
|
65
|
+
return this.horizontal;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Gets the dimensions of the visible window.
|
|
69
|
+
* @returns Window dimensions
|
|
70
|
+
*/
|
|
71
|
+
getWindowsSize() {
|
|
72
|
+
return this.windowSize;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Gets indices of items currently visible in the viewport.
|
|
76
|
+
* Uses binary search for efficient lookup.
|
|
77
|
+
* @param unboundDimensionStart Start position of viewport (start X or start Y)
|
|
78
|
+
* @param unboundDimensionEnd End position of viewport (end X or end Y)
|
|
79
|
+
* @returns ConsecutiveNumbers containing visible indices
|
|
80
|
+
*/
|
|
81
|
+
getVisibleLayouts(unboundDimensionStart, unboundDimensionEnd) {
|
|
82
|
+
// Find the first visible index
|
|
83
|
+
const firstVisibleIndex = findFirstVisibleIndex(this.layouts, unboundDimensionStart, this.horizontal);
|
|
84
|
+
// Find the last visible index
|
|
85
|
+
const lastVisibleIndex = findLastVisibleIndex(this.layouts, unboundDimensionEnd, this.horizontal);
|
|
86
|
+
// Collect the indices in the range
|
|
87
|
+
if (firstVisibleIndex !== -1 && lastVisibleIndex !== -1) {
|
|
88
|
+
return new ConsecutiveNumbers(firstVisibleIndex, lastVisibleIndex);
|
|
89
|
+
}
|
|
90
|
+
return ConsecutiveNumbers.EMPTY;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Removes layout information for specified indices and recomputes layout.
|
|
94
|
+
* @param indices Array of indices to remove
|
|
95
|
+
*/
|
|
96
|
+
deleteLayout(indices) {
|
|
97
|
+
// Sort indices in descending order
|
|
98
|
+
indices.sort((num1, num2) => num2 - num1);
|
|
99
|
+
// Remove elements from the array
|
|
100
|
+
for (const index of indices) {
|
|
101
|
+
this.layouts.splice(index, 1);
|
|
102
|
+
}
|
|
103
|
+
const startIndex = Math.min(...indices);
|
|
104
|
+
// Recompute layouts starting from the smallest index in the original indices array
|
|
105
|
+
this._recomputeLayouts(this.getMinRecomputeIndex(startIndex), this.getMaxRecomputeIndex(startIndex));
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Updates layout information for items and recomputes layout if necessary.
|
|
109
|
+
* @param layoutInfo Array of layout information for items (real measurements)
|
|
110
|
+
* @param totalItemCount Total number of items in the list
|
|
111
|
+
*/
|
|
112
|
+
modifyLayout(layoutInfo, totalItemCount) {
|
|
113
|
+
var _a;
|
|
114
|
+
this.maxItemsToProcess = Math.max(this.maxItemsToProcess, layoutInfo.length * 10);
|
|
115
|
+
let minRecomputeIndex = Number.MAX_VALUE;
|
|
116
|
+
if (this.layouts.length > totalItemCount) {
|
|
117
|
+
this.layouts.length = totalItemCount;
|
|
118
|
+
this.spanTracker.length = totalItemCount;
|
|
119
|
+
minRecomputeIndex = totalItemCount - 1; // <0 gets skipped so it's safe to set to totalItemCount - 1
|
|
120
|
+
}
|
|
121
|
+
// update average windows
|
|
122
|
+
minRecomputeIndex = Math.min(minRecomputeIndex, this.computeEstimatesAndMinMaxChangedLayout(layoutInfo));
|
|
123
|
+
if (this.layouts.length < totalItemCount && totalItemCount > 0) {
|
|
124
|
+
const startIndex = this.layouts.length;
|
|
125
|
+
this.layouts.length = totalItemCount;
|
|
126
|
+
this.spanTracker.length = totalItemCount;
|
|
127
|
+
for (let i = startIndex; i < totalItemCount; i++) {
|
|
128
|
+
this.getLayout(i);
|
|
129
|
+
this.getSpan(i);
|
|
130
|
+
}
|
|
131
|
+
this.recomputeLayouts(startIndex, totalItemCount - 1);
|
|
132
|
+
}
|
|
133
|
+
// compute minRecomputeIndex
|
|
134
|
+
minRecomputeIndex = Math.min(minRecomputeIndex, this.lastSkippedLayoutIndex, this.computeMinIndexWithChangedSpan(layoutInfo), (_a = this.processLayoutInfo(layoutInfo, totalItemCount)) !== null && _a !== void 0 ? _a : minRecomputeIndex, this.computeEstimatesAndMinMaxChangedLayout(layoutInfo));
|
|
135
|
+
if (minRecomputeIndex >= 0 && minRecomputeIndex < totalItemCount) {
|
|
136
|
+
const maxRecomputeIndex = this.getMaxRecomputeIndex(minRecomputeIndex);
|
|
137
|
+
this._recomputeLayouts(minRecomputeIndex, maxRecomputeIndex);
|
|
138
|
+
}
|
|
139
|
+
this.currentMaxIndexWithChangedLayout = -1;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Gets layout information for an item at the given index.
|
|
143
|
+
* Creates and initializes a new layout if one doesn't exist.
|
|
144
|
+
* @param index Index of the item
|
|
145
|
+
* @returns Layout information for the item
|
|
146
|
+
*/
|
|
147
|
+
getLayout(index) {
|
|
148
|
+
if (index >= this.layouts.length) {
|
|
149
|
+
throw new Error(ErrorMessages.indexOutOfBounds);
|
|
150
|
+
}
|
|
151
|
+
let layout = this.layouts[index];
|
|
152
|
+
if (!layout) {
|
|
153
|
+
// Create new layout with estimated dimensions
|
|
154
|
+
layout = {
|
|
155
|
+
x: 0,
|
|
156
|
+
y: 0,
|
|
157
|
+
width: 0,
|
|
158
|
+
height: 0,
|
|
159
|
+
};
|
|
160
|
+
this.layouts[index] = layout;
|
|
161
|
+
}
|
|
162
|
+
if (!layout.isWidthMeasured || !layout.isHeightMeasured) {
|
|
163
|
+
this.estimateLayout(index);
|
|
164
|
+
}
|
|
165
|
+
return layout;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Updates layout parameters and triggers recomputation if necessary.
|
|
169
|
+
* @param params New layout parameters
|
|
170
|
+
*/
|
|
171
|
+
updateLayoutParams(params) {
|
|
172
|
+
var _a, _b, _c;
|
|
173
|
+
this.windowSize = params.windowSize;
|
|
174
|
+
this.horizontal = (_a = params.horizontal) !== null && _a !== void 0 ? _a : this.horizontal;
|
|
175
|
+
this.maxColumns = (_b = params.maxColumns) !== null && _b !== void 0 ? _b : this.maxColumns;
|
|
176
|
+
this.optimizeItemArrangement =
|
|
177
|
+
(_c = params.optimizeItemArrangement) !== null && _c !== void 0 ? _c : this.optimizeItemArrangement;
|
|
178
|
+
}
|
|
179
|
+
getLayoutCount() {
|
|
180
|
+
return this.layouts.length;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Gets span for an item, applying any overrides.
|
|
184
|
+
* This is intended to be called during a relayout call. The value is tracked and used to determine if a span change has occurred.
|
|
185
|
+
* If skipTracking is true, the operation is not tracked. Can be useful if span is required outside of a relayout call.
|
|
186
|
+
* The tracker is used to call handleSpanChange if a span change has occurred before relayout call.
|
|
187
|
+
* // TODO: improve this contract.
|
|
188
|
+
* @param index Index of the item
|
|
189
|
+
* @returns Span for the item
|
|
190
|
+
*/
|
|
191
|
+
getSpan(index, skipTracking = false) {
|
|
192
|
+
var _a;
|
|
193
|
+
this.spanSizeInfo.span = undefined;
|
|
194
|
+
this.overrideItemLayout(index, this.spanSizeInfo);
|
|
195
|
+
const span = Math.min((_a = this.spanSizeInfo.span) !== null && _a !== void 0 ? _a : 1, this.maxColumns);
|
|
196
|
+
if (!skipTracking) {
|
|
197
|
+
this.spanTracker[index] = span;
|
|
198
|
+
}
|
|
199
|
+
return span;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Method to handle span change for an item. Can be overridden by subclasses.
|
|
203
|
+
* @param index Index of the item
|
|
204
|
+
*/
|
|
205
|
+
handleSpanChange(index) { }
|
|
206
|
+
/**
|
|
207
|
+
* Gets the maximum index to process in a single layout pass.
|
|
208
|
+
* @param startIndex Starting index
|
|
209
|
+
* @returns Maximum index to process
|
|
210
|
+
*/
|
|
211
|
+
getMaxRecomputeIndex(startIndex) {
|
|
212
|
+
return Math.min(Math.max(startIndex, this.currentMaxIndexWithChangedLayout) +
|
|
213
|
+
this.maxItemsToProcess, this.layouts.length - 1);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Gets the minimum index to process in a single layout pass.
|
|
217
|
+
* @param startIndex Starting index
|
|
218
|
+
* @returns Minimum index to process
|
|
219
|
+
*/
|
|
220
|
+
getMinRecomputeIndex(startIndex) {
|
|
221
|
+
return startIndex;
|
|
222
|
+
}
|
|
223
|
+
_recomputeLayouts(startIndex, endIndex) {
|
|
224
|
+
this.recomputeLayouts(startIndex, endIndex);
|
|
225
|
+
if (this.lastSkippedLayoutIndex >= startIndex &&
|
|
226
|
+
this.lastSkippedLayoutIndex <= endIndex) {
|
|
227
|
+
this.lastSkippedLayoutIndex = Number.MAX_VALUE;
|
|
228
|
+
}
|
|
229
|
+
if (endIndex + 1 < this.layouts.length) {
|
|
230
|
+
this.lastSkippedLayoutIndex = Math.min(endIndex + 1, this.lastSkippedLayoutIndex);
|
|
231
|
+
const lastIndex = this.layouts.length - 1;
|
|
232
|
+
// Since layout managers derive height from last indices we need to make
|
|
233
|
+
// sure they're not too much out of sync.
|
|
234
|
+
if (this.layouts[lastIndex].y < this.layouts[endIndex].y) {
|
|
235
|
+
this.recomputeLayouts(this.lastSkippedLayoutIndex, lastIndex);
|
|
236
|
+
this.lastSkippedLayoutIndex = Number.MAX_VALUE;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Computes size estimates and finds the minimum recompute index.
|
|
242
|
+
* @param layoutInfo Array of layout information for items
|
|
243
|
+
* @returns Minimum index that needs recomputation
|
|
244
|
+
*/
|
|
245
|
+
computeEstimatesAndMinMaxChangedLayout(layoutInfo) {
|
|
246
|
+
let minRecomputeIndex = Number.MAX_VALUE;
|
|
247
|
+
for (const info of layoutInfo) {
|
|
248
|
+
const { index, dimensions } = info;
|
|
249
|
+
const storedLayout = this.layouts[index];
|
|
250
|
+
if (index >= this.lastSkippedLayoutIndex ||
|
|
251
|
+
!storedLayout ||
|
|
252
|
+
!storedLayout.isHeightMeasured ||
|
|
253
|
+
!storedLayout.isWidthMeasured ||
|
|
254
|
+
areDimensionsNotEqual(storedLayout.height, dimensions.height) ||
|
|
255
|
+
areDimensionsNotEqual(storedLayout.width, dimensions.width)) {
|
|
256
|
+
minRecomputeIndex = Math.min(minRecomputeIndex, index);
|
|
257
|
+
this.currentMaxIndexWithChangedLayout = Math.max(this.currentMaxIndexWithChangedLayout, index);
|
|
258
|
+
}
|
|
259
|
+
this.heightAverageWindow.addValue(dimensions.height, this.getItemType(index));
|
|
260
|
+
this.widthAverageWindow.addValue(dimensions.width, this.getItemType(index));
|
|
261
|
+
}
|
|
262
|
+
return minRecomputeIndex;
|
|
263
|
+
}
|
|
264
|
+
computeMinIndexWithChangedSpan(layoutInfo) {
|
|
265
|
+
let minIndexWithChangedSpan = Number.MAX_VALUE;
|
|
266
|
+
for (const info of layoutInfo) {
|
|
267
|
+
const { index } = info;
|
|
268
|
+
const span = this.getSpan(index, true);
|
|
269
|
+
const storedSpan = this.spanTracker[index];
|
|
270
|
+
if (span !== storedSpan) {
|
|
271
|
+
this.spanTracker[index] = span;
|
|
272
|
+
this.handleSpanChange(index);
|
|
273
|
+
minIndexWithChangedSpan = Math.min(minIndexWithChangedSpan, index);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return minIndexWithChangedSpan;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
//# sourceMappingURL=LayoutManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/LayoutManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { LayoutParams, RVDimension, RVLayoutInfo, RVLayoutManager } from "./LayoutManager";
|
|
2
|
+
/**
|
|
3
|
+
* LinearLayoutManager implementation that arranges items in a single row or column.
|
|
4
|
+
* Supports both horizontal and vertical layouts with dynamic item sizing.
|
|
5
|
+
*/
|
|
6
|
+
export declare class RVLinearLayoutManagerImpl extends RVLayoutManager {
|
|
7
|
+
/** The bounded size (width for vertical, height for horizontal) */
|
|
8
|
+
private boundedSize;
|
|
9
|
+
/** Whether the bounded size has been set */
|
|
10
|
+
private hasSize;
|
|
11
|
+
/** Reference to the tallest item in the layout */
|
|
12
|
+
private tallestItem?;
|
|
13
|
+
/** Height of the tallest item */
|
|
14
|
+
private tallestItemHeight;
|
|
15
|
+
constructor(params: LayoutParams, previousLayoutManager?: RVLayoutManager);
|
|
16
|
+
/**
|
|
17
|
+
* Updates layout parameters and triggers recomputation if necessary.
|
|
18
|
+
* @param params New layout parameters
|
|
19
|
+
*/
|
|
20
|
+
updateLayoutParams(params: LayoutParams): void;
|
|
21
|
+
/**
|
|
22
|
+
* Processes layout information for items, updating their dimensions.
|
|
23
|
+
* For horizontal layouts, also normalizes heights of items.
|
|
24
|
+
* @param layoutInfo Array of layout information for items
|
|
25
|
+
* @param itemCount Total number of items in the list
|
|
26
|
+
*/
|
|
27
|
+
processLayoutInfo(layoutInfo: RVLayoutInfo[], itemCount: number): void;
|
|
28
|
+
/**
|
|
29
|
+
* Estimates layout dimensions for an item at the given index.
|
|
30
|
+
* @param index Index of the item to estimate layout for
|
|
31
|
+
*/
|
|
32
|
+
estimateLayout(index: number): void;
|
|
33
|
+
/**
|
|
34
|
+
* Returns the total size of the layout area.
|
|
35
|
+
* @returns RVDimension containing width and height of the layout
|
|
36
|
+
*/
|
|
37
|
+
getLayoutSize(): RVDimension;
|
|
38
|
+
/**
|
|
39
|
+
* Normalizes heights of items in horizontal layout to match the tallest item.
|
|
40
|
+
* @param layoutInfo Array of layout information for items
|
|
41
|
+
*/
|
|
42
|
+
private normalizeLayoutHeights;
|
|
43
|
+
/**
|
|
44
|
+
* Recomputes layouts for items in the given range.
|
|
45
|
+
* Positions items sequentially based on layout direction.
|
|
46
|
+
* @param startIndex Starting index of items to recompute
|
|
47
|
+
* @param endIndex Ending index of items to recompute
|
|
48
|
+
*/
|
|
49
|
+
recomputeLayouts(startIndex: number, endIndex: number): void;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=LinearLayoutManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearLayoutManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/LinearLayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EACX,YAAY,EAEZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,eAAe;IAC5D,mEAAmE;IACnE,OAAO,CAAC,WAAW,CAAS;IAC5B,4CAA4C;IAC5C,OAAO,CAAC,OAAO,CAAS;IAExB,kDAAkD;IAClD,OAAO,CAAC,WAAW,CAAC,CAAW;IAC/B,iCAAiC;IACjC,OAAO,CAAC,iBAAiB,CAAK;gBAElB,MAAM,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE,eAAe;IAQzE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAmB9C;;;;;OAKG;IACH,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM;IAgB/D;;;OAGG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM;IAU5B;;;OAGG;IACH,aAAa,IAAI,WAAW;IAa5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA+B9B;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAsB7D"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { RVLayoutManager, } from "./LayoutManager";
|
|
2
|
+
/**
|
|
3
|
+
* LinearLayoutManager implementation that arranges items in a single row or column.
|
|
4
|
+
* Supports both horizontal and vertical layouts with dynamic item sizing.
|
|
5
|
+
*/
|
|
6
|
+
export class RVLinearLayoutManagerImpl extends RVLayoutManager {
|
|
7
|
+
constructor(params, previousLayoutManager) {
|
|
8
|
+
super(params, previousLayoutManager);
|
|
9
|
+
/** Whether the bounded size has been set */
|
|
10
|
+
this.hasSize = false;
|
|
11
|
+
/** Height of the tallest item */
|
|
12
|
+
this.tallestItemHeight = 0;
|
|
13
|
+
this.boundedSize = this.horizontal
|
|
14
|
+
? params.windowSize.height
|
|
15
|
+
: params.windowSize.width;
|
|
16
|
+
this.hasSize = this.boundedSize > 0;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Updates layout parameters and triggers recomputation if necessary.
|
|
20
|
+
* @param params New layout parameters
|
|
21
|
+
*/
|
|
22
|
+
updateLayoutParams(params) {
|
|
23
|
+
const prevHorizontal = this.horizontal;
|
|
24
|
+
super.updateLayoutParams(params);
|
|
25
|
+
const oldBoundedSize = this.boundedSize;
|
|
26
|
+
this.boundedSize = this.horizontal
|
|
27
|
+
? params.windowSize.height
|
|
28
|
+
: params.windowSize.width;
|
|
29
|
+
if (oldBoundedSize !== this.boundedSize ||
|
|
30
|
+
prevHorizontal !== this.horizontal) {
|
|
31
|
+
if (this.layouts.length > 0) {
|
|
32
|
+
// console.log("-----> recomputeLayouts", this.horizontal);
|
|
33
|
+
this.recomputeLayouts(0, this.layouts.length - 1);
|
|
34
|
+
this.requiresRepaint = true;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Processes layout information for items, updating their dimensions.
|
|
40
|
+
* For horizontal layouts, also normalizes heights of items.
|
|
41
|
+
* @param layoutInfo Array of layout information for items
|
|
42
|
+
* @param itemCount Total number of items in the list
|
|
43
|
+
*/
|
|
44
|
+
processLayoutInfo(layoutInfo, itemCount) {
|
|
45
|
+
// Update layout information
|
|
46
|
+
for (const info of layoutInfo) {
|
|
47
|
+
const { index, dimensions } = info;
|
|
48
|
+
const layout = this.layouts[index];
|
|
49
|
+
layout.width = this.horizontal ? dimensions.width : this.boundedSize;
|
|
50
|
+
layout.isHeightMeasured = true;
|
|
51
|
+
layout.isWidthMeasured = true;
|
|
52
|
+
layout.height = dimensions.height;
|
|
53
|
+
}
|
|
54
|
+
if (this.horizontal && !this.hasSize) {
|
|
55
|
+
this.normalizeLayoutHeights(layoutInfo);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Estimates layout dimensions for an item at the given index.
|
|
60
|
+
* @param index Index of the item to estimate layout for
|
|
61
|
+
*/
|
|
62
|
+
estimateLayout(index) {
|
|
63
|
+
const layout = this.layouts[index];
|
|
64
|
+
layout.width = this.horizontal
|
|
65
|
+
? this.getEstimatedWidth(index)
|
|
66
|
+
: this.boundedSize;
|
|
67
|
+
layout.height = this.getEstimatedHeight(index);
|
|
68
|
+
layout.isWidthMeasured = !this.horizontal;
|
|
69
|
+
layout.enforcedWidth = !this.horizontal;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Returns the total size of the layout area.
|
|
73
|
+
* @returns RVDimension containing width and height of the layout
|
|
74
|
+
*/
|
|
75
|
+
getLayoutSize() {
|
|
76
|
+
var _a, _b;
|
|
77
|
+
if (this.layouts.length === 0)
|
|
78
|
+
return { width: 0, height: 0 };
|
|
79
|
+
const lastLayout = this.layouts[this.layouts.length - 1];
|
|
80
|
+
return {
|
|
81
|
+
width: this.horizontal
|
|
82
|
+
? lastLayout.x + lastLayout.width
|
|
83
|
+
: this.boundedSize,
|
|
84
|
+
height: this.horizontal
|
|
85
|
+
? (_b = (_a = this.tallestItem) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : this.boundedSize
|
|
86
|
+
: lastLayout.y + lastLayout.height,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Normalizes heights of items in horizontal layout to match the tallest item.
|
|
91
|
+
* @param layoutInfo Array of layout information for items
|
|
92
|
+
*/
|
|
93
|
+
normalizeLayoutHeights(layoutInfo) {
|
|
94
|
+
var _a, _b;
|
|
95
|
+
let newTallestItem;
|
|
96
|
+
for (const info of layoutInfo) {
|
|
97
|
+
const { index } = info;
|
|
98
|
+
const layout = this.layouts[index];
|
|
99
|
+
if (layout.height > ((_a = layout.minHeight) !== null && _a !== void 0 ? _a : 0) &&
|
|
100
|
+
layout.height > ((_b = newTallestItem === null || newTallestItem === void 0 ? void 0 : newTallestItem.height) !== null && _b !== void 0 ? _b : 0)) {
|
|
101
|
+
newTallestItem = layout;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (newTallestItem && newTallestItem.height !== this.tallestItemHeight) {
|
|
105
|
+
let targetMinHeight = newTallestItem.height;
|
|
106
|
+
if (newTallestItem.height < this.tallestItemHeight) {
|
|
107
|
+
this.requiresRepaint = true;
|
|
108
|
+
targetMinHeight = 0;
|
|
109
|
+
}
|
|
110
|
+
// set minHeight for all layouts
|
|
111
|
+
for (const layout of this.layouts) {
|
|
112
|
+
if (targetMinHeight > 0) {
|
|
113
|
+
layout.height = newTallestItem.height;
|
|
114
|
+
}
|
|
115
|
+
layout.minHeight = targetMinHeight;
|
|
116
|
+
}
|
|
117
|
+
newTallestItem.minHeight = 0;
|
|
118
|
+
this.tallestItem = newTallestItem;
|
|
119
|
+
this.tallestItemHeight = newTallestItem.height;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Recomputes layouts for items in the given range.
|
|
124
|
+
* Positions items sequentially based on layout direction.
|
|
125
|
+
* @param startIndex Starting index of items to recompute
|
|
126
|
+
* @param endIndex Ending index of items to recompute
|
|
127
|
+
*/
|
|
128
|
+
recomputeLayouts(startIndex, endIndex) {
|
|
129
|
+
for (let i = startIndex; i <= endIndex; i++) {
|
|
130
|
+
const layout = this.getLayout(i);
|
|
131
|
+
// Set positions based on whether this is the first item or not
|
|
132
|
+
if (i === 0) {
|
|
133
|
+
layout.x = 0;
|
|
134
|
+
layout.y = 0;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
const prevLayout = this.getLayout(i - 1);
|
|
138
|
+
layout.x = this.horizontal ? prevLayout.x + prevLayout.width : 0;
|
|
139
|
+
layout.y = this.horizontal ? 0 : prevLayout.y + prevLayout.height;
|
|
140
|
+
}
|
|
141
|
+
// Set width for vertical layouts
|
|
142
|
+
if (!this.horizontal) {
|
|
143
|
+
layout.width = this.boundedSize;
|
|
144
|
+
}
|
|
145
|
+
else if (this.hasSize) {
|
|
146
|
+
layout.minHeight = this.boundedSize;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=LinearLayoutManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinearLayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/LinearLayoutManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { LayoutParams, RVDimension, RVLayoutInfo, RVLayoutManager } from "./LayoutManager";
|
|
2
|
+
/**
|
|
3
|
+
* MasonryLayoutManager implementation that arranges items in a masonry/pinterest-style layout.
|
|
4
|
+
* Items are placed in columns, with support for items spanning multiple columns.
|
|
5
|
+
* Can optimize item placement to minimize column height differences.
|
|
6
|
+
*/
|
|
7
|
+
export declare class RVMasonryLayoutManagerImpl extends RVLayoutManager {
|
|
8
|
+
/** The width of the bounded area for the masonry layout */
|
|
9
|
+
private boundedSize;
|
|
10
|
+
/** Array tracking the current height of each column */
|
|
11
|
+
private columnHeights;
|
|
12
|
+
/** Current column index for sequential placement */
|
|
13
|
+
private currentColumn;
|
|
14
|
+
/** If there's a span change for masonry layout, we need to recompute all the widths */
|
|
15
|
+
private fullRelayoutRequired;
|
|
16
|
+
constructor(params: LayoutParams, previousLayoutManager?: RVLayoutManager);
|
|
17
|
+
/**
|
|
18
|
+
* Updates layout parameters and triggers recomputation if necessary.
|
|
19
|
+
* @param params New layout parameters
|
|
20
|
+
*/
|
|
21
|
+
updateLayoutParams(params: LayoutParams): void;
|
|
22
|
+
/**
|
|
23
|
+
* Processes layout information for items, updating their dimensions.
|
|
24
|
+
* @param layoutInfo Array of layout information for items (real measurements)
|
|
25
|
+
* @param itemCount Total number of items in the list
|
|
26
|
+
*/
|
|
27
|
+
processLayoutInfo(layoutInfo: RVLayoutInfo[], itemCount: number): 0 | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Estimates layout dimensions for an item at the given index.
|
|
30
|
+
* Can be called by base class if estimate is required.
|
|
31
|
+
* @param index Index of the item to estimate layout for
|
|
32
|
+
*/
|
|
33
|
+
estimateLayout(index: number): void;
|
|
34
|
+
/**
|
|
35
|
+
* Handles span change for an item.
|
|
36
|
+
* @param index Index of the item
|
|
37
|
+
*/
|
|
38
|
+
handleSpanChange(index: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Returns the total size of the layout area.
|
|
41
|
+
* @returns RVDimension containing width and height of the layout
|
|
42
|
+
*/
|
|
43
|
+
getLayoutSize(): RVDimension;
|
|
44
|
+
/**
|
|
45
|
+
* Recomputes layouts for items in the given range.
|
|
46
|
+
* Uses different placement strategies based on optimization settings.
|
|
47
|
+
* @param startIndex Starting index of items to recompute
|
|
48
|
+
* @param endIndex Ending index of items to recompute
|
|
49
|
+
*/
|
|
50
|
+
recomputeLayouts(startIndex: number, endIndex: number): void;
|
|
51
|
+
/**
|
|
52
|
+
* Calculates the width of an item based on its span.
|
|
53
|
+
* @param index Index of the item
|
|
54
|
+
* @returns Width of the item
|
|
55
|
+
*/
|
|
56
|
+
private getWidth;
|
|
57
|
+
private updateAllWidths;
|
|
58
|
+
/**
|
|
59
|
+
* Places an item sequentially in the next available position.
|
|
60
|
+
* @param layout Layout information for the item
|
|
61
|
+
* @param span Number of columns the item spans
|
|
62
|
+
*/
|
|
63
|
+
private placeItemSequentially;
|
|
64
|
+
/**
|
|
65
|
+
* Places a single-column item in the shortest available column.
|
|
66
|
+
* @param layout Layout information for the item
|
|
67
|
+
*/
|
|
68
|
+
private placeSingleColumnItem;
|
|
69
|
+
/**
|
|
70
|
+
* Places a multi-column item in the position that minimizes total column heights.
|
|
71
|
+
* @param layout Layout information for the item
|
|
72
|
+
* @param span Number of columns the item spans
|
|
73
|
+
*/
|
|
74
|
+
private placeOptimizedMultiColumnItem;
|
|
75
|
+
/**
|
|
76
|
+
* Updates column heights up to a given index by recalculating item positions.
|
|
77
|
+
* @param index Index to update column heights up to
|
|
78
|
+
*/
|
|
79
|
+
private updateColumnHeightsToIndex;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=MasonryLayoutManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MasonryLayoutManager.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/MasonryLayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,WAAW,EAEX,YAAY,EACZ,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,2DAA2D;IAC3D,OAAO,CAAC,WAAW,CAAS;IAC5B,uDAAuD;IACvD,OAAO,CAAC,aAAa,CAAW;IAChC,oDAAoD;IACpD,OAAO,CAAC,aAAa,CAAK;IAE1B,uFAAuF;IACvF,OAAO,CAAC,oBAAoB,CAAS;gBAEzB,MAAM,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE,eAAe;IAOzE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,YAAY;IAqBvC;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM;IAmB/D;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM;IAW5B;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM;IAI9B;;;OAGG;IACH,aAAa,IAAI,WAAW;IAY5B;;;;;OAKG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAiC5D;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,eAAe;IAOvB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAqC7B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IA0CrC;;;OAGG;IACH,OAAO,CAAC,0BAA0B;CA8BnC"}
|